From 83479d49f090a8c14fb584b8e2f6669c5f763b31 Mon Sep 17 00:00:00 2001 From: gabek Date: Sat, 19 Nov 2022 01:13:40 +0000 Subject: [PATCH] Bundle embedded web app --- static/web/404.html | 4 ++-- static/web/404/index.html | 4 ++-- .../_buildManifest.js | 2 +- .../_ssgManifest.js | 0 static/web/_next/static/chunks/4977-16503bfff9acd05d.js | 1 + static/web/_next/static/chunks/4977-451de52d7a14e4ee.js | 1 - ...ebpack-18044398ddbee78f.js => webpack-aa3ee0235c839c86.js} | 2 +- static/web/admin/access-tokens/index.html | 2 +- static/web/admin/actions/index.html | 2 +- static/web/admin/chat/messages/index.html | 2 +- static/web/admin/chat/users/index.html | 2 +- static/web/admin/config-chat/index.html | 2 +- static/web/admin/config-federation/index.html | 2 +- static/web/admin/config-notify/index.html | 2 +- static/web/admin/config-public-details/index.html | 2 +- static/web/admin/config-server-details/index.html | 2 +- static/web/admin/config-social-items/index.html | 2 +- static/web/admin/config-storage/index.html | 2 +- static/web/admin/config-video/index.html | 2 +- static/web/admin/config/appearance/index.html | 2 +- static/web/admin/federation/actions/index.html | 2 +- static/web/admin/federation/followers/index.html | 2 +- static/web/admin/hardware-info/index.html | 2 +- static/web/admin/help/index.html | 2 +- static/web/admin/index.html | 2 +- static/web/admin/logs/index.html | 2 +- static/web/admin/stream-health/index.html | 2 +- static/web/admin/upgrade/index.html | 2 +- static/web/admin/viewer-info/index.html | 2 +- static/web/admin/webhooks/index.html | 2 +- static/web/embed/chat/readonly/index.html | 2 +- static/web/embed/chat/readwrite/index.html | 2 +- static/web/embed/video/index.html | 2 +- static/web/index.html | 4 ++-- 34 files changed, 35 insertions(+), 35 deletions(-) rename static/web/_next/static/{mTZw0JNq7_DaOF6mES2c_ => C7YKUZ0RHfxR0C8nTrxsI}/_buildManifest.js (98%) rename static/web/_next/static/{mTZw0JNq7_DaOF6mES2c_ => C7YKUZ0RHfxR0C8nTrxsI}/_ssgManifest.js (100%) create mode 100644 static/web/_next/static/chunks/4977-16503bfff9acd05d.js delete mode 100644 static/web/_next/static/chunks/4977-451de52d7a14e4ee.js rename static/web/_next/static/chunks/{webpack-18044398ddbee78f.js => webpack-aa3ee0235c839c86.js} (99%) diff --git a/static/web/404.html b/static/web/404.html index 0711b42ff..24c8311fa 100644 --- a/static/web/404.html +++ b/static/web/404.html @@ -1,4 +1,4 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file + }

404

This page could not be found.

\ No newline at end of file diff --git a/static/web/404/index.html b/static/web/404/index.html index 0711b42ff..24c8311fa 100644 --- a/static/web/404/index.html +++ b/static/web/404/index.html @@ -1,4 +1,4 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file + }

404

This page could not be found.

