(self.webpackChunkowncast_admin=self.webpackChunkowncast_admin||[]).push([[179],{"./node_modules/@storybook/addon-postcss/node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./styles/variables.css":(module,exports,__webpack_require__)=>{(exports=__webpack_require__("./node_modules/@storybook/addon-postcss/node_modules/css-loader/dist/runtime/api.js")(!1)).push([module.id,"/**\n * Do not edit directly\n * Generated on Sat, 07 May 2022 17:24:18 GMT\n */\n\n:root {\n --text-color: var(--theme-text-color);\n --text-color-secondry: var(--theme-text-color-secondary);\n --link-color: var(--theme-link-color);\n --popover-background: var(--theme-background);\n --background-color-light: var(--theme-background-secondary);\n --primary-color: #9e77ed;\n --info-color: #667085;\n --success-color: #12b76a;\n --warning-color: #f79009;\n --error-color: #f04438;\n --purple-base: #9e77ed;\n --green-base: #12b76a;\n --red-base: #f04438;\n --orange-base: #f79009;\n --theme-primary-color: #9e77ed; /* The primary color of the application used for rendering controls. */\n --theme-text-color: #d0d5dd; /* The color of the text in the application. */\n --theme-text-color-secondary: #667085;\n --theme-link-color: #9e77ed;\n --theme-font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\n 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\n 'Segoe UI Symbol', 'Noto Color Emoji';\n --theme-background: #1b1a26; /* The main background color of the page. */\n --theme-background-secondary: #16151f; /* A secondary background color used in sections and controls. */\n --theme-rounded-corners: 5px; /* The radius of rounded corners. */\n --theme-success-color: #12b76a;\n --theme-info-color: #d6bbfb;\n --theme-warning-color: #f79009;\n --theme-error-color: #f04438;\n --color-owncast-purple-100: #f4ebff;\n --color-owncast-purple-300: #d6bbfb;\n --color-owncast-purple-500: #9e77ed;\n --color-owncast-purple-700: #6941c6;\n --color-owncast-purple-900: #42307d;\n --color-owncast-green-100: #d15ad5;\n --color-owncast-green-300: #6ce9a6;\n --color-owncast-green-500: #12b76a;\n --color-owncast-green-700: #027a48;\n --color-owncast-green-900: #054f31;\n --color-owncast-red-100: #fee4e2;\n --color-owncast-red-300: #fda29b;\n --color-owncast-red-500: #f04438;\n --color-owncast-red-700: #b42318;\n --color-owncast-red-900: #7a271a;\n --color-owncast-orange-100: #fef0c7;\n --color-owncast-orange-300: #fec84b;\n --color-owncast-orange-500: #f79009;\n --color-owncast-orange-700: #b54708;\n --color-owncast-orange-900: #93370d;\n --color-owncast-gray-100: #f2f4f7;\n --color-owncast-gray-300: #d0d5dd;\n --color-owncast-gray-500: #667085;\n --color-owncast-gray-700: #344054;\n --color-owncast-gray-900: #101828;\n --color-owncast-logo-purple: #7871ff;\n --color-owncast-logo-pink: #c98bfe;\n --color-owncast-logo-blue: #2086e1;\n --color-owncast-background: #1b1a26;\n --color-owncast-background-secondary: #16151f;\n --font-owncast-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\n 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\n 'Segoe UI Symbol', 'Noto Color Emoji';\n --owncast-purple: #7871ff;\n --owncast-purple-25: rgba(120, 113, 255, 0.25);\n --owncast-purple-50: rgba(120, 113, 255, 0.5);\n --online-color: #73dd3f;\n --offline-color: #999;\n --pink: #c98bfe;\n --purple: #9e77ed;\n --blue: #2086e1;\n --white-88: #667085;\n --purple-dark: #42307d;\n --default-link-color: #6941c6;\n --default-bg-color: #1b1a26;\n --default-text-color: #f2f4f7;\n}\n",""]),module.exports=exports},"./styles/variables.css":(module,__unused_webpack_exports,__webpack_require__)=>{var api=__webpack_require__("./node_modules/@storybook/addon-postcss/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),content=__webpack_require__("./node_modules/@storybook/addon-postcss/node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./styles/variables.css");"string"==typeof(content=content.__esModule?content.default:content)&&(content=[[module.id,content,""]]);var options={insert:"head",singleton:!1};api(content,options);module.exports=content.locals||{}},"./.storybook/preview.js-generated-config-entry.js":(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__)=>{"use strict";var _storybook_preview_namespaceObject={};__webpack_require__.r(_storybook_preview_namespaceObject),__webpack_require__.d(_storybook_preview_namespaceObject,{parameters:()=>parameters});__webpack_require__("./node_modules/core-js/modules/es.object.keys.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.js"),__webpack_require__("./node_modules/core-js/modules/es.array.filter.js"),__webpack_require__("./node_modules/core-js/modules/es.object.get-own-property-descriptor.js"),__webpack_require__("./node_modules/core-js/modules/es.array.for-each.js"),__webpack_require__("./node_modules/core-js/modules/web.dom-collections.for-each.js"),__webpack_require__("./node_modules/core-js/modules/es.object.get-own-property-descriptors.js"),__webpack_require__("./node_modules/core-js/modules/es.object.define-properties.js"),__webpack_require__("./node_modules/core-js/modules/es.object.define-property.js");var ClientApi=__webpack_require__("./node_modules/@storybook/client-api/dist/esm/ClientApi.js"),esm=__webpack_require__("./node_modules/@storybook/client-logger/dist/esm/index.js"),injectStylesIntoStyleTag=(__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./styles/variables.css"),__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js")),injectStylesIntoStyleTag_default=__webpack_require__.n(injectStylesIntoStyleTag),global=__webpack_require__("./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[12].use[2]!./styles/global.less"),options={insert:"head",singleton:!1};injectStylesIntoStyleTag_default()(global.Z,options);global.Z.locals;var theme=__webpack_require__("./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[12].use[2]!./styles/theme.less"),theme_options={insert:"head",singleton:!1};injectStylesIntoStyleTag_default()(theme.Z,theme_options);theme.Z.locals;var preview=__webpack_require__("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./stories/preview.scss"),preview_options={insert:"head",singleton:!1};injectStylesIntoStyleTag_default()(preview.Z,preview_options);preview.Z.locals;var create=__webpack_require__("./node_modules/@storybook/theming/dist/esm/create.js"),parameters={actions:{argTypesRegex:"^on[A-Z].*"},controls:{matchers:{color:/(background|color)$/i,date:/Date$/}},darkMode:{current:"dark",dark:Object.assign({},create.n.dark,{appBg:"#171523",brandImage:"https://owncast.online/images/logo.svg",brandTitle:"Owncast",brandUrl:"https://owncast.online"}),light:Object.assign({},create.n.normal)}};function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function _defineProperty(obj,key,value){return key in obj?Object.defineProperty(obj,key,{value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}Object.keys(_storybook_preview_namespaceObject).forEach((function(key){var value=_storybook_preview_namespaceObject[key];switch(key){case"args":case"argTypes":return esm.kg.warn("Invalid args/argTypes in config, ignoring.",JSON.stringify(value));case"decorators":return value.forEach((function(decorator){return(0,ClientApi.$9)(decorator,!1)}));case"loaders":return value.forEach((function(loader){return(0,ClientApi.HZ)(loader,!1)}));case"parameters":return(0,ClientApi.h1)(function _objectSpread(target){for(var i=1;i{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>SingleFollower});__webpack_require__("./node_modules/core-js/modules/es.function.name.js");var antd__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/antd/es/comment/index.js"),antd__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/antd/es/avatar/index.js"),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__=(__webpack_require__("./node_modules/react/index.js"),__webpack_require__("./node_modules/react/jsx-runtime.js"));function SingleFollower(props){var follower=props.follower;return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(antd__WEBPACK_IMPORTED_MODULE_3__.Z,{author:follower.username,avatar:(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(antd__WEBPACK_IMPORTED_MODULE_4__.C,{src:follower.image,alt:"Han Solo"}),content:follower.name})}SingleFollower.displayName="SingleFollower";try{Follower.displayName="Follower",Follower.__docgenInfo={description:"",displayName:"Follower",props:{follower:{defaultValue:null,description:"",name:"follower",required:!0,type:{name:"Follower"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/Follower.tsx#Follower"]={docgenInfo:Follower.__docgenInfo,name:"Follower",path:"components/Follower.tsx#Follower"})}catch(__react_docgen_typescript_loader_error){}},"./components/action-buttons/ActionButton.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>ActionButton});__webpack_require__("./node_modules/core-js/modules/es.symbol.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js"),__webpack_require__("./node_modules/core-js/modules/es.array.is-array.js"),__webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js"),__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.slice.js"),__webpack_require__("./node_modules/core-js/modules/es.function.name.js"),__webpack_require__("./node_modules/core-js/modules/es.array.from.js");var es_button=__webpack_require__("./node_modules/antd/es/button/index.js"),react=__webpack_require__("./node_modules/react/index.js"),Modal=__webpack_require__("./components/ui/Modal/Modal.tsx"),injectStylesIntoStyleTag=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),injectStylesIntoStyleTag_default=__webpack_require__.n(injectStylesIntoStyleTag),ActionButton_module=__webpack_require__("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./components/action-buttons/ActionButton.module.scss"),options={insert:"head",singleton:!1};injectStylesIntoStyleTag_default()(ActionButton_module.Z,options);const action_buttons_ActionButton_module=ActionButton_module.Z.locals||{};var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function _slicedToArray(arr,i){return function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}(arr)||function _iterableToArrayLimit(arr,i){var _i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null==_i)return;var _s,_e,_arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}(arr,i)||function _unsupportedIterableToArray(o,minLen){if(!o)return;if("string"==typeof o)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);"Object"===n&&o.constructor&&(n=o.constructor.name);if("Map"===n||"Set"===n)return Array.from(o);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}(arr,i)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>ChatUserMessage});var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/react/jsx-runtime.js");function ChatUserMessage(props){var message=props.message,showModeratorMenu=props.showModeratorMenu,body=message.body,user=message.user,displayName=(message.timestamp,user.displayName);user.displayColor;return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div",{children:[(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{children:displayName}),(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{children:body}),showModeratorMenu&&(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div",{children:"Moderator menu"})]})}ChatUserMessage.displayName="ChatUserMessage";try{ChatUserMessage.displayName="ChatUserMessage",ChatUserMessage.__docgenInfo={description:"",displayName:"ChatUserMessage",props:{message:{defaultValue:null,description:"",name:"message",required:!0,type:{name:"ChatMessage"}},showModeratorMenu:{defaultValue:null,description:"",name:"showModeratorMenu",required:!0,type:{name:"boolean"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/chat/ChatUserMessage.tsx#ChatUserMessage"]={docgenInfo:ChatUserMessage.__docgenInfo,name:"ChatUserMessage",path:"components/chat/ChatUserMessage.tsx#ChatUserMessage"})}catch(__react_docgen_typescript_loader_error){}},"./components/common/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{C:()=>Logo,w:()=>UserDropdown});__webpack_require__("./node_modules/core-js/modules/es.array.is-array.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js"),__webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js"),__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.slice.js"),__webpack_require__("./node_modules/core-js/modules/es.function.name.js"),__webpack_require__("./node_modules/core-js/modules/es.array.from.js");var es_menu=__webpack_require__("./node_modules/antd/es/menu/index.js"),dropdown=__webpack_require__("./node_modules/antd/es/dropdown/index.js"),es_button=__webpack_require__("./node_modules/antd/es/button/index.js"),space=__webpack_require__("./node_modules/antd/es/space/index.js"),DownOutlined=__webpack_require__("./node_modules/@ant-design/icons/es/icons/DownOutlined.js"),recoil=__webpack_require__("./node_modules/recoil/es/recoil.js"),ClientConfigStore=__webpack_require__("./components/stores/ClientConfigStore.tsx"),application_state=__webpack_require__("./interfaces/application-state.ts"),injectStylesIntoStyleTag=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),injectStylesIntoStyleTag_default=__webpack_require__.n(injectStylesIntoStyleTag),UserDropdown_module=__webpack_require__("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./components/common/UserDropdown/UserDropdown.module.scss"),options={insert:"head",singleton:!1};injectStylesIntoStyleTag_default()(UserDropdown_module.Z,options);const UserDropdown_UserDropdown_module=UserDropdown_module.Z.locals||{};var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function _slicedToArray(arr,i){return function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}(arr)||function _iterableToArrayLimit(arr,i){var _i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null==_i)return;var _s,_e,_arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}(arr,i)||function _unsupportedIterableToArray(o,minLen){if(!o)return;if("string"==typeof o)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);"Object"===n&&o.constructor&&(n=o.constructor.name);if("Map"===n||"Set"===n)return Array.from(o);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}(arr,i)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i{"use strict";__webpack_require__.d(__webpack_exports__,{XX:()=>chatVisibilityAtom,wT:()=>videoStateAtom,Gt:()=>websocketServiceAtom});__webpack_require__("./node_modules/core-js/modules/es.promise.js"),__webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"),__webpack_require__("./node_modules/core-js/modules/es.array.concat.js"),__webpack_require__("./node_modules/core-js/modules/es.array.is-array.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js"),__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.slice.js"),__webpack_require__("./node_modules/core-js/modules/es.function.name.js"),__webpack_require__("./node_modules/core-js/modules/es.array.from.js"),__webpack_require__("./node_modules/react/index.js");var recoil=__webpack_require__("./node_modules/recoil/es/recoil.js");__webpack_require__("./node_modules/core-js/modules/es.object.define-property.js");__webpack_require__("./node_modules/core-js/modules/es.string.split.js"),__webpack_require__("./node_modules/core-js/modules/es.regexp.exec.js"),__webpack_require__("./node_modules/core-js/modules/es.parse-int.js"),__webpack_require__("./node_modules/core-js/modules/es.object.assign.js");var process=__webpack_require__("./node_modules/process/browser.js");process.env.NEXT_PUBLIC_ADMIN_USERNAME,process.env.NEXT_PUBLIC_ADMIN_STREAMKEY;__webpack_require__("./node_modules/core-js/modules/web.url.js"),__webpack_require__("./node_modules/core-js/modules/es.regexp.to-string.js"),__webpack_require__("./node_modules/core-js/modules/es.date.to-string.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./interfaces/socket-events.ts");var application_state=__webpack_require__("./interfaces/application-state.ts");(0,recoil.cn)({key:"clientConfigState",default:{name:"",summary:"",logo:"",tags:[],version:"",nsfw:!1,extraPageContent:"",socialHandles:[],chatDisabled:!1,externalActions:[],customStyles:"",maxSocketPayloadSize:0,federation:{enabled:!1,account:"",followerCount:0},notifications:{browser:{enabled:!1,publicKey:""}},authentication:{indieAuthEnabled:!1}}}),(0,recoil.cn)({key:"appStateAtom",default:application_state.aB.Loading}),(0,recoil.cn)({key:"chatStateAtom",default:application_state.gG.Offline});var videoStateAtom=(0,recoil.cn)({key:"videoStateAtom",default:application_state.Ii.Unavailable}),chatVisibilityAtom=(0,recoil.cn)({key:"chatVisibility",default:application_state.PO.Visible}),websocketServiceAtom=((0,recoil.cn)({key:"chatDisplayName",default:null}),(0,recoil.cn)({key:"accessTokenAtom",default:null}),(0,recoil.cn)({key:"chatMessages",default:[]}),(0,recoil.cn)({key:"websocketServiceAtom",default:null}))},"./components/ui/Modal/Modal.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>Modal});__webpack_require__("./node_modules/core-js/modules/es.array.is-array.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js"),__webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js"),__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.slice.js"),__webpack_require__("./node_modules/core-js/modules/es.function.name.js"),__webpack_require__("./node_modules/core-js/modules/es.array.from.js");var modal=__webpack_require__("./node_modules/antd/es/modal/index.js"),skeleton=__webpack_require__("./node_modules/antd/es/skeleton/index.js"),spin=__webpack_require__("./node_modules/antd/es/spin/index.js"),react=__webpack_require__("./node_modules/react/index.js"),injectStylesIntoStyleTag=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),injectStylesIntoStyleTag_default=__webpack_require__.n(injectStylesIntoStyleTag),Modal_module=__webpack_require__("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./components/ui/Modal/Modal.module.scss"),options={insert:"head",singleton:!1};injectStylesIntoStyleTag_default()(Modal_module.Z,options);const Modal_Modal_module=Modal_module.Z.locals||{};var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function _slicedToArray(arr,i){return function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}(arr)||function _iterableToArrayLimit(arr,i){var _i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null==_i)return;var _s,_e,_arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}(arr,i)||function _unsupportedIterableToArray(o,minLen){if(!o)return;if("string"==typeof o)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);"Object"===n&&o.constructor&&(n=o.constructor.name);if("Map"===n||"Set"===n)return Array.from(o);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}(arr,i)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i void"}},handleCancel:{defaultValue:{value:"undefined"},description:"",name:"handleCancel",required:!1,type:{name:"() => void"}},afterClose:{defaultValue:{value:"undefined"},description:"",name:"afterClose",required:!1,type:{name:"() => void"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/ui/Modal/Modal.tsx#Modal"]={docgenInfo:Modal.__docgenInfo,name:"Modal",path:"components/ui/Modal/Modal.tsx#Modal"})}catch(__react_docgen_typescript_loader_error){}},"./components/video/VideoPoster.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>VideoPoster});__webpack_require__("./node_modules/core-js/modules/web.timers.js"),__webpack_require__("./node_modules/core-js/modules/es.date.now.js"),__webpack_require__("./node_modules/core-js/modules/es.date.to-string.js"),__webpack_require__("./node_modules/core-js/modules/es.array.is-array.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js"),__webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js"),__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.slice.js"),__webpack_require__("./node_modules/core-js/modules/es.function.name.js"),__webpack_require__("./node_modules/core-js/modules/es.array.from.js");var react=__webpack_require__("./node_modules/react/index.js"),jsx_runtime=(__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.array.map.js"),__webpack_require__("./node_modules/core-js/modules/es.array.concat.js"),__webpack_require__("./node_modules/react/jsx-runtime.js"));function _toConsumableArray(arr){return function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}(arr)||function _iterableToArray(iter){if("undefined"!=typeof Symbol&&null!=iter[Symbol.iterator]||null!=iter["@@iterator"])return Array.from(iter)}(arr)||_unsupportedIterableToArray(arr)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _slicedToArray(arr,i){return function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}(arr)||function _iterableToArrayLimit(arr,i){var _i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null==_i)return;var _s,_e,_arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}(arr,i)||_unsupportedIterableToArray(arr,i)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(o,minLen){if(o){if("string"==typeof o)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);return"Object"===n&&o.constructor&&(n=o.constructor.name),"Map"===n||"Set"===n?Array.from(o):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(o,minLen):void 0}}function _arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);iarr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i{"use strict";module=__webpack_require__.nmd(module),(0,__webpack_require__("./node_modules/@storybook/react/dist/esm/client/index.js").configure)([__webpack_require__("./stories sync recursive ^\\.(?:(?:^%7C\\/%7C(?:(?:(?%21(?:^%7C\\/)\\.).)*?)\\/)(?%21\\.)(?=.)[^/]*?\\.stories\\.mdx)$"),__webpack_require__("./stories sync recursive ^\\.(?:(?:^%7C\\/%7C(?:(?:(?%21(?:^%7C\\/)\\.).)*?)\\/)(?%21\\.)(?=.)[^/]*?\\.stories\\.(js%7Cjsx%7Cts%7Ctsx))$")],module,!1)},"./interfaces/application-state.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";var AppState,ChatVisibilityState,ChatState,VideoState;__webpack_require__.d(__webpack_exports__,{Ii:()=>VideoState,PO:()=>ChatVisibilityState,aB:()=>AppState,gG:()=>ChatState}),function(AppState){AppState[AppState.Loading=0]="Loading",AppState[AppState.Registering=1]="Registering",AppState[AppState.Online=2]="Online",AppState[AppState.Offline=3]="Offline",AppState[AppState.OfflineWaiting=4]="OfflineWaiting",AppState[AppState.Banned=5]="Banned"}(AppState||(AppState={})),function(ChatVisibilityState){ChatVisibilityState[ChatVisibilityState.Hidden=0]="Hidden",ChatVisibilityState[ChatVisibilityState.Visible=1]="Visible"}(ChatVisibilityState||(ChatVisibilityState={})),function(ChatState){ChatState[ChatState.Available=0]="Available",ChatState[ChatState.NotAvailable=1]="NotAvailable",ChatState[ChatState.Loading=2]="Loading",ChatState[ChatState.Offline=3]="Offline"}(ChatState||(ChatState={})),function(VideoState){VideoState[VideoState.Available=0]="Available",VideoState[VideoState.Unavailable=1]="Unavailable",VideoState[VideoState.Playing=2]="Playing"}(VideoState||(VideoState={}))},"./interfaces/socket-events.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";var MessageType;__webpack_require__.d(__webpack_exports__,{C:()=>MessageType}),function(MessageType){MessageType.CHAT="CHAT",MessageType.PING="PING",MessageType.NAME_CHANGE="NAME_CHANGE",MessageType.PONG="PONG",MessageType.SYSTEM="SYSTEM",MessageType.USER_JOINED="USER_JOINED",MessageType.CHAT_ACTION="CHAT_ACTION",MessageType.FEDIVERSE_ENGAGEMENT_FOLLOW="FEDIVERSE_ENGAGEMENT_FOLLOW",MessageType.FEDIVERSE_ENGAGEMENT_LIKE="FEDIVERSE_ENGAGEMENT_LIKE",MessageType.FEDIVERSE_ENGAGEMENT_REPOST="FEDIVERSE_ENGAGEMENT_REPOST",MessageType.CONNECTED_USER_INFO="CONNECTED_USER_INFO",MessageType.ERROR_USER_DISABLED="ERROR_USER_DISABLED",MessageType.ERROR_NEEDS_REGISTRATION="ERROR_NEEDS_REGISTRATION",MessageType.ERROR_MAX_CONNECTIONS_EXCEEDED="ERROR_MAX_CONNECTIONS_EXCEEDED",MessageType.VISIBILITY_UPDATE="VISIBILITY-UPDATE"}(MessageType||(MessageType={}))},"./stories/ActionButton.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Example1:()=>Example1,Example2:()=>Example2,default:()=>__WEBPACK_DEFAULT_EXPORT__});__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/react/index.js");var _components_action_buttons_ActionButton__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./components/action-buttons/ActionButton.tsx"),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/react/jsx-runtime.js");const __WEBPACK_DEFAULT_EXPORT__={title:"owncast/External action button",component:_components_action_buttons_ActionButton__WEBPACK_IMPORTED_MODULE_3__.Z,parameters:{}};var Template=function Template(args){return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_components_action_buttons_ActionButton__WEBPACK_IMPORTED_MODULE_3__.Z,Object.assign({},args))};Template.displayName="Template";var Example1=Template.bind({});Example1.args={action:{url:"https://owncast.online/docs",title:"Documentation",description:"Owncast Documentation",icon:"https://owncast.online/images/logo.svg",color:"#5232c8",openExternally:!1}};var Example2=Template.bind({});Example2.args={action:{url:"https://opencollective.com/embed/owncast/donate",title:"Support Owncast",description:"Contribute to Owncast",icon:"https://opencollective.com/static/images/opencollective-icon.svg",color:"#2b4863",openExternally:!1}},Example1.parameters=Object.assign({storySource:{source:"args => "}},Example1.parameters),Example2.parameters=Object.assign({storySource:{source:"args => "}},Example2.parameters)},"./stories/ActionButtonRow.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Example1:()=>Example1,default:()=>ActionButtonRow_stories});__webpack_require__("./node_modules/core-js/modules/es.array.map.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/react/index.js");var injectStylesIntoStyleTag=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),injectStylesIntoStyleTag_default=__webpack_require__.n(injectStylesIntoStyleTag),ActionButtons_module=__webpack_require__("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./components/action-buttons/ActionButtons.module.scss"),options={insert:"head",singleton:!1};injectStylesIntoStyleTag_default()(ActionButtons_module.Z,options);const action_buttons_ActionButtons_module=ActionButtons_module.Z.locals||{};var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function ActionButtonRow(props){var children=props.children;return(0,jsx_runtime.jsx)("div",{className:""+action_buttons_ActionButtons_module.row,children})}ActionButtonRow.displayName="ActionButtonRow";try{ActionButtonRow.displayName="ActionButtonRow",ActionButtonRow.__docgenInfo={description:"",displayName:"ActionButtonRow",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/action-buttons/ActionButtonRow.tsx#ActionButtonRow"]={docgenInfo:ActionButtonRow.__docgenInfo,name:"ActionButtonRow",path:"components/action-buttons/ActionButtonRow.tsx#ActionButtonRow"})}catch(__react_docgen_typescript_loader_error){}var ActionButton=__webpack_require__("./components/action-buttons/ActionButton.tsx");const ActionButtonRow_stories={title:"owncast/External action button row",component:ActionButtonRow,parameters:{}};var Template=function Template(args){var buttons=args.buttons;return(0,jsx_runtime.jsx)(ActionButtonRow,{children:buttons})};Template.displayName="Template";var buttons=[{url:"https://owncast.online/docs",title:"Documentation",description:"Owncast Documentation",icon:"https://owncast.online/images/logo.svg",color:"#5232c8",openExternally:!1},{url:"https://opencollective.com/embed/owncast/donate",title:"Support Owncast",description:"Contribute to Owncast",icon:"https://opencollective.com/static/images/opencollective-icon.svg",color:"#2b4863",openExternally:!1}].map((function(action){return(0,jsx_runtime.jsx)(ActionButton.Z,{action})})),Example1=Template.bind({});Example1.args={buttons},Example1.parameters=Object.assign({storySource:{source:"args => {\n const { buttons } = args as any;\n return {buttons};\n}"}},Example1.parameters)},"./stories/AuthModal.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,default:()=>AuthModal_stories});__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/react/index.js");var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function AuthModal(props){return(0,jsx_runtime.jsx)("div",{children:"Component goes here"})}AuthModal.displayName="AuthModal";try{AuthModal.displayName="AuthModal",AuthModal.__docgenInfo={description:"",displayName:"AuthModal",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/modals/AuthModal.tsx#AuthModal"]={docgenInfo:AuthModal.__docgenInfo,name:"AuthModal",path:"components/modals/AuthModal.tsx#AuthModal"})}catch(__react_docgen_typescript_loader_error){}var Example=function Example(){return(0,jsx_runtime.jsx)("div",{children:(0,jsx_runtime.jsx)(AuthModal,{})})};Example.displayName="Example";const AuthModal_stories={title:"owncast/Modals/Auth",component:AuthModal,parameters:{}};var Template=function Template(args){return(0,jsx_runtime.jsx)(Example,{})};Template.displayName="Template";var Basic=Template.bind({});Basic.parameters=Object.assign({storySource:{source:"args => "}},Basic.parameters)},"./stories/BrowserNotifyModal.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,default:()=>BrowserNotifyModal_stories});__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/react/index.js");var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function BrowserNotifyModal(props){return(0,jsx_runtime.jsx)("div",{children:"Component goes here"})}BrowserNotifyModal.displayName="BrowserNotifyModal";try{BrowserNotifyModal.displayName="BrowserNotifyModal",BrowserNotifyModal.__docgenInfo={description:"",displayName:"BrowserNotifyModal",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/modals/BrowserNotifyModal.tsx#BrowserNotifyModal"]={docgenInfo:BrowserNotifyModal.__docgenInfo,name:"BrowserNotifyModal",path:"components/modals/BrowserNotifyModal.tsx#BrowserNotifyModal"})}catch(__react_docgen_typescript_loader_error){}var Example=function Example(){return(0,jsx_runtime.jsx)("div",{children:(0,jsx_runtime.jsx)(BrowserNotifyModal,{})})};Example.displayName="Example";const BrowserNotifyModal_stories={title:"owncast/Modals/Browser Notifications",component:BrowserNotifyModal,parameters:{}};var Template=function Template(args){return(0,jsx_runtime.jsx)(Example,{})};Template.displayName="Template";var Basic=Template.bind({});Basic.parameters=Object.assign({storySource:{source:"args => "}},Basic.parameters)},"./stories/ChatActionMessage.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,default:()=>ChatActionMessage_stories});__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/react/index.js");var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function ChatSystemMessage(props){return(0,jsx_runtime.jsx)("div",{children:"Component goes here"})}ChatSystemMessage.displayName="ChatSystemMessage";try{ChatActionMessage.displayName="ChatActionMessage",ChatActionMessage.__docgenInfo={description:"",displayName:"ChatActionMessage",props:{message:{defaultValue:null,description:"",name:"message",required:!0,type:{name:"ChatMessage"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/chat/ChatActionMessage.tsx#ChatActionMessage"]={docgenInfo:ChatActionMessage.__docgenInfo,name:"ChatActionMessage",path:"components/chat/ChatActionMessage.tsx#ChatActionMessage"})}catch(__react_docgen_typescript_loader_error){}const ChatActionMessage_stories={title:"owncast/Chat/Messages/Chat action",component:ChatSystemMessage,parameters:{}};var Template=function Template(args){return(0,jsx_runtime.jsx)(ChatSystemMessage,Object.assign({},args))};Template.displayName="Template";var Basic=Template.bind({});Basic.parameters=Object.assign({storySource:{source:"args => "}},Basic.parameters)},"./stories/ChatContainer.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Example:()=>Example,Loading:()=>Loading,SingleMessage:()=>SingleMessage,default:()=>ChatContainer_stories});__webpack_require__("./node_modules/core-js/modules/es.array.concat.js"),__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/core-js/modules/es.array.is-array.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js"),__webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js"),__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.slice.js"),__webpack_require__("./node_modules/core-js/modules/es.function.name.js"),__webpack_require__("./node_modules/core-js/modules/es.array.from.js");var react=__webpack_require__("./node_modules/react/index.js"),spin=__webpack_require__("./node_modules/antd/es/spin/index.js"),index_m=__webpack_require__("./node_modules/react-virtuoso/dist/index.m.js"),LoadingOutlined=__webpack_require__("./node_modules/@ant-design/icons/es/icons/LoadingOutlined.js"),application_state=__webpack_require__("./interfaces/application-state.ts"),ChatUserMessage=__webpack_require__("./components/chat/ChatUserMessage.tsx"),socket_events=__webpack_require__("./interfaces/socket-events.ts"),jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function ChatContainer(props){var messages=props.messages,loading=props.state===application_state.gG.Loading,chatContainerRef=(0,react.useRef)(null),spinIcon=(0,jsx_runtime.jsx)(LoadingOutlined.Z,{style:{fontSize:"32px"},spin:!0});return(0,jsx_runtime.jsxs)("div",{children:[(0,jsx_runtime.jsx)("h1",{children:"Chat"}),(0,jsx_runtime.jsx)(spin.Z,{spinning:loading,indicator:spinIcon}),(0,jsx_runtime.jsx)(index_m.OO,{style:{height:"80vh"},ref:chatContainerRef,initialTopMostItemIndex:999,data:messages,itemContent:function itemContent(index,message){return function getViewForMessage(message){return message.type===socket_events.C.CHAT?(0,jsx_runtime.jsx)(ChatUserMessage.Z,{message,showModeratorMenu:!1}):null}(message)},followOutput:"smooth"})]})}ChatContainer.displayName="ChatContainer";try{ChatContainer.displayName="ChatContainer",ChatContainer.__docgenInfo={description:"",displayName:"ChatContainer",props:{messages:{defaultValue:null,description:"",name:"messages",required:!0,type:{name:"ChatMessage[]"}},state:{defaultValue:null,description:"",name:"state",required:!0,type:{name:"enum",value:[{value:"0"},{value:"1"},{value:"2"},{value:"3"}]}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/chat/ChatContainer.tsx#ChatContainer"]={docgenInfo:ChatContainer.__docgenInfo,name:"ChatContainer",path:"components/chat/ChatContainer.tsx#ChatContainer"})}catch(__react_docgen_typescript_loader_error){}function _toConsumableArray(arr){return function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}(arr)||function _iterableToArray(iter){if("undefined"!=typeof Symbol&&null!=iter[Symbol.iterator]||null!=iter["@@iterator"])return Array.from(iter)}(arr)||_unsupportedIterableToArray(arr)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _slicedToArray(arr,i){return function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}(arr)||function _iterableToArrayLimit(arr,i){var _i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null==_i)return;var _s,_e,_arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}(arr,i)||_unsupportedIterableToArray(arr,i)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(o,minLen){if(o){if("string"==typeof o)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);return"Object"===n&&o.constructor&&(n=o.constructor.name),"Map"===n||"Set"===n?Array.from(o):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(o,minLen):void 0}}function _arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i "}},Example.parameters),SingleMessage.parameters=Object.assign({storySource:{source:"args => "}},SingleMessage.parameters),Loading.parameters=Object.assign({storySource:{source:"args => "}},Loading.parameters)},"./stories/ChatModerationNotification.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,default:()=>ChatModerationNotification_stories});__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/react/index.js");var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function ChatModerationNotification(props){return(0,jsx_runtime.jsx)("div",{children:"You are now a moderator notification component goes here"})}ChatModerationNotification.displayName="ChatModerationNotification";try{ChatModeratorNotification.displayName="ChatModeratorNotification",ChatModeratorNotification.__docgenInfo={description:"",displayName:"ChatModeratorNotification",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/chat/ChatModeratorNotification.tsx#ChatModeratorNotification"]={docgenInfo:ChatModeratorNotification.__docgenInfo,name:"ChatModeratorNotification",path:"components/chat/ChatModeratorNotification.tsx#ChatModeratorNotification"})}catch(__react_docgen_typescript_loader_error){}const ChatModerationNotification_stories={title:"owncast/Chat/Messages/Moderator notification",component:ChatModerationNotification,parameters:{}};var Template=function Template(args){return(0,jsx_runtime.jsx)(ChatModerationNotification,{})};Template.displayName="Template";var Basic=Template.bind({});Basic.parameters=Object.assign({storySource:{source:"args => (\n \n)"}},Basic.parameters)},"./stories/ChatSocialMessage.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,default:()=>ChatSocialMessage_stories});__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/react/index.js");var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function ChatSocialMessage(props){return(0,jsx_runtime.jsx)("div",{children:"Component goes here"})}ChatSocialMessage.displayName="ChatSocialMessage";try{ChatSocialMessage.displayName="ChatSocialMessage",ChatSocialMessage.__docgenInfo={description:"",displayName:"ChatSocialMessage",props:{message:{defaultValue:null,description:"",name:"message",required:!0,type:{name:"ChatMessage"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/chat/ChatSocialMessage.tsx#ChatSocialMessage"]={docgenInfo:ChatSocialMessage.__docgenInfo,name:"ChatSocialMessage",path:"components/chat/ChatSocialMessage.tsx#ChatSocialMessage"})}catch(__react_docgen_typescript_loader_error){}const ChatSocialMessage_stories={title:"owncast/Chat/Messages/Social-fediverse event",component:ChatSocialMessage,parameters:{}};var Template=function Template(args){return(0,jsx_runtime.jsx)(ChatSocialMessage,Object.assign({},args))};Template.displayName="Template";var Basic=Template.bind({});Basic.parameters=Object.assign({storySource:{source:"args => "}},Basic.parameters)},"./stories/ChatSystemMessage.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,default:()=>ChatSystemMessage_stories});__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/react/index.js");var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function ChatSystemMessage(props){return(0,jsx_runtime.jsx)("div",{children:"Component goes here"})}ChatSystemMessage.displayName="ChatSystemMessage";try{ChatSystemMessage.displayName="ChatSystemMessage",ChatSystemMessage.__docgenInfo={description:"",displayName:"ChatSystemMessage",props:{message:{defaultValue:null,description:"",name:"message",required:!0,type:{name:"ChatMessage"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/chat/ChatSystemMessage.tsx#ChatSystemMessage"]={docgenInfo:ChatSystemMessage.__docgenInfo,name:"ChatSystemMessage",path:"components/chat/ChatSystemMessage.tsx#ChatSystemMessage"})}catch(__react_docgen_typescript_loader_error){}const ChatSystemMessage_stories={title:"owncast/Chat/Messages/System",component:ChatSystemMessage,parameters:{}};var Template=function Template(args){return(0,jsx_runtime.jsx)(ChatSystemMessage,Object.assign({},args))};Template.displayName="Template";var Basic=Template.bind({});Basic.parameters=Object.assign({storySource:{source:"args => "}},Basic.parameters)},"./stories/ChatTextField.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Example:()=>Example,LongerMessage:()=>LongerMessage,default:()=>ChatTextField_stories});__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js");var react=__webpack_require__("./node_modules/react/index.js"),recoil=__webpack_require__("./node_modules/recoil/es/recoil.js"),SmileOutlined=(__webpack_require__("./node_modules/core-js/modules/es.array.join.js"),__webpack_require__("./node_modules/core-js/modules/es.array.map.js"),__webpack_require__("./node_modules/core-js/modules/es.array.is-array.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.description.js"),__webpack_require__("./node_modules/core-js/modules/es.object.to-string.js"),__webpack_require__("./node_modules/core-js/modules/es.symbol.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.string.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.iterator.js"),__webpack_require__("./node_modules/core-js/modules/web.dom-collections.iterator.js"),__webpack_require__("./node_modules/core-js/modules/es.array.slice.js"),__webpack_require__("./node_modules/core-js/modules/es.function.name.js"),__webpack_require__("./node_modules/core-js/modules/es.array.from.js"),__webpack_require__("./node_modules/@ant-design/icons/es/icons/SmileOutlined.js")),es_button=__webpack_require__("./node_modules/antd/es/button/index.js"),popover=__webpack_require__("./node_modules/antd/es/popover/index.js"),index_es=__webpack_require__("./node_modules/slate/dist/index.es.js"),dist_index_es=__webpack_require__("./node_modules/slate-react/dist/index.es.js"),jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function EmojiPicker(props){var ref=(0,react.useRef)();return(0,jsx_runtime.jsx)("div",{ref})}EmojiPicker.displayName="EmojiPicker";try{EmojiPicker.displayName="EmojiPicker",EmojiPicker.__docgenInfo={description:"",displayName:"EmojiPicker",props:{onEmojiSelect:{defaultValue:null,description:"",name:"onEmojiSelect",required:!0,type:{name:"(emoji: string) => void"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/chat/ChatTextField/EmojiPicker.tsx#EmojiPicker"]={docgenInfo:EmojiPicker.__docgenInfo,name:"EmojiPicker",path:"components/chat/ChatTextField/EmojiPicker.tsx#EmojiPicker"})}catch(__react_docgen_typescript_loader_error){}var ClientConfigStore=__webpack_require__("./components/stores/ClientConfigStore.tsx"),socket_events=__webpack_require__("./interfaces/socket-events.ts");function _slicedToArray(arr,i){return function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}(arr)||function _iterableToArrayLimit(arr,i){var _i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null==_i)return;var _s,_e,_arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}(arr,i)||function _unsupportedIterableToArray(o,minLen){if(!o)return;if("string"==typeof o)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);"Object"===n&&o.constructor&&(n=o.constructor.name);if("Map"===n||"Set"===n)return Array.from(o);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}(arr,i)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i"+children+"

";case"image":return'emoji';default:return children}};function ChatTextField(props){var _useState2=_slicedToArray((0,react.useState)(!1),2),showEmojis=_useState2[0],setShowEmojis=_useState2[1],websocketService=(0,recoil.sJ)(ClientConfigStore.Gt),_useState3=(0,react.useState)((function(){return function withImages(editor){var isVoid=editor.isVoid;return editor.isVoid=function(element){return"image"===element.type||isVoid(element)},editor.isInline=function(element){return"image"===element.type},editor}((0,dist_index_es.BU)((0,index_es.Jh)()))})),editor=_slicedToArray(_useState3,1)[0],sendMessage=function sendMessage(){if(websocketService){var message=serialize(editor);websocketService.send({type:socket_events.C.CHAT,body:message}),index_es.YR.select(editor,[0,editor.children.length-1]),index_es.YR.delete(editor)}else console.log("websocketService is not defined")};return(0,jsx_runtime.jsxs)("div",{children:[(0,jsx_runtime.jsx)(dist_index_es.mH,{editor,value:[],onChange:function handleChange(){},children:(0,jsx_runtime.jsx)(dist_index_es.CX,{onKeyDown:function onKeyDown(e){"Enter"===e.key&&(e.preventDefault(),sendMessage())},renderElement:function renderElement(p){return(0,jsx_runtime.jsx)(Element,Object.assign({},p))},placeholder:"Chat message goes here..."})}),(0,jsx_runtime.jsx)(es_button.Z,{type:"default",ghost:!0,title:"Emoji",onClick:function onClick(){return setShowEmojis(!showEmojis)},children:(0,jsx_runtime.jsx)(SmileOutlined.Z,{style:{color:"rgba(0,0,0,.45)"}})}),(0,jsx_runtime.jsx)(es_button.Z,{size:"small",type:"primary",onClick:sendMessage,children:"Submit"}),(0,jsx_runtime.jsx)(popover.Z,{content:(0,jsx_runtime.jsx)(EmojiPicker,{onEmojiSelect:function handleEmojiSelect(emoji){if(console.log(emoji),emoji.native){var _native=emoji.native;index_es.YR.insertText(editor,_native)}else emoji.src}}),trigger:"click",onVisibleChange:function onVisibleChange(visible){return setShowEmojis(visible)},visible:showEmojis,placement:"bottomLeft"})]})}ChatTextField.displayName="ChatTextField",ChatTextField.defaultProps={value:""};try{ChatTextField.displayName="ChatTextField",ChatTextField.__docgenInfo={description:"",displayName:"ChatTextField",props:{value:{defaultValue:{value:""},description:"",name:"value",required:!1,type:{name:"string"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/chat/ChatTextField/ChatTextField.tsx#ChatTextField"]={docgenInfo:ChatTextField.__docgenInfo,name:"ChatTextField",path:"components/chat/ChatTextField/ChatTextField.tsx#ChatTextField"})}catch(__react_docgen_typescript_loader_error){}const ChatTextField_stories={title:"owncast/Chat/Input text field",component:ChatTextField,parameters:{docs:{description:{component:"\n- This is a element using `contentEditable` in order to support rendering emoji images inline.\n- Emoji button shows emoji picker.\n- Should show one line by default, but grow to two lines as needed.\n- The Send button should be hidden for desktop layouts and be shown for mobile layouts."}}}};var Template=function Template(args){return(0,jsx_runtime.jsx)(recoil.Wh,{children:(0,jsx_runtime.jsx)(ChatTextField,Object.assign({},args))})};Template.displayName="Template";var Example=Template.bind({}),LongerMessage=Template.bind({});LongerMessage.args={value:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."},LongerMessage.parameters={docs:{description:{story:"Should display two lines of text and scroll to display more."}}},Example.parameters=Object.assign({storySource:{source:"args => (\n \n \n \n)"}},Example.parameters),LongerMessage.parameters=Object.assign({storySource:{source:"args => (\n \n \n \n)"}},LongerMessage.parameters)},"./stories/ChatUserMessage.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{FromAuthenticatedUser:()=>FromAuthenticatedUser,FromModeratorUser:()=>FromModeratorUser,WithModeratorMenu:()=>WithModeratorMenu,WithoutModeratorMenu:()=>WithoutModeratorMenu,default:()=>__WEBPACK_DEFAULT_EXPORT__});__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/react/index.js");var _components_chat_ChatUserMessage__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./components/chat/ChatUserMessage.tsx"),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/react/jsx-runtime.js");const __WEBPACK_DEFAULT_EXPORT__={title:"owncast/Chat/Messages/Standard user",component:_components_chat_ChatUserMessage__WEBPACK_IMPORTED_MODULE_3__.Z,parameters:{}};var Template=function Template(args){return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_components_chat_ChatUserMessage__WEBPACK_IMPORTED_MODULE_3__.Z,Object.assign({},args))};Template.displayName="Template";var standardMessage=JSON.parse('{\n "type": "CHAT",\n "id": "wY-MEXwnR",\n "timestamp": "2022-04-28T20:30:27.001762726Z",\n "user": {\n "id": "h_5GQ6E7R",\n "displayName": "EliteMooseTaskForce",\n "displayColor": 329,\n "createdAt": "2022-03-24T03:52:37.966584694Z",\n "previousNames": ["gifted-nobel", "EliteMooseTaskForce"],\n "nameChangedAt": "2022-04-26T23:56:05.531287897Z",\n "scopes": []\n },\n "body": "Test message from a regular user."}'),moderatorMessage=JSON.parse('{\n "type": "CHAT",\n "id": "wY-MEXwnR",\n "timestamp": "2022-04-28T20:30:27.001762726Z",\n "user": {\n "id": "h_5GQ6E7R",\n "displayName": "EliteMooseTaskForce",\n "displayColor": 329,\n "createdAt": "2022-03-24T03:52:37.966584694Z",\n "previousNames": ["gifted-nobel", "EliteMooseTaskForce"],\n "nameChangedAt": "2022-04-26T23:56:05.531287897Z",\n "scopes": ["moderator"]\n },\n "body": "I am a moderator user."}'),authenticatedUserMessage=JSON.parse('{\n "type": "CHAT",\n "id": "wY-MEXwnR",\n "timestamp": "2022-04-28T20:30:27.001762726Z",\n "user": {\n "id": "h_5GQ6E7R",\n "displayName": "EliteMooseTaskForce",\n "displayColor": 329,\n "createdAt": "2022-03-24T03:52:37.966584694Z",\n "previousNames": ["gifted-nobel", "EliteMooseTaskForce"],\n "nameChangedAt": "2022-04-26T23:56:05.531287897Z",\n "authenticated": true,\n "scopes": []\n },\n "body": "I am an authenticated user."}'),WithoutModeratorMenu=Template.bind({});WithoutModeratorMenu.args={message:standardMessage,showModeratorMenu:!1};var WithModeratorMenu=Template.bind({});WithModeratorMenu.args={message:standardMessage,showModeratorMenu:!0};var FromModeratorUser=Template.bind({});FromModeratorUser.args={message:moderatorMessage,showModeratorMenu:!1};var FromAuthenticatedUser=Template.bind({});FromAuthenticatedUser.args={message:authenticatedUserMessage,showModeratorMenu:!1},WithoutModeratorMenu.parameters=Object.assign({storySource:{source:"args => "}},WithoutModeratorMenu.parameters),WithModeratorMenu.parameters=Object.assign({storySource:{source:"args => "}},WithModeratorMenu.parameters),FromModeratorUser.parameters=Object.assign({storySource:{source:"args => "}},FromModeratorUser.parameters),FromAuthenticatedUser.parameters=Object.assign({storySource:{source:"args => "}},FromAuthenticatedUser.parameters)},"./stories/CustomPageContent.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Example1:()=>Example1,Example2:()=>Example2,Example3:()=>Example3,default:()=>CustomPageContent_stories});__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/react/index.js");var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function CustomPageContent(props){var content=props.content;return(0,jsx_runtime.jsx)("div",{dangerouslySetInnerHTML:{__html:content}})}CustomPageContent.displayName="CustomPageContent";try{CustomPageContent.displayName="CustomPageContent",CustomPageContent.__docgenInfo={description:"",displayName:"CustomPageContent",props:{content:{defaultValue:null,description:"",name:"content",required:!0,type:{name:"string"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/CustomPageContent.tsx#CustomPageContent"]={docgenInfo:CustomPageContent.__docgenInfo,name:"CustomPageContent",path:"components/CustomPageContent.tsx#CustomPageContent"})}catch(__react_docgen_typescript_loader_error){}const CustomPageContent_stories={title:"owncast/Custom page content",component:CustomPageContent,parameters:{}};var Template=function Template(args){return(0,jsx_runtime.jsx)(CustomPageContent,Object.assign({},args))};Template.displayName="Template";var Example1=Template.bind({});Example1.args={content:'"

Owncast TV is a 24/7 live stream run by the Owncast project as an example of the software in use. Learn more about how you can have your own live stream that you completely control at owncast.online.

\n

This example instance shows how you can customize the page by changing things like fonts and colors as well as how you can add custom action buttons such as a donation button.

\n

Stay tuned in to learn about Owncast, hear from some streamers about their experiences using it, some bits and pieces of Owncast promo material, and highlights from other projects that are pretty cool.

\n

But when you\'ve seen what we have to share with you, do yourself a favor and visit the Owncast Directory and find an awesome stream to check out!

\n
\n

Links to content seen in this stream

\n",'};var Example2=Template.bind({});Example2.args={content:'"

WHAT IS HAPPENING HERE

\n

Game That Tune Radio is live with fantastic video game music streaming around the clock! We\'ve got music from NES, SNES, Sega Genesis, Nintendo 64, Playstation, PC, and more coming all the time! If it\'s been featured on our podcast, it\'s gonna be on this stream! We only play three songs from each game on our podcast, and we decided that everyone needs more tunes!

\n

We\'ll be updating this livestream with new games as they\'re played on the show, including your requests! To get priority in requesting games for the show, check out https://www.patreon.com/GameThatTune

\n

Be sure to check out our live recordings of the Game That Tune podcast! We broadcast every Wednesday night at 9 PM EST on our YouTube channel as well as https://www.twitch.tv/GameThatTune and https://www.facebook.com/GameThatTune\nTune in and join in on the fun! Find the podcast in iTunes every Wednesday morning or head to https://www.gamethattune.com!

\n

Visit https://www.patreon.com/GameThatTune to help us keep up this live stream and upgrade our equipment for the live show! We\'ve got exclusive mixtapes for our patrons, and lots more stuff planned for the future, so consider helping us out!

\n

HOW IT WORKS

\n

Featuring music from over 1000 games! Check out https://music.gamethattune.com/songs for the full list and make a request from your favorite game!

\n

Now that you\'ve seen the list of games, make a request in the chat!

\n

!sr + anything = general search
\n!gr + game title = random song from matching game
\n!cr + composer name = random song from matching composer
\n!tr + anything = random result only searching song titles
\n!rr + anything = random result from all searchable fields
\n!game gtt = starts a round of our guessing game for bonus points!

\n

We have gifs!

\n

Wanna see your favorite gif on screen? type !summon followed by the gif name! Want your favorite gif to take over the video? Type !spawn followed by the gif name!

\n

Still have questions? Ask the chatbot! type !info to...wait for it...get more info!

\n

Thanks for listening!

"'};var Example3=Template.bind({});Example3.args={content:'
\n

The upcoming streams

\n

Thursday, Apr. 28:

\n\n

Friday, Apr. 29:

\n\n

Saturday, Apr. 30:

\n
    \n
  • 19:00 CEST / 17:00 UTC / 1:00 pm EDT
    \nImmer Samstags:Syberia II“ (deutsch)
  • \n
  • 23:30 CEST / 21:30 UTC / 5:30 pm EDT
    \nNight Walk:Linux Game Jam 2022“ (english)
  • \n
\n

Sunday, May 1:

\n
    \n
  • 22:00 CEST / 20:00 UTC / 4:00 pm EDT
    \nSpacy Sunday:Mass Effect 2 LE“ (english)
  • \n
\n

Monday, May 2:

\n
    \n
  • 22:00 CEST / 20:00 UTC / 4:00 pm EDT
    \nMonday Tactics:BATTLETECH“ (english)
  • \n
\n

Tuesday, May 3:

\n
    \n
  • 22:00 CEST / 20:00 UTC / 4:00 pm EDT
    \nEpic Tuesday:Terraformers“ (english)
  • \n
\n

Wednesday, May 4:

\n
    \n
  • 22:00 CEST / 20:00 UTC / 4:00 pm EDT
    \nNarrative Wednesday:Zniw Adventure“ (english)
  • \n
\n


\nI plan a duration of about 4 to 5 hours per stream.

\n

The VODs of my streams will be available on YouTube channel and on my hatVODs PeerTube channel (the last 14 days). Some additional videos can also be found on my haTube PeerTube channel.

\n

If this channel is offline you might want to checkout other great Owncast streams at the Owncast Directory.

\n
\n

Pro-tips for new viewers

\n

Change chat name

\n

When you visit an Owncast channel for the first time then you\'ve been given a random chat name. You see this name on the top right above the chat box. Click on that name in order to pick your own preferred chat name.

\n

Chat formatting

\n

The chat supports some basic Markdown, like *Italic*, **Bold** and `Code blocks` (from the Owncast docs)

\n

Player shortcuts

\n

The web video player has some keyboard shortcuts for you to use:

\n
    \n
  • Play/Pause - Spacebar
  • \n
  • Volume up - 0
  • \n
  • Volume down - 9
  • \n
  • Mute - m
  • \n
  • Toggle fullscreen - f
  • \n
  • Toggle chat - c
  • \n
\n

(from the Owncast docs)

\n

Watch Owncast via IPTV

\n

If you have a tv platform/set top box (apple, amazon, roku) that you can install IPTV apps on then you can add the url https://directory.owncast.online/api/iptv to watch this and other Owncast channels on the big screen.

\n

Watch the stream in a media player

\n

The stream is using HLS standard, so you can use your favorite media player to watch the stream using the url https://live.hatnix.net/hls/stream.m3u8

\n

Joining chat-only

\n

In case you want to join only the chat (because you\'re watching via IPTV?) you can do that using this url: https://live.hatnix.net/embed/chat/readwrite

\n
\n

About me and this channel

\n

My name is hatniX (or Frank), 48 years old. I\'m a PC gamer for over 30 years now, playing games on Linux since 1998. And this is what you\'ll see here on this channel, me playing games on Linux. Preferable with a focus on storytelling and atmosphere, rather than "pro-gaming".

\n

Fediverse

\n

You can follow this server in the Fediverse: @hatnix@live.hatnix.net, in order to get announcements when the stream starts.

\n

Owncast

\n

This server is powered by Owncast. Check out the Owncast-Browser-Extension for Firefox or for Chrome browsers to see whether I\'m live. Another great way to see when I (or other Owncast streamers) go online, is to follow the Owncast bots on Mastodon or Twitter.

\n

Chat bot

\n

I\'m using an experimantal chat bot here, which I have written specifically for Owncast. Use !help in chat to get a list of the available commands. The source code of the bot is available at github.com/hatniX/hatbot (Public Domain).

\n

In case you wonder how I display the chat onscreen, incl. the fade effect, check out my CSS file.

\n

Music

\n

The music here, if not part of the game I\'m playing, is provided by Jamando. I\'ve got a license for livestream music for gaming.

\n
\n

How you can support me

\n

If you want to support me, visit my streams, either lurk or be active in chat. You can also help me getting more attention, by telling others about my channel, or just boosting my stream announcements on Mastodon or retweeting them on Twitter.

\n

Liberapay

\n

Liberapay is a non-profit subscription platform, which means that they don\'t take a share. If you like, you can support me there, either with a one-time or a regular donation. Thank you so much!

\n

Ko-fi

\n

In case you want to buy me a coffee then you can do so at ko-fi. I appreciate that a lot!

\n

Support is never required, but always much appreciated. Thank you very much! <3

\n
\n

My tech specs

\n

PC Hardware:

\n
    \n
  • CPU: AMD Ryzen 9 5900X
  • \n
  • RAM: 32 GB
  • \n
  • GPU: AMD Radeon RX 6900 XT (16 GB)
  • \n
  • Keyboard: Logitech K295
  • \n
  • Trackball: Kensington Expert Mouse Trackball
  • \n
  • Mouse 1: Logitech M220
  • \n
  • Mouse 2: Razer Naga Left Handed Edition
  • \n
  • Microphone: Blue Yeti
  • \n
  • Earbuds: Linklike Classic 2
  • \n
  • Headphone: beyerdynamic DT 990 Pro
  • \n
  • Webcam(s): Vitade 960A Pro
  • \n
\n

PC Software:

\n
    \n
  • OS: Manjaro Linux
  • \n
  • Kernel: 5.17.1-3-MANJARO x86_64
  • \n
  • Desktop: Xfce 4.16.0
  • \n
  • Mesa: 21.3.8
  • \n
  • Broadcaster software: OBS Studio 27.2.4
  • \n
\n

Stream Server: Hetzner Cloud „CPX11“

\n
    \n
  • 2 vCPU AMD
  • \n
  • 2 GB RAM
  • \n
  • 40 GB disc
  • \n
  • 20TB Traffic
  • \n
  • Owncast v0.0.11
    \n​
  • \n
'},Example1.parameters=Object.assign({storySource:{source:"args => "}},Example1.parameters),Example2.parameters=Object.assign({storySource:{source:"args => "}},Example2.parameters),Example3.parameters=Object.assign({storySource:{source:"args => "}},Example3.parameters)},"./stories/FediAuthModal.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,default:()=>FediAuthModal_stories});__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/react/index.js");var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function FediAuthModal(props){return(0,jsx_runtime.jsx)("div",{children:"Component goes here"})}FediAuthModal.displayName="FediAuthModal";try{FediAuthModal.displayName="FediAuthModal",FediAuthModal.__docgenInfo={description:"",displayName:"FediAuthModal",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/modals/FediAuthModal.tsx#FediAuthModal"]={docgenInfo:FediAuthModal.__docgenInfo,name:"FediAuthModal",path:"components/modals/FediAuthModal.tsx#FediAuthModal"})}catch(__react_docgen_typescript_loader_error){}var Example=function Example(){return(0,jsx_runtime.jsx)("div",{children:(0,jsx_runtime.jsx)(FediAuthModal,{})})};Example.displayName="Example";const FediAuthModal_stories={title:"owncast/Modals/FediAuth",component:FediAuthModal,parameters:{}};var Template=function Template(args){return(0,jsx_runtime.jsx)(Example,{})};Template.displayName="Template";var Basic=Template.bind({});Basic.parameters=Object.assign({storySource:{source:"args => "}},Basic.parameters)},"./stories/FollowModal.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,default:()=>FollowModal_stories});__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/react/index.js");var jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function FollowModal(props){return(0,jsx_runtime.jsx)("div",{children:"Component goes here"})}FollowModal.displayName="FollowModal";try{FollowModal.displayName="FollowModal",FollowModal.__docgenInfo={description:"",displayName:"FollowModal",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/modals/FollowModal.tsx#FollowModal"]={docgenInfo:FollowModal.__docgenInfo,name:"FollowModal",path:"components/modals/FollowModal.tsx#FollowModal"})}catch(__react_docgen_typescript_loader_error){}var Example=function Example(){return(0,jsx_runtime.jsx)("div",{children:(0,jsx_runtime.jsx)(FollowModal,{})})};Example.displayName="Example";const FollowModal_stories={title:"owncast/Modals/Follow",component:FollowModal,parameters:{}};var Template=function Template(args){return(0,jsx_runtime.jsx)(Example,{})};Template.displayName="Template";var Basic=Template.bind({});Basic.parameters=Object.assign({storySource:{source:"args => "}},Basic.parameters)},"./stories/Follower.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Example:()=>Example,default:()=>__WEBPACK_DEFAULT_EXPORT__});__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/react/index.js");var _components_Follower__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./components/Follower.tsx"),react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/react/jsx-runtime.js");const __WEBPACK_DEFAULT_EXPORT__={title:"owncast/Follower",component:_components_Follower__WEBPACK_IMPORTED_MODULE_3__.Z,parameters:{}};var Template=function Template(args){return(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_components_Follower__WEBPACK_IMPORTED_MODULE_3__.Z,Object.assign({},args))};Template.displayName="Template";var Example=Template.bind({});Example.args={follower:{name:"John Doe",description:"User",username:"@account@domain.tld",image:"https://avatars0.githubusercontent.com/u/1234?s=460&v=4",link:"https://yahoo.com"}},Example.parameters=Object.assign({storySource:{source:"args => "}},Example.parameters)},"./stories/Followercollection.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Example:()=>Example,default:()=>Followercollection_stories});__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/react/index.js"),__webpack_require__("./node_modules/core-js/modules/es.array.map.js"),__webpack_require__("./node_modules/core-js/modules/es.string.link.js");var pagination=__webpack_require__("./node_modules/antd/es/pagination/index.js"),Follower=__webpack_require__("./components/Follower.tsx"),jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js");function FollowerCollection(props){var followers=props.followers,total=props.total,pages=Math.ceil(total/24);return(0,jsx_runtime.jsxs)("div",{children:[followers.map((function(follower){return(0,jsx_runtime.jsx)(Follower.Z,{follower},follower.link)})),(0,jsx_runtime.jsx)(pagination.Z,{current:1,pageSize:24,total:pages||1})]})}FollowerCollection.displayName="FollowerCollection";try{FollowersCollection.displayName="FollowersCollection",FollowersCollection.__docgenInfo={description:"",displayName:"FollowersCollection",props:{total:{defaultValue:null,description:"",name:"total",required:!0,type:{name:"number"}},followers:{defaultValue:null,description:"",name:"followers",required:!0,type:{name:"Follower[]"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/FollowersCollection.tsx#FollowersCollection"]={docgenInfo:FollowersCollection.__docgenInfo,name:"FollowersCollection",path:"components/FollowersCollection.tsx#FollowersCollection"})}catch(__react_docgen_typescript_loader_error){}const Followercollection_stories={title:"owncast/Followers collection",component:FollowerCollection,parameters:{}};var Template=function Template(args){return(0,jsx_runtime.jsx)(FollowerCollection,Object.assign({},args))};Template.displayName="Template";var Example=Template.bind({});Example.args={followers:[{link:"https://sun.minuscule.space/users/mardijker",name:"mardijker",username:"mardijker@sun.minuscule.space",image:"https://sun.minuscule.space/media/336af7ae5a2bcb508308eddb30b661ee2b2e15004a50795ee3ba0653ab190a93.jpg",timestamp:"2022-04-27T12:12:50Z",disabledAt:null},{link:"https://mastodon.online/users/Kallegro",name:"",username:"Kallegro@mastodon.online",image:"",timestamp:"2022-04-26T15:24:09Z",disabledAt:null},{link:"https://mastodon.online/users/kerfuffle",name:"Kerfuffle",username:"kerfuffle@mastodon.online",image:"https://files.mastodon.online/accounts/avatars/000/133/698/original/6aa73caa898b2d36.gif",timestamp:"2022-04-25T21:32:41Z",disabledAt:null},{link:"https://mastodon.uno/users/informapirata",name:"informapirata :privacypride:",username:"informapirata@mastodon.uno",image:"https://cdn.masto.host/mastodonuno/accounts/avatars/000/060/227/original/da4c44c716a339b8.png",timestamp:"2022-04-25T11:38:23Z",disabledAt:null},{link:"https://gamethattune.club/users/Raeanus",name:"Raeanus",username:"Raeanus@gamethattune.club",image:"https://gamethattune.club/media/a6e6ccea-34f8-4c2e-b9dc-ad8cca7fafd3/DD14E3BF-1358-4961-A900-42F3495F6BE2.jpeg",timestamp:"2022-04-23T00:46:56Z",disabledAt:null},{link:"https://mastodon.ml/users/latte",name:"Даниил",username:"latte@mastodon.ml",image:"https://mastodon.ml/system/accounts/avatars/107/837/409/059/601/386/original/c45ec2676489e363.png",timestamp:"2022-04-19T13:06:09Z",disabledAt:null},{link:"https://wienermobile.rentals/users/jprjr",name:"Johnny",username:"jprjr@wienermobile.rentals",image:"",timestamp:"2022-04-14T14:48:11Z",disabledAt:null},{link:"https://gamethattune.club/users/johnny",name:"John Regan",username:"johnny@gamethattune.club",image:"https://gamethattune.club/media/3c10cd89-866b-4604-ae40-39387fe17061/profile_large.jpg",timestamp:"2022-04-14T14:42:48Z",disabledAt:null},{link:"https://mastodon.social/users/MightyOwlbear",name:"Haunted Owlbear",username:"MightyOwlbear@mastodon.social",image:"https://files.mastodon.social/accounts/avatars/107/246/961/007/605/352/original/a86fc3db97a6de04.jpg",timestamp:"2022-04-14T13:33:03Z",disabledAt:null},{link:"https://gamethattune.club/users/thelinkfloyd",name:"thelinkfloyd",username:"thelinkfloyd@gamethattune.club",image:"",timestamp:"2022-04-05T12:23:32Z",disabledAt:null},{link:"https://gamethattune.club/users/TheBaffler",name:"TheBaffler",username:"TheBaffler@gamethattune.club",image:"",timestamp:"2022-04-04T19:50:08Z",disabledAt:null},{link:"https://gamethattune.club/users/Gttjessie",name:"Gttjessie",username:"Gttjessie@gamethattune.club",image:"",timestamp:"2022-03-30T20:18:47Z",disabledAt:null},{link:"https://cybre.space/users/fractal",name:"Le fractal",username:"fractal@cybre.space",image:"https://cybre.ams3.digitaloceanspaces.com/accounts/avatars/000/405/126/original/f1f2832a7bf1a967.png",timestamp:"2022-03-30T19:46:17Z",disabledAt:null},{link:"https://fosstodon.org/users/jumboshrimp",name:"alex 👑🦐",username:"jumboshrimp@fosstodon.org",image:"https://cdn.fosstodon.org/accounts/avatars/000/320/316/original/de43cda8653ade7f.jpg",timestamp:"2022-03-30T18:09:54Z",disabledAt:null},{link:"https://gamethattune.club/users/nvrslep303",name:"Tay",username:"nvrslep303@gamethattune.club",image:"https://gamethattune.club/media/5cf9bc27-8821-445a-86ce-8aa3704acf2d/pfp.jpg",timestamp:"2022-03-30T15:27:49Z",disabledAt:null},{link:"https://gamethattune.club/users/anKerrigan",name:"anKerrigan",username:"anKerrigan@gamethattune.club",image:"",timestamp:"2022-03-30T14:47:04Z",disabledAt:null},{link:"https://gamethattune.club/users/jgangsta187",name:"jgangsta187",username:"jgangsta187@gamethattune.club",image:"",timestamp:"2022-03-30T14:42:52Z",disabledAt:null},{link:"https://gamethattune.club/users/aekre",name:"aekre",username:"aekre@gamethattune.club",image:"",timestamp:"2022-03-30T14:41:32Z",disabledAt:null},{link:"https://gamethattune.club/users/mork",name:"mork",username:"mork@gamethattune.club",image:"",timestamp:"2022-03-30T14:37:10Z",disabledAt:null},{link:"https://fosstodon.org/users/owncast",name:"Owncast",username:"owncast@fosstodon.org",image:"https://cdn.fosstodon.org/accounts/avatars/107/017/218/425/829/465/original/f98ba4cd61f483ab.png",timestamp:"2022-03-29T21:38:02Z",disabledAt:null},{link:"https://cybre.space/users/wklew",name:"wally",username:"wklew@cybre.space",image:"https://cybre.ams3.digitaloceanspaces.com/accounts/avatars/000/308/727/original/7453e74f3e09b27b.jpg",timestamp:"2022-03-29T18:24:29Z",disabledAt:null},{link:"https://mastodon.social/users/nvrslep303",name:"Tay",username:"nvrslep303@mastodon.social",image:"https://files.mastodon.social/accounts/avatars/108/041/196/166/285/851/original/fc444dd6096381af.jpg",timestamp:"2022-03-29T18:19:31Z",disabledAt:null},{link:"https://mastodon.social/users/morky",name:"",username:"morky@mastodon.social",image:"",timestamp:"2022-03-29T18:17:59Z",disabledAt:null},{link:"https://mastodon.social/users/jgangsta187",name:"John H.",username:"jgangsta187@mastodon.social",image:"",timestamp:"2022-03-29T18:15:48Z",disabledAt:null},{link:"https://fosstodon.org/users/meisam",name:"Meisam 🇪🇺:archlinux:",username:"meisam@fosstodon.org",image:"https://cdn.fosstodon.org/accounts/avatars/000/264/096/original/54b4e6db97206bda.jpg",timestamp:"2022-03-29T18:12:21Z",disabledAt:null}]},Example.parameters=Object.assign({storySource:{source:"args => (\n \n)"}},Example.parameters)},"./stories/Footer.stories.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Example:()=>Example,default:()=>Footer_stories});__webpack_require__("./node_modules/core-js/modules/es.object.assign.js"),__webpack_require__("./node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("./node_modules/react/index.js");var layout=__webpack_require__("./node_modules/antd/es/layout/index.js"),jsx_runtime=__webpack_require__("./node_modules/react/jsx-runtime.js"),Footer=layout.Z.Footer;function FooterComponent(props){var version=props.version;return(0,jsx_runtime.jsxs)(Footer,{style:{textAlign:"center",height:"64px"},children:["Footer: Owncast ",version]})}FooterComponent.displayName="FooterComponent";try{Footer.displayName="Footer",Footer.__docgenInfo={description:"",displayName:"Footer",props:{version:{defaultValue:null,description:"",name:"version",required:!0,type:{name:"string"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["components/ui/Footer/Footer.tsx#Footer"]={docgenInfo:Footer.__docgenInfo,name:"Footer",path:"components/ui/Footer/Footer.tsx#Footer"})}catch(__react_docgen_typescript_loader_error){}const Footer_stories={title:"owncast/Footer",component:FooterComponent,parameters:{}};var Template=function Template(args){return(0,jsx_runtime.jsx)(FooterComponent,Object.assign({},args))};Template.displayName="Template";var Example=Template.bind({});Example.args={version:"v1.2.3"},Example.parameters=Object.assign({storySource:{source:"args =>