From fcc3ed74e2f40e7ee46ad7be7a8ee82699f87fbd Mon Sep 17 00:00:00 2001 From: gabek Date: Thu, 12 Jan 2023 03:00:36 +0000 Subject: [PATCH] Bundle embedded web app --- static/web/404.html | 6 +++--- static/web/404/index.html | 6 +++--- .../_buildManifest.js | 2 +- .../_ssgManifest.js | 0 .../web/_next/static/chunks/pages/index-15a42fca6a4a589c.js | 2 -- .../_next/static/chunks/pages/index-15a42fca6a4a589c.js.map | 1 - .../web/_next/static/chunks/pages/index-f1b83bb20d9dde54.js | 2 ++ .../_next/static/chunks/pages/index-f1b83bb20d9dde54.js.map | 1 + static/web/admin/access-tokens/index.html | 4 ++-- static/web/admin/actions/index.html | 4 ++-- static/web/admin/chat/emojis/index.html | 4 ++-- static/web/admin/chat/messages/index.html | 4 ++-- static/web/admin/chat/users/index.html | 4 ++-- static/web/admin/config-chat/index.html | 4 ++-- static/web/admin/config-federation/index.html | 4 ++-- static/web/admin/config-notify/index.html | 4 ++-- static/web/admin/config-social-items/index.html | 4 ++-- static/web/admin/config-video/index.html | 4 ++-- static/web/admin/config/general/index.html | 4 ++-- static/web/admin/config/server/index.html | 4 ++-- static/web/admin/federation/actions/index.html | 4 ++-- static/web/admin/federation/followers/index.html | 4 ++-- static/web/admin/hardware-info/index.html | 4 ++-- static/web/admin/help/index.html | 4 ++-- static/web/admin/index.html | 4 ++-- static/web/admin/logs/index.html | 4 ++-- static/web/admin/stream-health/index.html | 4 ++-- static/web/admin/upgrade/index.html | 4 ++-- static/web/admin/viewer-info/index.html | 4 ++-- static/web/admin/webhooks/index.html | 4 ++-- static/web/embed/chat/readonly/index.html | 4 ++-- static/web/embed/chat/readwrite/index.html | 4 ++-- static/web/embed/video/index.html | 4 ++-- static/web/index.html | 6 +++--- 34 files changed, 63 insertions(+), 63 deletions(-) rename static/web/_next/static/{n9OMGs52q3TDt3vCfiwEC => 4W9J6kESfawrtuVxB5Dr4}/_buildManifest.js (98%) rename static/web/_next/static/{n9OMGs52q3TDt3vCfiwEC => 4W9J6kESfawrtuVxB5Dr4}/_ssgManifest.js (100%) delete mode 100644 static/web/_next/static/chunks/pages/index-15a42fca6a4a589c.js delete mode 100644 static/web/_next/static/chunks/pages/index-15a42fca6a4a589c.js.map create mode 100644 static/web/_next/static/chunks/pages/index-f1b83bb20d9dde54.js create mode 100644 static/web/_next/static/chunks/pages/index-f1b83bb20d9dde54.js.map diff --git a/static/web/404.html b/static/web/404.html index 766a0e273..79a485c9d 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 766a0e273..79a485c9d 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/n9OMGs52q3TDt3vCfiwEC/_buildManifest.js b/static/web/_next/static/4W9J6kESfawrtuVxB5Dr4/_buildManifest.js similarity index 98% rename from static/web/_next/static/n9OMGs52q3TDt3vCfiwEC/_buildManifest.js rename to static/web/_next/static/4W9J6kESfawrtuVxB5Dr4/_buildManifest.js index 510c4e083..85623b2ae 100644 --- a/static/web/_next/static/n9OMGs52q3TDt3vCfiwEC/_buildManifest.js +++ b/static/web/_next/static/4W9J6kESfawrtuVxB5Dr4/_buildManifest.js @@ -1 +1 @@ -self.__BUILD_MANIFEST=function(s,c,a,e,t,i,d,n,f,h,u,b,k,j,o,m,r,g,p,l,_,w,v,y,I,B,F,A,D,E,L,M,N,S,T,U,C,x,P,q,z,G,H,J,K){return{__rewrites:{beforeFiles:[],afterFiles:[{source:"/api/:path*"},{source:"/hls/:path*"},{source:"/img/:path*"},{source:"/logo"},{source:"/thumbnail.jpg"}],fallback:[]},"/":[e,s,c,a,n,i,h,o,m,r,_,y,A,D,N,"static/chunks/3343-6ed877ee13a474cf.js",I,S,"static/css/331b753eade9c120.css","static/chunks/pages/index-15a42fca6a4a589c.js"],"/_error":["static/chunks/pages/_error-173a35eca8c80b7b.js"],"/admin":[t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,p,l,w,_,v,B,D,"static/chunks/421-e706d9cfea4b63d0.js","static/css/e867652ad65748d1.css","static/chunks/pages/admin-4d0f33010c63db63.js"],"/admin/access-tokens":[t,e,d,s,c,a,f,n,i,u,h,b,k,o,m,r,p,"static/chunks/pages/admin/access-tokens-f42a211fc9a07f32.js"],"/admin/actions":[E,t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,T,"static/chunks/9730-069546436b57cffb.js",g,"static/chunks/pages/admin/actions-c32d849969fbafd2.js"],"/admin/chat/emojis":[t,e,d,s,c,a,f,n,i,u,h,b,k,j,F,U,"static/chunks/6300-a372f27fffccd16a.js",g,"static/chunks/pages/admin/chat/emojis-8e31a68c084071ef.js"],"/admin/chat/messages":[E,t,e,d,s,c,a,f,n,i,u,h,b,k,o,m,r,p,w,_,C,"static/chunks/pages/admin/chat/messages-b00daf6e555de80f.js"],"/admin/chat/users":[E,t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,p,l,w,_,C,g,"static/chunks/pages/admin/chat/users-03ad9f6bc51a6cb3.js"],"/admin/config/general":["static/chunks/4ad82c5e-6dc0896ff091a49a.js",t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,l,F,A,x,U,P,"static/chunks/8547-a493e5db57f0dc11.js","static/css/8682c23cb724e38a.css","static/chunks/pages/admin/config/general-6f83e0f71551adf0.js"],"/admin/config/server":[t,e,d,s,c,a,f,n,i,u,h,b,k,j,m,l,T,"static/chunks/7676-1b9723c573c931cb.js",g,"static/chunks/pages/admin/config/server-1375093c8b459f7f.js"],"/admin/config-chat":[t,e,d,s,c,a,f,j,"static/chunks/4690-a1a7b3337fb025ea.js",g,q,"static/chunks/pages/admin/config-chat-7ef4fcf5b970d3e7.js"],"/admin/config-federation":[t,e,d,s,c,a,f,j,o,m,r,"static/chunks/789-52aedb4960bf46be.js",g,q,"static/chunks/pages/admin/config-federation-03d8bf7a5d1069eb.js"],"/admin/config-notify":[t,e,d,s,c,a,f,j,z,"static/chunks/4202-9def6f9b68bd0db6.js",g,"static/chunks/pages/admin/config-notify-56ed560464cc3de8.js"],"/admin/config-social-items":[t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,"static/chunks/8131-2470f63bba42cc18.js",g,"static/chunks/pages/admin/config-social-items-eddd17d04ddc8b97.js"],"/admin/config-video":[t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,x,"static/chunks/3635-12e210b7f5f5b648.js",g,"static/chunks/pages/admin/config-video-26dbe0e8418b3299.js"],"/admin/federation/actions":[t,e,d,s,c,a,f,n,i,u,h,b,k,p,w,"static/chunks/pages/admin/federation/actions-18cf96d1dd12f11a.js"],"/admin/federation/followers":[t,e,d,s,c,a,n,i,u,h,b,k,j,p,l,w,"static/chunks/4766-8c2ff2c13e7ecca2.js",g,"static/chunks/pages/admin/federation/followers-9dbabb1399d5880e.js"],"/admin/hardware-info":[L,t,e,d,s,c,f,n,i,p,l,v,F,B,M,"static/chunks/pages/admin/hardware-info-0ea2e386b2bfa165.js"],"/admin/help":[t,e,s,c,a,n,o,l,v,A,P,"static/chunks/3859-83b96ed2022bff07.js","static/chunks/1836-a720707345426fea.js","static/chunks/pages/admin/help-8bf2d730734fda4c.js"],"/admin/logs":[t,e,d,s,c,a,f,n,i,u,h,b,k,p,D,"static/chunks/pages/admin/logs-6e68279112b4574f.js"],"/admin/stream-health":[L,t,e,d,s,c,a,f,n,i,j,p,l,v,B,M,z,"static/chunks/2087-8587d571b69e1d11.js",g,"static/chunks/pages/admin/stream-health-79a7395bdc3cbec2.js"],"/admin/upgrade":[t,e,d,s,c,a,f,n,i,u,h,b,k,"static/chunks/211-1048ec2eb34a07dc.js","static/chunks/pages/admin/upgrade-8c1c187f1da545c3.js"],"/admin/viewer-info":[L,t,e,d,s,c,a,f,n,i,u,h,b,k,j,p,l,w,_,v,F,B,M,"static/chunks/1512-c5ca640d81497702.js","static/chunks/pages/admin/viewer-info-7a0906c2af532e79.js"],"/admin/webhooks":[t,e,d,s,c,a,f,n,i,u,h,b,k,o,m,r,"static/chunks/pages/admin/webhooks-410da946ad482d23.js"],"/embed/chat/readonly":[G,H,s,c,a,i,y,J,I,K,"static/css/b40fc7fbab54fd8a.css","static/chunks/pages/embed/chat/readonly-d73d1394854352b3.js"],"/embed/chat/readwrite":[G,H,s,c,a,i,y,J,I,K,S,"static/css/06292f6365e6ca3c.css","static/chunks/pages/embed/chat/readwrite-7c95210c816b749c.js"],"/embed/video":["static/chunks/d6e1aeb5-eff6e062cc9809b0.js",s,_,y,"static/css/726eb804d4057c2a.css","static/chunks/7689-b5af84013c20ba42.js",N,I,"static/chunks/2239-dcdb812dfd4dc787.js","static/css/6037fa87da2bd61f.css","static/chunks/pages/embed/video-12ef6bf3c7cf8c06.js"],sortedPages:["/","/_app","/_error","/admin","/admin/access-tokens","/admin/actions","/admin/chat/emojis","/admin/chat/messages","/admin/chat/users","/admin/config/general","/admin/config/server","/admin/config-chat","/admin/config-federation","/admin/config-notify","/admin/config-social-items","/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/1407-bdc9a4b68723639f.js","static/chunks/4083-fac0d4486ed02430.js","static/chunks/1577-8292091d0aab9761.js","static/chunks/481-0ac29e7d1a80a156.js","static/chunks/5596-993a89308a275b83.js","static/chunks/2459-eb01326fb8eade96.js","static/chunks/173-047624672b6febad.js","static/chunks/3174-c2d3584817e82bf7.js","static/chunks/6880-4c3d29cb09282a49.js","static/chunks/3013-fec394df01dba1a7.js","static/chunks/6386-afdcf122c3de2551.js","static/chunks/3698-20d8ea2bc8bb10f5.js","static/chunks/8213-0fe2b37c768e5dfb.js","static/chunks/9915-3844dc939eb68532.js","static/chunks/6754-4866d130f609e37f.js","static/chunks/195-fa059f0fd35fa628.js","static/chunks/5402-df60a637066bc45d.js","static/chunks/745-4a1a24ab9d59664d.js","static/chunks/1834-3e764d219dddfc2e.js","static/chunks/575-b22f2e9da72ef285.js","static/chunks/5938-7b04008793cccd9a.js","static/chunks/8067-57df06c1a105dbaa.js","static/chunks/5101-76e32ef019b344f4.js","static/chunks/6395-ceb42db9637da589.js","static/chunks/7466-6d4cc500623f7034.js","static/chunks/4763-896a5acefd86724f.js","static/chunks/4102-ba2e027df8d80acc.js","static/chunks/6155-f65ddd0c64b0d2ca.js","static/chunks/5360-a3b34929effb2024.js","static/chunks/29107295-c6268410185fa188.js","static/chunks/ee8b1517-2d287d36db8884e0.js","static/chunks/7833-c60ebfc3670b22e2.js","static/chunks/4220-65d9fdfd491d3826.js","static/chunks/6097-a0ffccd182dde0b8.js","static/chunks/8119-209a49bd40404ca8.js","static/chunks/7916-da38a3528eceedf8.js","static/chunks/450-e407a7d1df1bca67.js","static/chunks/969-342247aab3515524.js","static/chunks/1700-d05d2d4d0dd8753d.js","static/chunks/2524-728b46cd30b4ed74.js","static/chunks/7437-57f8bd093b607aaf.js","static/chunks/d3048c20-344c0427131d0038.js","static/chunks/d2094a0f-5a1d6dfe5ccc37f5.js","static/chunks/3191-19b2ef239182c27c.js","static/chunks/4977-c6e33b89f2dd930d.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file +self.__BUILD_MANIFEST=function(s,c,a,e,t,i,d,n,f,h,u,b,k,j,o,m,r,g,p,l,_,w,v,y,I,B,F,A,D,E,L,M,N,S,T,U,C,x,P,q,z,G,H,J,K){return{__rewrites:{beforeFiles:[],afterFiles:[{source:"/api/:path*"},{source:"/hls/:path*"},{source:"/img/:path*"},{source:"/logo"},{source:"/thumbnail.jpg"}],fallback:[]},"/":[e,s,c,a,n,i,h,o,m,r,_,y,A,D,N,"static/chunks/3343-6ed877ee13a474cf.js",I,S,"static/css/331b753eade9c120.css","static/chunks/pages/index-f1b83bb20d9dde54.js"],"/_error":["static/chunks/pages/_error-173a35eca8c80b7b.js"],"/admin":[t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,p,l,w,_,v,B,D,"static/chunks/421-e706d9cfea4b63d0.js","static/css/e867652ad65748d1.css","static/chunks/pages/admin-4d0f33010c63db63.js"],"/admin/access-tokens":[t,e,d,s,c,a,f,n,i,u,h,b,k,o,m,r,p,"static/chunks/pages/admin/access-tokens-f42a211fc9a07f32.js"],"/admin/actions":[E,t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,T,"static/chunks/9730-069546436b57cffb.js",g,"static/chunks/pages/admin/actions-c32d849969fbafd2.js"],"/admin/chat/emojis":[t,e,d,s,c,a,f,n,i,u,h,b,k,j,F,U,"static/chunks/6300-a372f27fffccd16a.js",g,"static/chunks/pages/admin/chat/emojis-8e31a68c084071ef.js"],"/admin/chat/messages":[E,t,e,d,s,c,a,f,n,i,u,h,b,k,o,m,r,p,w,_,C,"static/chunks/pages/admin/chat/messages-b00daf6e555de80f.js"],"/admin/chat/users":[E,t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,p,l,w,_,C,g,"static/chunks/pages/admin/chat/users-03ad9f6bc51a6cb3.js"],"/admin/config/general":["static/chunks/4ad82c5e-6dc0896ff091a49a.js",t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,l,F,A,x,U,P,"static/chunks/8547-a493e5db57f0dc11.js","static/css/8682c23cb724e38a.css","static/chunks/pages/admin/config/general-6f83e0f71551adf0.js"],"/admin/config/server":[t,e,d,s,c,a,f,n,i,u,h,b,k,j,m,l,T,"static/chunks/7676-1b9723c573c931cb.js",g,"static/chunks/pages/admin/config/server-1375093c8b459f7f.js"],"/admin/config-chat":[t,e,d,s,c,a,f,j,"static/chunks/4690-a1a7b3337fb025ea.js",g,q,"static/chunks/pages/admin/config-chat-7ef4fcf5b970d3e7.js"],"/admin/config-federation":[t,e,d,s,c,a,f,j,o,m,r,"static/chunks/789-52aedb4960bf46be.js",g,q,"static/chunks/pages/admin/config-federation-03d8bf7a5d1069eb.js"],"/admin/config-notify":[t,e,d,s,c,a,f,j,z,"static/chunks/4202-9def6f9b68bd0db6.js",g,"static/chunks/pages/admin/config-notify-56ed560464cc3de8.js"],"/admin/config-social-items":[t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,"static/chunks/8131-2470f63bba42cc18.js",g,"static/chunks/pages/admin/config-social-items-eddd17d04ddc8b97.js"],"/admin/config-video":[t,e,d,s,c,a,f,n,i,u,h,b,k,j,o,m,r,x,"static/chunks/3635-12e210b7f5f5b648.js",g,"static/chunks/pages/admin/config-video-26dbe0e8418b3299.js"],"/admin/federation/actions":[t,e,d,s,c,a,f,n,i,u,h,b,k,p,w,"static/chunks/pages/admin/federation/actions-18cf96d1dd12f11a.js"],"/admin/federation/followers":[t,e,d,s,c,a,n,i,u,h,b,k,j,p,l,w,"static/chunks/4766-8c2ff2c13e7ecca2.js",g,"static/chunks/pages/admin/federation/followers-9dbabb1399d5880e.js"],"/admin/hardware-info":[L,t,e,d,s,c,f,n,i,p,l,v,F,B,M,"static/chunks/pages/admin/hardware-info-0ea2e386b2bfa165.js"],"/admin/help":[t,e,s,c,a,n,o,l,v,A,P,"static/chunks/3859-83b96ed2022bff07.js","static/chunks/1836-a720707345426fea.js","static/chunks/pages/admin/help-8bf2d730734fda4c.js"],"/admin/logs":[t,e,d,s,c,a,f,n,i,u,h,b,k,p,D,"static/chunks/pages/admin/logs-6e68279112b4574f.js"],"/admin/stream-health":[L,t,e,d,s,c,a,f,n,i,j,p,l,v,B,M,z,"static/chunks/2087-8587d571b69e1d11.js",g,"static/chunks/pages/admin/stream-health-79a7395bdc3cbec2.js"],"/admin/upgrade":[t,e,d,s,c,a,f,n,i,u,h,b,k,"static/chunks/211-1048ec2eb34a07dc.js","static/chunks/pages/admin/upgrade-8c1c187f1da545c3.js"],"/admin/viewer-info":[L,t,e,d,s,c,a,f,n,i,u,h,b,k,j,p,l,w,_,v,F,B,M,"static/chunks/1512-c5ca640d81497702.js","static/chunks/pages/admin/viewer-info-7a0906c2af532e79.js"],"/admin/webhooks":[t,e,d,s,c,a,f,n,i,u,h,b,k,o,m,r,"static/chunks/pages/admin/webhooks-410da946ad482d23.js"],"/embed/chat/readonly":[G,H,s,c,a,i,y,J,I,K,"static/css/b40fc7fbab54fd8a.css","static/chunks/pages/embed/chat/readonly-d73d1394854352b3.js"],"/embed/chat/readwrite":[G,H,s,c,a,i,y,J,I,K,S,"static/css/06292f6365e6ca3c.css","static/chunks/pages/embed/chat/readwrite-7c95210c816b749c.js"],"/embed/video":["static/chunks/d6e1aeb5-eff6e062cc9809b0.js",s,_,y,"static/css/726eb804d4057c2a.css","static/chunks/7689-b5af84013c20ba42.js",N,I,"static/chunks/2239-dcdb812dfd4dc787.js","static/css/6037fa87da2bd61f.css","static/chunks/pages/embed/video-12ef6bf3c7cf8c06.js"],sortedPages:["/","/_app","/_error","/admin","/admin/access-tokens","/admin/actions","/admin/chat/emojis","/admin/chat/messages","/admin/chat/users","/admin/config/general","/admin/config/server","/admin/config-chat","/admin/config-federation","/admin/config-notify","/admin/config-social-items","/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/1407-bdc9a4b68723639f.js","static/chunks/4083-fac0d4486ed02430.js","static/chunks/1577-8292091d0aab9761.js","static/chunks/481-0ac29e7d1a80a156.js","static/chunks/5596-993a89308a275b83.js","static/chunks/2459-eb01326fb8eade96.js","static/chunks/173-047624672b6febad.js","static/chunks/3174-c2d3584817e82bf7.js","static/chunks/6880-4c3d29cb09282a49.js","static/chunks/3013-fec394df01dba1a7.js","static/chunks/6386-afdcf122c3de2551.js","static/chunks/3698-20d8ea2bc8bb10f5.js","static/chunks/8213-0fe2b37c768e5dfb.js","static/chunks/9915-3844dc939eb68532.js","static/chunks/6754-4866d130f609e37f.js","static/chunks/195-fa059f0fd35fa628.js","static/chunks/5402-df60a637066bc45d.js","static/chunks/745-4a1a24ab9d59664d.js","static/chunks/1834-3e764d219dddfc2e.js","static/chunks/575-b22f2e9da72ef285.js","static/chunks/5938-7b04008793cccd9a.js","static/chunks/8067-57df06c1a105dbaa.js","static/chunks/5101-76e32ef019b344f4.js","static/chunks/6395-ceb42db9637da589.js","static/chunks/7466-6d4cc500623f7034.js","static/chunks/4763-896a5acefd86724f.js","static/chunks/4102-ba2e027df8d80acc.js","static/chunks/6155-f65ddd0c64b0d2ca.js","static/chunks/5360-a3b34929effb2024.js","static/chunks/29107295-c6268410185fa188.js","static/chunks/ee8b1517-2d287d36db8884e0.js","static/chunks/7833-c60ebfc3670b22e2.js","static/chunks/4220-65d9fdfd491d3826.js","static/chunks/6097-a0ffccd182dde0b8.js","static/chunks/8119-209a49bd40404ca8.js","static/chunks/7916-da38a3528eceedf8.js","static/chunks/450-e407a7d1df1bca67.js","static/chunks/969-342247aab3515524.js","static/chunks/1700-d05d2d4d0dd8753d.js","static/chunks/2524-728b46cd30b4ed74.js","static/chunks/7437-57f8bd093b607aaf.js","static/chunks/d3048c20-344c0427131d0038.js","static/chunks/d2094a0f-5a1d6dfe5ccc37f5.js","static/chunks/3191-19b2ef239182c27c.js","static/chunks/4977-c6e33b89f2dd930d.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/static/web/_next/static/n9OMGs52q3TDt3vCfiwEC/_ssgManifest.js b/static/web/_next/static/4W9J6kESfawrtuVxB5Dr4/_ssgManifest.js similarity index 100% rename from static/web/_next/static/n9OMGs52q3TDt3vCfiwEC/_ssgManifest.js rename to static/web/_next/static/4W9J6kESfawrtuVxB5Dr4/_ssgManifest.js diff --git a/static/web/_next/static/chunks/pages/index-15a42fca6a4a589c.js b/static/web/_next/static/chunks/pages/index-15a42fca6a4a589c.js deleted file mode 100644 index c4f820de9..000000000 --- a/static/web/_next/static/chunks/pages/index-15a42fca6a4a589c.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5405],{48312:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return n(92577)}])},78696:function(e,t,n){"use strict";n.d(t,{e:function(){return l}});var o=n(85893),s=n(71577),i=n(34447),a=n(13959),r=n.n(a);let l=e=>{let{onClick:t,props:n}=e;return(0,o.jsx)(s.Z,{...n,type:"primary",className:r().button,icon:(0,o.jsx)(i.Z,{}),onClick:t,id:"follow-button",children:"Follow"})}},14761:function(e,t,n){"use strict";n.r(t),n.d(t,{Modal:function(){return d}});var o=n(85893),s=n(85402),i=n(26303),a=n(11382),r=n(67294),l=n(77011),c=n.n(l);let d=e=>{let{title:t,url:n,open:l,handleOk:d,handleCancel:u,afterClose:m,height:p,width:h,children:x}=e,[f,j]=(0,r.useState)(!!n),g="100%",_="520px";n&&(g="70vh",_="900px");let v={padding:"0px",minHeight:p,height:null!=p?p:g},w=n&&(0,o.jsx)("iframe",{title:t,src:n,width:"100%",height:"100%",sandbox:"allow-same-origin allow-scripts allow-popups allow-forms",frameBorder:"0",allowFullScreen:!0,style:{display:"block"},onLoad:()=>j(!1)});return(0,o.jsx)(s.Z,{title:t,open:l,onOk:d,onCancel:u,afterClose:m,bodyStyle:v,width:null!=h?h:_,zIndex:999,footer:null,centered:!0,destroyOnClose:!0,children:(0,o.jsxs)("div",{id:"modal-container",style:{height:"100%"},children:[f&&(0,o.jsx)(i.Z,{active:f,style:{padding:"10px"},paragraph:{rows:10}}),w&&(0,o.jsx)("div",{style:{display:f?"none":"inline"},children:w}),x&&(0,o.jsx)("div",{className:c().content,children:x}),f&&(0,o.jsx)(a.Z,{className:c().spinner,spinning:f,size:"large"})]})})};t.default=d,d.defaultProps={url:void 0,children:void 0,handleOk:void 0,handleCancel:void 0,afterClose:void 0}},51513:function(e,t,n){"use strict";n.d(t,{R:function(){return c}});var o=n(85893),s=n(27049),i=n(24019),a=n(45938),r=n(88335),l=n.n(r);let c=e=>{let t,{streamName:n,customText:r,lastLive:c,notificationsEnabled:d,fediverseAccount:u,onNotifyClick:m,onFollowClick:p}=e;return t=r||(!r&&d&&u?(0,o.jsxs)("span",{children:["This stream is offline. You can"," ",(0,o.jsx)("span",{role:"link",tabIndex:0,className:l().actionLink,onClick:m,children:"be notified"})," ","the next time ",n," goes live or"," ",(0,o.jsx)("span",{role:"link",tabIndex:0,className:l().actionLink,onClick:p,children:"follow"})," ",u," on the Fediverse."]}):!r&&d?(0,o.jsxs)("span",{children:["This stream is offline."," ",(0,o.jsx)("span",{role:"link",tabIndex:0,className:l().actionLink,onClick:m,children:"Be notified"})," ","the next time ",n," goes live."]}):!r&&u?(0,o.jsxs)("span",{children:["This stream is offline."," ",(0,o.jsx)("span",{role:"link",tabIndex:0,className:l().actionLink,onClick:p,children:"Follow"})," ",u," on the Fediverse to see the next time ",n," goes live."]}):"This stream is offline. Check back soon!"),(0,o.jsx)("div",{id:"offline-banner",className:l().outerContainer,children:(0,o.jsxs)("div",{className:l().innerContainer,children:[(0,o.jsx)("div",{className:l().header,children:n}),(0,o.jsx)(s.Z,{className:l().separator}),(0,o.jsx)("div",{className:l().bodyText,children:t}),c&&(0,o.jsxs)("div",{className:l().lastLiveDate,children:[(0,o.jsx)(i.Z,{className:l().clockIcon}),"Last live ".concat((0,a.Z)(new Date(c))," ago.")]})]})})}},69357:function(e,t,n){"use strict";n.d(t,{X:function(){return d}});var o=n(85893),s=n(45938),i=n(68730),a=n(67294),r=n(31326),l=n(37970),c=n.n(l);let d=e=>{let t,{online:n,lastConnectTime:l,lastDisconnectTime:d,viewerCount:u}=e,[,m]=(0,a.useState)(new Date);(0,a.useEffect)(()=>{let e=setInterval(()=>m(new Date),1e3);return()=>{clearInterval(e)}},[]);let p="";if(n&&l){let h=function(e){let t=(0,i.Z)({start:e,end:new Date});return t.days>1?"".concat(t.days," days ").concat(t.hours," hours"):t.hours>=1?"".concat(t.hours," hours ").concat(t.minutes," minutes"):"".concat(t.minutes," minutes ").concat(t.seconds," seconds")}(new Date(l));p=n?"Live for ".concat(h):"Offline",t=u>0&&(0,o.jsxs)("div",{className:c().right,children:[(0,o.jsx)("span",{children:(0,o.jsx)(r.Z,{})}),(0,o.jsx)("span",{children:" ".concat(u)})]})}else!n&&(p="Offline",d&&(t="Last live ".concat((0,s.Z)(new Date(d))," ago.")));return(0,o.jsxs)("div",{className:c().statusbar,children:[(0,o.jsx)("div",{children:p}),(0,o.jsx)("div",{children:t})]})};d.defaultProps={lastConnectTime:null,lastDisconnectTime:null}},92577:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return eT}});var o=n(85893),s=n(4480),i=n(9008),a=n.n(i),r=n(67294),l=n(93423),c=n(5152),d=n.n(c),u=n(77466),m=n(6097);let p=()=>(0,o.jsx)("script",{id:"server-side-hydration",nonce:"{{.Nonce}}",dangerouslySetInnerHTML:{__html:"\n window.configHydration = {{.ServerConfigJSON}};\n window.statusHydration = {{.StatusJSON}};\n "}});var h=n(26303),x=n(72581),f=n(83469),j=n(10808),g=n.n(j);let _=e=>{let{content:t}=e;return(0,o.jsx)("div",{className:g().pageContentContainer,id:"custom-page-content",children:(0,o.jsx)("div",{className:g().customPageContent,dangerouslySetInnerHTML:{__html:t}})})};var v=n(17725),w=n.n(v),b=n(87412),y=n(12341),k=n.n(y);let C=d()(()=>Promise.all([n.e(1272),n.e(8700),n.e(3191),n.e(4977),n.e(1496)]).then(n.bind(n,94977)).then(e=>e.ChatContainer),{loadableGenerated:{webpack:()=>[94977]},ssr:!1}),N=()=>{let e=(0,s.sJ)(u.db),t=(0,s.sJ)(u.pH);if(!e)return(0,o.jsx)(b.ZP,{className:k().root,collapsedWidth:0,width:320});let{id:n,isModerator:i,displayName:a}=e;return(0,o.jsx)(b.ZP,{className:k().root,collapsedWidth:0,width:320,children:(0,o.jsx)(C,{messages:t,usernameToHighlight:a,chatUserId:n,isModerator:i})})};var S=n(67917),L=n.n(S);let T=e=>{let{version:t}=e;return(0,o.jsxs)("footer",{className:L().footer,children:[(0,o.jsxs)("span",{children:["Powered by ",(0,o.jsx)("a",{href:"https://owncast.online",children:t})]}),(0,o.jsxs)("span",{className:L().links,children:[(0,o.jsx)("a",{href:"https://owncast.online/docs",target:"_blank",rel:"noreferrer",children:"Documentation"}),(0,o.jsx)("a",{href:"https://owncast.online/help",target:"_blank",rel:"noreferrer",children:"Contribute"}),(0,o.jsx)("a",{href:"https://github.com/owncast/owncast",target:"_blank",rel:"noreferrer",children:"Source"})]})]})};var Z=n(12270),D=n.n(Z);let A=e=>{let{children:t}=e;return(0,o.jsx)("div",{className:"".concat(D().row),children:t})};var E=n(71577),M=n(94184),F=n.n(M),B=n(13959),I=n.n(B);let H=e=>{let{action:t,primary:n=!0,externalActionSelected:s}=e,{title:i,description:a,icon:r,color:l}=t;return(0,o.jsxs)(E.Z,{type:n?"primary":"default",className:F()(["".concat(I().button),"action-button"]),onClick:()=>s(t),style:{backgroundColor:l},children:[r&&(0,o.jsx)("img",{src:r,className:"".concat(I().icon),alt:a}),i]})};var P=n(51513),R=n(78696),z=n(71578);let O=e=>{let{onClick:t,text:n}=e;return(0,o.jsx)(E.Z,{type:"primary",className:"".concat(I().button),icon:(0,o.jsx)(z.Z,{}),onClick:t,id:"notify-button",children:n||"Notify"})};var J=n(53731),U=n(74933),G=n.n(U);let W=e=>{let{src:t}=e;return(0,o.jsx)("div",{className:G().root,children:(0,o.jsx)("div",{className:G().container,children:(0,o.jsx)("img",{src:t,alt:"Logo",className:G().image,loading:"lazy"})})})};var q=n(25675),Y=n.n(q),Q=n(573),V=n.n(Q);let X=e=>{let{links:t}=e;return(0,o.jsx)("div",{className:V().links,children:t.map(e=>(0,o.jsx)("a",{href:e.url,className:V().link,target:"_blank",rel:"noreferrer me",children:(0,o.jsx)(Y(),{src:e.icon||"/img/platformlogos/default.svg",alt:e.platform,title:e.platform,className:V().link,width:"30",height:"30"})},e.platform))})};var K=n(47900),$=n.n(K);let ee=e=>{let{name:t,title:n,summary:s,logo:i,tags:a,links:r}=e;return(0,o.jsx)("div",{className:$().root,children:(0,o.jsxs)("div",{className:$().logoTitleSection,children:[(0,o.jsx)("div",{className:$().logo,children:(0,o.jsx)(W,{src:i})}),(0,o.jsxs)("div",{className:$().titleSection,children:[(0,o.jsx)("div",{className:F()($().title,$().row,"header-title"),children:t}),(0,o.jsx)("div",{className:F()($().subtitle,$().row,"header-subtitle"),children:(0,o.jsx)(J.Z,{children:n||s})}),(0,o.jsx)("div",{className:F()($().tagList,$().row),children:a.length>0&&a.map(e=>(0,o.jsxs)("span",{children:["#",e,"\xa0"]},e))}),(0,o.jsx)("div",{className:F()($().socialLinks,$().row),children:(0,o.jsx)(X,{links:r})})]})]})})};var et=n(69357),en=n(14761),eo=n(66516),es=n(13013),ei=n(49647),ea=n(60198),er=n(89705),el=n(97038),ec=n.n(el);let ed="notify",eu="follow",em=e=>{let{actions:t,externalActionSelected:n,notifyItemSelected:s,followItemSelected:i,showFollowItem:a,showNotifyItem:r}=e,l=e=>{if(e.key===ed){s();return}if(e.key===eu){i();return}let o=t.find(t=>t.url===e.key);n(o)},c=t.map(e=>({key:e.url,label:(0,o.jsxs)("span",{className:ec().item,children:[e.icon&&(0,o.jsx)("img",{className:ec().icon,src:e.icon,alt:e.title})," ",e.title]})}));a&&c.unshift({key:eu,label:(0,o.jsxs)("span",{className:ec().item,children:[(0,o.jsx)(ei.Z,{className:ec().icon})," Follow this stream"]})}),r&&c.unshift({key:ed,label:(0,o.jsxs)("span",{className:ec().item,children:[(0,o.jsx)(ea.Z,{className:ec().icon}),"Notify when live"]})});let d=(0,o.jsx)(eo.Z,{items:c,onClick:l});return(0,o.jsx)(es.Z,{overlay:d,placement:"bottomRight",trigger:["click"],className:ec().menu,children:(0,o.jsx)("div",{className:ec().buttonWrap,children:(0,o.jsx)(E.Z,{type:"default",onClick:e=>e.preventDefault(),size:"large",icon:(0,o.jsx)(er.Z,{size:6,style:{rotate:"90deg"}})})})})},ep=d()(()=>Promise.all([n.e(6386),n.e(3698),n.e(9925)]).then(n.bind(n,15508)).then(e=>e.FollowerCollection),{loadableGenerated:{webpack:()=>[15508]},ssr:!1}),eh=d()(()=>Promise.all([n.e(5596),n.e(173),n.e(7177)]).then(n.bind(n,77177)).then(e=>e.FollowModal),{loadableGenerated:{webpack:()=>[77177]},ssr:!1}),ex=d()(()=>Promise.all([n.e(5596),n.e(173),n.e(6880),n.e(7283)]).then(n.bind(n,11424)).then(e=>e.BrowserNotifyModal),{loadableGenerated:{webpack:()=>[11424]},ssr:!1}),ef=d()(()=>n.e(7815).then(n.bind(n,17815)).then(e=>e.NotifyReminderPopup),{loadableGenerated:{webpack:()=>[17815]},ssr:!1}),ej=d()(()=>Promise.all([n.e(2544),n.e(7689),n.e(2239),n.e(5202)]).then(n.bind(n,8888)).then(e=>e.OwncastPlayer),{loadableGenerated:{webpack:()=>[8888]},ssr:!1}),eg=d()(()=>Promise.all([n.e(1272),n.e(8700),n.e(3191),n.e(4977),n.e(1496)]).then(n.bind(n,94977)).then(e=>e.ChatContainer),{loadableGenerated:{webpack:()=>[94977]},ssr:!1}),e_=d()(()=>Promise.all([n.e(4885),n.e(5596),n.e(173),n.e(6880),n.e(6386),n.e(3698),n.e(8213),n.e(9915),n.e(575),n.e(5101),n.e(4102),n.e(4763),n.e(8119),n.e(969),n.e(7916),n.e(3859),n.e(6113)]).then(n.bind(n,86113)).then(e=>e.Tabs),{loadableGenerated:{webpack:()=>[86113]},ssr:!1}),ev=e=>{let{name:t,streamTitle:n,summary:s,tags:i,socialHandles:a,extraPageContent:r,setShowFollowModal:l,supportFediverseFeatures:c}=e,d=(0,o.jsx)(_,{content:r}),u=(0,o.jsx)(ep,{name:t,onFollowButtonClick:()=>l(!0)}),m=[{label:"About",key:"2",children:d}];return c&&m.push({label:"Followers",key:"3",children:u}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{className:w().lowerHalf,children:(0,o.jsx)(ee,{name:t,title:n,summary:s,tags:i,links:a,logo:"/logo"})}),(0,o.jsx)("div",{className:w().lowerSection,children:m.length>1?(0,o.jsx)(e_,{defaultActiveKey:"0",items:m}):d})]})},ew=e=>{let{name:t,streamTitle:n,summary:s,tags:i,socialHandles:a,extraPageContent:r,messages:l,currentUser:c,showChat:d,actions:u,setExternalActionToDisplay:m,setShowNotifyPopup:p,setShowFollowModal:x,supportFediverseFeatures:f,supportsBrowserNotifications:j}=e;if(!c)return(0,o.jsx)(h.Z,{loading:!0,active:!0,paragraph:{rows:7}});let{id:g,displayName:v}=c,b=d&&(0,o.jsx)(eg,{messages:l,usernameToHighlight:v,chatUserId:g,isModerator:!1}),y=(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ee,{name:t,title:n,summary:s,tags:i,links:a,logo:"/logo"}),(0,o.jsx)(_,{content:r})]}),k=(0,o.jsx)(ep,{name:t,onFollowButtonClick:()=>x(!0)}),C=(e,t)=>(0,o.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"start"},children:[(0,o.jsx)(t,{...e,style:{width:"85%"}}),(0,o.jsx)(em,{showFollowItem:f,showNotifyItem:j,actions:u,externalActionSelected:m,notifyItemSelected:()=>p(!0),followItemSelected:()=>x(!0)})]});return(0,o.jsx)("div",{className:w().lowerSectionMobile,children:(0,o.jsx)(e_,{className:w().tabs,defaultActiveKey:"0",items:[d&&{label:"Chat",key:"0",children:b},{label:"About",key:"2",children:y},{label:"Followers",key:"3",children:k}],renderTabBar:C})})},eb=e=>{let{externalActionToDisplay:t,setExternalActionToDisplay:n}=e,{title:s,description:i,url:a}=t;return(0,o.jsx)(en.Modal,{title:i||s,url:a,open:!!t,height:"80vh",handleCancel:()=>n(null)})},ey=()=>{let e=(0,s.sJ)(u.Q),t=(0,s.sJ)(u.g1),n=(0,s.sJ)(u.pT),i=(0,s.sJ)(u.di),a=(0,s.sJ)(u.db),[l,c]=(0,s.FV)(u.hz),d=(0,s.sJ)(u.j$),m=(0,s.sJ)(u.YW),{viewerCount:p,lastConnectTime:j,lastDisconnectTime:g,streamTitle:_}=(0,s.sJ)(u.RI),{extraPageContent:v,version:b,name:y,summary:k,socialHandles:C,tags:S,externalActions:L,offlineMessage:Z,chatDisabled:D,federation:E,notifications:M}=t,[F,B]=(0,r.useState)(!1),[I,z]=(0,r.useState)(!1),[J,U]=(0,r.useState)(!1),{account:G,enabled:W}=E,{browser:q}=M,{enabled:Y}=q,[Q,V]=(0,r.useState)(null),[X,K]=(0,r.useState)(!1),$=e=>{let{openExternally:t,url:n}=e;t?window.open(n,"_blank"):V(e)},ee=L.map(e=>(0,o.jsx)(H,{action:e,externalActionSelected:$},e.url)),eo=()=>{let e=parseInt((0,x.$o)(x.dA.userVisitCount),10);Number.isNaN(e)&&(e=0),(0,x.qQ)(x.dA.userVisitCount,e+1),e>2&&!(0,x.$o)(x.dA.hasDisplayedNotificationModal)&&B(!0)},es=()=>{z(!1),B(!1),(0,x.qQ)(x.dA.hasDisplayedNotificationModal,!0)},ei=()=>{let e=window.innerWidth;void 0===l&&(e<=768?c(!0):c(!1)),!l&&e<=768&&c(!0),l&&e>768&&c(!1)};(0,r.useEffect)(()=>(eo(),ei(),window.addEventListener("resize",ei),()=>{window.removeEventListener("resize",ei)}),[]),(0,r.useEffect)(()=>{K((0,f.Z)()&&Y)},[Y]);let ea=!D&&i&&n;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:w().main,children:[(0,o.jsxs)("div",{className:w().root,children:[(0,o.jsxs)("div",{className:w().mainSection,children:[(0,o.jsxs)("div",{className:w().topSection,children:[e.appLoading&&(0,o.jsx)(h.Z,{loading:!0,active:!0,paragraph:{rows:7}}),m&&(0,o.jsx)(ej,{source:"/hls/stream.m3u8",online:m}),!m&&!e.appLoading&&(0,o.jsx)(P.R,{streamName:y,customText:Z,notificationsEnabled:Y,fediverseAccount:G,lastLive:g,onNotifyClick:()=>z(!0),onFollowClick:()=>U(!0)}),m&&(0,o.jsx)(et.X,{online:m,lastConnectTime:j,lastDisconnectTime:g,viewerCount:p})]}),(0,o.jsx)("div",{className:w().midSection,children:(0,o.jsxs)("div",{className:w().buttonsLogoTitleSection,children:[!l&&(0,o.jsxs)(A,{children:[ee,W&&(0,o.jsx)(R.e,{size:"small",onClick:()=>U(!0)}),X&&(0,o.jsx)(ef,{open:F,notificationClicked:()=>z(!0),notificationClosed:()=>es(),children:(0,o.jsx)(O,{onClick:()=>z(!0)})})]}),(0,o.jsx)(en.Modal,{title:"Browser Notifications",open:I,afterClose:()=>es(),handleCancel:()=>es(),children:(0,o.jsx)(ex,{})})]})}),l?(0,o.jsx)(ew,{name:y,streamTitle:_,summary:k,tags:S,socialHandles:C,extraPageContent:v,messages:d,currentUser:a,showChat:ea,actions:L,setExternalActionToDisplay:$,setShowNotifyPopup:z,setShowFollowModal:U,supportFediverseFeatures:W,supportsBrowserNotifications:X}):(0,o.jsx)(ev,{name:y,streamTitle:_,summary:k,tags:S,socialHandles:C,extraPageContent:v,setShowFollowModal:U,supportFediverseFeatures:W}),(0,o.jsx)(T,{version:b})]}),ea&&!l&&(0,o.jsx)(N,{})]}),!l&&!1]}),Q&&(0,o.jsx)(eb,{externalActionToDisplay:Q,setExternalActionToDisplay:V}),(0,o.jsx)(en.Modal,{title:"Follow ".concat(y),open:J,handleCancel:()=>U(!1),width:"550px",children:(0,o.jsx)(eh,{account:G,name:y,handleClose:()=>U(!1)})})]})},ek=e=>{let{name:t}=e,n=(0,s.sJ)(u.j$),o=(0,s.sJ)(u.RI),[i,a]=(0,r.useState)(!1),{online:l}=o,c=e=>{document.title=e},d=()=>{a(!0)},m=()=>{a(!1),c(t)},p=()=>{window.addEventListener("blur",d),window.addEventListener("focus",m)},h=()=>{window.removeEventListener("blur",d),window.removeEventListener("focus",m)};return(0,r.useEffect)(()=>(p(),()=>{h()}),[t]),(0,r.useEffect)(()=>{if(!i||!l)return;let e=n[n.length-1];"CHAT"===e.type&&c("\uD83D\uDCAC :: ".concat(t))},[n,t]),(0,r.useEffect)(()=>{i&&(l?c(" \uD83D\uDFE2 :: ".concat(t)):l||c(" \uD83D\uDD34 :: ".concat(t)))},[l,t]),null},eC=()=>{let e=()=>{navigator.serviceWorker.register("/serviceWorker.js").then(e=>{console.debug("Service Worker registration successful with scope: ",e.scope)},e=>{console.error("Service Worker registration failed: ",e)})};return(0,r.useEffect)(()=>("serviceWorker"in navigator&&window.addEventListener("load",e),()=>{window.removeEventListener("load",e)}),[]),null},eN=()=>{let e=(0,s.sJ)(u.g1),{appearanceVariables:t,customStyles:n}=e,i=Object.keys(t).filter(e=>!!t[e]).map(e=>"--".concat(e,": ").concat(t[e]));return(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:"\n :root {\n ".concat(i.join(";\n"),"\n }\n ").concat(n,"\n ")}})},eS=d()(()=>n.e(3625).then(n.bind(n,3625)).then(e=>e.FatalErrorStateModal),{loadableGenerated:{webpack:()=>[3625]},ssr:!1}),eL=()=>{let e=(0,s.sJ)(u.g1),{name:t,title:n,customStyles:i}=e,c=(0,s.sJ)(u.di),d=(0,s.sJ)(u.ap),h=(0,r.useRef)(null),{chatDisabled:x}=e;return(0,l.Z)(!0),(0,r.useEffect)(()=>{!function(e){let t=e=>{let t=e.getAttribute("rel");e.setAttribute("rel","".concat(t," noopener noreferrer"))};e.querySelectorAll("a").forEach(e=>t(e));let n=new MutationObserver(function(e){for(let n of e)for(let o of n.addedNodes)o instanceof HTMLElement&&"a"===o.tagName.toLowerCase()&&t(o)});n.observe(e,{attributes:!1,childList:!0,subtree:!0})}(h.current)},[]),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(a(),{children:[(0,o.jsx)(p,{}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"57x57",href:"/img/favicon/apple-icon-57x57.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"60x60",href:"/img/favicon/apple-icon-60x60.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"72x72",href:"/img/favicon/apple-icon-72x72.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"76x76",href:"/img/favicon/apple-icon-76x76.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"114x114",href:"/img/favicon/apple-icon-114x114.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"120x120",href:"/img/favicon/apple-icon-120x120.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"144x144",href:"/img/favicon/apple-icon-144x144.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"152x152",href:"/img/favicon/apple-icon-152x152.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"180x180",href:"/img/favicon/apple-icon-180x180.png"}),(0,o.jsx)("link",{rel:"icon",type:"image/png",sizes:"192x192",href:"/img/favicon/android-icon-192x192.png"}),(0,o.jsx)("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/img/favicon/favicon-32x32.png"}),(0,o.jsx)("link",{rel:"icon",type:"image/png",sizes:"96x96",href:"/img/favicon/favicon-96x96.png"}),(0,o.jsx)("link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/img/favicon/favicon-16x16.png"}),(0,o.jsx)("link",{rel:"manifest",href:"/manifest.json"}),(0,o.jsx)("link",{href:"/api/auth/provider/indieauth"}),(0,o.jsx)("meta",{name:"msapplication-TileColor",content:"#ffffff"}),(0,o.jsx)("meta",{name:"msapplication-TileImage",content:"/img/favicon/ms-icon-144x144.png"}),(0,o.jsx)("meta",{name:"theme-color",content:"#ffffff"}),(0,o.jsx)("style",{children:i}),(0,o.jsx)("base",{target:"_blank"})]}),(0,o.jsxs)(a(),{children:[t?(0,o.jsx)("title",{children:t}):(0,o.jsx)("title",{children:"{{.Name}}"}),(0,o.jsx)("meta",{name:"description",content:"{{.Summary}}"}),(0,o.jsx)("meta",{property:"og:title",content:"{{.Name}}"}),(0,o.jsx)("meta",{property:"og:site_name",content:"{{.Name}}"}),(0,o.jsx)("meta",{property:"og:url",content:"{{.RequestedURL}}"}),(0,o.jsx)("meta",{property:"og:description",content:"{{.Summary}}"}),(0,o.jsx)("meta",{property:"og:type",content:"video.other"}),(0,o.jsx)("meta",{property:"video:tag",content:"{{.TagsString}}"}),(0,o.jsx)("meta",{property:"og:image",content:"{{.RequestedURL}}{{.Thumbnail}}"}),(0,o.jsx)("meta",{property:"og:image:url",content:"{{.RequestedURL}}{{.Thumbnail}}"}),(0,o.jsx)("meta",{property:"og:image:alt",content:"{{.RequestedURL}}{{.Image}}"}),(0,o.jsx)("meta",{property:"og:video",content:"{{.RequestedURL}}/embed/video"}),(0,o.jsx)("meta",{property:"og:video:secure_url",content:"{{.RequestedURL}}/embed/video"}),(0,o.jsx)("meta",{property:"og:video:height",content:"315"}),(0,o.jsx)("meta",{property:"og:video:width",content:"560"}),(0,o.jsx)("meta",{property:"og:video:type",content:"text/html"}),(0,o.jsx)("meta",{property:"og:video:actor",content:"{{.Name}}"}),(0,o.jsx)("meta",{property:"twitter:title",content:"{{.Name}}"}),(0,o.jsx)("meta",{property:"twitter:url",content:"{{.RequestedURL}}"}),(0,o.jsx)("meta",{property:"twitter:description",content:"{{.Summary}}"}),(0,o.jsx)("meta",{property:"twitter:image",content:"{{.Image}}"}),(0,o.jsx)("meta",{property:"twitter:card",content:"player"}),(0,o.jsx)("meta",{property:"twitter:player",content:"{{.RequestedURL}}/embed/video"}),(0,o.jsx)("meta",{property:"twitter:player:width",content:"560"}),(0,o.jsx)("meta",{property:"twitter:player:height",content:"315"})]}),(0,o.jsx)(u.me,{}),(0,o.jsx)(eC,{}),(0,o.jsx)(ek,{name:t}),(0,o.jsx)(eN,{}),(0,o.jsxs)("div",{ref:h,style:{minHeight:"100vh"},children:[(0,o.jsx)(m.h,{name:n||t,chatAvailable:c,chatDisabled:x}),(0,o.jsx)(ey,{}),d&&(0,o.jsx)(eS,{title:d.title,message:d.message})]})]})};function eT(){return(0,o.jsx)(eL,{})}eT.getLayout=function(e){return e}},83469:function(e,t,n){"use strict";function o(){return"serviceWorker"in navigator&&"PushManager"in window}n.d(t,{Z:function(){return o}})},13959:function(e){e.exports={button:"ActionButton_button__z5Z2c",icon:"ActionButton_icon__EPp7Q"}},97038:function(e){e.exports={item:"ActionButtonMenu_item__OJQdr",buttonWrap:"ActionButtonMenu_buttonWrap__WQ9kt",icon:"ActionButtonMenu_icon__edY1D",menu:"ActionButtonMenu_menu__GChDk"}},12270:function(e){e.exports={row:"ActionButtonRow_row__SiEGe"}},47900:function(e){e.exports={root:"ContentHeader_root__HaUG0",row:"ContentHeader_row__9Q8gH",logoTitleSection:"ContentHeader_logoTitleSection__Z8pUc",logo:"ContentHeader_logo__wo_HN",titleSection:"ContentHeader_titleSection___6Y15",title:"ContentHeader_title__E_DsI",subtitle:"ContentHeader_subtitle__n1Wew",tagList:"ContentHeader_tagList__rx3jY"}},17725:function(e){e.exports={root:"Content_root__h1mNK",mainSection:"Content_mainSection__Gk78Y",topSection:"Content_topSection__JIZi0",lowerSection:"Content_lowerSection__BZHYI",lowerSectionMobile:"Content_lowerSectionMobile__hRr0_",tabs:"Content_tabs__LMcZ1",leftCol:"Content_leftCol__U2TDq",loadingSpinner:"Content_loadingSpinner__mDlYC",main:"Content_main__XVf63"}},10808:function(e){e.exports={pageContentContainer:"CustomPageContent_pageContentContainer__EG4tU",customPageContent:"CustomPageContent_customPageContent__Mr981",summary:"CustomPageContent_summary___Zgps"}},67917:function(e){e.exports={footer:"Footer_footer__mPuvf",links:"Footer_links__7bBxV"}},74933:function(e){e.exports={root:"Logo_root__jKiJC",container:"Logo_container__A4UYT",image:"Logo_image__Ahkom"}},77011:function(e){e.exports={spinner:"Modal_spinner__GiSS0",content:"Modal_content__h9my9"}},88335:function(e){e.exports={outerContainer:"OfflineBanner_outerContainer__3AbsB",innerContainer:"OfflineBanner_innerContainer__zTm13",bodyText:"OfflineBanner_bodyText__nNNy0",separator:"OfflineBanner_separator___j_Ss",lastLiveDate:"OfflineBanner_lastLiveDate___UZdO",clockIcon:"OfflineBanner_clockIcon__s0DB_",header:"OfflineBanner_header__Vu20o",footer:"OfflineBanner_footer__o3Zl5",actionLink:"OfflineBanner_actionLink__b4Mwa"}},12341:function(e){e.exports={root:"Sidebar_root__8HE0A"}},573:function(e){e.exports={link:"SocialLinks_link___CcSm",links:"SocialLinks_links__gOAb7"}},37970:function(e){e.exports={statusbar:"Statusbar_statusbar__AtVnB"}}},function(e){e.O(0,[481,1407,4083,1577,3174,2459,3013,6754,195,5402,5938,6395,6155,5360,4220,3343,7466,6097,9774,2888,179],function(){return e(e.s=48312)}),_N_E=e.O()}]); -//# sourceMappingURL=index-15a42fca6a4a589c.js.map \ No newline at end of file diff --git a/static/web/_next/static/chunks/pages/index-15a42fca6a4a589c.js.map b/static/web/_next/static/chunks/pages/index-15a42fca6a4a589c.js.map deleted file mode 100644 index fa262ab08..000000000 --- a/static/web/_next/static/chunks/pages/index-15a42fca6a4a589c.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/chunks/pages/index-15a42fca6a4a589c.js","mappings":"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","sources":["webpack://_N_E/","webpack://_N_E/./components/action-buttons/FollowButton.tsx","webpack://_N_E/./components/ui/Modal/Modal.tsx","webpack://_N_E/./components/ui/OfflineBanner/OfflineBanner.tsx","webpack://_N_E/./components/ui/Statusbar/Statusbar.tsx","webpack://_N_E/./utils/no-link-referrer.ts","webpack://_N_E/./components/ServerRendered/ServerRenderedHydration.tsx","webpack://_N_E/./components/ui/CustomPageContent/CustomPageContent.tsx","webpack://_N_E/./components/ui/Sidebar/Sidebar.tsx","webpack://_N_E/./components/ui/Footer/Footer.tsx","webpack://_N_E/./components/action-buttons/ActionButtonRow/ActionButtonRow.tsx","webpack://_N_E/./components/action-buttons/ActionButton/ActionButton.tsx","webpack://_N_E/./components/action-buttons/NotifyButton.tsx","webpack://_N_E/./components/ui/Logo/Logo.tsx","webpack://_N_E/./components/ui/SocialLinks/SocialLinks.tsx","webpack://_N_E/./components/common/ContentHeader/ContentHeader.tsx","webpack://_N_E/./components/action-buttons/ActionButtonMenu/ActionButtonMenu.tsx","webpack://_N_E/./components/ui/Content/Content.tsx","webpack://_N_E/./components/TitleNotifier/TitleNotifier.tsx","webpack://_N_E/./components/workers/PushNotificationServiceWorker/PushNotificationServiceWorker.tsx","webpack://_N_E/./components/theme/Theme.tsx","webpack://_N_E/./components/layouts/Main.tsx","webpack://_N_E/./pages/index.tsx","webpack://_N_E/./utils/browserPushNotifications.ts","webpack://_N_E/./components/action-buttons/ActionButton/ActionButton.module.scss","webpack://_N_E/./components/action-buttons/ActionButtonMenu/ActionButtonMenu.module.scss","webpack://_N_E/./components/action-buttons/ActionButtonRow/ActionButtonRow.module.scss","webpack://_N_E/./components/common/ContentHeader/ContentHeader.module.scss","webpack://_N_E/./components/ui/Content/Content.module.scss","webpack://_N_E/./components/ui/CustomPageContent/CustomPageContent.module.scss","webpack://_N_E/./components/ui/Footer/Footer.module.scss","webpack://_N_E/./components/ui/Logo/Logo.module.scss","webpack://_N_E/./components/ui/Modal/Modal.module.scss","webpack://_N_E/./components/ui/OfflineBanner/OfflineBanner.module.scss","webpack://_N_E/./components/ui/Sidebar/Sidebar.module.scss","webpack://_N_E/./components/ui/SocialLinks/SocialLinks.module.scss","webpack://_N_E/./components/ui/Statusbar/Statusbar.module.scss","webpack://_N_E/"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/\",\n function () {\n return require(\"private-next-pages/index.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/\"])\n });\n }\n ","import { Button, ButtonProps } from 'antd';\nimport { HeartFilled } from '@ant-design/icons';\n\nimport { FC } from 'react';\nimport styles from './ActionButton/ActionButton.module.scss';\n\nexport type FollowButtonProps = ButtonProps & {\n onClick?: () => void;\n props?: ButtonProps;\n};\n\nexport const FollowButton: FC = ({ onClick, props }) => (\n }\n onClick={onClick}\n id=\"follow-button\"\n >\n Follow\n \n);\n","import { Spin, Skeleton, Modal as AntModal } from 'antd';\nimport React, { FC, ReactNode, useState } from 'react';\nimport styles from './Modal.module.scss';\n\nexport type ModalProps = {\n title: string;\n url?: string;\n open: boolean;\n handleOk?: () => void;\n handleCancel?: () => void;\n afterClose?: () => void;\n children?: ReactNode;\n height?: string;\n width?: string;\n};\n\nexport const Modal: FC = ({\n title,\n url,\n open,\n handleOk,\n handleCancel,\n afterClose,\n height,\n width,\n children,\n}) => {\n const [loading, setLoading] = useState(!!url);\n\n let defaultHeight = '100%';\n let defaultWidth = '520px';\n if (url) {\n defaultHeight = '70vh';\n defaultWidth = '900px';\n }\n\n const modalContentBodyStyle = {\n padding: '0px',\n minHeight: height,\n height: height ?? defaultHeight,\n };\n\n const iframe = url && (\n setLoading(false)}\n />\n );\n\n const iframeDisplayStyle = loading ? 'none' : 'inline';\n\n return (\n \n
\n {loading && (\n \n )}\n\n {iframe &&
{iframe}
}\n {children &&
{children}
}\n {loading && }\n
\n \n );\n};\nexport default Modal;\n\nModal.defaultProps = {\n url: undefined,\n children: undefined,\n handleOk: undefined,\n handleCancel: undefined,\n afterClose: undefined,\n};\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { Divider } from 'antd';\nimport { ClockCircleOutlined } from '@ant-design/icons';\nimport { FC } from 'react';\nimport formatDistanceToNow from 'date-fns/formatDistanceToNow';\nimport styles from './OfflineBanner.module.scss';\n\nexport type OfflineBannerProps = {\n streamName: string;\n customText?: string;\n lastLive?: Date;\n notificationsEnabled: boolean;\n fediverseAccount?: string;\n onNotifyClick?: () => void;\n onFollowClick?: () => void;\n};\n\nexport const OfflineBanner: FC = ({\n streamName,\n customText,\n lastLive,\n notificationsEnabled,\n fediverseAccount,\n onNotifyClick,\n onFollowClick,\n}) => {\n let text;\n if (customText) {\n text = customText;\n } else if (!customText && notificationsEnabled && fediverseAccount) {\n text = (\n \n This stream is offline. You can{' '}\n \n be notified\n {' '}\n the next time {streamName} goes live or{' '}\n \n follow\n {' '}\n {fediverseAccount} on the Fediverse.\n \n );\n } else if (!customText && notificationsEnabled) {\n text = (\n \n This stream is offline.{' '}\n \n Be notified\n {' '}\n the next time {streamName} goes live.\n \n );\n } else if (!customText && fediverseAccount) {\n text = (\n \n This stream is offline.{' '}\n \n Follow\n {' '}\n {fediverseAccount} on the Fediverse to see the next time {streamName} goes live.\n \n );\n } else {\n text = `This stream is offline. Check back soon!`;\n }\n\n return (\n
\n
\n
{streamName}
\n \n
{text}
\n {lastLive && (\n
\n \n {`Last live ${formatDistanceToNow(new Date(lastLive))} ago.`}\n
\n )}\n
\n
\n );\n};\n","import formatDistanceToNow from 'date-fns/formatDistanceToNow';\nimport intervalToDuration from 'date-fns/intervalToDuration';\nimport { FC, useEffect, useState } from 'react';\nimport { EyeFilled } from '@ant-design/icons';\nimport styles from './Statusbar.module.scss';\n\nexport type StatusbarProps = {\n online: Boolean;\n lastConnectTime?: Date;\n lastDisconnectTime?: Date;\n viewerCount: number;\n};\n\nfunction makeDurationString(lastConnectTime: Date): string {\n const diff = intervalToDuration({ start: lastConnectTime, end: new Date() });\n if (diff.days > 1) {\n return `${diff.days} days ${diff.hours} hours`;\n }\n if (diff.hours >= 1) {\n return `${diff.hours} hours ${diff.minutes} minutes`;\n }\n\n return `${diff.minutes} minutes ${diff.seconds} seconds`;\n}\n\nexport const Statusbar: FC = ({\n online,\n lastConnectTime,\n lastDisconnectTime,\n viewerCount,\n}) => {\n const [, setNow] = useState(new Date());\n\n // Set a timer to update the status bar.\n useEffect(() => {\n const interval = setInterval(() => setNow(new Date()), 1000);\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n let onlineMessage = '';\n let rightSideMessage: any;\n if (online && lastConnectTime) {\n const duration = makeDurationString(new Date(lastConnectTime));\n onlineMessage = online ? `Live for ${duration}` : 'Offline';\n rightSideMessage = viewerCount > 0 && (\n
\n \n \n \n {` ${viewerCount}`}\n
\n );\n } else if (!online) {\n onlineMessage = 'Offline';\n if (lastDisconnectTime) {\n rightSideMessage = `Last live ${formatDistanceToNow(new Date(lastDisconnectTime))} ago.`;\n }\n }\n\n return (\n
\n
{onlineMessage}
\n
{rightSideMessage}
\n
\n );\n};\nexport default Statusbar;\n\nStatusbar.defaultProps = {\n lastConnectTime: null,\n lastDisconnectTime: null,\n};\n","/*\nDue to Owncast's goal of being private by default, we don't want any external\nlinks to leak the instance of Owncast as a referrer.\nThis observer attempts to catch any anchor tags and automatically add the\nnoopener and noreferrer attributes to them so the instance of Owncast isn't\npassed along in the headers.\n\nThis should should be fired somewhere relatively high level in the DOM and live\nfor the entirety of the page.\n*/\n\n/* eslint-disable no-restricted-syntax */\nexport default function setupNoLinkReferrer(observationRoot: HTMLElement): void {\n // Options for the observer (which mutations to observe)\n const config = { attributes: false, childList: true, subtree: true };\n\n const addNoReferrer = (node: Element): void => {\n const existingAttributes = node.getAttribute('rel');\n const attributes = `${existingAttributes} noopener noreferrer`;\n node.setAttribute('rel', attributes);\n };\n\n // Callback function to execute when mutations are observed\n // eslint-disable-next-line func-names\n const callback = function (mutationList) {\n for (const mutation of mutationList) {\n for (const node of mutation.addedNodes) {\n // we track only elements, skip other nodes (e.g. text nodes)\n // eslint-disable-next-line no-continue\n if (!(node instanceof HTMLElement)) continue;\n\n if (node.tagName.toLowerCase() === 'a') {\n addNoReferrer(node);\n }\n }\n }\n };\n\n observationRoot.querySelectorAll('a').forEach(anchor => addNoReferrer(anchor));\n\n // Create an observer instance linked to the callback function\n const observer = new MutationObserver(callback);\n\n // Start observing the target node for configured mutations\n observer.observe(observationRoot, config);\n}\n","/* eslint-disable react/no-danger */\nimport { FC } from 'react';\n\nexport const ServerRenderedHydration: FC = () => (\n \n);\n","/* eslint-disable react/no-danger */\nimport { FC } from 'react';\nimport styles from './CustomPageContent.module.scss';\n\nexport type CustomPageContentProps = {\n content: string;\n};\n\nexport const CustomPageContent: FC = ({ content }) => (\n
\n
\n
\n);\n","import Sider from 'antd/lib/layout/Sider';\nimport { useRecoilValue } from 'recoil';\nimport { FC } from 'react';\nimport dynamic from 'next/dynamic';\nimport { ChatMessage } from '../../../interfaces/chat-message.model';\nimport styles from './Sidebar.module.scss';\n\nimport { currentUserAtom, visibleChatMessagesSelector } from '../../stores/ClientConfigStore';\n\n// Lazy loaded components\nconst ChatContainer = dynamic(\n () => import('../../chat/ChatContainer/ChatContainer').then(mod => mod.ChatContainer),\n {\n ssr: false,\n },\n);\n\nexport const Sidebar: FC = () => {\n const currentUser = useRecoilValue(currentUserAtom);\n const messages = useRecoilValue(visibleChatMessagesSelector);\n if (!currentUser) {\n return ;\n }\n\n const { id, isModerator, displayName } = currentUser;\n return (\n \n \n \n );\n};\n","import { FC } from 'react';\nimport styles from './Footer.module.scss';\n\nexport type FooterProps = {\n version: string;\n};\n\nexport const Footer: FC = ({ version }) => (\n \n);\nexport default Footer;\n","import { FC, ReactNode } from 'react';\nimport styles from './ActionButtonRow.module.scss';\n\nexport type ActionButtonRowProps = {\n children: ReactNode;\n};\n\nexport const ActionButtonRow: FC = ({ children }) => (\n
{children}
\n);\n","import { Button } from 'antd';\nimport { FC } from 'react';\nimport cn from 'classnames';\nimport { ExternalAction } from '../../../interfaces/external-action';\nimport styles from './ActionButton.module.scss';\n\nexport type ActionButtonProps = {\n action: ExternalAction;\n primary?: boolean;\n externalActionSelected: (action: ExternalAction) => void;\n};\n\nexport const ActionButton: FC = ({\n action,\n primary = true,\n externalActionSelected,\n}) => {\n const { title, description, icon, color } = action;\n\n return (\n externalActionSelected(action)}\n style={{ backgroundColor: color }}\n >\n {icon && {description}}\n {title}\n \n );\n};\n","import { Button } from 'antd';\nimport { BellFilled } from '@ant-design/icons';\nimport { FC } from 'react';\nimport styles from './ActionButton/ActionButton.module.scss';\n\nexport type NotifyButtonProps = {\n text?: string;\n onClick?: () => void;\n};\n\nexport const NotifyButton: FC = ({ onClick, text }) => (\n }\n onClick={onClick}\n id=\"notify-button\"\n >\n {text || 'Notify'}\n \n);\n","import { FC } from 'react';\nimport styles from './Logo.module.scss';\n\nexport type LogoProps = {\n src: string;\n};\n\nexport const Logo: FC = ({ src }) => (\n
\n
\n \"Logo\"\n
\n
\n);\nexport default Logo;\n","import Image from 'next/image';\nimport { FC } from 'react';\nimport { SocialLink } from '../../../interfaces/social-link.model';\nimport styles from './SocialLinks.module.scss';\n\nexport type SocialLinksProps = {\n links: SocialLink[];\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const SocialLinks: FC = ({ links }) => (\n
\n {links.map(link => (\n \n \n \n ))}\n
\n);\n","import cn from 'classnames';\nimport { FC } from 'react';\nimport Linkify from 'react-linkify';\nimport { Logo } from '../../ui/Logo/Logo';\nimport { SocialLinks } from '../../ui/SocialLinks/SocialLinks';\nimport { SocialLink } from '../../../interfaces/social-link.model';\nimport styles from './ContentHeader.module.scss';\n\nexport type ContentHeaderProps = {\n name: string;\n title: string;\n summary: string;\n tags: string[];\n links: SocialLink[];\n logo: string;\n};\n\nexport const ContentHeader: FC = ({\n name,\n title,\n summary,\n logo,\n tags,\n links,\n}) => (\n
\n
\n
\n \n
\n
\n
{name}
\n
\n {title || summary}\n
\n
\n {tags.length > 0 && tags.map(tag => #{tag} )}\n
\n
\n \n
\n
\n
\n
\n);\n","import { FC } from 'react';\nimport { Button, Dropdown, Menu } from 'antd';\nimport { EllipsisOutlined, HeartOutlined, BellOutlined } from '@ant-design/icons';\nimport styles from './ActionButtonMenu.module.scss';\nimport { ExternalAction } from '../../../interfaces/external-action';\n\nconst NOTIFY_KEY = 'notify';\nconst FOLLOW_KEY = 'follow';\n\nexport type ActionButtonMenuProps = {\n actions: ExternalAction[];\n showFollowItem?: boolean;\n showNotifyItem?: boolean;\n externalActionSelected: (action: ExternalAction) => void;\n notifyItemSelected: () => void;\n followItemSelected: () => void;\n};\n\nexport const ActionButtonMenu: FC = ({\n actions,\n externalActionSelected,\n notifyItemSelected,\n followItemSelected,\n showFollowItem,\n showNotifyItem,\n}) => {\n const onMenuClick = a => {\n if (a.key === NOTIFY_KEY) {\n notifyItemSelected();\n return;\n }\n if (a.key === FOLLOW_KEY) {\n followItemSelected();\n return;\n }\n const action = actions.find(x => x.url === a.key);\n externalActionSelected(action);\n };\n\n const items = actions.map(action => ({\n key: action.url,\n label: (\n \n {action.icon && {action.title}}{' '}\n {action.title}\n \n ),\n }));\n\n if (showFollowItem) {\n items.unshift({\n key: FOLLOW_KEY,\n label: (\n \n Follow this stream\n \n ),\n });\n }\n\n if (showNotifyItem) {\n items.unshift({\n key: NOTIFY_KEY,\n label: (\n \n \n Notify when live\n \n ),\n });\n }\n\n const menu = ;\n\n return (\n \n
\n e.preventDefault()}\n size=\"large\"\n icon={}\n />\n
\n
\n );\n};\n","import { useRecoilState, useRecoilValue } from 'recoil';\nimport { Skeleton } from 'antd';\nimport { FC, useEffect, useState } from 'react';\nimport dynamic from 'next/dynamic';\nimport { LOCAL_STORAGE_KEYS, getLocalStorage, setLocalStorage } from '../../../utils/localStorage';\nimport isPushNotificationSupported from '../../../utils/browserPushNotifications';\n\nimport {\n clientConfigStateAtom,\n chatMessagesAtom,\n currentUserAtom,\n isChatAvailableSelector,\n isChatVisibleSelector,\n appStateAtom,\n isOnlineSelector,\n isMobileAtom,\n serverStatusState,\n} from '../../stores/ClientConfigStore';\nimport { ClientConfig } from '../../../interfaces/client-config.model';\nimport { CustomPageContent } from '../CustomPageContent/CustomPageContent';\n\nimport styles from './Content.module.scss';\nimport { Sidebar } from '../Sidebar/Sidebar';\nimport { Footer } from '../Footer/Footer';\n\nimport { ActionButtonRow } from '../../action-buttons/ActionButtonRow/ActionButtonRow';\nimport { ActionButton } from '../../action-buttons/ActionButton/ActionButton';\nimport { OfflineBanner } from '../OfflineBanner/OfflineBanner';\nimport { AppStateOptions } from '../../stores/application-state';\nimport { FollowButton } from '../../action-buttons/FollowButton';\nimport { NotifyButton } from '../../action-buttons/NotifyButton';\nimport { ContentHeader } from '../../common/ContentHeader/ContentHeader';\nimport { ServerStatus } from '../../../interfaces/server-status.model';\nimport { Statusbar } from '../Statusbar/Statusbar';\nimport { ChatMessage } from '../../../interfaces/chat-message.model';\nimport { ExternalAction } from '../../../interfaces/external-action';\nimport { Modal } from '../Modal/Modal';\nimport { ActionButtonMenu } from '../../action-buttons/ActionButtonMenu/ActionButtonMenu';\n\n// Lazy loaded components\n\nconst FollowerCollection = dynamic(\n () =>\n import('../followers/FollowerCollection/FollowerCollection').then(\n mod => mod.FollowerCollection,\n ),\n {\n ssr: false,\n },\n);\n\nconst FollowModal = dynamic(\n () => import('../../modals/FollowModal/FollowModal').then(mod => mod.FollowModal),\n {\n ssr: false,\n },\n);\n\nconst BrowserNotifyModal = dynamic(\n () =>\n import('../../modals/BrowserNotifyModal/BrowserNotifyModal').then(\n mod => mod.BrowserNotifyModal,\n ),\n {\n ssr: false,\n },\n);\n\nconst NotifyReminderPopup = dynamic(\n () => import('../NotifyReminderPopup/NotifyReminderPopup').then(mod => mod.NotifyReminderPopup),\n {\n ssr: false,\n },\n);\n\nconst OwncastPlayer = dynamic(\n () => import('../../video/OwncastPlayer/OwncastPlayer').then(mod => mod.OwncastPlayer),\n {\n ssr: false,\n },\n);\n\nconst ChatContainer = dynamic(\n () => import('../../chat/ChatContainer/ChatContainer').then(mod => mod.ChatContainer),\n {\n ssr: false,\n },\n);\n\nconst Tabs = dynamic(() => import('antd').then(mod => mod.Tabs), {\n ssr: false,\n});\n\nconst DesktopContent = ({\n name,\n streamTitle,\n summary,\n tags,\n socialHandles,\n extraPageContent,\n setShowFollowModal,\n supportFediverseFeatures,\n}) => {\n const aboutTabContent = ;\n const followersTabContent = (\n setShowFollowModal(true)} />\n );\n\n const items = [{ label: 'About', key: '2', children: aboutTabContent }];\n if (supportFediverseFeatures) {\n items.push({ label: 'Followers', key: '3', children: followersTabContent });\n }\n\n return (\n <>\n
\n \n
\n\n
\n {items.length > 1 ? : aboutTabContent}\n
\n \n );\n};\n\nconst MobileContent = ({\n name,\n streamTitle,\n summary,\n tags,\n socialHandles,\n extraPageContent,\n messages,\n currentUser,\n showChat,\n actions,\n setExternalActionToDisplay,\n setShowNotifyPopup,\n setShowFollowModal,\n supportFediverseFeatures,\n supportsBrowserNotifications,\n}) => {\n if (!currentUser) {\n return ;\n }\n const { id, displayName } = currentUser;\n\n const chatContent = showChat && (\n \n );\n\n const aboutTabContent = (\n <>\n \n \n \n );\n const followersTabContent = (\n setShowFollowModal(true)} />\n );\n\n const items = [\n showChat && { label: 'Chat', key: '0', children: chatContent },\n { label: 'About', key: '2', children: aboutTabContent },\n { label: 'Followers', key: '3', children: followersTabContent },\n ];\n\n const replacementTabBar = (props, DefaultTabBar) => (\n
\n \n setShowNotifyPopup(true)}\n followItemSelected={() => setShowFollowModal(true)}\n />\n
\n );\n\n return (\n
\n \n
\n );\n};\n\nconst ExternalModal = ({ externalActionToDisplay, setExternalActionToDisplay }) => {\n const { title, description, url } = externalActionToDisplay;\n return (\n setExternalActionToDisplay(null)}\n />\n );\n};\n\nexport const Content: FC = () => {\n const appState = useRecoilValue(appStateAtom);\n const clientConfig = useRecoilValue(clientConfigStateAtom);\n const isChatVisible = useRecoilValue(isChatVisibleSelector);\n const isChatAvailable = useRecoilValue(isChatAvailableSelector);\n const currentUser = useRecoilValue(currentUserAtom);\n\n const [isMobile, setIsMobile] = useRecoilState(isMobileAtom);\n const messages = useRecoilValue(chatMessagesAtom);\n const online = useRecoilValue(isOnlineSelector);\n\n const { viewerCount, lastConnectTime, lastDisconnectTime, streamTitle } =\n useRecoilValue(serverStatusState);\n const {\n extraPageContent,\n version,\n name,\n summary,\n socialHandles,\n tags,\n externalActions,\n offlineMessage,\n chatDisabled,\n federation,\n notifications,\n } = clientConfig;\n const [showNotifyReminder, setShowNotifyReminder] = useState(false);\n const [showNotifyModal, setShowNotifyModal] = useState(false);\n const [showFollowModal, setShowFollowModal] = useState(false);\n const { account: fediverseAccount, enabled: fediverseEnabled } = federation;\n const { browser: browserNotifications } = notifications;\n const { enabled: browserNotificationsEnabled } = browserNotifications;\n const [externalActionToDisplay, setExternalActionToDisplay] = useState(null);\n\n const [supportsBrowserNotifications, setSupportsBrowserNotifications] = useState(false);\n const supportFediverseFeatures = fediverseEnabled;\n\n const externalActionSelected = (action: ExternalAction) => {\n const { openExternally, url } = action;\n if (openExternally) {\n window.open(url, '_blank');\n } else {\n setExternalActionToDisplay(action);\n }\n };\n\n const externalActionButtons = externalActions.map(action => (\n \n ));\n\n const incrementVisitCounter = () => {\n let visits = parseInt(getLocalStorage(LOCAL_STORAGE_KEYS.userVisitCount), 10);\n if (Number.isNaN(visits)) {\n visits = 0;\n }\n\n setLocalStorage(LOCAL_STORAGE_KEYS.userVisitCount, visits + 1);\n\n if (visits > 2 && !getLocalStorage(LOCAL_STORAGE_KEYS.hasDisplayedNotificationModal)) {\n setShowNotifyReminder(true);\n }\n };\n\n const disableNotifyReminderPopup = () => {\n setShowNotifyModal(false);\n setShowNotifyReminder(false);\n setLocalStorage(LOCAL_STORAGE_KEYS.hasDisplayedNotificationModal, true);\n };\n\n const checkIfMobile = () => {\n const w = window.innerWidth;\n if (isMobile === undefined) {\n if (w <= 768) setIsMobile(true);\n else setIsMobile(false);\n }\n if (!isMobile && w <= 768) setIsMobile(true);\n if (isMobile && w > 768) setIsMobile(false);\n };\n\n useEffect(() => {\n incrementVisitCounter();\n checkIfMobile();\n window.addEventListener('resize', checkIfMobile);\n return () => {\n window.removeEventListener('resize', checkIfMobile);\n };\n }, []);\n\n useEffect(() => {\n // isPushNotificationSupported relies on `navigator` so that needs to be\n // fired from this useEffect.\n setSupportsBrowserNotifications(isPushNotificationSupported() && browserNotificationsEnabled);\n }, [browserNotificationsEnabled]);\n\n const showChat = !chatDisabled && isChatAvailable && isChatVisible;\n\n return (\n <>\n
\n
\n
\n
\n {appState.appLoading && }\n {online && }\n {!online && !appState.appLoading && (\n setShowNotifyModal(true)}\n onFollowClick={() => setShowFollowModal(true)}\n />\n )}\n {online && (\n \n )}\n
\n
\n
\n {!isMobile && (\n \n {externalActionButtons}\n {supportFediverseFeatures && (\n setShowFollowModal(true)} />\n )}\n {supportsBrowserNotifications && (\n setShowNotifyModal(true)}\n notificationClosed={() => disableNotifyReminderPopup()}\n >\n setShowNotifyModal(true)} />\n \n )}\n \n )}\n\n disableNotifyReminderPopup()}\n handleCancel={() => disableNotifyReminderPopup()}\n >\n \n \n
\n
\n {isMobile ? (\n \n ) : (\n \n )}\n
\n
\n {showChat && !isMobile && }\n
\n {!isMobile && false &&
}\n
\n {externalActionToDisplay && (\n \n )}\n setShowFollowModal(false)}\n width=\"550px\"\n >\n setShowFollowModal(false)}\n />\n \n \n );\n};\nexport default Content;\n","/**\n * This component is responsible for updating the title of the page when\n * different state changes occur.\n * If the stream live state changes, or chat messages come in while the\n * page is backgrounded, this component will update the title to reflect it. *\n * @component\n */\nimport { FC, useEffect, useState } from 'react';\nimport { useRecoilValue } from 'recoil';\nimport { serverStatusState, chatMessagesAtom } from '../stores/ClientConfigStore';\n\nexport type TitleNotifierProps = {\n name: string;\n};\n\nexport const TitleNotifier: FC = ({ name }) => {\n const chatMessages = useRecoilValue(chatMessagesAtom);\n const serverStatus = useRecoilValue(serverStatusState);\n\n const [backgrounded, setBackgrounded] = useState(false);\n\n const { online } = serverStatus;\n\n const setTitle = (title: string) => {\n document.title = title;\n };\n\n const onBlur = () => {\n setBackgrounded(true);\n };\n\n const onFocus = () => {\n setBackgrounded(false);\n setTitle(name);\n };\n\n const listenForEvents = () => {\n // Listen for events that should update the title\n window.addEventListener('blur', onBlur);\n window.addEventListener('focus', onFocus);\n };\n\n const removeEvents = () => {\n window.removeEventListener('blur', onBlur);\n window.removeEventListener('focus', onFocus);\n };\n\n useEffect(() => {\n listenForEvents();\n\n return () => {\n removeEvents();\n };\n }, [name]);\n\n useEffect(() => {\n if (!backgrounded || !online) {\n return;\n }\n\n // Only alert on real chat messages from people.\n const lastMessage = chatMessages[chatMessages.length - 1];\n if (lastMessage.type !== 'CHAT') {\n return;\n }\n\n setTitle(`💬 :: ${name}`);\n }, [chatMessages, name]);\n\n useEffect(() => {\n if (!backgrounded) {\n return;\n }\n\n if (online) {\n setTitle(` 🟢 :: ${name}`);\n } else if (!online) {\n setTitle(` 🔴 :: ${name}`);\n }\n }, [online, name]);\n\n return null;\n};\n","/* eslint-disable react/no-danger */\nimport { FC, useEffect } from 'react';\n\nexport const PushNotificationServiceWorker: FC = () => {\n const add = () => {\n navigator.serviceWorker.register('/serviceWorker.js').then(\n registration => {\n console.debug('Service Worker registration successful with scope: ', registration.scope);\n },\n err => {\n console.error('Service Worker registration failed: ', err);\n },\n );\n };\n\n useEffect(() => {\n if ('serviceWorker' in navigator) {\n window.addEventListener('load', add);\n }\n\n return () => {\n window.removeEventListener('load', add);\n };\n }, []);\n\n return null;\n};\n","/* eslint-disable react/no-danger */\nimport { FC } from 'react';\nimport { useRecoilValue } from 'recoil';\nimport { ClientConfig } from '../../interfaces/client-config.model';\nimport { clientConfigStateAtom } from '../stores/ClientConfigStore';\n\nexport const Theme: FC = () => {\n const clientConfig = useRecoilValue(clientConfigStateAtom);\n const { appearanceVariables, customStyles } = clientConfig;\n\n const appearanceVars = Object.keys(appearanceVariables)\n .filter(variable => !!appearanceVariables[variable])\n .map(variable => `--${variable}: ${appearanceVariables[variable]}`);\n\n return (\n \n );\n};\n","/* eslint-disable react/no-danger */\n/* eslint-disable react/no-unescaped-entities */\nimport { useRecoilValue } from 'recoil';\nimport Head from 'next/head';\nimport { FC, useEffect, useRef } from 'react';\nimport { useLockBodyScroll } from 'react-use';\nimport dynamic from 'next/dynamic';\nimport {\n ClientConfigStore,\n isChatAvailableSelector,\n clientConfigStateAtom,\n fatalErrorStateAtom,\n} from '../stores/ClientConfigStore';\nimport { Header } from '../ui/Header/Header';\nimport { ClientConfig } from '../../interfaces/client-config.model';\nimport { DisplayableError } from '../../types/displayable-error';\nimport setupNoLinkReferrer from '../../utils/no-link-referrer';\nimport { ServerRenderedHydration } from '../ServerRendered/ServerRenderedHydration';\nimport { Content } from '../ui/Content/Content';\nimport { TitleNotifier } from '../TitleNotifier/TitleNotifier';\nimport { PushNotificationServiceWorker } from '../workers/PushNotificationServiceWorker/PushNotificationServiceWorker';\nimport { Theme } from '../theme/Theme';\n\n// Lazy loaded components\n\nconst FatalErrorStateModal = dynamic(\n () =>\n import('../modals/FatalErrorStateModal/FatalErrorStateModal').then(\n mod => mod.FatalErrorStateModal,\n ),\n {\n ssr: false,\n },\n);\n\nexport const Main: FC = () => {\n const clientConfig = useRecoilValue(clientConfigStateAtom);\n const { name, title, customStyles } = clientConfig;\n const isChatAvailable = useRecoilValue(isChatAvailableSelector);\n const fatalError = useRecoilValue(fatalErrorStateAtom);\n\n const layoutRef = useRef(null);\n const { chatDisabled } = clientConfig;\n\n useLockBodyScroll(true);\n\n useEffect(() => {\n setupNoLinkReferrer(layoutRef.current);\n }, []);\n\n const isProduction = process.env.NODE_ENV === 'production';\n\n return (\n <>\n \n {isProduction && }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n {isProduction ? (\n \n {name ? {name} : {'{{.Name}}'}}\n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n ) : (\n \n {name}\n \n )}\n\n \n \n \n \n
\n
\n \n {fatalError && (\n \n )}\n
\n \n );\n};\n","import { ReactElement } from 'react';\nimport { Main } from '../components/layouts/Main';\n\nexport default function Home() {\n return
;\n}\nHome.getLayout = function getLayout(page: ReactElement) {\n return page;\n};\n","export default function isPushNotificationSupported() {\n return 'serviceWorker' in navigator && 'PushManager' in window;\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"ActionButton_button__z5Z2c\",\"icon\":\"ActionButton_icon__EPp7Q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"item\":\"ActionButtonMenu_item__OJQdr\",\"buttonWrap\":\"ActionButtonMenu_buttonWrap__WQ9kt\",\"icon\":\"ActionButtonMenu_icon__edY1D\",\"menu\":\"ActionButtonMenu_menu__GChDk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"ActionButtonRow_row__SiEGe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ContentHeader_root__HaUG0\",\"row\":\"ContentHeader_row__9Q8gH\",\"logoTitleSection\":\"ContentHeader_logoTitleSection__Z8pUc\",\"logo\":\"ContentHeader_logo__wo_HN\",\"titleSection\":\"ContentHeader_titleSection___6Y15\",\"title\":\"ContentHeader_title__E_DsI\",\"subtitle\":\"ContentHeader_subtitle__n1Wew\",\"tagList\":\"ContentHeader_tagList__rx3jY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"Content_root__h1mNK\",\"mainSection\":\"Content_mainSection__Gk78Y\",\"topSection\":\"Content_topSection__JIZi0\",\"lowerSection\":\"Content_lowerSection__BZHYI\",\"lowerSectionMobile\":\"Content_lowerSectionMobile__hRr0_\",\"tabs\":\"Content_tabs__LMcZ1\",\"leftCol\":\"Content_leftCol__U2TDq\",\"loadingSpinner\":\"Content_loadingSpinner__mDlYC\",\"main\":\"Content_main__XVf63\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageContentContainer\":\"CustomPageContent_pageContentContainer__EG4tU\",\"customPageContent\":\"CustomPageContent_customPageContent__Mr981\",\"summary\":\"CustomPageContent_summary___Zgps\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"Footer_footer__mPuvf\",\"links\":\"Footer_links__7bBxV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"Logo_root__jKiJC\",\"container\":\"Logo_container__A4UYT\",\"image\":\"Logo_image__Ahkom\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"spinner\":\"Modal_spinner__GiSS0\",\"content\":\"Modal_content__h9my9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"outerContainer\":\"OfflineBanner_outerContainer__3AbsB\",\"innerContainer\":\"OfflineBanner_innerContainer__zTm13\",\"bodyText\":\"OfflineBanner_bodyText__nNNy0\",\"separator\":\"OfflineBanner_separator___j_Ss\",\"lastLiveDate\":\"OfflineBanner_lastLiveDate___UZdO\",\"clockIcon\":\"OfflineBanner_clockIcon__s0DB_\",\"header\":\"OfflineBanner_header__Vu20o\",\"footer\":\"OfflineBanner_footer__o3Zl5\",\"actionLink\":\"OfflineBanner_actionLink__b4Mwa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"Sidebar_root__8HE0A\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"link\":\"SocialLinks_link___CcSm\",\"links\":\"SocialLinks_links__gOAb7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"statusbar\":\"Statusbar_statusbar__AtVnB\"};"],"names":["window","__NEXT_P","push","__webpack_require__","FollowButton","onClick","props","param","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Button","type","className","styles","icon","HeartFilled","id","Modal","title","url","open","handleOk","handleCancel","afterClose","height","width","children","loading","setLoading","useState","defaultHeight","defaultWidth","modalContentBodyStyle","padding","minHeight","iframe","src","sandbox","frameBorder","allowFullScreen","style","display","onLoad","AntModal","onOk","onCancel","bodyStyle","zIndex","footer","centered","destroyOnClose","jsxs","div","Skeleton","active","paragraph","rows","Spin","spinning","size","__webpack_exports__","defaultProps","undefined","OfflineBanner","text","streamName","customText","lastLive","notificationsEnabled","fediverseAccount","onNotifyClick","onFollowClick","span","role","tabIndex","Divider","ClockCircleOutlined","concat","formatDistanceToNow","Date","Statusbar","rightSideMessage","online","lastConnectTime","lastDisconnectTime","viewerCount","setNow","useEffect","interval","setInterval","clearInterval","onlineMessage","duration","makeDurationString","diff","intervalToDuration","start","end","days","hours","minutes","seconds","EyeFilled","ServerRenderedHydration","jsx_runtime","script","nonce","dangerouslySetInnerHTML","__html","CustomPageContent","content","ChatContainer","dynamic","Promise","all","e","then","bind","mod","ssr","Sidebar","currentUser","useRecoilValue","currentUserAtom","messages","visibleChatMessagesSelector","Sider","collapsedWidth","isModerator","displayName","usernameToHighlight","chatUserId","Footer","version","a","href","target","rel","ActionButtonRow","ActionButton","action","primary","externalActionSelected","description","color","cn","backgroundColor","img","alt","NotifyButton","BellFilled","Logo","SocialLinks","links","map","link","Image","platform","ContentHeader","name","summary","logo","tags","Linkify","length","tag","NOTIFY_KEY","FOLLOW_KEY","ActionButtonMenu","actions","notifyItemSelected","followItemSelected","showFollowItem","showNotifyItem","onMenuClick","key","find","x","items","label","unshift","HeartOutlined","BellOutlined","menu","Menu","Dropdown","overlay","placement","trigger","preventDefault","EllipsisOutlined","rotate","FollowerCollection","FollowModal","BrowserNotifyModal","NotifyReminderPopup","OwncastPlayer","Tabs","DesktopContent","streamTitle","socialHandles","extraPageContent","setShowFollowModal","supportFediverseFeatures","aboutTabContent","followersTabContent","onFollowButtonClick","Fragment","defaultActiveKey","MobileContent","showChat","setExternalActionToDisplay","setShowNotifyPopup","supportsBrowserNotifications","chatContent","replacementTabBar","DefaultTabBar","justifyContent","alignItems","renderTabBar","ExternalModal","externalActionToDisplay","Content","appState","appStateAtom","clientConfig","clientConfigStateAtom","isChatVisible","isChatVisibleSelector","isChatAvailable","isChatAvailableSelector","isMobile","setIsMobile","useRecoilState","isMobileAtom","chatMessagesAtom","isOnlineSelector","serverStatusState","externalActions","offlineMessage","chatDisabled","federation","notifications","showNotifyReminder","setShowNotifyReminder","showNotifyModal","setShowNotifyModal","showFollowModal","account","enabled","fediverseEnabled","browser","browserNotifications","browserNotificationsEnabled","setSupportsBrowserNotifications","openExternally","externalActionButtons","incrementVisitCounter","visits","parseInt","getLocalStorage","LOCAL_STORAGE_KEYS","Number","isNaN","setLocalStorage","disableNotifyReminderPopup","checkIfMobile","w","innerWidth","addEventListener","removeEventListener","isPushNotificationSupported","appLoading","source","notificationClicked","notificationClosed","handleClose","TitleNotifier","chatMessages","serverStatus","backgrounded","setBackgrounded","setTitle","document","onBlur","onFocus","listenForEvents","removeEvents","lastMessage","PushNotificationServiceWorker","add","navigator","serviceWorker","register","registration","console","debug","scope","err","error","Theme","appearanceVariables","customStyles","appearanceVars","Object","keys","filter","variable","join","FatalErrorStateModal","Main","fatalError","fatalErrorStateAtom","layoutRef","useRef","useLockBodyScroll","setupNoLinkReferrer","observationRoot","addNoReferrer","existingAttributes","node","getAttribute","setAttribute","querySelectorAll","forEach","anchor","observer","MutationObserver","mutationList","mutation","addedNodes","HTMLElement","tagName","toLowerCase","observe","attributes","childList","subtree","current","Head","sizes","meta","base","property","ClientConfigStore","ref","Header","chatAvailable","message","Home","getLayout","page","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/static/web/_next/static/chunks/pages/index-f1b83bb20d9dde54.js b/static/web/_next/static/chunks/pages/index-f1b83bb20d9dde54.js new file mode 100644 index 000000000..310cc772d --- /dev/null +++ b/static/web/_next/static/chunks/pages/index-f1b83bb20d9dde54.js @@ -0,0 +1,2 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5405],{48312:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return n(92577)}])},78696:function(e,t,n){"use strict";n.d(t,{e:function(){return l}});var o=n(85893),s=n(71577),i=n(34447),a=n(13959),r=n.n(a);let l=e=>{let{onClick:t,props:n}=e;return(0,o.jsx)(s.Z,{...n,type:"primary",className:r().button,icon:(0,o.jsx)(i.Z,{}),onClick:t,id:"follow-button",children:"Follow"})}},14761:function(e,t,n){"use strict";n.r(t),n.d(t,{Modal:function(){return d}});var o=n(85893),s=n(85402),i=n(26303),a=n(11382),r=n(67294),l=n(77011),c=n.n(l);let d=e=>{let{title:t,url:n,open:l,handleOk:d,handleCancel:u,afterClose:m,height:p,width:h,children:x}=e,[f,j]=(0,r.useState)(!!n),g="100%",_="520px";n&&(g="70vh",_="900px");let v={padding:"0px",minHeight:p,height:null!=p?p:g},w=n&&(0,o.jsx)("iframe",{title:t,src:n,width:"100%",height:"100%",sandbox:"allow-same-origin allow-scripts allow-popups allow-forms",frameBorder:"0",allowFullScreen:!0,style:{display:"block"},onLoad:()=>j(!1)});return(0,o.jsx)(s.Z,{title:t,open:l,onOk:d,onCancel:u,afterClose:m,bodyStyle:v,width:null!=h?h:_,zIndex:999,footer:null,centered:!0,destroyOnClose:!0,children:(0,o.jsxs)("div",{id:"modal-container",style:{height:"100%"},children:[f&&(0,o.jsx)(i.Z,{active:f,style:{padding:"10px"},paragraph:{rows:10}}),w&&(0,o.jsx)("div",{style:{display:f?"none":"inline"},children:w}),x&&(0,o.jsx)("div",{className:c().content,children:x}),f&&(0,o.jsx)(a.Z,{className:c().spinner,spinning:f,size:"large"})]})})};t.default=d,d.defaultProps={url:void 0,children:void 0,handleOk:void 0,handleCancel:void 0,afterClose:void 0}},51513:function(e,t,n){"use strict";n.d(t,{R:function(){return c}});var o=n(85893),s=n(27049),i=n(24019),a=n(45938),r=n(88335),l=n.n(r);let c=e=>{let t,{streamName:n,customText:r,lastLive:c,notificationsEnabled:d,fediverseAccount:u,onNotifyClick:m,onFollowClick:p}=e;return t=r||(!r&&d&&u?(0,o.jsxs)("span",{children:["This stream is offline. You can"," ",(0,o.jsx)("span",{role:"link",tabIndex:0,className:l().actionLink,onClick:m,children:"be notified"})," ","the next time ",n," goes live or"," ",(0,o.jsx)("span",{role:"link",tabIndex:0,className:l().actionLink,onClick:p,children:"follow"})," ",u," on the Fediverse."]}):!r&&d?(0,o.jsxs)("span",{children:["This stream is offline."," ",(0,o.jsx)("span",{role:"link",tabIndex:0,className:l().actionLink,onClick:m,children:"Be notified"})," ","the next time ",n," goes live."]}):!r&&u?(0,o.jsxs)("span",{children:["This stream is offline."," ",(0,o.jsx)("span",{role:"link",tabIndex:0,className:l().actionLink,onClick:p,children:"Follow"})," ",u," on the Fediverse to see the next time ",n," goes live."]}):"This stream is offline. Check back soon!"),(0,o.jsx)("div",{id:"offline-banner",className:l().outerContainer,children:(0,o.jsxs)("div",{className:l().innerContainer,children:[(0,o.jsx)("div",{className:l().header,children:n}),(0,o.jsx)(s.Z,{className:l().separator}),(0,o.jsx)("div",{className:l().bodyText,children:t}),c&&(0,o.jsxs)("div",{className:l().lastLiveDate,children:[(0,o.jsx)(i.Z,{className:l().clockIcon}),"Last live ".concat((0,a.Z)(new Date(c))," ago.")]})]})})}},69357:function(e,t,n){"use strict";n.d(t,{X:function(){return d}});var o=n(85893),s=n(45938),i=n(68730),a=n(67294),r=n(31326),l=n(37970),c=n.n(l);let d=e=>{let t,{online:n,lastConnectTime:l,lastDisconnectTime:d,viewerCount:u}=e,[,m]=(0,a.useState)(new Date);(0,a.useEffect)(()=>{let e=setInterval(()=>m(new Date),1e3);return()=>{clearInterval(e)}},[]);let p="";if(n&&l){let h=function(e){let t=(0,i.Z)({start:e,end:new Date});return t.days>1?"".concat(t.days," days ").concat(t.hours," hours"):t.hours>=1?"".concat(t.hours," hours ").concat(t.minutes," minutes"):"".concat(t.minutes," minutes ").concat(t.seconds," seconds")}(new Date(l));p=n?"Live for ".concat(h):"Offline",t=u>0&&(0,o.jsxs)("div",{className:c().right,children:[(0,o.jsx)("span",{children:(0,o.jsx)(r.Z,{})}),(0,o.jsx)("span",{children:" ".concat(u)})]})}else!n&&(p="Offline",d&&(t="Last live ".concat((0,s.Z)(new Date(d))," ago.")));return(0,o.jsxs)("div",{className:c().statusbar,children:[(0,o.jsx)("div",{children:p}),(0,o.jsx)("div",{children:t})]})};d.defaultProps={lastConnectTime:null,lastDisconnectTime:null}},92577:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return eT}});var o=n(85893),s=n(4480),i=n(9008),a=n.n(i),r=n(67294),l=n(93423),c=n(5152),d=n.n(c),u=n(77466),m=n(6097);let p=()=>(0,o.jsx)("script",{id:"server-side-hydration",nonce:"{{.Nonce}}",dangerouslySetInnerHTML:{__html:"\n window.configHydration = {{.ServerConfigJSON}};\n window.statusHydration = {{.StatusJSON}};\n "}});var h=n(26303),x=n(72581),f=n(83469),j=n(10808),g=n.n(j);let _=e=>{let{content:t}=e;return(0,o.jsx)("div",{className:g().pageContentContainer,id:"custom-page-content",children:(0,o.jsx)("div",{className:g().customPageContent,dangerouslySetInnerHTML:{__html:t}})})};var v=n(17725),w=n.n(v),b=n(87412),y=n(12341),k=n.n(y);let C=d()(()=>Promise.all([n.e(1272),n.e(8700),n.e(3191),n.e(4977),n.e(1496)]).then(n.bind(n,94977)).then(e=>e.ChatContainer),{loadableGenerated:{webpack:()=>[94977]},ssr:!1}),N=()=>{let e=(0,s.sJ)(u.db),t=(0,s.sJ)(u.pH);if(!e)return(0,o.jsx)(b.ZP,{className:k().root,collapsedWidth:0,width:320});let{id:n,isModerator:i,displayName:a}=e;return(0,o.jsx)(b.ZP,{className:k().root,collapsedWidth:0,width:320,children:(0,o.jsx)(C,{messages:t,usernameToHighlight:a,chatUserId:n,isModerator:i})})};var S=n(67917),L=n.n(S);let T=e=>{let{version:t}=e;return(0,o.jsxs)("footer",{className:L().footer,children:[(0,o.jsxs)("span",{children:["Powered by ",(0,o.jsx)("a",{href:"https://owncast.online",children:t})]}),(0,o.jsxs)("span",{className:L().links,children:[(0,o.jsx)("a",{href:"https://owncast.online/docs",target:"_blank",rel:"noreferrer",children:"Documentation"}),(0,o.jsx)("a",{href:"https://owncast.online/help",target:"_blank",rel:"noreferrer",children:"Contribute"}),(0,o.jsx)("a",{href:"https://github.com/owncast/owncast",target:"_blank",rel:"noreferrer",children:"Source"})]})]})};var Z=n(12270),D=n.n(Z);let A=e=>{let{children:t}=e;return(0,o.jsx)("div",{className:"".concat(D().row),children:t})};var E=n(71577),M=n(94184),F=n.n(M),B=n(13959),H=n.n(B);let I=e=>{let{action:t,primary:n=!0,externalActionSelected:s}=e,{title:i,description:a,icon:r,color:l}=t;return(0,o.jsxs)(E.Z,{type:n?"primary":"default",className:F()(["".concat(H().button),"action-button"]),onClick:()=>s(t),style:{backgroundColor:l},children:[r&&(0,o.jsx)("img",{src:r,className:"".concat(H().icon),alt:a}),i]})};var P=n(51513),R=n(78696),z=n(71578);let O=e=>{let{onClick:t,text:n}=e;return(0,o.jsx)(E.Z,{type:"primary",className:"".concat(H().button),icon:(0,o.jsx)(z.Z,{}),onClick:t,id:"notify-button",children:n||"Notify"})};var J=n(53731),U=n(74933),G=n.n(U);let W=e=>{let{src:t}=e;return(0,o.jsx)("div",{className:G().root,children:(0,o.jsx)("div",{className:G().container,children:(0,o.jsx)("img",{src:t,alt:"Logo",className:G().image,loading:"lazy"})})})};var q=n(25675),Y=n.n(q),Q=n(573),V=n.n(Q);let X=e=>{let{links:t}=e;return(0,o.jsx)("div",{className:V().links,children:t.map(e=>(0,o.jsx)("a",{href:e.url,className:V().link,target:"_blank",rel:"noreferrer me",children:(0,o.jsx)(Y(),{src:e.icon||"/img/platformlogos/default.svg",alt:e.platform,title:e.platform,className:V().link,width:"30",height:"30"})},e.platform))})};var K=n(47900),$=n.n(K);let ee=e=>{let{name:t,title:n,summary:s,logo:i,tags:a,links:r}=e;return(0,o.jsx)("div",{className:$().root,children:(0,o.jsxs)("div",{className:$().logoTitleSection,children:[(0,o.jsx)("div",{className:$().logo,children:(0,o.jsx)(W,{src:i})}),(0,o.jsxs)("div",{className:$().titleSection,children:[(0,o.jsx)("div",{className:F()($().title,$().row,"header-title"),children:t}),(0,o.jsx)("div",{className:F()($().subtitle,$().row,"header-subtitle"),children:(0,o.jsx)(J.Z,{children:n||s})}),(0,o.jsx)("div",{className:F()($().tagList,$().row),children:a.length>0&&a.map(e=>(0,o.jsxs)("span",{children:["#",e,"\xa0"]},e))}),(0,o.jsx)("div",{className:F()($().socialLinks,$().row),children:(0,o.jsx)(X,{links:r})})]})]})})};var et=n(69357),en=n(14761),eo=n(66516),es=n(13013),ei=n(49647),ea=n(60198),er=n(89705),el=n(97038),ec=n.n(el);let ed="notify",eu="follow",em=e=>{let{actions:t,externalActionSelected:n,notifyItemSelected:s,followItemSelected:i,showFollowItem:a,showNotifyItem:r}=e,l=e=>{if(e.key===ed){s();return}if(e.key===eu){i();return}let o=t.find(t=>t.url===e.key);n(o)},c=t.map(e=>({key:e.url,label:(0,o.jsxs)("span",{className:ec().item,children:[e.icon&&(0,o.jsx)("img",{className:ec().icon,src:e.icon,alt:e.title})," ",e.title]})}));a&&c.unshift({key:eu,label:(0,o.jsxs)("span",{className:ec().item,children:[(0,o.jsx)(ei.Z,{className:ec().icon})," Follow this stream"]})}),r&&c.unshift({key:ed,label:(0,o.jsxs)("span",{className:ec().item,children:[(0,o.jsx)(ea.Z,{className:ec().icon}),"Notify when live"]})});let d=(0,o.jsx)(eo.Z,{items:c,onClick:l});return(0,o.jsx)(es.Z,{overlay:d,placement:"bottomRight",trigger:["click"],className:ec().menu,children:(0,o.jsx)("div",{className:ec().buttonWrap,children:(0,o.jsx)(E.Z,{type:"default",onClick:e=>e.preventDefault(),size:"large",icon:(0,o.jsx)(er.Z,{size:6,style:{rotate:"90deg"}})})})})},ep=d()(()=>Promise.all([n.e(6386),n.e(3698),n.e(9925)]).then(n.bind(n,15508)).then(e=>e.FollowerCollection),{loadableGenerated:{webpack:()=>[15508]},ssr:!1}),eh=d()(()=>Promise.all([n.e(5596),n.e(173),n.e(7177)]).then(n.bind(n,77177)).then(e=>e.FollowModal),{loadableGenerated:{webpack:()=>[77177]},ssr:!1}),ex=d()(()=>Promise.all([n.e(5596),n.e(173),n.e(6880),n.e(7283)]).then(n.bind(n,11424)).then(e=>e.BrowserNotifyModal),{loadableGenerated:{webpack:()=>[11424]},ssr:!1}),ef=d()(()=>n.e(7815).then(n.bind(n,17815)).then(e=>e.NotifyReminderPopup),{loadableGenerated:{webpack:()=>[17815]},ssr:!1}),ej=d()(()=>Promise.all([n.e(2544),n.e(7689),n.e(2239),n.e(5202)]).then(n.bind(n,8888)).then(e=>e.OwncastPlayer),{loadableGenerated:{webpack:()=>[8888]},ssr:!1}),eg=d()(()=>Promise.all([n.e(1272),n.e(8700),n.e(3191),n.e(4977),n.e(1496)]).then(n.bind(n,94977)).then(e=>e.ChatContainer),{loadableGenerated:{webpack:()=>[94977]},ssr:!1}),e_=d()(()=>Promise.all([n.e(4885),n.e(5596),n.e(173),n.e(6880),n.e(6386),n.e(3698),n.e(8213),n.e(9915),n.e(575),n.e(5101),n.e(4102),n.e(4763),n.e(8119),n.e(969),n.e(7916),n.e(3859),n.e(6113)]).then(n.bind(n,86113)).then(e=>e.Tabs),{loadableGenerated:{webpack:()=>[86113]},ssr:!1}),ev=e=>{let{name:t,streamTitle:n,summary:s,tags:i,socialHandles:a,extraPageContent:r,setShowFollowModal:l,supportFediverseFeatures:c}=e,d=(0,o.jsx)(_,{content:r}),u=(0,o.jsx)("div",{style:{minHeight:"15vh"},children:(0,o.jsx)(ep,{name:t,onFollowButtonClick:()=>l(!0)})}),m=[{label:"About",key:"2",children:d}];return c&&m.push({label:"Followers",key:"3",children:u}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{className:w().lowerHalf,children:(0,o.jsx)(ee,{name:t,title:n,summary:s,tags:i,links:a,logo:"/logo"})}),(0,o.jsx)("div",{className:w().lowerSection,children:m.length>1?(0,o.jsx)(e_,{defaultActiveKey:"0",items:m}):d})]})},ew=e=>{let{name:t,streamTitle:n,summary:s,tags:i,socialHandles:a,extraPageContent:r,messages:l,currentUser:c,showChat:d,actions:u,setExternalActionToDisplay:m,setShowNotifyPopup:p,setShowFollowModal:x,supportFediverseFeatures:f,supportsBrowserNotifications:j}=e;if(!c)return(0,o.jsx)(h.Z,{loading:!0,active:!0,paragraph:{rows:7}});let{id:g,displayName:v}=c,b=d&&(0,o.jsx)(eg,{messages:l,usernameToHighlight:v,chatUserId:g,isModerator:!1}),y=(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ee,{name:t,title:n,summary:s,tags:i,links:a,logo:"/logo"}),(0,o.jsx)(_,{content:r})]}),k=(0,o.jsx)(ep,{name:t,onFollowButtonClick:()=>x(!0)}),C=(e,t)=>(0,o.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"start"},children:[(0,o.jsx)(t,{...e,style:{width:"85%"}}),(0,o.jsx)(em,{showFollowItem:f,showNotifyItem:j,actions:u,externalActionSelected:m,notifyItemSelected:()=>p(!0),followItemSelected:()=>x(!0)})]});return(0,o.jsx)("div",{className:w().lowerSectionMobile,children:(0,o.jsx)(e_,{className:w().tabs,defaultActiveKey:"0",items:[d&&{label:"Chat",key:"0",children:b},{label:"About",key:"2",children:y},{label:"Followers",key:"3",children:k}],renderTabBar:C})})},eb=e=>{let{externalActionToDisplay:t,setExternalActionToDisplay:n}=e,{title:s,description:i,url:a}=t;return(0,o.jsx)(en.Modal,{title:i||s,url:a,open:!!t,height:"80vh",handleCancel:()=>n(null)})},ey=()=>{let e=(0,s.sJ)(u.Q),t=(0,s.sJ)(u.g1),n=(0,s.sJ)(u.pT),i=(0,s.sJ)(u.di),a=(0,s.sJ)(u.db),[l,c]=(0,s.FV)(u.hz),d=(0,s.sJ)(u.j$),m=(0,s.sJ)(u.YW),{viewerCount:p,lastConnectTime:j,lastDisconnectTime:g,streamTitle:_}=(0,s.sJ)(u.RI),{extraPageContent:v,version:b,name:y,summary:k,socialHandles:C,tags:S,externalActions:L,offlineMessage:Z,chatDisabled:D,federation:E,notifications:M}=t,[F,B]=(0,r.useState)(!1),[H,z]=(0,r.useState)(!1),[J,U]=(0,r.useState)(!1),{account:G,enabled:W}=E,{browser:q}=M,{enabled:Y}=q,[Q,V]=(0,r.useState)(null),[X,K]=(0,r.useState)(!1),$=e=>{let{openExternally:t,url:n}=e;t?window.open(n,"_blank"):V(e)},ee=L.map(e=>(0,o.jsx)(I,{action:e,externalActionSelected:$},e.url)),eo=()=>{let e=parseInt((0,x.$o)(x.dA.userVisitCount),10);Number.isNaN(e)&&(e=0),(0,x.qQ)(x.dA.userVisitCount,e+1),e>2&&!(0,x.$o)(x.dA.hasDisplayedNotificationModal)&&B(!0)},es=()=>{z(!1),B(!1),(0,x.qQ)(x.dA.hasDisplayedNotificationModal,!0)},ei=()=>{let e=window.innerWidth;void 0===l&&(e<=768?c(!0):c(!1)),!l&&e<=768&&c(!0),l&&e>768&&c(!1)};(0,r.useEffect)(()=>(eo(),ei(),window.addEventListener("resize",ei),()=>{window.removeEventListener("resize",ei)}),[]),(0,r.useEffect)(()=>{K((0,f.Z)()&&Y)},[Y]);let ea=!D&&i&&n;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{className:w().main,children:(0,o.jsxs)("div",{className:w().root,children:[(0,o.jsxs)("div",{className:w().mainSection,children:[(0,o.jsxs)("div",{className:w().topSection,children:[e.appLoading&&(0,o.jsx)(h.Z,{loading:!0,active:!0,paragraph:{rows:7}}),m&&(0,o.jsx)(ej,{source:"/hls/stream.m3u8",online:m}),!m&&!e.appLoading&&(0,o.jsx)(P.R,{streamName:y,customText:Z,notificationsEnabled:Y,fediverseAccount:G,lastLive:g,onNotifyClick:()=>z(!0),onFollowClick:()=>U(!0)}),m&&(0,o.jsx)(et.X,{online:m,lastConnectTime:j,lastDisconnectTime:g,viewerCount:p})]}),(0,o.jsx)("div",{className:w().midSection,children:(0,o.jsxs)("div",{className:w().buttonsLogoTitleSection,children:[!l&&(0,o.jsxs)(A,{children:[ee,W&&(0,o.jsx)(R.e,{size:"small",onClick:()=>U(!0)}),X&&(0,o.jsx)(ef,{open:F,notificationClicked:()=>z(!0),notificationClosed:()=>es(),children:(0,o.jsx)(O,{onClick:()=>z(!0)})})]}),(0,o.jsx)(en.Modal,{title:"Browser Notifications",open:H,afterClose:()=>es(),handleCancel:()=>es(),children:(0,o.jsx)(ex,{})})]})}),l?(0,o.jsx)(ew,{name:y,streamTitle:_,summary:k,tags:S,socialHandles:C,extraPageContent:v,messages:d,currentUser:a,showChat:ea,actions:L,setExternalActionToDisplay:$,setShowNotifyPopup:z,setShowFollowModal:U,supportFediverseFeatures:W,supportsBrowserNotifications:X}):(0,o.jsx)(ev,{name:y,streamTitle:_,summary:k,tags:S,socialHandles:C,extraPageContent:v,setShowFollowModal:U,supportFediverseFeatures:W}),!l&&(0,o.jsx)(T,{version:b})]}),ea&&!l&&(0,o.jsx)(N,{})]})}),Q&&(0,o.jsx)(eb,{externalActionToDisplay:Q,setExternalActionToDisplay:V}),(0,o.jsx)(en.Modal,{title:"Follow ".concat(y),open:J,handleCancel:()=>U(!1),width:"550px",children:(0,o.jsx)(eh,{account:G,name:y,handleClose:()=>U(!1)})})]})},ek=e=>{let{name:t}=e,n=(0,s.sJ)(u.j$),o=(0,s.sJ)(u.RI),[i,a]=(0,r.useState)(!1),{online:l}=o,c=e=>{document.title=e},d=()=>{a(!0)},m=()=>{a(!1),c(t)},p=()=>{window.addEventListener("blur",d),window.addEventListener("focus",m)},h=()=>{window.removeEventListener("blur",d),window.removeEventListener("focus",m)};return(0,r.useEffect)(()=>(p(),()=>{h()}),[t]),(0,r.useEffect)(()=>{if(!i||!l)return;let e=n[n.length-1];"CHAT"===e.type&&c("\uD83D\uDCAC :: ".concat(t))},[n,t]),(0,r.useEffect)(()=>{i&&(l?c(" \uD83D\uDFE2 :: ".concat(t)):l||c(" \uD83D\uDD34 :: ".concat(t)))},[l,t]),null},eC=()=>{let e=()=>{navigator.serviceWorker.register("/serviceWorker.js").then(e=>{console.debug("Service Worker registration successful with scope: ",e.scope)},e=>{console.error("Service Worker registration failed: ",e)})};return(0,r.useEffect)(()=>("serviceWorker"in navigator&&window.addEventListener("load",e),()=>{window.removeEventListener("load",e)}),[]),null},eN=()=>{let e=(0,s.sJ)(u.g1),{appearanceVariables:t,customStyles:n}=e,i=Object.keys(t).filter(e=>!!t[e]).map(e=>"--".concat(e,": ").concat(t[e]));return(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:"\n :root {\n ".concat(i.join(";\n"),"\n }\n ").concat(n,"\n ")}})},eS=d()(()=>n.e(3625).then(n.bind(n,3625)).then(e=>e.FatalErrorStateModal),{loadableGenerated:{webpack:()=>[3625]},ssr:!1}),eL=()=>{let e=(0,s.sJ)(u.g1),{name:t,title:n,customStyles:i}=e,c=(0,s.sJ)(u.di),d=(0,s.sJ)(u.ap),h=(0,r.useRef)(null),{chatDisabled:x}=e;return(0,l.Z)(!0),(0,r.useEffect)(()=>{!function(e){let t=e=>{let t=e.getAttribute("rel");e.setAttribute("rel","".concat(t," noopener noreferrer"))};e.querySelectorAll("a").forEach(e=>t(e));let n=new MutationObserver(function(e){for(let n of e)for(let o of n.addedNodes)o instanceof HTMLElement&&"a"===o.tagName.toLowerCase()&&t(o)});n.observe(e,{attributes:!1,childList:!0,subtree:!0})}(h.current)},[]),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(a(),{children:[(0,o.jsx)(p,{}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"57x57",href:"/img/favicon/apple-icon-57x57.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"60x60",href:"/img/favicon/apple-icon-60x60.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"72x72",href:"/img/favicon/apple-icon-72x72.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"76x76",href:"/img/favicon/apple-icon-76x76.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"114x114",href:"/img/favicon/apple-icon-114x114.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"120x120",href:"/img/favicon/apple-icon-120x120.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"144x144",href:"/img/favicon/apple-icon-144x144.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"152x152",href:"/img/favicon/apple-icon-152x152.png"}),(0,o.jsx)("link",{rel:"apple-touch-icon",sizes:"180x180",href:"/img/favicon/apple-icon-180x180.png"}),(0,o.jsx)("link",{rel:"icon",type:"image/png",sizes:"192x192",href:"/img/favicon/android-icon-192x192.png"}),(0,o.jsx)("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/img/favicon/favicon-32x32.png"}),(0,o.jsx)("link",{rel:"icon",type:"image/png",sizes:"96x96",href:"/img/favicon/favicon-96x96.png"}),(0,o.jsx)("link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/img/favicon/favicon-16x16.png"}),(0,o.jsx)("link",{rel:"manifest",href:"/manifest.json"}),(0,o.jsx)("link",{href:"/api/auth/provider/indieauth"}),(0,o.jsx)("meta",{name:"msapplication-TileColor",content:"#ffffff"}),(0,o.jsx)("meta",{name:"msapplication-TileImage",content:"/img/favicon/ms-icon-144x144.png"}),(0,o.jsx)("meta",{name:"theme-color",content:"#ffffff"}),(0,o.jsx)("style",{children:i}),(0,o.jsx)("base",{target:"_blank"})]}),(0,o.jsxs)(a(),{children:[t?(0,o.jsx)("title",{children:t}):(0,o.jsx)("title",{children:"{{.Name}}"}),(0,o.jsx)("meta",{name:"description",content:"{{.Summary}}"}),(0,o.jsx)("meta",{property:"og:title",content:"{{.Name}}"}),(0,o.jsx)("meta",{property:"og:site_name",content:"{{.Name}}"}),(0,o.jsx)("meta",{property:"og:url",content:"{{.RequestedURL}}"}),(0,o.jsx)("meta",{property:"og:description",content:"{{.Summary}}"}),(0,o.jsx)("meta",{property:"og:type",content:"video.other"}),(0,o.jsx)("meta",{property:"video:tag",content:"{{.TagsString}}"}),(0,o.jsx)("meta",{property:"og:image",content:"{{.RequestedURL}}{{.Thumbnail}}"}),(0,o.jsx)("meta",{property:"og:image:url",content:"{{.RequestedURL}}{{.Thumbnail}}"}),(0,o.jsx)("meta",{property:"og:image:alt",content:"{{.RequestedURL}}{{.Image}}"}),(0,o.jsx)("meta",{property:"og:video",content:"{{.RequestedURL}}/embed/video"}),(0,o.jsx)("meta",{property:"og:video:secure_url",content:"{{.RequestedURL}}/embed/video"}),(0,o.jsx)("meta",{property:"og:video:height",content:"315"}),(0,o.jsx)("meta",{property:"og:video:width",content:"560"}),(0,o.jsx)("meta",{property:"og:video:type",content:"text/html"}),(0,o.jsx)("meta",{property:"og:video:actor",content:"{{.Name}}"}),(0,o.jsx)("meta",{property:"twitter:title",content:"{{.Name}}"}),(0,o.jsx)("meta",{property:"twitter:url",content:"{{.RequestedURL}}"}),(0,o.jsx)("meta",{property:"twitter:description",content:"{{.Summary}}"}),(0,o.jsx)("meta",{property:"twitter:image",content:"{{.Image}}"}),(0,o.jsx)("meta",{property:"twitter:card",content:"player"}),(0,o.jsx)("meta",{property:"twitter:player",content:"{{.RequestedURL}}/embed/video"}),(0,o.jsx)("meta",{property:"twitter:player:width",content:"560"}),(0,o.jsx)("meta",{property:"twitter:player:height",content:"315"})]}),(0,o.jsx)(u.me,{}),(0,o.jsx)(eC,{}),(0,o.jsx)(ek,{name:t}),(0,o.jsx)(eN,{}),(0,o.jsxs)("div",{ref:h,style:{minHeight:"100vh"},children:[(0,o.jsx)(m.h,{name:n||t,chatAvailable:c,chatDisabled:x}),(0,o.jsx)(ey,{}),d&&(0,o.jsx)(eS,{title:d.title,message:d.message})]})]})};function eT(){return(0,o.jsx)(eL,{})}eT.getLayout=function(e){return e}},83469:function(e,t,n){"use strict";function o(){return"serviceWorker"in navigator&&"PushManager"in window}n.d(t,{Z:function(){return o}})},13959:function(e){e.exports={button:"ActionButton_button__z5Z2c",icon:"ActionButton_icon__EPp7Q"}},97038:function(e){e.exports={item:"ActionButtonMenu_item__OJQdr",buttonWrap:"ActionButtonMenu_buttonWrap__WQ9kt",icon:"ActionButtonMenu_icon__edY1D",menu:"ActionButtonMenu_menu__GChDk"}},12270:function(e){e.exports={row:"ActionButtonRow_row__SiEGe"}},47900:function(e){e.exports={root:"ContentHeader_root__HaUG0",row:"ContentHeader_row__9Q8gH",logoTitleSection:"ContentHeader_logoTitleSection__Z8pUc",logo:"ContentHeader_logo__wo_HN",titleSection:"ContentHeader_titleSection___6Y15",title:"ContentHeader_title__E_DsI",subtitle:"ContentHeader_subtitle__n1Wew",tagList:"ContentHeader_tagList__rx3jY"}},17725:function(e){e.exports={root:"Content_root__h1mNK",mainSection:"Content_mainSection__Gk78Y",topSection:"Content_topSection__JIZi0",lowerSection:"Content_lowerSection__BZHYI",lowerSectionMobile:"Content_lowerSectionMobile__hRr0_",tabs:"Content_tabs__LMcZ1",leftCol:"Content_leftCol__U2TDq",loadingSpinner:"Content_loadingSpinner__mDlYC",main:"Content_main__XVf63"}},10808:function(e){e.exports={pageContentContainer:"CustomPageContent_pageContentContainer__EG4tU",customPageContent:"CustomPageContent_customPageContent__Mr981",summary:"CustomPageContent_summary___Zgps"}},67917:function(e){e.exports={footer:"Footer_footer__mPuvf",links:"Footer_links__7bBxV"}},74933:function(e){e.exports={root:"Logo_root__jKiJC",container:"Logo_container__A4UYT",image:"Logo_image__Ahkom"}},77011:function(e){e.exports={spinner:"Modal_spinner__GiSS0",content:"Modal_content__h9my9"}},88335:function(e){e.exports={outerContainer:"OfflineBanner_outerContainer__3AbsB",innerContainer:"OfflineBanner_innerContainer__zTm13",bodyText:"OfflineBanner_bodyText__nNNy0",separator:"OfflineBanner_separator___j_Ss",lastLiveDate:"OfflineBanner_lastLiveDate___UZdO",clockIcon:"OfflineBanner_clockIcon__s0DB_",header:"OfflineBanner_header__Vu20o",footer:"OfflineBanner_footer__o3Zl5",actionLink:"OfflineBanner_actionLink__b4Mwa"}},12341:function(e){e.exports={root:"Sidebar_root__8HE0A"}},573:function(e){e.exports={link:"SocialLinks_link___CcSm",links:"SocialLinks_links__gOAb7"}},37970:function(e){e.exports={statusbar:"Statusbar_statusbar__AtVnB"}}},function(e){e.O(0,[481,1407,4083,1577,3174,2459,3013,6754,195,5402,5938,6395,6155,5360,4220,3343,7466,6097,9774,2888,179],function(){return e(e.s=48312)}),_N_E=e.O()}]); +//# sourceMappingURL=index-f1b83bb20d9dde54.js.map \ No newline at end of file diff --git a/static/web/_next/static/chunks/pages/index-f1b83bb20d9dde54.js.map b/static/web/_next/static/chunks/pages/index-f1b83bb20d9dde54.js.map new file mode 100644 index 000000000..ba88d7279 --- /dev/null +++ b/static/web/_next/static/chunks/pages/index-f1b83bb20d9dde54.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/pages/index-f1b83bb20d9dde54.js","mappings":"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","sources":["webpack://_N_E/","webpack://_N_E/./components/action-buttons/FollowButton.tsx","webpack://_N_E/./components/ui/Modal/Modal.tsx","webpack://_N_E/./components/ui/OfflineBanner/OfflineBanner.tsx","webpack://_N_E/./components/ui/Statusbar/Statusbar.tsx","webpack://_N_E/./utils/no-link-referrer.ts","webpack://_N_E/./components/ServerRendered/ServerRenderedHydration.tsx","webpack://_N_E/./components/ui/CustomPageContent/CustomPageContent.tsx","webpack://_N_E/./components/ui/Sidebar/Sidebar.tsx","webpack://_N_E/./components/ui/Footer/Footer.tsx","webpack://_N_E/./components/action-buttons/ActionButtonRow/ActionButtonRow.tsx","webpack://_N_E/./components/action-buttons/ActionButton/ActionButton.tsx","webpack://_N_E/./components/action-buttons/NotifyButton.tsx","webpack://_N_E/./components/ui/Logo/Logo.tsx","webpack://_N_E/./components/ui/SocialLinks/SocialLinks.tsx","webpack://_N_E/./components/common/ContentHeader/ContentHeader.tsx","webpack://_N_E/./components/action-buttons/ActionButtonMenu/ActionButtonMenu.tsx","webpack://_N_E/./components/ui/Content/Content.tsx","webpack://_N_E/./components/TitleNotifier/TitleNotifier.tsx","webpack://_N_E/./components/workers/PushNotificationServiceWorker/PushNotificationServiceWorker.tsx","webpack://_N_E/./components/theme/Theme.tsx","webpack://_N_E/./components/layouts/Main.tsx","webpack://_N_E/./pages/index.tsx","webpack://_N_E/./utils/browserPushNotifications.ts","webpack://_N_E/./components/action-buttons/ActionButton/ActionButton.module.scss","webpack://_N_E/./components/action-buttons/ActionButtonMenu/ActionButtonMenu.module.scss","webpack://_N_E/./components/action-buttons/ActionButtonRow/ActionButtonRow.module.scss","webpack://_N_E/./components/common/ContentHeader/ContentHeader.module.scss","webpack://_N_E/./components/ui/Content/Content.module.scss","webpack://_N_E/./components/ui/CustomPageContent/CustomPageContent.module.scss","webpack://_N_E/./components/ui/Footer/Footer.module.scss","webpack://_N_E/./components/ui/Logo/Logo.module.scss","webpack://_N_E/./components/ui/Modal/Modal.module.scss","webpack://_N_E/./components/ui/OfflineBanner/OfflineBanner.module.scss","webpack://_N_E/./components/ui/Sidebar/Sidebar.module.scss","webpack://_N_E/./components/ui/SocialLinks/SocialLinks.module.scss","webpack://_N_E/./components/ui/Statusbar/Statusbar.module.scss","webpack://_N_E/"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/\",\n function () {\n return require(\"private-next-pages/index.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/\"])\n });\n }\n ","import { Button, ButtonProps } from 'antd';\nimport { HeartFilled } from '@ant-design/icons';\n\nimport { FC } from 'react';\nimport styles from './ActionButton/ActionButton.module.scss';\n\nexport type FollowButtonProps = ButtonProps & {\n onClick?: () => void;\n props?: ButtonProps;\n};\n\nexport const FollowButton: FC = ({ onClick, props }) => (\n }\n onClick={onClick}\n id=\"follow-button\"\n >\n Follow\n \n);\n","import { Spin, Skeleton, Modal as AntModal } from 'antd';\nimport React, { FC, ReactNode, useState } from 'react';\nimport styles from './Modal.module.scss';\n\nexport type ModalProps = {\n title: string;\n url?: string;\n open: boolean;\n handleOk?: () => void;\n handleCancel?: () => void;\n afterClose?: () => void;\n children?: ReactNode;\n height?: string;\n width?: string;\n};\n\nexport const Modal: FC = ({\n title,\n url,\n open,\n handleOk,\n handleCancel,\n afterClose,\n height,\n width,\n children,\n}) => {\n const [loading, setLoading] = useState(!!url);\n\n let defaultHeight = '100%';\n let defaultWidth = '520px';\n if (url) {\n defaultHeight = '70vh';\n defaultWidth = '900px';\n }\n\n const modalContentBodyStyle = {\n padding: '0px',\n minHeight: height,\n height: height ?? defaultHeight,\n };\n\n const iframe = url && (\n setLoading(false)}\n />\n );\n\n const iframeDisplayStyle = loading ? 'none' : 'inline';\n\n return (\n \n
\n {loading && (\n \n )}\n\n {iframe &&
{iframe}
}\n {children &&
{children}
}\n {loading && }\n
\n \n );\n};\nexport default Modal;\n\nModal.defaultProps = {\n url: undefined,\n children: undefined,\n handleOk: undefined,\n handleCancel: undefined,\n afterClose: undefined,\n};\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { Divider } from 'antd';\nimport { ClockCircleOutlined } from '@ant-design/icons';\nimport { FC } from 'react';\nimport formatDistanceToNow from 'date-fns/formatDistanceToNow';\nimport styles from './OfflineBanner.module.scss';\n\nexport type OfflineBannerProps = {\n streamName: string;\n customText?: string;\n lastLive?: Date;\n notificationsEnabled: boolean;\n fediverseAccount?: string;\n onNotifyClick?: () => void;\n onFollowClick?: () => void;\n};\n\nexport const OfflineBanner: FC = ({\n streamName,\n customText,\n lastLive,\n notificationsEnabled,\n fediverseAccount,\n onNotifyClick,\n onFollowClick,\n}) => {\n let text;\n if (customText) {\n text = customText;\n } else if (!customText && notificationsEnabled && fediverseAccount) {\n text = (\n \n This stream is offline. You can{' '}\n \n be notified\n {' '}\n the next time {streamName} goes live or{' '}\n \n follow\n {' '}\n {fediverseAccount} on the Fediverse.\n \n );\n } else if (!customText && notificationsEnabled) {\n text = (\n \n This stream is offline.{' '}\n \n Be notified\n {' '}\n the next time {streamName} goes live.\n \n );\n } else if (!customText && fediverseAccount) {\n text = (\n \n This stream is offline.{' '}\n \n Follow\n {' '}\n {fediverseAccount} on the Fediverse to see the next time {streamName} goes live.\n \n );\n } else {\n text = `This stream is offline. Check back soon!`;\n }\n\n return (\n
\n
\n
{streamName}
\n \n
{text}
\n {lastLive && (\n
\n \n {`Last live ${formatDistanceToNow(new Date(lastLive))} ago.`}\n
\n )}\n
\n
\n );\n};\n","import formatDistanceToNow from 'date-fns/formatDistanceToNow';\nimport intervalToDuration from 'date-fns/intervalToDuration';\nimport { FC, useEffect, useState } from 'react';\nimport { EyeFilled } from '@ant-design/icons';\nimport styles from './Statusbar.module.scss';\n\nexport type StatusbarProps = {\n online: Boolean;\n lastConnectTime?: Date;\n lastDisconnectTime?: Date;\n viewerCount: number;\n};\n\nfunction makeDurationString(lastConnectTime: Date): string {\n const diff = intervalToDuration({ start: lastConnectTime, end: new Date() });\n if (diff.days > 1) {\n return `${diff.days} days ${diff.hours} hours`;\n }\n if (diff.hours >= 1) {\n return `${diff.hours} hours ${diff.minutes} minutes`;\n }\n\n return `${diff.minutes} minutes ${diff.seconds} seconds`;\n}\n\nexport const Statusbar: FC = ({\n online,\n lastConnectTime,\n lastDisconnectTime,\n viewerCount,\n}) => {\n const [, setNow] = useState(new Date());\n\n // Set a timer to update the status bar.\n useEffect(() => {\n const interval = setInterval(() => setNow(new Date()), 1000);\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n let onlineMessage = '';\n let rightSideMessage: any;\n if (online && lastConnectTime) {\n const duration = makeDurationString(new Date(lastConnectTime));\n onlineMessage = online ? `Live for ${duration}` : 'Offline';\n rightSideMessage = viewerCount > 0 && (\n
\n \n \n \n {` ${viewerCount}`}\n
\n );\n } else if (!online) {\n onlineMessage = 'Offline';\n if (lastDisconnectTime) {\n rightSideMessage = `Last live ${formatDistanceToNow(new Date(lastDisconnectTime))} ago.`;\n }\n }\n\n return (\n
\n
{onlineMessage}
\n
{rightSideMessage}
\n
\n );\n};\nexport default Statusbar;\n\nStatusbar.defaultProps = {\n lastConnectTime: null,\n lastDisconnectTime: null,\n};\n","/*\nDue to Owncast's goal of being private by default, we don't want any external\nlinks to leak the instance of Owncast as a referrer.\nThis observer attempts to catch any anchor tags and automatically add the\nnoopener and noreferrer attributes to them so the instance of Owncast isn't\npassed along in the headers.\n\nThis should should be fired somewhere relatively high level in the DOM and live\nfor the entirety of the page.\n*/\n\n/* eslint-disable no-restricted-syntax */\nexport default function setupNoLinkReferrer(observationRoot: HTMLElement): void {\n // Options for the observer (which mutations to observe)\n const config = { attributes: false, childList: true, subtree: true };\n\n const addNoReferrer = (node: Element): void => {\n const existingAttributes = node.getAttribute('rel');\n const attributes = `${existingAttributes} noopener noreferrer`;\n node.setAttribute('rel', attributes);\n };\n\n // Callback function to execute when mutations are observed\n // eslint-disable-next-line func-names\n const callback = function (mutationList) {\n for (const mutation of mutationList) {\n for (const node of mutation.addedNodes) {\n // we track only elements, skip other nodes (e.g. text nodes)\n // eslint-disable-next-line no-continue\n if (!(node instanceof HTMLElement)) continue;\n\n if (node.tagName.toLowerCase() === 'a') {\n addNoReferrer(node);\n }\n }\n }\n };\n\n observationRoot.querySelectorAll('a').forEach(anchor => addNoReferrer(anchor));\n\n // Create an observer instance linked to the callback function\n const observer = new MutationObserver(callback);\n\n // Start observing the target node for configured mutations\n observer.observe(observationRoot, config);\n}\n","/* eslint-disable react/no-danger */\nimport { FC } from 'react';\n\nexport const ServerRenderedHydration: FC = () => (\n \n);\n","/* eslint-disable react/no-danger */\nimport { FC } from 'react';\nimport styles from './CustomPageContent.module.scss';\n\nexport type CustomPageContentProps = {\n content: string;\n};\n\nexport const CustomPageContent: FC = ({ content }) => (\n
\n
\n
\n);\n","import Sider from 'antd/lib/layout/Sider';\nimport { useRecoilValue } from 'recoil';\nimport { FC } from 'react';\nimport dynamic from 'next/dynamic';\nimport { ChatMessage } from '../../../interfaces/chat-message.model';\nimport styles from './Sidebar.module.scss';\n\nimport { currentUserAtom, visibleChatMessagesSelector } from '../../stores/ClientConfigStore';\n\n// Lazy loaded components\nconst ChatContainer = dynamic(\n () => import('../../chat/ChatContainer/ChatContainer').then(mod => mod.ChatContainer),\n {\n ssr: false,\n },\n);\n\nexport const Sidebar: FC = () => {\n const currentUser = useRecoilValue(currentUserAtom);\n const messages = useRecoilValue(visibleChatMessagesSelector);\n if (!currentUser) {\n return ;\n }\n\n const { id, isModerator, displayName } = currentUser;\n return (\n \n \n \n );\n};\n","import { FC } from 'react';\nimport styles from './Footer.module.scss';\n\nexport type FooterProps = {\n version: string;\n};\n\nexport const Footer: FC = ({ version }) => (\n \n);\nexport default Footer;\n","import { FC, ReactNode } from 'react';\nimport styles from './ActionButtonRow.module.scss';\n\nexport type ActionButtonRowProps = {\n children: ReactNode;\n};\n\nexport const ActionButtonRow: FC = ({ children }) => (\n
{children}
\n);\n","import { Button } from 'antd';\nimport { FC } from 'react';\nimport cn from 'classnames';\nimport { ExternalAction } from '../../../interfaces/external-action';\nimport styles from './ActionButton.module.scss';\n\nexport type ActionButtonProps = {\n action: ExternalAction;\n primary?: boolean;\n externalActionSelected: (action: ExternalAction) => void;\n};\n\nexport const ActionButton: FC = ({\n action,\n primary = true,\n externalActionSelected,\n}) => {\n const { title, description, icon, color } = action;\n\n return (\n externalActionSelected(action)}\n style={{ backgroundColor: color }}\n >\n {icon && {description}}\n {title}\n \n );\n};\n","import { Button } from 'antd';\nimport { BellFilled } from '@ant-design/icons';\nimport { FC } from 'react';\nimport styles from './ActionButton/ActionButton.module.scss';\n\nexport type NotifyButtonProps = {\n text?: string;\n onClick?: () => void;\n};\n\nexport const NotifyButton: FC = ({ onClick, text }) => (\n }\n onClick={onClick}\n id=\"notify-button\"\n >\n {text || 'Notify'}\n \n);\n","import { FC } from 'react';\nimport styles from './Logo.module.scss';\n\nexport type LogoProps = {\n src: string;\n};\n\nexport const Logo: FC = ({ src }) => (\n
\n
\n \"Logo\"\n
\n
\n);\nexport default Logo;\n","import Image from 'next/image';\nimport { FC } from 'react';\nimport { SocialLink } from '../../../interfaces/social-link.model';\nimport styles from './SocialLinks.module.scss';\n\nexport type SocialLinksProps = {\n links: SocialLink[];\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const SocialLinks: FC = ({ links }) => (\n
\n {links.map(link => (\n \n \n \n ))}\n
\n);\n","import cn from 'classnames';\nimport { FC } from 'react';\nimport Linkify from 'react-linkify';\nimport { Logo } from '../../ui/Logo/Logo';\nimport { SocialLinks } from '../../ui/SocialLinks/SocialLinks';\nimport { SocialLink } from '../../../interfaces/social-link.model';\nimport styles from './ContentHeader.module.scss';\n\nexport type ContentHeaderProps = {\n name: string;\n title: string;\n summary: string;\n tags: string[];\n links: SocialLink[];\n logo: string;\n};\n\nexport const ContentHeader: FC = ({\n name,\n title,\n summary,\n logo,\n tags,\n links,\n}) => (\n
\n
\n
\n \n
\n
\n
{name}
\n
\n {title || summary}\n
\n
\n {tags.length > 0 && tags.map(tag => #{tag} )}\n
\n
\n \n
\n
\n
\n
\n);\n","import { FC } from 'react';\nimport { Button, Dropdown, Menu } from 'antd';\nimport { EllipsisOutlined, HeartOutlined, BellOutlined } from '@ant-design/icons';\nimport styles from './ActionButtonMenu.module.scss';\nimport { ExternalAction } from '../../../interfaces/external-action';\n\nconst NOTIFY_KEY = 'notify';\nconst FOLLOW_KEY = 'follow';\n\nexport type ActionButtonMenuProps = {\n actions: ExternalAction[];\n showFollowItem?: boolean;\n showNotifyItem?: boolean;\n externalActionSelected: (action: ExternalAction) => void;\n notifyItemSelected: () => void;\n followItemSelected: () => void;\n};\n\nexport const ActionButtonMenu: FC = ({\n actions,\n externalActionSelected,\n notifyItemSelected,\n followItemSelected,\n showFollowItem,\n showNotifyItem,\n}) => {\n const onMenuClick = a => {\n if (a.key === NOTIFY_KEY) {\n notifyItemSelected();\n return;\n }\n if (a.key === FOLLOW_KEY) {\n followItemSelected();\n return;\n }\n const action = actions.find(x => x.url === a.key);\n externalActionSelected(action);\n };\n\n const items = actions.map(action => ({\n key: action.url,\n label: (\n \n {action.icon && {action.title}}{' '}\n {action.title}\n \n ),\n }));\n\n if (showFollowItem) {\n items.unshift({\n key: FOLLOW_KEY,\n label: (\n \n Follow this stream\n \n ),\n });\n }\n\n if (showNotifyItem) {\n items.unshift({\n key: NOTIFY_KEY,\n label: (\n \n \n Notify when live\n \n ),\n });\n }\n\n const menu = ;\n\n return (\n \n
\n e.preventDefault()}\n size=\"large\"\n icon={}\n />\n
\n
\n );\n};\n","import { useRecoilState, useRecoilValue } from 'recoil';\nimport { Skeleton } from 'antd';\nimport { FC, useEffect, useState } from 'react';\nimport dynamic from 'next/dynamic';\nimport { LOCAL_STORAGE_KEYS, getLocalStorage, setLocalStorage } from '../../../utils/localStorage';\nimport isPushNotificationSupported from '../../../utils/browserPushNotifications';\n\nimport {\n clientConfigStateAtom,\n chatMessagesAtom,\n currentUserAtom,\n isChatAvailableSelector,\n isChatVisibleSelector,\n appStateAtom,\n isOnlineSelector,\n isMobileAtom,\n serverStatusState,\n} from '../../stores/ClientConfigStore';\nimport { ClientConfig } from '../../../interfaces/client-config.model';\nimport { CustomPageContent } from '../CustomPageContent/CustomPageContent';\n\nimport styles from './Content.module.scss';\nimport { Sidebar } from '../Sidebar/Sidebar';\nimport { Footer } from '../Footer/Footer';\n\nimport { ActionButtonRow } from '../../action-buttons/ActionButtonRow/ActionButtonRow';\nimport { ActionButton } from '../../action-buttons/ActionButton/ActionButton';\nimport { OfflineBanner } from '../OfflineBanner/OfflineBanner';\nimport { AppStateOptions } from '../../stores/application-state';\nimport { FollowButton } from '../../action-buttons/FollowButton';\nimport { NotifyButton } from '../../action-buttons/NotifyButton';\nimport { ContentHeader } from '../../common/ContentHeader/ContentHeader';\nimport { ServerStatus } from '../../../interfaces/server-status.model';\nimport { Statusbar } from '../Statusbar/Statusbar';\nimport { ChatMessage } from '../../../interfaces/chat-message.model';\nimport { ExternalAction } from '../../../interfaces/external-action';\nimport { Modal } from '../Modal/Modal';\nimport { ActionButtonMenu } from '../../action-buttons/ActionButtonMenu/ActionButtonMenu';\n\n// Lazy loaded components\n\nconst FollowerCollection = dynamic(\n () =>\n import('../followers/FollowerCollection/FollowerCollection').then(\n mod => mod.FollowerCollection,\n ),\n {\n ssr: false,\n },\n);\n\nconst FollowModal = dynamic(\n () => import('../../modals/FollowModal/FollowModal').then(mod => mod.FollowModal),\n {\n ssr: false,\n },\n);\n\nconst BrowserNotifyModal = dynamic(\n () =>\n import('../../modals/BrowserNotifyModal/BrowserNotifyModal').then(\n mod => mod.BrowserNotifyModal,\n ),\n {\n ssr: false,\n },\n);\n\nconst NotifyReminderPopup = dynamic(\n () => import('../NotifyReminderPopup/NotifyReminderPopup').then(mod => mod.NotifyReminderPopup),\n {\n ssr: false,\n },\n);\n\nconst OwncastPlayer = dynamic(\n () => import('../../video/OwncastPlayer/OwncastPlayer').then(mod => mod.OwncastPlayer),\n {\n ssr: false,\n },\n);\n\nconst ChatContainer = dynamic(\n () => import('../../chat/ChatContainer/ChatContainer').then(mod => mod.ChatContainer),\n {\n ssr: false,\n },\n);\n\nconst Tabs = dynamic(() => import('antd').then(mod => mod.Tabs), {\n ssr: false,\n});\n\nconst DesktopContent = ({\n name,\n streamTitle,\n summary,\n tags,\n socialHandles,\n extraPageContent,\n setShowFollowModal,\n supportFediverseFeatures,\n}) => {\n const aboutTabContent = ;\n const followersTabContent = (\n
\n setShowFollowModal(true)} />\n
\n );\n\n const items = [{ label: 'About', key: '2', children: aboutTabContent }];\n if (supportFediverseFeatures) {\n items.push({ label: 'Followers', key: '3', children: followersTabContent });\n }\n\n return (\n <>\n
\n \n
\n\n
\n {items.length > 1 ? : aboutTabContent}\n
\n \n );\n};\n\nconst MobileContent = ({\n name,\n streamTitle,\n summary,\n tags,\n socialHandles,\n extraPageContent,\n messages,\n currentUser,\n showChat,\n actions,\n setExternalActionToDisplay,\n setShowNotifyPopup,\n setShowFollowModal,\n supportFediverseFeatures,\n supportsBrowserNotifications,\n}) => {\n if (!currentUser) {\n return ;\n }\n const { id, displayName } = currentUser;\n\n const chatContent = showChat && (\n \n );\n\n const aboutTabContent = (\n <>\n \n \n \n );\n const followersTabContent = (\n setShowFollowModal(true)} />\n );\n\n const items = [\n showChat && { label: 'Chat', key: '0', children: chatContent },\n { label: 'About', key: '2', children: aboutTabContent },\n { label: 'Followers', key: '3', children: followersTabContent },\n ];\n\n const replacementTabBar = (props, DefaultTabBar) => (\n
\n \n setShowNotifyPopup(true)}\n followItemSelected={() => setShowFollowModal(true)}\n />\n
\n );\n\n return (\n
\n \n
\n );\n};\n\nconst ExternalModal = ({ externalActionToDisplay, setExternalActionToDisplay }) => {\n const { title, description, url } = externalActionToDisplay;\n return (\n setExternalActionToDisplay(null)}\n />\n );\n};\n\nexport const Content: FC = () => {\n const appState = useRecoilValue(appStateAtom);\n const clientConfig = useRecoilValue(clientConfigStateAtom);\n const isChatVisible = useRecoilValue(isChatVisibleSelector);\n const isChatAvailable = useRecoilValue(isChatAvailableSelector);\n const currentUser = useRecoilValue(currentUserAtom);\n\n const [isMobile, setIsMobile] = useRecoilState(isMobileAtom);\n const messages = useRecoilValue(chatMessagesAtom);\n const online = useRecoilValue(isOnlineSelector);\n\n const { viewerCount, lastConnectTime, lastDisconnectTime, streamTitle } =\n useRecoilValue(serverStatusState);\n const {\n extraPageContent,\n version,\n name,\n summary,\n socialHandles,\n tags,\n externalActions,\n offlineMessage,\n chatDisabled,\n federation,\n notifications,\n } = clientConfig;\n const [showNotifyReminder, setShowNotifyReminder] = useState(false);\n const [showNotifyModal, setShowNotifyModal] = useState(false);\n const [showFollowModal, setShowFollowModal] = useState(false);\n const { account: fediverseAccount, enabled: fediverseEnabled } = federation;\n const { browser: browserNotifications } = notifications;\n const { enabled: browserNotificationsEnabled } = browserNotifications;\n const [externalActionToDisplay, setExternalActionToDisplay] = useState(null);\n\n const [supportsBrowserNotifications, setSupportsBrowserNotifications] = useState(false);\n const supportFediverseFeatures = fediverseEnabled;\n\n const externalActionSelected = (action: ExternalAction) => {\n const { openExternally, url } = action;\n if (openExternally) {\n window.open(url, '_blank');\n } else {\n setExternalActionToDisplay(action);\n }\n };\n\n const externalActionButtons = externalActions.map(action => (\n \n ));\n\n const incrementVisitCounter = () => {\n let visits = parseInt(getLocalStorage(LOCAL_STORAGE_KEYS.userVisitCount), 10);\n if (Number.isNaN(visits)) {\n visits = 0;\n }\n\n setLocalStorage(LOCAL_STORAGE_KEYS.userVisitCount, visits + 1);\n\n if (visits > 2 && !getLocalStorage(LOCAL_STORAGE_KEYS.hasDisplayedNotificationModal)) {\n setShowNotifyReminder(true);\n }\n };\n\n const disableNotifyReminderPopup = () => {\n setShowNotifyModal(false);\n setShowNotifyReminder(false);\n setLocalStorage(LOCAL_STORAGE_KEYS.hasDisplayedNotificationModal, true);\n };\n\n const checkIfMobile = () => {\n const w = window.innerWidth;\n if (isMobile === undefined) {\n if (w <= 768) setIsMobile(true);\n else setIsMobile(false);\n }\n if (!isMobile && w <= 768) setIsMobile(true);\n if (isMobile && w > 768) setIsMobile(false);\n };\n\n useEffect(() => {\n incrementVisitCounter();\n checkIfMobile();\n window.addEventListener('resize', checkIfMobile);\n return () => {\n window.removeEventListener('resize', checkIfMobile);\n };\n }, []);\n\n useEffect(() => {\n // isPushNotificationSupported relies on `navigator` so that needs to be\n // fired from this useEffect.\n setSupportsBrowserNotifications(isPushNotificationSupported() && browserNotificationsEnabled);\n }, [browserNotificationsEnabled]);\n\n const showChat = !chatDisabled && isChatAvailable && isChatVisible;\n\n return (\n <>\n
\n
\n
\n
\n {appState.appLoading && }\n {online && }\n {!online && !appState.appLoading && (\n setShowNotifyModal(true)}\n onFollowClick={() => setShowFollowModal(true)}\n />\n )}\n {online && (\n \n )}\n
\n
\n
\n {!isMobile && (\n \n {externalActionButtons}\n {supportFediverseFeatures && (\n setShowFollowModal(true)} />\n )}\n {supportsBrowserNotifications && (\n setShowNotifyModal(true)}\n notificationClosed={() => disableNotifyReminderPopup()}\n >\n setShowNotifyModal(true)} />\n \n )}\n \n )}\n\n disableNotifyReminderPopup()}\n handleCancel={() => disableNotifyReminderPopup()}\n >\n \n \n
\n
\n {isMobile ? (\n \n ) : (\n \n )}\n {!isMobile &&
}\n
\n {showChat && !isMobile && }\n
\n
\n {externalActionToDisplay && (\n \n )}\n setShowFollowModal(false)}\n width=\"550px\"\n >\n setShowFollowModal(false)}\n />\n \n \n );\n};\nexport default Content;\n","/**\n * This component is responsible for updating the title of the page when\n * different state changes occur.\n * If the stream live state changes, or chat messages come in while the\n * page is backgrounded, this component will update the title to reflect it. *\n * @component\n */\nimport { FC, useEffect, useState } from 'react';\nimport { useRecoilValue } from 'recoil';\nimport { serverStatusState, chatMessagesAtom } from '../stores/ClientConfigStore';\n\nexport type TitleNotifierProps = {\n name: string;\n};\n\nexport const TitleNotifier: FC = ({ name }) => {\n const chatMessages = useRecoilValue(chatMessagesAtom);\n const serverStatus = useRecoilValue(serverStatusState);\n\n const [backgrounded, setBackgrounded] = useState(false);\n\n const { online } = serverStatus;\n\n const setTitle = (title: string) => {\n document.title = title;\n };\n\n const onBlur = () => {\n setBackgrounded(true);\n };\n\n const onFocus = () => {\n setBackgrounded(false);\n setTitle(name);\n };\n\n const listenForEvents = () => {\n // Listen for events that should update the title\n window.addEventListener('blur', onBlur);\n window.addEventListener('focus', onFocus);\n };\n\n const removeEvents = () => {\n window.removeEventListener('blur', onBlur);\n window.removeEventListener('focus', onFocus);\n };\n\n useEffect(() => {\n listenForEvents();\n\n return () => {\n removeEvents();\n };\n }, [name]);\n\n useEffect(() => {\n if (!backgrounded || !online) {\n return;\n }\n\n // Only alert on real chat messages from people.\n const lastMessage = chatMessages[chatMessages.length - 1];\n if (lastMessage.type !== 'CHAT') {\n return;\n }\n\n setTitle(`💬 :: ${name}`);\n }, [chatMessages, name]);\n\n useEffect(() => {\n if (!backgrounded) {\n return;\n }\n\n if (online) {\n setTitle(` 🟢 :: ${name}`);\n } else if (!online) {\n setTitle(` 🔴 :: ${name}`);\n }\n }, [online, name]);\n\n return null;\n};\n","/* eslint-disable react/no-danger */\nimport { FC, useEffect } from 'react';\n\nexport const PushNotificationServiceWorker: FC = () => {\n const add = () => {\n navigator.serviceWorker.register('/serviceWorker.js').then(\n registration => {\n console.debug('Service Worker registration successful with scope: ', registration.scope);\n },\n err => {\n console.error('Service Worker registration failed: ', err);\n },\n );\n };\n\n useEffect(() => {\n if ('serviceWorker' in navigator) {\n window.addEventListener('load', add);\n }\n\n return () => {\n window.removeEventListener('load', add);\n };\n }, []);\n\n return null;\n};\n","/* eslint-disable react/no-danger */\nimport { FC } from 'react';\nimport { useRecoilValue } from 'recoil';\nimport { ClientConfig } from '../../interfaces/client-config.model';\nimport { clientConfigStateAtom } from '../stores/ClientConfigStore';\n\nexport const Theme: FC = () => {\n const clientConfig = useRecoilValue(clientConfigStateAtom);\n const { appearanceVariables, customStyles } = clientConfig;\n\n const appearanceVars = Object.keys(appearanceVariables)\n .filter(variable => !!appearanceVariables[variable])\n .map(variable => `--${variable}: ${appearanceVariables[variable]}`);\n\n return (\n \n );\n};\n","/* eslint-disable react/no-danger */\n/* eslint-disable react/no-unescaped-entities */\nimport { useRecoilValue } from 'recoil';\nimport Head from 'next/head';\nimport { FC, useEffect, useRef } from 'react';\nimport { useLockBodyScroll } from 'react-use';\nimport dynamic from 'next/dynamic';\nimport {\n ClientConfigStore,\n isChatAvailableSelector,\n clientConfigStateAtom,\n fatalErrorStateAtom,\n} from '../stores/ClientConfigStore';\nimport { Header } from '../ui/Header/Header';\nimport { ClientConfig } from '../../interfaces/client-config.model';\nimport { DisplayableError } from '../../types/displayable-error';\nimport setupNoLinkReferrer from '../../utils/no-link-referrer';\nimport { ServerRenderedHydration } from '../ServerRendered/ServerRenderedHydration';\nimport { Content } from '../ui/Content/Content';\nimport { TitleNotifier } from '../TitleNotifier/TitleNotifier';\nimport { PushNotificationServiceWorker } from '../workers/PushNotificationServiceWorker/PushNotificationServiceWorker';\nimport { Theme } from '../theme/Theme';\n\n// Lazy loaded components\n\nconst FatalErrorStateModal = dynamic(\n () =>\n import('../modals/FatalErrorStateModal/FatalErrorStateModal').then(\n mod => mod.FatalErrorStateModal,\n ),\n {\n ssr: false,\n },\n);\n\nexport const Main: FC = () => {\n const clientConfig = useRecoilValue(clientConfigStateAtom);\n const { name, title, customStyles } = clientConfig;\n const isChatAvailable = useRecoilValue(isChatAvailableSelector);\n const fatalError = useRecoilValue(fatalErrorStateAtom);\n\n const layoutRef = useRef(null);\n const { chatDisabled } = clientConfig;\n\n useLockBodyScroll(true);\n\n useEffect(() => {\n setupNoLinkReferrer(layoutRef.current);\n }, []);\n\n const isProduction = process.env.NODE_ENV === 'production';\n\n return (\n <>\n \n {isProduction && }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n {isProduction ? (\n \n {name ? {name} : {'{{.Name}}'}}\n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n ) : (\n \n {name}\n \n )}\n\n \n \n \n \n
\n
\n \n {fatalError && (\n \n )}\n
\n \n );\n};\n","import { ReactElement } from 'react';\nimport { Main } from '../components/layouts/Main';\n\nexport default function Home() {\n return
;\n}\nHome.getLayout = function getLayout(page: ReactElement) {\n return page;\n};\n","export default function isPushNotificationSupported() {\n return 'serviceWorker' in navigator && 'PushManager' in window;\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"ActionButton_button__z5Z2c\",\"icon\":\"ActionButton_icon__EPp7Q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"item\":\"ActionButtonMenu_item__OJQdr\",\"buttonWrap\":\"ActionButtonMenu_buttonWrap__WQ9kt\",\"icon\":\"ActionButtonMenu_icon__edY1D\",\"menu\":\"ActionButtonMenu_menu__GChDk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"ActionButtonRow_row__SiEGe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ContentHeader_root__HaUG0\",\"row\":\"ContentHeader_row__9Q8gH\",\"logoTitleSection\":\"ContentHeader_logoTitleSection__Z8pUc\",\"logo\":\"ContentHeader_logo__wo_HN\",\"titleSection\":\"ContentHeader_titleSection___6Y15\",\"title\":\"ContentHeader_title__E_DsI\",\"subtitle\":\"ContentHeader_subtitle__n1Wew\",\"tagList\":\"ContentHeader_tagList__rx3jY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"Content_root__h1mNK\",\"mainSection\":\"Content_mainSection__Gk78Y\",\"topSection\":\"Content_topSection__JIZi0\",\"lowerSection\":\"Content_lowerSection__BZHYI\",\"lowerSectionMobile\":\"Content_lowerSectionMobile__hRr0_\",\"tabs\":\"Content_tabs__LMcZ1\",\"leftCol\":\"Content_leftCol__U2TDq\",\"loadingSpinner\":\"Content_loadingSpinner__mDlYC\",\"main\":\"Content_main__XVf63\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pageContentContainer\":\"CustomPageContent_pageContentContainer__EG4tU\",\"customPageContent\":\"CustomPageContent_customPageContent__Mr981\",\"summary\":\"CustomPageContent_summary___Zgps\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"Footer_footer__mPuvf\",\"links\":\"Footer_links__7bBxV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"Logo_root__jKiJC\",\"container\":\"Logo_container__A4UYT\",\"image\":\"Logo_image__Ahkom\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"spinner\":\"Modal_spinner__GiSS0\",\"content\":\"Modal_content__h9my9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"outerContainer\":\"OfflineBanner_outerContainer__3AbsB\",\"innerContainer\":\"OfflineBanner_innerContainer__zTm13\",\"bodyText\":\"OfflineBanner_bodyText__nNNy0\",\"separator\":\"OfflineBanner_separator___j_Ss\",\"lastLiveDate\":\"OfflineBanner_lastLiveDate___UZdO\",\"clockIcon\":\"OfflineBanner_clockIcon__s0DB_\",\"header\":\"OfflineBanner_header__Vu20o\",\"footer\":\"OfflineBanner_footer__o3Zl5\",\"actionLink\":\"OfflineBanner_actionLink__b4Mwa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"Sidebar_root__8HE0A\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"link\":\"SocialLinks_link___CcSm\",\"links\":\"SocialLinks_links__gOAb7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"statusbar\":\"Statusbar_statusbar__AtVnB\"};"],"names":["window","__NEXT_P","push","__webpack_require__","FollowButton","onClick","props","param","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Button","type","className","styles","icon","HeartFilled","id","Modal","title","url","open","handleOk","handleCancel","afterClose","height","width","children","loading","setLoading","useState","defaultHeight","defaultWidth","modalContentBodyStyle","padding","minHeight","iframe","src","sandbox","frameBorder","allowFullScreen","style","display","onLoad","AntModal","onOk","onCancel","bodyStyle","zIndex","footer","centered","destroyOnClose","jsxs","div","Skeleton","active","paragraph","rows","Spin","spinning","size","__webpack_exports__","defaultProps","undefined","OfflineBanner","text","streamName","customText","lastLive","notificationsEnabled","fediverseAccount","onNotifyClick","onFollowClick","span","role","tabIndex","Divider","ClockCircleOutlined","concat","formatDistanceToNow","Date","Statusbar","rightSideMessage","online","lastConnectTime","lastDisconnectTime","viewerCount","setNow","useEffect","interval","setInterval","clearInterval","onlineMessage","duration","makeDurationString","diff","intervalToDuration","start","end","days","hours","minutes","seconds","EyeFilled","ServerRenderedHydration","jsx_runtime","script","nonce","dangerouslySetInnerHTML","__html","CustomPageContent","content","ChatContainer","dynamic","Promise","all","e","then","bind","mod","ssr","Sidebar","currentUser","useRecoilValue","currentUserAtom","messages","visibleChatMessagesSelector","Sider","collapsedWidth","isModerator","displayName","usernameToHighlight","chatUserId","Footer","version","a","href","target","rel","ActionButtonRow","ActionButton","action","primary","externalActionSelected","description","color","cn","backgroundColor","img","alt","NotifyButton","BellFilled","Logo","SocialLinks","links","map","link","Image","platform","ContentHeader","name","summary","logo","tags","Linkify","length","tag","NOTIFY_KEY","FOLLOW_KEY","ActionButtonMenu","actions","notifyItemSelected","followItemSelected","showFollowItem","showNotifyItem","onMenuClick","key","find","x","items","label","unshift","HeartOutlined","BellOutlined","menu","Menu","Dropdown","overlay","placement","trigger","preventDefault","EllipsisOutlined","rotate","FollowerCollection","FollowModal","BrowserNotifyModal","NotifyReminderPopup","OwncastPlayer","Tabs","DesktopContent","streamTitle","socialHandles","extraPageContent","setShowFollowModal","supportFediverseFeatures","aboutTabContent","followersTabContent","onFollowButtonClick","Fragment","defaultActiveKey","MobileContent","showChat","setExternalActionToDisplay","setShowNotifyPopup","supportsBrowserNotifications","chatContent","replacementTabBar","DefaultTabBar","justifyContent","alignItems","renderTabBar","ExternalModal","externalActionToDisplay","Content","appState","appStateAtom","clientConfig","clientConfigStateAtom","isChatVisible","isChatVisibleSelector","isChatAvailable","isChatAvailableSelector","isMobile","setIsMobile","useRecoilState","isMobileAtom","chatMessagesAtom","isOnlineSelector","serverStatusState","externalActions","offlineMessage","chatDisabled","federation","notifications","showNotifyReminder","setShowNotifyReminder","showNotifyModal","setShowNotifyModal","showFollowModal","account","enabled","fediverseEnabled","browser","browserNotifications","browserNotificationsEnabled","setSupportsBrowserNotifications","openExternally","externalActionButtons","incrementVisitCounter","visits","parseInt","getLocalStorage","LOCAL_STORAGE_KEYS","Number","isNaN","setLocalStorage","disableNotifyReminderPopup","checkIfMobile","w","innerWidth","addEventListener","removeEventListener","isPushNotificationSupported","appLoading","source","notificationClicked","notificationClosed","handleClose","TitleNotifier","chatMessages","serverStatus","backgrounded","setBackgrounded","setTitle","document","onBlur","onFocus","listenForEvents","removeEvents","lastMessage","PushNotificationServiceWorker","add","navigator","serviceWorker","register","registration","console","debug","scope","err","error","Theme","appearanceVariables","customStyles","appearanceVars","Object","keys","filter","variable","join","FatalErrorStateModal","Main","fatalError","fatalErrorStateAtom","layoutRef","useRef","useLockBodyScroll","setupNoLinkReferrer","observationRoot","addNoReferrer","existingAttributes","node","getAttribute","setAttribute","querySelectorAll","forEach","anchor","observer","MutationObserver","mutationList","mutation","addedNodes","HTMLElement","tagName","toLowerCase","observe","attributes","childList","subtree","current","Head","sizes","meta","base","property","ClientConfigStore","ref","Header","chatAvailable","message","Home","getLayout","page","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/static/web/admin/access-tokens/index.html b/static/web/admin/access-tokens/index.html index 0cdceeb4e..cbdaf9f72 100644 --- a/static/web/admin/access-tokens/index.html +++ b/static/web/admin/access-tokens/index.html @@ -1,4 +1,4 @@ -

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 +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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 5ccc60807..2d68a5f7a 100644 --- a/static/web/admin/actions/index.html +++ b/static/web/admin/actions/index.html @@ -1,4 +1,4 @@ -

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 +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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/emojis/index.html b/static/web/admin/chat/emojis/index.html index 6a3dec259..4aeba9c19 100644 --- a/static/web/admin/chat/emojis/index.html +++ b/static/web/admin/chat/emojis/index.html @@ -1,4 +1,4 @@ -

Emojis

Here you can upload new custom emojis for usage in the chat. When uploading a new emoji, the filename will be used as emoji name.
NameEmoji
No data

\ No newline at end of file +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

Emojis

Here you can upload new custom emojis for usage in the chat. When uploading a new emoji, the filename will be used as emoji name.
NameEmoji
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 d852abe68..1651f52e2 100644 --- a/static/web/admin/chat/messages/index.html +++ b/static/web/admin/chat/messages/index.html @@ -1,4 +1,4 @@ -

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 +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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 82b34c8fa..417d467aa 100644 --- a/static/web/admin/chat/users/index.html +++ b/static/web/admin/chat/users/index.html @@ -1,4 +1,4 @@ -

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

\ No newline at end of file +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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 e5cc6aa21..1143034ac 100644 --- a/static/web/admin/config-chat/index.html +++ b/static/web/admin/config-chat/index.html @@ -1,4 +1,4 @@ -
\ No newline at end of file +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/
\ 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 6f585d5d6..6b8745667 100644 --- a/static/web/admin/config-federation/index.html +++ b/static/web/admin/config-federation/index.html @@ -1,4 +1,4 @@ -
\ No newline at end of file +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/
\ 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 b5b480148..18418fc9e 100644 --- a/static/web/admin/config-notify/index.html +++ b/static/web/admin/config-notify/index.html @@ -1,4 +1,4 @@ -

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 +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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-social-items/index.html b/static/web/admin/config-social-items/index.html index a3b0a5ecf..0de9f243a 100644 --- a/static/web/admin/config-social-items/index.html +++ b/static/web/admin/config-social-items/index.html @@ -1,4 +1,4 @@ -

Social Items

\ No newline at end of file +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

Social Items

\ 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 ac0d49e1f..2d594218d 100644 --- a/static/web/admin/config-video/index.html +++ b/static/web/admin/config-video/index.html @@ -1,4 +1,4 @@ -

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 +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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/general/index.html b/static/web/admin/config/general/index.html index e028c8db2..9954976d4 100644 --- a/static/web/admin/config/general/index.html +++ b/static/web/admin/config/general/index.html @@ -1,4 +1,4 @@ -

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 +/*# sourceMappingURL=8682c23cb724e38a.css.map*/

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/index.html b/static/web/admin/config/server/index.html index 77454ab84..36463bbf6 100644 --- a/static/web/admin/config/server/index.html +++ b/static/web/admin/config/server/index.html @@ -1,4 +1,4 @@ -

You should change your admin password 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 +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

You should change your admin password 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/federation/actions/index.html b/static/web/admin/federation/actions/index.html index d15cb75c4..695e0075b 100644 --- a/static/web/admin/federation/actions/index.html +++ b/static/web/admin/federation/actions/index.html @@ -1,4 +1,4 @@ -

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 +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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 20c134315..58174dcc4 100644 --- a/static/web/admin/federation/followers/index.html +++ b/static/web/admin/federation/followers/index.html @@ -1,4 +1,4 @@ -

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

NameURL
Added
Remove
No data
\ No newline at end of file +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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 3b0b741f4..8542fc279 100644 --- a/static/web/admin/hardware-info/index.html +++ b/static/web/admin/hardware-info/index.html @@ -1,4 +1,4 @@ -

Hardware Info


CPU
0%
Memory
0%
Disk
0%
Loading...
\ No newline at end of file +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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 5c7d4e12b..4ce7c2011 100644 --- a/static/web/admin/help/index.html +++ b/static/web/admin/help/index.html @@ -1,4 +1,4 @@ -

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 +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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 20e2d6886..a6fd77d42 100644 --- a/static/web/admin/index.html +++ b/static/web/admin/index.html @@ -1,4 +1,4 @@ -Owncast Admin

What is your stream about today?

What is your stream about today?
Offline

No stream is active

You should start one.

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 +/*# sourceMappingURL=e867652ad65748d1.css.map*/

What is your stream about today?

What is your stream about today?
Offline

No stream is active

You should start one.

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 1dacc5d56..3d1e0bec4 100644 --- a/static/web/admin/logs/index.html +++ b/static/web/admin/logs/index.html @@ -1,4 +1,4 @@ -
\ No newline at end of file +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/
\ 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 2dee8d741..c80f6d2a3 100644 --- a/static/web/admin/stream-health/index.html +++ b/static/web/admin/stream-health/index.html @@ -1,4 +1,4 @@ -

Stream Performance

\ No newline at end of file +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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 c1fa0b95b..5718a1b0d 100644 --- a/static/web/admin/upgrade/index.html +++ b/static/web/admin/upgrade/index.html @@ -1,4 +1,4 @@ -

Thu Jan 01 1970

Downloads

NameSize
No data
\ No newline at end of file +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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 499af89b1..80ed8b1e2 100644 --- a/static/web/admin/viewer-info/index.html +++ b/static/web/admin/viewer-info/index.html @@ -1,4 +1,4 @@ -

Viewer Info


Max viewers last stream
0
All-time max viewers
0
User AgentLocation
Watch Time
No data
\ No newline at end of file +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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 93080ca43..7e885acae 100644 --- a/static/web/admin/webhooks/index.html +++ b/static/web/admin/webhooks/index.html @@ -1,4 +1,4 @@ -

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 +/*# sourceMappingURL=fe8aa796c66ec5d4.css.map*/

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 89e2ae862..06035b1f8 100644 --- a/static/web/embed/chat/readonly/index.html +++ b/static/web/embed/chat/readonly/index.html @@ -1,4 +1,4 @@ -
\ No newline at end of file +/*# sourceMappingURL=b40fc7fbab54fd8a.css.map*/
\ 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 cce3685e5..4fe970f84 100644 --- a/static/web/embed/chat/readwrite/index.html +++ b/static/web/embed/chat/readwrite/index.html @@ -1,4 +1,4 @@ -
\ No newline at end of file +/*# sourceMappingURL=06292f6365e6ca3c.css.map*/
\ No newline at end of file diff --git a/static/web/embed/video/index.html b/static/web/embed/video/index.html index 902f3dc78..287ea5057 100644 --- a/static/web/embed/video/index.html +++ b/static/web/embed/video/index.html @@ -1,4 +1,4 @@ -
This stream is offline. Check back soon!
\ No newline at end of file +/*# sourceMappingURL=6037fa87da2bd61f.css.map*/
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 3872aade4..8bd1220c0 100644 --- a/static/web/index.html +++ b/static/web/index.html @@ -1,4 +1,4 @@ -{{.Name}}
\ No newline at end of file +
\ No newline at end of file