\ No newline at end of file diff --git a/static/web/_next/static/mTZw0JNq7_DaOF6mES2c_/_buildManifest.js b/static/web/_next/static/C7YKUZ0RHfxR0C8nTrxsI/_buildManifest.js similarity index 98% rename from static/web/_next/static/mTZw0JNq7_DaOF6mES2c_/_buildManifest.js rename to static/web/_next/static/C7YKUZ0RHfxR0C8nTrxsI/_buildManifest.js index 913100d96..36bb4a2f3 100644 --- a/static/web/_next/static/mTZw0JNq7_DaOF6mES2c_/_buildManifest.js +++ b/static/web/_next/static/C7YKUZ0RHfxR0C8nTrxsI/_buildManifest.js @@ -1 +1 @@ -self.__BUILD_MANIFEST=function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A){return{__rewrites:{beforeFiles:[],afterFiles:[{source:"/api/:path*"},{source:"/hls/:path*"},{source:"/img/:path*"},{source:"/logo"},{source:"/thumbnail.jpg"}],fallback:[]},"/":[b,a,c,f,g,i,l,m,q,"static/chunks/8980-3cb1279c083255bd.js",j,"static/css/4480c029d7516206.css","static/chunks/pages/index-15a83a454780b8f5.js"],"/_error":["static/chunks/pages/_error-f6dc51ff67bd7b60.js"],"/admin":[b,a,c,d,e,f,g,h,k,m,"static/chunks/8676-6e97d05fc151015d.js","static/chunks/pages/admin-0e657e7285c5f441.js"],"/admin/access-tokens":[b,a,c,d,e,"static/chunks/pages/admin/access-tokens-507268c8ce62ae11.js"],"/admin/actions":[b,a,c,d,"static/chunks/pages/admin/actions-f912a5e804dcde21.js"],"/admin/chat/messages":[r,b,a,c,d,e,g,s,"static/chunks/pages/admin/chat/messages-ac3b7b15477e65db.js"],"/admin/chat/users":[r,b,a,c,d,e,f,g,s,"static/chunks/pages/admin/chat/users-6dff4c5321058acc.js"],"/admin/config/appearance":[t,l,u,v,"static/css/6c8941159bdd16f6.css","static/chunks/pages/admin/config/appearance-e49f99ca8f536bbe.js"],"/admin/config-chat":["static/chunks/pages/admin/config-chat-755983d5b6e842f9.js"],"/admin/config-federation":["static/chunks/1829-ddb59c4a9d67f307.js","static/chunks/pages/admin/config-federation-70a6bc13fd03c13e.js"],"/admin/config-notify":["static/chunks/pages/admin/config-notify-e496e6445a73328f.js"],"/admin/config-public-details":[t,b,a,c,d,n,u,"static/chunks/1043-2e3b169ca17bc890.js","static/chunks/pages/admin/config-public-details-3d048cfc5bd2f76b.js"],"/admin/config-server-details":[w,"static/chunks/pages/admin/config-server-details-b209f204bd328ef7.js"],"/admin/config-social-items":[b,a,c,d,"static/chunks/pages/admin/config-social-items-6566ff1a9aaf4d45.js"],"/admin/config-storage":["static/chunks/pages/admin/config-storage-e78014d383041e93.js"],"/admin/config-video":[b,a,c,d,w,"static/chunks/7326-bdb5d5b1c1484746.js","static/chunks/pages/admin/config-video-286e9d2ece0b1cf1.js"],"/admin/federation/actions":[b,a,c,d,e,"static/chunks/pages/admin/federation/actions-cce7d362d2550235.js"],"/admin/federation/followers":[b,a,c,d,e,f,"static/chunks/pages/admin/federation/followers-d61d54dd1a4e7023.js"],"/admin/hardware-info":[o,e,f,h,k,p,n,"static/chunks/pages/admin/hardware-info-f221d210add098b4.js"],"/admin/help":[f,h,l,v,"static/chunks/7830-5a4c4a2766994b42.js","static/chunks/pages/admin/help-318c1648a82cee56.js"],"/admin/logs":[b,a,c,d,e,m,"static/chunks/pages/admin/logs-87d3e7fc978ada41.js"],"/admin/stream-health":[o,e,f,h,k,p,"static/chunks/2934-54a8abe3c589160f.js","static/chunks/pages/admin/stream-health-8ea39b3957d73136.js"],"/admin/upgrade":[b,a,c,d,"static/chunks/2069-4f96bdee483a378d.js","static/chunks/pages/admin/upgrade-c564e66ef9223b4f.js"],"/admin/viewer-info":[o,b,a,c,d,e,f,g,h,k,p,n,"static/chunks/pages/admin/viewer-info-c5a635507f1aa36e.js"],"/admin/webhooks":[b,a,c,d,"static/chunks/pages/admin/webhooks-975306690b3e568d.js"],"/embed/chat/readonly":[x,y,i,z,j,A,"static/css/a97531dfaf987e89.css","static/chunks/pages/embed/chat/readonly-e3485375e5479319.js"],"/embed/chat/readwrite":[x,y,a,i,z,"static/chunks/911-20c1d126c3ba8e12.js",j,A,"static/css/840d7a2c1c6fcb28.css","static/chunks/pages/embed/chat/readwrite-6f2fd82fd3af6034.js"],"/embed/video":["static/chunks/d6e1aeb5-9870ba7ecb54dc88.js",g,i,"static/css/7c735c05af084bb2.css","static/chunks/7902-885cf6f6566ca765.js",q,j,"static/chunks/2239-74b7904476fd13ad.js","static/css/761481e63e7ebbee.css","static/chunks/pages/embed/video-1767323102bd7b5f.js"],sortedPages:["/","/_app","/_error","/admin","/admin/access-tokens","/admin/actions","/admin/chat/messages","/admin/chat/users","/admin/config/appearance","/admin/config-chat","/admin/config-federation","/admin/config-notify","/admin/config-public-details","/admin/config-server-details","/admin/config-social-items","/admin/config-storage","/admin/config-video","/admin/federation/actions","/admin/federation/followers","/admin/hardware-info","/admin/help","/admin/logs","/admin/stream-health","/admin/upgrade","/admin/viewer-info","/admin/webhooks","/embed/chat/readonly","/embed/chat/readwrite","/embed/video"]}}("static/chunks/3903-be84b196fbdd6896.js","static/chunks/8939-68ed8ad3bbaba860.js","static/chunks/4267-404767a937f3e527.js","static/chunks/3626-8b91f2ed93b2ec33.js","static/chunks/8091-13fa4874392fed60.js","static/chunks/4381-fda77cdbb4b7ef10.js","static/chunks/5938-72730bf9ebd63037.js","static/chunks/5315-a5668b2a312053b4.js","static/chunks/6395-c18ad4da3614148b.js","static/chunks/7466-56469cd134b9115e.js","static/chunks/4763-743d368ad9f9d445.js","static/chunks/1082-4166ccf641f72cd5.js","static/chunks/5360-9e7e6ab758d7eca6.js","static/chunks/7910-3f3c276ecf3d2fc6.js","static/chunks/3fff1979-279aba4885312db0.js","static/chunks/2139-cc4ba29e66f06c65.js","static/chunks/8245-7c4b7b17be73fb0b.js","static/chunks/29107295-8f8e17c44e039888.js","static/chunks/7635-616b226a662fd792.js","static/chunks/4ad82c5e-b84346470a5540c8.js","static/chunks/1943-f514190c21a17631.js","static/chunks/1938-3500bd8fa6a1c1fe.js","static/chunks/3286-1b6dc4028a8f3981.js","static/chunks/d3048c20-8dfd4907951480a1.js","static/chunks/d2094a0f-7b53e1b2758c381a.js","static/chunks/2852-e752a94f50869728.js","static/chunks/4977-451de52d7a14e4ee.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file +self.__BUILD_MANIFEST=function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A){return{__rewrites:{beforeFiles:[],afterFiles:[{source:"/api/:path*"},{source:"/hls/:path*"},{source:"/img/:path*"},{source:"/logo"},{source:"/thumbnail.jpg"}],fallback:[]},"/":[b,a,c,f,g,i,l,m,q,"static/chunks/8980-3cb1279c083255bd.js",j,"static/css/4480c029d7516206.css","static/chunks/pages/index-15a83a454780b8f5.js"],"/_error":["static/chunks/pages/_error-f6dc51ff67bd7b60.js"],"/admin":[b,a,c,d,e,f,g,h,k,m,"static/chunks/8676-6e97d05fc151015d.js","static/chunks/pages/admin-0e657e7285c5f441.js"],"/admin/access-tokens":[b,a,c,d,e,"static/chunks/pages/admin/access-tokens-507268c8ce62ae11.js"],"/admin/actions":[b,a,c,d,"static/chunks/pages/admin/actions-f912a5e804dcde21.js"],"/admin/chat/messages":[r,b,a,c,d,e,g,s,"static/chunks/pages/admin/chat/messages-ac3b7b15477e65db.js"],"/admin/chat/users":[r,b,a,c,d,e,f,g,s,"static/chunks/pages/admin/chat/users-6dff4c5321058acc.js"],"/admin/config/appearance":[t,l,u,v,"static/css/6c8941159bdd16f6.css","static/chunks/pages/admin/config/appearance-e49f99ca8f536bbe.js"],"/admin/config-chat":["static/chunks/pages/admin/config-chat-755983d5b6e842f9.js"],"/admin/config-federation":["static/chunks/1829-ddb59c4a9d67f307.js","static/chunks/pages/admin/config-federation-70a6bc13fd03c13e.js"],"/admin/config-notify":["static/chunks/pages/admin/config-notify-e496e6445a73328f.js"],"/admin/config-public-details":[t,b,a,c,d,n,u,"static/chunks/1043-2e3b169ca17bc890.js","static/chunks/pages/admin/config-public-details-3d048cfc5bd2f76b.js"],"/admin/config-server-details":[w,"static/chunks/pages/admin/config-server-details-b209f204bd328ef7.js"],"/admin/config-social-items":[b,a,c,d,"static/chunks/pages/admin/config-social-items-6566ff1a9aaf4d45.js"],"/admin/config-storage":["static/chunks/pages/admin/config-storage-e78014d383041e93.js"],"/admin/config-video":[b,a,c,d,w,"static/chunks/7326-bdb5d5b1c1484746.js","static/chunks/pages/admin/config-video-286e9d2ece0b1cf1.js"],"/admin/federation/actions":[b,a,c,d,e,"static/chunks/pages/admin/federation/actions-cce7d362d2550235.js"],"/admin/federation/followers":[b,a,c,d,e,f,"static/chunks/pages/admin/federation/followers-d61d54dd1a4e7023.js"],"/admin/hardware-info":[o,e,f,h,k,p,n,"static/chunks/pages/admin/hardware-info-f221d210add098b4.js"],"/admin/help":[f,h,l,v,"static/chunks/7830-5a4c4a2766994b42.js","static/chunks/pages/admin/help-318c1648a82cee56.js"],"/admin/logs":[b,a,c,d,e,m,"static/chunks/pages/admin/logs-87d3e7fc978ada41.js"],"/admin/stream-health":[o,e,f,h,k,p,"static/chunks/2934-54a8abe3c589160f.js","static/chunks/pages/admin/stream-health-8ea39b3957d73136.js"],"/admin/upgrade":[b,a,c,d,"static/chunks/2069-4f96bdee483a378d.js","static/chunks/pages/admin/upgrade-c564e66ef9223b4f.js"],"/admin/viewer-info":[o,b,a,c,d,e,f,g,h,k,p,n,"static/chunks/pages/admin/viewer-info-c5a635507f1aa36e.js"],"/admin/webhooks":[b,a,c,d,"static/chunks/pages/admin/webhooks-975306690b3e568d.js"],"/embed/chat/readonly":[x,y,i,z,j,A,"static/css/a97531dfaf987e89.css","static/chunks/pages/embed/chat/readonly-e3485375e5479319.js"],"/embed/chat/readwrite":[x,y,a,i,z,"static/chunks/911-20c1d126c3ba8e12.js",j,A,"static/css/840d7a2c1c6fcb28.css","static/chunks/pages/embed/chat/readwrite-6f2fd82fd3af6034.js"],"/embed/video":["static/chunks/d6e1aeb5-9870ba7ecb54dc88.js",g,i,"static/css/7c735c05af084bb2.css","static/chunks/7902-885cf6f6566ca765.js",q,j,"static/chunks/2239-74b7904476fd13ad.js","static/css/761481e63e7ebbee.css","static/chunks/pages/embed/video-1767323102bd7b5f.js"],sortedPages:["/","/_app","/_error","/admin","/admin/access-tokens","/admin/actions","/admin/chat/messages","/admin/chat/users","/admin/config/appearance","/admin/config-chat","/admin/config-federation","/admin/config-notify","/admin/config-public-details","/admin/config-server-details","/admin/config-social-items","/admin/config-storage","/admin/config-video","/admin/federation/actions","/admin/federation/followers","/admin/hardware-info","/admin/help","/admin/logs","/admin/stream-health","/admin/upgrade","/admin/viewer-info","/admin/webhooks","/embed/chat/readonly","/embed/chat/readwrite","/embed/video"]}}("static/chunks/3903-be84b196fbdd6896.js","static/chunks/8939-68ed8ad3bbaba860.js","static/chunks/4267-404767a937f3e527.js","static/chunks/3626-8b91f2ed93b2ec33.js","static/chunks/8091-13fa4874392fed60.js","static/chunks/4381-fda77cdbb4b7ef10.js","static/chunks/5938-72730bf9ebd63037.js","static/chunks/5315-a5668b2a312053b4.js","static/chunks/6395-c18ad4da3614148b.js","static/chunks/7466-56469cd134b9115e.js","static/chunks/4763-743d368ad9f9d445.js","static/chunks/1082-4166ccf641f72cd5.js","static/chunks/5360-9e7e6ab758d7eca6.js","static/chunks/7910-3f3c276ecf3d2fc6.js","static/chunks/3fff1979-279aba4885312db0.js","static/chunks/2139-cc4ba29e66f06c65.js","static/chunks/8245-7c4b7b17be73fb0b.js","static/chunks/29107295-8f8e17c44e039888.js","static/chunks/7635-616b226a662fd792.js","static/chunks/4ad82c5e-b84346470a5540c8.js","static/chunks/1943-f514190c21a17631.js","static/chunks/1938-3500bd8fa6a1c1fe.js","static/chunks/3286-1b6dc4028a8f3981.js","static/chunks/d3048c20-8dfd4907951480a1.js","static/chunks/d2094a0f-7b53e1b2758c381a.js","static/chunks/2852-e752a94f50869728.js","static/chunks/4977-16503bfff9acd05d.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/static/web/_next/static/mTZw0JNq7_DaOF6mES2c_/_ssgManifest.js b/static/web/_next/static/C7YKUZ0RHfxR0C8nTrxsI/_ssgManifest.js similarity index 100% rename from static/web/_next/static/mTZw0JNq7_DaOF6mES2c_/_ssgManifest.js rename to static/web/_next/static/C7YKUZ0RHfxR0C8nTrxsI/_ssgManifest.js diff --git a/static/web/_next/static/chunks/4977-16503bfff9acd05d.js b/static/web/_next/static/chunks/4977-16503bfff9acd05d.js new file mode 100644 index 000000000..01134ba49 --- /dev/null +++ b/static/web/_next/static/chunks/4977-16503bfff9acd05d.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4977],{94977:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ChatContainer:function(){return ChatContainer}});var _linearGradient,_path,_path2,_path3,_path4,jsx_runtime=__webpack_require__(85893),index_m=__webpack_require__(9764),react=__webpack_require__(67294),EditFilled=__webpack_require__(36531),socket_events=__webpack_require__(91951),ChatContainer_module=__webpack_require__(59760),ChatContainer_module_default=__webpack_require__.n(ChatContainer_module),he=__webpack_require__(86492),he_default=__webpack_require__.n(he),classnames=__webpack_require__(94184),classnames_default=__webpack_require__.n(classnames),tooltip=__webpack_require__(94199),LinkOutlined=__webpack_require__(29158),es=__webpack_require__(4480),dynamic=__webpack_require__(5152),dynamic_default=__webpack_require__.n(dynamic),ChatUserMessage_module=__webpack_require__(50085),ChatUserMessage_module_default=__webpack_require__.n(ChatUserMessage_module),helpers=__webpack_require__(77278);function formatTimestamp(sentAt){let now=new Date(sentAt);if(Number.isNaN(now))return"";let diffInDays=(0,helpers.Xb)(sentAt);if(diffInDays>=1){let localeDate=now.toLocaleDateString("en-US",{dateStyle:"medium"});return"".concat(localeDate," at ").concat(now.toLocaleTimeString())}return"".concat(now.toLocaleTimeString())}var ChatUserBadge_module=__webpack_require__(48976),ChatUserBadge_module_default=__webpack_require__.n(ChatUserBadge_module);let ChatUserBadge=param=>{let{badge,userColor}=param,color="var(--theme-user-colors-".concat(userColor,")");return(0,jsx_runtime.jsx)("span",{style:{color,borderColor:color},className:ChatUserBadge_module_default().badge,children:badge})};var ClientConfigStore=__webpack_require__(77466);let ChatModerationActionMenu=dynamic_default()(()=>Promise.all([__webpack_require__.e(8939),__webpack_require__.e(3903),__webpack_require__.e(4267),__webpack_require__.e(3626),__webpack_require__.e(8091),__webpack_require__.e(1300),__webpack_require__.e(4860)]).then(__webpack_require__.bind(__webpack_require__,94860)).then(mod=>mod.ChatModerationActionMenu),{loadableGenerated:{webpack:()=>[94860]}}),Highlight=dynamic_default()(()=>Promise.resolve().then(__webpack_require__.bind(__webpack_require__,47049)).then(mod=>mod.Highlight),{loadableGenerated:{webpack:()=>[47049]}}),UserTooltip=param=>{let{children,user}=param,{displayName,createdAt}=user,content="".concat(displayName," first joined ").concat(formatTimestamp(createdAt));return(0,jsx_runtime.jsx)(tooltip.Z,{title:content,placement:"topLeft",mouseEnterDelay:1,children:children})},ChatUserMessage=param=>{let{message,highlightString,showModeratorMenu,sentBySelf,sameUserAsLast,isAuthorModerator,isAuthorAuthenticated}=param,{id:messageId,body,user,timestamp}=message,{id:userId,displayName,displayColor}=user,accessToken=(0,es.sJ)(ClientConfigStore.FI),color="var(--theme-color-users-".concat(displayColor,")"),formattedTimestamp="Sent ".concat(formatTimestamp(timestamp)),[formattedMessage,setFormattedMessage]=(0,react.useState)(body),badgeNodes=[];return isAuthorModerator&&badgeNodes.push((0,jsx_runtime.jsx)(ChatUserBadge,{badge:"mod",userColor:displayColor},"mod")),isAuthorAuthenticated&&badgeNodes.push((0,jsx_runtime.jsx)(ChatUserBadge,{badge:(0,jsx_runtime.jsx)(LinkOutlined.Z,{title:"authenticated"}),userColor:displayColor},"auth")),(0,react.useEffect)(()=>{setFormattedMessage(he_default().decode(body))},[message]),(0,jsx_runtime.jsx)("div",{className:classnames_default()(ChatUserMessage_module_default().messagePadding,sameUserAsLast&&ChatUserMessage_module_default().messagePaddingCollapsed),children:(0,jsx_runtime.jsxs)("div",{className:classnames_default()(ChatUserMessage_module_default().root,{[ChatUserMessage_module_default().ownMessage]:sentBySelf}),style:{borderColor:color},children:[!sameUserAsLast&&(0,jsx_runtime.jsx)(UserTooltip,{user:user,children:(0,jsx_runtime.jsxs)("div",{className:ChatUserMessage_module_default().user,style:{color},children:[(0,jsx_runtime.jsx)("span",{className:ChatUserMessage_module_default().userName,children:displayName}),(0,jsx_runtime.jsx)("span",{children:badgeNodes})]})}),(0,jsx_runtime.jsx)(tooltip.Z,{title:formattedTimestamp,mouseEnterDelay:1,children:(0,jsx_runtime.jsx)(Highlight,{search:highlightString,children:(0,jsx_runtime.jsx)("div",{className:ChatUserMessage_module_default().message,dangerouslySetInnerHTML:{__html:formattedMessage}})})}),showModeratorMenu&&(0,jsx_runtime.jsx)("div",{className:ChatUserMessage_module_default().modMenuWrapper,children:(0,jsx_runtime.jsx)(ChatModerationActionMenu,{messageID:messageId,accessToken:accessToken,userID:userId,userDisplayName:displayName})}),(0,jsx_runtime.jsx)("div",{className:ChatUserMessage_module_default().background,style:{color}})]})})};var SmileOutlined=__webpack_require__(93045),SendOutlined=__webpack_require__(27496),popover=__webpack_require__(55241),index_es=__webpack_require__(77493),dist_index_es=__webpack_require__(96391),ChatTextField_module=__webpack_require__(26912),ChatTextField_module_default=__webpack_require__.n(ChatTextField_module);let EmojiPicker=dynamic_default()(()=>Promise.all([__webpack_require__.e(7741),__webpack_require__.e(1559)]).then(__webpack_require__.bind(__webpack_require__,51559)).then(mod=>mod.EmojiPicker),{loadableGenerated:{webpack:()=>[51559]}}),Image=p=>{let{attributes,element,children}=p,selected=(0,dist_index_es.vt)(),focused=(0,dist_index_es.UE)();return(0,jsx_runtime.jsxs)("span",{...attributes,contentEditable:!1,children:[(0,jsx_runtime.jsx)("img",{alt:element.alt,src:element.src,title:element.name,style:{display:"inline",maxWidth:"50px",maxHeight:"20px",boxShadow:"".concat(selected&&focused?"0 0 0 3px #B4D5FF":"none")}}),children]})},withImages=editor=>{let{isVoid}=editor;return editor.isVoid=element=>"image"===element.type||isVoid(element),editor.isInline=element=>"image"===element.type,editor},serialize=node=>{let children;if(index_es.xv.isText(node)){let string=node.text;return string}if(0===node.children.length)children=[{text:""}];else{var ref;children=null===(ref=node.children)||void 0===ref?void 0:ref.map(n=>serialize(n)).join("")}switch(node.type){case"paragraph":return"

".concat(children,"

");case"image":return'').concat(node.alt,'');default:return children}},getCharacterCount=node=>{if(index_es.xv.isText(node))return node.text.length;if("image"===node.type)return 5;let count=0;return node.children.forEach(child=>{count+=getCharacterCount(child)}),count},ChatTextField=param=>{let{defaultText}=param,[showEmojis,setShowEmojis]=(0,react.useState)(!1),[characterCount,setCharacterCount]=(0,react.useState)(null==defaultText?void 0:defaultText.length),websocketService=(0,es.sJ)(ClientConfigStore.Gt),editor=(0,react.useMemo)(()=>(0,dist_index_es.BU)(withImages((0,index_es.Jh)())),[]),sendMessage=()=>{if(!websocketService){console.log("websocketService is not defined");return}let message=serialize(editor);websocketService.send({type:socket_events.C.CHAT,body:message}),index_es.YR.delete(editor,{at:{anchor:index_es.ML.start(editor,[]),focus:index_es.ML.end(editor,[])}}),setCharacterCount(0)},createImageNode=(alt,src,name)=>({type:"image",alt,src,name,children:[{text:""}]}),insertImage=(url,name)=>{if(!url)return;let{selection}=editor,image=createImageNode(name,url,name);if(index_es.YR.insertNodes(editor,image,{select:!0}),selection){var ref;let[parentNode,parentPath]=index_es.ML.parent(editor,null===(ref=selection.focus)||void 0===ref?void 0:ref.path);editor.isVoid(parentNode)||index_es.NB.string(parentNode).length?index_es.YR.insertNodes(editor,image,{at:index_es.y$.next(parentPath),select:!0}):(index_es.YR.insertNodes(editor,image,{at:parentPath,select:!0}),index_es.ML.normalize(editor,{force:!0}))}else index_es.YR.insertNodes(editor,image,{select:!0})},onEmojiSelect=emoji=>{dist_index_es.F3.focus(editor),index_es.YR.insertText(editor,emoji)},onCustomEmojiSelect=(name,emoji)=>{dist_index_es.F3.focus(editor),insertImage(emoji,name)},onKeyDown=e=>{let charCount=getCharacterCount(editor)+1;if("Enter"===e.key){e.preventDefault(),sendMessage();return}if("Backspace"===e.key){setCharacterCount(charCount-1);return}charCount+1>300&&e.preventDefault(),setCharacterCount(charCount+1)},onPaste=e=>{let text=e.clipboardData.getData("text/plain"),{length}=text;characterCount+length>300&&e.preventDefault()},renderElement=p=>"image"===p.element.type?(0,jsx_runtime.jsx)(Image,{...p}):(0,jsx_runtime.jsx)("p",{...p});return(0,jsx_runtime.jsx)("div",{className:ChatTextField_module_default().root,children:(0,jsx_runtime.jsxs)("div",{className:classnames_default()(ChatTextField_module_default().inputWrap,characterCount>=300&&ChatTextField_module_default().maxCharacters),children:[(0,jsx_runtime.jsxs)(dist_index_es.mH,{editor:editor,value:[{type:"paragraph",children:[{text:defaultText||""}]}],children:[(0,jsx_runtime.jsx)(dist_index_es.CX,{className:"chat-text-input",onKeyDown:onKeyDown,onPaste:onPaste,renderElement:renderElement,placeholder:"Send a message to chat",style:{width:"100%"},autoFocus:!0}),(0,jsx_runtime.jsx)(popover.Z,{content:(0,jsx_runtime.jsx)(EmojiPicker,{onEmojiSelect:onEmojiSelect,onCustomEmojiSelect:onCustomEmojiSelect}),trigger:"click",onOpenChange:open=>setShowEmojis(open),open:showEmojis})]}),(0,jsx_runtime.jsxs)("div",{style:{display:"flex",paddingLeft:"5px"},children:[(0,jsx_runtime.jsx)("button",{type:"button",className:ChatTextField_module_default().emojiButton,title:"Emoji picker button",onClick:()=>setShowEmojis(!showEmojis),children:(0,jsx_runtime.jsx)(SmileOutlined.Z,{})}),(0,jsx_runtime.jsx)("button",{type:"button",className:ChatTextField_module_default().sendButton,title:"Send message Button",onClick:sendMessage,children:(0,jsx_runtime.jsx)(SendOutlined.Z,{})})]})]})})};var ChatModeratorNotification_module=__webpack_require__(93107),ChatModeratorNotification_module_default=__webpack_require__.n(ChatModeratorNotification_module);function _extends(){return(_extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i(0,jsx_runtime.jsxs)("div",{className:ChatModeratorNotification_module_default().chatModerationNotification,children:[(0,jsx_runtime.jsx)(moderator,{className:ChatModeratorNotification_module_default().icon}),"You are now a moderator."]});var lib=__webpack_require__(47049),ChatSystemMessage_module=__webpack_require__(23421),ChatSystemMessage_module_default=__webpack_require__.n(ChatSystemMessage_module);let ChatSystemMessage=param=>{let{message:{body,user:{displayName}},highlightString}=param;return(0,jsx_runtime.jsxs)("div",{className:ChatSystemMessage_module_default().chatSystemMessage,children:[(0,jsx_runtime.jsx)("div",{className:ChatSystemMessage_module_default().user,children:(0,jsx_runtime.jsx)("span",{className:ChatSystemMessage_module_default().userName,children:displayName})}),(0,jsx_runtime.jsx)(lib.Highlight,{search:highlightString,children:(0,jsx_runtime.jsx)("div",{className:ChatSystemMessage_module_default().message,dangerouslySetInnerHTML:{__html:body}})})]})};var TeamOutlined=__webpack_require__(55355),ChatJoinMessage_module=__webpack_require__(91044),ChatJoinMessage_module_default=__webpack_require__.n(ChatJoinMessage_module);let ChatJoinMessage=param=>{let{isAuthorModerator,userColor,displayName}=param;return(0,jsx_runtime.jsxs)("div",{className:ChatJoinMessage_module_default().root,children:[(0,jsx_runtime.jsxs)("span",{style:{color:"var(--theme-color-users-".concat(userColor,")")},children:[(0,jsx_runtime.jsx)("span",{style:{padding:"0 10px"},children:(0,jsx_runtime.jsx)(TeamOutlined.Z,{})}),(0,jsx_runtime.jsx)("span",{style:{fontWeight:"bold"},children:displayName}),isAuthorModerator&&(0,jsx_runtime.jsx)("span",{children:(0,jsx_runtime.jsx)(ChatUserBadge,{badge:"mod",userColor:userColor})})]})," ","joined the chat."]})};var VerticalAlignBottomOutlined=__webpack_require__(66017),es_button=__webpack_require__(71577);let ScrollToBotBtn=param=>{let{chatContainerRef,messages}=param;return(0,jsx_runtime.jsx)("div",{className:ChatContainer_module_default().toBottomWrap,children:(0,jsx_runtime.jsx)(es_button.Z,{type:"default",style:{color:"currentColor"},icon:(0,jsx_runtime.jsx)(VerticalAlignBottomOutlined.Z,{}),onClick:()=>chatContainerRef.current.scrollToIndex({index:messages.length-1,behavior:"smooth"}),children:"Go to last message"})})};var ChatActionMessage_module=__webpack_require__(65302),ChatActionMessage_module_default=__webpack_require__.n(ChatActionMessage_module);let ChatActionMessage=param=>{let{body}=param;return(0,jsx_runtime.jsx)("div",{dangerouslySetInnerHTML:{__html:body},className:ChatActionMessage_module_default().chatAction})};function checkIsModerator(message){let{user:{scopes}}=message;return!!scopes&&0!==scopes.length&&scopes.includes("MODERATOR")}let ChatContainer=param=>{let{messages,usernameToHighlight,chatUserId,isModerator,showInput,height}=param,[atBottom,setAtBottom]=(0,react.useState)(!1),chatContainerRef=(0,react.useRef)(null),getNameChangeViewForMessage=message=>{let{oldName,user}=message,{displayName,displayColor}=user,color="var(--theme-color-users-".concat(displayColor,")");return(0,jsx_runtime.jsxs)("div",{className:ChatContainer_module_default().nameChangeView,children:[(0,jsx_runtime.jsx)("div",{style:{marginRight:5,height:"max-content",margin:"auto 5px auto 0"},children:(0,jsx_runtime.jsx)(EditFilled.Z,{})}),(0,jsx_runtime.jsxs)("div",{className:ChatContainer_module_default().nameChangeText,children:[(0,jsx_runtime.jsx)("span",{style:{color},children:oldName}),(0,jsx_runtime.jsx)("span",{className:ChatContainer_module_default().plain,children:" is now known as "}),(0,jsx_runtime.jsx)("span",{style:{color},children:displayName})]})]})},getUserJoinedMessage=message=>{let{user:{displayName,displayColor}}=message,isAuthorModerator=checkIsModerator(message);return(0,jsx_runtime.jsx)(ChatJoinMessage,{displayName:displayName,userColor:displayColor,isAuthorModerator:isAuthorModerator})},getActionMessage=message=>{let{body}=message;return(0,jsx_runtime.jsx)(ChatActionMessage,{body:body})},getConnectedInfoMessage=message=>{let modStatusUpdate=checkIsModerator(message);return modStatusUpdate?(0,jsx_runtime.jsx)(ChatModeratorNotification,{}):(0,jsx_runtime.jsx)("div",{style:{width:"1px",height:"1px"}})},getViewForMessage=(index,message)=>{switch(message.type){case socket_events.C.CHAT:var ref,ref1,ref2;return(0,jsx_runtime.jsx)(ChatUserMessage,{message:message,showModeratorMenu:isModerator,highlightString:usernameToHighlight,sentBySelf:(null===(ref=message.user)||void 0===ref?void 0:ref.id)===chatUserId,sameUserAsLast:function(messages,index){if(messages.length<2)return!1;let message=messages[index];if(!message||!message.user)return!1;let{user:{id}}=message,lastMessage=messages[index-1];if((null==lastMessage?void 0:lastMessage.type)!==socket_events.C.CHAT||!lastMessage.timestamp||!message.timestamp)return!1;let lastTimestamp=new Date(lastMessage.timestamp).getTime(),thisTimestamp=new Date(message.timestamp).getTime();return!(thisTimestamp-lastTimestamp>12e4)&&id===(null==lastMessage?void 0:lastMessage.user.id)}(messages,index),isAuthorModerator:null===(ref1=message.user.scopes)||void 0===ref1?void 0:ref1.includes("MODERATOR"),isAuthorAuthenticated:null===(ref2=message.user)||void 0===ref2?void 0:ref2.authenticated},message.id);case socket_events.C.NAME_CHANGE:return getNameChangeViewForMessage(message);case socket_events.C.CONNECTED_USER_INFO:return getConnectedInfoMessage(message);case socket_events.C.USER_JOINED:return getUserJoinedMessage(message);case socket_events.C.CHAT_ACTION:return getActionMessage(message);case socket_events.C.SYSTEM:return(0,jsx_runtime.jsx)(ChatSystemMessage,{message:message,highlightString:usernameToHighlight},message.id);default:return null}},MessagesTable=(0,react.useMemo)(()=>(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)(index_m.OO,{style:{height},className:ChatContainer_module_default().virtuoso,ref:chatContainerRef,initialTopMostItemIndex:messages.length-1,data:messages,itemContent:(index,message)=>getViewForMessage(index,message),followOutput:"auto",alignToBottom:!0,atBottomStateChange:bottom=>setAtBottom(bottom)}),!atBottom&&(0,jsx_runtime.jsx)(ScrollToBotBtn,{chatContainerRef:chatContainerRef,messages:messages})]}),[messages,usernameToHighlight,chatUserId,isModerator,atBottom]);return(0,jsx_runtime.jsxs)("div",{id:"chat-container",className:ChatContainer_module_default().chatContainer,children:[MessagesTable,showInput&&(0,jsx_runtime.jsx)("div",{className:ChatContainer_module_default().chatTextField,children:(0,jsx_runtime.jsx)(ChatTextField,{})})]})};ChatContainer.defaultProps={showInput:!0,height:"auto"}},65302:function(module){module.exports={chatAction:"ChatActionMessage_chatAction__x9Xsg"}},59760:function(module){module.exports={chatHeader:"ChatContainer_chatHeader__EJsYI",toBottomWrap:"ChatContainer_toBottomWrap__3V5wa",toBottomBtn:"ChatContainer_toBottomBtn__453AG",nameChangeView:"ChatContainer_nameChangeView__ziyXN",nameChangeText:"ChatContainer_nameChangeText__yXG__",plain:"ChatContainer_plain__IPS19",chatContainer:"ChatContainer_chatContainer__O2lYN",virtuoso:"ChatContainer_virtuoso__OS9Kz",chatTextField:"ChatContainer_chatTextField__OqCGL"}},91044:function(module){module.exports={root:"ChatJoinMessage_root__vuVXa"}},93107:function(module){module.exports={chatModerationNotification:"ChatModeratorNotification_chatModerationNotification__kgFWe",icon:"ChatModeratorNotification_icon__7FdGg"}},23421:function(module){module.exports={chatSystemMessage:"ChatSystemMessage_chatSystemMessage__c6XEN",user:"ChatSystemMessage_user__6yHSJ",message:"ChatSystemMessage_message__ySq5g"}},26912:function(module){module.exports={root:"ChatTextField_root__4oUkJ",inputWrap:"ChatTextField_inputWrap__1mAjD",maxCharacters:"ChatTextField_maxCharacters__yGT4s",emojiButton:"ChatTextField_emojiButton__ON_Cu",sendButton:"ChatTextField_sendButton__MOmD4"}},48976:function(module){module.exports={badge:"ChatUserBadge_badge__1EdUp"}},50085:function(module){module.exports={root:"ChatUserMessage_root__79heB",user:"ChatUserMessage_user__xUEp9",message:"ChatUserMessage_message__MJ9LD",ownMessage:"ChatUserMessage_ownMessage__d28A3",background:"ChatUserMessage_background__Tfghp",modMenuWrapper:"ChatUserMessage_modMenuWrapper__7fblv",messagePadding:"ChatUserMessage_messagePadding__Xp1F6",messagePaddingCollapsed:"ChatUserMessage_messagePaddingCollapsed__qxN0E"}}}]); \ No newline at end of file diff --git a/static/web/_next/static/chunks/4977-451de52d7a14e4ee.js b/static/web/_next/static/chunks/4977-451de52d7a14e4ee.js deleted file mode 100644 index 95cd830d3..000000000 --- a/static/web/_next/static/chunks/4977-451de52d7a14e4ee.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4977],{94977:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{ChatContainer:function(){return ChatContainer}});var _linearGradient,_path,_path2,_path3,_path4,jsx_runtime=__webpack_require__(85893),index_m=__webpack_require__(9764),react=__webpack_require__(67294),EditFilled=__webpack_require__(36531),socket_events=__webpack_require__(91951),ChatContainer_module=__webpack_require__(59760),ChatContainer_module_default=__webpack_require__.n(ChatContainer_module),he=__webpack_require__(86492),he_default=__webpack_require__.n(he),classnames=__webpack_require__(94184),classnames_default=__webpack_require__.n(classnames),tooltip=__webpack_require__(94199),LinkOutlined=__webpack_require__(29158),es=__webpack_require__(4480),dynamic=__webpack_require__(5152),dynamic_default=__webpack_require__.n(dynamic),ChatUserMessage_module=__webpack_require__(50085),ChatUserMessage_module_default=__webpack_require__.n(ChatUserMessage_module),helpers=__webpack_require__(77278),ChatUserBadge_module=__webpack_require__(48976),ChatUserBadge_module_default=__webpack_require__.n(ChatUserBadge_module);let ChatUserBadge=param=>{let{badge,userColor}=param,color="var(--theme-user-colors-".concat(userColor,")");return(0,jsx_runtime.jsx)("span",{style:{color,borderColor:color},className:ChatUserBadge_module_default().badge,children:badge})};var ClientConfigStore=__webpack_require__(77466);let ChatModerationActionMenu=dynamic_default()(()=>Promise.all([__webpack_require__.e(8939),__webpack_require__.e(3903),__webpack_require__.e(4267),__webpack_require__.e(3626),__webpack_require__.e(8091),__webpack_require__.e(1300),__webpack_require__.e(4860)]).then(__webpack_require__.bind(__webpack_require__,94860)).then(mod=>mod.ChatModerationActionMenu),{loadableGenerated:{webpack:()=>[94860]}}),Highlight=dynamic_default()(()=>Promise.resolve().then(__webpack_require__.bind(__webpack_require__,47049)).then(mod=>mod.Highlight),{loadableGenerated:{webpack:()=>[47049]}}),ChatUserMessage=param=>{let{message,highlightString,showModeratorMenu,sentBySelf,sameUserAsLast,isAuthorModerator,isAuthorAuthenticated}=param,{id:messageId,body,user,timestamp}=message,{id:userId,displayName,displayColor}=user,accessToken=(0,es.sJ)(ClientConfigStore.FI),color="var(--theme-color-users-".concat(displayColor,")"),formattedTimestamp="Sent ".concat(function(sentAt){let now=new Date(sentAt);if(Number.isNaN(now))return"";let diffInDays=(0,helpers.Xb)(sentAt);if(diffInDays>=1){let localeDate=now.toLocaleDateString("en-US",{dateStyle:"medium"});return"at ".concat(localeDate," at ").concat(now.toLocaleTimeString())}return"".concat(now.toLocaleTimeString())}(timestamp)),[formattedMessage,setFormattedMessage]=(0,react.useState)(body),badgeNodes=[];return isAuthorModerator&&badgeNodes.push((0,jsx_runtime.jsx)(ChatUserBadge,{badge:"mod",userColor:displayColor},"mod")),isAuthorAuthenticated&&badgeNodes.push((0,jsx_runtime.jsx)(ChatUserBadge,{badge:(0,jsx_runtime.jsx)(LinkOutlined.Z,{title:"authenticated"}),userColor:displayColor},"auth")),(0,react.useEffect)(()=>{setFormattedMessage(he_default().decode(body))},[message]),(0,jsx_runtime.jsx)("div",{className:classnames_default()(ChatUserMessage_module_default().messagePadding,sameUserAsLast&&ChatUserMessage_module_default().messagePaddingCollapsed),children:(0,jsx_runtime.jsxs)("div",{className:classnames_default()(ChatUserMessage_module_default().root,{[ChatUserMessage_module_default().ownMessage]:sentBySelf}),style:{borderColor:color},children:[!sameUserAsLast&&(0,jsx_runtime.jsx)(tooltip.Z,{title:"user info goes here",placement:"topLeft",mouseEnterDelay:1,children:(0,jsx_runtime.jsxs)("div",{className:ChatUserMessage_module_default().user,style:{color},children:[(0,jsx_runtime.jsx)("span",{className:ChatUserMessage_module_default().userName,children:displayName}),(0,jsx_runtime.jsx)("span",{children:badgeNodes})]})}),(0,jsx_runtime.jsx)(tooltip.Z,{title:formattedTimestamp,mouseEnterDelay:1,children:(0,jsx_runtime.jsx)(Highlight,{search:highlightString,children:(0,jsx_runtime.jsx)("div",{className:ChatUserMessage_module_default().message,dangerouslySetInnerHTML:{__html:formattedMessage}})})}),showModeratorMenu&&(0,jsx_runtime.jsx)("div",{className:ChatUserMessage_module_default().modMenuWrapper,children:(0,jsx_runtime.jsx)(ChatModerationActionMenu,{messageID:messageId,accessToken:accessToken,userID:userId,userDisplayName:displayName})}),(0,jsx_runtime.jsx)("div",{className:ChatUserMessage_module_default().background,style:{color}})]})})};var SmileOutlined=__webpack_require__(93045),SendOutlined=__webpack_require__(27496),popover=__webpack_require__(55241),index_es=__webpack_require__(77493),dist_index_es=__webpack_require__(96391),ChatTextField_module=__webpack_require__(26912),ChatTextField_module_default=__webpack_require__.n(ChatTextField_module);let EmojiPicker=dynamic_default()(()=>Promise.all([__webpack_require__.e(7741),__webpack_require__.e(1559)]).then(__webpack_require__.bind(__webpack_require__,51559)).then(mod=>mod.EmojiPicker),{loadableGenerated:{webpack:()=>[51559]}}),Image=p=>{let{attributes,element,children}=p,selected=(0,dist_index_es.vt)(),focused=(0,dist_index_es.UE)();return(0,jsx_runtime.jsxs)("span",{...attributes,contentEditable:!1,children:[(0,jsx_runtime.jsx)("img",{alt:element.alt,src:element.src,title:element.name,style:{display:"inline",maxWidth:"50px",maxHeight:"20px",boxShadow:"".concat(selected&&focused?"0 0 0 3px #B4D5FF":"none")}}),children]})},withImages=editor=>{let{isVoid}=editor;return editor.isVoid=element=>"image"===element.type||isVoid(element),editor.isInline=element=>"image"===element.type,editor},serialize=node=>{let children;if(index_es.xv.isText(node)){let string=node.text;return string}if(0===node.children.length)children=[{text:""}];else{var ref;children=null===(ref=node.children)||void 0===ref?void 0:ref.map(n=>serialize(n)).join("")}switch(node.type){case"paragraph":return"

".concat(children,"

");case"image":return'').concat(node.alt,'');default:return children}},getCharacterCount=node=>{if(index_es.xv.isText(node))return node.text.length;if("image"===node.type)return 5;let count=0;return node.children.forEach(child=>{count+=getCharacterCount(child)}),count},ChatTextField=param=>{let{defaultText}=param,[showEmojis,setShowEmojis]=(0,react.useState)(!1),[characterCount,setCharacterCount]=(0,react.useState)(null==defaultText?void 0:defaultText.length),websocketService=(0,es.sJ)(ClientConfigStore.Gt),editor=(0,react.useMemo)(()=>(0,dist_index_es.BU)(withImages((0,index_es.Jh)())),[]),sendMessage=()=>{if(!websocketService){console.log("websocketService is not defined");return}let message=serialize(editor);websocketService.send({type:socket_events.C.CHAT,body:message}),index_es.YR.delete(editor,{at:{anchor:index_es.ML.start(editor,[]),focus:index_es.ML.end(editor,[])}}),setCharacterCount(0)},createImageNode=(alt,src,name)=>({type:"image",alt,src,name,children:[{text:""}]}),insertImage=(url,name)=>{if(!url)return;let{selection}=editor,image=createImageNode(name,url,name);if(index_es.YR.insertNodes(editor,image,{select:!0}),selection){var ref;let[parentNode,parentPath]=index_es.ML.parent(editor,null===(ref=selection.focus)||void 0===ref?void 0:ref.path);editor.isVoid(parentNode)||index_es.NB.string(parentNode).length?index_es.YR.insertNodes(editor,image,{at:index_es.y$.next(parentPath),select:!0}):(index_es.YR.insertNodes(editor,image,{at:parentPath,select:!0}),index_es.ML.normalize(editor,{force:!0}))}else index_es.YR.insertNodes(editor,image,{select:!0})},onEmojiSelect=emoji=>{dist_index_es.F3.focus(editor),index_es.YR.insertText(editor,emoji)},onCustomEmojiSelect=(name,emoji)=>{dist_index_es.F3.focus(editor),insertImage(emoji,name)},onKeyDown=e=>{let charCount=getCharacterCount(editor)+1;if("Enter"===e.key){e.preventDefault(),sendMessage();return}if("Backspace"===e.key){setCharacterCount(charCount-1);return}charCount+1>300&&e.preventDefault(),setCharacterCount(charCount+1)},onPaste=e=>{let text=e.clipboardData.getData("text/plain"),{length}=text;characterCount+length>300&&e.preventDefault()},renderElement=p=>"image"===p.element.type?(0,jsx_runtime.jsx)(Image,{...p}):(0,jsx_runtime.jsx)("p",{...p});return(0,jsx_runtime.jsx)("div",{className:ChatTextField_module_default().root,children:(0,jsx_runtime.jsxs)("div",{className:classnames_default()(ChatTextField_module_default().inputWrap,characterCount>=300&&ChatTextField_module_default().maxCharacters),children:[(0,jsx_runtime.jsxs)(dist_index_es.mH,{editor:editor,value:[{type:"paragraph",children:[{text:defaultText||""}]}],children:[(0,jsx_runtime.jsx)(dist_index_es.CX,{className:"chat-text-input",onKeyDown:onKeyDown,onPaste:onPaste,renderElement:renderElement,placeholder:"Send a message to chat",style:{width:"100%"},autoFocus:!0}),(0,jsx_runtime.jsx)(popover.Z,{content:(0,jsx_runtime.jsx)(EmojiPicker,{onEmojiSelect:onEmojiSelect,onCustomEmojiSelect:onCustomEmojiSelect}),trigger:"click",onOpenChange:open=>setShowEmojis(open),open:showEmojis})]}),(0,jsx_runtime.jsxs)("div",{style:{display:"flex",paddingLeft:"5px"},children:[(0,jsx_runtime.jsx)("button",{type:"button",className:ChatTextField_module_default().emojiButton,title:"Emoji picker button",onClick:()=>setShowEmojis(!showEmojis),children:(0,jsx_runtime.jsx)(SmileOutlined.Z,{})}),(0,jsx_runtime.jsx)("button",{type:"button",className:ChatTextField_module_default().sendButton,title:"Send message Button",onClick:sendMessage,children:(0,jsx_runtime.jsx)(SendOutlined.Z,{})})]})]})})};var ChatModeratorNotification_module=__webpack_require__(93107),ChatModeratorNotification_module_default=__webpack_require__.n(ChatModeratorNotification_module);function _extends(){return(_extends=Object.assign?Object.assign.bind():function(target){for(var i=1;i(0,jsx_runtime.jsxs)("div",{className:ChatModeratorNotification_module_default().chatModerationNotification,children:[(0,jsx_runtime.jsx)(moderator,{className:ChatModeratorNotification_module_default().icon}),"You are now a moderator."]});var lib=__webpack_require__(47049),ChatSystemMessage_module=__webpack_require__(23421),ChatSystemMessage_module_default=__webpack_require__.n(ChatSystemMessage_module);let ChatSystemMessage=param=>{let{message:{body,user:{displayName}},highlightString}=param;return(0,jsx_runtime.jsxs)("div",{className:ChatSystemMessage_module_default().chatSystemMessage,children:[(0,jsx_runtime.jsx)("div",{className:ChatSystemMessage_module_default().user,children:(0,jsx_runtime.jsx)("span",{className:ChatSystemMessage_module_default().userName,children:displayName})}),(0,jsx_runtime.jsx)(lib.Highlight,{search:highlightString,children:(0,jsx_runtime.jsx)("div",{className:ChatSystemMessage_module_default().message,dangerouslySetInnerHTML:{__html:body}})})]})};var TeamOutlined=__webpack_require__(55355),ChatJoinMessage_module=__webpack_require__(91044),ChatJoinMessage_module_default=__webpack_require__.n(ChatJoinMessage_module);let ChatJoinMessage=param=>{let{isAuthorModerator,userColor,displayName}=param;return(0,jsx_runtime.jsxs)("div",{className:ChatJoinMessage_module_default().root,children:[(0,jsx_runtime.jsxs)("span",{style:{color:"var(--theme-color-users-".concat(userColor,")")},children:[(0,jsx_runtime.jsx)("span",{style:{padding:"0 10px"},children:(0,jsx_runtime.jsx)(TeamOutlined.Z,{})}),(0,jsx_runtime.jsx)("span",{style:{fontWeight:"bold"},children:displayName}),isAuthorModerator&&(0,jsx_runtime.jsx)("span",{children:(0,jsx_runtime.jsx)(ChatUserBadge,{badge:"mod",userColor:userColor})})]})," ","joined the chat."]})};var VerticalAlignBottomOutlined=__webpack_require__(66017),es_button=__webpack_require__(71577);let ScrollToBotBtn=param=>{let{chatContainerRef,messages}=param;return(0,jsx_runtime.jsx)("div",{className:ChatContainer_module_default().toBottomWrap,children:(0,jsx_runtime.jsx)(es_button.Z,{type:"default",style:{color:"currentColor"},icon:(0,jsx_runtime.jsx)(VerticalAlignBottomOutlined.Z,{}),onClick:()=>chatContainerRef.current.scrollToIndex({index:messages.length-1,behavior:"smooth"}),children:"Go to last message"})})};var ChatActionMessage_module=__webpack_require__(65302),ChatActionMessage_module_default=__webpack_require__.n(ChatActionMessage_module);let ChatActionMessage=param=>{let{body}=param;return(0,jsx_runtime.jsx)("div",{dangerouslySetInnerHTML:{__html:body},className:ChatActionMessage_module_default().chatAction})};function checkIsModerator(message){let{user:{scopes}}=message;return!!scopes&&0!==scopes.length&&scopes.includes("MODERATOR")}let ChatContainer=param=>{let{messages,usernameToHighlight,chatUserId,isModerator,showInput,height}=param,[atBottom,setAtBottom]=(0,react.useState)(!1),chatContainerRef=(0,react.useRef)(null),getNameChangeViewForMessage=message=>{let{oldName,user}=message,{displayName,displayColor}=user,color="var(--theme-color-users-".concat(displayColor,")");return(0,jsx_runtime.jsxs)("div",{className:ChatContainer_module_default().nameChangeView,children:[(0,jsx_runtime.jsx)("div",{style:{marginRight:5,height:"max-content",margin:"auto 5px auto 0"},children:(0,jsx_runtime.jsx)(EditFilled.Z,{})}),(0,jsx_runtime.jsxs)("div",{className:ChatContainer_module_default().nameChangeText,children:[(0,jsx_runtime.jsx)("span",{style:{color},children:oldName}),(0,jsx_runtime.jsx)("span",{className:ChatContainer_module_default().plain,children:" is now known as "}),(0,jsx_runtime.jsx)("span",{style:{color},children:displayName})]})]})},getUserJoinedMessage=message=>{let{user:{displayName,displayColor}}=message,isAuthorModerator=checkIsModerator(message);return(0,jsx_runtime.jsx)(ChatJoinMessage,{displayName:displayName,userColor:displayColor,isAuthorModerator:isAuthorModerator})},getActionMessage=message=>{let{body}=message;return(0,jsx_runtime.jsx)(ChatActionMessage,{body:body})},getConnectedInfoMessage=message=>{let modStatusUpdate=checkIsModerator(message);return modStatusUpdate?(0,jsx_runtime.jsx)(ChatModeratorNotification,{}):(0,jsx_runtime.jsx)("div",{style:{width:"1px",height:"1px"}})},getViewForMessage=(index,message)=>{switch(message.type){case socket_events.C.CHAT:var ref,ref1,ref2;return(0,jsx_runtime.jsx)(ChatUserMessage,{message:message,showModeratorMenu:isModerator,highlightString:usernameToHighlight,sentBySelf:(null===(ref=message.user)||void 0===ref?void 0:ref.id)===chatUserId,sameUserAsLast:function(messages,index){if(messages.length<2)return!1;let message=messages[index];if(!message||!message.user)return!1;let{user:{id}}=message,lastMessage=messages[index-1];if((null==lastMessage?void 0:lastMessage.type)!==socket_events.C.CHAT||!lastMessage.timestamp||!message.timestamp)return!1;let lastTimestamp=new Date(lastMessage.timestamp).getTime(),thisTimestamp=new Date(message.timestamp).getTime();return!(thisTimestamp-lastTimestamp>12e4)&&id===(null==lastMessage?void 0:lastMessage.user.id)}(messages,index),isAuthorModerator:null===(ref1=message.user.scopes)||void 0===ref1?void 0:ref1.includes("MODERATOR"),isAuthorAuthenticated:null===(ref2=message.user)||void 0===ref2?void 0:ref2.authenticated},message.id);case socket_events.C.NAME_CHANGE:return getNameChangeViewForMessage(message);case socket_events.C.CONNECTED_USER_INFO:return getConnectedInfoMessage(message);case socket_events.C.USER_JOINED:return getUserJoinedMessage(message);case socket_events.C.CHAT_ACTION:return getActionMessage(message);case socket_events.C.SYSTEM:return(0,jsx_runtime.jsx)(ChatSystemMessage,{message:message,highlightString:usernameToHighlight},message.id);default:return null}},MessagesTable=(0,react.useMemo)(()=>(0,jsx_runtime.jsxs)(jsx_runtime.Fragment,{children:[(0,jsx_runtime.jsx)(index_m.OO,{style:{height},className:ChatContainer_module_default().virtuoso,ref:chatContainerRef,initialTopMostItemIndex:messages.length-1,data:messages,itemContent:(index,message)=>getViewForMessage(index,message),followOutput:"auto",alignToBottom:!0,atBottomStateChange:bottom=>setAtBottom(bottom)}),!atBottom&&(0,jsx_runtime.jsx)(ScrollToBotBtn,{chatContainerRef:chatContainerRef,messages:messages})]}),[messages,usernameToHighlight,chatUserId,isModerator,atBottom]);return(0,jsx_runtime.jsxs)("div",{id:"chat-container",className:ChatContainer_module_default().chatContainer,children:[MessagesTable,showInput&&(0,jsx_runtime.jsx)("div",{className:ChatContainer_module_default().chatTextField,children:(0,jsx_runtime.jsx)(ChatTextField,{})})]})};ChatContainer.defaultProps={showInput:!0,height:"auto"}},65302:function(module){module.exports={chatAction:"ChatActionMessage_chatAction__x9Xsg"}},59760:function(module){module.exports={chatHeader:"ChatContainer_chatHeader__EJsYI",toBottomWrap:"ChatContainer_toBottomWrap__3V5wa",toBottomBtn:"ChatContainer_toBottomBtn__453AG",nameChangeView:"ChatContainer_nameChangeView__ziyXN",nameChangeText:"ChatContainer_nameChangeText__yXG__",plain:"ChatContainer_plain__IPS19",chatContainer:"ChatContainer_chatContainer__O2lYN",virtuoso:"ChatContainer_virtuoso__OS9Kz",chatTextField:"ChatContainer_chatTextField__OqCGL"}},91044:function(module){module.exports={root:"ChatJoinMessage_root__vuVXa"}},93107:function(module){module.exports={chatModerationNotification:"ChatModeratorNotification_chatModerationNotification__kgFWe",icon:"ChatModeratorNotification_icon__7FdGg"}},23421:function(module){module.exports={chatSystemMessage:"ChatSystemMessage_chatSystemMessage__c6XEN",user:"ChatSystemMessage_user__6yHSJ",message:"ChatSystemMessage_message__ySq5g"}},26912:function(module){module.exports={root:"ChatTextField_root__4oUkJ",inputWrap:"ChatTextField_inputWrap__1mAjD",maxCharacters:"ChatTextField_maxCharacters__yGT4s",emojiButton:"ChatTextField_emojiButton__ON_Cu",sendButton:"ChatTextField_sendButton__MOmD4"}},48976:function(module){module.exports={badge:"ChatUserBadge_badge__1EdUp"}},50085:function(module){module.exports={root:"ChatUserMessage_root__79heB",user:"ChatUserMessage_user__xUEp9",message:"ChatUserMessage_message__MJ9LD",ownMessage:"ChatUserMessage_ownMessage__d28A3",background:"ChatUserMessage_background__Tfghp",modMenuWrapper:"ChatUserMessage_modMenuWrapper__7fblv",messagePadding:"ChatUserMessage_messagePadding__Xp1F6",messagePaddingCollapsed:"ChatUserMessage_messagePaddingCollapsed__qxN0E"}}}]); \ No newline at end of file diff --git a/static/web/_next/static/chunks/webpack-18044398ddbee78f.js b/static/web/_next/static/chunks/webpack-aa3ee0235c839c86.js similarity index 99% rename from static/web/_next/static/chunks/webpack-18044398ddbee78f.js rename to static/web/_next/static/chunks/webpack-aa3ee0235c839c86.js index 3ea51716a..41a7af624 100644 --- a/static/web/_next/static/chunks/webpack-18044398ddbee78f.js +++ b/static/web/_next/static/chunks/webpack-aa3ee0235c839c86.js @@ -1 +1 @@ -!function(){"use strict";var deferred,leafPrototypes,getProto,inProgress,dataWebpackPrefix,policy,createStylesheet,findStylesheet,installedCssChunks,installedChunks,webpackJsonpCallback,chunkLoadingGlobal,__webpack_modules__={},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={id:moduleId,loaded:!1,exports:{}},threw=!0;try{__webpack_modules__[moduleId].call(module.exports,module,module.exports,__webpack_require__),threw=!1}finally{threw&&delete __webpack_module_cache__[moduleId]}return module.loaded=!0,module.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.amdO={},deferred=[],__webpack_require__.O=function(result,chunkIds,fn,priority){if(chunkIds){priority=priority||0;for(var i=deferred.length;i>0&&deferred[i-1][2]>priority;i--)deferred[i]=deferred[i-1];deferred[i]=[chunkIds,fn,priority];return}for(var notFulfilled=1/0,i=0;i=priority&&Object.keys(__webpack_require__.O).every(function(key){return __webpack_require__.O[key](chunkIds[j])})?chunkIds.splice(j--,1):(fulfilled=!1,priority0&&deferred[i-1][2]>priority;i--)deferred[i]=deferred[i-1];deferred[i]=[chunkIds,fn,priority];return}for(var notFulfilled=1/0,i=0;i=priority&&Object.keys(__webpack_require__.O).every(function(key){return __webpack_require__.O[key](chunkIds[j])})?chunkIds.splice(j--,1):(fulfilled=!1,priorityOwncast Admin

What is your stream about today?

What is your stream about today?
Offline

Access Tokens

Access tokens are used to allow external, 3rd party tools to perform specific actions on your Owncast server. They should be kept secure and never included in client code, instead they should be kept on a server that you control.
Read more about how to use these tokens, with examples, at our documentation.
NameTokenScopesLast Used
No data

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Access Tokens

Access tokens are used to allow external, 3rd party tools to perform specific actions on your Owncast server. They should be kept secure and never included in client code, instead they should be kept on a server that you control.
Read more about how to use these tokens, with examples, at our documentation.
NameTokenScopesLast Used
No data

\ No newline at end of file diff --git a/static/web/admin/actions/index.html b/static/web/admin/actions/index.html index d8b5573d7..de513a916 100644 --- a/static/web/admin/actions/index.html +++ b/static/web/admin/actions/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

External Actions

External action URLs are 3rd party UI you can display, embedded, into your Owncast page when a user clicks on a button to launch your action.
Read more about how to use actions, with examples, at our documentation.
NameDescriptionURLIconColorOpens
No data

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

External Actions

External action URLs are 3rd party UI you can display, embedded, into your Owncast page when a user clicks on a button to launch your action.
Read more about how to use actions, with examples, at our documentation.
NameDescriptionURLIconColorOpens
No data

\ No newline at end of file diff --git a/static/web/admin/chat/messages/index.html b/static/web/admin/chat/messages/index.html index 557d6f08d..d8df7c57b 100644 --- a/static/web/admin/chat/messages/index.html +++ b/static/web/admin/chat/messages/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Chat Messages

Manage the messages from viewers that show up on your stream.

Check multiple messages to change their visibility to:
Time
User
Message
No data
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Chat Messages

Manage the messages from viewers that show up on your stream.

Check multiple messages to change their visibility to:
Time
User
Message
No data
\ No newline at end of file diff --git a/static/web/admin/chat/users/index.html b/static/web/admin/chat/users/index.html index ccbfe71f4..0eb91fe4b 100644 --- a/static/web/admin/chat/users/index.html +++ b/static/web/admin/chat/users/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

When a stream is active and chat is enabled, connected chat clients will be displayed here.

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

When a stream is active and chat is enabled, connected chat clients will be displayed here.

\ No newline at end of file diff --git a/static/web/admin/config-chat/index.html b/static/web/admin/config-chat/index.html index 6784a114b..379fc1dae 100644 --- a/static/web/admin/config-chat/index.html +++ b/static/web/admin/config-chat/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file diff --git a/static/web/admin/config-federation/index.html b/static/web/admin/config-federation/index.html index 0644f9b2c..5a5ce6feb 100644 --- a/static/web/admin/config-federation/index.html +++ b/static/web/admin/config-federation/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file diff --git a/static/web/admin/config-notify/index.html b/static/web/admin/config-notify/index.html index 538a63fde..0d668b26f 100644 --- a/static/web/admin/config-notify/index.html +++ b/static/web/admin/config-notify/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Notifications

Let your viewers know when you go live by supporting any of the below notification channels. Learn more about live notifications.


The full url to your Owncast server is required to enable social features. Must use SSL (https). Once people start following your instance you should not change this.

The full url to your Owncast server is required to enable social features. Must use SSL (https). Once people start following your instance you should not change this.

Browser Alerts

Viewers can opt into being notified when you go live with their browser.

Not all browsers support this.

Enable browser notifications

The text to send when you go live.

Twitter

Let your Twitter followers know each time you go live.

Enable Twitter

The text to send when you go live.

Discord

Let your Discord channel know each time you go live.

Create a webhook under Edit Channel / Integrations on your Discord channel and provide it below.

Enable Discord

The webhook assigned to your channel.

The text to send when you go live.

Fediverse Social

Enabling the Fediverse social features will not just alert people to when you go live, but also enable other functionality.

Fediverse social features: Disabled

Custom

Build your own notifications by using custom webhooks.

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Notifications

Let your viewers know when you go live by supporting any of the below notification channels. Learn more about live notifications.


The full url to your Owncast server is required to enable social features. Must use SSL (https). Once people start following your instance you should not change this.

The full url to your Owncast server is required to enable social features. Must use SSL (https). Once people start following your instance you should not change this.

Browser Alerts

Viewers can opt into being notified when you go live with their browser.

Not all browsers support this.

Enable browser notifications

The text to send when you go live.

Twitter

Let your Twitter followers know each time you go live.

Enable Twitter

The text to send when you go live.

Discord

Let your Discord channel know each time you go live.

Create a webhook under Edit Channel / Integrations on your Discord channel and provide it below.

Enable Discord

The webhook assigned to your channel.

The text to send when you go live.

Fediverse Social

Enabling the Fediverse social features will not just alert people to when you go live, but also enable other functionality.

Fediverse social features: Disabled

Custom

Build your own notifications by using custom webhooks.

\ No newline at end of file diff --git a/static/web/admin/config-public-details/index.html b/static/web/admin/config-public-details/index.html index a72540461..8401c2375 100644 --- a/static/web/admin/config-public-details/index.html +++ b/static/web/admin/config-public-details/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

General Settings

The following are displayed on your site to describe your stream and its content. Learn more.

Custom Page Content

Edit the content of your page by using simple Markdown syntax.


\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

General Settings

The following are displayed on your site to describe your stream and its content. Learn more.

Custom Page Content

Edit the content of your page by using simple Markdown syntax.


\ No newline at end of file diff --git a/static/web/admin/config-server-details/index.html b/static/web/admin/config-server-details/index.html index 021ccebfb..0266bd912 100644 --- a/static/web/admin/config-server-details/index.html +++ b/static/web/admin/config-server-details/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Server Settings

You should change your stream key from the default and keep it safe. For most people it's likely the other settings will not need to be changed.

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Server Settings

You should change your stream key from the default and keep it safe. For most people it's likely the other settings will not need to be changed.

\ No newline at end of file diff --git a/static/web/admin/config-social-items/index.html b/static/web/admin/config-social-items/index.html index a22ff6888..e8087842d 100644 --- a/static/web/admin/config-social-items/index.html +++ b/static/web/admin/config-social-items/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Social Items

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Social Items

\ No newline at end of file diff --git a/static/web/admin/config-storage/index.html b/static/web/admin/config-storage/index.html index 48fc6e347..c6eb749a8 100644 --- a/static/web/admin/config-storage/index.html +++ b/static/web/admin/config-storage/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Storage

Owncast supports optionally using external storage providers to stream your video. Learn more about this by visiting our Storage Documentation.

Configuring this incorrectly will likely cause your video to be unplayable. Double check the documentation for your storage provider on how to configure the bucket you created for Owncast.

Keep in mind this is for live streaming, not for archival, recording or VOD purposes.

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Storage

Owncast supports optionally using external storage providers to stream your video. Learn more about this by visiting our Storage Documentation.

Configuring this incorrectly will likely cause your video to be unplayable. Double check the documentation for your storage provider on how to configure the bucket you created for Owncast.

Keep in mind this is for live streaming, not for archival, recording or VOD purposes.

\ No newline at end of file diff --git a/static/web/admin/config-video/index.html b/static/web/admin/config-video/index.html index d23afa67d..18ce3c796 100644 --- a/static/web/admin/config-video/index.html +++ b/static/web/admin/config-video/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Video configuration

Before changing your video configuration visit the video documentation to learn how it impacts your stream performance. The general rule is to start conservatively by having one middle quality stream output variant and experiment with adding more of varied qualities.

Stream output

NameVideo bitrateCPU Usage
No name800 kbpsMedium

Latency Buffer

While it's natural to want to keep your latency as low as possible, you may experience reduced error tolerance and stability the lower you go. The lowest setting is not recommended.

For interactive live streams you may want to experiment with a lower latency, for non-interactive broadcasts you may want to increase it. Read to learn more.

LowestHighest

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Video configuration

Before changing your video configuration visit the video documentation to learn how it impacts your stream performance. The general rule is to start conservatively by having one middle quality stream output variant and experiment with adding more of varied qualities.

Stream output

NameVideo bitrateCPU Usage
No name800 kbpsMedium

Latency Buffer

While it's natural to want to keep your latency as low as possible, you may experience reduced error tolerance and stability the lower you go. The lowest setting is not recommended.

For interactive live streams you may want to experiment with a lower latency, for non-interactive broadcasts you may want to increase it. Read to learn more.

LowestHighest

\ No newline at end of file diff --git a/static/web/admin/config/appearance/index.html b/static/web/admin/config/appearance/index.html index 6fdb76dc9..11feb8703 100644 --- a/static/web/admin/config/appearance/index.html +++ b/static/web/admin/config/appearance/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
Loading...
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
Loading...
\ No newline at end of file diff --git a/static/web/admin/federation/actions/index.html b/static/web/admin/federation/actions/index.html index 033cd420c..111949d5b 100644 --- a/static/web/admin/federation/actions/index.html +++ b/static/web/admin/federation/actions/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Fediverse Actions

Below is a list of actions that were taken by others in response to your posts as well as people who requested to follow you.
ActionFromWhen
No data
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Fediverse Actions

Below is a list of actions that were taken by others in response to your posts as well as people who requested to follow you.
ActionFromWhen
No data
\ No newline at end of file diff --git a/static/web/admin/federation/followers/index.html b/static/web/admin/federation/followers/index.html index 51988de94..883d83090 100644 --- a/static/web/admin/federation/followers/index.html +++ b/static/web/admin/federation/followers/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

The following accounts get notified when you go live or send a post.

NameURL
Added
Remove
No data
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

The following accounts get notified when you go live or send a post.

NameURL
Added
Remove
No data
\ No newline at end of file diff --git a/static/web/admin/hardware-info/index.html b/static/web/admin/hardware-info/index.html index ec1d8821f..eed4d9ad0 100644 --- a/static/web/admin/hardware-info/index.html +++ b/static/web/admin/hardware-info/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Hardware Info


CPU
0%
Memory
0%
Disk
0%
Loading...
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Hardware Info


CPU
0%
Memory
0%
Disk
0%
Loading...
\ No newline at end of file diff --git a/static/web/admin/help/index.html b/static/web/admin/help/index.html index 5e19b15e7..73826e240 100644 --- a/static/web/admin/help/index.html +++ b/static/web/admin/help/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

How can we help you?

Troubleshooting

Fix your problems

Documentation

Read the Docs

Common tasks

I want to configure my owncast instance
Help configuring my broadcasting software
I want to embed my stream into another site
I want to customize my website
I want to tweak my video output
I want to use an external storage provider

Other

I found a bug
If you found a bug, then please let us know
I have a general question
Most general questions are answered in our FAQ or exist in our discussions
I want to build add-ons for Owncast
You can build your own bots, overlays, tools and add-ons with our developer APIs. 
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

How can we help you?

Troubleshooting

Fix your problems

Documentation

Read the Docs

Common tasks

I want to configure my owncast instance
Help configuring my broadcasting software
I want to embed my stream into another site
I want to customize my website
I want to tweak my video output
I want to use an external storage provider

Other

I found a bug
If you found a bug, then please let us know
I have a general question
Most general questions are answered in our FAQ or exist in our discussions
I want to build add-ons for Owncast
You can build your own bots, overlays, tools and add-ons with our developer APIs. 
\ No newline at end of file diff --git a/static/web/admin/index.html b/static/web/admin/index.html index 677582d77..381327f00 100644 --- a/static/web/admin/index.html +++ b/static/web/admin/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

No stream is active

You should start one.

Use your broadcasting software
Chat is disabled
Chat will continue to be disabled until you begin a live stream.
Find an audience on the Owncast Directory
List yourself in the Owncast Directory and show off your stream. Enable it in settings.
fediverse
Add your Owncast instance to the Fediverse
Enable Owncast social features to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.

News & Updates from Owncast

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

No stream is active

You should start one.

Use your broadcasting software
Chat is disabled
Chat will continue to be disabled until you begin a live stream.
Find an audience on the Owncast Directory
List yourself in the Owncast Directory and show off your stream. Enable it in settings.
fediverse
Add your Owncast instance to the Fediverse
Enable Owncast social features to have your instance join the Fediverse, allowing people to follow, share and engage with your live stream.

News & Updates from Owncast

\ No newline at end of file diff --git a/static/web/admin/logs/index.html b/static/web/admin/logs/index.html index ef60cc27b..404200257 100644 --- a/static/web/admin/logs/index.html +++ b/static/web/admin/logs/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline
\ No newline at end of file diff --git a/static/web/admin/stream-health/index.html b/static/web/admin/stream-health/index.html index bef65f895..6c97250b6 100644 --- a/static/web/admin/stream-health/index.html +++ b/static/web/admin/stream-health/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Stream Performance

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Stream Performance

\ No newline at end of file diff --git a/static/web/admin/upgrade/index.html b/static/web/admin/upgrade/index.html index 73ad38eac..eff6cd84b 100644 --- a/static/web/admin/upgrade/index.html +++ b/static/web/admin/upgrade/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Thu Jan 01 1970

Downloads

NameSize
No data
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Thu Jan 01 1970

Downloads

NameSize
No data
\ No newline at end of file diff --git a/static/web/admin/viewer-info/index.html b/static/web/admin/viewer-info/index.html index c12b11b32..292f37f63 100644 --- a/static/web/admin/viewer-info/index.html +++ b/static/web/admin/viewer-info/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Viewer Info


Max viewers last stream
0
All-time max viewers
0
User AgentLocation
Watch Time
No data
\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Viewer Info


Max viewers last stream
0
All-time max viewers
0
User AgentLocation
Watch Time
No data
\ No newline at end of file diff --git a/static/web/admin/webhooks/index.html b/static/web/admin/webhooks/index.html index 763888624..ac461b7d2 100644 --- a/static/web/admin/webhooks/index.html +++ b/static/web/admin/webhooks/index.html @@ -1 +1 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Webhooks

A webhook is a callback made to an external API in response to an event that takes place within Owncast. This can be used to build chat bots or sending automatic notifications that you've started streaming.
Read more about how to use webhooks, with examples, at our documentation.
URLEvents
No data

\ No newline at end of file +Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

Webhooks

A webhook is a callback made to an external API in response to an event that takes place within Owncast. This can be used to build chat bots or sending automatic notifications that you've started streaming.
Read more about how to use webhooks, with examples, at our documentation.
URLEvents
No data

\ No newline at end of file diff --git a/static/web/embed/chat/readonly/index.html b/static/web/embed/chat/readonly/index.html index ed33d887b..34444369e 100644 --- a/static/web/embed/chat/readonly/index.html +++ b/static/web/embed/chat/readonly/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/static/web/embed/chat/readwrite/index.html b/static/web/embed/chat/readwrite/index.html index 44480f7a4..0f69f20df 100644 --- a/static/web/embed/chat/readwrite/index.html +++ b/static/web/embed/chat/readwrite/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/static/web/embed/video/index.html b/static/web/embed/video/index.html index 775101d52..d281fee26 100644 --- a/static/web/embed/video/index.html +++ b/static/web/embed/video/index.html @@ -1 +1 @@ -
This stream is offline. Check back soon!
\ No newline at end of file +
This stream is offline. Check back soon!
\ No newline at end of file diff --git a/static/web/index.html b/static/web/index.html index e8ff5cb8f..7e6470f8d 100644 --- a/static/web/index.html +++ b/static/web/index.html @@ -1,9 +1,9 @@ {{.Name}}
{{.Name}}
Logo
Preview
\ No newline at end of file +
Logo
Preview
\ No newline at end of file