karaoke-eternal 2.0.2-beta.2 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -222,6 +222,10 @@
222
222
  left: unset;
223
223
  right: 3vh;
224
224
  }
225
+
226
+ canvas {
227
+ border-radius: var(--border-radius);
228
+ }
225
229
  }
226
230
 
227
231
  .N9nWI9_a9r9Urmsxb0M6 {
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><title>Karaoke Eternal</title><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"><base href="/"><script defer="defer" src="240.094443a82e8dc123bed9.js"></script><script defer="defer" src="main.094443a82e8dc123bed9.js"></script><link href="main.094443a82e8dc123bed9.css" rel="stylesheet"></head><body><div id="root" style="height: 100%"></div></body></html>
1
+ <!doctype html><html lang="en"><head><title>Karaoke Eternal</title><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"><base href="/"><script defer="defer" src="240.28a32260bdbd2ff9e73c.js"></script><script defer="defer" src="main.28a32260bdbd2ff9e73c.js"></script><link href="main.28a32260bdbd2ff9e73c.css" rel="stylesheet"></head><body><div id="root" style="height: 100%"></div></body></html>
@@ -1854,6 +1854,46 @@ textarea {
1854
1854
  touch-action: none;
1855
1855
  }
1856
1856
 
1857
+ .GZ4AfJ1RXsLXR9aQ3QpE {
1858
+ position: relative;
1859
+ color: var(--song-item-btn-bg-color);
1860
+
1861
+ svg {
1862
+ display: block;
1863
+ }
1864
+ }
1865
+
1866
+ .TPl9cEhtUMAt0h6N9YCP {
1867
+ position: absolute;
1868
+ font-size: 14px;
1869
+ top: 0;
1870
+ text-shadow: none;
1871
+ color: var(--color-gray-6);
1872
+ width: 100%;
1873
+ height: 100%;
1874
+ display: flex;
1875
+ align-items: center;
1876
+ justify-content: center;
1877
+ pointer-events: none;
1878
+ }
1879
+
1880
+ .KxWIysIVYOPpQ2J0J7m9 {
1881
+ color: var(--song-item-btn-active-bg-color);
1882
+ filter: var(--song-item-btn-active-filter);
1883
+ }
1884
+
1885
+ .KxWIysIVYOPpQ2J0J7m9 .TPl9cEhtUMAt0h6N9YCP {
1886
+ color: var(--song-item-btn-active-color);
1887
+ }
1888
+
1889
+ .fQvlCYdTv_qPyPxDbEan {
1890
+ animation: var(--animation-btn-star);
1891
+ will-change: transform;
1892
+
1893
+ @media (prefers-reduced-motion: reduce) {
1894
+ animation: none;
1895
+ }
1896
+ }
1857
1897
  .NLkRlVVNnuiKJMNOXMhe {
1858
1898
  display: flex;
1859
1899
  align-items: center;
@@ -1903,16 +1943,7 @@ textarea {
1903
1943
  }
1904
1944
  }
1905
1945
 
1906
- &._t4JBPFRguFbumW7x8D6 {
1907
- .bfE_vcKGNAy6HuKrhsLQ {
1908
- color: var(--song-item-btn-active-bg-color);
1909
- filter: var(--song-item-btn-active-filter);
1910
- }
1911
1946
 
1912
- .a2lTNMjjT5QzeuYbGeux {
1913
- color: var(--song-item-btn-active-color);
1914
- }
1915
- }
1916
1947
  }
1917
1948
 
1918
1949
  .q8d4R7JJbyKfMfb5qTtn {
@@ -1964,36 +1995,10 @@ textarea {
1964
1995
  }
1965
1996
  }
1966
1997
 
1967
- .bfE_vcKGNAy6HuKrhsLQ {
1968
- color: var(--song-item-btn-bg-color);
1969
- }
1970
-
1971
- .a2lTNMjjT5QzeuYbGeux {
1972
- position: absolute;
1973
- font-size: 14px;
1974
- top: 0;
1975
- text-shadow: none;
1976
- color: var(--text-color);
1977
- width: 100%;
1978
- height: 100%;
1979
- display: flex;
1980
- align-items: center;
1981
- justify-content: center;
1982
- }
1983
-
1984
1998
  .IpLs3GshduGnVRAThUSV {
1985
1999
  color: var(--song-item-btn-active-bg-color);
1986
2000
  filter: var(--song-item-btn-active-filter);
1987
2001
  }
1988
-
1989
- .r4HcW54ut9T2YXA4ysAf {
1990
- animation: var(--animation-btn-star);
1991
- will-change: transform;
1992
-
1993
- @media (prefers-reduced-motion: reduce) {
1994
- animation: none;
1995
- }
1996
- }
1997
2002
  .ZQ1vJSuEzaXfK5U2mVy3 {
1998
2003
  --artist-item-height: 48px;
1999
2004
 
@@ -2247,7 +2252,20 @@ textarea {
2247
2252
  position: relative;
2248
2253
  width: var(--queue-item-btn-size);
2249
2254
  height: var(--queue-item-btn-size);
2255
+ }
2256
+
2257
+ button:not(.en2EUqvEdVRhrEtbh7hu) {
2250
2258
  color: var(--song-item-btn-bg-color);
2259
+
2260
+ svg {
2261
+ height: 100%;
2262
+ width: auto;
2263
+ position: absolute;
2264
+ top: 50%;
2265
+ left: 50%;
2266
+ transform: translate(-50%, -50%);
2267
+ pointer-events: none;
2268
+ }
2251
2269
  }
2252
2270
 
2253
2271
  button.YmwxQ7Vy9kTAPCo00I2U {
@@ -2259,37 +2277,12 @@ textarea {
2259
2277
  color: var(--btn-danger-bg-color);
2260
2278
  filter: var(--btn-danger-filter);
2261
2279
  }
2262
-
2263
- svg {
2264
- width: var(--queue-item-btn-size);
2265
- height: var(--queue-item-btn-size);
2266
- position: absolute;
2267
- top: 50%;
2268
- left: 50%;
2269
- transform: translate(-50%, -50%);
2270
- pointer-events: none;
2271
- }
2272
2280
  }
2273
2281
 
2274
2282
  .gh_SYElq5eTJHE5IZynP svg,
2275
2283
  .ENoEOjlwEk0jBI45f4pk svg {
2276
- width: 60px;
2277
- height: 60px;
2278
- }
2279
-
2280
- ._gt_BEXlOrYwzEmK6sQ8 svg {
2281
- width: 56px;
2282
- height: 56px;
2283
- }
2284
-
2285
- .sSOYgUUl_mJhj1uPzBFs svg {
2286
- width: 52px;
2287
- height: 52px;
2288
- }
2289
-
2290
- .ZRVZZ_1kYEKO36fznW79 {
2291
- animation: var(--animation-btn-star);
2292
- will-change: transform;
2284
+ width: 60px !important;
2285
+ height: 60px !important;
2293
2286
  }
2294
2287
 
2295
2288
  /* Currently playing */
@@ -0,0 +1 @@
1
+ /*! See licenses in licenses.txt */(()=>{"use strict";var e,t,n,a,r,s={42730(e,t,n){n.d(t,{$Q:()=>we,$W:()=>Le,$h:()=>Se,A2:()=>w,Ac:()=>ie,Ah:()=>Re,Al:()=>f,BD:()=>de,Bw:()=>I,D2:()=>U,DN:()=>u,Df:()=>_e,EA:()=>A,F7:()=>O,Gg:()=>ee,H8:()=>ae,Hz:()=>Ae,Ig:()=>ne,J$:()=>oe,J_:()=>be,Jc:()=>l,K9:()=>L,NT:()=>le,Nt:()=>N,Nz:()=>p,OA:()=>m,OL:()=>r,P8:()=>X,PQ:()=>V,Pg:()=>Ie,Qp:()=>D,S3:()=>G,SX:()=>ge,Sz:()=>_,T_:()=>q,Tn:()=>x,U7:()=>he,UD:()=>o,Un:()=>E,VW:()=>Q,Xw:()=>ce,Y2:()=>Ee,YM:()=>R,ZC:()=>B,_P:()=>S,ae:()=>j,bA:()=>se,bX:()=>v,c8:()=>W,cP:()=>z,dh:()=>g,e_:()=>te,fD:()=>Oe,fm:()=>i,gD:()=>fe,gU:()=>J,gn:()=>ve,gv:()=>ue,gw:()=>k,hC:()=>c,iM:()=>ye,if:()=>M,jI:()=>K,kW:()=>Pe,kY:()=>me,lk:()=>$,ln:()=>Z,lq:()=>s,pg:()=>Y,qd:()=>P,qx:()=>F,s4:()=>re,sr:()=>pe,tA:()=>h,tB:()=>a,tg:()=>C,tx:()=>Ne,v3:()=>Ce,vD:()=>H,vJ:()=>y,w1:()=>b,xd:()=>d,zF:()=>T});const a="user/SOCKET_REQUEST_CONNECT",r="user/SOCKET_AUTH_ERROR",s="library/FILTER_KEYWORD",l="library/FILTER_KEYWORD_CLEAR",o="library/TOGGLE_FILTER_STARRED",i="library/TOGGLE_ARTIST_EXPANDED",c="library/TOGGLE_ARTIST_RESULT_EXPANDED",d="library/SCROLL_ARTISTS",m="library/SONG_STARRED",u="library/SONG_UNSTARRED",p="library/STAR_COUNTS_PUSH",h="library/PUSH",g="library/PUSH_SONG",E="server/QUEUE_ADD",f="server/QUEUE_MOVE",v="queue/PUSH",y="server/QUEUE_REMOVE",b="player/UPDATE",C="player/CMD_NEXT",w="player/CMD_OPTIONS",A="player/CMD_PAUSE",S="player/CMD_PLAY",N="player/CMD_REPLAY",_="player/CMD_VOLUME",I="server/PLAYER_REQ_NEXT",R="server/PLAYER_REQ_OPTIONS",P="server/PLAYER_REQ_PAUSE",L="server/PLAYER_REQ_PLAY",O="server/PLAYER_REQ_REPLAY",k="server/PLAYER_REQ_VOLUME",T="server/PLAYER_EMIT_STATUS",M="server/PLAYER_EMIT_LEAVE",V="status/PLAYER_STATUS",x="status/PLAYER_ERROR",z="status/PLAYER_LEAVE",H="status/PLAYER_LOAD",U="status/PLAYER_PLAY",D="status/PLAYER_VISUALIZER_ERROR",G="user/LOGIN",q="user/LOGOUT",F="user/ACCOUNT_RECEIVE",B="user/ACCOUNT_CREATE",j="user/ACCOUNT_UPDATE",W="user/ACCOUNT_REQUEST",Y="rooms/RECEIVE",Q="rooms/REQUEST",J="rooms/UPDATE",K="rooms/CREATE",Z="rooms/REMOVE",X="rooms/EDITOR_OPEN",$="rooms/EDITOR_CLOSE",ee="rooms/TOGGLE_SHOW_ALL",te="rooms/ROOM_PREFS_PUSH",ne="server/ROOM_PREFS_PUSH_REQUEST",ae="server/STAR_SONG",re="server/UNSTAR_SONG",se="user/STARS_PUSH",le="prefs/RECEIVE",oe="prefs/REQUEST",ie="server/PREFS_SET",ce="server/PREFS_PATH_SET_PRIORITY",de="prefs/PREFS_PATH_UPDATE",me="prefs/PREFS_PUSH",ue="prefs/REQ_SCANNER_START",pe="prefs/REQ_SCANNER_STOP",he="users/CREATE",ge="users/EDITOR_OPEN",Ee="users/EDITOR_CLOSE",fe="users/FILTER_ONLINE",ve="users/FILTER_ROOM_ID",ye="users/REMOVE",be="users/REQUEST",Ce="users/UPDATE",we="ui/HEADER_HEIGHT_CHANGE",Ae="ui/FOOTER_HEIGHT_CHANGE",Se="ui/SHOW_ERROR_MESSAGE",Ne="ui/CLEAR_ERROR_MESSAGE",_e="ui/WINDOW_RESIZE",Ie="songInfo/SONG_INFO_REQUEST",Re="songInfo/SET_PREFERRED",Pe="songInfo/SONG_INFO_CLOSE",Le="scannerWorker/STATUS",Oe="app/REDUX_SLICE_INJECT_NOOP"},80519(e,t,n){n.d(t,{A:()=>o});var a=n(58168),r=n(21728),s=n(96540);const l={ACCOUNT:{viewBox:"0 0 24 24",d:"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"},ACCOUNT_BOX:{viewBox:"0 0 24 24",d:"M6,17C6,15 10,13.9 12,13.9C14,13.9 18,15 18,17V18H6M15,9A3,3 0 0,1 12,12A3,3 0 0,1 9,9A3,3 0 0,1 12,6A3,3 0 0,1 15,9M3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5C3.89,3 3,3.9 3,5Z"},ACCOUNT_BOX_OUTLINE:{viewBox:"0 0 24 24",d:"M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M16.5,16.25C16.5,14.75 13.5,14 12,14C10.5,14 7.5,14.75 7.5,16.25V17H16.5M12,12.25A2.25,2.25 0 0,0 14.25,10A2.25,2.25 0 0,0 12,7.75A2.25,2.25 0 0,0 9.75,10A2.25,2.25 0 0,0 12,12.25Z"},ALERT_OUTLINE:{viewBox:"0 0 24 24",d:"M12,2L1,21H23M12,6L19.53,19H4.47M11,10V14H13V10M11,16V18H13V16"},CHEVRON_DOWN:{viewBox:"0 0 24 24",d:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},CHEVRON_LEFT:{viewBox:"0 0 24 24",d:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"},CHEVRON_RIGHT:{viewBox:"0 0 24 24",d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},CHEVRON_UP:{viewBox:"0 0 24 24",d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"},CIRCLE:{viewBox:"0 0 24 24",d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},CLEAR:{viewBox:"0 0 24 24",d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"},CLOUD:{viewBox:"0 0 24 24",d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"},DELETE:{viewBox:"0 0 24 24",d:"M14.12 10.47 12 12.59l-2.13-2.12-1.41 1.41L10.59 14l-2.12 2.12 1.41 1.41L12 15.41l2.12 2.12 1.41-1.41L13.41 14l2.12-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4zM6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8z"},DICE:{viewBox:"0 0 24 24",d:"M19.78,3H11.22C10.55,3 10,3.55 10,4.22V8H16V14H19.78C20.45,14 21,13.45 21,12.78V4.22C21,3.55 20.45,3 19.78,3M12.44,6.67C11.76,6.67 11.21,6.12 11.21,5.44C11.21,4.76 11.76,4.21 12.44,4.21A1.23,1.23 0 0,1 13.67,5.44C13.67,6.12 13.12,6.67 12.44,6.67M18.56,12.78C17.88,12.79 17.33,12.24 17.32,11.56C17.31,10.88 17.86,10.33 18.54,10.32C19.22,10.31 19.77,10.86 19.78,11.56C19.77,12.23 19.23,12.77 18.56,12.78M18.56,6.67C17.88,6.68 17.33,6.13 17.32,5.45C17.31,4.77 17.86,4.22 18.54,4.21C19.22,4.2 19.77,4.75 19.78,5.44C19.78,6.12 19.24,6.66 18.56,6.67M4.22,10H12.78A1.22,1.22 0 0,1 14,11.22V19.78C14,20.45 13.45,21 12.78,21H4.22C3.55,21 3,20.45 3,19.78V11.22C3,10.55 3.55,10 4.22,10M8.5,14.28C7.83,14.28 7.28,14.83 7.28,15.5C7.28,16.17 7.83,16.72 8.5,16.72C9.17,16.72 9.72,16.17 9.72,15.5A1.22,1.22 0 0,0 8.5,14.28M5.44,11.22C4.77,11.22 4.22,11.77 4.22,12.44A1.22,1.22 0 0,0 5.44,13.66C6.11,13.66 6.66,13.11 6.66,12.44V12.44C6.66,11.77 6.11,11.22 5.44,11.22M11.55,17.33C10.88,17.33 10.33,17.88 10.33,18.55C10.33,19.22 10.88,19.77 11.55,19.77A1.22,1.22 0 0,0 12.77,18.55H12.77C12.77,17.88 12.23,17.34 11.56,17.33H11.55Z"},DRAG_INDICATOR:{viewBox:"0 0 24 24",d:"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"},FLAG:{viewBox:"0 0 24 24",d:"M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"},FOLDER:{viewBox:"0 0 24 24",d:"M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"},FOLDER_MUSIC:{viewBox:"0 0 24 24",d:"M10 4L12 6H20C21.1 6 22 6.89 22 8V18C22 19.1 21.1 20 20 20H4C2.89 20 2 19.1 2 18L2 6C2 4.89 2.89 4 4 4H10M19 9H15.5V13.06L15 13C13.9 13 13 13.9 13 15C13 16.11 13.9 17 15 17C16.11 17 17 16.11 17 15V11H19V9Z"},FULLSCREEN:{viewBox:"0 0 24 24",d:"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"},GITHUB_REPO:{viewBox:"0 0 16 16",d:"M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"},GITHUB_SPONSOR:{viewBox:"0 0 16 16",d:"m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"},GITHUB_STAR:{viewBox:"0 0 16 16",d:"M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"},INFO_OUTLINE:{viewBox:"0 0 24 24",d:"M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z"},LABEL:{viewBox:"0 0 24 24",d:"M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"},MAGNIFIER:{viewBox:"0 0 24 24",d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"},MORE_HORIZ:{viewBox:"0 0 24 24",d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"},MOVE_TOP:{viewBox:"0 0 24 24",d:"M5 4v2h14V4H5zm0 10h4v6h6v-6h4l-7-7-7 7z"},NAV_ACCOUNT:{viewBox:"0 0 24 24",d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8m3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5m-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.32-1.45 5.12-3.5h-1.67c-.69 1.19-1.97 2-3.45 2s-2.75-.81-3.45-2H6.88c.8 2.05 2.79 3.5 5.12 3.5"},NAV_ACCOUNT_ACTIVE:{viewBox:"0 0 24 24",d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"},NAV_LIBRARY:{viewBox:"0 0 24 24",d:"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 5h-3v5.5c0 1.38-1.12 2.5-2.5 2.5S10 13.88 10 12.5s1.12-2.5 2.5-2.5c.57 0 1.08.19 1.5.51V5h4v2zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z"},NAV_SUBSCRIPTIONS:{viewBox:"0 0 24 24",d:"M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z"},PAUSE:{viewBox:"0 0 24 24",d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},PLAY:{viewBox:"0 0 24 24",d:"M8 5v14l11-7z"},PLAY_NEXT:{viewBox:"0 0 24 24",d:"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z"},PLUS:{viewBox:"0 0 24 24",d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"},PERSON:{viewBox:"0 0 24 24",d:"M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4"},PHOTO_ADD:{viewBox:"0 0 24 24",d:"M21 6h-3.17L16 4h-6v2h5.12l1.83 2H21v12H5v-9H3v9c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2M8 14c0 2.76 2.24 5 5 5s5-2.24 5-5-2.24-5-5-5-5 2.24-5 5m5-3c1.65 0 3 1.35 3 3s-1.35 3-3 3-3-1.35-3-3 1.35-3 3-3M5 6h3V4H5V1H3v3H0v2h3v3h2z"},QR_CODE:{viewBox:"0 0 24 24",d:"M3 11h8V3H3zm2-6h4v4H5zM3 21h8v-8H3zm2-6h4v4H5zm8-12v8h8V3zm6 6h-4V5h4zm0 10h2v2h-2zm-6-6h2v2h-2zm2 2h2v2h-2zm-2 2h2v2h-2zm2 2h2v2h-2zm2-2h2v2h-2zm0-4h2v2h-2zm2 2h2v2h-2z"},REFRESH:{viewBox:"0 0 24 24",d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"},REPLAY:{viewBox:"0 0 24 24",d:"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8"},STAR_FULL:{viewBox:"0 0 32 32",d:"M32 12.408l-11.056-1.607-4.944-10.018-4.944 10.018-11.056 1.607 8 7.798-1.889 11.011 9.889-5.199 9.889 5.199-1.889-11.011 8-7.798z"},TELEVISION_PLAY:{viewBox:"0 0 24 24",d:"M21,3H3C1.89,3 1,3.89 1,5V17A2,2 0 0,0 3,19H8V21H16V19H21A2,2 0 0,0 23,17V5C23,3.89 22.1,3 21,3M21,17H3V5H21M16,11L9,15V7"},TUNE:{viewBox:"0 0 24 24",d:"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z"},VISIBILITY:{viewBox:"0 0 24 24",d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"},VISIBILITY_OFF:{viewBox:"0 0 24 24",d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"},VOLUME_DOWN:{viewBox:"0 0 24 24",d:"M18.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z"},VOLUME_MUTE:{viewBox:"0 0 24 24",d:"M7 9v6h4l5 5V4l-5 5H7z"},VOLUME_OFF:{viewBox:"0 0 24 24",d:"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"},VOLUME_UP:{viewBox:"0 0 24 24",d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"}},o=e=>{const t=(0,r.c)(11);let n,o,i;t[0]!==e?(({size:i,icon:n,...o}=e),t[0]=e,t[1]=n,t[2]=o,t[3]=i):(n=t[1],o=t[2],i=t[3]);const c=i?`${i}px`:void 0,d=l[n],m=l[n];let u,p;return t[4]!==m.d?(u=s.createElement("path",{fill:"currentColor",d:m.d}),t[4]=m.d,t[5]=u):u=t[5],t[6]!==o||t[7]!==c||t[8]!==d.viewBox||t[9]!==u?(p=s.createElement("svg",(0,a.A)({height:c,viewBox:d.viewBox,"aria-hidden":!0},o),u),t[6]=o,t[7]=c,t[8]=d.viewBox,t[9]=u,t[10]=p):p=t[10],p}},5668(e,t,n){n.d(t,{A:()=>c});var a=n(21728),r=n(96540),s=n(34164),l=n(80519);const o="qVDsyq0en4mmfO12Q9S6",i=e=>{const t=(0,a.c)(13),{dateUpdated:n,userId:s}=e,[o,i]=(0,r.useState)(!0),[c,d]=(0,r.useState)(!1);let m;t[0]===Symbol.for("react.memo_cache_sentinel")?(m=()=>i(!1),t[0]=m):m=t[0];const u=m;let p;t[1]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{i(!1),d(!0)},t[1]=p):p=t[1];const h=p;let g,E,f;return t[2]!==c||t[3]!==o?(g=(o||c)&&r.createElement(l.A,{icon:"ACCOUNT"}),t[2]=c,t[3]=o,t[4]=g):g=t[4],t[5]!==n||t[6]!==c||t[7]!==o||t[8]!==s?(E=!c&&r.createElement("img",{src:`${document.baseURI}api/user/${s}/image?v=${n}`,onLoad:u,onError:h,style:{display:o?"none":"initial"}}),t[5]=n,t[6]=c,t[7]=o,t[8]=s,t[9]=E):E=t[9],t[10]!==g||t[11]!==E?(f=r.createElement(r.Fragment,null,g,E),t[10]=g,t[11]=E,t[12]=f):f=t[12],f},c=e=>{const t=(0,a.c)(9),{className:n,dateUpdated:l,userId:c}=e;let d;t[0]!==n?(d=(0,s.A)(o,n),t[0]=n,t[1]=d):d=t[1];const m=`${c}-${l}`;let u,p;return t[2]!==l||t[3]!==m||t[4]!==c?(u=r.createElement(i,{key:m,userId:c,dateUpdated:l}),t[2]=l,t[3]=m,t[4]=c,t[5]=u):u=t[5],t[6]!==d||t[7]!==u?(p=r.createElement("div",{className:d},u),t[6]=d,t[7]=u,t[8]=p):p=t[8],p}},50554(e,t,n){n.d(t,{A:()=>sl});var a=n(96540),r=n(35570),s=n(21728),l=n(71468),o=n(68131),i=n(85555),c=n(32681),d=n(76140),m=n(40936),u=n(58168),p=n(34164),h=n(80519);const g={container:"rYzGz3Rx2eJjMVVhj_lA",default:"BRCYi6lJspftkCxcFdpw",primary:"u4HHBIWYgUhQaG3hu6kB",danger:"X_mi34pYwHmBoHHJS15M"},E=e=>{const t=(0,s.c)(39);let n,r,l,o,i,c,d,m,E,f;t[0]!==e?(({animateClassName:n,cancelAnimation:l,className:i,children:o,icon:c,onClick:d,size:E,variant:f,as:r,...m}=e),t[0]=e,t[1]=n,t[2]=r,t[3]=l,t[4]=o,t[5]=i,t[6]=c,t[7]=d,t[8]=m,t[9]=E,t[10]=f):(n=t[1],r=t[2],l=t[3],o=t[4],i=t[5],c=t[6],d=t[7],m=t[8],E=t[9],f=t[10]);const v=(0,a.useRef)(null),[y,b]=(0,a.useState)(!1),[C,w]=(0,a.useState)(l),A=r||"button";let S;l!==C&&(w(l),l&&b(!1)),t[11]===Symbol.for("react.memo_cache_sentinel")?(S=()=>{b(!1)},t[11]=S):S=t[11];const N=S;let _;t[12]!==n||t[13]!==d?(_=e=>{n&&b(!0),d&&d(e)},t[12]=n,t[13]=d,t[14]=_):_=t[14];const I=_,R="button"===A?m.type||"button":void 0;let P;t[15]!==n||t[16]!==i||t[17]!==y||t[18]!==f?(P=n&&y?{className:(0,p.A)(g.container,g[f],i,n),onAnimationEnd:N}:{className:(0,p.A)(g.container,g[f],i)},t[15]=n,t[16]=i,t[17]=y,t[18]=f,t[19]=P):P=t[19];const L=P;let O;t[20]!==L||t[21]!==I||t[22]!==m?(O={onClick:I,...L,...m},t[20]=L,t[21]=I,t[22]=m,t[23]=O):O=t[23];const k=O;if("button"===A){const e=k;let n,r;return t[24]!==c||t[25]!==E?(n=c&&a.createElement(h.A,{icon:c,size:E}),t[24]=c,t[25]=E,t[26]=n):n=t[26],t[27]!==R||t[28]!==o||t[29]!==e||t[30]!==n?(r=a.createElement("button",(0,u.A)({},e,{ref:v,type:R}),n,o),t[27]=R,t[28]=o,t[29]=e,t[30]=n,t[31]=r):r=t[31],r}const T=k;let M,V;return t[32]!==c||t[33]!==E?(M=c&&a.createElement(h.A,{icon:c,size:E}),t[32]=c,t[33]=E,t[34]=M):M=t[34],t[35]!==o||t[36]!==T||t[37]!==M?(V=a.createElement("span",(0,u.A)({},T,{ref:v}),M,o),t[35]=o,t[36]=T,t[37]=M,t[38]=V):V=t[38],V};var f=n(25508),v=n(99996),y=n(32509),b=n(46685);const C=(0,f.Mz)([e=>(0,y.A)(e),e=>e.status.queueId,b.A,e=>e.status.position,e=>e.songs],(e,t,n,a,r)=>{const s=e.result.indexOf(t),l={};let o=0,i=0;return e.result.forEach((t,c)=>{const d=e.entities[t].songId;r.entities[d]&&(c===s?-1===n.lastIndexOf(t)&&(i=Math.round(r.entities[d].duration-a)):c>s&&(o+=i,i=r.entities[d].duration),l[t]=o)}),l});var w=n(47768);const A="UIK2HEzG93kJrZg1zrOI",S="PM6oSstQkOr7xx5WXBco",N="jvBgtBq5nhwhgFxDdohV",_="yRcmNgWXHlqworm4xJFy",I="q3cBXbOJzq3CC3galiDw",R="zKCotnvYis3lj_IxNd42",P=()=>{const e=(0,s.c)(30),t=(0,d.j)(),{filterStr:n,filterStarred:r}=(0,d.G)(L),l=(0,a.useRef)(null),[o,i]=(0,a.useState)(n);let c;e[0]!==t?(c=e=>{i(e.target.value),t((0,w.yy)(e.target.value))},e[0]=t,e[1]=c):c=e[1];const m=c;let u;e[2]!==t?(u=()=>{i(""),t((0,w.lo)())},e[2]=t,e[3]=u):u=e[3];const h=u;let g;e[4]!==h||e[5]!==o?(g=()=>{o.trim()?h():l.current?.focus()},e[4]=h,e[5]=o,e[6]=g):g=e[6];const f=g,v=n&&S;let y,b,C,P;e[7]!==v?(y=(0,p.A)(_,v),e[7]=v,e[8]=y):y=e[8],e[9]!==f||e[10]!==y?(b=a.createElement(E,{className:y,icon:"MAGNIFIER",onClick:f}),e[9]=f,e[10]=y,e[11]=b):b=e[11],e[12]!==m||e[13]!==o?(C=a.createElement("input",{type:"search",className:N,placeholder:"search",value:o,onChange:m,ref:l}),e[12]=m,e[13]=o,e[14]=C):C=e[14],e[15]!==h||e[16]!==n?(P=n&&a.createElement(E,{icon:"CLEAR",onClick:h,className:(0,p.A)(I,S)}),e[15]=h,e[16]=n,e[17]=P):P=e[17];const O=r&&S;let k,T,M,V;return e[18]!==O?(k=(0,p.A)(R,O),e[18]=O,e[19]=k):k=e[19],e[20]!==t?(T=()=>t((0,w.Ic)()),e[20]=t,e[21]=T):T=e[21],e[22]!==T||e[23]!==k?(M=a.createElement(E,{className:k,icon:"STAR_FULL",onClick:T}),e[22]=T,e[23]=k,e[24]=M):M=e[24],e[25]!==M||e[26]!==b||e[27]!==C||e[28]!==P?(V=a.createElement("div",{className:A},b,C,P,M),e[25]=M,e[26]=b,e[27]=C,e[28]=P,e[29]=V):V=e[29],V};function L(e){return e.library}var O=n(45041),k=n(88146),T=n(85134),M=n(11234);const V="DY6_kAr5khzv1QwqLveK",x="X0DCwMUX1tj5tsoGjDFq",z=e=>{const t=(0,s.c)(30);let n,r,l,o,i,c,d,m,g,E;t[0]!==e?(({"aria-label":n,"aria-labelledby":r,className:l,handle:o,min:c,max:i,onChange:d,step:g,value:E,...m}=e),t[0]=e,t[1]=n,t[2]=r,t[3]=l,t[4]=o,t[5]=i,t[6]=c,t[7]=d,t[8]=m,t[9]=g,t[10]=E):(n=t[1],r=t[2],l=t[3],o=t[4],i=t[5],c=t[6],d=t[7],m=t[8],g=t[9],E=t[10]);const[f,v]=(0,a.useState)(null),y=(0,a.useRef)(null);let b;t[11]!==d?(b=e=>{y.current&&(clearTimeout(y.current),y.current=null),(0,T.Dx)(!0),v(e),d(e)},t[11]=d,t[12]=b):b=t[12];const C=b;let w;t[13]!==E?(w=e=>{(0,T.Dx)(!1),e===E?v(null):y.current=setTimeout(()=>{v(null)},2e3)},t[13]=E,t[14]=w):w=t[14];const A=w;let S;t[15]!==n||t[16]!==r?(S=e=>a.cloneElement(e,{"aria-label":n,"aria-labelledby":r,className:x,onTouchEnd:H},a.createElement(h.A,{icon:"CIRCLE"})),t[15]=n,t[16]=r,t[17]=S):S=t[17];const N=S;let _;t[18]!==l?(_=(0,p.A)(V,l),t[18]=l,t[19]=_):_=t[19];const I=o??N,R=f??E;let P;return t[20]!==C||t[21]!==A||t[22]!==i||t[23]!==c||t[24]!==m||t[25]!==g||t[26]!==_||t[27]!==I||t[28]!==R?(P=a.createElement(M.A,(0,u.A)({className:_,handleRender:I,max:i,min:c,onChangeComplete:A,onChange:C,step:g,value:R},m)),t[20]=C,t[21]=A,t[22]=i,t[23]=c,t[24]=m,t[25]=g,t[26]=_,t[27]=I,t[28]=R,t[29]=P):P=t[29],P};function H(e){e.currentTarget.blur()}const U="dMo9SQYONtw9WYO5lxiN",D="pMYNwtxIUiwKZSuUB8NQ",G=(e,{value:t})=>{const n=0===t?"VOLUME_OFF":t<.4?"VOLUME_MUTE":t<.7?"VOLUME_DOWN":"VOLUME_UP";return a.cloneElement(e,{"aria-label":"Volume",className:D},a.createElement(h.A,{icon:n}))},q=e=>{const t=(0,s.c)(3),{volume:n,onVolumeChange:r}=e;let l;return t[0]!==r||t[1]!==n?(l=a.createElement(z,{className:U,handle:G,min:0,max:1,onChange:r,step:.01,value:n}),t[0]=r,t[1]=n,t[2]=l):l=t[2],l},F="sfr6H9YQSnxNFewvtYb2",B="QYsiKZ5NRjaOsK5iaXfX",j=()=>{const e=(0,s.c)(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=a.createElement("div",{className:F},a.createElement("p",{className:B},"No player in room (",a.createElement(r.N_,{to:"/player",target:"_blank",replace:!0},"Launch Player"),")")),e[0]=t):t=e[0],t},W="HHYLkEZBcUJPga1se3oQ",Y="pfOAkdcjAgxEaiTckdFA",Q="aIGh3kF56tYlTfTCzGuC",J="M1nSLELWzWtg0nMNVAPp",K="G89xv3BCUffZqoya0LQl",Z="nsGMxmc6ZA0V4Fwl17Bf",X=e=>{const t=(0,s.c)(31),{buttons:n,className:r,children:l,visible:o,onClose:i,scrollable:c,title:d}=e,m=void 0===o||o,u=(0,a.useRef)(null),h=(0,a.useRef)(!1);let g,f,v;t[0]!==m?(g=()=>{m&&u.current&&u.current.showModal()},f=[m],t[0]=m,t[1]=g,t[2]=f):(g=t[1],f=t[2]),(0,a.useEffect)(g,f),t[3]===Symbol.for("react.memo_cache_sentinel")?(v=e=>{h.current=e.target===u.current},t[3]=v):v=t[3];const y=v;let b;t[4]!==i?(b=e=>{h.current&&e.target===u.current&&i(),h.current=!1},t[4]=i,t[5]=b):b=t[5];const C=b;let w;t[6]!==i?(w=e=>{e.preventDefault(),i()},t[6]=i,t[7]=w):w=t[7];const A=w;if(!m)return null;let S,N,_,I;t[8]!==r?(S=(0,p.A)(W,r),t[8]=r,t[9]=S):S=t[9],t[10]!==d?(N=a.createElement("h1",null,d),t[10]=d,t[11]=N):N=t[11],t[12]!==i?(_=a.createElement(E,{icon:"CLEAR",className:Q,onClick:i,"aria-label":"Close"}),t[12]=i,t[13]=_):_=t[13],t[14]!==N||t[15]!==_?(I=a.createElement("div",{className:Y},N,_),t[14]=N,t[15]=_,t[16]=I):I=t[16];const R=c&&K;let P,L,O,k;return t[17]!==R?(P=(0,p.A)(J,R),t[17]=R,t[18]=P):P=t[18],t[19]!==l||t[20]!==P?(L=a.createElement("div",{className:P},l),t[19]=l,t[20]=P,t[21]=L):L=t[21],t[22]!==n?(O=n&&a.createElement("div",{className:Z},n),t[22]=n,t[23]=O):O=t[23],t[24]!==A||t[25]!==C||t[26]!==I||t[27]!==L||t[28]!==O||t[29]!==S?(k=a.createElement("dialog",{ref:u,className:S,onMouseDown:y,onMouseUp:C,onCancel:A},I,L,O),t[24]=A,t[25]=C,t[26]=I,t[27]=L,t[28]=O,t[29]=S,t[30]=k):k=t[30],k},$="Fqzbj50Thya7wadiB1RR",ee=(0,a.forwardRef)((e,t)=>{const n=(0,s.c)(13);let r,l,o,i,c,d;return n[0]!==e?(({label:l,className:r,...o}=e),n[0]=e,n[1]=r,n[2]=l,n[3]=o):(r=n[1],l=n[2],o=n[3]),n[4]!==r?(i=(0,p.A)($,r),n[4]=r,n[5]=i):i=n[5],n[6]!==t||n[7]!==o?(c=a.createElement("input",(0,u.A)({type:"checkbox",ref:t},o)),n[6]=t,n[7]=o,n[8]=c):c=n[8],n[9]!==l||n[10]!==i||n[11]!==c?(d=a.createElement("label",{className:i},c,l),n[9]=l,n[10]=i,n[11]=c,n[12]=d):d=n[12],d});ee.displayName="InputCheckbox";const te=ee,ne={modal:"CHH6ukgfI31pNfRWfp2z",container:"xKkwU06MKq2DbjSima4p",section:"eBgZD0SKZoZxdKfDH4T1",visualizer:"PJhDzihe1KxTY9CE2xvq",presetContainer:"hMPTUMcNQY0YeMY1WnWo",presetButtons:"WPJeW28XmDzljHtBz0mq",presetName:"Sx5QwRYN26kPCBm4i6rP",unsupported:"zIEucMK4dBypf03pERBF",slider:"MhuyzAaoykU7XrttP0lt"},ae=({cdgAlpha:e,cdgSize:t,isVideoKeyingEnabled:n,isVisualizerEnabled:r,isWebGLSupported:s,mediaType:l="",mp4Alpha:o,sensitivity:i,visualizerPresetName:c,onRequestOptions:d,onClose:m})=>a.createElement(X,{className:ne.modal,onClose:m,title:"Display",buttons:a.createElement(E,{variant:"primary",onClick:m},"Done")},a.createElement("div",{className:ne.container},a.createElement("div",{className:(0,p.A)(ne.section,ne.visualizer)},a.createElement("fieldset",null,a.createElement("legend",null,a.createElement(te,{label:"Visualizer",checked:r,disabled:!s,onChange:()=>d({visualizer:{isEnabled:!r}})})),s&&("cdg"===l||n)&&a.createElement(a.Fragment,null,a.createElement("div",{className:ne.presetContainer},a.createElement("div",{className:ne.presetButtons},a.createElement(E,{onClick:()=>d({visualizer:{prevPreset:!0}}),"aria-label":"Previous preset","aria-controls":"visualizer-preset-name"},a.createElement(h.A,{icon:"CHEVRON_LEFT"})),a.createElement(E,{onClick:()=>d({visualizer:{randomPreset:!0}}),"aria-label":"Random preset","aria-controls":"visualizer-preset-name"},a.createElement(h.A,{icon:"DICE"})),a.createElement(E,{onClick:()=>d({visualizer:{nextPreset:!0}}),"aria-label":"Next preset","aria-controls":"visualizer-preset-name"},a.createElement(h.A,{icon:"CHEVRON_RIGHT"}))),a.createElement("p",{id:"visualizer-preset-name",className:ne.presetName,"aria-live":"polite",translate:"no"},c)),a.createElement("div",{className:ne.field},a.createElement("label",{id:"label-visualizer-sensitivity"},"Sensitivity"),a.createElement(z,{min:0,max:2,step:.01,value:i,onChange:e=>d({visualizer:{sensitivity:e}}),className:ne.slider,"aria-labelledby":"label-visualizer-sensitivity"}))),s&&"cdg"!==l&&!n&&a.createElement("p",{className:ne.unsupported},"Not available for this media type"),!s&&a.createElement("p",{className:ne.unsupported},"WebGL not supported"))),a.createElement("div",{className:(0,p.A)(ne.section,ne.lyrics)},a.createElement("fieldset",null,a.createElement("legend",null,a.createElement("label",null,"Lyrics")),"cdg"===l&&a.createElement("div",{className:ne.field},a.createElement("label",{id:"label-lyrics-size"},"Size"),a.createElement(z,{min:.4,max:.9,step:.01,value:t,onChange:e=>{d({cdgSize:e})},className:ne.slider,"aria-labelledby":"label-lyrics-size"})),("cdg"===l||n)&&a.createElement("div",{className:ne.field},a.createElement("label",{id:"label-lyrics-background"},"Background"),a.createElement(z,{min:0,max:1,step:.01,value:"cdg"===l?e:o,onChange:e=>{""!==l&&d({[l+"Alpha"]:e})},className:ne.slider,"aria-labelledby":"label-lyrics-background"})),"cdg"!==l&&!n&&a.createElement("p",{className:ne.unsupported},"No options available"))))),re="s6dMfvg4cHkpBCZwMxlM",se="utieeUffOQOs5Tb422mr",le="pRlD2sOdoJdRfrjBCylf",oe="ffq0SD5gzioIYEcgKgLY",ie="pjBKslXw1U349A1rnhe0",ce="tQEHmnxGjJM781oxemUN",de="fIuT4teYAIcl4oLOLEzJ",me="HZ7zG9VjL9eCkdQDZGIM",ue=()=>{if(O.A.isEnabled){const e=document.getElementById("player-fs-container");O.A.request(e)}},pe=()=>{const e=(0,s.c)(53),[t,n]=(0,a.useState)(!1),l=(0,r.zy)();let o;e[0]!==l.pathname?(o=l.pathname.replace(/\/$/,"").endsWith("/player"),e[0]=l.pathname,e[1]=o):o=e[1];const i=o,c=(0,d.G)(he),m=(0,d.G)(ge),u=(0,d.G)(Ee),h=(0,d.j)();let g;e[2]!==h?(g=e=>h((0,k.ag)(e)),e[2]=h,e[3]=g):g=e[3];const f=g;let v;e[4]!==h?(v=()=>h((0,k.wr)()),e[4]=h,e[5]=v):v=e[5];const y=v;let b;e[6]!==h?(b=()=>h((0,k.cd)()),e[6]=h,e[7]=b):b=e[7];const C=b;let w;e[8]!==h?(w=()=>h((0,k.Lx)()),e[8]=h,e[9]=w):w=e[9];const A=w;let S;e[10]!==h?(S=e=>h((0,k.MP)(e)),e[10]=h,e[11]=S):S=e[11];const N=S;let _;e[12]!==t?(_=()=>{n(!t)},e[12]=t,e[13]=_):_=e[13];const I=_;if(!u.isPlayerPresent){let t;return e[14]!==c||e[15]!==m?(t=c&&m&&O.A.isEnabled?a.createElement(j,null):null,e[14]=c,e[15]=m,e[16]=t):t=e[16],t}const R=u.isPlaying?ie:oe;let P;e[17]!==R?(P=(0,p.A)(se,R),e[17]=R,e[18]=P):P=e[18];const L=u.isPlaying?"PAUSE":"PLAY",T=u.isPlaying?y:C,M=u.isPlaying?"Pause":"Play";let V,x,z,H,U,D,G,F,B;return e[19]!==T||e[20]!==M||e[21]!==P||e[22]!==L?(V=a.createElement(E,{animateClassName:le,className:P,icon:L,onClick:T,"aria-label":M}),e[19]=T,e[20]=M,e[21]=P,e[22]=L,e[23]=V):V=e[23],e[24]===Symbol.for("react.memo_cache_sentinel")?(x=(0,p.A)(se,ce),e[24]=x):x=e[24],e[25]!==A?(z=a.createElement(E,{animateClassName:le,className:x,icon:"PLAY_NEXT",onClick:A,"aria-label":"Play Next"}),e[25]=A,e[26]=z):z=e[26],e[27]!==N||e[28]!==u.volume?(H=a.createElement(q,{volume:u.volume,onVolumeChange:N}),e[27]=N,e[28]=u.volume,e[29]=H):H=e[29],e[30]===Symbol.for("react.memo_cache_sentinel")?(U=(0,p.A)(se,de),e[30]=U):U=e[30],e[31]!==I?(D=a.createElement(E,{className:U,icon:"TUNE",onClick:I,size:48,"aria-label":"Display Options"}),e[31]=I,e[32]=D):D=e[32],e[33]!==i?(G=i&&O.A.isEnabled&&a.createElement(E,{className:(0,p.A)(se,me),icon:"FULLSCREEN",onClick:ue,"aria-label":"Enter Fullscreen"}),e[33]=i,e[34]=G):G=e[34],e[35]!==f||e[36]!==t||e[37]!==u.cdgAlpha||e[38]!==u.cdgSize||e[39]!==u.isVideoKeyingEnabled||e[40]!==u.isWebGLSupported||e[41]!==u.mediaType||e[42]!==u.mp4Alpha||e[43]!==u.visualizer||e[44]!==I?(F=t&&a.createElement(ae,{cdgAlpha:u.cdgAlpha,cdgSize:u.cdgSize,isVideoKeyingEnabled:u.isVideoKeyingEnabled,isVisualizerEnabled:u.visualizer.isEnabled,isWebGLSupported:u.isWebGLSupported,mediaType:u.mediaType,mp4Alpha:u.mp4Alpha,onClose:I,onRequestOptions:f,sensitivity:u.visualizer.sensitivity,visualizerPresetName:u.visualizer.presetName}),e[35]=f,e[36]=t,e[37]=u.cdgAlpha,e[38]=u.cdgSize,e[39]=u.isVideoKeyingEnabled,e[40]=u.isWebGLSupported,e[41]=u.mediaType,e[42]=u.mp4Alpha,e[43]=u.visualizer,e[44]=I,e[45]=F):F=e[45],e[46]!==V||e[47]!==z||e[48]!==H||e[49]!==D||e[50]!==G||e[51]!==F?(B=a.createElement("div",{className:re},V,z,H,D,G,F),e[46]=V,e[47]=z,e[48]=H,e[49]=D,e[50]=G,e[51]=F,e[52]=B):B=e[52],B};function he(e){return e.user.isAdmin}function ge(e){return null!==e.user.roomId}function Ee(e){return e.status}const fe="R0tWhGzOMnxRvplqamqt",ve="WxqoYmzzeIRmqDepbVLR",ye="iL_22Dl4fbuLsQo42o2o",be="rMNneKuTapuKwyse_AMl";class Ce extends a.Component{state={isCanceling:!1,isVisible:!1};handleCancelClick=()=>{this.props.isActive&&!this.state.isCanceling?(this.setState({isCanceling:!0}),this.props.onCancel()):this.setState({isVisible:!1})};componentDidUpdate(e){this.props.isActive&&!e.isActive?this.setState({isVisible:!0,isCanceling:!1}):this.state.isCanceling&&this.props.text!==e.text&&this.setState({isCanceling:!1})}render(){const{state:e,props:t}=this;return e.isVisible?a.createElement("div",{className:fe,style:{backgroundSize:t.pct+"% 100%"}},a.createElement("p",{className:ve},e.isCanceling?"Stopping...":t.text),a.createElement(E,{className:t.isActive?ye:be,icon:"CLEAR",onClick:this.handleCancelClick,size:40})):null}}function we(e){return function(e){return e.toISOString().substring(0,10)}(e)+" "+function(e){let t=e.getHours(),n=e.getMinutes();const a=t>11?"p":"a";return t>12?t-=12:0===t&&(t="12"),n<10&&(n="0"+n),t+":"+n+a}(e)}function Ae(e){const t=e%60;return`${Math.floor(e/60)}:${t<10?"0"+t:t}`}function Se(e,t=!1){if(e>=60&&t)return Math.round(e/60)+"m";const n=Math.floor(e/60),a=e%60;return n?`${n}m ${a}s`:`${a}s`}const Ne="qdbIg3xgUn4KEomWXd7E",_e="PhYxOVpDCwPMJWw0BE6k",Ie="C9WuYntlaEVvxRaewY7r",Re="pXcSEQ5RRGogLr2WCFum",Pe="ZYRIFRvELzaH67PRlPlp",Le=e=>{const t=(0,s.c)(13);if(e.isUpNow){let e,n;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,p.A)(Ne,Ie),t[0]=e):e=t[0],t[1]===Symbol.for("react.memo_cache_sentinel")?(n=a.createElement("div",{className:e},a.createElement("p",{className:Pe},"You’re up"," ",a.createElement("strong",null,"now"))),t[1]=n):n=t[1],n}if(e.isUpNext){let n,r,s,l;return t[2]===Symbol.for("react.memo_cache_sentinel")?(n=(0,p.A)(Ne,_e),t[2]=n):n=t[2],t[3]===Symbol.for("react.memo_cache_sentinel")?(r=a.createElement("strong",null,"next"),t[3]=r):r=t[3],t[4]!==e.wait?(s=e.wait?` in ${Se(e.wait,!0)}`:"",t[4]=e.wait,t[5]=s):s=t[5],t[6]!==s?(l=a.createElement("div",{className:n},a.createElement("p",{className:Pe},"You’re up"," ",r,s)),t[6]=s,t[7]=l):l=t[7],l}if(e.wait){let n,r,s;return t[8]===Symbol.for("react.memo_cache_sentinel")?(n=(0,p.A)(Ne,Re),t[8]=n):n=t[8],t[9]!==e.wait?(r=Se(e.wait,!0),t[9]=e.wait,t[10]=r):r=t[10],t[11]!==r?(s=a.createElement("div",{className:n},a.createElement("p",{className:Pe},"You’re up in"," ",r)),t[11]=r,t[12]=s):s=t[12],s}return null},Oe="vreYukSnqUrGi25wejn4",ke=e=>e.status.queueId,Te=e=>e.user.userId,Me=(0,f.Mz)([y.A,ke,Te,C],(e,t,n,a)=>{for(let r=e.result.indexOf(t)+1;r<e.result.length;r++)if(e.entities[e.result[r]].userId===n)return a[e.result[r]]}),Ve=(0,f.Mz)([y.A,ke,e=>e.status.isAtQueueEnd,Te],(e,t,n,a)=>{const{result:r,entities:s}=e,l=r.indexOf(t),o=s[t];return{isUpNext:!!r[l+1]&&s[r[l+1]].userId===a,isUpNow:!!o&&(!n&&o.userId===a)}}),xe=a.forwardRef((e,t)=>{const n=(0,s.c)(27),l=(0,d.G)(He),o=(0,d.G)(Ue),i=(0,d.G)(De),c=(0,d.G)(Ge),m=(0,d.G)(qe),{isUpNext:u,isUpNow:h}=(0,d.G)(Ve),g=(0,d.G)(Me),E=(0,r.zy)();let f;n[0]!==E.pathname?(f=E.pathname.replace(/\/$/,"").endsWith("/player"),n[0]=E.pathname,n[1]=f):f=n[1];const y=f,b=(0,d.j)();let C;n[2]!==b?(C=()=>b((0,v.fm)()),n[2]=b,n[3]=C):C=n[3];const w=C;let A,S,N,_,I,R;return n[4]===Symbol.for("react.memo_cache_sentinel")?(A=(0,p.A)(Oe,"bg-blur"),n[4]=A):A=n[4],n[5]!==y||n[6]!==o||n[7]!==u||n[8]!==h||n[9]!==g?(S=!y&&o&&a.createElement(Le,{isUpNext:u,isUpNow:h,wait:g}),n[5]=y,n[6]=o,n[7]=u,n[8]=h,n[9]=g,n[10]=S):S=n[10],n[11]!==l||n[12]!==h?(N=(h||l)&&a.createElement(pe,null),n[11]=l,n[12]=h,n[13]=N):N=n[13],n[14]!==w||n[15]!==l||n[16]!==y||n[17]!==i||n[18]!==m||n[19]!==c?(_=l&&!y&&a.createElement(Ce,{isActive:i,onCancel:w,pct:m,text:c}),n[14]=w,n[15]=l,n[16]=y,n[17]=i,n[18]=m,n[19]=c,n[20]=_):_=n[20],n[21]===Symbol.for("react.memo_cache_sentinel")?(I=a.createElement(r.BV,null,a.createElement(r.qh,{path:"/library",element:a.createElement(P,null)})),n[21]=I):I=n[21],n[22]!==t||n[23]!==S||n[24]!==N||n[25]!==_?(R=a.createElement("div",{className:A,ref:t},S,N,_,I),n[22]=t,n[23]=S,n[24]=N,n[25]=_,n[26]=R):R=n[26],R});xe.displayName="Header";const ze=xe;function He(e){return e.user.isAdmin}function Ue(e){return e.status.isPlayerPresent}function De(e){return e.prefs.isScanning}function Ge(e){return e.prefs.scannerText}function qe(e){return e.prefs.scannerPct}const Fe="sjMaG58osNAeqXFe4zpO",Be="KFIi1hoqiTVulFtwCOgg",je="bx9kUlhkDMmCKpxez9Kn",We=a.forwardRef((e,t)=>{const n=(0,s.c)(6);let l,o,i,c,d;return n[0]===Symbol.for("react.memo_cache_sentinel")?(l=(0,p.A)(Fe,"bg-blur"),n[0]=l):l=n[0],n[1]===Symbol.for("react.memo_cache_sentinel")?(o=a.createElement(r.k2,{to:"/library",replace:!0,className:Qe},Je),i=a.createElement(r.k2,{to:"/queue",replace:!0,className:Ke},Ze),c=a.createElement(r.k2,{to:"/account",replace:!0,className:Xe},$e),n[1]=o,n[2]=i,n[3]=c):(o=n[1],i=n[2],c=n[3]),n[4]!==t?(d=a.createElement("div",{className:l,ref:t},o,i,c),n[4]=t,n[5]=d):d=n[5],d});We.displayName="Navigation";const Ye=We;function Qe(e){const{isActive:t}=e;return(0,p.A)(t&&Be)}function Je(e){const{isActive:t}=e;return a.createElement(E,{icon:"NAV_LIBRARY",as:"span",animateClassName:je,cancelAnimation:!t})}function Ke(e){const{isActive:t}=e;return(0,p.A)(t&&Be)}function Ze(e){const{isActive:t}=e;return a.createElement(E,{icon:"NAV_SUBSCRIPTIONS",as:"span",animateClassName:je,cancelAnimation:!t})}function Xe(e){const{isActive:t}=e;return(0,p.A)(t&&Be)}function $e(e){const{isActive:t}=e;return a.createElement(E,{icon:t?"NAV_ACCOUNT_ACTIVE":"NAV_ACCOUNT",as:"span",animateClassName:je,cancelAnimation:!t})}var et=n(89853);const tt="AOWDkEJZ7Uh6TMmJSmDN",nt="Gi_1FjbpZU1FcRC85lBE",at="k8N_J395xr2bblBgwvim",rt="TSJBvSrnl7BotohIdqrj",st=()=>{const e=(0,s.c)(38),{isLoading:t,isVisible:n,songId:r,media:l}=(0,d.G)(lt),o=(0,d.j)();let i;e[0]!==o?(i=()=>o((0,et.ks)()),e[0]=o,e[1]=i):i=e[1];const c=i;let m;e[2]!==o||e[3]!==r?(m=e=>o((0,et.Zi)({songId:r,mediaId:e,isPreferred:!0})),e[2]=o,e[3]=r,e[4]=m):m=e[4];const u=m;let p;e[5]!==o||e[6]!==r?(p=e=>o((0,et.Zi)({songId:r,mediaId:e,isPreferred:!1})),e[5]=o,e[6]=r,e[7]=p):p=e[7];const h=p;let g;if(e[8]!==u||e[9]!==h||e[10]!==l.entities||e[11]!==l.result){let t;e[13]!==u||e[14]!==h||e[15]!==l.entities?(t=e=>{const t=l.entities[e],n=!!t.isPreferred;return a.createElement("div",{key:t.mediaId,className:at},t.path+(0===t.path.indexOf("/")?"/":"\\")+t.relPath,a.createElement("br",null),a.createElement("span",{className:rt},"Duration: "),Ae(t.duration),a.createElement("br",null),a.createElement("span",{className:rt},"Media ID: "),e,a.createElement("br",null),a.createElement("span",{className:rt},"Preferred: "),n&&a.createElement("span",null,a.createElement("strong",null,"Yes")," ",a.createElement("a",{onClick:()=>h(e)},"(Unset)")),!n&&a.createElement("span",null,"No ",a.createElement("a",{onClick:()=>u(e)},"(Set)")))},e[13]=u,e[14]=h,e[15]=l.entities,e[16]=t):t=e[16],g=l.result.map(t),e[8]=u,e[9]=h,e[10]=l.entities,e[11]=l.result,e[12]=g}else g=e[12];const f=g;let v,y,b;e[17]===Symbol.for("react.memo_cache_sentinel")?(v=a.createElement("span",{className:rt},"Song ID: "),e[17]=v):v=e[17],e[18]===Symbol.for("react.memo_cache_sentinel")?(y=a.createElement("br",null),b=a.createElement("span",{className:rt},"Media Files: "),e[18]=y,e[19]=b):(y=e[18],b=e[19]);const C=t?"?":l.result.length;let w,A,S,N,_,I;return e[20]!==r||e[21]!==C?(w=a.createElement("p",null,v,r,y,b,C),e[20]=r,e[21]=C,e[22]=w):w=e[22],e[23]!==t||e[24]!==f?(A=t?a.createElement("p",null,"Loading..."):f,e[23]=t,e[24]=f,e[25]=A):A=e[25],e[26]!==A?(S=a.createElement("div",{className:nt},A),e[26]=A,e[27]=S):S=e[27],e[28]!==c?(N=a.createElement("div",null,a.createElement(E,{variant:"primary",onClick:c},"Done")),e[28]=c,e[29]=N):N=e[29],e[30]!==S||e[31]!==N||e[32]!==w?(_=a.createElement("div",{className:tt},w,S,N),e[30]=S,e[31]=N,e[32]=w,e[33]=_):_=e[33],e[34]!==c||e[35]!==n||e[36]!==_?(I=a.createElement(X,{visible:n,onClose:c,title:"Song Info"},_),e[34]=c,e[35]=n,e[36]=_,e[37]=I):I=e[37],I};function lt(e){return e.songInfo}var ot=n(77759);const it="MhLrBfYw2bVvon36GHQg",ct="MRwxEsiCu74aMC4fJ2yn",dt="XrgY7jUteM7yAiFgHV3G",mt="DWgmgDjZ7evrSUQVOufA",ut="opBGPXUVYOwhN4fsI5_5",pt=e=>{const t=(0,s.c)(12),[n,r]=(0,a.useState)(ht);let l,o,i,c,d,m,u;return t[0]===Symbol.for("react.memo_cache_sentinel")?(l=()=>{document.fonts&&document.fonts.load("1em Beon").then(()=>(r(!0),!0)).catch(()=>(r(!0),!1))},o=[],t[0]=l,t[1]=o):(l=t[0],o=t[1]),(0,a.useEffect)(l,o),t[2]!==e.className?(i=(0,p.A)(it,e.className),t[2]=e.className,t[3]=i):i=t[3],t[4]!==n?(c=(0,p.A)(dt,{[mt]:n}),t[4]=n,t[5]=c):c=t[5],t[6]===Symbol.for("react.memo_cache_sentinel")?(d=a.createElement("span",{className:ut},"l"),t[6]=d):d=t[6],t[7]!==c?(m=a.createElement("span",{className:ct,"aria-hidden":"true"},"Karaoke",a.createElement("span",{className:c},"Eterna",d)),t[7]=c,t[8]=m):m=t[8],t[9]!==i||t[10]!==m?(u=a.createElement("div",{className:i,role:"img","aria-label":"Karaoke Eternal"},m),t[9]=i,t[10]=m,t[11]=u):u=t[11],u};function ht(){return"undefined"!=typeof document&&!document.fonts}var gt=n(58202),Et=n.n(gt);const ft="kMVEh9LeEn4g4mp_4CQN",vt="YA6i4Cl4kAWWDVU3e1xA",yt="s4sM5iEgPiWiNqVuWXXy",bt="urwdlhf5zLiQCnkW1lW9",Ct=e=>{const t=(0,s.c)(24),{user:n,onSelect:r}=e,[l,o]=(0,a.useState)(!0),[i,c]=(0,a.useState)(n&&null!==n.userId?`${document.baseURI}api/user/${n.userId}/image?v=${n.dateUpdated}`:null);let d,m,u;t[0]!==i?(d=()=>()=>{i&&URL.revokeObjectURL(i)},m=[i],t[0]=i,t[1]=d,t[2]=m):(d=t[1],m=t[2]),(0,a.useEffect)(d,m),t[3]===Symbol.for("react.memo_cache_sentinel")?(u=()=>{o(!1)},t[3]=u):u=t[3];const p=u;let g;t[4]===Symbol.for("react.memo_cache_sentinel")?(g=()=>{c(null),o(!1)},t[4]=g):g=t[4];const f=g;let v;t[5]!==r?(v=()=>{c(null),r(null)},t[5]=r,t[6]=v):v=t[6];const y=v;let b;t[7]!==r?(b=e=>{const t=e.target.files?.[0];t&&Et()(t,e=>{if(e instanceof Event)return void alert("The image could not be loaded.");Et().scale(e,{canvas:!0,maxWidth:400,maxHeight:300,crop:!0,downsamplingRatio:.5}).toBlob(e=>{e&&(c(URL.createObjectURL(e)),r(e))},"image/jpeg")},{canvas:!0,aspectRatio:1.3333333333333333,orientation:!0})},t[7]=r,t[8]=b):b=t[8];const C=b;let w,A,S,N,_;return t[9]!==i?(w=!i&&a.createElement(h.A,{icon:"PHOTO_ADD",size:48,className:bt}),t[9]=i,t[10]=w):w=t[10],t[11]!==i?(A=i&&a.createElement("img",{src:i,width:96,height:72,onLoad:p,onError:f,alt:"User Profile"}),t[11]=i,t[12]=A):A=t[12],t[13]!==y||t[14]!==i||t[15]!==l?(S=i&&!l&&a.createElement(E,{className:yt,icon:"CLEAR",onClick:y,size:32}),t[13]=y,t[14]=i,t[15]=l,t[16]=S):S=t[16],t[17]!==C?(N=a.createElement("input",{type:"file",accept:"image/*",onChange:C,className:vt,ref:At}),t[17]=C,t[18]=N):N=t[18],t[19]!==N||t[20]!==w||t[21]!==A||t[22]!==S?(_=a.createElement("div",{className:ft},w,A,S,N),t[19]=N,t[20]=w,t[21]=A,t[22]=S,t[23]=_):_=t[23],_};function wt(e){e.stopPropagation()}function At(e){e&&e.addEventListener("cancel",wt)}const St="UJP7G5dKPXhMYPVm9lGC",Nt="MRv8af4NPh12SLYbjwuA",_t=e=>{const t=(0,s.c)(46),{autoFocus:n,children:r,onDirtyChange:l,onSubmit:o,showRole:i,showUsername:c,showPassword:d,user:m}=e,u=void 0===c||c,p=void 0===d||d,h=(0,a.useRef)(null),g=(0,a.useRef)(null),E=(0,a.useRef)(null),f=(0,a.useRef)(null),v=(0,a.useRef)(null),[y,b]=(0,a.useState)(m?.dateUpdated),C=!m||null===m.userId;let w;t[0]!==C?(w={isDirty:!1,isChangingPassword:C,userImage:void 0},t[0]=C,t[1]=w):w=t[1];const[A,S]=(0,a.useState)(w),N=(0,a.useRef)(A.isDirty);let _,I,R;m&&m.dateUpdated!==y&&(b(m.dateUpdated),S(It)),t[2]!==l||t[3]!==A.isDirty?(_=()=>{l&&N.current!==A.isDirty&&l(A.isDirty),N.current=A.isDirty},I=[A.isDirty,l],t[2]=l,t[3]=A.isDirty,t[4]=_,t[5]=I):(_=t[4],I=t[5]),(0,a.useEffect)(_,I),t[6]!==m?(R=()=>{m&&null!==m.userId&&S(e=>({...e,isDirty:!!h.current?.value||!!g.current?.value||f.current?.value!==m.name||v.current&&v.current.value!==(m.isAdmin?"1":"0"),isChangingPassword:!!g.current?.value}))},t[6]=m,t[7]=R):R=t[7];const P=R;let L;t[8]===Symbol.for("react.memo_cache_sentinel")?(L=e=>{S(t=>({...t,userImage:e,isDirty:!0}))},t[8]=L):L=t[8];const O=L;let k;t[9]!==o||t[10]!==A.isChangingPassword||t[11]!==A.userImage?(k=e=>{e.preventDefault();const t=new FormData;f.current?.value.trim()&&t.append("name",f.current.value.trim()),h.current?.value.trim()&&t.append("username",h.current.value.trim()),A.isChangingPassword&&(t.append("newPassword",g.current?.value||""),t.append("newPasswordConfirm",E.current?.value||"")),void 0!==A.userImage&&t.append("image",A.userImage),v.current&&t.append("role",v.current.value),o(t)},t[9]=o,t[10]=A.isChangingPassword,t[11]=A.userImage,t[12]=k):k=t[12];const T=k,M=m?.dateUpdated;let V,x,z,H;t[13]!==n||t[14]!==u||t[15]!==P||t[16]!==m?(V=u&&a.createElement("input",{type:"email",autoComplete:"off",autoFocus:n,onChange:P,placeholder:m&&null!==m.userId?"change username (optional)":"username or email",ref:e=>{e&&(h.current=e),n&&e?.setAttribute("autofocus","true")}}),t[13]=n,t[14]=u,t[15]=P,t[16]=m,t[17]=V):V=t[17],t[18]!==p||t[19]!==P||t[20]!==m?(x=p&&a.createElement("input",{type:"password",autoComplete:"new-password",onChange:P,placeholder:m&&null!==m.userId?"change password (optional)":"password",ref:g}),t[18]=p,t[19]=P,t[20]=m,t[21]=x):x=t[21],t[22]!==A.isChangingPassword||t[23]!==m?(z=A.isChangingPassword&&a.createElement("input",{type:"password",autoComplete:"new-password",placeholder:m&&null!==m.userId?"new password confirm":"confirm password",ref:E}),t[22]=A.isChangingPassword,t[23]=m,t[24]=z):z=t[24],t[25]!==m?(H=a.createElement(Ct,{user:m,onSelect:O}),t[25]=m,t[26]=H):H=t[26];const U=m?.name??"";let D,G,q,F;return t[27]!==U||t[28]!==P?(D=a.createElement("input",{type:"text",defaultValue:U,onChange:P,placeholder:"display name",ref:f}),t[27]=U,t[28]=P,t[29]=D):D=t[29],t[30]!==H||t[31]!==D?(G=a.createElement("div",{className:Nt},H,D),t[30]=H,t[31]=D,t[32]=G):G=t[32],t[33]!==i||t[34]!==P||t[35]!==m?.role?(q=i&&a.createElement("select",{defaultValue:m?.role,onChange:P,ref:v},a.createElement("option",{key:"choose",value:"",disabled:!0},"select role..."),"guest"===m?.role&&a.createElement("option",{key:"guest",value:"guest"},"Guest"),a.createElement("option",{key:"standard",value:"standard"},"Standard"),a.createElement("option",{key:"admin",value:"admin"},"Administrator")),t[33]=i,t[34]=P,t[35]=m?.role,t[36]=q):q=t[36],t[37]!==r||t[38]!==T||t[39]!==M||t[40]!==V||t[41]!==x||t[42]!==z||t[43]!==G||t[44]!==q?(F=a.createElement("form",{className:St,key:M,noValidate:!0,onSubmit:T},V,x,z,G,q,r),t[37]=r,t[38]=T,t[39]=M,t[40]=V,t[41]=x,t[42]=z,t[43]=G,t[44]=q,t[45]=F):F=t[45],F};function It(e){return{...e,isDirty:!1}}const Rt="IwyJhXcw4stbQluvU1RS",Pt="LBGExauA2_9eEf6X1NAw",Lt=()=>{const e=(0,s.c)(13),t=(0,d.G)(Ot),n=(0,d.j)();let r;e[0]!==n?(r=e=>{n((0,ot._m)(e))},e[0]=n,e[1]=r):r=e[1];const l=r,o=Math.max(340,.66*t.contentWidth);let i,c,m,u,p,h,g;return e[2]!==o?(i={maxWidth:o},e[2]=o,e[3]=i):i=e[3],e[4]===Symbol.for("react.memo_cache_sentinel")?(c=a.createElement(pt,{className:Pt}),m=a.createElement("h1",null,"Welcome"),e[4]=c,e[5]=m):(c=e[4],m=e[5]),e[6]===Symbol.for("react.memo_cache_sentinel")?(u=a.createElement("p",null,"Create your"," ",a.createElement("b",null,"admin")," ","account to get started. All data is locally stored and never shared."),e[6]=u):u=e[6],e[7]===Symbol.for("react.memo_cache_sentinel")?(p=a.createElement(E,{variant:"primary",type:"submit"},"Create Account"),e[7]=p):p=e[7],e[8]!==l?(h=a.createElement(_t,{onSubmit:l,autoFocus:!0},p),e[8]=l,e[9]=h):h=e[9],e[10]!==i||e[11]!==h?(g=a.createElement("div",{className:Rt,style:i},c,m,u,h),e[10]=i,e[11]=h,e[12]=g):g=e[12],g};function Ot(e){return e.ui}var kt=n(37655),Tt=n(15452),Mt=n(77170),Vt=n(42730);const xt=new Mt.A(""),zt=(0,Tt.zD)(Vt.J_,async()=>await xt.get("users")),Ht=(0,Tt.zD)(Vt.U7,async(e,t)=>{await xt.post("user",{body:e}),t.dispatch(zt())}),Ut=(0,Tt.zD)(Vt.v3,async({userId:e,data:t},n)=>{await xt.put(`user/${e}`,{body:t}),n.dispatch(zt())}),Dt=(0,Tt.zD)(Vt.iM,async(e,t)=>{await xt.delete(`user/${e}`),t.dispatch(zt())}),Gt=(0,Tt.VP)(Vt.SX),qt=(0,Tt.VP)(Vt.Y2),Ft=(0,Tt.VP)(Vt.gD),Bt=(0,Tt.VP)(Vt.gn),jt=(0,Tt.vy)({result:[],entities:{},filterOnline:!0,filterRoomId:null,isEditorOpen:!1},e=>{e.addCase(zt.fulfilled,(e,{payload:t})=>({...e,...t})).addCase(Ht.fulfilled,e=>{e.isEditorOpen=!1}).addCase(Ut.fulfilled,e=>{e.isEditorOpen=!1}).addCase(Dt.fulfilled,e=>{e.isEditorOpen=!1}).addCase(Gt,e=>{e.isEditorOpen=!0}).addCase(qt,e=>{e.isEditorOpen=!1}).addCase(Ft,(e,{payload:t})=>({...e,filterOnline:t,filterRoomId:null})).addCase(Bt,(e,{payload:t})=>({...e,filterOnline:!1,filterRoomId:t}))}),Wt=(0,Tt.VP)(Vt.fD),Yt="WUYY8MZhwwhVekAlX5_d",Qt="eP0BAX5ayTg1WGhcfd7y",Jt="OgJ5EnIwV5jp1GGDcabg",Kt=e=>{const t=(0,s.c)(16),{children:n,className:r,contentClassName:l,title:o,titleComponent:i}=e;let c,d,m,u,h,g;return t[0]!==r?(c=(0,p.A)(Yt,r),t[0]=r,t[1]=c):c=t[1],t[2]!==o?(d=a.createElement("h1",null,o),t[2]=o,t[3]=d):d=t[3],t[4]!==d||t[5]!==i?(m=a.createElement("div",{className:Qt},d,i),t[4]=d,t[5]=i,t[6]=m):m=t[6],t[7]!==l?(u=(0,p.A)(Jt,l),t[7]=l,t[8]=u):u=t[8],t[9]!==n||t[10]!==u?(h=a.createElement("div",{className:u},n),t[9]=n,t[10]=u,t[11]=h):h=t[11],t[12]!==c||t[13]!==m||t[14]!==h?(g=a.createElement("div",{className:c},m,h),t[12]=c,t[13]=m,t[14]=h,t[15]=g):g=t[15],g};const Zt="XIvZjD6Co9DyofyCj0Da",Xt="oPMyaF6eFojk2b8ZQKwH",$t="mFno0FFze3kHGDdbZDBB",en="NjmtwxMJxR179Hk2Pomb",tn="okfIUIOCzr40SucFJR9B",nn="J1Y6pDd6XtAUjqhW2qIF",an="ZKYWLeUdrki571OMgwqw",rn="zMurrtazRZl6yxeeInn2",sn="z6j4SZzTbavwii_DBoa2",ln=(new Date).getFullYear(),on=()=>{const e=(0,s.c)(14),[t,n]=(0,a.useState)(!1);let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=()=>n(cn),e[0]=r):r=e[0];const l=r;let o,i,c,d,m,u,g,f,v,y,b;return e[1]===Symbol.for("react.memo_cache_sentinel")?(o=a.createElement("a",{href:"https://www.karaoke-eternal.com",target:"_blank",rel:"noreferrer"},a.createElement(pt,{className:Xt})),e[1]=o):o=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(i=a.createElement("p",{className:$t},"©",`2019-${ln}`," ",a.createElement("a",{href:"https://www.radroot.com",target:"_blank",rel:"noreferrer"},"RadRoot LLC"),a.createElement("br",null),"v","2.0.2"),c=a.createElement("a",{className:en,onClick:l},"Changelog & Sponsors"),e[2]=i,e[3]=c):(i=e[2],c=e[3]),e[4]===Symbol.for("react.memo_cache_sentinel")?(d=a.createElement("p",null,c," ","|"," ",a.createElement("a",{href:"/licenses.txt",target:"_blank"},"Licenses")),e[4]=d):d=e[4],e[5]===Symbol.for("react.memo_cache_sentinel")?(m=a.createElement("div",{className:an},a.createElement("a",{href:"https://www.karaoke-eternal.com/repo",target:"_blank",rel:"noreferrer"},a.createElement(h.A,{icon:"GITHUB_REPO",size:16}),"GitHub")),u=(0,p.A)(an,rn),e[5]=m,e[6]=u):(m=e[5],u=e[6]),e[7]===Symbol.for("react.memo_cache_sentinel")?(g=a.createElement("div",{className:u},a.createElement("a",{href:"https://www.karaoke-eternal.com/repo",target:"_blank",rel:"noreferrer"},a.createElement(h.A,{icon:"GITHUB_STAR",size:16}),"Star")),f=(0,p.A)(an,sn),e[7]=g,e[8]=f):(g=e[7],f=e[8]),e[9]===Symbol.for("react.memo_cache_sentinel")?(v=a.createElement("div",{className:nn},m,g,a.createElement("div",{className:f},a.createElement("a",{href:"https://www.karaoke-eternal.com/sponsor",target:"_blank",rel:"noreferrer"},a.createElement(h.A,{icon:"GITHUB_SPONSOR",size:16}),"Sponsor"))),e[9]=v):v=e[9],e[10]!==t?(y=t&&a.createElement(X,{title:"Changelog & Sponsors",className:tn,onClose:l,scrollable:!0,buttons:a.createElement(E,{variant:"primary",onClick:l},"Done")},a.createElement("a",{href:"","aria-hidden":!0}),a.createElement("div",{dangerouslySetInnerHTML:{__html:'<h2 id="v202-2026-02-14">v2.0.2 (2026-02-14)</h2> <ul> <li><strong>(App)</strong> Star counts are now shown in the Queue view</li> <li><strong>(App)</strong> Fixed incorrect room password on sign-in (thanks <a href="https://github.com/omarcruzpantoja">@omarcruzpantoja</a>)</li> <li><strong>(App)</strong> Fixed potential duplicate rooms during initial setup (thanks <strong>mjmeans</strong>)</li> <li><strong>(Server)</strong> Now uses Node.js&#39;s built-in SQLite, improving performance and cross-arch compatibility</li> <li><strong>(Server)</strong> Now uses Node.js&#39;s built-in argon2 for password hashing; passwords will be migrated from bcrypt on sign-in</li> </ul> <h2 id="v201-2026-01-10">v2.0.1 (2026-01-10)</h2> <ul> <li>Obligatory bug fixes and performance improvements</li> </ul> <h2 id="v200-2025-12-26">v2.0.0 (2025-12-26)</h2> <p><strong>Sponsored by</strong>: <a href="https://github.com/candre23">candre23</a>, <a href="https://github.com/nellisdev">nellisdev</a>, <a href="https://github.com/astrobyte">astrobyte</a>, <a href="https://github.com/jfeldhamer">jfeldhamer</a>, <a href="https://github.com/cubandaddy">cubandaddy</a>, <a href="https://github.com/Backroads4Me">Backroads4Me</a> and other private sponsors. Thank you! If you have fun with it, please consider <a href="https://www.karaoke-eternal.com/sponsor">sponsoring</a>.</p> <h3 id="guest-accounts-and-qr-codes">Guest accounts and QR codes</h3> <p>Joining the party is now faster and easier. The player supports QR codes that link directly to a room, where singers can now (finally!) join as guests. Admins can also choose whether a room allows guests and/or new standard users, or only existing users.</p> <h3 id="videos--visualizer">Videos + visualizer</h3> <p>Visualizations are now supported with video files. By automatically detecting a video&#39;s background color and making it transparent, visualizer effects can be displayed behind the lyrics. This works best on videos with solid color backgrounds, and can be enabled by selecting &quot;Allow video background keying&quot; in the media folder&#39;s preferences.</p> <h3 id="improved-queue-management">Improved queue management</h3> <p>Enhancements to the queue include:</p> <ul> <li>The queue can be restarted from any previously played song, or the beginning of the current song</li> <li>All upcoming songs for a user can be removed at once by long-pressing the <em>Remove</em> or <em>Skip</em> buttons</li> <li>When a standard user or guest signs out, their upcoming songs are now automatically removed from the queue</li> </ul> <h3 id="metadata-parser-changes">Metadata parser changes</h3> <p>Previously, the metadata parser (which uses filenames or tags to determine artist names and song titles) could be customized via <code>_kes.v1.js</code> files which were essentially arbitrary JavaScript. They were run in a sandbox to limit their functionality, but that sandbox was deprecated, and the overall approach was complex.</p> <p>In v2, the parser instead uses <code>_kes.v2.json</code> files. These JSON files allow the same basic configuration, in addition to simple string replacement and &quot;templating&quot; of artist names and song titles. See the docs for more information. As always, the best approach is to properly name/tag media, but customizing the parser can help in specific cases.</p> <h3 id="other-features-and-fixes">Other features and fixes</h3> <ul> <li><strong>(Server)</strong> Zipped MP3+G media is now supported</li> <li><strong>(Server)</strong> Media folders can now be watched for changes, as well as manually scanned individually</li> <li><strong>(Server)</strong> Fixed an error when listing drives on Windows due to removal of <code>wmic</code> (thanks Microsoft! /s)</li> <li><strong>(Server)</strong> Usernames/emails are no longer case sensitive (thanks <strong>gazugafan</strong>)</li> <li><strong>(Library)</strong> Songs that have already been played in the current session appear greyed</li> <li><strong>(Library)</strong> Tapping a song that is already upcoming no longer queues it again</li> <li><strong>(Player)</strong> Fixed incorrect calculation of ReplayGain values (thanks <strong>laberning</strong>)</li> <li><strong>(General)</strong> Prevent auto-translation of some UI elements (thanks <strong>laberning</strong>)</li> </ul> <p>This release includes contributions from <a href="https://github.com/gazugafan">gazugafan</a>, <a href="https://github.com/gausie">gausie</a>, <a href="https://github.com/EffakT">EffakT</a> and <a href="https://github.com/laberning">laberning</a>, as well as testing by <strong>mjmeans</strong>. Thanks!</p> <h2 id="v100-2022-05-17">v1.0.0 (2022-05-17)</h2> <p>Sponsored by: <a href="https://github.com/consolecwby">consolecwby</a>, <a href="https://github.com/vze22jjw">vze22jjw</a>. Thank you! If you have fun with it, please consider <a href="https://www.karaoke-eternal.com/sponsor">sponsoring</a>.</p> <h3 id="new">New</h3> <ul> <li><strong>Name</strong>: Karaoke Forever is now Karaoke Eternal</li> <li><strong>(app)</strong> User management interface</li> <li><strong>(app)</strong> &quot;Make user&#39;s next&quot; button for upcoming songs</li> <li><strong>(app)</strong> &quot;Re-queue&quot; button for played songs</li> <li><strong>(app)</strong> Content-aware CD+Graphics backgrounds</li> <li><strong>(app)</strong> Media folders can be prioritized via drag-and-drop</li> <li><strong>(app)</strong> Added ~370 visualizer presets (now 472 total)</li> <li><strong>(app)</strong> Summary is shown following a media scan</li> <li><strong>(server)</strong> Custom URL path (subfolder) support (see <code>--urlPath</code> CLI option)</li> <li><strong>(server)</strong> Custom database file path support (see <code>--data</code> CLI option)</li> <li><strong>(server)</strong> Session key can be rotated on startup (see <code>--rotateKey</code> CLI option)</li> <li><strong>(server)</strong> All CLI options now have equivalent environment variables</li> </ul> <h3 id="changed">Changed</h3> <ul> <li><strong>(app)</strong> Next-up singer&#39;s place is now reserved and won&#39;t be pre-empted</li> <li><strong>(server)</strong> Uses one less process/helper</li> <li><strong>(server)</strong> Media scanner performance is greatly improved when adding media</li> <li><strong>(server)</strong> Improved client connection speed via library caching</li> <li><strong>(server)</strong> Media scanner process is restricted to read-only database access</li> <li><strong>(server)</strong> Fixed potential error when a non-admin user tries to remove one of their queued songs</li> <li><strong>(server)</strong> Fixed potential SQLITE_BUSY errors while scanning media</li> <li><strong>(server)</strong> Fixed error message when no artist/title delimiter in filename</li> <li><strong>(server)</strong> Idle client socket connections no longer bounce</li> </ul> <h2 id="v080-2020-07-03">v0.8.0 (2020-07-03)</h2> <h3 id="black-lives-matter"><a href="https://blacklivesmatter.com">Black Lives Matter.</a></h3> <h3 id="sponsors">Sponsors</h3> <p>Massive thanks to this release&#39;s sponsors: <a href="https://github.com/fulldecent">fulldecent</a>, <a href="https://github.com/vze22jjw">vze22jjw</a>. If you have fun with it, please consider <a href="https://www.karaoke-eternal.com/sponsor">sponsoring</a>.</p> <h3 id="new-1">New</h3> <ul> <li><strong>(app)</strong> <a href="http://www.karaoke-eternal.com/docs/#preferences-admin-only">ReplayGain support</a>. No more scrambling for the volume when a new song starts! With properly tagged media, the player can automatically minimize volume differences between songs.</li> <li><strong>(app)</strong> Rooms can now be password-protected</li> <li><strong>(player)</strong> CD+Graphics now have shadows, can be resized, and use less CPU</li> <li><strong>(player)</strong> <strong>(breaking)</strong> Web Audio API support is now required (only for browsers running the player)</li> <li><strong>(server)</strong> <strong>(breaking)</strong> Database will be migrated and no longer compatible with v0.7.x</li> </ul> <h3 id="changed-1">Changed</h3> <ul> <li><strong>(app)</strong> Reduced motion and improved accessibility of modals</li> <li><strong>(app)</strong> Fixed status not respected when creating a new room</li> <li><strong>(player)</strong> Visualizer sensitivity can now be set up to 200%</li> <li><strong>(player)</strong> Fixed media possibly not (pre)loading in Firefox</li> <li><strong>(server)</strong> Added minimum password length requirement (6) and removed limit</li> <li><strong>(server)</strong> Fixed incorrect queue potentially emitted after setting preferred media</li> <li><strong>(server)</strong> Improved filename parser and renamed config option <code>separator</code> to <code>delimiter</code></li> <li><strong>(server)</strong> Improved logging and made <code>3 (info)</code> the default log file level</li> </ul> <h2 id="v074-2019-12-30">v0.7.4 (2019-12-30)</h2> <ul> <li>Initial release on <a href="https://www.npmjs.com/package/karaoke-eternal">npm</a></li> <li><strong>(app)</strong> Improved sign in/first run form</li> <li><strong>(app)</strong> Added About panel with version and licenses</li> <li><strong>(app)</strong> General style improvements</li> <li><strong>(server)</strong> Improved field validation and error messages</li> <li><strong>(server)</strong> Songs/artists without known media are no longer removed automatically after scan</li> <li><strong>(server)</strong> Media in nonexistent paths are now removed after scan</li> <li><strong>(server)</strong> Replace dep <code>squel</code> with <code>sqlate</code></li> </ul> <h2 id="v073-2019-09-13">v0.7.3 (2019-09-13)</h2> <ul> <li>Initial public release :-D</li> </ul> '}})),e[10]=t,e[11]=y):y=e[11],e[12]!==y?(b=a.createElement(Kt,{title:"About",contentClassName:Zt},a.createElement(a.Fragment,null,o,i,d,v,y)),e[12]=y,e[13]=b):b=e[13],b};function cn(e){return!e}var dn=n(38180),mn=n(33054);const un="eWB988t3JuRQuM9e6O_N",pn="XaBoCyvdOpimp_jUKJiK",hn=()=>{const e=(0,s.c)(32),t=(0,d.j)(),n=(0,d.G)(gn);let r;e[0]!==n.userId?(r=e=>(0,mn.A)(e,n.userId),e[0]=n.userId,e[1]=r):r=e[1];const l=(0,d.G)(r),o=(0,a.useRef)(null),[i,c]=(0,a.useState)(!1);let m;e[2]!==t||e[3]!==l||e[4]!==n.isAdmin||e[5]!==n.isGuest?(m=()=>{if(!n.isAdmin){const e=l.length>0;let a="";if(n.isGuest&&e?a="Are you sure you want to sign out?\n\nYour upcoming songs will be removed from the queue, and as a guest, you won't be able to sign back into this account.":n.isGuest?a="Are you sure you want to sign out?\n\nAs a guest, you won't be able to sign back into this account.":e&&(a="Are you sure you want to sign out?\n\nYour upcoming songs will be removed from the queue."),a&&!confirm(a))return;e&&t((0,dn.Ai)({queueId:l}))}t((0,ot.aw)())},e[2]=t,e[3]=l,e[4]=n.isAdmin,e[5]=n.isGuest,e[6]=m):m=e[6];const u=m;let p;e[7]!==t||e[8]!==n.isGuest?(p=e=>{if(!n.isGuest){if(!o.current.value.trim())return alert("Please enter your current password to make changes."),void o.current.focus();e.append("password",o.current.value)}t((0,ot.z0)(e))},e[7]=t,e[8]=n.isGuest,e[9]=p):p=e[9];const h=p,g=n.isGuest?"guest":n.username;let f;e[10]!==g?(f=a.createElement("p",null,"Signed in as ",a.createElement("strong",null,g)),e[10]=g,e[11]=f):f=e[11];const v=!n.isGuest,y=!n.isGuest;let b,C,w,A,S,N;return e[12]!==i||e[13]!==n.isGuest?(b=i&&!n.isGuest&&a.createElement("input",{type:"password",autoComplete:"current-password",placeholder:"current password",ref:o}),e[12]=i,e[13]=n.isGuest,e[14]=b):b=e[14],e[15]!==i?(C=i&&a.createElement(E,{type:"submit",variant:"primary"},"Update Account"),e[15]=i,e[16]=C):C=e[16],e[17]!==u?(w=a.createElement(E,{onClick:u,variant:"default"},"Sign Out"),e[17]=u,e[18]=w):w=e[18],e[19]!==C||e[20]!==w?(A=a.createElement("div",{className:pn},C,w),e[19]=C,e[20]=w,e[21]=A):A=e[21],e[22]!==h||e[23]!==A||e[24]!==v||e[25]!==y||e[26]!==b||e[27]!==n?(S=a.createElement(_t,{user:n,onDirtyChange:c,onSubmit:h,showUsername:v,showPassword:y},b,A),e[22]=h,e[23]=A,e[24]=v,e[25]=y,e[26]=b,e[27]=n,e[28]=S):S=e[28],e[29]!==S||e[30]!==f?(N=a.createElement(Kt,{title:"My Account",contentClassName:un},a.createElement(a.Fragment,null,f,S)),e[29]=S,e[30]=f,e[31]=N):N=e[31],N};function gn(e){return e.user}var En=n(66248);const fn="Kyq1e8Js6YODEAIrpuiV",vn="vrRzBvLX1MqJZgM7p38z",yn="tVJZZisJHykY_Y7qwkKK",bn=e=>{const t=(0,s.c)(36),{className:n,children:r,contentClassName:l,headingComponent:o,iconClassName:i,initialExpanded:c}=e,d=void 0!==c&&c,[m,g]=(0,a.useState)(d),E=(0,a.useId)();let f;t[0]!==m?(f=()=>{g(!m)},t[0]=m,t[1]=f):f=t[1];const v=f,y=`accordion-header-${E}`,b=`accordion-panel-${E}`;let C,w;t[2]!==o.props.children||t[3]!==m||t[4]!==y||t[5]!==b?(C=a.createElement("button",{type:"button",id:y,"aria-controls":b,"aria-expanded":m},o.props.children),t[2]=o.props.children,t[3]=m,t[4]=y,t[5]=b,t[6]=C):C=t[6],t[7]!==o||t[8]!==C?(w=(0,a.cloneElement)(o,{children:C}),t[7]=o,t[8]=C,t[9]=w):w=t[9];const A=w;let S,N,_,I,R,P;t[10]!==n?(S=(0,p.A)(fn,n),t[10]=n,t[11]=S):S=t[11],t[12]!==m?(N=m&&{"data-expanded":""},t[12]=m,t[13]=N):N=t[13],t[14]===Symbol.for("react.memo_cache_sentinel")?(_=(0,p.A)(yn),t[14]=_):_=t[14],t[15]!==i?(I=(0,p.A)(vn,i),t[15]=i,t[16]=I):I=t[16],t[17]!==I?(R=a.createElement(h.A,{icon:"CHEVRON_RIGHT",className:I}),t[17]=I,t[18]=R):R=t[18],t[19]!==A||t[20]!==v||t[21]!==R?(P=a.createElement("div",{className:_,onClick:v},A,R),t[19]=A,t[20]=v,t[21]=R,t[22]=P):P=t[22];const L=`accordion-panel-${E}`,O=`accordion-header-${E}`;let k;t[23]!==l?(k=(0,p.A)(l),t[23]=l,t[24]=k):k=t[24];const T=!m;let M,V;return t[25]!==r||t[26]!==L||t[27]!==O||t[28]!==k||t[29]!==T?(M=a.createElement("section",{id:L,"aria-labelledby":O,className:k,hidden:T},r),t[25]=r,t[26]=L,t[27]=O,t[28]=k,t[29]=T,t[30]=M):M=t[30],t[31]!==P||t[32]!==M||t[33]!==S||t[34]!==N?(V=a.createElement("div",(0,u.A)({className:S},N),P,M),t[31]=P,t[32]=M,t[33]=S,t[34]=N,t[35]=V):V=t[35],V},Cn="zXRZqy8GypIyzzonhQDj",wn="nn35PIgJyM8hd_PfVG9P",An=e=>{const t=(0,s.c)(6);let n,r,l;return t[0]===Symbol.for("react.memo_cache_sentinel")?(n=a.createElement("div",null,a.createElement(h.A,{icon:"FOLDER",size:28})),t[0]=n):n=t[0],t[1]!==e.path?(r=a.createElement("div",{className:wn},e.path),t[1]=e.path,t[2]=r):r=t[2],t[3]!==e.onSelect||t[4]!==r?(l=a.createElement("div",{className:Cn,onClick:e.onSelect},n,r),t[3]=e.onSelect,t[4]=r,t[5]=l):l=t[5],l},Sn="Z1AkYsOvWFhZrcYR6W9z",Nn="PCD9_JwmkY6aoE1S6ZP_",_n="zuvIYSwYXKYBkknUSBt0",In="Er04pbLH9MbYq06HYgN2",Rn="PQDNPIs88caRIT2AXWfT",Pn=new Mt.A("prefs/path"),Ln=({onCancel:e,onChoose:t})=>{const n=(0,a.useRef)(null),[r,s]=(0,a.useState)({current:null,parent:null,children:[]}),l=async e=>{try{const t=await Pn.get(`/ls?dir=${encodeURIComponent(e)}`);s(t)}catch(e){alert(e)}};return(0,a.useEffect)(()=>{l(r.current??".")},[]),(0,a.useEffect)(()=>{n.current&&(n.current.scrollTop=0)},[]),a.createElement(X,{title:"Add Folder",className:Sn,onClose:e,scrollable:!0,buttons:a.createElement("div",{className:Rn},a.createElement(E,{onClick:e,variant:"default"},"Cancel"),a.createElement(E,{onClick:()=>{t(r.current,{})},variant:"primary"},"Add Folder"))},a.createElement("div",{className:Nn,translate:"no"},a.createElement("div",{className:_n},r.current||" "),a.createElement("div",{className:In,ref:n},!1!==r.parent&&a.createElement("strong",null,a.createElement(An,{path:"..",onSelect:()=>l(r.parent)})),r.children.map((e,t)=>a.createElement(An,{key:t,path:e.label,onSelect:()=>l(e.path)})))))},On="ATXORF88MX2KCM3GK6PD",kn="J_rtBBS98nuownep8wbe",Tn="YZaEmIfhPKE_g3gNZwso",Mn=e=>{const t=(0,s.c)(38),{onClose:n,onRemove:r,onUpdate:l,path:o}=e;let i;t[0]!==l||t[1]!==o.pathId?(i=e=>{l(o.pathId,e)},t[0]=l,t[1]=o.pathId,t[2]=i):i=t[2];const c=i;let d;t[3]!==r||t[4]!==o.pathId?(d=()=>r(o.pathId),t[3]=r,t[4]=o.pathId,t[5]=d):d=t[5];const m=d;let u,p,h;t[6]!==m?(u=a.createElement(E,{onClick:m,variant:"danger"},"Remove Folder"),t[6]=m,t[7]=u):u=t[7],t[8]!==n?(p=a.createElement(E,{onClick:n,variant:"primary"},"Done"),t[8]=n,t[9]=p):p=t[9],t[10]!==u||t[11]!==p?(h=a.createElement(a.Fragment,null,u,p),t[10]=u,t[11]=p,t[12]=h):h=t[12];const g=o?.path;let f,v;t[13]===Symbol.for("react.memo_cache_sentinel")?(f=a.createElement("br",null),v=a.createElement("span",{className:kn},"pathId: "),t[13]=f,t[14]=v):(f=t[13],v=t[14]);const y=o?.pathId;let b;t[15]!==g||t[16]!==y?(b=a.createElement("p",{className:On},g,f,v,y),t[15]=g,t[16]=y,t[17]=b):b=t[17];const C=o?.prefs?.isWatchingEnabled;let w,A;t[18]!==c?(w=e=>c({isWatchingEnabled:e.currentTarget.checked}),t[18]=c,t[19]=w):w=t[19],t[20]!==C||t[21]!==w?(A=a.createElement(te,{label:"Watch folder",defaultChecked:C,onChange:w}),t[20]=C,t[21]=w,t[22]=A):A=t[22];const S=o?.prefs?.isVideoKeyingEnabled;let N,_,I,R,P;return t[23]!==c?(N=e=>c({isVideoKeyingEnabled:e.currentTarget.checked}),t[23]=c,t[24]=N):N=t[24],t[25]!==S||t[26]!==N?(_=a.createElement(te,{label:"Allow video background keying",defaultChecked:S,onChange:N}),t[25]=S,t[26]=N,t[27]=_):_=t[27],t[28]!==A||t[29]!==_?(I=a.createElement("form",{className:Tn},A,_),t[28]=A,t[29]=_,t[30]=I):I=t[30],t[31]!==b||t[32]!==I?(R=a.createElement("div",null,b,I),t[31]=b,t[32]=I,t[33]=R):R=t[33],t[34]!==n||t[35]!==R||t[36]!==h?(P=a.createElement(X,{onClose:n,title:"Media Folder",buttons:h},R),t[34]=n,t[35]=R,t[36]=h,t[37]=P):P=t[37],P},Vn="vfEtFMD1PnnZpL7KJi5i",xn="reQxnTVFy0pmOJ_OxHEW",zn="cLbX8ACpwjrJHf1i33Kw",Hn="mFavmW0ojDDlX4oNvSlc",Un="vKWSaWmD75njSGInSqpQ",Dn=e=>{const t=(0,s.c)(13),{index:n,onInfo:r,onRefresh:l,path:o}=e;let i;t[0]!==r?(i=e=>r(parseInt(e.currentTarget.dataset.pathId)),t[0]=r,t[1]=i):i=t[1];const c=i;let d;t[2]!==l?(d=e=>l(parseInt(e.currentTarget.dataset.pathId)),t[2]=l,t[3]=d):d=t[3];const m=d,p=`path-${o.pathId}`;let g,f;return t[4]!==c||t[5]!==m||t[6]!==o.path||t[7]!==o.pathId?(g=e=>a.createElement("div",(0,u.A)({className:Vn,key:o.pathId,ref:e.innerRef,style:e.draggableProps.style},e.draggableProps),a.createElement("div",(0,u.A)({},e.dragHandleProps,{tabIndex:-1}),a.createElement(h.A,{icon:"DRAG_INDICATOR",className:zn})),a.createElement("div",{className:xn},o.path),a.createElement(E,{className:Hn,"data-path-id":o.pathId,icon:"REFRESH",onClick:m}),a.createElement(E,{className:Un,"data-path-id":o.pathId,icon:"INFO_OUTLINE",onClick:c})),t[4]=c,t[5]=m,t[6]=o.path,t[7]=o.pathId,t[8]=g):g=t[8],t[9]!==n||t[10]!==p||t[11]!==g?(f=a.createElement(En.sx,{draggableId:p,index:n},g),t[9]=n,t[10]=p,t[11]=g,t[12]=f):f=t[12],f},Gn={heading:"IkPiZ7oarPYasin3JcFC",content:"eYUqAJLLPnFSGQfPrwJp",btnContainer:"COsFBSxrE3VeJHh23G5V"},qn=new Mt.A("prefs/path"),Fn=()=>{const e=(0,s.c)(54),t=(0,d.G)(Bn),[n,r]=(0,a.useState)(!1),[l,o]=(0,a.useState)(null),[i,c]=(0,a.useState)(t.result);let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=()=>r(!1),e[0]=m):m=e[0];const p=m;let g;e[1]===Symbol.for("react.memo_cache_sentinel")?(g=()=>r(!0),e[1]=g):g=e[1];const f=g;let y;e[2]===Symbol.for("react.memo_cache_sentinel")?(y=()=>o(null),e[2]=y):y=e[2];const b=y,C=(0,d.j)();let w,A,S;e[3]!==t.result?(w=()=>{c(t.result)},e[3]=t.result,e[4]=w):w=e[4],e[5]!==t?(A=[t],e[5]=t,e[6]=A):A=e[6],(0,a.useEffect)(w,A),e[7]!==C||e[8]!==i?(S=e=>{if(!e.destination)return;const t=i.slice(),[n]=t.splice(e.source.index,1);t.splice(e.destination.index,0,n),c(t),C((0,v.Ah)(t))},e[7]=C,e[8]=i,e[9]=S):S=e[9];const N=S;let _;e[10]!==C?(_=(e,t)=>{qn.post(`/?dir=${encodeURIComponent(e)}`,{body:t}).then(e=>{C((0,v.gL)(e)),r(!1)}).catch(jn)},e[10]=C,e[11]=_):_=e[11];const I=_;let R;e[12]!==C||e[13]!==t.entities||e[14]!==i?(R=e=>{confirm(`Remove folder from library?\n\n${t.entities[e].path}`)&&(c(i.filter(t=>t!==e)),o(null),qn.delete(`/${e}`).then(e=>{C((0,v.gL)(e))}).catch(Wn))},e[12]=C,e[13]=t.entities,e[14]=i,e[15]=R):R=e[15];const P=R;let L;e[16]!==C?(L=(e,t)=>{C((0,v.yx)({pathId:e,data:t}))},e[16]=C,e[17]=L):L=e[17];const O=L;let k;e[18]!==t.entities?(k=e=>o(t.entities[e]),e[18]=t.entities,e[19]=k):k=e[19];const T=k;let M;e[20]!==C?(M=e=>C((0,v.PA)(e)),e[20]=C,e[21]=M):M=e[21];const V=M;let x;e[22]!==C?(x=()=>C((0,v.mN)()),e[22]=C,e[23]=x):x=e[23];const z=x;let H,U,D,G,q,F,B,j,W,Y;return e[24]===Symbol.for("react.memo_cache_sentinel")?(H=a.createElement("div",{className:Gn.heading},a.createElement(h.A,{icon:"FOLDER_MUSIC"}),a.createElement("div",{className:Gn.title},"Media Folders")),e[24]=H):H=e[24],e[25]!==t.result.length?(U=0===t.result.length&&a.createElement("p",{style:{marginTop:0}},"Add a media folder to get started."),e[25]=t.result.length,e[26]=U):U=e[26],e[27]!==T||e[28]!==V||e[29]!==t.entities||e[30]!==i?(D=a.createElement(En.gL,{droppableId:"droppable"},e=>a.createElement("div",(0,u.A)({ref:e.innerRef},e.droppableProps),i.map((e,n)=>a.createElement(Dn,{index:n,key:e,path:t.entities[e],onInfo:T,onRefresh:V})),e.placeholder)),e[27]=T,e[28]=V,e[29]=t.entities,e[30]=i,e[31]=D):D=e[31],e[32]!==N||e[33]!==D?(G=a.createElement(En.JY,{onDragEnd:N},D),e[32]=N,e[33]=D,e[34]=G):G=e[34],e[35]!==z||e[36]!==t.result.length?(q=t.result.length>0&&a.createElement(E,{onClick:z,variant:"default"},"Scan Folders"),e[35]=z,e[36]=t.result.length,e[37]=q):q=e[37],e[38]===Symbol.for("react.memo_cache_sentinel")?(F=a.createElement(E,{onClick:f,variant:"primary"},"Add Folder"),e[38]=F):F=e[38],e[39]!==q?(B=a.createElement("div",{className:Gn.btnContainer},q,F),e[39]=q,e[40]=B):B=e[40],e[41]!==I||e[42]!==n?(j=n&&a.createElement(Ln,{onCancel:p,onChoose:I}),e[41]=I,e[42]=n,e[43]=j):j=e[43],e[44]!==l||e[45]!==P||e[46]!==O?(W=!!l&&a.createElement(Mn,{onClose:b,onRemove:P,onUpdate:O,path:l}),e[44]=l,e[45]=P,e[46]=O,e[47]=W):W=e[47],e[48]!==U||e[49]!==G||e[50]!==B||e[51]!==j||e[52]!==W?(Y=a.createElement(bn,{headingComponent:H},a.createElement("div",{className:Gn.content},U,G,B,j,W)),e[48]=U,e[49]=G,e[50]=B,e[51]=j,e[52]=W,e[53]=Y):Y=e[53],Y};function Bn(e){return e.prefs.paths}function jn(e){alert(e)}function Wn(e){alert(e)}const Yn={heading:"iQsmu84S0UOMvskFslib",content:"EsTYWrxvRDwQ5bUKgop3"},Qn=()=>{const e=(0,s.c)(6),t=(0,d.G)(Jn),n=(0,d.j)();let r;e[0]!==n?(r=e=>{n((0,v.I8)({key:e.currentTarget.name,data:e.currentTarget.checked}))},e[0]=n,e[1]=r):r=e[1];const l=r;let o,i;return e[2]===Symbol.for("react.memo_cache_sentinel")?(o=a.createElement("div",{className:Yn.heading},a.createElement(h.A,{icon:"TELEVISION_PLAY",size:32,className:Yn.icon}),a.createElement("div",{className:Yn.title},"Player")),e[2]=o):o=e[2],e[3]!==t||e[4]!==l?(i=a.createElement(bn,{className:Yn.container,headingComponent:o},a.createElement("div",{className:Yn.content},a.createElement("label",null,a.createElement("input",{type:"checkbox",checked:t,onChange:l,name:"isReplayGainEnabled"})," ","ReplayGain (clip-safe)"))),e[3]=t,e[4]=l,e[5]=i):i=e[5],i};function Jn(e){return e.prefs.isReplayGainEnabled}const Kn="ew2x2VQFG7Hj_ltiyxbF",Zn=()=>{const e=(0,s.c)(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=a.createElement(Kt,{title:"Preferences",contentClassName:Kn},a.createElement(a.Fragment,null,a.createElement(Fn,null),a.createElement(Qn,null))),e[0]=t):t=e[0],t};var Xn=n(80470);const $n={heading:"WI7RHMq3jaNSZwGU2FA6",content:"tW4weGP7ZNHvtdAvHXkQ"},ea=e=>{const t=(0,s.c)(19),{onChange:n,prefs:r}=e;let l;t[0]!==r?(l=void 0===r?{}:r,t[0]=r,t[1]=l):l=t[1];const o=l,i=(0,d.G)(ta);let c;t[2]!==i.entities||t[3]!==i.result?(c=e=>i.result.find(t=>i.entities[t].name===e),t[2]=i.entities,t[3]=i.result,t[4]=c):c=t[4];const m=c;let u;t[5]!==m||t[6]!==n||t[7]!==o?(u=e=>{const{name:t,checked:a}=e.target,r=m(t);r&&n({...o,roles:{...o.roles,[r]:{...o.roles?.[r],allowNew:a}}})},t[5]=m,t[6]=n,t[7]=o,t[8]=u):u=t[8];const p=u,g=o.roles?.[m("guest")]?.allowNew??!1,E=o.roles?.[m("standard")]?.allowNew??!1;let f,v,y,b;return t[9]===Symbol.for("react.memo_cache_sentinel")?(f=a.createElement("div",{className:$n.heading},a.createElement(h.A,{icon:"PERSON"}),a.createElement("div",{className:$n.title},"Users")),t[9]=f):f=t[9],t[10]!==E||t[11]!==p?(v=a.createElement("div",{className:$n.field},a.createElement(te,{label:"Allow new standard users",name:"standard",checked:E,onChange:p})),t[10]=E,t[11]=p,t[12]=v):v=t[12],t[13]!==g||t[14]!==p?(y=a.createElement("div",{className:$n.field},a.createElement(te,{label:"Allow new guests",name:"guest",checked:g,onChange:p})),t[13]=g,t[14]=p,t[15]=y):y=t[15],t[16]!==v||t[17]!==y?(b=a.createElement(bn,{headingComponent:f},a.createElement("div",{className:$n.content},v,y)),t[16]=v,t[17]=y,t[18]=b):b=t[18],b};function ta(e){return e.prefs.roles}const na={heading:"NxVXilqTVRm2Gn61JMnN",slider:"HOcMzCIA0WXMfcLNpS_4",content:"bjETwqGW5QyR3on58pts",hidden:"_zeQjaCY8RxRMtxT2JAF"},aa=e=>{const t=(0,s.c)(56),{onChange:n,prefs:r,roomPassword:l,roomPasswordDirty:o}=e;let i;t[0]!==r?(i=void 0===r?{}:r,t[0]=r,t[1]=i):i=t[1];const c=i,[d,m]=(0,a.useState)(!!c?.qr?.password);let u;t[2]!==n||t[3]!==c?(u=e=>{n({...c,...e})},t[2]=n,t[3]=c,t[4]=u):u=t[4];const g=u;let E,f,v;t[5]!==g||t[6]!==d||t[7]!==c.qr||t[8]!==l||t[9]!==o?(E=()=>{d&&o&&c?.qr?.password!==l&&g({qr:{...c.qr,password:l}})},t[5]=g,t[6]=d,t[7]=c.qr,t[8]=l,t[9]=o,t[10]=E):E=t[10],t[11]!==g||t[12]!==d||t[13]!==c||t[14]!==l||t[15]!==o?(f=[g,d,c,l,o],t[11]=g,t[12]=d,t[13]=c,t[14]=l,t[15]=o,t[16]=f):f=t[16],(0,a.useEffect)(E,f),t[17]===Symbol.for("react.memo_cache_sentinel")?(v=a.createElement("div",{className:na.heading},a.createElement(h.A,{icon:"QR_CODE"}),a.createElement("div",{className:na.title},"QR Code")),t[17]=v):v=t[17];const y=c?.qr?.isEnabled??!1;let b,C,w,A,S,N;t[18]!==g||t[19]!==c.qr?(b=e=>g({qr:{...c.qr,isEnabled:e.currentTarget.checked}}),t[18]=g,t[19]=c.qr,t[20]=b):b=t[20],t[21]!==y||t[22]!==b?(C=a.createElement("div",{className:na.field},a.createElement(te,{label:"Show QR code",checked:y,onChange:b})),t[21]=y,t[22]=b,t[23]=C):C=t[23],t[24]!==g||t[25]!==d||t[26]!==c.qr||t[27]!==l?(w=c?.qr?.isEnabled&&l&&a.createElement("div",{className:na.field},a.createElement(te,{label:"Include room password",checked:d,onChange:e=>{const t=e.currentTarget.checked;m(t),t||g({qr:{...c.qr,password:""}})}})),t[24]=g,t[25]=d,t[26]=c.qr,t[27]=l,t[28]=w):w=t[28],t[29]!==g||t[30]!==d||t[31]!==c.qr||t[32]!==o?(A=d&&!o&&a.createElement("div",{className:na.field},a.createElement("input",{type:"password",autoComplete:"new-password",value:c?.qr?.password??"",onChange:e=>g({qr:{...c.qr,password:e.target.value}}),onFocus:ra,placeholder:"re-enter room password"})),t[29]=g,t[30]=d,t[31]=c.qr,t[32]=o,t[33]=A):A=t[33],t[34]===Symbol.for("react.memo_cache_sentinel")?(S=(0,p.A)(na.field),N=a.createElement("label",{id:"label-qr-size"},"Size"),t[34]=S,t[35]=N):(S=t[34],N=t[35]);const _=c?.qr?.size??.5;let I,R,P,L;t[36]!==g||t[37]!==c.qr?(I=e=>g({qr:{...c.qr,size:e}}),t[36]=g,t[37]=c.qr,t[38]=I):I=t[38],t[39]!==_||t[40]!==I?(R=a.createElement("div",{className:S},N,a.createElement(z,{className:na.slider,min:0,max:1,step:.05,value:_,onChange:I,"aria-labelledby":"label-qr-size"})),t[39]=_,t[40]=I,t[41]=R):R=t[41],t[42]===Symbol.for("react.memo_cache_sentinel")?(P=(0,p.A)(na.field),L=a.createElement("label",{id:"label-qr-opacity"},"Opacity"),t[42]=P,t[43]=L):(P=t[42],L=t[43]);const O=c?.qr?.opacity??.625;let k,T,M;return t[44]!==g||t[45]!==c.qr?(k=e=>g({qr:{...c.qr,opacity:e}}),t[44]=g,t[45]=c.qr,t[46]=k):k=t[46],t[47]!==O||t[48]!==k?(T=a.createElement("div",{className:P},L,a.createElement(z,{className:na.slider,min:.25,max:1,step:.075,value:O,onChange:k,"aria-labelledby":"label-qr-opacity"})),t[47]=O,t[48]=k,t[49]=T):T=t[49],t[50]!==w||t[51]!==A||t[52]!==R||t[53]!==T||t[54]!==C?(M=a.createElement(bn,{headingComponent:v},a.createElement("div",{className:na.content},C,w,A,R,T)),t[50]=w,t[51]=A,t[52]=R,t[53]=T,t[54]=C,t[55]=M):M=t[55],M};function ra(e){return e.target.select()}const sa={modal:"Q5T7XWGqm4a5MPArNfUg",fieldContainer:"YSEBZfRCIoJmOplLt9mP",prefsContainer:"a5K1WCxiR97esx_y_2Ex",btnContainer:"uiSOmb44a9pRFxf0NKJc"},la=e=>{const t=(0,s.c)(66),{onClose:n,room:r}=e,l=(0,a.useRef)(null);let o;t[0]!==r?(o=r&&r.hasPassword?"*".repeat(32):"",t[0]=r,t[1]=o):o=t[1];const[i,c]=(0,a.useState)(o);let m;t[2]!==r?.prefs?(m=r?.prefs||{},t[2]=r?.prefs,t[3]=m):m=t[3];const[u,p]=(0,a.useState)(m),[h,g]=(0,a.useState)(r),[f,v]=(0,a.useState)(!1),y=(0,d.j)();let b;r!==h&&(g(r),r?.prefs&&p(r.prefs)),t[4]!==y||t[5]!==f||t[6]!==u||t[7]!==r?(b=e=>{e.preventDefault();const t=(e=>{const t={};return e.forEach((e,n)=>{t[n]?t[n]=[].concat(t[n],e):t[n]=e}),t})(new FormData(l.current));t.prefs=u,r?(f||delete t.password,y((0,Xn.xX)({roomId:r.roomId,data:t}))):(t.password||delete t.password,y((0,Xn.ab)(t)))},t[4]=y,t[5]=f,t[6]=u,t[7]=r,t[8]=b):b=t[8];const C=b;let w;t[9]!==y||t[10]!==r?(w=()=>{r&&confirm(`Remove room "${r.name}" and its queue?`)&&y((0,Xn.SV)(r.roomId))},t[9]=y,t[10]=r,t[11]=w):w=t[11];const A=w;let S;t[12]!==y||t[13]!==r?(S=e=>{p(e),r&&y((0,Xn.uE)(r.roomId,e))},t[12]=y,t[13]=r,t[14]=S):S=t[14];const N=S;let _;t[15]!==y||t[16]!==n||t[17]!==r?(_=()=>{r&&y((0,Xn.uE)(r.roomId,r.prefs)),n()},t[15]=y,t[16]=n,t[17]=r,t[18]=_):_=t[18];const I=_;let R;t[19]===Symbol.for("react.memo_cache_sentinel")?(R=e=>{v(!0),c(e.target.value)},t[19]=R):R=t[19];const P=R,L=r?"Edit Room":"Create Room",O=r?r.name:"";let k,T,M;t[20]!==r?(k=e=>void 0===r?e?.setAttribute("autofocus","true"):void 0,t[20]=r,t[21]=k):k=t[21],t[22]!==k||t[23]!==O?(T=a.createElement("input",{type:"text",autoComplete:"off",defaultValue:O,name:"name",placeholder:"room name",ref:k}),t[22]=k,t[23]=O,t[24]=T):T=t[24],t[25]!==i?(M=a.createElement("input",{type:"password",autoComplete:"new-password",value:i,name:"password",onChange:P,onFocus:oa,placeholder:"room password (optional)"}),t[25]=i,t[26]=M):M=t[26];const V=r?.status??"open";let x,z,H,U,D,G,q;t[27]===Symbol.for("react.memo_cache_sentinel")?(x=a.createElement("option",{value:"open"},"Open"),z=a.createElement("option",{value:"closed"},"Closed"),t[27]=x,t[28]=z):(x=t[27],z=t[28]),t[29]!==V?(H=a.createElement("select",{name:"status",defaultValue:V},x,z),t[29]=V,t[30]=H):H=t[30],t[31]!==T||t[32]!==M||t[33]!==H?(U=a.createElement("div",{className:sa.fieldContainer},T,M,H),t[31]=T,t[32]=M,t[33]=H,t[34]=U):U=t[34],t[35]!==N||t[36]!==u?(D=a.createElement(ea,{prefs:u,onChange:N}),t[35]=N,t[36]=u,t[37]=D):D=t[37],t[38]!==N||t[39]!==f||t[40]!==u||t[41]!==i?(G=a.createElement(aa,{prefs:u,onChange:N,roomPassword:i,roomPasswordDirty:f}),t[38]=N,t[39]=f,t[40]=u,t[41]=i,t[42]=G):G=t[42],t[43]!==D||t[44]!==G?(q=a.createElement("div",{className:sa.prefsContainer},D,G),t[43]=D,t[44]=G,t[45]=q):q=t[45];const F=r?"Update Room":"Create Room";let B,j,W,Y,Q,J;return t[46]!==F?(B=a.createElement(E,{type:"submit",variant:"primary",className:sa.btn},F),t[46]=F,t[47]=B):B=t[47],t[48]!==A||t[49]!==r?(j=r&&a.createElement(E,{onClick:A,className:sa.btn,variant:"danger"},"Remove Room"),t[48]=A,t[49]=r,t[50]=j):j=t[50],t[51]!==I?(W=a.createElement(E,{onClick:I,variant:"default"},"Cancel"),t[51]=I,t[52]=W):W=t[52],t[53]!==B||t[54]!==j||t[55]!==W?(Y=a.createElement("div",{className:sa.btnContainer},B,j,W),t[53]=B,t[54]=j,t[55]=W,t[56]=Y):Y=t[56],t[57]!==C||t[58]!==U||t[59]!==q||t[60]!==Y?(Q=a.createElement("form",{onSubmit:C,ref:l,className:sa.form},U,q,Y),t[57]=C,t[58]=U,t[59]=q,t[60]=Y,t[61]=Q):Q=t[61],t[62]!==I||t[63]!==Q||t[64]!==L?(J=a.createElement(X,{className:sa.modal,onClose:I,title:L},Q),t[62]=I,t[63]=Q,t[64]=L,t[65]=J):J=t[65],J};function oa(e){return e.target.select()}const ia=(0,f.Mz)([e=>e.rooms.result,e=>e.rooms.entities,e=>e.rooms.filterStatus],(e,t,n)=>({result:e.filter(e=>!1===n||t[e].status===n),entities:t})),ca="dlkVNG9BLZN9R9HguwLu",da="HAVmLg8TCL18Jeiuo7fX",ma=()=>{const e=(0,s.c)(44),[t,n]=(0,a.useState)(null),{isEditorOpen:r,filterStatus:l}=(0,d.G)(ua),o=(0,d.G)(ia),i=(0,d.j)();let c;e[0]!==i?(c=()=>i((0,Xn.$R)()),e[0]=i,e[1]=c):c=e[1];const m=c;let u;e[2]!==i?(u=e=>{"all"===e.currentTarget.value?i((0,Xn.Mv)(!1)):i((0,Xn.Mv)(e.currentTarget.value))},e[2]=i,e[3]=u):u=e[3];const p=u;let h;e[4]!==i?(h=e=>i(Bt(parseInt(e.currentTarget.dataset.roomId))),e[4]=i,e[5]=h):h=e[5];const g=h;let f;e[6]!==i||e[7]!==o.entities?(f=e=>{n(o.entities[parseInt(e.currentTarget.dataset.roomId||"0")]),i((0,Xn.v4)())},e[6]=i,e[7]=o.entities,e[8]=f):f=e[8];const v=f;let y,b,C;if(e[9]!==i?(y=()=>{i((0,Xn.RM)())},b=[i],e[9]=i,e[10]=y,e[11]=b):(y=e[10],b=e[11]),(0,a.useEffect)(y,b),e[12]!==g||e[13]!==v||e[14]!==o.entities||e[15]!==o.result){let t;e[17]!==g||e[18]!==v||e[19]!==o.entities?(t=e=>{const t=o.entities[e];return a.createElement("tr",{key:String(e)},a.createElement("td",{translate:"no"},a.createElement("a",{"data-room-id":e,onClick:v},t.name)),a.createElement("td",null,t.status,t.numUsers>0&&a.createElement(a.Fragment,null," ",a.createElement("a",{"data-room-id":e,onClick:g},"(",t.numUsers,")"))),a.createElement("td",null,we(new Date(1e3*t.dateCreated))))},e[17]=g,e[18]=v,e[19]=o.entities,e[20]=t):t=e[20],C=o.result.map(t),e[12]=g,e[13]=v,e[14]=o.entities,e[15]=o.result,e[16]=C}else C=e[16];const w=C,A=!1===l?"all":l;let S,N,_,I;e[21]===Symbol.for("react.memo_cache_sentinel")?(N=a.createElement("option",{key:"all",value:"all"},"All"),_=a.createElement("option",{key:"open",value:"open"},"Open"),S=a.createElement("option",{key:"closed",value:"closed"},"Closed"),e[21]=S,e[22]=N,e[23]=_):(S=e[21],N=e[22],_=e[23]),e[24]!==p||e[25]!==A?(I=a.createElement("select",{className:ca,onChange:p,value:A},N,_,S),e[24]=p,e[25]=A,e[26]=I):I=e[26];const R=I;let P,L,O,k,T,M,V;return e[27]===Symbol.for("react.memo_cache_sentinel")?(P=a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",null,"Name"),a.createElement("th",null,"Status"),a.createElement("th",null,"Created"))),e[27]=P):P=e[27],e[28]!==w?(L=a.createElement("table",{className:da},P,a.createElement("tbody",null,w)),e[28]=w,e[29]=L):L=e[29],e[30]===Symbol.for("react.memo_cache_sentinel")?(O=a.createElement("br",null),e[30]=O):O=e[30],e[31]!==v?(k=a.createElement(E,{onClick:v,variant:"primary"},"Create Room"),e[31]=v,e[32]=k):k=e[32],e[33]!==t||e[34]!==m||e[35]!==r?(T=r&&a.createElement(la,{onClose:m,room:t}),e[33]=t,e[34]=m,e[35]=r,e[36]=T):T=e[36],e[37]!==L||e[38]!==k||e[39]!==T?(M=a.createElement(a.Fragment,null,L,O,k,T),e[37]=L,e[38]=k,e[39]=T,e[40]=M):M=e[40],e[41]!==R||e[42]!==M?(V=a.createElement(Kt,{title:"Rooms",titleComponent:R},M),e[41]=R,e[42]=M,e[43]=V):V=e[43],V};function ua(e){return e.rooms}const pa={modal:"gqWI3mlnDqWIUNXebNqh",btnContainer:"_UZuyKF0ewftaeFpnDiS",field:"egMKJajhBRVHHcS0ruyV"},ha=e=>{const t=(0,s.c)(29),{user:n,onClose:r}=e,l=(0,d.j)();let o;t[0]!==l||t[1]!==n?(o=e=>{l(n?Ut({userId:n.userId,data:e}):Ht(e))},t[0]=l,t[1]=n,t[2]=o):o=t[2];const i=o;let c;t[3]!==l||t[4]!==n?(c=()=>{n&&confirm(`Remove user "${n.username}"?\n\nTheir queued songs will also be removed.`)&&l(Dt(n.userId))},t[3]=l,t[4]=n,t[5]=c):c=t[5];const m=c,u=n?n.username:"Create User",p=!n;let h,g,f,v,y,b,C;return t[6]!==n?(h=!n&&a.createElement(E,{type:"submit",className:pa.btn,variant:"primary"},"Create User"),t[6]=n,t[7]=h):h=t[7],t[8]!==n?(g=n&&a.createElement(E,{type:"submit",className:pa.btn,variant:"primary"},"Update User"),t[8]=n,t[9]=g):g=t[9],t[10]!==m||t[11]!==n?(f=n&&a.createElement(E,{onClick:m,className:pa.btn,variant:"danger"},"Remove User"),t[10]=m,t[11]=n,t[12]=f):f=t[12],t[13]!==r?(v=a.createElement(E,{onClick:r,variant:"default"},"Cancel"),t[13]=r,t[14]=v):v=t[14],t[15]!==h||t[16]!==g||t[17]!==f||t[18]!==v?(y=a.createElement("div",{className:pa.btnContainer},h,g,f,v),t[15]=h,t[16]=g,t[17]=f,t[18]=v,t[19]=y):y=t[19],t[20]!==i||t[21]!==p||t[22]!==y||t[23]!==n?(b=a.createElement(_t,{user:n,onSubmit:i,showRole:!0,autoFocus:p},y),t[20]=i,t[21]=p,t[22]=y,t[23]=n,t[24]=b):b=t[24],t[25]!==r||t[26]!==b||t[27]!==u?(C=a.createElement(X,{className:pa.modal,onClose:r,title:u},b),t[25]=r,t[26]=b,t[27]=u,t[28]=C):C=t[28],C},ga=(0,f.Mz)([e=>e.users.result,e=>e.users.entities,e=>e.users.filterOnline,e=>e.users.filterRoomId],(e,t,n,a)=>(n?e=e.filter(e=>t[e].rooms.length):"number"==typeof a&&(e=e.filter(e=>t[e].rooms.includes(a))),{result:e,entities:t})),Ea="krYGtNnm9wreKzV0sC87",fa="dVtQTutpaei_Zk_0Dmhd",va=()=>{const e=(0,s.c)(51),[t,n]=(0,a.useState)(null),r=(0,d.G)(ya),{isEditorOpen:l,filterOnline:o,filterRoomId:i}=(0,d.G)(ba),c=(0,d.G)(Ca),m=(0,d.G)(ga),u=(0,d.j)();let p;e[0]!==u?(p=()=>u(qt()),e[0]=u,e[1]=p):p=e[1];const h=p;let g;e[2]!==u?(g=e=>{"all"===e.target.value?u(Ft(!1)):"online"===e.target.value?u(Ft(!0)):u(Bt(parseInt(e.target.value,10)))},e[2]=u,e[3]=g):g=e[3];const f=g;let v;e[4]!==u||e[5]!==m.entities?(v=e=>{n(m.entities[parseInt(e.currentTarget.dataset.userId)]),u(Gt())},e[4]=u,e[5]=m.entities,e[6]=v):v=e[6];const y=v;let b,C,w;if(e[7]!==u?(b=()=>{u(zt())},C=[u],e[7]=u,e[8]=b,e[9]=C):(b=e[8],C=e[9]),(0,a.useEffect)(b,C),e[10]!==r||e[11]!==y||e[12]!==m.entities||e[13]!==m.result){let t;e[15]!==r||e[16]!==y||e[17]!==m.entities?(t=e=>{const t=m.entities[e];return a.createElement("tr",{key:e},e===r&&a.createElement("td",{translate:"no"},a.createElement("strong",null,t.username)," ","(",t.name,")"),e!==r&&a.createElement("td",null,a.createElement("a",{"data-user-id":e,onClick:y},t.username)," ","(",t.name,")"),a.createElement("td",null,t.role),a.createElement("td",null,we(new Date(1e3*t.dateCreated))))},e[15]=r,e[16]=y,e[17]=m.entities,e[18]=t):t=e[18],w=m.result.map(t),e[10]=r,e[11]=y,e[12]=m.entities,e[13]=m.result,e[14]=w}else w=e[14];const A=w;let S;if(e[19]!==c.entities||e[20]!==c.result){let t,n;e[22]!==c.entities?(t=e=>!!c.entities[e].numUsers,e[22]=c.entities,e[23]=t):t=e[23],e[24]!==c.entities?(n=e=>a.createElement("option",{key:e,value:e},c.entities[e].name),e[24]=c.entities,e[25]=n):n=e[25],S=c.result.filter(t).map(n),e[19]=c.entities,e[20]=c.result,e[21]=S}else S=e[21];const N=S,_=o?"online":i||"all";let I,R,P,L;e[26]===Symbol.for("react.memo_cache_sentinel")?(I=a.createElement("option",{key:"all",value:"all"},"All"),R=a.createElement("option",{key:"online",value:"online"},"Online"),e[26]=I,e[27]=R):(I=e[26],R=e[27]),e[28]!==N?(P=a.createElement("optgroup",{label:"Online in..."},N),e[28]=N,e[29]=P):P=e[29],e[30]!==f||e[31]!==P||e[32]!==_?(L=a.createElement("select",{className:Ea,onChange:f,value:_},I,R,P),e[30]=f,e[31]=P,e[32]=_,e[33]=L):L=e[33];const O=L;let k,T,M,V,x,z,H;return e[34]===Symbol.for("react.memo_cache_sentinel")?(k=a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",null,"Username"),a.createElement("th",null,"Role"),a.createElement("th",null,"Joined"))),e[34]=k):k=e[34],e[35]!==A?(T=a.createElement("table",{className:fa},k,a.createElement("tbody",null,A)),e[35]=A,e[36]=T):T=e[36],e[37]===Symbol.for("react.memo_cache_sentinel")?(M=a.createElement("br",null),e[37]=M):M=e[37],e[38]!==y?(V=a.createElement(E,{onClick:y,variant:"primary"},"Create User"),e[38]=y,e[39]=V):V=e[39],e[40]!==t||e[41]!==h||e[42]!==l?(x=l&&a.createElement(ha,{onClose:h,user:t}),e[40]=t,e[41]=h,e[42]=l,e[43]=x):x=e[43],e[44]!==T||e[45]!==V||e[46]!==x?(z=a.createElement(a.Fragment,null,T,M,V,x),e[44]=T,e[45]=V,e[46]=x,e[47]=z):z=e[47],e[48]!==z||e[49]!==O?(H=a.createElement(Kt,{title:"Users",titleComponent:O},z),e[48]=z,e[49]=O,e[50]=H):H=e[50],H};function ya(e){return e.user.userId}function ba(e){return e.users}function Ca(e){return e.rooms}const wa=()=>{const e=(0,s.c)(15),{isAdmin:t}=(0,d.G)(Aa),n=!!(0,d.G)(Sa),r=(0,d.j)();let l,o,i,c,m,u,p,h;return t&&!n&&(kt.A.inject({reducerPath:"users",reducer:jt}),r(Wt())),e[0]!==r?(l=()=>{(async()=>{r((0,ot.mb)())})()},o=[r],e[0]=r,e[1]=l,e[2]=o):(l=e[1],o=e[2]),(0,a.useEffect)(l,o),e[3]!==t?(i=t&&a.createElement(ma,null),e[3]=t,e[4]=i):i=e[4],e[5]!==t?(c=t&&a.createElement(va,null),e[5]=t,e[6]=c):c=e[6],e[7]!==t?(m=t&&a.createElement(Zn,null),e[7]=t,e[8]=m):m=e[8],e[9]===Symbol.for("react.memo_cache_sentinel")?(u=a.createElement(hn,null),p=a.createElement(on,null),e[9]=u,e[10]=p):(u=e[9],p=e[10]),e[11]!==i||e[12]!==c||e[13]!==m?(h=a.createElement(a.Fragment,null,i,c,m,u,p),e[11]=i,e[12]=c,e[13]=m,e[14]=h):h=e[14],h};function Aa(e){return e.user}function Sa(e){return e.users}const Na="Wdz5LHTVlrpDjGYTKK9L",_a=e=>{const t=(0,s.c)(14);let n,r,l,o;if(t[0]!==e){const{onChange:a,label:s,className:i,...c}=e;r=s,n=i,l=c,o=e=>{a&&a(e.target.value)},t[0]=e,t[1]=n,t[2]=r,t[3]=l,t[4]=o}else n=t[1],r=t[2],l=t[3],o=t[4];const i=o;let c,d,m;return t[5]!==n?(c=(0,p.A)(Na,n),t[5]=n,t[6]=c):c=t[6],t[7]!==i||t[8]!==l?(d=a.createElement("input",(0,u.A)({type:"radio",onChange:i},l)),t[7]=i,t[8]=l,t[9]=d):d=t[9],t[10]!==r||t[11]!==c||t[12]!==d?(m=a.createElement("label",{className:c},d,r),t[10]=r,t[11]=c,t[12]=d,t[13]=m):m=t[13],m},Ia={container:"MTzbvQ4VAtgPXbJKkrGO",hidden:"X1Pj4fM1xquH4Ymuq0Q5"},Ra=e=>{const t=(0,s.c)(5),{onRoomSelect:n,onRoomPasswordChange:r,className:l,rooms:o,roomId:i,roomPassword:c,showAllRooms:d}=e,m=(0,a.useRef)({}),u=e=>{const t=e;Object.entries(m.current).forEach(e=>{const[n,a]=e;a&&(n===t?(a.classList.remove(Ia.hidden),a.focus()):a.classList.add(Ia.hidden))}),n(parseInt(t))};let h;t[0]!==l?(h=(0,p.A)(Ia.container,l),t[0]=l,t[1]=h):h=t[1];const g=o.result.map(e=>{return d||e===i?a.createElement("div",{key:`room-${e}`},a.createElement(_a,{name:"roomId",className:(0,p.A)(Ia.option,e===i&&Ia.checked),label:o.entities[e].name,value:e,onChange:u,checked:e===i}),o.entities[e]?.hasPassword&&a.createElement("input",{type:"password",autoComplete:"off",className:(0,p.A)((null===i||e!==i)&&Ia.hidden),onChange:e=>{r(e.target.value)},placeholder:"room password (required)","aria-label":"room password (required)",ref:(t=e,e=>{m.current[t]=e}),value:c})):null;var t});let E;return t[2]!==h||t[3]!==g?(E=a.createElement("div",{className:h},g),t[2]=h,t[3]=g,t[4]=E):E=t[4],E},Pa="mlhmoE1JUQKR4Te5DEtv",La="glTWFMiUMaerBvhPz8ti",Oa=e=>{const t=(0,s.c)(23),{guest:n,username:r,password:l,onUsernameChange:o,onPasswordChange:i,onSubmit:c,onFirstFieldRef:d}=e,[m,u]=(0,a.useState)(""),[p,h]=(0,a.useState)(""),[g,f]=(0,a.useState)(void 0);let v;t[0]!==g||t[1]!==m||t[2]!==c||t[3]!==p?(v=e=>{e.preventDefault(),c({name:m,image:g,passwordConfirm:p})},t[0]=g,t[1]=m,t[2]=c,t[3]=p,t[4]=v):v=t[4];const y=v;let b,C,w;t[5]!==n||t[6]!==d||t[7]!==i||t[8]!==o||t[9]!==l||t[10]!==p||t[11]!==r?(b=!n&&a.createElement(a.Fragment,null,a.createElement("input",{type:"email",autoComplete:"off",value:r,onChange:e=>o(e.target.value),placeholder:"username or email",ref:d}),a.createElement("input",{type:"password",autoComplete:"new-password",value:l,onChange:e=>i(e.target.value),placeholder:"password"}),a.createElement("input",{type:"password",autoComplete:"new-password",placeholder:"confirm password",value:p,onChange:e=>h(e.target.value)})),t[5]=n,t[6]=d,t[7]=i,t[8]=o,t[9]=l,t[10]=p,t[11]=r,t[12]=b):b=t[12],t[13]===Symbol.for("react.memo_cache_sentinel")?(C=a.createElement(Ct,{onSelect:f}),t[13]=C):C=t[13],t[14]===Symbol.for("react.memo_cache_sentinel")?(w=e=>u(e.target.value),t[14]=w):w=t[14];const A=n?d:void 0;let S,N,_;return t[15]!==m||t[16]!==A?(S=a.createElement("div",{className:La},C,a.createElement("input",{type:"text",placeholder:"display name",value:m,onChange:w,ref:A})),t[15]=m,t[16]=A,t[17]=S):S=t[17],t[18]===Symbol.for("react.memo_cache_sentinel")?(N=a.createElement(E,{type:"submit",variant:"primary"},"Join"),t[18]=N):N=t[18],t[19]!==y||t[20]!==b||t[21]!==S?(_=a.createElement("form",{className:Pa,noValidate:!0,onSubmit:y},b,S,N),t[19]=y,t[20]=b,t[21]=S,t[22]=_):_=t[22],_},ka="pvyilF8BtiMYHtpXJ_jT",Ta=e=>{const t=(0,s.c)(16),{username:n,password:r,onUsernameChange:l,onPasswordChange:o,onSubmit:i,onFirstFieldRef:c}=e;let d,m,u,p,h,g;return t[0]!==l?(d=e=>l(e.target.value),t[0]=l,t[1]=d):d=t[1],t[2]!==c||t[3]!==d||t[4]!==n?(m=a.createElement("input",{type:"email",autoComplete:"username",placeholder:"username or email",value:n,onChange:d,ref:c}),t[2]=c,t[3]=d,t[4]=n,t[5]=m):m=t[5],t[6]!==o?(u=e=>o(e.target.value),t[6]=o,t[7]=u):u=t[7],t[8]!==r||t[9]!==u?(p=a.createElement("input",{type:"password",autoComplete:"current-password",placeholder:"password",value:r,onChange:u}),t[8]=r,t[9]=u,t[10]=p):p=t[10],t[11]===Symbol.for("react.memo_cache_sentinel")?(h=a.createElement(E,{type:"submit",variant:"primary"},"Sign In"),t[11]=h):h=t[11],t[12]!==i||t[13]!==m||t[14]!==p?(g=a.createElement("form",{noValidate:!0,onSubmit:i,className:ka},m,p,h),t[12]=i,t[13]=m,t[14]=p,t[15]=g):g=t[15],g},Ma="e3jR4OMsV_OIaaAci_hn",Va="kfaDc9tZA7V0rbLrrQxW",xa="unPhcciIOQl7IyVNBGQk",za="cRQaBuJaYH041jNLJIlp",Ha=()=>{const e=(0,s.c)(67),t=(0,a.useRef)(null),n=(0,a.useRef)(null),r=(0,d.G)(Ua),l=(0,d.G)(Da),o=(0,d.G)(Ga),i=(0,d.j)(),[c,m]=(0,a.useState)("returning"),[u,h]=(0,a.useState)(""),[g,E]=(0,a.useState)(""),[f,v]=(0,a.useState)(null),[y,b]=(0,a.useState)(""),[C,w]=(0,a.useState)(!1),[A,S]=(0,a.useState)(!0),[N,_]=(0,a.useState)(null),[I,R]=(0,a.useState)(0);let P,L,O;if(e[0]!==i?(P=()=>{i((0,Xn.RM)())},L=[i],e[0]=i,e[1]=P,e[2]=L):(P=e[1],L=e[2]),(0,a.useEffect)(P,L),l!==N){_(l);const e=new URLSearchParams(location.search),t=e.get("roomId"),n=t?parseInt(t,10):null,a=e.get("password");n&&l.entities[n]?(v(n),S(!1),l.entities[n]?.hasPassword?a?(b(atob(a)),w(!1),R(qa)):w(!0):R(Fa)):1===l.result.length?(v(l.result[0]),w(l.entities[l.result[0]]?.hasPassword)):w(0!==l.result.length)}e[3]!==l.entities||e[4]!==C?(O=e=>{v(e),m("returning"),l.entities[e]?.hasPassword&&C||(R(Ba),t.current?.scrollIntoView({behavior:"smooth",block:"start"}))},e[3]=l.entities,e[4]=C,e[5]=O):O=e[5];const k=O;let T;e[6]===Symbol.for("react.memo_cache_sentinel")?(T=e=>{e&&(n.current=e)},e[6]=T):T=e[6];const M=T;let V;e[7]!==i||e[8]!==g||e[9]!==f||e[10]!==y||e[11]!==u?(V=e=>{e.preventDefault(),i((0,ot.iD)({username:u.trim(),password:g,roomId:f,roomPassword:y}))},e[7]=i,e[8]=g,e[9]=f,e[10]=y,e[11]=u,e[12]=V):V=e[12];const x=V;let z;e[13]!==i||e[14]!==c||e[15]!==g||e[16]!==f||e[17]!==y||e[18]!==u?(z=e=>{const{name:t,image:n,passwordConfirm:a}=e,r=new FormData;r.append("username",u.trim()),r.append("newPassword",g),r.append("newPasswordConfirm",a),r.append("roomId",String(f)),r.append("roomPassword",y),r.append("name",t.trim()),void 0!==n&&r.append("image",n),"returning"!==c&&r.append("role",c),i((0,ot._m)(r))},e[13]=i,e[14]=c,e[15]=g,e[16]=f,e[17]=y,e[18]=u,e[19]=z):z=e[19];const H=z;let U;e[20]!==r.roles.entities||e[21]!==r.roles.result||e[22]!==f||e[23]!==l.entities?(U=e=>{const t=r.roles.result.find(t=>r.roles.entities[t].name===e);return!!l.entities[f]?.prefs?.roles?.[t]?.allowNew},e[20]=r.roles.entities,e[21]=r.roles.result,e[22]=f,e[23]=l.entities,e[24]=U):U=e[24];const D=U,G=D("guest"),q=D("standard"),F=q||G;let B,j;e[25]===Symbol.for("react.memo_cache_sentinel")?(B=()=>{n.current?.focus()},e[25]=B):B=e[25],e[26]!==I||e[27]!==c?(j=[I,c],e[26]=I,e[27]=c,e[28]=j):j=e[28],(0,a.useEffect)(B,j);const W=Math.max(340,.66*o.contentWidth);let Y,Q,J;e[29]!==W?(Y={maxWidth:W},e[29]=W,e[30]=Y):Y=e[30],e[31]===Symbol.for("react.memo_cache_sentinel")?(Q=a.createElement(pt,{className:Va}),e[31]=Q):Q=e[31],e[32]!==k||e[33]!==f||e[34]!==y||e[35]!==l||e[36]!==A||e[37]!==C?(J=C&&a.createElement(a.Fragment,null,a.createElement("h1",null,"Join room..."),a.createElement(Ra,{rooms:l,roomId:f,roomPassword:y,showAllRooms:A,onRoomSelect:k,onRoomPasswordChange:b})),e[32]=k,e[33]=f,e[34]=y,e[35]=l,e[36]=A,e[37]=C,e[38]=J):J=e[38];const K=l.result.length>1&&null===f&&za;let Z,X,$,ee,te,ne;return e[39]!==K?(Z=(0,p.A)(K),e[39]=K,e[40]=Z):Z=e[40],e[41]!==F||e[42]!==G||e[43]!==q||e[44]!==c?(X=F?a.createElement(a.Fragment,null,a.createElement("h1",null,"Join as..."),a.createElement("div",{className:xa},a.createElement(_a,{name:"type",value:"returning",checked:"returning"===c,onChange:m,label:"Returning user"}),q&&a.createElement(_a,{name:"type",value:"standard",checked:"standard"===c,onChange:m,label:"New user"}),G&&a.createElement(_a,{name:"type",value:"guest",checked:"guest"===c,onChange:m,label:"Guest"}))):a.createElement("h1",null,"Sign in"),e[41]=F,e[42]=G,e[43]=q,e[44]=c,e[45]=X):X=e[45],e[46]!==F||e[47]!==x||e[48]!==c||e[49]!==g||e[50]!==u?($=("returning"===c||!F)&&a.createElement(Ta,{username:u,password:g,onUsernameChange:h,onPasswordChange:E,onSubmit:x,onFirstFieldRef:M}),e[46]=F,e[47]=x,e[48]=c,e[49]=g,e[50]=u,e[51]=$):$=e[51],e[52]!==F||e[53]!==H||e[54]!==c||e[55]!==g||e[56]!==u?(ee="returning"!==c&&F&&a.createElement(Oa,{guest:"guest"===c,username:u,password:g,onUsernameChange:h,onPasswordChange:E,onSubmit:H,onFirstFieldRef:M}),e[52]=F,e[53]=H,e[54]=c,e[55]=g,e[56]=u,e[57]=ee):ee=e[57],e[58]!==Z||e[59]!==X||e[60]!==$||e[61]!==ee?(te=a.createElement("div",{ref:t,className:Z},X,$,ee),e[58]=Z,e[59]=X,e[60]=$,e[61]=ee,e[62]=te):te=e[62],e[63]!==Y||e[64]!==J||e[65]!==te?(ne=a.createElement("div",{className:Ma,style:Y},Q,J,te),e[63]=Y,e[64]=J,e[65]=te,e[66]=ne):ne=e[66],ne};function Ua(e){return e.prefs}function Da(e){return e.rooms}function Ga(e){return e.ui}function qa(e){return e+1}function Fa(e){return e+1}function Ba(e){return e+1}const ja="EPw4Q8pC4VCZu_ENeHOh",Wa=()=>{const e=(0,s.c)(20),t=(0,d.G)(Ya),n=(0,d.G)(Qa),r=(0,d.G)(Ja),l=(0,d.j)();let o,i,c,m,u,p,h;return e[0]!==l?(o=()=>{l((0,v.dJ)())},i=[l],e[0]=l,e[1]=o,e[2]=i):(o=e[1],i=e[2]),(0,a.useEffect)(o,i),e[3]!==r.contentWidth||e[4]!==r.footerHeight||e[5]!==r.headerHeight||e[6]!==r.innerHeight?(c={paddingTop:r.headerHeight,paddingBottom:r.footerHeight,width:r.contentWidth,height:r.innerHeight},e[3]=r.contentWidth,e[4]=r.footerHeight,e[5]=r.headerHeight,e[6]=r.innerHeight,e[7]=c):c=e[7],e[8]!==t?(m=t&&a.createElement(wa,null),e[8]=t,e[9]=m):m=e[9],e[10]!==n||e[11]!==t?(u=!n&&!t&&a.createElement(Ha,null),e[10]=n,e[11]=t,e[12]=u):u=e[12],e[13]!==n?(p=n&&a.createElement(Lt,null),e[13]=n,e[14]=p):p=e[14],e[15]!==c||e[16]!==m||e[17]!==u||e[18]!==p?(h=a.createElement("div",{className:ja,style:c},m,u,p),e[15]=c,e[16]=m,e[17]=u,e[18]=p,e[19]=h):h=e[19],h};function Ya(e){return null!==e.user.userId}function Qa(e){return!0===e.prefs.isFirstRun}function Ja(e){return e.ui}var Ka=n(9934);const Za=(0,f.Mz)([e=>e.artists],e=>{const t={"#":0},n="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");let a=0;return e.result.forEach((r,s)=>{const l=e.entities[r].name[0].toUpperCase(),o=n.indexOf(l)-a;o>=0&&(a+=o,t[n[a]]=s,a++)}),t}),Xa=(0,f.Mz)([e=>(0,Ka.wd)(e.queue),e=>e.status.isAtQueueEnd?void 0:e.status.queueId,e=>e.status.historyJSON],(e,t,n)=>{const a=JSON.parse(n),r=[],s=[];return e.result.forEach(n=>{a.includes(n)?r.push(e.entities[n].songId):n!==t&&s.push(e.entities[n].songId)}),{played:r,upcoming:s,current:e.entities[t]?.songId}});var $a=n(68853);const er="JoCtgfMdp4_LkFISBVdL",tr=e=>{const t=(0,s.c)(24),{numRows:n,onRowsRendered:r,onRef:l,paddingTop:o,paddingRight:i,paddingBottom:c,rowComponent:d,rowHeight:m,rowProps:p,width:h,height:g}=e;let E;t[0]!==p?(E=void 0===p?{}:p,t[0]=p,t[1]=E):E=t[1];const f=E;let v;t[2]!==l?(v=e=>{l&&l(e)},t[2]=l,t[3]=v):v=t[3];const y=v;let b;t[4]!==d||t[5]!==n||t[6]!==i?(b=e=>{let{index:t,style:r,ariaAttributes:s,...l}=e;return 0===t||t===n+1?a.createElement("div",{key:0===t?"top":"bottom",style:r}):a.createElement(d,(0,u.A)({index:--t,style:{...r,paddingRight:i},ariaAttributes:s},l))},t[4]=d,t[5]=n,t[6]=i,t[7]=b):b=t[7];const C=b;let w;t[8]!==n||t[9]!==c||t[10]!==o||t[11]!==m?(w=e=>0===e?o:e===n+1?c:m(e-1),t[8]=n,t[9]=c,t[10]=o,t[11]=m,t[12]=w):w=t[12];const A=w,S=n+2;let N,_;return t[13]!==g||t[14]!==h?(N={width:h,height:g},t[13]=g,t[14]=h,t[15]=N):N=t[15],t[16]!==C||t[17]!==A||t[18]!==y||t[19]!==r||t[20]!==f||t[21]!==S||t[22]!==N?(_=a.createElement($a.B8,{rowProps:f,rowComponent:C,rowCount:S,rowHeight:A,onRowsRendered:r,overscanCount:10,listRef:y,className:er,style:N}),t[16]=C,t[17]=A,t[18]=y,t[19]=r,t[20]=f,t[21]=S,t[22]=N,t[23]=_):_=t[23],_},nr="vN10Ra6WwFQwsoJD1_3H";class ar extends a.Component{alphabet="#ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");state={isTouchCapable:!1,isTouching:!1,char:null,y:null};render(){return a.createElement("div",{className:nr,style:{height:this.props.height,top:this.props.top},onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouch,onTouchEnd:this.handleTouchEnd,onMouseDown:this.handleTouch,onMouseUp:this.handleTouchEnd},this.alphabet.map(e=>a.createElement("div",{key:e,style:{flex:"1 1 auto",minHeight:0}},e)))}handleTouchStart=()=>{(0,T.Dx)(!0),this.setState({isTouchCapable:!0,isTouching:!0})};handleTouch=e=>{if(e.preventDefault(),"mousedown"===e.type&&this.state.isTouchCapable)return;const t="targetTouches"in e?e.targetTouches[0].clientY:e.clientY,n=this.alphabet[Math.floor((t-this.props.top)/this.props.height*this.alphabet.length)];this.setState({char:n,y:t-this.props.top}),n!==this.state.char&&void 0!==n&&this.props.onPick(n)};handleTouchEnd=()=>{(0,T.Dx)(!1),this.setState({isTouching:!1,char:null})}}const rr=ar;var sr=n(23257),lr=n.n(sr),or=n(10188);class ir extends a.Component{state={animate:!1};componentDidUpdate(e){this.props.toggle!==e.toggle&&this.setState({animate:!0})}render(){return this.state.animate?a.Children.map(this.props.children,e=>{if(a.isValidElement(e))return a.cloneElement(e,{className:(0,p.A)(e.props.className,this.props.className),onAnimationEnd:this.handleAnimationEnd})}):this.props.children}handleAnimationEnd=()=>this.setState({animate:!1})}const cr="GZ4AfJ1RXsLXR9aQ3QpE",dr="TPl9cEhtUMAt0h6N9YCP",mr="KxWIysIVYOPpQ2J0J7m9",ur="fQvlCYdTv_qPyPxDbEan",pr=e=>{const t=(0,s.c)(13),{className:n,onClick:r,count:l,isStarred:o}=e,i=o&&mr;let c,d,m;t[0]!==n||t[1]!==i?(c=(0,p.A)(cr,i,n),t[0]=n,t[1]=i,t[2]=c):c=t[2],t[3]===Symbol.for("react.memo_cache_sentinel")?(d=a.createElement(h.A,{icon:"STAR_FULL"}),t[3]=d):d=t[3],t[4]!==o?(m=a.createElement(ir,{toggle:o,className:ur},d),t[4]=o,t[5]=m):m=t[5];const u=l||"";let g,f;return t[6]!==u?(g=a.createElement("div",{className:dr},u),t[6]=u,t[7]=g):g=t[7],t[8]!==r||t[9]!==c||t[10]!==m||t[11]!==g?(f=a.createElement(E,{onClick:r,className:c},m,g),t[8]=r,t[9]=c,t[10]=m,t[11]=g,t[12]=f):f=t[12],f},hr="NLkRlVVNnuiKJMNOXMhe",gr="IW53X1CCc5LsUP_viCWs";class Er extends a.Component{render(){let e=0;const t=a.Children.map(this.props.children,t=>{if(a.isValidElement(t))return t.props["data-hide"]&&!this.props.isExpanded?a.cloneElement(t,{className:(0,p.A)(t.props.className,gr)}):(e++,t)});return a.createElement("div",{className:(0,p.A)(hr,this.props.className),style:{width:this.props.btnWidth*e}},t)}}const fr={container:"Hk5Oiz4LTn0TQU1HJ_4r",withArtist:"otX4OYp4lT3aOtJMqjAT",upcoming:"Ar5Q9JpCbRQjA3OMib2W",title:"oqSOn8U_QmqEzSvyfAw_",played:"iMwtWGP1vWpUXRv3MLTP",artist:"INKd0vI4DamezRZUfFHO",animateGlow:"q8d4R7JJbyKfMfb5qTtn",duration:"hxXzgFhspryRgl6_AkmQ",primary:"z8K08MurHExDsFH50TjN",btn:"DLgbTdB3hYU0zYVmvotm",info:"IpLs3GshduGnVRAThUSV"};let vr=!1;const yr=e=>{const t=(0,s.c)(61),{songId:n,artist:r,title:l,duration:o,onSongQueue:i,onSongStarClick:c,onSongInfo:d,isPlayed:m,isStarred:g,isUpcoming:f,isAdmin:v,numStars:y,numMedia:b,filterKeywords:C}=e,[w,A]=(0,a.useState)(!1);let S;t[0]!==f||t[1]!==i||t[2]!==n?(S=()=>{vr?vr=!1:f||i(n)},t[0]=f,t[1]=i,t[2]=n,t[3]=S):S=t[3];const N=S;let _;t[4]!==d||t[5]!==n?(_=()=>d(n),t[4]=d,t[5]=n,t[6]=_):_=t[6];const I=_;let R;t[7]!==c||t[8]!==n?(R=()=>c(n),t[7]=c,t[8]=n,t[9]=R):R=t[9];const P=R;let L,O,k;t[10]!==v?(L=e=>{const{event:t}=e;vr="mouseup"===t.type,A(v)},t[10]=v,t[11]=L):L=t[11],t[12]===Symbol.for("react.memo_cache_sentinel")?(O=e=>{const{event:t}=e;vr="mouseup"===t.type,A(!1)},t[12]=O):O=t[12],t[13]!==L?(k={onSwipedLeft:L,onSwipedRight:O,preventScrollOnSwipe:!0,trackMouse:!0},t[13]=L,t[14]=k):k=t[14];const T=(0,or.uh)(k),M=m&&fr.played,V=f&&fr.upcoming,x=g&&fr.starred,z=w&&fr.expanded,H=r&&fr.withArtist;let U,D,G,q,F,B,j,W,Y,Q,J,K,Z,X,$;return t[15]!==z||t[16]!==H||t[17]!==M||t[18]!==V||t[19]!==x?(U=(0,p.A)(fr.container,M,V,x,z,H),t[15]=z,t[16]=H,t[17]=M,t[18]=V,t[19]=x,t[20]=U):U=t[20],t[21]!==o?(D=Ae(o),t[21]=o,t[22]=D):D=t[22],t[23]!==D?(G=a.createElement("div",{className:fr.duration},D),t[23]=D,t[24]=G):G=t[24],t[25]!==C||t[26]!==l?(q=C?.length?a.createElement(lr(),{autoEscape:!0,textToHighlight:l,searchWords:C}):l,t[25]=C,t[26]=l,t[27]=q):q=t[27],t[28]!==v||t[29]!==b?(F=v&&b>1&&a.createElement("i",null," ","(",b,")"),t[28]=v,t[29]=b,t[30]=F):F=t[30],t[31]!==r?(B=r&&a.createElement("div",{className:fr.artist},r),t[31]=r,t[32]=B):B=t[32],t[33]!==q||t[34]!==F||t[35]!==B?(j=a.createElement("div",{className:fr.title},q,F,B),t[33]=q,t[34]=F,t[35]=B,t[36]=j):j=t[36],t[37]!==N||t[38]!==j?(W=a.createElement("div",{onClick:N,className:fr.primary},j),t[37]=N,t[38]=j,t[39]=W):W=t[39],t[40]!==f||t[41]!==G||t[42]!==W?(Y=a.createElement(ir,{toggle:f,className:fr.animateGlow},G,W),t[40]=f,t[41]=G,t[42]=W,t[43]=Y):Y=t[43],t[44]!==P||t[45]!==g||t[46]!==y?(Q=a.createElement(pr,{className:fr.btn,onClick:P,isStarred:g,count:y}),t[44]=P,t[45]=g,t[46]=y,t[47]=Q):Q=t[47],t[48]===Symbol.for("react.memo_cache_sentinel")?(J=(0,p.A)(fr.btn,fr.info),t[48]=J):J=t[48],t[49]===Symbol.for("react.memo_cache_sentinel")?(K=a.createElement(h.A,{icon:"INFO_OUTLINE"}),t[49]=K):K=t[49],t[50]!==I?(Z=a.createElement(E,{onClick:I,className:J,"data-hide":!0},K),t[50]=I,t[51]=Z):Z=t[51],t[52]!==w||t[53]!==Q||t[54]!==Z?(X=a.createElement(Er,{btnWidth:56,isExpanded:w},Q,Z),t[52]=w,t[53]=Q,t[54]=Z,t[55]=X):X=t[55],t[56]!==T||t[57]!==U||t[58]!==Y||t[59]!==X?($=a.createElement("div",(0,u.A)({},T,{className:U}),Y,X),t[56]=T,t[57]=U,t[58]=Y,t[59]=X,t[60]=$):$=t[60],$};var br=n(8870);const Cr=e=>{const t=(0,s.c)(35),n=(0,d.j)(),r=(0,d.G)(wr),l=(0,d.G)(Ar),o=(0,d.G)(Sr),i=(0,d.G)(Nr),c=(0,d.G)(_r),{played:m,upcoming:p,current:h}=(0,d.G)(Xa);let g;t[0]!==n?(g=e=>n((0,dn.$1)(e)),t[0]=n,t[1]=g):g=t[1];const E=g;let f;t[2]!==n?(f=e=>n((0,et.XH)(e)),t[2]=n,t[3]=f):f=t[3];const v=f;let y;t[4]!==n?(y=e=>n((0,br.D)(e)),t[4]=n,t[5]=y):y=t[5];const b=y;let C;if(t[6]!==r||t[7]!==h||t[8]!==v||t[9]!==E||t[10]!==b||t[11]!==c||t[12]!==m||t[13]!==e.filterKeywords||t[14]!==e.showArtist||t[15]!==e.songIds||t[16]!==l||t[17]!==i||t[18]!==o||t[19]!==p){let n;t[21]!==r||t[22]!==h||t[23]!==v||t[24]!==E||t[25]!==b||t[26]!==c||t[27]!==m||t[28]!==e.filterKeywords||t[29]!==e.showArtist||t[30]!==l||t[31]!==i||t[32]!==o||t[33]!==p?(n=t=>a.createElement(yr,(0,u.A)({},l[t],{artist:e.showArtist?r[l[t].artistId].name:"",filterKeywords:e.filterKeywords,isPlayed:m.includes(t),isUpcoming:p.includes(t)||h===t,isStarred:o.includes(t),isAdmin:c,key:t,numStars:i[t]||0,onSongQueue:E,onSongStarClick:b,onSongInfo:v})),t[21]=r,t[22]=h,t[23]=v,t[24]=E,t[25]=b,t[26]=c,t[27]=m,t[28]=e.filterKeywords,t[29]=e.showArtist,t[30]=l,t[31]=i,t[32]=o,t[33]=p,t[34]=n):n=t[34],C=e.songIds.map(n),t[6]=r,t[7]=h,t[8]=v,t[9]=E,t[10]=b,t[11]=c,t[12]=m,t[13]=e.filterKeywords,t[14]=e.showArtist,t[15]=e.songIds,t[16]=l,t[17]=i,t[18]=o,t[19]=p,t[20]=C}else C=t[20];return C};function wr(e){return e.artists.entities}function Ar(e){return e.songs.entities}function Sr(e){return(0,Ka.wd)(e.userStars).starredSongs}function Nr(e){return e.starCounts.songs}function _r(e){return e.user.isAdmin}const Ir="ZQ1vJSuEzaXfK5U2mVy3",Rr="Lo0KOIA2KNbjdkAzONWs",Pr="p93wNKEZo5tcFcoqQsLu",Lr="EDIoZvkx8L71cjC29VBS",Or="uK9euOQJZqLMy1JCBauJ",kr="b9LqH0GqWQ8WmCaa4ktx",Tr="HZ0_7hegL7xDvnX1Vw9I",Mr="sfB8p0Y7lGZmslY0UxWw",Vr=e=>{const t=(0,s.c)(61),{artistSongIds:n,filterKeywords:r,isExpanded:l,name:o,onArtistClick:i,starredSongs:c,style:d,upcomingSongs:m}=e;let u,g,E,f,v,y,b,C,w,A,S,N,_,I,R;if(t[0]!==n||t[1]!==l||t[2]!==i||t[3]!==c||t[4]!==d||t[5]!==m){let e;t[15]!==m?(e=e=>m.includes(e),t[15]=m,t[16]=e):e=t[16];const r=n.some(e);if(t[17]!==n||t[18]!==i||t[19]!==c||t[20]!==d){let e;t[25]!==c?(e=e=>c.includes(e),t[25]=c,t[26]=e):e=t[26];const a=n.some(e);C=d,w="no",v=i,y=(0,p.A)(Ir,a&&Or),t[17]=n,t[18]=i,t[19]=c,t[20]=d,t[21]=v,t[22]=y,t[23]=C,t[24]=w}else v=t[21],y=t[22],C=t[23],w=t[24];let s,o,A;t[27]===Symbol.for("react.memo_cache_sentinel")?(s=a.createElement(h.A,{icon:"FOLDER"}),t[27]=s):s=t[27],t[28]!==l?(o=l&&a.createElement("div",{className:Lr},a.createElement(h.A,{icon:"CHEVRON_DOWN"})),t[28]=l,t[29]=o):o=t[29],t[30]!==n.length||t[31]!==l?(A=!l&&a.createElement("div",{className:kr},n.length),t[30]=n.length,t[31]=l,t[32]=A):A=t[32],t[33]!==o||t[34]!==A?(b=a.createElement("div",{className:Pr},s,o,A),t[33]=o,t[34]=A,t[35]=b):b=t[35],u=ir,E=r,f=Tr,g=(0,p.A)(Rr,r&&Mr),t[0]=n,t[1]=l,t[2]=i,t[3]=c,t[4]=d,t[5]=m,t[6]=u,t[7]=g,t[8]=E,t[9]=f,t[10]=v,t[11]=y,t[12]=b,t[13]=C,t[14]=w}else u=t[6],g=t[7],E=t[8],f=t[9],v=t[10],y=t[11],b=t[12],C=t[13],w=t[14];return t[36]!==r||t[37]!==o?(A=r?.length?a.createElement(lr(),{autoEscape:!0,textToHighlight:o,searchWords:r}):o,t[36]=r,t[37]=o,t[38]=A):A=t[38],t[39]!==g||t[40]!==A?(S=a.createElement("div",{className:g},A),t[39]=g,t[40]=A,t[41]=S):S=t[41],t[42]!==u||t[43]!==S||t[44]!==E||t[45]!==f?(N=a.createElement(u,{toggle:E,className:f},S),t[42]=u,t[43]=S,t[44]=E,t[45]=f,t[46]=N):N=t[46],t[47]!==N||t[48]!==v||t[49]!==y||t[50]!==b?(_=a.createElement("div",{onClick:v,className:y},b,N),t[47]=N,t[48]=v,t[49]=y,t[50]=b,t[51]=_):_=t[51],t[52]!==n||t[53]!==r||t[54]!==l?(I=l&&a.createElement(Cr,{songIds:n,showArtist:!1,filterKeywords:r}),t[52]=n,t[53]=r,t[54]=l,t[55]=I):I=t[55],t[56]!==_||t[57]!==I||t[58]!==C||t[59]!==w?(R=a.createElement("div",{style:C,translate:w},_,I),t[56]=_,t[57]=I,t[58]=C,t[59]=w,t[60]=R):R=t[60],R},xr=e=>{const t=(0,s.c)(16),{index:n,style:r,dispatch:l,artists:o,expandedArtists:i}=e,c=(0,d.G)(Hr),{starredSongs:m}=(0,d.G)(Ur),{upcoming:u,current:p}=(0,d.G)(Xa),h=o.entities[o.result[n]];p&&u.push(p);const g=h.songIds;let E;t[0]!==h.artistId||t[1]!==i?(E=i.includes(h.artistId),t[0]=h.artistId,t[1]=i,t[2]=E):E=t[2];const f=c[h.artistId]||0;let v,y;return t[3]!==h.artistId||t[4]!==l?(v=()=>l((0,w.RH)(h.artistId)),t[3]=h.artistId,t[4]=l,t[5]=v):v=t[5],t[6]!==h.artistId||t[7]!==h.name||t[8]!==h.songIds||t[9]!==m||t[10]!==r||t[11]!==E||t[12]!==f||t[13]!==v||t[14]!==u?(y=a.createElement(Vr,{artistSongIds:g,isExpanded:E,key:h.artistId,name:h.name,numStars:f,onArtistClick:v,upcomingSongs:u,starredSongs:m,style:r}),t[6]=h.artistId,t[7]=h.name,t[8]=h.songIds,t[9]=m,t[10]=r,t[11]=E,t[12]=f,t[13]=v,t[14]=u,t[15]=y):y=t[15],y},zr=e=>{const t=(0,s.c)(30),{ui:n}=e,r=(0,d.j)(),{expandedArtists:l}=(0,d.G)(Dr),o=(0,d.G)(Gr),i=(0,d.G)(Za),c=(0,d.G)(qr),m=(0,a.useRef)(o),u=(0,a.useRef)(null);let p,h,g;t[0]!==r?(p=()=>()=>{r((0,w.AR)(m.current))},h=[r],t[0]=r,t[1]=p,t[2]=h):(p=t[1],h=t[2]),(0,a.useEffect)(p,h),t[3]!==c.entities||t[4]!==c.result||t[5]!==l?(g=e=>{const t=c.result[e];let n=48;return l.includes(t)&&(n=48+56*c.entities[t].songIds.length),n},t[3]=c.entities,t[4]=c.result,t[5]=l,t[6]=g):g=t[6];const E=g;let f;t[7]===Symbol.for("react.memo_cache_sentinel")?(f=e=>{const{startIndex:t}=e;m.current=t},t[7]=f):f=t[7];const v=f;let y;t[8]!==i?(y=e=>{const t=i[e];void 0!==t&&u.current&&u.current.scrollToRow({index:t>0?t-1:t,align:"start"})},t[8]=i,t[9]=y):y=t[9];const b=y;let C;t[10]===Symbol.for("react.memo_cache_sentinel")?(C=e=>{e&&(u.current=e,m.current&&u.current.scrollToRow({index:m.current,align:"start",behavior:"instant"}))},t[10]=C):C=t[10];const A=C;if(0===c.result.length)return null;let S,N;t[11]!==c||t[12]!==r||t[13]!==l?(S={dispatch:r,artists:c,expandedArtists:l},t[11]=c,t[12]=r,t[13]=l,t[14]=S):S=t[14],t[15]!==c.result.length||t[16]!==E||t[17]!==S||t[18]!==n.footerHeight||t[19]!==n.headerHeight||t[20]!==n.innerHeight||t[21]!==n.innerWidth?(N=a.createElement(tr,{rowComponent:xr,rowProps:S,rowHeight:E,numRows:c.result.length,onRowsRendered:v,onRef:A,paddingTop:n.headerHeight,paddingRight:30,paddingBottom:n.footerHeight,width:n.innerWidth,height:n.innerHeight}),t[15]=c.result.length,t[16]=E,t[17]=S,t[18]=n.footerHeight,t[19]=n.headerHeight,t[20]=n.innerHeight,t[21]=n.innerWidth,t[22]=N):N=t[22];const _=n.innerHeight-n.headerHeight-n.footerHeight;let I,R;return t[23]!==b||t[24]!==_||t[25]!==n.headerHeight?(I=a.createElement(rr,{onPick:b,height:_,top:n.headerHeight}),t[23]=b,t[24]=_,t[25]=n.headerHeight,t[26]=I):I=t[26],t[27]!==I||t[28]!==N?(R=a.createElement("div",null,N,I),t[27]=I,t[28]=N,t[29]=R):R=t[29],R};function Hr(e){return e.starCounts.artists}function Ur(e){return(0,Ka.wd)(e.userStars)}function Dr(e){return e.library}function Gr(e){return e.library.scrollRow}function qr(e){return e.artists}var Fr=n(54638);const Br=e=>e.artists,jr=e=>e.songs,Wr=e=>e.library.filterStr.trim().toLowerCase(),Yr=e=>e.library.filterStarred,Qr=(0,f.Mz)([Br],e=>new Fr.W5(e.result,{keySelector:t=>e.entities[t].name,threshold:.8})),Jr=(0,f.Mz)([jr],e=>new Fr.W5(e.result,{keySelector:t=>e.entities[t].title,threshold:.8})),Kr=(0,f.Mz)([Br,Wr,Qr],(e,t,n)=>t?n.search(t,{returnMatchData:!0}).map(e=>e.item):e.result),Zr=(0,f.Mz)([jr,Wr,Jr],(e,t,n)=>t?n.search(t,{returnMatchData:!0}).map(e=>e.item):e.result),Xr=(0,f.Mz)([Kr,Yr,e=>(0,Ka.wd)(e.userStars).starredArtists],(e,t,n)=>e.filter(e=>!t||n.includes(e))),$r=(0,f.Mz)([Zr,Yr,e=>(0,Ka.wd)(e.userStars).starredSongs],(e,t,n)=>e.filter(e=>!t||n.includes(e))),es=(0,f.Mz)([Xr,$r],(e,t)=>({artistsResult:e,songsResult:t})),ts="FM0NON48tUGevc0Mocok",ns="CEmdQRH561N9ZZS2sElY",as=e=>{const t=(0,s.c)(32),{index:n,style:r,dispatch:l,artists:o,filterKeywords:i,filterStarred:c,artistsResult:m,songsResult:u,expandedArtistResults:p}=e,{starredSongs:h}=(0,d.G)(ss),{upcoming:g}=(0,d.G)(Xa);if(0===n){const e=c?"starred ":"",n=1===m.length?"artist":"artists";let s;return t[0]!==m.length||t[1]!==r||t[2]!==e||t[3]!==n?(s=a.createElement("div",{key:"artistsHeading",style:r,className:ts},m.length," ",e,n),t[0]=m.length,t[1]=r,t[2]=e,t[3]=n,t[4]=s):s=t[4],s}if(n>0&&n<m.length+1){const e=m[n-1],s=o.entities[e],c=s.songIds;let d,u,E;return t[5]!==e||t[6]!==p?(d=p.includes(e),t[5]=e,t[6]=p,t[7]=d):d=t[7],t[8]!==e||t[9]!==l?(u=()=>l((0,w.wk)(e)),t[8]=e,t[9]=l,t[10]=u):u=t[10],t[11]!==s.name||t[12]!==s.songIds||t[13]!==e||t[14]!==i||t[15]!==h||t[16]!==r||t[17]!==d||t[18]!==u||t[19]!==g?(E=a.createElement(Vr,{artistSongIds:c,filterKeywords:i,isExpanded:d,key:e,name:s.name,numStars:0,onArtistClick:u,upcomingSongs:g,starredSongs:h,style:r}),t[11]=s.name,t[12]=s.songIds,t[13]=e,t[14]=i,t[15]=h,t[16]=r,t[17]=d,t[18]=u,t[19]=g,t[20]=E):E=t[20],E}if(n===m.length+1){const e=c?"starred ":"",n=1===u.length?"song":"songs";let s;return t[21]!==u.length||t[22]!==r||t[23]!==e||t[24]!==n?(s=a.createElement("div",{key:"songsHeading",style:r,className:ns},u.length," ",e,n),t[21]=u.length,t[22]=r,t[23]=e,t[24]=n,t[25]=s):s=t[25],s}let E,f;return t[26]!==i||t[27]!==u?(E=a.createElement(Cr,{songIds:u,showArtist:!0,filterKeywords:i}),t[26]=i,t[27]=u,t[28]=E):E=t[28],t[29]!==r||t[30]!==E?(f=a.createElement("div",{style:r,key:"songs"},E),t[29]=r,t[30]=E,t[31]=f):f=t[31],f},rs=e=>{const t=(0,s.c)(23),{ui:n}=e,r=(0,d.j)(),l=(0,d.G)(ls),o=(0,d.G)(os),{filterStr:i,filterStarred:c}=(0,d.G)(is),{artistsResult:m,songsResult:u}=(0,d.G)(es),p=(0,a.useRef)(null);let h;t[0]!==i?(h=i.trim()?i.trim().toLowerCase().split(" "):[],t[0]=i,t[1]=h):h=t[1];const g=h;let E;t[2]!==l||t[3]!==m||t[4]!==o||t[5]!==u?(E=e=>{if(0===e)return 24;if(e>0&&e<m.length+1){const t=m[e-1];let n=48;return o.includes(t)&&(n=48+56*l.entities[t].songIds.length),n}return e===m.length+1?24:68*u.length},t[2]=l,t[3]=m,t[4]=o,t[5]=u,t[6]=E):E=t[6];const f=E;let v;t[7]===Symbol.for("react.memo_cache_sentinel")?(v=e=>{e&&(p.current=e)},t[7]=v):v=t[7];const y=v;let b;t[8]!==l||t[9]!==m||t[10]!==r||t[11]!==o||t[12]!==g||t[13]!==c||t[14]!==u?(b={dispatch:r,artists:l,filterStarred:c,filterKeywords:g,artistsResult:m,songsResult:u,expandedArtistResults:o},t[8]=l,t[9]=m,t[10]=r,t[11]=o,t[12]=g,t[13]=c,t[14]=u,t[15]=b):b=t[15];const C=m.length+3;let w;return t[16]!==f||t[17]!==b||t[18]!==C||t[19]!==n.footerHeight||t[20]!==n.headerHeight||t[21]!==n.innerHeight?(w=a.createElement(tr,{rowComponent:as,rowProps:b,rowHeight:f,numRows:C,paddingTop:n.headerHeight,paddingRight:4,paddingBottom:n.footerHeight,height:n.innerHeight,onRef:y}),t[16]=f,t[17]=b,t[18]=C,t[19]=n.footerHeight,t[20]=n.headerHeight,t[21]=n.innerHeight,t[22]=w):w=t[22],w};function ss(e){return(0,Ka.wd)(e.userStars)}function ls(e){return e.artists}function os(e){return e.library.expandedArtistResults}function is(e){return e.library}const cs="l_cLCw9eRNCSyRKgXWS5",ds="Fog7IKmx1oVfPd8FU407",ms=e=>{const t=(0,s.c)(5);let n,r;return t[0]!==e.className?(n=(0,p.A)(ds,e.className),t[0]=e.className,t[1]=n):n=t[1],t[2]!==e.children||t[3]!==n?(r=a.createElement("div",{className:cs},a.createElement("div",{className:n},e.children)),t[2]=e.children,t[3]=n,t[4]=r):r=t[4],r},us="Cy2j9ZX2IZrQWobGUi7X",ps="dTWtSURLdyh9OV1LTnaC",hs="L3qh5gTBMbZXjFIzwmUI",gs="f7Ry7aQoljxI7zOj18tU",Es="jZojmB6JI3Y1bkX6XnDI",fs="EcvP0cnG_tPw2rSbAdHh",vs=()=>{const e=(0,s.c)(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=a.createElement("div",{className:us},a.createElement("div",{className:ps}),a.createElement("div",{className:(0,p.A)(ps,hs)}),a.createElement("div",{className:(0,p.A)(ps,gs)}),a.createElement("div",{className:(0,p.A)(ps,Es)}),a.createElement("div",{className:(0,p.A)(ps,fs)})),e[0]=t):t=e[0],t},ys="bhZWQ2xPWPTNIX6C4F3a",bs=()=>{const e=(0,s.c)(20),{isAdmin:t}=(0,d.G)(Cs),{isLoading:n,filterStr:l,filterStarred:o}=(0,d.G)(ws),i=(0,d.G)(As),c=(0,d.G)(Ss);let m;e[0]!==o||e[1]!==l?(m=!!l.trim().length||o,e[0]=o,e[1]=l,e[2]=m):m=e[2];const u=m,[p]=(0,a.useState)(c.headerHeight),[h,g]=(0,a.useState)(null);if(null===h&&c.headerHeight>p&&g(c.headerHeight),!h)return null;let E,f,v,y,b;return e[3]!==u||e[4]!==c?(E=!u&&a.createElement(zr,{ui:c}),e[3]=u,e[4]=c,e[5]=E):E=e[5],e[6]!==u||e[7]!==c?(f=u&&a.createElement(rs,{ui:c}),e[6]=u,e[7]=c,e[8]=f):f=e[8],e[9]!==n?(v=n&&a.createElement(vs,null),e[9]=n,e[10]=v):v=e[10],e[11]!==t||e[12]!==n||e[13]!==i?(y=!n&&0===i.length&&a.createElement(ms,{className:ys},a.createElement("h1",null,"Library Empty"),t&&a.createElement("p",null,a.createElement(r.N_,{to:"/account"},"Add media folders")," ","to get started.")),e[11]=t,e[12]=n,e[13]=i,e[14]=y):y=e[14],e[15]!==E||e[16]!==f||e[17]!==v||e[18]!==y?(b=a.createElement(a.Fragment,null,E,f,v,y),e[15]=E,e[16]=f,e[17]=v,e[18]=y,e[19]=b):b=e[19],b};function Cs(e){return e.user}function ws(e){return e.library}function As(e){return e.songs.result}function Ss(e){return e.ui}var Ns=n(54669),_s=n(5668);const Is={container:"wmZzvQLV8SUXBxloByaI",content:"OcXId78BLaxBJIqdYIof",greyed:"umnUSnD73DO3rWOYPZ9K",imageContainer:"GacRKdveAPO6_ywV1_ca",waitContainer:"ctOyiO7TWxvaj2cMva6s",wait:"pCDYhCexaZe_zujCsnng",primary:"nDkBZyovKLxzMG7K_3Tg",innerPrimary:"Wj7Me9sY8G3TTqTAeAaj",title:"oyozFDwcV8GMOumLs906",artist:"PyOIw1JanvSSiLfkRkZt",user:"HEBTYqqhv5BzgHhWH7vd",isOwner:"_LtmdT6l38fSEjxPLZod",btnContainer:"SUdDbZdeZwQPymCmhaMA",btnStar:"en2EUqvEdVRhrEtbh7hu",active:"YmwxQ7Vy9kTAPCo00I2U",danger:"tX8eNQUgD77rREuwXWHO",btnAdd:"gh_SYElq5eTJHE5IZynP",btnPlayNext:"ENoEOjlwEk0jBI45f4pk",current:"x1y3JtPFnfVcJSd6mKkB",queueItemCrawl:"cWb6RjtltIZ875IxD0pA",paused:"pXOty7OejiIGXdAxm6PY"},Rs=e=>{const t=(0,s.c)(128),{artist:n,errorMessage:r,isCurrent:l,isErrored:o,isInfoable:i,isMovable:c,isOwner:m,isPlayed:h,isPlaying:g,isRemovable:f,isReplayable:v,isSkippable:y,isStarred:b,isUpcoming:C,onMoveClick:w,onRemoveUpcoming:A,pctPlayed:S,queueId:N,songId:_,starCount:I,title:R,userDateUpdated:P,userDisplayName:L,userId:O,wait:M}=e,[V,x]=(0,a.useState)(!1),z=(0,a.useRef)(!1),H=(0,d.j)();let U;t[0]!==H||t[1]!==r?(U=()=>H((0,T.f1)(r)),t[0]=H,t[1]=r,t[2]=U):U=t[2];const D=U;let G;t[3]!==H||t[4]!==_?(G=()=>H((0,et.XH)(_)),t[3]=H,t[4]=_,t[5]=G):G=t[5];const q=G;let F;t[6]!==w||t[7]!==N?(F=()=>{w(N),x(!1)},t[6]=w,t[7]=N,t[8]=F):F=t[8];const B=F;let j;t[9]!==H||t[10]!==N?(j=()=>{H((0,k.n3)(N)),x(!1)},t[9]=H,t[10]=N,t[11]=j):j=t[11];const W=j;let Y;t[12]!==H||t[13]!==_?(Y=()=>{H((0,dn.$1)(_)),x(!1)},t[12]=H,t[13]=_,t[14]=Y):Y=t[14];const Q=Y;let J;t[15]!==H?(J=()=>{H((0,k.Lx)()),x(!1)},t[15]=H,t[16]=J):J=t[16];const K=J;let Z;t[17]!==H||t[18]!==N?(Z=()=>H((0,dn.Ai)({queueId:N})),t[17]=H,t[18]=N,t[19]=Z):Z=t[19];const X=Z;let $;t[20]!==H||t[21]!==_?($=()=>H((0,br.D)(_)),t[20]=H,t[21]=_,t[22]=$):$=t[22];const ee=$;let te,ne,ae;t[23]!==o||t[24]!==i||t[25]!==f||t[26]!==y?(te=()=>{x(o||i||f||y)},t[23]=o,t[24]=i,t[25]=f,t[26]=y,t[27]=te):te=t[27],t[28]===Symbol.for("react.memo_cache_sentinel")?(ne=()=>x(!1),t[28]=ne):ne=t[28],t[29]!==te?(ae={onSwipedLeft:te,onSwipedRight:ne,preventScrollOnSwipe:!0,trackMouse:!0},t[29]=te,t[30]=ae):ae=t[30];const re=(0,or.uh)(ae);let se,le;t[31]!==m||t[32]!==A||t[33]!==L||t[34]!==O?(se=()=>{const e=m?"Remove all your upcoming songs?":`Remove all upcoming songs for "${L}"?`;z.current=!0,confirm(e)&&A(O)},t[31]=m,t[32]=A,t[33]=L,t[34]=O,t[35]=se):se=t[35],t[36]===Symbol.for("react.memo_cache_sentinel")?(le={threshold:700,cancelOnMovement:!0},t[36]=le):le=t[36];const oe=(0,Ns.HZ)(se,le);let ie,ce;t[37]!==K||t[38]!==m||t[39]!==A||t[40]!==L||t[41]!==O?(ie=()=>{const e=m?"Skip and remove all your upcoming songs?":`Skip and remove all upcoming songs for "${L}"?`;z.current=!0,confirm(e)&&(A(O),K())},t[37]=K,t[38]=m,t[39]=A,t[40]=L,t[41]=O,t[42]=ie):ie=t[42],t[43]===Symbol.for("react.memo_cache_sentinel")?(ce={threshold:700,cancelOnMovement:!0},t[43]=ce):ce=t[43];const de=(0,Ns.HZ)(ie,ce),me=l&&Is.current,ue=l&&!g&&Is.paused;let pe;t[44]!==me||t[45]!==ue?(pe=(0,p.A)(Is.container,me,ue),t[44]=me,t[45]=ue,t[46]=pe):pe=t[46];const he=(l&&S<2?2:S)+"%";let ge;t[47]!==he?(ge={"--progress":he},t[47]=he,t[48]=ge):ge=t[48];const Ee=ge,fe=h&&Is.greyed;let ve,ye,be,Ce,we;t[49]!==fe?(ve=(0,p.A)(Is.imageContainer,fe),t[49]=fe,t[50]=ve):ve=t[50],t[51]!==P||t[52]!==O?(ye=a.createElement(_s.A,{userId:O,dateUpdated:P}),t[51]=P,t[52]=O,t[53]=ye):ye=t[53],t[54]!==m||t[55]!==C||t[56]!==M?(be=C&&a.createElement("div",{className:(0,p.A)(Is.wait,m&&Is.isOwner)},M),t[54]=m,t[55]=C,t[56]=M,t[57]=be):be=t[57],t[58]!==be?(Ce=a.createElement("div",{className:Is.waitContainer},be),t[58]=be,t[59]=Ce):Ce=t[59],t[60]!==ve||t[61]!==ye||t[62]!==Ce?(we=a.createElement("div",{className:ve},ye,Ce),t[60]=ve,t[61]=ye,t[62]=Ce,t[63]=we):we=t[63];const Ae=h&&Is.greyed;let Se,Ne,_e,Ie;t[64]!==Ae?(Se=(0,p.A)(Is.primary,Ae),t[64]=Ae,t[65]=Se):Se=t[65],t[66]!==R?(Ne=a.createElement("div",{className:Is.title},R),t[66]=R,t[67]=Ne):Ne=t[67],t[68]!==n?(_e=a.createElement("div",{className:Is.artist},n),t[68]=n,t[69]=_e):_e=t[69],t[70]!==Ne||t[71]!==_e?(Ie=a.createElement("div",{className:Is.innerPrimary},Ne,_e),t[70]=Ne,t[71]=_e,t[72]=Ie):Ie=t[72];const Re=m&&Is.isOwner;let Pe,Le,Oe,ke,Te,Me,Ve,xe,ze,He,Ue,De,Ge,qe;return t[73]!==Re?(Pe=(0,p.A)(Is.user,Re),t[73]=Re,t[74]=Pe):Pe=t[74],t[75]!==Pe||t[76]!==L?(Le=a.createElement("div",{className:Pe},L),t[75]=Pe,t[76]=L,t[77]=Le):Le=t[77],t[78]!==Se||t[79]!==Ie||t[80]!==Le?(Oe=a.createElement("div",{className:Se,translate:"no"},Ie,Le),t[78]=Se,t[79]=Ie,t[80]=Le,t[81]=Oe):Oe=t[81],t[82]!==D||t[83]!==o?(ke=o&&a.createElement(E,{className:Is.danger,icon:"INFO_OUTLINE",onClick:D}),t[82]=D,t[83]=o,t[84]=ke):ke=t[84],t[85]!==ee||t[86]!==b||t[87]!==I?(Te=a.createElement(pr,{className:Is.btnStar,isStarred:b,onClick:ee,count:I}),t[85]=ee,t[86]=b,t[87]=I,t[88]=Te):Te=t[88],t[89]!==q||t[90]!==i?(Me=i&&a.createElement(E,{className:Is.active,"data-hide":!0,icon:"INFO_OUTLINE",onClick:q}),t[89]=q,t[90]=i,t[91]=Me):Me=t[91],t[92]!==B||t[93]!==c?(Ve=c&&a.createElement(E,{className:(0,p.A)(Is.btnMove,Is.active),"data-hide":!0,icon:"MOVE_TOP",onClick:B}),t[92]=B,t[93]=c,t[94]=Ve):Ve=t[94],t[95]!==Q||t[96]!==h?(xe=h&&a.createElement(E,{className:(0,p.A)(Is.btnAdd,Is.active),"data-hide":!0,icon:"PLUS",onClick:Q}),t[95]=Q,t[96]=h,t[97]=xe):xe=t[97],t[98]!==W||t[99]!==v?(ze=v&&a.createElement(E,{className:(0,p.A)(Is.active,Is.danger),"data-hide":!0,icon:"REPLAY",onClick:W}),t[98]=W,t[99]=v,t[100]=ze):ze=t[100],t[101]!==oe||t[102]!==X||t[103]!==f?(He=f&&a.createElement(E,(0,u.A)({className:(0,p.A)(Is.btnRemove,Is.danger),"data-hide":!0,icon:"DELETE",onTouchEnd:e=>{if(z.current)return e.preventDefault(),e.stopPropagation(),void(z.current=!1)},onClick:()=>{z.current?z.current=!1:X()}},oe())),t[101]=oe,t[102]=X,t[103]=f,t[104]=He):He=t[104],t[105]!==de||t[106]!==K||t[107]!==y?(Ue=y&&a.createElement(E,(0,u.A)({className:(0,p.A)(Is.btnPlayNext,Is.danger),"data-hide":!0,icon:"PLAY_NEXT",onTouchEnd:e=>{if(z.current)return e.preventDefault(),e.stopPropagation(),void(z.current=!1)},onClick:()=>{z.current?z.current=!1:K()}},de())),t[105]=de,t[106]=K,t[107]=y,t[108]=Ue):Ue=t[108],t[109]!==V||t[110]!==ke||t[111]!==Te||t[112]!==Me||t[113]!==Ve||t[114]!==xe||t[115]!==ze||t[116]!==He||t[117]!==Ue?(De=a.createElement(Er,{btnWidth:56,isExpanded:V,className:Is.btnContainer},ke,Te,Me,Ve,xe,ze,He,Ue),t[109]=V,t[110]=ke,t[111]=Te,t[112]=Me,t[113]=Ve,t[114]=xe,t[115]=ze,t[116]=He,t[117]=Ue,t[118]=De):De=t[118],t[119]!==we||t[120]!==Oe||t[121]!==De?(Ge=a.createElement("div",{className:Is.content},we,Oe,De),t[119]=we,t[120]=Oe,t[121]=De,t[122]=Ge):Ge=t[122],t[123]!==re||t[124]!==pe||t[125]!==Ee||t[126]!==Ge?(qe=a.createElement("div",(0,u.A)({},re,{className:pe,style:Ee}),Ge),t[123]=re,t[124]=pe,t[125]=Ee,t[126]=Ge,t[127]=qe):qe=t[127],qe};var Ps=n(40400);const Ls="bbUhdC2XhFqBtedX7G5x",Os="oj9sgd1_DuPZvgyJKc_3",ks=e=>{e.addEventListener("animationend",e=>e.currentTarget.classList.remove(Ls)),e.classList.add(Ls),e.style.removeProperty("opacity")},Ts=(e,t,n)=>{e.addEventListener("animationend",n),e.classList.add(Os)},Ms=(e,t)=>t===e,Vs=e=>{const t=(0,s.c)(6),{queueItems:n}=e,r=(0,d.G)(xs);let l;t[0]!==n?(l=a.Children.map(n,zs),t[0]=n,t[1]=l):l=t[1];const o=l;let i;return t[2]!==r||t[3]!==o||t[4]!==n?(i=a.createElement(Ps.ZI,{applyTransformOrigin:!1,decisionData:r,flipKey:n},o),t[2]=r,t[3]=o,t[4]=n,t[5]=i):i=t[5],i};function xs(e){return e.ui.headerHeight}function zs(e){return a.createElement(Ps.lf,{flipId:e.key,key:e.key,onAppear:ks,onExit:Ts,shouldFlip:Ms,translate:!0},a.createElement("div",null,e))}const Hs=()=>{const e=(0,s.c)(44),t=(0,d.G)(Us),{errorMessage:n,isAtQueueEnd:r,isErrored:l,isPlaying:o,position:i,queueId:c}=(0,d.G)(Ds),m=(0,d.G)(b.A),p=(0,d.G)(y.A),h=(0,d.G)(Gs),g=(0,d.G)(qs),E=(0,d.G)(Fs),f=(0,d.G)(Bs),v=(0,d.G)(C),w=(0,d.j)();let A;e[0]!==w||e[1]!==p.entities||e[2]!==p.result||e[3]!==c?(A=e=>{const t=p.entities[e].userId;let n=c;for(let e=p.result.indexOf(c);e>=0;e--)if(p.entities[p.result[e]].userId===t){n=p.result[e];break}w((0,dn.Pe)({queueId:e,prevQueueId:n}))},e[0]=w,e[1]=p.entities,e[2]=p.result,e[3]=c,e[4]=A):A=e[4];const S=A;let N;e[5]!==w?(N=e=>{w((0,dn.t2)(e))},e[5]=w,e[6]=N):N=e[6];const _=N;let I;if(e[7]!==t||e[8]!==n||e[9]!==S||e[10]!==_||e[11]!==r||e[12]!==l||e[13]!==o||e[14]!==m||e[15]!==i||e[16]!==p.entities||e[17]!==p.result||e[18]!==c||e[19]!==h||e[20]!==E||e[21]!==g||e[22]!==f||e[23]!==v){let s;e[25]!==t||e[26]!==n||e[27]!==S||e[28]!==_||e[29]!==r||e[30]!==l||e[31]!==o||e[32]!==m||e[33]!==i||e[34]!==p.entities||e[35]!==c||e[36]!==h||e[37]!==E||e[38]!==g||e[39]!==f||e[40]!==v?(s=e=>{const s=p.entities[e],d=h.entities[s.songId].duration,y=e===c&&!r,b=e!==c&&!m.includes(e),C=s.userId===f.userId;return a.createElement(Rs,(0,u.A)({},s,{artist:t.entities[h.entities[s.songId].artistId].name,errorMessage:y&&n?n:"",isCurrent:y,key:e,isErrored:y&&l,isInfoable:f.isAdmin,isMovable:b&&(C||f.isAdmin),isOwner:C,isPlayed:!b&&!y,isPlaying:y&&o,isRemovable:b&&(C||f.isAdmin),isReplayable:(!b||y)&&f.isAdmin,isSkippable:y&&(C||f.isAdmin),isStarred:g.includes(s.songId),isUpcoming:b,pctPlayed:y?i/d*100:0,starCount:E.songs[s.songId]||0,title:h.entities[s.songId].title,wait:Se(v[e],!0),onMoveClick:S,onRemoveUpcoming:_}))},e[25]=t,e[26]=n,e[27]=S,e[28]=_,e[29]=r,e[30]=l,e[31]=o,e[32]=m,e[33]=i,e[34]=p.entities,e[35]=c,e[36]=h,e[37]=E,e[38]=g,e[39]=f,e[40]=v,e[41]=s):s=e[41],I=p.result.map(s),e[7]=t,e[8]=n,e[9]=S,e[10]=_,e[11]=r,e[12]=l,e[13]=o,e[14]=m,e[15]=i,e[16]=p.entities,e[17]=p.result,e[18]=c,e[19]=h,e[20]=E,e[21]=g,e[22]=f,e[23]=v,e[24]=I}else I=e[24];const R=I;let P;return e[42]!==R?(P=a.createElement(Vs,{queueItems:R}),e[42]=R,e[43]=P):P=e[43],P};function Us(e){return e.artists}function Ds(e){return e.status}function Gs(e){return e.songs}function qs(e){return(0,Ka.wd)(e.userStars).starredSongs}function Fs(e){return e.starCounts}function Bs(e){return e.user}const js="SF0X5MbNRNL3euuIjCwB",Ws=()=>{const e=(0,s.c)(22),{innerWidth:t,innerHeight:n,headerHeight:l,footerHeight:o}=(0,d.G)(Ys),i=(0,d.G)(Qs),c=(0,d.G)(Js),m=(0,d.G)(y.A),u=(0,d.G)(Ks),p=(0,a.useRef)(null);let h,g,E,f,v,b,C,w;return e[0]!==m||e[1]!==u?(h=()=>{if(p.current){const e=m.result.indexOf(u);p.current.scrollTop=92*e}},e[0]=m,e[1]=u,e[2]=h):h=e[2],e[3]===Symbol.for("react.memo_cache_sentinel")?(g=[],e[3]=g):g=e[3],(0,a.useEffect)(h,g),e[4]!==o||e[5]!==l||e[6]!==n||e[7]!==t?(E={paddingTop:l,paddingBottom:o,width:t,height:n},e[4]=o,e[5]=l,e[6]=n,e[7]=t,e[8]=E):E=e[8],e[9]!==i?(f=!i&&a.createElement(ms,null,a.createElement("h1",null,"Get a Room!"),a.createElement("p",null,a.createElement(r.N_,{to:"/account"},"Sign in to a room")," ","to start queueing songs.")),e[9]=i,e[10]=f):f=e[10],e[11]!==c?(v=c&&a.createElement(vs,null),e[11]=c,e[12]=v):v=e[12],e[13]!==c||e[14]!==m?(b=!c&&0===m.result.length&&a.createElement(ms,null,a.createElement("h1",null,"Queue Empty"),a.createElement("p",null,"Tap a song in the"," ",a.createElement(r.N_,{to:"/library"},"library")," ","to queue it.")),e[13]=c,e[14]=m,e[15]=b):b=e[15],e[16]===Symbol.for("react.memo_cache_sentinel")?(C=a.createElement(Hs,null),e[16]=C):C=e[16],e[17]!==E||e[18]!==f||e[19]!==v||e[20]!==b?(w=a.createElement("div",{className:js,ref:p,style:E},f,v,b,C),e[17]=E,e[18]=f,e[19]=v,e[20]=b,e[21]=w):w=e[21],w};function Ys(e){return e.ui}function Qs(e){return!!e.user.roomId}function Js(e){return(0,Ka.wd)(e.queue).isLoading}function Ks(e){return e.status.queueId}const Zs=a.lazy(()=>Promise.all([n.e(447),n.e(958)]).then(n.bind(n,13958))),Xs=()=>{const e=(0,s.c)(5);let t,n,l,o,i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=a.createElement(r.qh,{path:"/account",element:a.createElement(Wa,null)}),e[0]=t):t=e[0],e[1]===Symbol.for("react.memo_cache_sentinel")?(n=a.createElement(r.qh,{path:"/library",element:a.createElement($s,{path:"/library",redirectTo:"/account"},a.createElement(bs,null))}),e[1]=n):n=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(l=a.createElement(r.qh,{path:"/queue",element:a.createElement($s,{path:"/queue",redirectTo:"/account"},a.createElement(Ws,null))}),e[2]=l):l=e[2],e[3]===Symbol.for("react.memo_cache_sentinel")?(o=a.createElement(r.qh,{path:"/player",element:a.createElement($s,{path:"/player",redirectTo:"/account"},a.createElement(Zs,null))}),e[3]=o):o=e[3],e[4]===Symbol.for("react.memo_cache_sentinel")?(i=a.createElement(r.BV,null,t,n,l,o,a.createElement(r.qh,{path:"/",element:a.createElement(r.C5,{to:{pathname:"/library",search:window.location.search},replace:!0})})),e[4]=i):i=e[4],i},$s=e=>{const t=(0,s.c)(10),{children:n,path:l,redirectTo:o}=e,{isAdmin:i,userId:c}=(0,d.G)(el),m=(0,r.zy)();if("/player"===l&&!i){let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=a.createElement(r.C5,{to:"/",replace:!0}),t[0]=e):e=t[0],e}if(null===c){let e,n,s;if(t[1]!==m.search||t[2]!==l||t[3]!==o){const a=new URLSearchParams(m.search);a.set("redirect",l),e=r.C5,n=o+"?",s=a.toString(),t[1]=m.search,t[2]=l,t[3]=o,t[4]=e,t[5]=n,t[6]=s}else e=t[4],n=t[5],s=t[6];const i=n+s;let c;return t[7]!==e||t[8]!==i?(c=a.createElement(e,{to:i,replace:!0}),t[7]=e,t[8]=i,t[9]=c):c=t[9],c}return n};function el(e){return e.user}const tl=()=>{const e=(0,s.c)(18),t=(0,r.RQ)("/player"),n=(0,d.j)(),l=(0,a.useRef)(null),o=(0,a.useRef)(null);let i,c;e[0]!==n?(i={onResize:e=>{const{height:t}=e;n((0,T.DP)(t))},ref:l},e[0]=n,e[1]=i):i=e[1],(0,m.A)(i),e[2]!==n?(c={onResize:e=>{const{height:t}=e;n((0,T.NJ)(t))},ref:o},e[2]=n,e[3]=c):c=e[3],(0,m.A)(c);const u=(0,d.G)(nl);let p;e[4]!==n?(p=()=>n((0,T.T6)()),e[4]=n,e[5]=p):p=e[5];const h=p;let g,f,v,y,b,C;return e[6]===Symbol.for("react.memo_cache_sentinel")?(g=a.createElement(ze,{ref:l}),f=a.createElement(Xs,null),e[6]=g,e[7]=f):(g=e[6],f=e[7]),e[8]!==t?(v=!t&&a.createElement(Ye,{ref:o}),e[8]=t,e[9]=v):v=e[9],e[10]===Symbol.for("react.memo_cache_sentinel")?(y=a.createElement(st,null),e[10]=y):y=e[10],e[11]!==h||e[12]!==u.errorMessage||e[13]!==u.isErrored?(b=u.isErrored&&a.createElement(X,{title:"Oops...",onClose:h,buttons:a.createElement(E,{variant:"primary",onClick:h},"OK")},a.createElement("p",{style:{WebkitUserSelect:"text",userSelect:"text"}},u.errorMessage)),e[11]=h,e[12]=u.errorMessage,e[13]=u.isErrored,e[14]=b):b=e[14],e[15]!==v||e[16]!==b?(C=a.createElement(a.Fragment,null,g,f,v,y,b),e[15]=v,e[16]=b,e[17]=C):C=e[17],C};function nl(e){return e.ui}const al=()=>{const e=(0,s.c)(3);let t,n,r;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=a.createElement(vs,null),n=c.A.get(),e[0]=t,e[1]=n):(t=e[0],n=e[1]),e[2]===Symbol.for("react.memo_cache_sentinel")?(r=a.createElement(l.Kq,{store:i.A},a.createElement(o.Q,{loading:t,persistor:n},a.createElement(a.Suspense,{fallback:a.createElement(vs,null)},a.createElement(tl,null)))),e[2]=r):r=e[2],r},rl=new URL(document.baseURI).pathname,sl=(0,r.Ys)([{path:"*",element:a.createElement(al,null)}],{basename:rl})},77170(e,t,n){n.d(t,{A:()=>a});class a{constructor(e=""){this.prefix=e,this.options={credentials:"same-origin"}}put=(e,t={})=>this.request("PUT",e,t);post=(e,t={})=>this.request("POST",e,t);get=(e,t={})=>this.request("GET",e,t);delete=(e,t={})=>this.request("DELETE",e,t);request=async(e,t,n={})=>{const a={...this.options,...n,method:e};"object"!=typeof a.body||a.body instanceof FormData||(a.headers=new Headers({"Content-Type":"application/json"}),a.body=JSON.stringify(a.body));const r=await fetch(`${document.baseURI}api/${this.prefix}${t}`,a);if(r.ok){const e=r.headers.get("Content-Type");return e&&e.includes("application/json")?r.json():r}const s=await r.text();throw new Error(s)}}},49905(e,t,n){n.d(t,{A:()=>a});const a=(0,n(23508).Ay)({autoConnect:!1,path:new URL(document.baseURI).pathname+"socket.io"})},95099(e,t,n){var a=n(96540),r=n(5338),s=n(35570),l=n(85555),o=n(49905),i=n(50554),c=n(77759);n(32681).A.init(l.A,()=>{null!==l.A.getState().user.userId&&(l.A.dispatch((0,c.cH)()),o.A.open())}),o.A.on("reconnect_attempt",()=>{l.A.dispatch((0,c.cH)())}),(0,r.H)(document.getElementById("root")).render(a.createElement(a.StrictMode,null,a.createElement(s.pg,{router:i.A})))},47768(e,t,n){n.d(t,{AR:()=>s,Ay:()=>u,Ic:()=>d,RH:()=>l,lo:()=>c,wk:()=>o,yy:()=>m});var a=n(15452),r=n(42730);const s=(0,a.VP)(r.xd),l=(0,a.VP)(r.fm),o=(0,a.VP)(r.hC),i=(0,a.VP)(r.tA),c=(0,a.VP)(r.Jc),d=(0,a.VP)(r.UD),m=(0,a.VP)(r.lq,e=>({payload:e,meta:{throttle:{wait:350,leading:!1}}})),u=(0,a.vy)({isLoading:!0,version:0,filterStr:"",filterStarred:!1,scrollRow:0,expandedArtists:[],expandedArtistResults:[]},e=>{e.addCase(m,(e,{payload:t})=>{e.filterStr=t}).addCase(c,e=>{e.filterStr=""}).addCase(d,e=>{e.filterStarred=!e.filterStarred}).addCase(s,(e,{payload:t})=>{e.scrollRow=t}).addCase(l,(e,{payload:t})=>{const n=e.expandedArtists.indexOf(t);-1===n?e.expandedArtists.push(t):e.expandedArtists.splice(n,1)}).addCase(o,(e,{payload:t})=>{const n=e.expandedArtistResults.indexOf(t);-1===n?e.expandedArtistResults.push(t):e.expandedArtistResults.splice(n,1)}).addCase(i,(e,{payload:t})=>({...e,isLoading:!1,version:t.version}))})},38180(e,t,n){n.d(t,{$1:()=>d,Ai:()=>i,Ay:()=>u,Pe:()=>o,t2:()=>m});var a=n(15452),r=n(33054),s=n(42730);const l=(0,a.VP)(s.T_),o=(0,a.VP)(s.Al),i=(0,a.VP)(s.vJ),c=(0,a.VP)(s.bX),d=(0,a.VP)(s.Un,e=>({payload:{songId:e},meta:{isOptimistic:!0}})),m=e=>(t,n)=>{const a=(0,r.A)(n(),e);t(i({queueId:a}))},u=(0,a.vy)({isLoading:!0,result:[],entities:{}},e=>{e.addCase(d,(e,{payload:t})=>{const n=e.result.length?e.result[e.result.length-1]+1:1;e.result.push(n),e.entities[n]={...t,queueId:n,prevQueueId:n-1||null,isOptimistic:!0}}).addCase(c,(e,{payload:t})=>({isLoading:!1,result:t.result,entities:t.entities})).addCase(l,e=>{e.result=[],e.entities={}})})},46685(e,t,n){n.d(t,{A:()=>a});const a=(0,n(25508).Mz)([e=>e.status.historyJSON],e=>JSON.parse(e))},32509(e,t,n){n.d(t,{A:()=>l});var a=n(9934),r=n(25508),s=n(46685);const l=(0,r.Mz)([e=>(0,a.wd)(e.queue).result,e=>(0,a.wd)(e.queue).entities,s.A,e=>e.status.queueId,e=>e.status.nextUserId],(e,t,n,a,r)=>{if(n=n.filter(t=>e.includes(t)),t[a]&&-1===n.lastIndexOf(a)&&n.push(a),null!==r)for(const a of e)if(!n.includes(a)&&!0!==t[a].isOptimistic&&t[a].userId===r){n.push(a);break}const s=new Map,l=[],o=n.map(e=>t[e].userId);for(e.forEach(e=>{if(n.includes(e)||!0===t[e].isOptimistic)return;const a=t[e].userId;s.set(a,s.has(a)?[...s.get(a),e]:[e])});s.size;){let e,t=-1;for(const n of s.keys()){const a=o.lastIndexOf(n),r=-1===a?1/0:o.length-a;r>t&&(t=r,e=n)}const n=s.get(e),a=n.shift();n.length?s.set(e,n):s.delete(e),o.push(e),l.push(a)}return{result:n.concat(l),entities:t}})},33054(e,t,n){n.d(t,{A:()=>l});var a=n(9934),r=n(25508),s=n(46685);const l=(0,r.Mz)([e=>(0,a.wd)(e.queue).result,e=>(0,a.wd)(e.queue).entities,s.A,e=>e.status.queueId,(e,t)=>t],(e,t,n,a,r)=>e.filter(e=>{const s=t[e];return!0!==s.isOptimistic&&s.userId===r&&e!==a&&!n.includes(e)}))},32681(e,t,n){n.d(t,{A:()=>r});var a=n(70960);class r{static init(e,t){return this.instance=(0,a.GM)(e,null,t),this.instance}static get(){if(!this.instance)throw new Error("persistor not initialized");return this.instance}}},76140(e,t,n){n.d(t,{G:()=>s,j:()=>r});var a=n(71468);const r=a.wA,s=a.d4},99996(e,t,n){n.d(t,{Ah:()=>c,Ay:()=>f,I8:()=>o,PA:()=>h,dJ:()=>p,fm:()=>E,gL:()=>i,mN:()=>g,yx:()=>u});var a=n(15452),r=n(42730);const s=new(n(77170).A)("prefs"),l=(0,a.VP)(r.T_),o=(0,a.VP)(r.Ac),i=(0,a.VP)(r.NT),c=(0,a.VP)(r.Xw),d=(0,a.VP)(r.kY),m=(0,a.VP)(r.$W),u=(0,a.zD)(r.BD,async({pathId:e,data:t},n)=>{const a=await s.put(`/path/${e}`,{body:t});n.dispatch(i(a))}),p=(0,a.zD)(r.J$,async(e,t)=>{const n=await s.get("");return n.isFirstRun&&null!==t.getState().user.userId&&t.dispatch(l()),n}),h=(0,a.zD)(r.gv,async e=>await s.get(`/path/${e}/scan`)),g=(0,a.zD)(r.gv,async()=>await s.get("/paths/scan")),E=(0,a.zD)(r.sr,async()=>await s.get("/paths/scan/stop")),f=(0,a.vy)({isScanning:!1,isReplayGainEnabled:!1,paths:{result:[],entities:{}},roles:{result:[],entities:{}},scannerPct:0,scannerText:""},e=>{e.addCase(p.fulfilled,(e,{payload:t})=>({...e,...t})).addCase(i,(e,{payload:t})=>({...e,...t})).addCase(d,(e,{payload:t})=>({...e,...t})).addCase(m,(e,{payload:t})=>({...e,isScanning:t.isScanning,scannerPct:t.pct,scannerText:t.text}))})},80470(e,t,n){n.d(t,{$R:()=>p,Ay:()=>v,Mv:()=>h,RM:()=>o,SV:()=>m,ab:()=>c,uE:()=>E,v4:()=>u,x1:()=>i,xX:()=>d});var a=n(15452),r=n(42730);const s=new(n(77170).A)("rooms"),l=(0,a.VP)(r.pg),o=(0,a.zD)(r.VW,async()=>await s.get("")),i=(0,a.zD)(r.VW,async(e,t)=>{const n=t.getState().user.roomId;return"number"!=typeof n?Promise.reject("Please sign into a room"):await s.get(`/${n}`)}),c=(0,a.zD)(r.jI,async(e,t)=>{const n=await s.post("",{body:e});t.dispatch(l(n)),t.dispatch(p())}),d=(0,a.zD)(r.gU,async({roomId:e,data:t},n)=>{const a=await s.put(`/${e}`,{body:t});n.dispatch(l(a)),n.dispatch(p())}),m=(0,a.zD)(r.ln,async(e,t)=>{const n=await s.delete(`/${e}`);t.dispatch(l(n)),t.dispatch(p())}),u=(0,a.VP)(r.P8),p=(0,a.VP)(r.lk),h=(0,a.VP)(r.Gg),g=(0,a.VP)(r.e_);function E(e,t){return n=>{n({type:r.Ig,payload:{roomId:e,prefs:t},meta:{throttle:{wait:200,leading:!0}}})}}const f={result:[],entities:{},filterStatus:"open",isEditorOpen:!1},v=(0,a.vy)(f,e=>{e.addCase(o.fulfilled,(e,{payload:t})=>({...e,...t})).addCase(l,(e,{payload:t})=>({...e,...t})).addCase(u,e=>{e.isEditorOpen=!0}).addCase(p,e=>{e.isEditorOpen=!1}).addCase(h,(e,{payload:t})=>{e.filterStatus=t}).addCase(g,(e,{payload:t})=>{const n=t.roomId;e.entities[n]&&(e.entities[n].prefs=t.prefs)}).addCase(r.T_,()=>({...f}))})},89853(e,t,n){n.d(t,{Ay:()=>d,XH:()=>o,Zi:()=>c,ks:()=>i});var a=n(15452),r=n(77170),s=n(42730);const l=new r.A,o=(0,a.zD)(s.Pg,async e=>await l.get(`song/${e}`)),i=(0,a.VP)(s.kW),c=(0,a.zD)(s.Ah,async({songId:e,mediaId:t,isPreferred:n},a)=>{await l.request(n?"PUT":"DELETE",`media/${t}/prefer`),a.dispatch(o(e))}),d=(0,a.vy)({isLoading:!1,isVisible:!1,songId:null,media:{result:[],entities:{}}},e=>{e.addCase(o.pending,(e,{meta:t})=>{e.isLoading=!0,e.isVisible=!0,e.songId=t.arg}).addCase(o.fulfilled,(e,{payload:t})=>{e.isLoading=!1,e.media=t}).addCase(o.rejected,e=>{e.isLoading=!1,e.isVisible=!1}).addCase(i,e=>{e.isVisible=!1})})},88146(e,t,n){n.d(t,{Ay:()=>p,Lx:()=>o,MP:()=>m,ag:()=>u,cd:()=>s,n3:()=>d,wr:()=>l});var a=n(15452),r=n(42730);const s=(0,a.VP)(r.K9),l=(0,a.VP)(r.qd),o=(0,a.VP)(r.Bw),i=(0,a.VP)(r.PQ),c=(0,a.VP)(r.cP),d=(0,a.VP)(r.F7,e=>({payload:{queueId:e}})),m=(0,a.VP)(r.gw,e=>({payload:e,meta:{throttle:{wait:200,leading:!1}}})),u=(0,a.VP)(r.YM,e=>({payload:e,meta:{throttle:{wait:200,leading:!0}}})),p=(0,a.vy)({cdgAlpha:0,cdgSize:.8,errorMessage:"",historyJSON:"[]",isAtQueueEnd:!1,isErrored:!1,isPlayerPresent:!1,isPlaying:!1,isVideoKeyingEnabled:!1,isWebGLSupported:!1,mediaType:null,mp4Alpha:1,nextUserId:null,position:0,queueId:-1,visualizer:{},volume:1},e=>{e.addCase(c,e=>{e.isPlayerPresent=!1}).addCase(i,(e,{payload:t})=>({...e,...t,isPlayerPresent:!0}))})},85134(e,t,n){n.d(t,{Ay:()=>g,DP:()=>i,Dx:()=>m,L5:()=>d,NJ:()=>c,T6:()=>l,f1:()=>o});var a=n(15452),r=n(42730);let s;const l=(0,a.VP)(r.tx),o=(0,a.VP)(r.$h),i=(0,a.zD)("ui/SET_HEADER_HEIGHT",async(e,{dispatch:t,getState:n})=>{n().ui.headerHeight!==e&&t({type:r.$Q,payload:e??0})}),c=(0,a.zD)("ui/SET_HEADER_HEIGHT",async(e,{dispatch:t,getState:n})=>{n().ui.footerHeight!==e&&t({type:r.Hz,payload:e??0})}),d=(0,a.VP)(r.Df,e=>({payload:e,meta:{throttle:{wait:200,leading:!1}}})),m=e=>{e?(clearTimeout(s),s=null,document.body.classList.add("scroll-lock")):s||(s=setTimeout(()=>{s=null,document.body.classList.remove("scroll-lock")},200))},u=(0,a.VP)(r.Hz),p=(0,a.VP)(r.$Q),h={isErrored:!1,errorMessage:null,footerHeight:0,headerHeight:0,innerWidth:window.innerWidth,innerHeight:window.innerHeight,contentWidth:Math.min(window.innerWidth,768)},g=(0,a.vy)(h,e=>{e.addCase(p,(e,{payload:t})=>{e.headerHeight=t}).addCase(u,(e,{payload:t})=>{e.footerHeight=t}).addCase(o,(e,{payload:t})=>{e.isErrored=!0,e.errorMessage=t}).addCase(l,e=>{e.isErrored=!1}).addCase(d,(e,{payload:t})=>{e.innerWidth=t.innerWidth,e.innerHeight=t.innerHeight,e.contentWidth=Math.min(t.innerWidth,768)}).addMatcher(e=>!!e.error,(e,{error:t})=>{e.isErrored=!0,e.errorMessage=t.message??t})})},77759(e,t,n){n.d(t,{Ay:()=>N,_m:()=>v,aw:()=>f,cH:()=>w,iD:()=>g,mb:()=>b,z0:()=>y});var a=n(15452),r=n(70960),s=n(69282),l=n(49905),o=n(50554),i=n(77170),c=n(32681),d=n(99996),m=n(42730);const u=new i.A(""),p=new URL(document.baseURI).pathname,h=(0,a.VP)(m.qx),g=(0,a.zD)(m.S3,async(e,t)=>{const n=await u.post("login",{body:e});c.A.get().purge(),t.dispatch(h(n)),t.dispatch((0,d.dJ)()),t.dispatch(w()),l.A.open();const a=new URLSearchParams(window.location.search).get("redirect");a&&o.A.navigate(p.replace(/\/$/,"")+a)}),E=(0,a.VP)(m.T_),f=(0,a.zD)(m.T_,async(e,t)=>{try{await u.get("logout")}catch{}t.dispatch(E()),c.A.get().purge(),l.A.close()}),v=(0,a.zD)(m.ZC,async(e,t)=>{const n=t.getState().prefs.isFirstRun,a=await u.post(n?"setup":"user",{body:e});c.A.get().purge(),t.dispatch(h(a)),t.dispatch((0,d.dJ)()),t.dispatch(w()),l.A.open();const r=new URLSearchParams(window.location.search).get("redirect");r&&o.A.navigate(p.replace(/\/$/,"")+r)}),y=(0,a.zD)(m.ae,async(e,t)=>{const{userId:n}=t.getState().user,a=await u.put(`user/${n}`,{body:e});t.dispatch(h(a)),alert("Account updated successfully.")}),b=(0,a.zD)(m.c8,async(e,t)=>{try{const e=await u.get("user");t.dispatch(h(e))}catch{}}),C=(0,a.VP)(m.tB),w=(0,a.zD)("user/SOCKET_CONNECT",async(e,{dispatch:t,getState:n})=>{const a={library:n().library.version,stars:n().starCounts.version};t(C(a)),l.A.io.opts.query=a}),A={userId:null,username:null,name:null,roomId:null,isAdmin:!1,isGuest:!1,dateCreated:0,dateUpdated:0},S=(0,a.vy)(A,e=>{e.addCase(h,(e,{payload:t})=>({...e,...t})).addCase(m.T_,()=>({...A})).addCase(m.OL,()=>({...A}))}),N=(0,r.rL)({key:"user",storage:s.A},S)},8870(e,t,n){n.d(t,{A:()=>g,D:()=>o});var a=n(15452),r=n(70960),s=n(9934),l=n(42730);const o=(0,a.zD)("userStars/toggleSongStarred",async(e,{dispatch:t,getState:n})=>{(0,s.wd)(n().userStars).starredSongs.includes(e)?t(c(e)):t(i(e))}),i=(0,a.VP)(l.H8,e=>({payload:{songId:e},meta:{isOptimistic:!0}})),c=(0,a.VP)(l.s4,e=>({payload:{songId:e},meta:{isOptimistic:!0}})),d=(0,a.VP)(l.OA),m=(0,a.VP)(l.DN),u=(0,a.VP)(l.bA),p=(0,a.VP)(l.qx),h={userId:null,starredArtists:[],starredSongs:[]},g=(0,a.vy)(h,e=>{e.addCase(i,(e,{payload:t})=>{e.starredSongs.push(t.songId)}).addCase(c,(e,{payload:t})=>{e.starredSongs.splice(e.starredSongs.indexOf(t.songId),1)}).addCase(d,(e,{payload:t})=>{t.userId!==e.userId||e.starredSongs.includes(t.songId)||e.starredSongs.push(t.songId)}).addCase(m,(e,{payload:t})=>{t.userId===e.userId&&e.starredSongs.includes(t.songId)&&e.starredSongs.splice(e.starredSongs.indexOf(t.songId),1)}).addCase(u,(e,{payload:t})=>({...e,...t})).addCase(p,(e,{payload:t})=>{e.userId=t.userId}).addCase(r.r2,(e,{payload:t})=>{"number"==typeof t?.userId&&(e.userId=t.userId)}).addCase(l.T_,()=>({...h})).addCase(l.OL,()=>({...h}))})},37655(e,t,n){n.d(t,{A:()=>S});var a=n(15452),r=n(9934),s=n(42730);const l=(0,a.VP)(s.tA),o=(0,a.vy)({result:[],entities:{}},e=>{e.addCase(l,(e,{payload:t})=>({result:t.artists.result,entities:t.artists.entities}))});var i=n(47768),c=n(99996),d=n(38180),m=n(80470);const u=(0,a.VP)(s.dh),p=(0,a.VP)(s.tA),h=(0,a.vy)({result:[],entities:{}},e=>{e.addCase(p,(e,{payload:t})=>({result:t.songs.result,entities:t.songs.entities})).addCase(u,(e,{payload:t})=>({...e,entities:{...e.entities,...t}}))});var g=n(89853);const E=(0,a.VP)(s.OA),f=(0,a.VP)(s.DN),v=(0,a.VP)(s.Nz),y=(0,a.vy)({artists:{},songs:{},version:0},e=>{e.addCase(E,(e,{payload:t})=>{e.songs[t.songId]=e.songs[t.songId]+1||1}).addCase(f,(e,{payload:t})=>{e.songs[t.songId]=Math.max(e.songs[t.songId]-1,0)}).addCase(v,(e,{payload:t})=>({...t}))});var b=n(88146),C=n(85134),w=n(77759),A=n(8870);const S=(0,a.fP)({artists:o,library:i.Ay,prefs:c.Ay,queue:(0,r.yi)(d.Ay),rooms:m.Ay,songs:h,songInfo:g.Ay,starCounts:y,status:b.Ay,ui:C.Ay,user:w.Ay,userStars:(0,r.yi)(A.A)}).withLazyLoadedSlices()},85555(e,t,n){n.d(t,{A:()=>h});var a=n(15452),r=n(37655),s=n(49905),l=n(9934);let o=0;var i=n(44063),c=n(70960),d=n(85134);window.addEventListener("resize",()=>p.dispatch((0,d.L5)({innerWidth:window.innerWidth,innerHeight:window.innerHeight})));const m=(0,i.Ay)(1e3,{leading:!0,trailing:!0}),u=function(e,t){return n=>(e.on("action",e=>n.dispatch(e)),n=>a=>{if(!a.type||!a.type.startsWith(t))return n(a);const r="meta"in a&&(a.meta?.isOptimistic??!1);if(e.emit("action",a,e=>{"object"==typeof e&&"string"==typeof e.type&&(r&&(e.meta={..."meta"in e&&"object"==typeof e.meta?e.meta:{},optimistic:e.error?{type:l.tH,id:o}:{type:l.cJ,id:o}}),n(e))}),!r)return n(a);o++,n({...a,meta:{...a.meta,optimistic:{type:l.Q,id:o}}})})}(s.A,"server/"),p=(0,a.U1)({reducer:r.A,middleware:e=>e({serializableCheck:{ignoredActions:[c.ZM,c.r2,c.Hz,c.DY,c.Cq,c.eY]}}).concat(m,u)});const h=p}},l={};function o(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}};return s[e].call(n.exports,n,n.exports,o),n.exports}o.m=s,e=[],o.O=(t,n,a,r)=>{if(!n){var s=1/0;for(d=0;d<e.length;d++){for(var[n,a,r]=e[d],l=!0,i=0;i<n.length;i++)(!1&r||s>=r)&&Object.keys(o.O).every(e=>o.O[e](n[i]))?n.splice(i--,1):(l=!1,r<s&&(s=r));if(l){e.splice(d--,1);var c=a();void 0!==c&&(t=c)}}return t}r=r||0;for(var d=e.length;d>0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[n,a,r]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var r=Object.create(null);o.r(r);var s={};t=t||[null,n({}),n([]),n(n)];for(var l=2&a&&e;("object"==typeof l||"function"==typeof l)&&!~t.indexOf(l);l=n(l))Object.getOwnPropertyNames(l).forEach(t=>s[t]=()=>e[t]);return s.default=()=>e,o.d(r,s),r},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,n)=>(o.f[n](e,t),t),[])),o.u=e=>e+"."+o.h()+".js",o.miniCssF=e=>e+"."+o.h()+".css",o.h=()=>"28a32260bdbd2ff9e73c",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},r="karaoke-eternal:",o.l=(e,t,n,s)=>{if(a[e])a[e].push(t);else{var l,i;if(void 0!==n)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var m=c[d];if(m.getAttribute("src")==e||m.getAttribute("data-webpack")==r+n){l=m;break}}l||(i=!0,(l=document.createElement("script")).charset="utf-8",o.nc&&l.setAttribute("nonce",o.nc),l.setAttribute("data-webpack",r+n),l.src=e),a[e]=[t];var u=(t,n)=>{l.onerror=l.onload=null,clearTimeout(p);var r=a[e];if(delete a[e],l.parentNode&&l.parentNode.removeChild(l),r&&r.forEach(e=>e(n)),t)return t(n)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=u.bind(null,l.onerror),l.onload=u.bind(null,l.onload),i&&document.head.appendChild(l)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var a=n.length-1;a>-1&&(!e||!/^http(s?):/.test(e));)e=n[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{if("undefined"!=typeof document){var e=e=>new Promise((t,n)=>{var a=o.miniCssF(e),r=o.p+a;if(((e,t)=>{for(var n=document.getElementsByTagName("link"),a=0;a<n.length;a++){var r=(l=n[a]).getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(r===e||r===t))return l}var s=document.getElementsByTagName("style");for(a=0;a<s.length;a++){var l;if((r=(l=s[a]).getAttribute("data-href"))===e||r===t)return l}})(a,r))return t();((e,t,n,a,r)=>{var s=document.createElement("link");s.rel="stylesheet",s.type="text/css",o.nc&&(s.nonce=o.nc),s.onerror=s.onload=n=>{if(s.onerror=s.onload=null,"load"===n.type)a();else{var l=n&&n.type,o=n&&n.target&&n.target.href||t,i=new Error("Loading CSS chunk "+e+" failed.\n("+l+": "+o+")");i.name="ChunkLoadError",i.code="CSS_CHUNK_LOAD_FAILED",i.type=l,i.request=o,s.parentNode&&s.parentNode.removeChild(s),r(i)}},s.href=t,n?n.parentNode.insertBefore(s,n.nextSibling):document.head.appendChild(s)})(e,r,null,t,n)}),t={792:0};o.f.miniCss=(n,a)=>{t[n]?a.push(t[n]):0!==t[n]&&{851:1,958:1}[n]&&a.push(t[n]=e(n).then(()=>{t[n]=0},e=>{throw delete t[n],e}))}}})(),(()=>{var e={792:0};o.f.j=(t,n)=>{var a=o.o(e,t)?e[t]:void 0;if(0!==a)if(a)n.push(a[2]);else{var r=new Promise((n,r)=>a=e[t]=[n,r]);n.push(a[2]=r);var s=o.p+o.u(t),l=new Error;o.l(s,n=>{if(o.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var r=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;l.message="Loading chunk "+t+" failed.\n("+r+": "+s+")",l.name="ChunkLoadError",l.type=r,l.request=s,a[1](l)}},"chunk-"+t,t)}},o.O.j=t=>0===e[t];var t=(t,n)=>{var a,r,[s,l,i]=n,c=0;if(s.some(t=>0!==e[t])){for(a in l)o.o(l,a)&&(o.m[a]=l[a]);if(i)var d=i(o)}for(t&&t(n);c<s.length;c++)r=s[c],o.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return o.O(d)},n=self.webpackChunkkaraoke_eternal=self.webpackChunkkaraoke_eternal||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var i=o.O(void 0,[240],()=>o(95099));i=o.O(i)})();
@@ -335,30 +335,30 @@ router.post('/setup', async (ctx) => {
335
335
  if (prefs.isFirstRun !== true) {
336
336
  ctx.throw(403);
337
337
  }
338
- // create default room
339
- const fields = new Map();
340
- fields.set('name', 'Room 1');
341
- fields.set('status', 'open');
342
- fields.set('dateCreated', Math.floor(Date.now() / 1000));
343
- const query = sql `
344
- INSERT INTO rooms ${sql.tuple(Array.from(fields.keys()).map(sql.column))}
345
- VALUES ${sql.tuple(Array.from(fields.values()))}
346
- `;
347
- const res = db.run(String(query), query.parameters);
348
- if (typeof res.lastID !== 'number') {
349
- ctx.throw(500, 'Invalid default room lastID');
350
- }
351
- // create admin user
352
338
  try {
339
+ // create admin user
353
340
  const req = ctx.request;
354
341
  const userId = await User.create({ ...req.body, image }, 'admin');
355
342
  const user = User.getById(userId, true);
356
- const userCtx = createUserCtx(user, res.lastID);
357
- // create JWT
358
- const token = jwtSign(userCtx, ctx.jwtKey);
359
343
  if (!user) {
360
344
  throw new Error('User not found');
361
345
  }
346
+ // create default room
347
+ const fields = new Map();
348
+ fields.set('name', 'Room 1');
349
+ fields.set('status', 'open');
350
+ fields.set('dateCreated', Math.floor(Date.now() / 1000));
351
+ const roomQuery = sql `
352
+ INSERT INTO rooms ${sql.tuple(Array.from(fields.keys()).map(sql.column))}
353
+ VALUES ${sql.tuple(Array.from(fields.values()))}
354
+ `;
355
+ const roomRes = db.run(String(roomQuery), roomQuery.parameters);
356
+ if (typeof roomRes.lastID !== 'number') {
357
+ ctx.throw(500, 'Invalid default room lastID');
358
+ }
359
+ // create JWT
360
+ const userCtx = createUserCtx(user, roomRes.lastID);
361
+ const token = jwtSign(userCtx, ctx.jwtKey);
362
362
  // set JWT as an httpOnly cookie
363
363
  ctx.cookies.set('keToken', token, {
364
364
  sameSite: 'lax',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "karaoke-eternal",
3
- "version": "2.0.2-beta.2",
3
+ "version": "2.0.2",
4
4
  "description": "Open karaoke party system",
5
5
  "keywords": [
6
6
  "karaoke",
@@ -70,7 +70,7 @@
70
70
  "koa-mount": "^4.2.0",
71
71
  "koa-range": "^0.3.0",
72
72
  "koa-static": "^5.0.0",
73
- "music-metadata": "^11.11.2",
73
+ "music-metadata": "^11.12.0",
74
74
  "socket.io": "^4.8.3",
75
75
  "sqlate": "^2.2.0",
76
76
  "unzipit": "^1.4.3",
@@ -87,7 +87,7 @@
87
87
  "@hello-pangea/dnd": "^18.0.1",
88
88
  "@pmmmwh/react-refresh-webpack-plugin": "^0.6.2",
89
89
  "@reduxjs/toolkit": "^2.11.2",
90
- "@stylistic/eslint-plugin": "^5.7.1",
90
+ "@stylistic/eslint-plugin": "^5.8.0",
91
91
  "@types/bcrypt": "^6.0.0",
92
92
  "@types/blueimp-load-image": "^5.16.6",
93
93
  "@types/fs-extra": "^11.0.4",
@@ -97,7 +97,7 @@
97
97
  "@types/koa-mount": "^4.0.5",
98
98
  "@types/koa-range": "^0.3.6",
99
99
  "@types/koa-static": "^4.0.4",
100
- "@types/react": "^19.2.13",
100
+ "@types/react": "^19.2.14",
101
101
  "@types/react-dom": "^19.2.3",
102
102
  "@types/react-highlight-words": "^0.20.1",
103
103
  "@types/react-transition-group": "^4.4.12",
@@ -148,7 +148,7 @@
148
148
  "react-router": "^7.13.0",
149
149
  "react-swipeable": "^7.0.2",
150
150
  "react-transition-group": "^4.4.5",
151
- "react-window": "^2.2.6",
151
+ "react-window": "^2.2.7",
152
152
  "redux-optimistic-ui": "^3.1.0",
153
153
  "redux-persist": "^6.0.0",
154
154
  "redux-throttle": "^0.1.1",
@@ -156,15 +156,15 @@
156
156
  "socket.io-client": "^4.8.3",
157
157
  "tsx": "^4.21.0",
158
158
  "typescript": "^5.9.3",
159
- "typescript-eslint": "^8.54.0",
159
+ "typescript-eslint": "^8.55.0",
160
160
  "typescript-plugin-css-modules": "^5.2.0",
161
161
  "use-long-press": "^3.3.0",
162
162
  "use-resize-observer": "^9.1.0",
163
163
  "vitest": "^4.0.18",
164
- "webpack": "^5.105.0",
164
+ "webpack": "^5.105.2",
165
165
  "webpack-cli": "^6.0.1",
166
166
  "webpack-dev-middleware": "^7.4.5",
167
167
  "webpack-hot-middleware": "^2.26.1",
168
168
  "webpack-node-externals": "^3.0.0"
169
169
  }
170
- }
170
+ }
@@ -1 +0,0 @@
1
- /*! See licenses in licenses.txt */(()=>{"use strict";var e,t,n,a,r,s={42730(e,t,n){n.d(t,{$Q:()=>we,$W:()=>Le,$h:()=>Se,A2:()=>w,Ac:()=>ie,Ah:()=>Re,Al:()=>f,BD:()=>de,Bw:()=>I,D2:()=>U,DN:()=>u,Df:()=>_e,EA:()=>A,F7:()=>O,Gg:()=>ee,H8:()=>ae,Hz:()=>Ae,Ig:()=>ne,J$:()=>oe,J_:()=>be,Jc:()=>l,K9:()=>L,NT:()=>le,Nt:()=>N,Nz:()=>p,OA:()=>m,OL:()=>r,P8:()=>X,PQ:()=>V,Pg:()=>Ie,Qp:()=>D,S3:()=>G,SX:()=>ge,Sz:()=>_,T_:()=>q,Tn:()=>z,U7:()=>he,UD:()=>o,Un:()=>E,VW:()=>Q,Xw:()=>ce,Y2:()=>Ee,YM:()=>R,ZC:()=>B,_P:()=>S,ae:()=>W,bA:()=>se,bX:()=>v,c8:()=>j,cP:()=>H,dh:()=>g,e_:()=>te,fD:()=>Oe,fm:()=>i,gD:()=>fe,gU:()=>K,gn:()=>ve,gv:()=>ue,gw:()=>T,hC:()=>c,iM:()=>ye,if:()=>M,jI:()=>J,kW:()=>Pe,kY:()=>me,lk:()=>$,ln:()=>Z,lq:()=>s,pg:()=>Y,qd:()=>P,qx:()=>F,s4:()=>re,sr:()=>pe,tA:()=>h,tB:()=>a,tg:()=>C,tx:()=>Ne,v3:()=>Ce,vD:()=>x,vJ:()=>y,w1:()=>b,xd:()=>d,zF:()=>k});const a="user/SOCKET_REQUEST_CONNECT",r="user/SOCKET_AUTH_ERROR",s="library/FILTER_KEYWORD",l="library/FILTER_KEYWORD_CLEAR",o="library/TOGGLE_FILTER_STARRED",i="library/TOGGLE_ARTIST_EXPANDED",c="library/TOGGLE_ARTIST_RESULT_EXPANDED",d="library/SCROLL_ARTISTS",m="library/SONG_STARRED",u="library/SONG_UNSTARRED",p="library/STAR_COUNTS_PUSH",h="library/PUSH",g="library/PUSH_SONG",E="server/QUEUE_ADD",f="server/QUEUE_MOVE",v="queue/PUSH",y="server/QUEUE_REMOVE",b="player/UPDATE",C="player/CMD_NEXT",w="player/CMD_OPTIONS",A="player/CMD_PAUSE",S="player/CMD_PLAY",N="player/CMD_REPLAY",_="player/CMD_VOLUME",I="server/PLAYER_REQ_NEXT",R="server/PLAYER_REQ_OPTIONS",P="server/PLAYER_REQ_PAUSE",L="server/PLAYER_REQ_PLAY",O="server/PLAYER_REQ_REPLAY",T="server/PLAYER_REQ_VOLUME",k="server/PLAYER_EMIT_STATUS",M="server/PLAYER_EMIT_LEAVE",V="status/PLAYER_STATUS",z="status/PLAYER_ERROR",H="status/PLAYER_LEAVE",x="status/PLAYER_LOAD",U="status/PLAYER_PLAY",D="status/PLAYER_VISUALIZER_ERROR",G="user/LOGIN",q="user/LOGOUT",F="user/ACCOUNT_RECEIVE",B="user/ACCOUNT_CREATE",W="user/ACCOUNT_UPDATE",j="user/ACCOUNT_REQUEST",Y="rooms/RECEIVE",Q="rooms/REQUEST",K="rooms/UPDATE",J="rooms/CREATE",Z="rooms/REMOVE",X="rooms/EDITOR_OPEN",$="rooms/EDITOR_CLOSE",ee="rooms/TOGGLE_SHOW_ALL",te="rooms/ROOM_PREFS_PUSH",ne="server/ROOM_PREFS_PUSH_REQUEST",ae="server/STAR_SONG",re="server/UNSTAR_SONG",se="user/STARS_PUSH",le="prefs/RECEIVE",oe="prefs/REQUEST",ie="server/PREFS_SET",ce="server/PREFS_PATH_SET_PRIORITY",de="prefs/PREFS_PATH_UPDATE",me="prefs/PREFS_PUSH",ue="prefs/REQ_SCANNER_START",pe="prefs/REQ_SCANNER_STOP",he="users/CREATE",ge="users/EDITOR_OPEN",Ee="users/EDITOR_CLOSE",fe="users/FILTER_ONLINE",ve="users/FILTER_ROOM_ID",ye="users/REMOVE",be="users/REQUEST",Ce="users/UPDATE",we="ui/HEADER_HEIGHT_CHANGE",Ae="ui/FOOTER_HEIGHT_CHANGE",Se="ui/SHOW_ERROR_MESSAGE",Ne="ui/CLEAR_ERROR_MESSAGE",_e="ui/WINDOW_RESIZE",Ie="songInfo/SONG_INFO_REQUEST",Re="songInfo/SET_PREFERRED",Pe="songInfo/SONG_INFO_CLOSE",Le="scannerWorker/STATUS",Oe="app/REDUX_SLICE_INJECT_NOOP"},80519(e,t,n){n.d(t,{A:()=>o});var a=n(58168),r=n(21728),s=n(96540);const l={ACCOUNT:{viewBox:"0 0 24 24",d:"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"},ACCOUNT_BOX:{viewBox:"0 0 24 24",d:"M6,17C6,15 10,13.9 12,13.9C14,13.9 18,15 18,17V18H6M15,9A3,3 0 0,1 12,12A3,3 0 0,1 9,9A3,3 0 0,1 12,6A3,3 0 0,1 15,9M3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5C3.89,3 3,3.9 3,5Z"},ACCOUNT_BOX_OUTLINE:{viewBox:"0 0 24 24",d:"M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M16.5,16.25C16.5,14.75 13.5,14 12,14C10.5,14 7.5,14.75 7.5,16.25V17H16.5M12,12.25A2.25,2.25 0 0,0 14.25,10A2.25,2.25 0 0,0 12,7.75A2.25,2.25 0 0,0 9.75,10A2.25,2.25 0 0,0 12,12.25Z"},ALERT_OUTLINE:{viewBox:"0 0 24 24",d:"M12,2L1,21H23M12,6L19.53,19H4.47M11,10V14H13V10M11,16V18H13V16"},CHEVRON_DOWN:{viewBox:"0 0 24 24",d:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"},CHEVRON_LEFT:{viewBox:"0 0 24 24",d:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"},CHEVRON_RIGHT:{viewBox:"0 0 24 24",d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"},CHEVRON_UP:{viewBox:"0 0 24 24",d:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"},CIRCLE:{viewBox:"0 0 24 24",d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},CLEAR:{viewBox:"0 0 24 24",d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"},CLOUD:{viewBox:"0 0 24 24",d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"},DELETE:{viewBox:"0 0 24 24",d:"M14.12 10.47 12 12.59l-2.13-2.12-1.41 1.41L10.59 14l-2.12 2.12 1.41 1.41L12 15.41l2.12 2.12 1.41-1.41L13.41 14l2.12-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4zM6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8z"},DICE:{viewBox:"0 0 24 24",d:"M19.78,3H11.22C10.55,3 10,3.55 10,4.22V8H16V14H19.78C20.45,14 21,13.45 21,12.78V4.22C21,3.55 20.45,3 19.78,3M12.44,6.67C11.76,6.67 11.21,6.12 11.21,5.44C11.21,4.76 11.76,4.21 12.44,4.21A1.23,1.23 0 0,1 13.67,5.44C13.67,6.12 13.12,6.67 12.44,6.67M18.56,12.78C17.88,12.79 17.33,12.24 17.32,11.56C17.31,10.88 17.86,10.33 18.54,10.32C19.22,10.31 19.77,10.86 19.78,11.56C19.77,12.23 19.23,12.77 18.56,12.78M18.56,6.67C17.88,6.68 17.33,6.13 17.32,5.45C17.31,4.77 17.86,4.22 18.54,4.21C19.22,4.2 19.77,4.75 19.78,5.44C19.78,6.12 19.24,6.66 18.56,6.67M4.22,10H12.78A1.22,1.22 0 0,1 14,11.22V19.78C14,20.45 13.45,21 12.78,21H4.22C3.55,21 3,20.45 3,19.78V11.22C3,10.55 3.55,10 4.22,10M8.5,14.28C7.83,14.28 7.28,14.83 7.28,15.5C7.28,16.17 7.83,16.72 8.5,16.72C9.17,16.72 9.72,16.17 9.72,15.5A1.22,1.22 0 0,0 8.5,14.28M5.44,11.22C4.77,11.22 4.22,11.77 4.22,12.44A1.22,1.22 0 0,0 5.44,13.66C6.11,13.66 6.66,13.11 6.66,12.44V12.44C6.66,11.77 6.11,11.22 5.44,11.22M11.55,17.33C10.88,17.33 10.33,17.88 10.33,18.55C10.33,19.22 10.88,19.77 11.55,19.77A1.22,1.22 0 0,0 12.77,18.55H12.77C12.77,17.88 12.23,17.34 11.56,17.33H11.55Z"},DRAG_INDICATOR:{viewBox:"0 0 24 24",d:"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"},FLAG:{viewBox:"0 0 24 24",d:"M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z"},FOLDER:{viewBox:"0 0 24 24",d:"M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"},FOLDER_MUSIC:{viewBox:"0 0 24 24",d:"M10 4L12 6H20C21.1 6 22 6.89 22 8V18C22 19.1 21.1 20 20 20H4C2.89 20 2 19.1 2 18L2 6C2 4.89 2.89 4 4 4H10M19 9H15.5V13.06L15 13C13.9 13 13 13.9 13 15C13 16.11 13.9 17 15 17C16.11 17 17 16.11 17 15V11H19V9Z"},FULLSCREEN:{viewBox:"0 0 24 24",d:"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"},GITHUB_REPO:{viewBox:"0 0 16 16",d:"M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"},GITHUB_SPONSOR:{viewBox:"0 0 16 16",d:"m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"},GITHUB_STAR:{viewBox:"0 0 16 16",d:"M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"},INFO_OUTLINE:{viewBox:"0 0 24 24",d:"M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z"},LABEL:{viewBox:"0 0 24 24",d:"M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"},MAGNIFIER:{viewBox:"0 0 24 24",d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"},MORE_HORIZ:{viewBox:"0 0 24 24",d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"},MOVE_TOP:{viewBox:"0 0 24 24",d:"M5 4v2h14V4H5zm0 10h4v6h6v-6h4l-7-7-7 7z"},NAV_ACCOUNT:{viewBox:"0 0 24 24",d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8m3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5m-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.32-1.45 5.12-3.5h-1.67c-.69 1.19-1.97 2-3.45 2s-2.75-.81-3.45-2H6.88c.8 2.05 2.79 3.5 5.12 3.5"},NAV_ACCOUNT_ACTIVE:{viewBox:"0 0 24 24",d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"},NAV_LIBRARY:{viewBox:"0 0 24 24",d:"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 5h-3v5.5c0 1.38-1.12 2.5-2.5 2.5S10 13.88 10 12.5s1.12-2.5 2.5-2.5c.57 0 1.08.19 1.5.51V5h4v2zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z"},NAV_SUBSCRIPTIONS:{viewBox:"0 0 24 24",d:"M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z"},PAUSE:{viewBox:"0 0 24 24",d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},PLAY:{viewBox:"0 0 24 24",d:"M8 5v14l11-7z"},PLAY_NEXT:{viewBox:"0 0 24 24",d:"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z"},PLUS:{viewBox:"0 0 24 24",d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"},PERSON:{viewBox:"0 0 24 24",d:"M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4"},PHOTO_ADD:{viewBox:"0 0 24 24",d:"M21 6h-3.17L16 4h-6v2h5.12l1.83 2H21v12H5v-9H3v9c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2M8 14c0 2.76 2.24 5 5 5s5-2.24 5-5-2.24-5-5-5-5 2.24-5 5m5-3c1.65 0 3 1.35 3 3s-1.35 3-3 3-3-1.35-3-3 1.35-3 3-3M5 6h3V4H5V1H3v3H0v2h3v3h2z"},QR_CODE:{viewBox:"0 0 24 24",d:"M3 11h8V3H3zm2-6h4v4H5zM3 21h8v-8H3zm2-6h4v4H5zm8-12v8h8V3zm6 6h-4V5h4zm0 10h2v2h-2zm-6-6h2v2h-2zm2 2h2v2h-2zm-2 2h2v2h-2zm2 2h2v2h-2zm2-2h2v2h-2zm0-4h2v2h-2zm2 2h2v2h-2z"},REFRESH:{viewBox:"0 0 24 24",d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"},REPLAY:{viewBox:"0 0 24 24",d:"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8"},STAR_FULL:{viewBox:"0 0 32 32",d:"M32 12.408l-11.056-1.607-4.944-10.018-4.944 10.018-11.056 1.607 8 7.798-1.889 11.011 9.889-5.199 9.889 5.199-1.889-11.011 8-7.798z"},TELEVISION_PLAY:{viewBox:"0 0 24 24",d:"M21,3H3C1.89,3 1,3.89 1,5V17A2,2 0 0,0 3,19H8V21H16V19H21A2,2 0 0,0 23,17V5C23,3.89 22.1,3 21,3M21,17H3V5H21M16,11L9,15V7"},TUNE:{viewBox:"0 0 24 24",d:"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z"},VISIBILITY:{viewBox:"0 0 24 24",d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"},VISIBILITY_OFF:{viewBox:"0 0 24 24",d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"},VOLUME_DOWN:{viewBox:"0 0 24 24",d:"M18.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z"},VOLUME_MUTE:{viewBox:"0 0 24 24",d:"M7 9v6h4l5 5V4l-5 5H7z"},VOLUME_OFF:{viewBox:"0 0 24 24",d:"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"},VOLUME_UP:{viewBox:"0 0 24 24",d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"}},o=e=>{const t=(0,r.c)(11);let n,o,i;t[0]!==e?(({size:i,icon:n,...o}=e),t[0]=e,t[1]=n,t[2]=o,t[3]=i):(n=t[1],o=t[2],i=t[3]);const c=i?`${i}px`:void 0,d=l[n],m=l[n];let u,p;return t[4]!==m.d?(u=s.createElement("path",{fill:"currentColor",d:m.d}),t[4]=m.d,t[5]=u):u=t[5],t[6]!==o||t[7]!==c||t[8]!==d.viewBox||t[9]!==u?(p=s.createElement("svg",(0,a.A)({height:c,viewBox:d.viewBox,"aria-hidden":!0},o),u),t[6]=o,t[7]=c,t[8]=d.viewBox,t[9]=u,t[10]=p):p=t[10],p}},5668(e,t,n){n.d(t,{A:()=>c});var a=n(21728),r=n(96540),s=n(34164),l=n(80519);const o="qVDsyq0en4mmfO12Q9S6",i=e=>{const t=(0,a.c)(13),{dateUpdated:n,userId:s}=e,[o,i]=(0,r.useState)(!0),[c,d]=(0,r.useState)(!1);let m;t[0]===Symbol.for("react.memo_cache_sentinel")?(m=()=>i(!1),t[0]=m):m=t[0];const u=m;let p;t[1]===Symbol.for("react.memo_cache_sentinel")?(p=()=>{i(!1),d(!0)},t[1]=p):p=t[1];const h=p;let g,E,f;return t[2]!==c||t[3]!==o?(g=(o||c)&&r.createElement(l.A,{icon:"ACCOUNT"}),t[2]=c,t[3]=o,t[4]=g):g=t[4],t[5]!==n||t[6]!==c||t[7]!==o||t[8]!==s?(E=!c&&r.createElement("img",{src:`${document.baseURI}api/user/${s}/image?v=${n}`,onLoad:u,onError:h,style:{display:o?"none":"initial"}}),t[5]=n,t[6]=c,t[7]=o,t[8]=s,t[9]=E):E=t[9],t[10]!==g||t[11]!==E?(f=r.createElement(r.Fragment,null,g,E),t[10]=g,t[11]=E,t[12]=f):f=t[12],f},c=e=>{const t=(0,a.c)(9),{className:n,dateUpdated:l,userId:c}=e;let d;t[0]!==n?(d=(0,s.A)(o,n),t[0]=n,t[1]=d):d=t[1];const m=`${c}-${l}`;let u,p;return t[2]!==l||t[3]!==m||t[4]!==c?(u=r.createElement(i,{key:m,userId:c,dateUpdated:l}),t[2]=l,t[3]=m,t[4]=c,t[5]=u):u=t[5],t[6]!==d||t[7]!==u?(p=r.createElement("div",{className:d},u),t[6]=d,t[7]=u,t[8]=p):p=t[8],p}},87161(e,t,n){n.d(t,{A:()=>bl});var a=n(96540),r=n(35570),s=n(21728),l=n(71468),o=n(68131),i=n(85555),c=n(32681),d=n(76140),m=n(40936),u=n(58168),p=n(34164),h=n(80519);const g={container:"rYzGz3Rx2eJjMVVhj_lA",default:"BRCYi6lJspftkCxcFdpw",primary:"u4HHBIWYgUhQaG3hu6kB",danger:"X_mi34pYwHmBoHHJS15M"},E=e=>{const t=(0,s.c)(39);let n,r,l,o,i,c,d,m,E,f;t[0]!==e?(({animateClassName:n,cancelAnimation:l,className:i,children:o,icon:c,onClick:d,size:E,variant:f,as:r,...m}=e),t[0]=e,t[1]=n,t[2]=r,t[3]=l,t[4]=o,t[5]=i,t[6]=c,t[7]=d,t[8]=m,t[9]=E,t[10]=f):(n=t[1],r=t[2],l=t[3],o=t[4],i=t[5],c=t[6],d=t[7],m=t[8],E=t[9],f=t[10]);const v=(0,a.useRef)(null),[y,b]=(0,a.useState)(!1),[C,w]=(0,a.useState)(l),A=r||"button";let S;l!==C&&(w(l),l&&b(!1)),t[11]===Symbol.for("react.memo_cache_sentinel")?(S=()=>{b(!1)},t[11]=S):S=t[11];const N=S;let _;t[12]!==n||t[13]!==d?(_=e=>{n&&b(!0),d&&d(e)},t[12]=n,t[13]=d,t[14]=_):_=t[14];const I=_,R="button"===A?m.type||"button":void 0;let P;t[15]!==n||t[16]!==i||t[17]!==y||t[18]!==f?(P=n&&y?{className:(0,p.A)(g.container,g[f],i,n),onAnimationEnd:N}:{className:(0,p.A)(g.container,g[f],i)},t[15]=n,t[16]=i,t[17]=y,t[18]=f,t[19]=P):P=t[19];const L=P;let O;t[20]!==L||t[21]!==I||t[22]!==m?(O={onClick:I,...L,...m},t[20]=L,t[21]=I,t[22]=m,t[23]=O):O=t[23];const T=O;if("button"===A){const e=T;let n,r;return t[24]!==c||t[25]!==E?(n=c&&a.createElement(h.A,{icon:c,size:E}),t[24]=c,t[25]=E,t[26]=n):n=t[26],t[27]!==R||t[28]!==o||t[29]!==e||t[30]!==n?(r=a.createElement("button",(0,u.A)({},e,{ref:v,type:R}),n,o),t[27]=R,t[28]=o,t[29]=e,t[30]=n,t[31]=r):r=t[31],r}const k=T;let M,V;return t[32]!==c||t[33]!==E?(M=c&&a.createElement(h.A,{icon:c,size:E}),t[32]=c,t[33]=E,t[34]=M):M=t[34],t[35]!==o||t[36]!==k||t[37]!==M?(V=a.createElement("span",(0,u.A)({},k,{ref:v}),M,o),t[35]=o,t[36]=k,t[37]=M,t[38]=V):V=t[38],V};var f=n(25508),v=n(99996),y=n(32509),b=n(46685);const C=(0,f.Mz)([e=>(0,y.A)(e),e=>e.status.queueId,b.A,e=>e.status.position,e=>e.songs],(e,t,n,a,r)=>{const s=e.result.indexOf(t),l={};let o=0,i=0;return e.result.forEach((t,c)=>{const d=e.entities[t].songId;r.entities[d]&&(c===s?-1===n.lastIndexOf(t)&&(i=Math.round(r.entities[d].duration-a)):c>s&&(o+=i,i=r.entities[d].duration),l[t]=o)}),l});var w=n(47768);const A="UIK2HEzG93kJrZg1zrOI",S="PM6oSstQkOr7xx5WXBco",N="jvBgtBq5nhwhgFxDdohV",_="yRcmNgWXHlqworm4xJFy",I="q3cBXbOJzq3CC3galiDw",R="zKCotnvYis3lj_IxNd42",P=()=>{const e=(0,s.c)(30),t=(0,d.j)(),{filterStr:n,filterStarred:r}=(0,d.G)(L),l=(0,a.useRef)(null),[o,i]=(0,a.useState)(n);let c;e[0]!==t?(c=e=>{i(e.target.value),t((0,w.yy)(e.target.value))},e[0]=t,e[1]=c):c=e[1];const m=c;let u;e[2]!==t?(u=()=>{i(""),t((0,w.lo)())},e[2]=t,e[3]=u):u=e[3];const h=u;let g;e[4]!==h||e[5]!==o?(g=()=>{o.trim()?h():l.current?.focus()},e[4]=h,e[5]=o,e[6]=g):g=e[6];const f=g,v=n&&S;let y,b,C,P;e[7]!==v?(y=(0,p.A)(_,v),e[7]=v,e[8]=y):y=e[8],e[9]!==f||e[10]!==y?(b=a.createElement(E,{className:y,icon:"MAGNIFIER",onClick:f}),e[9]=f,e[10]=y,e[11]=b):b=e[11],e[12]!==m||e[13]!==o?(C=a.createElement("input",{type:"search",className:N,placeholder:"search",value:o,onChange:m,ref:l}),e[12]=m,e[13]=o,e[14]=C):C=e[14],e[15]!==h||e[16]!==n?(P=n&&a.createElement(E,{icon:"CLEAR",onClick:h,className:(0,p.A)(I,S)}),e[15]=h,e[16]=n,e[17]=P):P=e[17];const O=r&&S;let T,k,M,V;return e[18]!==O?(T=(0,p.A)(R,O),e[18]=O,e[19]=T):T=e[19],e[20]!==t?(k=()=>t((0,w.Ic)()),e[20]=t,e[21]=k):k=e[21],e[22]!==k||e[23]!==T?(M=a.createElement(E,{className:T,icon:"STAR_FULL",onClick:k}),e[22]=k,e[23]=T,e[24]=M):M=e[24],e[25]!==M||e[26]!==b||e[27]!==C||e[28]!==P?(V=a.createElement("div",{className:A},b,C,P,M),e[25]=M,e[26]=b,e[27]=C,e[28]=P,e[29]=V):V=e[29],V};function L(e){return e.library}var O=n(45041),T=n(88146),k=n(85134),M=n(11234);const V="DY6_kAr5khzv1QwqLveK",z="X0DCwMUX1tj5tsoGjDFq",H=e=>{const t=(0,s.c)(30);let n,r,l,o,i,c,d,m,g,E;t[0]!==e?(({"aria-label":n,"aria-labelledby":r,className:l,handle:o,min:c,max:i,onChange:d,step:g,value:E,...m}=e),t[0]=e,t[1]=n,t[2]=r,t[3]=l,t[4]=o,t[5]=i,t[6]=c,t[7]=d,t[8]=m,t[9]=g,t[10]=E):(n=t[1],r=t[2],l=t[3],o=t[4],i=t[5],c=t[6],d=t[7],m=t[8],g=t[9],E=t[10]);const[f,v]=(0,a.useState)(null),y=(0,a.useRef)(null);let b;t[11]!==d?(b=e=>{y.current&&(clearTimeout(y.current),y.current=null),(0,k.Dx)(!0),v(e),d(e)},t[11]=d,t[12]=b):b=t[12];const C=b;let w;t[13]!==E?(w=e=>{(0,k.Dx)(!1),e===E?v(null):y.current=setTimeout(()=>{v(null)},2e3)},t[13]=E,t[14]=w):w=t[14];const A=w;let S;t[15]!==n||t[16]!==r?(S=e=>a.cloneElement(e,{"aria-label":n,"aria-labelledby":r,className:z,onTouchEnd:x},a.createElement(h.A,{icon:"CIRCLE"})),t[15]=n,t[16]=r,t[17]=S):S=t[17];const N=S;let _;t[18]!==l?(_=(0,p.A)(V,l),t[18]=l,t[19]=_):_=t[19];const I=o??N,R=f??E;let P;return t[20]!==C||t[21]!==A||t[22]!==i||t[23]!==c||t[24]!==m||t[25]!==g||t[26]!==_||t[27]!==I||t[28]!==R?(P=a.createElement(M.A,(0,u.A)({className:_,handleRender:I,max:i,min:c,onChangeComplete:A,onChange:C,step:g,value:R},m)),t[20]=C,t[21]=A,t[22]=i,t[23]=c,t[24]=m,t[25]=g,t[26]=_,t[27]=I,t[28]=R,t[29]=P):P=t[29],P};function x(e){e.currentTarget.blur()}const U="dMo9SQYONtw9WYO5lxiN",D="pMYNwtxIUiwKZSuUB8NQ",G=(e,{value:t})=>{const n=0===t?"VOLUME_OFF":t<.4?"VOLUME_MUTE":t<.7?"VOLUME_DOWN":"VOLUME_UP";return a.cloneElement(e,{"aria-label":"Volume",className:D},a.createElement(h.A,{icon:n}))},q=e=>{const t=(0,s.c)(3),{volume:n,onVolumeChange:r}=e;let l;return t[0]!==r||t[1]!==n?(l=a.createElement(H,{className:U,handle:G,min:0,max:1,onChange:r,step:.01,value:n}),t[0]=r,t[1]=n,t[2]=l):l=t[2],l},F="sfr6H9YQSnxNFewvtYb2",B="QYsiKZ5NRjaOsK5iaXfX",W=()=>{const e=(0,s.c)(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=a.createElement("div",{className:F},a.createElement("p",{className:B},"No player in room (",a.createElement(r.N_,{to:"/player",target:"_blank",replace:!0},"Launch Player"),")")),e[0]=t):t=e[0],t},j="HHYLkEZBcUJPga1se3oQ",Y="pfOAkdcjAgxEaiTckdFA",Q="aIGh3kF56tYlTfTCzGuC",K="M1nSLELWzWtg0nMNVAPp",J="G89xv3BCUffZqoya0LQl",Z="nsGMxmc6ZA0V4Fwl17Bf",X=e=>{const t=(0,s.c)(31),{buttons:n,className:r,children:l,visible:o,onClose:i,scrollable:c,title:d}=e,m=void 0===o||o,u=(0,a.useRef)(null),h=(0,a.useRef)(!1);let g,f,v;t[0]!==m?(g=()=>{m&&u.current&&u.current.showModal()},f=[m],t[0]=m,t[1]=g,t[2]=f):(g=t[1],f=t[2]),(0,a.useEffect)(g,f),t[3]===Symbol.for("react.memo_cache_sentinel")?(v=e=>{h.current=e.target===u.current},t[3]=v):v=t[3];const y=v;let b;t[4]!==i?(b=e=>{h.current&&e.target===u.current&&i(),h.current=!1},t[4]=i,t[5]=b):b=t[5];const C=b;let w;t[6]!==i?(w=e=>{e.preventDefault(),i()},t[6]=i,t[7]=w):w=t[7];const A=w;if(!m)return null;let S,N,_,I;t[8]!==r?(S=(0,p.A)(j,r),t[8]=r,t[9]=S):S=t[9],t[10]!==d?(N=a.createElement("h1",null,d),t[10]=d,t[11]=N):N=t[11],t[12]!==i?(_=a.createElement(E,{icon:"CLEAR",className:Q,onClick:i,"aria-label":"Close"}),t[12]=i,t[13]=_):_=t[13],t[14]!==N||t[15]!==_?(I=a.createElement("div",{className:Y},N,_),t[14]=N,t[15]=_,t[16]=I):I=t[16];const R=c&&J;let P,L,O,T;return t[17]!==R?(P=(0,p.A)(K,R),t[17]=R,t[18]=P):P=t[18],t[19]!==l||t[20]!==P?(L=a.createElement("div",{className:P},l),t[19]=l,t[20]=P,t[21]=L):L=t[21],t[22]!==n?(O=n&&a.createElement("div",{className:Z},n),t[22]=n,t[23]=O):O=t[23],t[24]!==A||t[25]!==C||t[26]!==I||t[27]!==L||t[28]!==O||t[29]!==S?(T=a.createElement("dialog",{ref:u,className:S,onMouseDown:y,onMouseUp:C,onCancel:A},I,L,O),t[24]=A,t[25]=C,t[26]=I,t[27]=L,t[28]=O,t[29]=S,t[30]=T):T=t[30],T},$="Fqzbj50Thya7wadiB1RR",ee=(0,a.forwardRef)((e,t)=>{const n=(0,s.c)(13);let r,l,o,i,c,d;return n[0]!==e?(({label:l,className:r,...o}=e),n[0]=e,n[1]=r,n[2]=l,n[3]=o):(r=n[1],l=n[2],o=n[3]),n[4]!==r?(i=(0,p.A)($,r),n[4]=r,n[5]=i):i=n[5],n[6]!==t||n[7]!==o?(c=a.createElement("input",(0,u.A)({type:"checkbox",ref:t},o)),n[6]=t,n[7]=o,n[8]=c):c=n[8],n[9]!==l||n[10]!==i||n[11]!==c?(d=a.createElement("label",{className:i},c,l),n[9]=l,n[10]=i,n[11]=c,n[12]=d):d=n[12],d});ee.displayName="InputCheckbox";const te=ee,ne={modal:"CHH6ukgfI31pNfRWfp2z",container:"xKkwU06MKq2DbjSima4p",section:"eBgZD0SKZoZxdKfDH4T1",visualizer:"PJhDzihe1KxTY9CE2xvq",presetContainer:"hMPTUMcNQY0YeMY1WnWo",presetButtons:"WPJeW28XmDzljHtBz0mq",presetName:"Sx5QwRYN26kPCBm4i6rP",unsupported:"zIEucMK4dBypf03pERBF",slider:"MhuyzAaoykU7XrttP0lt"},ae=({cdgAlpha:e,cdgSize:t,isVideoKeyingEnabled:n,isVisualizerEnabled:r,isWebGLSupported:s,mediaType:l="",mp4Alpha:o,sensitivity:i,visualizerPresetName:c,onRequestOptions:d,onClose:m})=>a.createElement(X,{className:ne.modal,onClose:m,title:"Display",buttons:a.createElement(E,{variant:"primary",onClick:m},"Done")},a.createElement("div",{className:ne.container},a.createElement("div",{className:(0,p.A)(ne.section,ne.visualizer)},a.createElement("fieldset",null,a.createElement("legend",null,a.createElement(te,{label:"Visualizer",checked:r,disabled:!s,onChange:()=>d({visualizer:{isEnabled:!r}})})),s&&("cdg"===l||n)&&a.createElement(a.Fragment,null,a.createElement("div",{className:ne.presetContainer},a.createElement("div",{className:ne.presetButtons},a.createElement(E,{onClick:()=>d({visualizer:{prevPreset:!0}}),"aria-label":"Previous preset","aria-controls":"visualizer-preset-name"},a.createElement(h.A,{icon:"CHEVRON_LEFT"})),a.createElement(E,{onClick:()=>d({visualizer:{randomPreset:!0}}),"aria-label":"Random preset","aria-controls":"visualizer-preset-name"},a.createElement(h.A,{icon:"DICE"})),a.createElement(E,{onClick:()=>d({visualizer:{nextPreset:!0}}),"aria-label":"Next preset","aria-controls":"visualizer-preset-name"},a.createElement(h.A,{icon:"CHEVRON_RIGHT"}))),a.createElement("p",{id:"visualizer-preset-name",className:ne.presetName,"aria-live":"polite",translate:"no"},c)),a.createElement("div",{className:ne.field},a.createElement("label",{id:"label-visualizer-sensitivity"},"Sensitivity"),a.createElement(H,{min:0,max:2,step:.01,value:i,onChange:e=>d({visualizer:{sensitivity:e}}),className:ne.slider,"aria-labelledby":"label-visualizer-sensitivity"}))),s&&"cdg"!==l&&!n&&a.createElement("p",{className:ne.unsupported},"Not available for this media type"),!s&&a.createElement("p",{className:ne.unsupported},"WebGL not supported"))),a.createElement("div",{className:(0,p.A)(ne.section,ne.lyrics)},a.createElement("fieldset",null,a.createElement("legend",null,a.createElement("label",null,"Lyrics")),"cdg"===l&&a.createElement("div",{className:ne.field},a.createElement("label",{id:"label-lyrics-size"},"Size"),a.createElement(H,{min:.4,max:.9,step:.01,value:t,onChange:e=>{d({cdgSize:e})},className:ne.slider,"aria-labelledby":"label-lyrics-size"})),("cdg"===l||n)&&a.createElement("div",{className:ne.field},a.createElement("label",{id:"label-lyrics-background"},"Background"),a.createElement(H,{min:0,max:1,step:.01,value:"cdg"===l?e:o,onChange:e=>{""!==l&&d({[l+"Alpha"]:e})},className:ne.slider,"aria-labelledby":"label-lyrics-background"})),"cdg"!==l&&!n&&a.createElement("p",{className:ne.unsupported},"No options available"))))),re="s6dMfvg4cHkpBCZwMxlM",se="utieeUffOQOs5Tb422mr",le="pRlD2sOdoJdRfrjBCylf",oe="ffq0SD5gzioIYEcgKgLY",ie="pjBKslXw1U349A1rnhe0",ce="tQEHmnxGjJM781oxemUN",de="fIuT4teYAIcl4oLOLEzJ",me="HZ7zG9VjL9eCkdQDZGIM",ue=()=>{if(O.A.isEnabled){const e=document.getElementById("player-fs-container");O.A.request(e)}},pe=()=>{const e=(0,s.c)(53),[t,n]=(0,a.useState)(!1),l=(0,r.zy)();let o;e[0]!==l.pathname?(o=l.pathname.replace(/\/$/,"").endsWith("/player"),e[0]=l.pathname,e[1]=o):o=e[1];const i=o,c=(0,d.G)(he),m=(0,d.G)(ge),u=(0,d.G)(Ee),h=(0,d.j)();let g;e[2]!==h?(g=e=>h((0,T.ag)(e)),e[2]=h,e[3]=g):g=e[3];const f=g;let v;e[4]!==h?(v=()=>h((0,T.wr)()),e[4]=h,e[5]=v):v=e[5];const y=v;let b;e[6]!==h?(b=()=>h((0,T.cd)()),e[6]=h,e[7]=b):b=e[7];const C=b;let w;e[8]!==h?(w=()=>h((0,T.Lx)()),e[8]=h,e[9]=w):w=e[9];const A=w;let S;e[10]!==h?(S=e=>h((0,T.MP)(e)),e[10]=h,e[11]=S):S=e[11];const N=S;let _;e[12]!==t?(_=()=>{n(!t)},e[12]=t,e[13]=_):_=e[13];const I=_;if(!u.isPlayerPresent){let t;return e[14]!==c||e[15]!==m?(t=c&&m&&O.A.isEnabled?a.createElement(W,null):null,e[14]=c,e[15]=m,e[16]=t):t=e[16],t}const R=u.isPlaying?ie:oe;let P;e[17]!==R?(P=(0,p.A)(se,R),e[17]=R,e[18]=P):P=e[18];const L=u.isPlaying?"PAUSE":"PLAY",k=u.isPlaying?y:C,M=u.isPlaying?"Pause":"Play";let V,z,H,x,U,D,G,F,B;return e[19]!==k||e[20]!==M||e[21]!==P||e[22]!==L?(V=a.createElement(E,{animateClassName:le,className:P,icon:L,onClick:k,"aria-label":M}),e[19]=k,e[20]=M,e[21]=P,e[22]=L,e[23]=V):V=e[23],e[24]===Symbol.for("react.memo_cache_sentinel")?(z=(0,p.A)(se,ce),e[24]=z):z=e[24],e[25]!==A?(H=a.createElement(E,{animateClassName:le,className:z,icon:"PLAY_NEXT",onClick:A,"aria-label":"Play Next"}),e[25]=A,e[26]=H):H=e[26],e[27]!==N||e[28]!==u.volume?(x=a.createElement(q,{volume:u.volume,onVolumeChange:N}),e[27]=N,e[28]=u.volume,e[29]=x):x=e[29],e[30]===Symbol.for("react.memo_cache_sentinel")?(U=(0,p.A)(se,de),e[30]=U):U=e[30],e[31]!==I?(D=a.createElement(E,{className:U,icon:"TUNE",onClick:I,size:48,"aria-label":"Display Options"}),e[31]=I,e[32]=D):D=e[32],e[33]!==i?(G=i&&O.A.isEnabled&&a.createElement(E,{className:(0,p.A)(se,me),icon:"FULLSCREEN",onClick:ue,"aria-label":"Enter Fullscreen"}),e[33]=i,e[34]=G):G=e[34],e[35]!==f||e[36]!==t||e[37]!==u.cdgAlpha||e[38]!==u.cdgSize||e[39]!==u.isVideoKeyingEnabled||e[40]!==u.isWebGLSupported||e[41]!==u.mediaType||e[42]!==u.mp4Alpha||e[43]!==u.visualizer||e[44]!==I?(F=t&&a.createElement(ae,{cdgAlpha:u.cdgAlpha,cdgSize:u.cdgSize,isVideoKeyingEnabled:u.isVideoKeyingEnabled,isVisualizerEnabled:u.visualizer.isEnabled,isWebGLSupported:u.isWebGLSupported,mediaType:u.mediaType,mp4Alpha:u.mp4Alpha,onClose:I,onRequestOptions:f,sensitivity:u.visualizer.sensitivity,visualizerPresetName:u.visualizer.presetName}),e[35]=f,e[36]=t,e[37]=u.cdgAlpha,e[38]=u.cdgSize,e[39]=u.isVideoKeyingEnabled,e[40]=u.isWebGLSupported,e[41]=u.mediaType,e[42]=u.mp4Alpha,e[43]=u.visualizer,e[44]=I,e[45]=F):F=e[45],e[46]!==V||e[47]!==H||e[48]!==x||e[49]!==D||e[50]!==G||e[51]!==F?(B=a.createElement("div",{className:re},V,H,x,D,G,F),e[46]=V,e[47]=H,e[48]=x,e[49]=D,e[50]=G,e[51]=F,e[52]=B):B=e[52],B};function he(e){return e.user.isAdmin}function ge(e){return null!==e.user.roomId}function Ee(e){return e.status}const fe="R0tWhGzOMnxRvplqamqt",ve="WxqoYmzzeIRmqDepbVLR",ye="iL_22Dl4fbuLsQo42o2o",be="rMNneKuTapuKwyse_AMl";class Ce extends a.Component{state={isCanceling:!1,isVisible:!1};handleCancelClick=()=>{this.props.isActive&&!this.state.isCanceling?(this.setState({isCanceling:!0}),this.props.onCancel()):this.setState({isVisible:!1})};componentDidUpdate(e){this.props.isActive&&!e.isActive?this.setState({isVisible:!0,isCanceling:!1}):this.state.isCanceling&&this.props.text!==e.text&&this.setState({isCanceling:!1})}render(){const{state:e,props:t}=this;return e.isVisible?a.createElement("div",{className:fe,style:{backgroundSize:t.pct+"% 100%"}},a.createElement("p",{className:ve},e.isCanceling?"Stopping...":t.text),a.createElement(E,{className:t.isActive?ye:be,icon:"CLEAR",onClick:this.handleCancelClick,size:40})):null}}function we(e){return function(e){return e.toISOString().substring(0,10)}(e)+" "+function(e){let t=e.getHours(),n=e.getMinutes();const a=t>11?"p":"a";return t>12?t-=12:0===t&&(t="12"),n<10&&(n="0"+n),t+":"+n+a}(e)}function Ae(e){const t=e%60;return`${Math.floor(e/60)}:${t<10?"0"+t:t}`}function Se(e,t=!1){if(e>=60&&t)return Math.round(e/60)+"m";const n=Math.floor(e/60),a=e%60;return n?`${n}m ${a}s`:`${a}s`}const Ne="qdbIg3xgUn4KEomWXd7E",_e="PhYxOVpDCwPMJWw0BE6k",Ie="C9WuYntlaEVvxRaewY7r",Re="pXcSEQ5RRGogLr2WCFum",Pe="ZYRIFRvELzaH67PRlPlp",Le=e=>{const t=(0,s.c)(13);if(e.isUpNow){let e,n;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,p.A)(Ne,Ie),t[0]=e):e=t[0],t[1]===Symbol.for("react.memo_cache_sentinel")?(n=a.createElement("div",{className:e},a.createElement("p",{className:Pe},"You’re up"," ",a.createElement("strong",null,"now"))),t[1]=n):n=t[1],n}if(e.isUpNext){let n,r,s,l;return t[2]===Symbol.for("react.memo_cache_sentinel")?(n=(0,p.A)(Ne,_e),t[2]=n):n=t[2],t[3]===Symbol.for("react.memo_cache_sentinel")?(r=a.createElement("strong",null,"next"),t[3]=r):r=t[3],t[4]!==e.wait?(s=e.wait?` in ${Se(e.wait,!0)}`:"",t[4]=e.wait,t[5]=s):s=t[5],t[6]!==s?(l=a.createElement("div",{className:n},a.createElement("p",{className:Pe},"You’re up"," ",r,s)),t[6]=s,t[7]=l):l=t[7],l}if(e.wait){let n,r,s;return t[8]===Symbol.for("react.memo_cache_sentinel")?(n=(0,p.A)(Ne,Re),t[8]=n):n=t[8],t[9]!==e.wait?(r=Se(e.wait,!0),t[9]=e.wait,t[10]=r):r=t[10],t[11]!==r?(s=a.createElement("div",{className:n},a.createElement("p",{className:Pe},"You’re up in"," ",r)),t[11]=r,t[12]=s):s=t[12],s}return null},Oe="vreYukSnqUrGi25wejn4",Te=e=>e.status.queueId,ke=e=>e.user.userId,Me=(0,f.Mz)([y.A,Te,ke,C],(e,t,n,a)=>{for(let r=e.result.indexOf(t)+1;r<e.result.length;r++)if(e.entities[e.result[r]].userId===n)return a[e.result[r]]}),Ve=(0,f.Mz)([y.A,Te,e=>e.status.isAtQueueEnd,ke],(e,t,n,a)=>{const{result:r,entities:s}=e,l=r.indexOf(t),o=s[t];return{isUpNext:!!r[l+1]&&s[r[l+1]].userId===a,isUpNow:!!o&&(!n&&o.userId===a)}}),ze=a.forwardRef((e,t)=>{const n=(0,s.c)(27),l=(0,d.G)(xe),o=(0,d.G)(Ue),i=(0,d.G)(De),c=(0,d.G)(Ge),m=(0,d.G)(qe),{isUpNext:u,isUpNow:h}=(0,d.G)(Ve),g=(0,d.G)(Me),E=(0,r.zy)();let f;n[0]!==E.pathname?(f=E.pathname.replace(/\/$/,"").endsWith("/player"),n[0]=E.pathname,n[1]=f):f=n[1];const y=f,b=(0,d.j)();let C;n[2]!==b?(C=()=>b((0,v.fm)()),n[2]=b,n[3]=C):C=n[3];const w=C;let A,S,N,_,I,R;return n[4]===Symbol.for("react.memo_cache_sentinel")?(A=(0,p.A)(Oe,"bg-blur"),n[4]=A):A=n[4],n[5]!==y||n[6]!==o||n[7]!==u||n[8]!==h||n[9]!==g?(S=!y&&o&&a.createElement(Le,{isUpNext:u,isUpNow:h,wait:g}),n[5]=y,n[6]=o,n[7]=u,n[8]=h,n[9]=g,n[10]=S):S=n[10],n[11]!==l||n[12]!==h?(N=(h||l)&&a.createElement(pe,null),n[11]=l,n[12]=h,n[13]=N):N=n[13],n[14]!==w||n[15]!==l||n[16]!==y||n[17]!==i||n[18]!==m||n[19]!==c?(_=l&&!y&&a.createElement(Ce,{isActive:i,onCancel:w,pct:m,text:c}),n[14]=w,n[15]=l,n[16]=y,n[17]=i,n[18]=m,n[19]=c,n[20]=_):_=n[20],n[21]===Symbol.for("react.memo_cache_sentinel")?(I=a.createElement(r.BV,null,a.createElement(r.qh,{path:"/library",element:a.createElement(P,null)})),n[21]=I):I=n[21],n[22]!==t||n[23]!==S||n[24]!==N||n[25]!==_?(R=a.createElement("div",{className:A,ref:t},S,N,_,I),n[22]=t,n[23]=S,n[24]=N,n[25]=_,n[26]=R):R=n[26],R});ze.displayName="Header";const He=ze;function xe(e){return e.user.isAdmin}function Ue(e){return e.status.isPlayerPresent}function De(e){return e.prefs.isScanning}function Ge(e){return e.prefs.scannerText}function qe(e){return e.prefs.scannerPct}const Fe="sjMaG58osNAeqXFe4zpO",Be="KFIi1hoqiTVulFtwCOgg",We="bx9kUlhkDMmCKpxez9Kn",je=a.forwardRef((e,t)=>{const n=(0,s.c)(6);let l,o,i,c,d;return n[0]===Symbol.for("react.memo_cache_sentinel")?(l=(0,p.A)(Fe,"bg-blur"),n[0]=l):l=n[0],n[1]===Symbol.for("react.memo_cache_sentinel")?(o=a.createElement(r.k2,{to:"/library",replace:!0,className:Qe},Ke),i=a.createElement(r.k2,{to:"/queue",replace:!0,className:Je},Ze),c=a.createElement(r.k2,{to:"/account",replace:!0,className:Xe},$e),n[1]=o,n[2]=i,n[3]=c):(o=n[1],i=n[2],c=n[3]),n[4]!==t?(d=a.createElement("div",{className:l,ref:t},o,i,c),n[4]=t,n[5]=d):d=n[5],d});je.displayName="Navigation";const Ye=je;function Qe(e){const{isActive:t}=e;return(0,p.A)(t&&Be)}function Ke(e){const{isActive:t}=e;return a.createElement(E,{icon:"NAV_LIBRARY",as:"span",animateClassName:We,cancelAnimation:!t})}function Je(e){const{isActive:t}=e;return(0,p.A)(t&&Be)}function Ze(e){const{isActive:t}=e;return a.createElement(E,{icon:"NAV_SUBSCRIPTIONS",as:"span",animateClassName:We,cancelAnimation:!t})}function Xe(e){const{isActive:t}=e;return(0,p.A)(t&&Be)}function $e(e){const{isActive:t}=e;return a.createElement(E,{icon:t?"NAV_ACCOUNT_ACTIVE":"NAV_ACCOUNT",as:"span",animateClassName:We,cancelAnimation:!t})}var et=n(89853);const tt="AOWDkEJZ7Uh6TMmJSmDN",nt="Gi_1FjbpZU1FcRC85lBE",at="k8N_J395xr2bblBgwvim",rt="TSJBvSrnl7BotohIdqrj",st=()=>{const e=(0,s.c)(38),{isLoading:t,isVisible:n,songId:r,media:l}=(0,d.G)(lt),o=(0,d.j)();let i;e[0]!==o?(i=()=>o((0,et.ks)()),e[0]=o,e[1]=i):i=e[1];const c=i;let m;e[2]!==o||e[3]!==r?(m=e=>o((0,et.Zi)({songId:r,mediaId:e,isPreferred:!0})),e[2]=o,e[3]=r,e[4]=m):m=e[4];const u=m;let p;e[5]!==o||e[6]!==r?(p=e=>o((0,et.Zi)({songId:r,mediaId:e,isPreferred:!1})),e[5]=o,e[6]=r,e[7]=p):p=e[7];const h=p;let g;if(e[8]!==u||e[9]!==h||e[10]!==l.entities||e[11]!==l.result){let t;e[13]!==u||e[14]!==h||e[15]!==l.entities?(t=e=>{const t=l.entities[e],n=!!t.isPreferred;return a.createElement("div",{key:t.mediaId,className:at},t.path+(0===t.path.indexOf("/")?"/":"\\")+t.relPath,a.createElement("br",null),a.createElement("span",{className:rt},"Duration: "),Ae(t.duration),a.createElement("br",null),a.createElement("span",{className:rt},"Media ID: "),e,a.createElement("br",null),a.createElement("span",{className:rt},"Preferred: "),n&&a.createElement("span",null,a.createElement("strong",null,"Yes")," ",a.createElement("a",{onClick:()=>h(e)},"(Unset)")),!n&&a.createElement("span",null,"No ",a.createElement("a",{onClick:()=>u(e)},"(Set)")))},e[13]=u,e[14]=h,e[15]=l.entities,e[16]=t):t=e[16],g=l.result.map(t),e[8]=u,e[9]=h,e[10]=l.entities,e[11]=l.result,e[12]=g}else g=e[12];const f=g;let v,y,b;e[17]===Symbol.for("react.memo_cache_sentinel")?(v=a.createElement("span",{className:rt},"Song ID: "),e[17]=v):v=e[17],e[18]===Symbol.for("react.memo_cache_sentinel")?(y=a.createElement("br",null),b=a.createElement("span",{className:rt},"Media Files: "),e[18]=y,e[19]=b):(y=e[18],b=e[19]);const C=t?"?":l.result.length;let w,A,S,N,_,I;return e[20]!==r||e[21]!==C?(w=a.createElement("p",null,v,r,y,b,C),e[20]=r,e[21]=C,e[22]=w):w=e[22],e[23]!==t||e[24]!==f?(A=t?a.createElement("p",null,"Loading..."):f,e[23]=t,e[24]=f,e[25]=A):A=e[25],e[26]!==A?(S=a.createElement("div",{className:nt},A),e[26]=A,e[27]=S):S=e[27],e[28]!==c?(N=a.createElement("div",null,a.createElement(E,{variant:"primary",onClick:c},"Done")),e[28]=c,e[29]=N):N=e[29],e[30]!==S||e[31]!==N||e[32]!==w?(_=a.createElement("div",{className:tt},w,S,N),e[30]=S,e[31]=N,e[32]=w,e[33]=_):_=e[33],e[34]!==c||e[35]!==n||e[36]!==_?(I=a.createElement(X,{visible:n,onClose:c,title:"Song Info"},_),e[34]=c,e[35]=n,e[36]=_,e[37]=I):I=e[37],I};function lt(e){return e.songInfo}var ot=n(77759);const it="MhLrBfYw2bVvon36GHQg",ct="MRwxEsiCu74aMC4fJ2yn",dt="XrgY7jUteM7yAiFgHV3G",mt="DWgmgDjZ7evrSUQVOufA",ut="opBGPXUVYOwhN4fsI5_5",pt=e=>{const t=(0,s.c)(12),[n,r]=(0,a.useState)(ht);let l,o,i,c,d,m,u;return t[0]===Symbol.for("react.memo_cache_sentinel")?(l=()=>{document.fonts&&document.fonts.load("1em Beon").then(()=>(r(!0),!0)).catch(()=>(r(!0),!1))},o=[],t[0]=l,t[1]=o):(l=t[0],o=t[1]),(0,a.useEffect)(l,o),t[2]!==e.className?(i=(0,p.A)(it,e.className),t[2]=e.className,t[3]=i):i=t[3],t[4]!==n?(c=(0,p.A)(dt,{[mt]:n}),t[4]=n,t[5]=c):c=t[5],t[6]===Symbol.for("react.memo_cache_sentinel")?(d=a.createElement("span",{className:ut},"l"),t[6]=d):d=t[6],t[7]!==c?(m=a.createElement("span",{className:ct,"aria-hidden":"true"},"Karaoke",a.createElement("span",{className:c},"Eterna",d)),t[7]=c,t[8]=m):m=t[8],t[9]!==i||t[10]!==m?(u=a.createElement("div",{className:i,role:"img","aria-label":"Karaoke Eternal"},m),t[9]=i,t[10]=m,t[11]=u):u=t[11],u};function ht(){return"undefined"!=typeof document&&!document.fonts}var gt=n(58202),Et=n.n(gt);const ft="kMVEh9LeEn4g4mp_4CQN",vt="YA6i4Cl4kAWWDVU3e1xA",yt="s4sM5iEgPiWiNqVuWXXy",bt="urwdlhf5zLiQCnkW1lW9",Ct=e=>{const t=(0,s.c)(24),{user:n,onSelect:r}=e,[l,o]=(0,a.useState)(!0),[i,c]=(0,a.useState)(n&&null!==n.userId?`${document.baseURI}api/user/${n.userId}/image?v=${n.dateUpdated}`:null);let d,m,u;t[0]!==i?(d=()=>()=>{i&&URL.revokeObjectURL(i)},m=[i],t[0]=i,t[1]=d,t[2]=m):(d=t[1],m=t[2]),(0,a.useEffect)(d,m),t[3]===Symbol.for("react.memo_cache_sentinel")?(u=()=>{o(!1)},t[3]=u):u=t[3];const p=u;let g;t[4]===Symbol.for("react.memo_cache_sentinel")?(g=()=>{c(null),o(!1)},t[4]=g):g=t[4];const f=g;let v;t[5]!==r?(v=()=>{c(null),r(null)},t[5]=r,t[6]=v):v=t[6];const y=v;let b;t[7]!==r?(b=e=>{const t=e.target.files?.[0];t&&Et()(t,e=>{if(e instanceof Event)return void alert("The image could not be loaded.");Et().scale(e,{canvas:!0,maxWidth:400,maxHeight:300,crop:!0,downsamplingRatio:.5}).toBlob(e=>{e&&(c(URL.createObjectURL(e)),r(e))},"image/jpeg")},{canvas:!0,aspectRatio:1.3333333333333333,orientation:!0})},t[7]=r,t[8]=b):b=t[8];const C=b;let w,A,S,N,_;return t[9]!==i?(w=!i&&a.createElement(h.A,{icon:"PHOTO_ADD",size:48,className:bt}),t[9]=i,t[10]=w):w=t[10],t[11]!==i?(A=i&&a.createElement("img",{src:i,width:96,height:72,onLoad:p,onError:f,alt:"User Profile"}),t[11]=i,t[12]=A):A=t[12],t[13]!==y||t[14]!==i||t[15]!==l?(S=i&&!l&&a.createElement(E,{className:yt,icon:"CLEAR",onClick:y,size:32}),t[13]=y,t[14]=i,t[15]=l,t[16]=S):S=t[16],t[17]!==C?(N=a.createElement("input",{type:"file",accept:"image/*",onChange:C,className:vt,ref:At}),t[17]=C,t[18]=N):N=t[18],t[19]!==N||t[20]!==w||t[21]!==A||t[22]!==S?(_=a.createElement("div",{className:ft},w,A,S,N),t[19]=N,t[20]=w,t[21]=A,t[22]=S,t[23]=_):_=t[23],_};function wt(e){e.stopPropagation()}function At(e){e&&e.addEventListener("cancel",wt)}const St="UJP7G5dKPXhMYPVm9lGC",Nt="MRv8af4NPh12SLYbjwuA",_t=e=>{const t=(0,s.c)(46),{autoFocus:n,children:r,onDirtyChange:l,onSubmit:o,showRole:i,showUsername:c,showPassword:d,user:m}=e,u=void 0===c||c,p=void 0===d||d,h=(0,a.useRef)(null),g=(0,a.useRef)(null),E=(0,a.useRef)(null),f=(0,a.useRef)(null),v=(0,a.useRef)(null),[y,b]=(0,a.useState)(m?.dateUpdated),C=!m||null===m.userId;let w;t[0]!==C?(w={isDirty:!1,isChangingPassword:C,userImage:void 0},t[0]=C,t[1]=w):w=t[1];const[A,S]=(0,a.useState)(w),N=(0,a.useRef)(A.isDirty);let _,I,R;m&&m.dateUpdated!==y&&(b(m.dateUpdated),S(It)),t[2]!==l||t[3]!==A.isDirty?(_=()=>{l&&N.current!==A.isDirty&&l(A.isDirty),N.current=A.isDirty},I=[A.isDirty,l],t[2]=l,t[3]=A.isDirty,t[4]=_,t[5]=I):(_=t[4],I=t[5]),(0,a.useEffect)(_,I),t[6]!==m?(R=()=>{m&&null!==m.userId&&S(e=>({...e,isDirty:!!h.current?.value||!!g.current?.value||f.current?.value!==m.name||v.current&&v.current.value!==(m.isAdmin?"1":"0"),isChangingPassword:!!g.current?.value}))},t[6]=m,t[7]=R):R=t[7];const P=R;let L;t[8]===Symbol.for("react.memo_cache_sentinel")?(L=e=>{S(t=>({...t,userImage:e,isDirty:!0}))},t[8]=L):L=t[8];const O=L;let T;t[9]!==o||t[10]!==A.isChangingPassword||t[11]!==A.userImage?(T=e=>{e.preventDefault();const t=new FormData;f.current?.value.trim()&&t.append("name",f.current.value.trim()),h.current?.value.trim()&&t.append("username",h.current.value.trim()),A.isChangingPassword&&(t.append("newPassword",g.current?.value||""),t.append("newPasswordConfirm",E.current?.value||"")),void 0!==A.userImage&&t.append("image",A.userImage),v.current&&t.append("role",v.current.value),o(t)},t[9]=o,t[10]=A.isChangingPassword,t[11]=A.userImage,t[12]=T):T=t[12];const k=T,M=m?.dateUpdated;let V,z,H,x;t[13]!==n||t[14]!==u||t[15]!==P||t[16]!==m?(V=u&&a.createElement("input",{type:"email",autoComplete:"off",autoFocus:n,onChange:P,placeholder:m&&null!==m.userId?"change username (optional)":"username or email",ref:e=>{e&&(h.current=e),n&&e?.setAttribute("autofocus","true")}}),t[13]=n,t[14]=u,t[15]=P,t[16]=m,t[17]=V):V=t[17],t[18]!==p||t[19]!==P||t[20]!==m?(z=p&&a.createElement("input",{type:"password",autoComplete:"new-password",onChange:P,placeholder:m&&null!==m.userId?"change password (optional)":"password",ref:g}),t[18]=p,t[19]=P,t[20]=m,t[21]=z):z=t[21],t[22]!==A.isChangingPassword||t[23]!==m?(H=A.isChangingPassword&&a.createElement("input",{type:"password",autoComplete:"new-password",placeholder:m&&null!==m.userId?"new password confirm":"confirm password",ref:E}),t[22]=A.isChangingPassword,t[23]=m,t[24]=H):H=t[24],t[25]!==m?(x=a.createElement(Ct,{user:m,onSelect:O}),t[25]=m,t[26]=x):x=t[26];const U=m?.name??"";let D,G,q,F;return t[27]!==U||t[28]!==P?(D=a.createElement("input",{type:"text",defaultValue:U,onChange:P,placeholder:"display name",ref:f}),t[27]=U,t[28]=P,t[29]=D):D=t[29],t[30]!==x||t[31]!==D?(G=a.createElement("div",{className:Nt},x,D),t[30]=x,t[31]=D,t[32]=G):G=t[32],t[33]!==i||t[34]!==P||t[35]!==m?.role?(q=i&&a.createElement("select",{defaultValue:m?.role,onChange:P,ref:v},a.createElement("option",{key:"choose",value:"",disabled:!0},"select role..."),"guest"===m?.role&&a.createElement("option",{key:"guest",value:"guest"},"Guest"),a.createElement("option",{key:"standard",value:"standard"},"Standard"),a.createElement("option",{key:"admin",value:"admin"},"Administrator")),t[33]=i,t[34]=P,t[35]=m?.role,t[36]=q):q=t[36],t[37]!==r||t[38]!==k||t[39]!==M||t[40]!==V||t[41]!==z||t[42]!==H||t[43]!==G||t[44]!==q?(F=a.createElement("form",{className:St,key:M,noValidate:!0,onSubmit:k},V,z,H,G,q,r),t[37]=r,t[38]=k,t[39]=M,t[40]=V,t[41]=z,t[42]=H,t[43]=G,t[44]=q,t[45]=F):F=t[45],F};function It(e){return{...e,isDirty:!1}}const Rt="IwyJhXcw4stbQluvU1RS",Pt="LBGExauA2_9eEf6X1NAw",Lt=()=>{const e=(0,s.c)(13),t=(0,d.G)(Ot),n=(0,d.j)();let r;e[0]!==n?(r=e=>{n((0,ot._m)(e))},e[0]=n,e[1]=r):r=e[1];const l=r,o=Math.max(340,.66*t.contentWidth);let i,c,m,u,p,h,g;return e[2]!==o?(i={maxWidth:o},e[2]=o,e[3]=i):i=e[3],e[4]===Symbol.for("react.memo_cache_sentinel")?(c=a.createElement(pt,{className:Pt}),m=a.createElement("h1",null,"Welcome"),e[4]=c,e[5]=m):(c=e[4],m=e[5]),e[6]===Symbol.for("react.memo_cache_sentinel")?(u=a.createElement("p",null,"Create your"," ",a.createElement("b",null,"admin")," ","account to get started. All data is locally stored and never shared."),e[6]=u):u=e[6],e[7]===Symbol.for("react.memo_cache_sentinel")?(p=a.createElement(E,{variant:"primary",type:"submit"},"Create Account"),e[7]=p):p=e[7],e[8]!==l?(h=a.createElement(_t,{onSubmit:l,autoFocus:!0},p),e[8]=l,e[9]=h):h=e[9],e[10]!==i||e[11]!==h?(g=a.createElement("div",{className:Rt,style:i},c,m,u,h),e[10]=i,e[11]=h,e[12]=g):g=e[12],g};function Ot(e){return e.ui}var Tt=n(37655),kt=n(15452),Mt=n(77170),Vt=n(42730);const zt=new Mt.A(""),Ht=(0,kt.zD)(Vt.J_,async()=>await zt.get("users")),xt=(0,kt.zD)(Vt.U7,async(e,t)=>{await zt.post("user",{body:e}),t.dispatch(Ht())}),Ut=(0,kt.zD)(Vt.v3,async({userId:e,data:t},n)=>{await zt.put(`user/${e}`,{body:t}),n.dispatch(Ht())}),Dt=(0,kt.zD)(Vt.iM,async(e,t)=>{await zt.delete(`user/${e}`),t.dispatch(Ht())}),Gt=(0,kt.VP)(Vt.SX),qt=(0,kt.VP)(Vt.Y2),Ft=(0,kt.VP)(Vt.gD),Bt=(0,kt.VP)(Vt.gn),Wt=(0,kt.vy)({result:[],entities:{},filterOnline:!0,filterRoomId:null,isEditorOpen:!1},e=>{e.addCase(Ht.fulfilled,(e,{payload:t})=>({...e,...t})).addCase(xt.fulfilled,e=>{e.isEditorOpen=!1}).addCase(Ut.fulfilled,e=>{e.isEditorOpen=!1}).addCase(Dt.fulfilled,e=>{e.isEditorOpen=!1}).addCase(Gt,e=>{e.isEditorOpen=!0}).addCase(qt,e=>{e.isEditorOpen=!1}).addCase(Ft,(e,{payload:t})=>({...e,filterOnline:t,filterRoomId:null})).addCase(Bt,(e,{payload:t})=>({...e,filterOnline:!1,filterRoomId:t}))}),jt=(0,kt.VP)(Vt.fD),Yt="WUYY8MZhwwhVekAlX5_d",Qt="eP0BAX5ayTg1WGhcfd7y",Kt="OgJ5EnIwV5jp1GGDcabg",Jt=e=>{const t=(0,s.c)(16),{children:n,className:r,contentClassName:l,title:o,titleComponent:i}=e;let c,d,m,u,h,g;return t[0]!==r?(c=(0,p.A)(Yt,r),t[0]=r,t[1]=c):c=t[1],t[2]!==o?(d=a.createElement("h1",null,o),t[2]=o,t[3]=d):d=t[3],t[4]!==d||t[5]!==i?(m=a.createElement("div",{className:Qt},d,i),t[4]=d,t[5]=i,t[6]=m):m=t[6],t[7]!==l?(u=(0,p.A)(Kt,l),t[7]=l,t[8]=u):u=t[8],t[9]!==n||t[10]!==u?(h=a.createElement("div",{className:u},n),t[9]=n,t[10]=u,t[11]=h):h=t[11],t[12]!==c||t[13]!==m||t[14]!==h?(g=a.createElement("div",{className:c},m,h),t[12]=c,t[13]=m,t[14]=h,t[15]=g):g=t[15],g};const Zt="XIvZjD6Co9DyofyCj0Da",Xt="oPMyaF6eFojk2b8ZQKwH",$t="mFno0FFze3kHGDdbZDBB",en="NjmtwxMJxR179Hk2Pomb",tn="okfIUIOCzr40SucFJR9B",nn="J1Y6pDd6XtAUjqhW2qIF",an="ZKYWLeUdrki571OMgwqw",rn="zMurrtazRZl6yxeeInn2",sn="z6j4SZzTbavwii_DBoa2",ln=(new Date).getFullYear(),on=()=>{const e=(0,s.c)(14),[t,n]=(0,a.useState)(!1);let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=()=>n(cn),e[0]=r):r=e[0];const l=r;let o,i,c,d,m,u,g,f,v,y,b;return e[1]===Symbol.for("react.memo_cache_sentinel")?(o=a.createElement("a",{href:"https://www.karaoke-eternal.com",target:"_blank",rel:"noreferrer"},a.createElement(pt,{className:Xt})),e[1]=o):o=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(i=a.createElement("p",{className:$t},"©",`2019-${ln}`," ",a.createElement("a",{href:"https://www.radroot.com",target:"_blank",rel:"noreferrer"},"RadRoot LLC"),a.createElement("br",null),"v","2.0.2-beta.2"),c=a.createElement("a",{className:en,onClick:l},"Changelog & Sponsors"),e[2]=i,e[3]=c):(i=e[2],c=e[3]),e[4]===Symbol.for("react.memo_cache_sentinel")?(d=a.createElement("p",null,c," ","|"," ",a.createElement("a",{href:"/licenses.txt",target:"_blank"},"Licenses")),e[4]=d):d=e[4],e[5]===Symbol.for("react.memo_cache_sentinel")?(m=a.createElement("div",{className:an},a.createElement("a",{href:"https://www.karaoke-eternal.com/repo",target:"_blank",rel:"noreferrer"},a.createElement(h.A,{icon:"GITHUB_REPO",size:16}),"GitHub")),u=(0,p.A)(an,rn),e[5]=m,e[6]=u):(m=e[5],u=e[6]),e[7]===Symbol.for("react.memo_cache_sentinel")?(g=a.createElement("div",{className:u},a.createElement("a",{href:"https://www.karaoke-eternal.com/repo",target:"_blank",rel:"noreferrer"},a.createElement(h.A,{icon:"GITHUB_STAR",size:16}),"Star")),f=(0,p.A)(an,sn),e[7]=g,e[8]=f):(g=e[7],f=e[8]),e[9]===Symbol.for("react.memo_cache_sentinel")?(v=a.createElement("div",{className:nn},m,g,a.createElement("div",{className:f},a.createElement("a",{href:"https://www.karaoke-eternal.com/sponsor",target:"_blank",rel:"noreferrer"},a.createElement(h.A,{icon:"GITHUB_SPONSOR",size:16}),"Sponsor"))),e[9]=v):v=e[9],e[10]!==t?(y=t&&a.createElement(X,{title:"Changelog & Sponsors",className:tn,onClose:l,scrollable:!0,buttons:a.createElement(E,{variant:"primary",onClick:l},"Done")},a.createElement("a",{href:"","aria-hidden":!0}),a.createElement("div",{dangerouslySetInnerHTML:{__html:'<h2 id="v201-2026-01-10">v2.0.1 (2026-01-10)</h2> <ul> <li>Obligatory bug fixes and performance improvements</li> </ul> <h2 id="v200-2025-12-26">v2.0.0 (2025-12-26)</h2> <p><strong>Sponsored by</strong>: <a href="https://github.com/candre23">candre23</a>, <a href="https://github.com/nellisdev">nellisdev</a>, <a href="https://github.com/astrobyte">astrobyte</a>, <a href="https://github.com/jfeldhamer">jfeldhamer</a>, <a href="https://github.com/cubandaddy">cubandaddy</a>, <a href="https://github.com/Backroads4Me">Backroads4Me</a> and other private sponsors. Thank you! If you have fun with it, please consider <a href="https://www.karaoke-eternal.com/sponsor">sponsoring</a>.</p> <h3 id="guest-accounts-and-qr-codes">Guest accounts and QR codes</h3> <p>Joining the party is now faster and easier. The player supports QR codes that link directly to a room, where singers can now (finally!) join as guests. Admins can also choose whether a room allows guests and/or new standard users, or only existing users.</p> <h3 id="videos--visualizer">Videos + visualizer</h3> <p>Visualizations are now supported with video files. By automatically detecting a video&#39;s background color and making it transparent, visualizer effects can be displayed behind the lyrics. This works best on videos with solid color backgrounds, and can be enabled by selecting &quot;Allow video background keying&quot; in the media folder&#39;s preferences.</p> <h3 id="improved-queue-management">Improved queue management</h3> <p>Enhancements to the queue include:</p> <ul> <li>The queue can be restarted from any previously played song, or the beginning of the current song</li> <li>All upcoming songs for a user can be removed at once by long-pressing the <em>Remove</em> or <em>Skip</em> buttons</li> <li>When a standard user or guest signs out, their upcoming songs are now automatically removed from the queue</li> </ul> <h3 id="metadata-parser-changes">Metadata parser changes</h3> <p>Previously, the metadata parser (which uses filenames or tags to determine artist names and song titles) could be customized via <code>_kes.v1.js</code> files which were essentially arbitrary JavaScript. They were run in a sandbox to limit their functionality, but that sandbox was deprecated, and the overall approach was complex.</p> <p>In v2, the parser instead uses <code>_kes.v2.json</code> files. These JSON files allow the same basic configuration, in addition to simple string replacement and &quot;templating&quot; of artist names and song titles. See the docs for more information. As always, the best approach is to properly name/tag media, but customizing the parser can help in specific cases.</p> <h3 id="other-features-and-fixes">Other features and fixes</h3> <ul> <li><strong>(Server)</strong> Zipped MP3+G media is now supported</li> <li><strong>(Server)</strong> Media folders can now be watched for changes, as well as manually scanned individually</li> <li><strong>(Server)</strong> Fixed an error when listing drives on Windows due to removal of <code>wmic</code> (thanks Microsoft! /s)</li> <li><strong>(Server)</strong> Usernames/emails are no longer case sensitive (thanks <strong>gazugafan</strong>)</li> <li><strong>(Library)</strong> Songs that have already been played in the current session appear greyed</li> <li><strong>(Library)</strong> Tapping a song that is already upcoming no longer queues it again</li> <li><strong>(Player)</strong> Fixed incorrect calculation of ReplayGain values (thanks <strong>laberning</strong>)</li> <li><strong>(General)</strong> Prevent auto-translation of some UI elements (thanks <strong>laberning</strong>)</li> </ul> <p>This release includes contributions from <a href="https://github.com/gazugafan">gazugafan</a>, <a href="https://github.com/gausie">gausie</a>, <a href="https://github.com/EffakT">EffakT</a> and <a href="https://github.com/laberning">laberning</a>, as well as testing by <strong>mjmeans</strong>. Thanks!</p> <h2 id="v100-2022-05-17">v1.0.0 (2022-05-17)</h2> <p>Sponsored by: <a href="https://github.com/consolecwby">consolecwby</a>, <a href="https://github.com/vze22jjw">vze22jjw</a>. Thank you! If you have fun with it, please consider <a href="https://www.karaoke-eternal.com/sponsor">sponsoring</a>.</p> <h3 id="new">New</h3> <ul> <li><strong>Name</strong>: Karaoke Forever is now Karaoke Eternal</li> <li><strong>(app)</strong> User management interface</li> <li><strong>(app)</strong> &quot;Make user&#39;s next&quot; button for upcoming songs</li> <li><strong>(app)</strong> &quot;Re-queue&quot; button for played songs</li> <li><strong>(app)</strong> Content-aware CD+Graphics backgrounds</li> <li><strong>(app)</strong> Media folders can be prioritized via drag-and-drop</li> <li><strong>(app)</strong> Added ~370 visualizer presets (now 472 total)</li> <li><strong>(app)</strong> Summary is shown following a media scan</li> <li><strong>(server)</strong> Custom URL path (subfolder) support (see <code>--urlPath</code> CLI option)</li> <li><strong>(server)</strong> Custom database file path support (see <code>--data</code> CLI option)</li> <li><strong>(server)</strong> Session key can be rotated on startup (see <code>--rotateKey</code> CLI option)</li> <li><strong>(server)</strong> All CLI options now have equivalent environment variables</li> </ul> <h3 id="changed">Changed</h3> <ul> <li><strong>(app)</strong> Next-up singer&#39;s place is now reserved and won&#39;t be pre-empted</li> <li><strong>(server)</strong> Uses one less process/helper</li> <li><strong>(server)</strong> Media scanner performance is greatly improved when adding media</li> <li><strong>(server)</strong> Improved client connection speed via library caching</li> <li><strong>(server)</strong> Media scanner process is restricted to read-only database access</li> <li><strong>(server)</strong> Fixed potential error when a non-admin user tries to remove one of their queued songs</li> <li><strong>(server)</strong> Fixed potential SQLITE_BUSY errors while scanning media</li> <li><strong>(server)</strong> Fixed error message when no artist/title delimiter in filename</li> <li><strong>(server)</strong> Idle client socket connections no longer bounce</li> </ul> <h2 id="v080-2020-07-03">v0.8.0 (2020-07-03)</h2> <h3 id="black-lives-matter"><a href="https://blacklivesmatter.com">Black Lives Matter.</a></h3> <h3 id="sponsors">Sponsors</h3> <p>Massive thanks to this release&#39;s sponsors: <a href="https://github.com/fulldecent">fulldecent</a>, <a href="https://github.com/vze22jjw">vze22jjw</a>. If you have fun with it, please consider <a href="https://www.karaoke-eternal.com/sponsor">sponsoring</a>.</p> <h3 id="new-1">New</h3> <ul> <li><strong>(app)</strong> <a href="http://www.karaoke-eternal.com/docs/#preferences-admin-only">ReplayGain support</a>. No more scrambling for the volume when a new song starts! With properly tagged media, the player can automatically minimize volume differences between songs.</li> <li><strong>(app)</strong> Rooms can now be password-protected</li> <li><strong>(player)</strong> CD+Graphics now have shadows, can be resized, and use less CPU</li> <li><strong>(player)</strong> <strong>(breaking)</strong> Web Audio API support is now required (only for browsers running the player)</li> <li><strong>(server)</strong> <strong>(breaking)</strong> Database will be migrated and no longer compatible with v0.7.x</li> </ul> <h3 id="changed-1">Changed</h3> <ul> <li><strong>(app)</strong> Reduced motion and improved accessibility of modals</li> <li><strong>(app)</strong> Fixed status not respected when creating a new room</li> <li><strong>(player)</strong> Visualizer sensitivity can now be set up to 200%</li> <li><strong>(player)</strong> Fixed media possibly not (pre)loading in Firefox</li> <li><strong>(server)</strong> Added minimum password length requirement (6) and removed limit</li> <li><strong>(server)</strong> Fixed incorrect queue potentially emitted after setting preferred media</li> <li><strong>(server)</strong> Improved filename parser and renamed config option <code>separator</code> to <code>delimiter</code></li> <li><strong>(server)</strong> Improved logging and made <code>3 (info)</code> the default log file level</li> </ul> <h2 id="v074-2019-12-30">v0.7.4 (2019-12-30)</h2> <ul> <li>Initial release on <a href="https://www.npmjs.com/package/karaoke-eternal">npm</a></li> <li><strong>(app)</strong> Improved sign in/first run form</li> <li><strong>(app)</strong> Added About panel with version and licenses</li> <li><strong>(app)</strong> General style improvements</li> <li><strong>(server)</strong> Improved field validation and error messages</li> <li><strong>(server)</strong> Songs/artists without known media are no longer removed automatically after scan</li> <li><strong>(server)</strong> Media in nonexistent paths are now removed after scan</li> <li><strong>(server)</strong> Replace dep <code>squel</code> with <code>sqlate</code></li> </ul> <h2 id="v073-2019-09-13">v0.7.3 (2019-09-13)</h2> <ul> <li>Initial public release :-D</li> </ul> '}})),e[10]=t,e[11]=y):y=e[11],e[12]!==y?(b=a.createElement(Jt,{title:"About",contentClassName:Zt},a.createElement(a.Fragment,null,o,i,d,v,y)),e[12]=y,e[13]=b):b=e[13],b};function cn(e){return!e}var dn=n(38180),mn=n(33054);const un="eWB988t3JuRQuM9e6O_N",pn="XaBoCyvdOpimp_jUKJiK",hn=()=>{const e=(0,s.c)(32),t=(0,d.j)(),n=(0,d.G)(gn);let r;e[0]!==n.userId?(r=e=>(0,mn.A)(e,n.userId),e[0]=n.userId,e[1]=r):r=e[1];const l=(0,d.G)(r),o=(0,a.useRef)(null),[i,c]=(0,a.useState)(!1);let m;e[2]!==t||e[3]!==l||e[4]!==n.isAdmin||e[5]!==n.isGuest?(m=()=>{if(!n.isAdmin){const e=l.length>0;let a="";if(n.isGuest&&e?a="Are you sure you want to sign out?\n\nYour upcoming songs will be removed from the queue, and as a guest, you won't be able to sign back into this account.":n.isGuest?a="Are you sure you want to sign out?\n\nAs a guest, you won't be able to sign back into this account.":e&&(a="Are you sure you want to sign out?\n\nYour upcoming songs will be removed from the queue."),a&&!confirm(a))return;e&&t((0,dn.Ai)({queueId:l}))}t((0,ot.aw)())},e[2]=t,e[3]=l,e[4]=n.isAdmin,e[5]=n.isGuest,e[6]=m):m=e[6];const u=m;let p;e[7]!==t||e[8]!==n.isGuest?(p=e=>{if(!n.isGuest){if(!o.current.value.trim())return alert("Please enter your current password to make changes."),void o.current.focus();e.append("password",o.current.value)}t((0,ot.z0)(e))},e[7]=t,e[8]=n.isGuest,e[9]=p):p=e[9];const h=p,g=n.isGuest?"guest":n.username;let f;e[10]!==g?(f=a.createElement("p",null,"Signed in as ",a.createElement("strong",null,g)),e[10]=g,e[11]=f):f=e[11];const v=!n.isGuest,y=!n.isGuest;let b,C,w,A,S,N;return e[12]!==i||e[13]!==n.isGuest?(b=i&&!n.isGuest&&a.createElement("input",{type:"password",autoComplete:"current-password",placeholder:"current password",ref:o}),e[12]=i,e[13]=n.isGuest,e[14]=b):b=e[14],e[15]!==i?(C=i&&a.createElement(E,{type:"submit",variant:"primary"},"Update Account"),e[15]=i,e[16]=C):C=e[16],e[17]!==u?(w=a.createElement(E,{onClick:u,variant:"default"},"Sign Out"),e[17]=u,e[18]=w):w=e[18],e[19]!==C||e[20]!==w?(A=a.createElement("div",{className:pn},C,w),e[19]=C,e[20]=w,e[21]=A):A=e[21],e[22]!==h||e[23]!==A||e[24]!==v||e[25]!==y||e[26]!==b||e[27]!==n?(S=a.createElement(_t,{user:n,onDirtyChange:c,onSubmit:h,showUsername:v,showPassword:y},b,A),e[22]=h,e[23]=A,e[24]=v,e[25]=y,e[26]=b,e[27]=n,e[28]=S):S=e[28],e[29]!==S||e[30]!==f?(N=a.createElement(Jt,{title:"My Account",contentClassName:un},a.createElement(a.Fragment,null,f,S)),e[29]=S,e[30]=f,e[31]=N):N=e[31],N};function gn(e){return e.user}var En=n(66248);const fn="Kyq1e8Js6YODEAIrpuiV",vn="vrRzBvLX1MqJZgM7p38z",yn="tVJZZisJHykY_Y7qwkKK",bn=e=>{const t=(0,s.c)(36),{className:n,children:r,contentClassName:l,headingComponent:o,iconClassName:i,initialExpanded:c}=e,d=void 0!==c&&c,[m,g]=(0,a.useState)(d),E=(0,a.useId)();let f;t[0]!==m?(f=()=>{g(!m)},t[0]=m,t[1]=f):f=t[1];const v=f,y=`accordion-header-${E}`,b=`accordion-panel-${E}`;let C,w;t[2]!==o.props.children||t[3]!==m||t[4]!==y||t[5]!==b?(C=a.createElement("button",{type:"button",id:y,"aria-controls":b,"aria-expanded":m},o.props.children),t[2]=o.props.children,t[3]=m,t[4]=y,t[5]=b,t[6]=C):C=t[6],t[7]!==o||t[8]!==C?(w=(0,a.cloneElement)(o,{children:C}),t[7]=o,t[8]=C,t[9]=w):w=t[9];const A=w;let S,N,_,I,R,P;t[10]!==n?(S=(0,p.A)(fn,n),t[10]=n,t[11]=S):S=t[11],t[12]!==m?(N=m&&{"data-expanded":""},t[12]=m,t[13]=N):N=t[13],t[14]===Symbol.for("react.memo_cache_sentinel")?(_=(0,p.A)(yn),t[14]=_):_=t[14],t[15]!==i?(I=(0,p.A)(vn,i),t[15]=i,t[16]=I):I=t[16],t[17]!==I?(R=a.createElement(h.A,{icon:"CHEVRON_RIGHT",className:I}),t[17]=I,t[18]=R):R=t[18],t[19]!==A||t[20]!==v||t[21]!==R?(P=a.createElement("div",{className:_,onClick:v},A,R),t[19]=A,t[20]=v,t[21]=R,t[22]=P):P=t[22];const L=`accordion-panel-${E}`,O=`accordion-header-${E}`;let T;t[23]!==l?(T=(0,p.A)(l),t[23]=l,t[24]=T):T=t[24];const k=!m;let M,V;return t[25]!==r||t[26]!==L||t[27]!==O||t[28]!==T||t[29]!==k?(M=a.createElement("section",{id:L,"aria-labelledby":O,className:T,hidden:k},r),t[25]=r,t[26]=L,t[27]=O,t[28]=T,t[29]=k,t[30]=M):M=t[30],t[31]!==P||t[32]!==M||t[33]!==S||t[34]!==N?(V=a.createElement("div",(0,u.A)({className:S},N),P,M),t[31]=P,t[32]=M,t[33]=S,t[34]=N,t[35]=V):V=t[35],V},Cn="zXRZqy8GypIyzzonhQDj",wn="nn35PIgJyM8hd_PfVG9P",An=e=>{const t=(0,s.c)(6);let n,r,l;return t[0]===Symbol.for("react.memo_cache_sentinel")?(n=a.createElement("div",null,a.createElement(h.A,{icon:"FOLDER",size:28})),t[0]=n):n=t[0],t[1]!==e.path?(r=a.createElement("div",{className:wn},e.path),t[1]=e.path,t[2]=r):r=t[2],t[3]!==e.onSelect||t[4]!==r?(l=a.createElement("div",{className:Cn,onClick:e.onSelect},n,r),t[3]=e.onSelect,t[4]=r,t[5]=l):l=t[5],l},Sn="Z1AkYsOvWFhZrcYR6W9z",Nn="PCD9_JwmkY6aoE1S6ZP_",_n="zuvIYSwYXKYBkknUSBt0",In="Er04pbLH9MbYq06HYgN2",Rn="PQDNPIs88caRIT2AXWfT",Pn=new Mt.A("prefs/path"),Ln=({onCancel:e,onChoose:t})=>{const n=(0,a.useRef)(null),[r,s]=(0,a.useState)({current:null,parent:null,children:[]}),l=async e=>{try{const t=await Pn.get(`/ls?dir=${encodeURIComponent(e)}`);s(t)}catch(e){alert(e)}};return(0,a.useEffect)(()=>{l(r.current??".")},[]),(0,a.useEffect)(()=>{n.current&&(n.current.scrollTop=0)},[]),a.createElement(X,{title:"Add Folder",className:Sn,onClose:e,scrollable:!0,buttons:a.createElement("div",{className:Rn},a.createElement(E,{onClick:e,variant:"default"},"Cancel"),a.createElement(E,{onClick:()=>{t(r.current,{})},variant:"primary"},"Add Folder"))},a.createElement("div",{className:Nn,translate:"no"},a.createElement("div",{className:_n},r.current||" "),a.createElement("div",{className:In,ref:n},!1!==r.parent&&a.createElement("strong",null,a.createElement(An,{path:"..",onSelect:()=>l(r.parent)})),r.children.map((e,t)=>a.createElement(An,{key:t,path:e.label,onSelect:()=>l(e.path)})))))},On="ATXORF88MX2KCM3GK6PD",Tn="J_rtBBS98nuownep8wbe",kn="YZaEmIfhPKE_g3gNZwso",Mn=e=>{const t=(0,s.c)(38),{onClose:n,onRemove:r,onUpdate:l,path:o}=e;let i;t[0]!==l||t[1]!==o.pathId?(i=e=>{l(o.pathId,e)},t[0]=l,t[1]=o.pathId,t[2]=i):i=t[2];const c=i;let d;t[3]!==r||t[4]!==o.pathId?(d=()=>r(o.pathId),t[3]=r,t[4]=o.pathId,t[5]=d):d=t[5];const m=d;let u,p,h;t[6]!==m?(u=a.createElement(E,{onClick:m,variant:"danger"},"Remove Folder"),t[6]=m,t[7]=u):u=t[7],t[8]!==n?(p=a.createElement(E,{onClick:n,variant:"primary"},"Done"),t[8]=n,t[9]=p):p=t[9],t[10]!==u||t[11]!==p?(h=a.createElement(a.Fragment,null,u,p),t[10]=u,t[11]=p,t[12]=h):h=t[12];const g=o?.path;let f,v;t[13]===Symbol.for("react.memo_cache_sentinel")?(f=a.createElement("br",null),v=a.createElement("span",{className:Tn},"pathId: "),t[13]=f,t[14]=v):(f=t[13],v=t[14]);const y=o?.pathId;let b;t[15]!==g||t[16]!==y?(b=a.createElement("p",{className:On},g,f,v,y),t[15]=g,t[16]=y,t[17]=b):b=t[17];const C=o?.prefs?.isWatchingEnabled;let w,A;t[18]!==c?(w=e=>c({isWatchingEnabled:e.currentTarget.checked}),t[18]=c,t[19]=w):w=t[19],t[20]!==C||t[21]!==w?(A=a.createElement(te,{label:"Watch folder",defaultChecked:C,onChange:w}),t[20]=C,t[21]=w,t[22]=A):A=t[22];const S=o?.prefs?.isVideoKeyingEnabled;let N,_,I,R,P;return t[23]!==c?(N=e=>c({isVideoKeyingEnabled:e.currentTarget.checked}),t[23]=c,t[24]=N):N=t[24],t[25]!==S||t[26]!==N?(_=a.createElement(te,{label:"Allow video background keying",defaultChecked:S,onChange:N}),t[25]=S,t[26]=N,t[27]=_):_=t[27],t[28]!==A||t[29]!==_?(I=a.createElement("form",{className:kn},A,_),t[28]=A,t[29]=_,t[30]=I):I=t[30],t[31]!==b||t[32]!==I?(R=a.createElement("div",null,b,I),t[31]=b,t[32]=I,t[33]=R):R=t[33],t[34]!==n||t[35]!==R||t[36]!==h?(P=a.createElement(X,{onClose:n,title:"Media Folder",buttons:h},R),t[34]=n,t[35]=R,t[36]=h,t[37]=P):P=t[37],P},Vn="vfEtFMD1PnnZpL7KJi5i",zn="reQxnTVFy0pmOJ_OxHEW",Hn="cLbX8ACpwjrJHf1i33Kw",xn="mFavmW0ojDDlX4oNvSlc",Un="vKWSaWmD75njSGInSqpQ",Dn=e=>{const t=(0,s.c)(13),{index:n,onInfo:r,onRefresh:l,path:o}=e;let i;t[0]!==r?(i=e=>r(parseInt(e.currentTarget.dataset.pathId)),t[0]=r,t[1]=i):i=t[1];const c=i;let d;t[2]!==l?(d=e=>l(parseInt(e.currentTarget.dataset.pathId)),t[2]=l,t[3]=d):d=t[3];const m=d,p=`path-${o.pathId}`;let g,f;return t[4]!==c||t[5]!==m||t[6]!==o.path||t[7]!==o.pathId?(g=e=>a.createElement("div",(0,u.A)({className:Vn,key:o.pathId,ref:e.innerRef,style:e.draggableProps.style},e.draggableProps),a.createElement("div",(0,u.A)({},e.dragHandleProps,{tabIndex:-1}),a.createElement(h.A,{icon:"DRAG_INDICATOR",className:Hn})),a.createElement("div",{className:zn},o.path),a.createElement(E,{className:xn,"data-path-id":o.pathId,icon:"REFRESH",onClick:m}),a.createElement(E,{className:Un,"data-path-id":o.pathId,icon:"INFO_OUTLINE",onClick:c})),t[4]=c,t[5]=m,t[6]=o.path,t[7]=o.pathId,t[8]=g):g=t[8],t[9]!==n||t[10]!==p||t[11]!==g?(f=a.createElement(En.sx,{draggableId:p,index:n},g),t[9]=n,t[10]=p,t[11]=g,t[12]=f):f=t[12],f},Gn={heading:"IkPiZ7oarPYasin3JcFC",content:"eYUqAJLLPnFSGQfPrwJp",btnContainer:"COsFBSxrE3VeJHh23G5V"},qn=new Mt.A("prefs/path"),Fn=()=>{const e=(0,s.c)(54),t=(0,d.G)(Bn),[n,r]=(0,a.useState)(!1),[l,o]=(0,a.useState)(null),[i,c]=(0,a.useState)(t.result);let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=()=>r(!1),e[0]=m):m=e[0];const p=m;let g;e[1]===Symbol.for("react.memo_cache_sentinel")?(g=()=>r(!0),e[1]=g):g=e[1];const f=g;let y;e[2]===Symbol.for("react.memo_cache_sentinel")?(y=()=>o(null),e[2]=y):y=e[2];const b=y,C=(0,d.j)();let w,A,S;e[3]!==t.result?(w=()=>{c(t.result)},e[3]=t.result,e[4]=w):w=e[4],e[5]!==t?(A=[t],e[5]=t,e[6]=A):A=e[6],(0,a.useEffect)(w,A),e[7]!==C||e[8]!==i?(S=e=>{if(!e.destination)return;const t=i.slice(),[n]=t.splice(e.source.index,1);t.splice(e.destination.index,0,n),c(t),C((0,v.Ah)(t))},e[7]=C,e[8]=i,e[9]=S):S=e[9];const N=S;let _;e[10]!==C?(_=(e,t)=>{qn.post(`/?dir=${encodeURIComponent(e)}`,{body:t}).then(e=>{C((0,v.gL)(e)),r(!1)}).catch(Wn)},e[10]=C,e[11]=_):_=e[11];const I=_;let R;e[12]!==C||e[13]!==t.entities||e[14]!==i?(R=e=>{confirm(`Remove folder from library?\n\n${t.entities[e].path}`)&&(c(i.filter(t=>t!==e)),o(null),qn.delete(`/${e}`).then(e=>{C((0,v.gL)(e))}).catch(jn))},e[12]=C,e[13]=t.entities,e[14]=i,e[15]=R):R=e[15];const P=R;let L;e[16]!==C?(L=(e,t)=>{C((0,v.yx)({pathId:e,data:t}))},e[16]=C,e[17]=L):L=e[17];const O=L;let T;e[18]!==t.entities?(T=e=>o(t.entities[e]),e[18]=t.entities,e[19]=T):T=e[19];const k=T;let M;e[20]!==C?(M=e=>C((0,v.PA)(e)),e[20]=C,e[21]=M):M=e[21];const V=M;let z;e[22]!==C?(z=()=>C((0,v.mN)()),e[22]=C,e[23]=z):z=e[23];const H=z;let x,U,D,G,q,F,B,W,j,Y;return e[24]===Symbol.for("react.memo_cache_sentinel")?(x=a.createElement("div",{className:Gn.heading},a.createElement(h.A,{icon:"FOLDER_MUSIC"}),a.createElement("div",{className:Gn.title},"Media Folders")),e[24]=x):x=e[24],e[25]!==t.result.length?(U=0===t.result.length&&a.createElement("p",{style:{marginTop:0}},"Add a media folder to get started."),e[25]=t.result.length,e[26]=U):U=e[26],e[27]!==k||e[28]!==V||e[29]!==t.entities||e[30]!==i?(D=a.createElement(En.gL,{droppableId:"droppable"},e=>a.createElement("div",(0,u.A)({ref:e.innerRef},e.droppableProps),i.map((e,n)=>a.createElement(Dn,{index:n,key:e,path:t.entities[e],onInfo:k,onRefresh:V})),e.placeholder)),e[27]=k,e[28]=V,e[29]=t.entities,e[30]=i,e[31]=D):D=e[31],e[32]!==N||e[33]!==D?(G=a.createElement(En.JY,{onDragEnd:N},D),e[32]=N,e[33]=D,e[34]=G):G=e[34],e[35]!==H||e[36]!==t.result.length?(q=t.result.length>0&&a.createElement(E,{onClick:H,variant:"default"},"Scan Folders"),e[35]=H,e[36]=t.result.length,e[37]=q):q=e[37],e[38]===Symbol.for("react.memo_cache_sentinel")?(F=a.createElement(E,{onClick:f,variant:"primary"},"Add Folder"),e[38]=F):F=e[38],e[39]!==q?(B=a.createElement("div",{className:Gn.btnContainer},q,F),e[39]=q,e[40]=B):B=e[40],e[41]!==I||e[42]!==n?(W=n&&a.createElement(Ln,{onCancel:p,onChoose:I}),e[41]=I,e[42]=n,e[43]=W):W=e[43],e[44]!==l||e[45]!==P||e[46]!==O?(j=!!l&&a.createElement(Mn,{onClose:b,onRemove:P,onUpdate:O,path:l}),e[44]=l,e[45]=P,e[46]=O,e[47]=j):j=e[47],e[48]!==U||e[49]!==G||e[50]!==B||e[51]!==W||e[52]!==j?(Y=a.createElement(bn,{headingComponent:x},a.createElement("div",{className:Gn.content},U,G,B,W,j)),e[48]=U,e[49]=G,e[50]=B,e[51]=W,e[52]=j,e[53]=Y):Y=e[53],Y};function Bn(e){return e.prefs.paths}function Wn(e){alert(e)}function jn(e){alert(e)}const Yn={heading:"iQsmu84S0UOMvskFslib",content:"EsTYWrxvRDwQ5bUKgop3"},Qn=()=>{const e=(0,s.c)(6),t=(0,d.G)(Kn),n=(0,d.j)();let r;e[0]!==n?(r=e=>{n((0,v.I8)({key:e.currentTarget.name,data:e.currentTarget.checked}))},e[0]=n,e[1]=r):r=e[1];const l=r;let o,i;return e[2]===Symbol.for("react.memo_cache_sentinel")?(o=a.createElement("div",{className:Yn.heading},a.createElement(h.A,{icon:"TELEVISION_PLAY",size:32,className:Yn.icon}),a.createElement("div",{className:Yn.title},"Player")),e[2]=o):o=e[2],e[3]!==t||e[4]!==l?(i=a.createElement(bn,{className:Yn.container,headingComponent:o},a.createElement("div",{className:Yn.content},a.createElement("label",null,a.createElement("input",{type:"checkbox",checked:t,onChange:l,name:"isReplayGainEnabled"})," ","ReplayGain (clip-safe)"))),e[3]=t,e[4]=l,e[5]=i):i=e[5],i};function Kn(e){return e.prefs.isReplayGainEnabled}const Jn="ew2x2VQFG7Hj_ltiyxbF",Zn=()=>{const e=(0,s.c)(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=a.createElement(Jt,{title:"Preferences",contentClassName:Jn},a.createElement(a.Fragment,null,a.createElement(Fn,null),a.createElement(Qn,null))),e[0]=t):t=e[0],t};var Xn=n(80470);const $n={heading:"WI7RHMq3jaNSZwGU2FA6",content:"tW4weGP7ZNHvtdAvHXkQ"},ea=e=>{const t=(0,s.c)(19),{onChange:n,prefs:r}=e;let l;t[0]!==r?(l=void 0===r?{}:r,t[0]=r,t[1]=l):l=t[1];const o=l,i=(0,d.G)(ta);let c;t[2]!==i.entities||t[3]!==i.result?(c=e=>i.result.find(t=>i.entities[t].name===e),t[2]=i.entities,t[3]=i.result,t[4]=c):c=t[4];const m=c;let u;t[5]!==m||t[6]!==n||t[7]!==o?(u=e=>{const{name:t,checked:a}=e.target,r=m(t);r&&n({...o,roles:{...o.roles,[r]:{...o.roles?.[r],allowNew:a}}})},t[5]=m,t[6]=n,t[7]=o,t[8]=u):u=t[8];const p=u,g=o.roles?.[m("guest")]?.allowNew??!1,E=o.roles?.[m("standard")]?.allowNew??!1;let f,v,y,b;return t[9]===Symbol.for("react.memo_cache_sentinel")?(f=a.createElement("div",{className:$n.heading},a.createElement(h.A,{icon:"PERSON"}),a.createElement("div",{className:$n.title},"Users")),t[9]=f):f=t[9],t[10]!==E||t[11]!==p?(v=a.createElement("div",{className:$n.field},a.createElement(te,{label:"Allow new standard users",name:"standard",checked:E,onChange:p})),t[10]=E,t[11]=p,t[12]=v):v=t[12],t[13]!==g||t[14]!==p?(y=a.createElement("div",{className:$n.field},a.createElement(te,{label:"Allow new guests",name:"guest",checked:g,onChange:p})),t[13]=g,t[14]=p,t[15]=y):y=t[15],t[16]!==v||t[17]!==y?(b=a.createElement(bn,{headingComponent:f},a.createElement("div",{className:$n.content},v,y)),t[16]=v,t[17]=y,t[18]=b):b=t[18],b};function ta(e){return e.prefs.roles}const na={heading:"NxVXilqTVRm2Gn61JMnN",slider:"HOcMzCIA0WXMfcLNpS_4",content:"bjETwqGW5QyR3on58pts",hidden:"_zeQjaCY8RxRMtxT2JAF"},aa=e=>{const t=(0,s.c)(56),{onChange:n,prefs:r,roomPassword:l,roomPasswordDirty:o}=e;let i;t[0]!==r?(i=void 0===r?{}:r,t[0]=r,t[1]=i):i=t[1];const c=i,[d,m]=(0,a.useState)(!!c?.qr?.password);let u;t[2]!==n||t[3]!==c?(u=e=>{n({...c,...e})},t[2]=n,t[3]=c,t[4]=u):u=t[4];const g=u;let E,f,v;t[5]!==g||t[6]!==d||t[7]!==c.qr||t[8]!==l||t[9]!==o?(E=()=>{d&&o&&c?.qr?.password!==l&&g({qr:{...c.qr,password:l}})},t[5]=g,t[6]=d,t[7]=c.qr,t[8]=l,t[9]=o,t[10]=E):E=t[10],t[11]!==g||t[12]!==d||t[13]!==c||t[14]!==l||t[15]!==o?(f=[g,d,c,l,o],t[11]=g,t[12]=d,t[13]=c,t[14]=l,t[15]=o,t[16]=f):f=t[16],(0,a.useEffect)(E,f),t[17]===Symbol.for("react.memo_cache_sentinel")?(v=a.createElement("div",{className:na.heading},a.createElement(h.A,{icon:"QR_CODE"}),a.createElement("div",{className:na.title},"QR Code")),t[17]=v):v=t[17];const y=c?.qr?.isEnabled??!1;let b,C,w,A,S,N;t[18]!==g||t[19]!==c.qr?(b=e=>g({qr:{...c.qr,isEnabled:e.currentTarget.checked}}),t[18]=g,t[19]=c.qr,t[20]=b):b=t[20],t[21]!==y||t[22]!==b?(C=a.createElement("div",{className:na.field},a.createElement(te,{label:"Show QR code",checked:y,onChange:b})),t[21]=y,t[22]=b,t[23]=C):C=t[23],t[24]!==g||t[25]!==d||t[26]!==c.qr||t[27]!==l?(w=c?.qr?.isEnabled&&l&&a.createElement("div",{className:na.field},a.createElement(te,{label:"Include room password",checked:d,onChange:e=>{const t=e.currentTarget.checked;m(t),t||g({qr:{...c.qr,password:""}})}})),t[24]=g,t[25]=d,t[26]=c.qr,t[27]=l,t[28]=w):w=t[28],t[29]!==g||t[30]!==d||t[31]!==c.qr||t[32]!==o?(A=d&&!o&&a.createElement("div",{className:na.field},a.createElement("input",{type:"password",autoComplete:"new-password",value:c?.qr?.password??"",onChange:e=>g({qr:{...c.qr,password:e.target.value}}),onFocus:ra,placeholder:"re-enter room password"})),t[29]=g,t[30]=d,t[31]=c.qr,t[32]=o,t[33]=A):A=t[33],t[34]===Symbol.for("react.memo_cache_sentinel")?(S=(0,p.A)(na.field),N=a.createElement("label",{id:"label-qr-size"},"Size"),t[34]=S,t[35]=N):(S=t[34],N=t[35]);const _=c?.qr?.size??.5;let I,R,P,L;t[36]!==g||t[37]!==c.qr?(I=e=>g({qr:{...c.qr,size:e}}),t[36]=g,t[37]=c.qr,t[38]=I):I=t[38],t[39]!==_||t[40]!==I?(R=a.createElement("div",{className:S},N,a.createElement(H,{className:na.slider,min:0,max:1,step:.05,value:_,onChange:I,"aria-labelledby":"label-qr-size"})),t[39]=_,t[40]=I,t[41]=R):R=t[41],t[42]===Symbol.for("react.memo_cache_sentinel")?(P=(0,p.A)(na.field),L=a.createElement("label",{id:"label-qr-opacity"},"Opacity"),t[42]=P,t[43]=L):(P=t[42],L=t[43]);const O=c?.qr?.opacity??.625;let T,k,M;return t[44]!==g||t[45]!==c.qr?(T=e=>g({qr:{...c.qr,opacity:e}}),t[44]=g,t[45]=c.qr,t[46]=T):T=t[46],t[47]!==O||t[48]!==T?(k=a.createElement("div",{className:P},L,a.createElement(H,{className:na.slider,min:.25,max:1,step:.075,value:O,onChange:T,"aria-labelledby":"label-qr-opacity"})),t[47]=O,t[48]=T,t[49]=k):k=t[49],t[50]!==w||t[51]!==A||t[52]!==R||t[53]!==k||t[54]!==C?(M=a.createElement(bn,{headingComponent:v},a.createElement("div",{className:na.content},C,w,A,R,k)),t[50]=w,t[51]=A,t[52]=R,t[53]=k,t[54]=C,t[55]=M):M=t[55],M};function ra(e){return e.target.select()}const sa={modal:"Q5T7XWGqm4a5MPArNfUg",fieldContainer:"YSEBZfRCIoJmOplLt9mP",prefsContainer:"a5K1WCxiR97esx_y_2Ex",btnContainer:"uiSOmb44a9pRFxf0NKJc"},la=e=>{const t=(0,s.c)(66),{onClose:n,room:r}=e,l=(0,a.useRef)(null);let o;t[0]!==r?(o=r&&r.hasPassword?"*".repeat(32):"",t[0]=r,t[1]=o):o=t[1];const[i,c]=(0,a.useState)(o);let m;t[2]!==r?.prefs?(m=r?.prefs||{},t[2]=r?.prefs,t[3]=m):m=t[3];const[u,p]=(0,a.useState)(m),[h,g]=(0,a.useState)(r),[f,v]=(0,a.useState)(!1),y=(0,d.j)();let b;r!==h&&(g(r),r?.prefs&&p(r.prefs)),t[4]!==y||t[5]!==f||t[6]!==u||t[7]!==r?(b=e=>{e.preventDefault();const t=(e=>{const t={};return e.forEach((e,n)=>{t[n]?t[n]=[].concat(t[n],e):t[n]=e}),t})(new FormData(l.current));t.prefs=u,r?(f||delete t.password,y((0,Xn.xX)({roomId:r.roomId,data:t}))):(t.password||delete t.password,y((0,Xn.ab)(t)))},t[4]=y,t[5]=f,t[6]=u,t[7]=r,t[8]=b):b=t[8];const C=b;let w;t[9]!==y||t[10]!==r?(w=()=>{r&&confirm(`Remove room "${r.name}" and its queue?`)&&y((0,Xn.SV)(r.roomId))},t[9]=y,t[10]=r,t[11]=w):w=t[11];const A=w;let S;t[12]!==y||t[13]!==r?(S=e=>{p(e),r&&y((0,Xn.uE)(r.roomId,e))},t[12]=y,t[13]=r,t[14]=S):S=t[14];const N=S;let _;t[15]!==y||t[16]!==n||t[17]!==r?(_=()=>{r&&y((0,Xn.uE)(r.roomId,r.prefs)),n()},t[15]=y,t[16]=n,t[17]=r,t[18]=_):_=t[18];const I=_;let R;t[19]===Symbol.for("react.memo_cache_sentinel")?(R=e=>{v(!0),c(e.target.value)},t[19]=R):R=t[19];const P=R,L=r?"Edit Room":"Create Room",O=r?r.name:"";let T,k,M;t[20]!==r?(T=e=>void 0===r?e?.setAttribute("autofocus","true"):void 0,t[20]=r,t[21]=T):T=t[21],t[22]!==T||t[23]!==O?(k=a.createElement("input",{type:"text",autoComplete:"off",defaultValue:O,name:"name",placeholder:"room name",ref:T}),t[22]=T,t[23]=O,t[24]=k):k=t[24],t[25]!==i?(M=a.createElement("input",{type:"password",autoComplete:"new-password",value:i,name:"password",onChange:P,onFocus:oa,placeholder:"room password (optional)"}),t[25]=i,t[26]=M):M=t[26];const V=r?.status??"open";let z,H,x,U,D,G,q;t[27]===Symbol.for("react.memo_cache_sentinel")?(z=a.createElement("option",{value:"open"},"Open"),H=a.createElement("option",{value:"closed"},"Closed"),t[27]=z,t[28]=H):(z=t[27],H=t[28]),t[29]!==V?(x=a.createElement("select",{name:"status",defaultValue:V},z,H),t[29]=V,t[30]=x):x=t[30],t[31]!==k||t[32]!==M||t[33]!==x?(U=a.createElement("div",{className:sa.fieldContainer},k,M,x),t[31]=k,t[32]=M,t[33]=x,t[34]=U):U=t[34],t[35]!==N||t[36]!==u?(D=a.createElement(ea,{prefs:u,onChange:N}),t[35]=N,t[36]=u,t[37]=D):D=t[37],t[38]!==N||t[39]!==f||t[40]!==u||t[41]!==i?(G=a.createElement(aa,{prefs:u,onChange:N,roomPassword:i,roomPasswordDirty:f}),t[38]=N,t[39]=f,t[40]=u,t[41]=i,t[42]=G):G=t[42],t[43]!==D||t[44]!==G?(q=a.createElement("div",{className:sa.prefsContainer},D,G),t[43]=D,t[44]=G,t[45]=q):q=t[45];const F=r?"Update Room":"Create Room";let B,W,j,Y,Q,K;return t[46]!==F?(B=a.createElement(E,{type:"submit",variant:"primary",className:sa.btn},F),t[46]=F,t[47]=B):B=t[47],t[48]!==A||t[49]!==r?(W=r&&a.createElement(E,{onClick:A,className:sa.btn,variant:"danger"},"Remove Room"),t[48]=A,t[49]=r,t[50]=W):W=t[50],t[51]!==I?(j=a.createElement(E,{onClick:I,variant:"default"},"Cancel"),t[51]=I,t[52]=j):j=t[52],t[53]!==B||t[54]!==W||t[55]!==j?(Y=a.createElement("div",{className:sa.btnContainer},B,W,j),t[53]=B,t[54]=W,t[55]=j,t[56]=Y):Y=t[56],t[57]!==C||t[58]!==U||t[59]!==q||t[60]!==Y?(Q=a.createElement("form",{onSubmit:C,ref:l,className:sa.form},U,q,Y),t[57]=C,t[58]=U,t[59]=q,t[60]=Y,t[61]=Q):Q=t[61],t[62]!==I||t[63]!==Q||t[64]!==L?(K=a.createElement(X,{className:sa.modal,onClose:I,title:L},Q),t[62]=I,t[63]=Q,t[64]=L,t[65]=K):K=t[65],K};function oa(e){return e.target.select()}const ia=(0,f.Mz)([e=>e.rooms.result,e=>e.rooms.entities,e=>e.rooms.filterStatus],(e,t,n)=>({result:e.filter(e=>!1===n||t[e].status===n),entities:t})),ca="dlkVNG9BLZN9R9HguwLu",da="HAVmLg8TCL18Jeiuo7fX",ma=()=>{const e=(0,s.c)(44),[t,n]=(0,a.useState)(null),{isEditorOpen:r,filterStatus:l}=(0,d.G)(ua),o=(0,d.G)(ia),i=(0,d.j)();let c;e[0]!==i?(c=()=>i((0,Xn.$R)()),e[0]=i,e[1]=c):c=e[1];const m=c;let u;e[2]!==i?(u=e=>{"all"===e.currentTarget.value?i((0,Xn.Mv)(!1)):i((0,Xn.Mv)(e.currentTarget.value))},e[2]=i,e[3]=u):u=e[3];const p=u;let h;e[4]!==i?(h=e=>i(Bt(parseInt(e.currentTarget.dataset.roomId))),e[4]=i,e[5]=h):h=e[5];const g=h;let f;e[6]!==i||e[7]!==o.entities?(f=e=>{n(o.entities[parseInt(e.currentTarget.dataset.roomId||"0")]),i((0,Xn.v4)())},e[6]=i,e[7]=o.entities,e[8]=f):f=e[8];const v=f;let y,b,C;if(e[9]!==i?(y=()=>{i((0,Xn.RM)())},b=[i],e[9]=i,e[10]=y,e[11]=b):(y=e[10],b=e[11]),(0,a.useEffect)(y,b),e[12]!==g||e[13]!==v||e[14]!==o.entities||e[15]!==o.result){let t;e[17]!==g||e[18]!==v||e[19]!==o.entities?(t=e=>{const t=o.entities[e];return a.createElement("tr",{key:String(e)},a.createElement("td",{translate:"no"},a.createElement("a",{"data-room-id":e,onClick:v},t.name)),a.createElement("td",null,t.status,t.numUsers>0&&a.createElement(a.Fragment,null," ",a.createElement("a",{"data-room-id":e,onClick:g},"(",t.numUsers,")"))),a.createElement("td",null,we(new Date(1e3*t.dateCreated))))},e[17]=g,e[18]=v,e[19]=o.entities,e[20]=t):t=e[20],C=o.result.map(t),e[12]=g,e[13]=v,e[14]=o.entities,e[15]=o.result,e[16]=C}else C=e[16];const w=C,A=!1===l?"all":l;let S,N,_,I;e[21]===Symbol.for("react.memo_cache_sentinel")?(N=a.createElement("option",{key:"all",value:"all"},"All"),_=a.createElement("option",{key:"open",value:"open"},"Open"),S=a.createElement("option",{key:"closed",value:"closed"},"Closed"),e[21]=S,e[22]=N,e[23]=_):(S=e[21],N=e[22],_=e[23]),e[24]!==p||e[25]!==A?(I=a.createElement("select",{className:ca,onChange:p,value:A},N,_,S),e[24]=p,e[25]=A,e[26]=I):I=e[26];const R=I;let P,L,O,T,k,M,V;return e[27]===Symbol.for("react.memo_cache_sentinel")?(P=a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",null,"Name"),a.createElement("th",null,"Status"),a.createElement("th",null,"Created"))),e[27]=P):P=e[27],e[28]!==w?(L=a.createElement("table",{className:da},P,a.createElement("tbody",null,w)),e[28]=w,e[29]=L):L=e[29],e[30]===Symbol.for("react.memo_cache_sentinel")?(O=a.createElement("br",null),e[30]=O):O=e[30],e[31]!==v?(T=a.createElement(E,{onClick:v,variant:"primary"},"Create Room"),e[31]=v,e[32]=T):T=e[32],e[33]!==t||e[34]!==m||e[35]!==r?(k=r&&a.createElement(la,{onClose:m,room:t}),e[33]=t,e[34]=m,e[35]=r,e[36]=k):k=e[36],e[37]!==L||e[38]!==T||e[39]!==k?(M=a.createElement(a.Fragment,null,L,O,T,k),e[37]=L,e[38]=T,e[39]=k,e[40]=M):M=e[40],e[41]!==R||e[42]!==M?(V=a.createElement(Jt,{title:"Rooms",titleComponent:R},M),e[41]=R,e[42]=M,e[43]=V):V=e[43],V};function ua(e){return e.rooms}const pa={modal:"gqWI3mlnDqWIUNXebNqh",btnContainer:"_UZuyKF0ewftaeFpnDiS",field:"egMKJajhBRVHHcS0ruyV"},ha=e=>{const t=(0,s.c)(30),{user:n,onClose:r}=e,l=(0,d.j)();let o;t[0]!==l||t[1]!==n?(o=e=>{l(n?Ut({userId:n.userId,data:e}):xt(e))},t[0]=l,t[1]=n,t[2]=o):o=t[2];const i=o;let c;t[3]!==l||t[4]!==n.userId||t[5]!==n.username?(c=()=>{confirm(`Remove user "${n.username}"?\n\nTheir queued songs will also be removed.`)&&l(Dt(n.userId))},t[3]=l,t[4]=n.userId,t[5]=n.username,t[6]=c):c=t[6];const m=c,u=n?n.username:"Create User",p=!n;let h,g,f,v,y,b,C;return t[7]!==n?(h=!n&&a.createElement(E,{type:"submit",className:pa.btn,variant:"primary"},"Create User"),t[7]=n,t[8]=h):h=t[8],t[9]!==n?(g=n&&a.createElement(E,{type:"submit",className:pa.btn,variant:"primary"},"Update User"),t[9]=n,t[10]=g):g=t[10],t[11]!==m||t[12]!==n?(f=n&&a.createElement(E,{onClick:m,className:pa.btn,variant:"danger"},"Remove User"),t[11]=m,t[12]=n,t[13]=f):f=t[13],t[14]!==r?(v=a.createElement(E,{onClick:r,variant:"default"},"Cancel"),t[14]=r,t[15]=v):v=t[15],t[16]!==h||t[17]!==g||t[18]!==f||t[19]!==v?(y=a.createElement("div",{className:pa.btnContainer},h,g,f,v),t[16]=h,t[17]=g,t[18]=f,t[19]=v,t[20]=y):y=t[20],t[21]!==i||t[22]!==p||t[23]!==y||t[24]!==n?(b=a.createElement(_t,{user:n,onSubmit:i,showRole:!0,autoFocus:p},y),t[21]=i,t[22]=p,t[23]=y,t[24]=n,t[25]=b):b=t[25],t[26]!==r||t[27]!==b||t[28]!==u?(C=a.createElement(X,{className:pa.modal,onClose:r,title:u},b),t[26]=r,t[27]=b,t[28]=u,t[29]=C):C=t[29],C},ga=(0,f.Mz)([e=>e.users.result,e=>e.users.entities,e=>e.users.filterOnline,e=>e.users.filterRoomId],(e,t,n,a)=>(n?e=e.filter(e=>t[e].rooms.length):"number"==typeof a&&(e=e.filter(e=>t[e].rooms.includes(a))),{result:e,entities:t})),Ea="krYGtNnm9wreKzV0sC87",fa="dVtQTutpaei_Zk_0Dmhd",va=()=>{const e=(0,s.c)(51),[t,n]=(0,a.useState)(null),r=(0,d.G)(ya),{isEditorOpen:l,filterOnline:o,filterRoomId:i}=(0,d.G)(ba),c=(0,d.G)(Ca),m=(0,d.G)(ga),u=(0,d.j)();let p;e[0]!==u?(p=()=>u(qt()),e[0]=u,e[1]=p):p=e[1];const h=p;let g;e[2]!==u?(g=e=>{"all"===e.target.value?u(Ft(!1)):"online"===e.target.value?u(Ft(!0)):u(Bt(parseInt(e.target.value,10)))},e[2]=u,e[3]=g):g=e[3];const f=g;let v;e[4]!==u||e[5]!==m.entities?(v=e=>{n(m.entities[parseInt(e.currentTarget.dataset.userId)]),u(Gt())},e[4]=u,e[5]=m.entities,e[6]=v):v=e[6];const y=v;let b,C,w;if(e[7]!==u?(b=()=>{u(Ht())},C=[u],e[7]=u,e[8]=b,e[9]=C):(b=e[8],C=e[9]),(0,a.useEffect)(b,C),e[10]!==r||e[11]!==y||e[12]!==m.entities||e[13]!==m.result){let t;e[15]!==r||e[16]!==y||e[17]!==m.entities?(t=e=>{const t=m.entities[e];return a.createElement("tr",{key:e},e===r&&a.createElement("td",{translate:"no"},a.createElement("strong",null,t.username)," ","(",t.name,")"),e!==r&&a.createElement("td",null,a.createElement("a",{"data-user-id":e,onClick:y},t.username)," ","(",t.name,")"),a.createElement("td",null,t.role),a.createElement("td",null,we(new Date(1e3*t.dateCreated))))},e[15]=r,e[16]=y,e[17]=m.entities,e[18]=t):t=e[18],w=m.result.map(t),e[10]=r,e[11]=y,e[12]=m.entities,e[13]=m.result,e[14]=w}else w=e[14];const A=w;let S;if(e[19]!==c.entities||e[20]!==c.result){let t,n;e[22]!==c.entities?(t=e=>!!c.entities[e].numUsers,e[22]=c.entities,e[23]=t):t=e[23],e[24]!==c.entities?(n=e=>a.createElement("option",{key:e,value:e},c.entities[e].name),e[24]=c.entities,e[25]=n):n=e[25],S=c.result.filter(t).map(n),e[19]=c.entities,e[20]=c.result,e[21]=S}else S=e[21];const N=S,_=o?"online":i||"all";let I,R,P,L;e[26]===Symbol.for("react.memo_cache_sentinel")?(I=a.createElement("option",{key:"all",value:"all"},"All"),R=a.createElement("option",{key:"online",value:"online"},"Online"),e[26]=I,e[27]=R):(I=e[26],R=e[27]),e[28]!==N?(P=a.createElement("optgroup",{label:"Online in..."},N),e[28]=N,e[29]=P):P=e[29],e[30]!==f||e[31]!==P||e[32]!==_?(L=a.createElement("select",{className:Ea,onChange:f,value:_},I,R,P),e[30]=f,e[31]=P,e[32]=_,e[33]=L):L=e[33];const O=L;let T,k,M,V,z,H,x;return e[34]===Symbol.for("react.memo_cache_sentinel")?(T=a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",null,"Username"),a.createElement("th",null,"Role"),a.createElement("th",null,"Joined"))),e[34]=T):T=e[34],e[35]!==A?(k=a.createElement("table",{className:fa},T,a.createElement("tbody",null,A)),e[35]=A,e[36]=k):k=e[36],e[37]===Symbol.for("react.memo_cache_sentinel")?(M=a.createElement("br",null),e[37]=M):M=e[37],e[38]!==y?(V=a.createElement(E,{onClick:y,variant:"primary"},"Create User"),e[38]=y,e[39]=V):V=e[39],e[40]!==t||e[41]!==h||e[42]!==l?(z=l&&a.createElement(ha,{onClose:h,user:t}),e[40]=t,e[41]=h,e[42]=l,e[43]=z):z=e[43],e[44]!==k||e[45]!==V||e[46]!==z?(H=a.createElement(a.Fragment,null,k,M,V,z),e[44]=k,e[45]=V,e[46]=z,e[47]=H):H=e[47],e[48]!==H||e[49]!==O?(x=a.createElement(Jt,{title:"Users",titleComponent:O},H),e[48]=H,e[49]=O,e[50]=x):x=e[50],x};function ya(e){return e.user.userId}function ba(e){return e.users}function Ca(e){return e.rooms}const wa=()=>{const e=(0,s.c)(15),{isAdmin:t}=(0,d.G)(Aa),n=!!(0,d.G)(Sa),r=(0,d.j)();let l,o,i,c,m,u,p,h;return t&&!n&&(Tt.A.inject({reducerPath:"users",reducer:Wt}),r(jt())),e[0]!==r?(l=()=>{(async()=>{r((0,ot.mb)())})()},o=[r],e[0]=r,e[1]=l,e[2]=o):(l=e[1],o=e[2]),(0,a.useEffect)(l,o),e[3]!==t?(i=t&&a.createElement(ma,null),e[3]=t,e[4]=i):i=e[4],e[5]!==t?(c=t&&a.createElement(va,null),e[5]=t,e[6]=c):c=e[6],e[7]!==t?(m=t&&a.createElement(Zn,null),e[7]=t,e[8]=m):m=e[8],e[9]===Symbol.for("react.memo_cache_sentinel")?(u=a.createElement(hn,null),p=a.createElement(on,null),e[9]=u,e[10]=p):(u=e[9],p=e[10]),e[11]!==i||e[12]!==c||e[13]!==m?(h=a.createElement(a.Fragment,null,i,c,m,u,p),e[11]=i,e[12]=c,e[13]=m,e[14]=h):h=e[14],h};function Aa(e){return e.user}function Sa(e){return e.users}const Na="Wdz5LHTVlrpDjGYTKK9L",_a=e=>{const t=(0,s.c)(14);let n,r,l,o;if(t[0]!==e){const{onChange:a,label:s,className:i,...c}=e;r=s,n=i,l=c,o=e=>{a&&a(e.target.value)},t[0]=e,t[1]=n,t[2]=r,t[3]=l,t[4]=o}else n=t[1],r=t[2],l=t[3],o=t[4];const i=o;let c,d,m;return t[5]!==n?(c=(0,p.A)(Na,n),t[5]=n,t[6]=c):c=t[6],t[7]!==i||t[8]!==l?(d=a.createElement("input",(0,u.A)({type:"radio",onChange:i},l)),t[7]=i,t[8]=l,t[9]=d):d=t[9],t[10]!==r||t[11]!==c||t[12]!==d?(m=a.createElement("label",{className:c},d,r),t[10]=r,t[11]=c,t[12]=d,t[13]=m):m=t[13],m},Ia={container:"MTzbvQ4VAtgPXbJKkrGO",hidden:"X1Pj4fM1xquH4Ymuq0Q5"},Ra=e=>{const t=(0,s.c)(5),{onRoomSelect:n,onRoomPasswordChange:r,className:l,rooms:o,roomId:i,roomPassword:c,showAllRooms:d}=e,m=(0,a.useRef)({}),u=e=>{const t=e;Object.entries(m.current).forEach(e=>{const[n,a]=e;a&&(n===t?(a.classList.remove(Ia.hidden),a.focus()):a.classList.add(Ia.hidden))}),n(parseInt(t))};let h;t[0]!==l?(h=(0,p.A)(Ia.container,l),t[0]=l,t[1]=h):h=t[1];const g=o.result.map(e=>{return d||e===i?a.createElement("div",{key:`room-${e}`},a.createElement(_a,{name:"roomId",className:(0,p.A)(Ia.option,e===i&&Ia.checked),label:o.entities[e].name,value:e,onChange:u,checked:e===i}),o.entities[e]?.hasPassword&&a.createElement("input",{type:"password",autoComplete:"off",className:(0,p.A)((null===i||e!==i)&&Ia.hidden),onChange:e=>{r(e.target.value)},placeholder:"room password (required)","aria-label":"room password (required)",ref:(t=e,e=>{m.current[t]=e}),value:c})):null;var t});let E;return t[2]!==h||t[3]!==g?(E=a.createElement("div",{className:h},g),t[2]=h,t[3]=g,t[4]=E):E=t[4],E},Pa="mlhmoE1JUQKR4Te5DEtv",La="glTWFMiUMaerBvhPz8ti",Oa=e=>{const t=(0,s.c)(23),{guest:n,username:r,password:l,onUsernameChange:o,onPasswordChange:i,onSubmit:c,onFirstFieldRef:d}=e,[m,u]=(0,a.useState)(""),[p,h]=(0,a.useState)(""),[g,f]=(0,a.useState)(void 0);let v;t[0]!==g||t[1]!==m||t[2]!==c||t[3]!==p?(v=e=>{e.preventDefault(),c({name:m,image:g,passwordConfirm:p})},t[0]=g,t[1]=m,t[2]=c,t[3]=p,t[4]=v):v=t[4];const y=v;let b,C,w;t[5]!==n||t[6]!==d||t[7]!==i||t[8]!==o||t[9]!==l||t[10]!==p||t[11]!==r?(b=!n&&a.createElement(a.Fragment,null,a.createElement("input",{type:"email",autoComplete:"off",value:r,onChange:e=>o(e.target.value),placeholder:"username or email",ref:d}),a.createElement("input",{type:"password",autoComplete:"new-password",value:l,onChange:e=>i(e.target.value),placeholder:"password"}),a.createElement("input",{type:"password",autoComplete:"new-password",placeholder:"confirm password",value:p,onChange:e=>h(e.target.value)})),t[5]=n,t[6]=d,t[7]=i,t[8]=o,t[9]=l,t[10]=p,t[11]=r,t[12]=b):b=t[12],t[13]===Symbol.for("react.memo_cache_sentinel")?(C=a.createElement(Ct,{onSelect:f}),t[13]=C):C=t[13],t[14]===Symbol.for("react.memo_cache_sentinel")?(w=e=>u(e.target.value),t[14]=w):w=t[14];const A=n?d:void 0;let S,N,_;return t[15]!==m||t[16]!==A?(S=a.createElement("div",{className:La},C,a.createElement("input",{type:"text",placeholder:"display name",value:m,onChange:w,ref:A})),t[15]=m,t[16]=A,t[17]=S):S=t[17],t[18]===Symbol.for("react.memo_cache_sentinel")?(N=a.createElement(E,{type:"submit",variant:"primary"},"Join"),t[18]=N):N=t[18],t[19]!==y||t[20]!==b||t[21]!==S?(_=a.createElement("form",{className:Pa,noValidate:!0,onSubmit:y},b,S,N),t[19]=y,t[20]=b,t[21]=S,t[22]=_):_=t[22],_},Ta="pvyilF8BtiMYHtpXJ_jT",ka=e=>{const t=(0,s.c)(16),{username:n,password:r,onUsernameChange:l,onPasswordChange:o,onSubmit:i,onFirstFieldRef:c}=e;let d,m,u,p,h,g;return t[0]!==l?(d=e=>l(e.target.value),t[0]=l,t[1]=d):d=t[1],t[2]!==c||t[3]!==d||t[4]!==n?(m=a.createElement("input",{type:"email",autoComplete:"username",placeholder:"username or email",value:n,onChange:d,ref:c}),t[2]=c,t[3]=d,t[4]=n,t[5]=m):m=t[5],t[6]!==o?(u=e=>o(e.target.value),t[6]=o,t[7]=u):u=t[7],t[8]!==r||t[9]!==u?(p=a.createElement("input",{type:"password",autoComplete:"current-password",placeholder:"password",value:r,onChange:u}),t[8]=r,t[9]=u,t[10]=p):p=t[10],t[11]===Symbol.for("react.memo_cache_sentinel")?(h=a.createElement(E,{type:"submit",variant:"primary"},"Sign In"),t[11]=h):h=t[11],t[12]!==i||t[13]!==m||t[14]!==p?(g=a.createElement("form",{noValidate:!0,onSubmit:i,className:Ta},m,p,h),t[12]=i,t[13]=m,t[14]=p,t[15]=g):g=t[15],g},Ma="e3jR4OMsV_OIaaAci_hn",Va="kfaDc9tZA7V0rbLrrQxW",za="unPhcciIOQl7IyVNBGQk",Ha="cRQaBuJaYH041jNLJIlp",xa=()=>{const e=(0,s.c)(67),t=(0,a.useRef)(null),n=(0,a.useRef)(null),r=(0,d.G)(Ua),l=(0,d.G)(Da),o=(0,d.G)(Ga),i=(0,d.j)(),[c,m]=(0,a.useState)("returning"),[u,h]=(0,a.useState)(""),[g,E]=(0,a.useState)(""),[f,v]=(0,a.useState)(null),[y,b]=(0,a.useState)(""),[C,w]=(0,a.useState)(!1),[A,S]=(0,a.useState)(!0),[N,_]=(0,a.useState)(null),[I,R]=(0,a.useState)(0);let P,L,O;if(e[0]!==i?(P=()=>{i((0,Xn.RM)())},L=[i],e[0]=i,e[1]=P,e[2]=L):(P=e[1],L=e[2]),(0,a.useEffect)(P,L),l!==N){_(l);const e=new URLSearchParams(location.search),t=e.get("roomId"),n=t?parseInt(t,10):null,a=e.get("password");n&&l.entities[n]?(v(n),S(!1),l.entities[n]?.hasPassword?a?(b(atob(a)),w(!1),R(qa)):w(!0):R(Fa)):1===l.result.length?(v(l.result[0]),w(l.entities[l.result[0]]?.hasPassword)):w(0!==l.result.length)}e[3]!==l.entities||e[4]!==C?(O=e=>{v(e),m("returning"),l.entities[e]?.hasPassword&&C||(R(Ba),t.current?.scrollIntoView({behavior:"smooth",block:"start"}))},e[3]=l.entities,e[4]=C,e[5]=O):O=e[5];const T=O;let k;e[6]===Symbol.for("react.memo_cache_sentinel")?(k=e=>{e&&(n.current=e)},e[6]=k):k=e[6];const M=k;let V;e[7]!==i||e[8]!==g||e[9]!==f||e[10]!==y||e[11]!==u?(V=e=>{e.preventDefault(),i((0,ot.iD)({username:u.trim(),password:g,roomId:f,roomPassword:y}))},e[7]=i,e[8]=g,e[9]=f,e[10]=y,e[11]=u,e[12]=V):V=e[12];const z=V;let H;e[13]!==i||e[14]!==c||e[15]!==g||e[16]!==f||e[17]!==y||e[18]!==u?(H=e=>{const{name:t,image:n,passwordConfirm:a}=e,r=new FormData;r.append("username",u.trim()),r.append("newPassword",g),r.append("newPasswordConfirm",a),r.append("roomId",String(f)),r.append("roomPassword",y),r.append("name",t.trim()),void 0!==n&&r.append("image",n),"returning"!==c&&r.append("role",c),i((0,ot._m)(r))},e[13]=i,e[14]=c,e[15]=g,e[16]=f,e[17]=y,e[18]=u,e[19]=H):H=e[19];const x=H;let U;e[20]!==r.roles.entities||e[21]!==r.roles.result||e[22]!==f||e[23]!==l.entities?(U=e=>{const t=r.roles.result.find(t=>r.roles.entities[t].name===e);return!!l.entities[f]?.prefs?.roles?.[t]?.allowNew},e[20]=r.roles.entities,e[21]=r.roles.result,e[22]=f,e[23]=l.entities,e[24]=U):U=e[24];const D=U,G=D("guest"),q=D("standard"),F=q||G;let B,W;e[25]===Symbol.for("react.memo_cache_sentinel")?(B=()=>{n.current?.focus()},e[25]=B):B=e[25],e[26]!==I||e[27]!==c?(W=[I,c],e[26]=I,e[27]=c,e[28]=W):W=e[28],(0,a.useEffect)(B,W);const j=Math.max(340,.66*o.contentWidth);let Y,Q,K;e[29]!==j?(Y={maxWidth:j},e[29]=j,e[30]=Y):Y=e[30],e[31]===Symbol.for("react.memo_cache_sentinel")?(Q=a.createElement(pt,{className:Va}),e[31]=Q):Q=e[31],e[32]!==T||e[33]!==f||e[34]!==y||e[35]!==l||e[36]!==A||e[37]!==C?(K=C&&a.createElement(a.Fragment,null,a.createElement("h1",null,"Join room..."),a.createElement(Ra,{rooms:l,roomId:f,roomPassword:y,showAllRooms:A,onRoomSelect:T,onRoomPasswordChange:b})),e[32]=T,e[33]=f,e[34]=y,e[35]=l,e[36]=A,e[37]=C,e[38]=K):K=e[38];const J=l.result.length>1&&null===f&&Ha;let Z,X,$,ee,te,ne;return e[39]!==J?(Z=(0,p.A)(J),e[39]=J,e[40]=Z):Z=e[40],e[41]!==F||e[42]!==G||e[43]!==q||e[44]!==c?(X=F?a.createElement(a.Fragment,null,a.createElement("h1",null,"Join as..."),a.createElement("div",{className:za},a.createElement(_a,{name:"type",value:"returning",checked:"returning"===c,onChange:m,label:"Returning user"}),q&&a.createElement(_a,{name:"type",value:"standard",checked:"standard"===c,onChange:m,label:"New user"}),G&&a.createElement(_a,{name:"type",value:"guest",checked:"guest"===c,onChange:m,label:"Guest"}))):a.createElement("h1",null,"Sign in"),e[41]=F,e[42]=G,e[43]=q,e[44]=c,e[45]=X):X=e[45],e[46]!==F||e[47]!==z||e[48]!==c||e[49]!==g||e[50]!==u?($=("returning"===c||!F)&&a.createElement(ka,{username:u,password:g,onUsernameChange:h,onPasswordChange:E,onSubmit:z,onFirstFieldRef:M}),e[46]=F,e[47]=z,e[48]=c,e[49]=g,e[50]=u,e[51]=$):$=e[51],e[52]!==F||e[53]!==x||e[54]!==c||e[55]!==g||e[56]!==u?(ee="returning"!==c&&F&&a.createElement(Oa,{guest:"guest"===c,username:u,password:g,onUsernameChange:h,onPasswordChange:E,onSubmit:x,onFirstFieldRef:M}),e[52]=F,e[53]=x,e[54]=c,e[55]=g,e[56]=u,e[57]=ee):ee=e[57],e[58]!==Z||e[59]!==X||e[60]!==$||e[61]!==ee?(te=a.createElement("div",{ref:t,className:Z},X,$,ee),e[58]=Z,e[59]=X,e[60]=$,e[61]=ee,e[62]=te):te=e[62],e[63]!==Y||e[64]!==K||e[65]!==te?(ne=a.createElement("div",{className:Ma,style:Y},Q,K,te),e[63]=Y,e[64]=K,e[65]=te,e[66]=ne):ne=e[66],ne};function Ua(e){return e.prefs}function Da(e){return e.rooms}function Ga(e){return e.ui}function qa(e){return e+1}function Fa(e){return e+1}function Ba(e){return e+1}const Wa="EPw4Q8pC4VCZu_ENeHOh",ja=()=>{const e=(0,s.c)(20),t=(0,d.G)(Ya),n=(0,d.G)(Qa),r=(0,d.G)(Ka),l=(0,d.j)();let o,i,c,m,u,p,h;return e[0]!==l?(o=()=>{l((0,v.dJ)())},i=[l],e[0]=l,e[1]=o,e[2]=i):(o=e[1],i=e[2]),(0,a.useEffect)(o,i),e[3]!==r.contentWidth||e[4]!==r.footerHeight||e[5]!==r.headerHeight||e[6]!==r.innerHeight?(c={paddingTop:r.headerHeight,paddingBottom:r.footerHeight,width:r.contentWidth,height:r.innerHeight},e[3]=r.contentWidth,e[4]=r.footerHeight,e[5]=r.headerHeight,e[6]=r.innerHeight,e[7]=c):c=e[7],e[8]!==t?(m=t&&a.createElement(wa,null),e[8]=t,e[9]=m):m=e[9],e[10]!==n||e[11]!==t?(u=!n&&!t&&a.createElement(xa,null),e[10]=n,e[11]=t,e[12]=u):u=e[12],e[13]!==n?(p=n&&a.createElement(Lt,null),e[13]=n,e[14]=p):p=e[14],e[15]!==c||e[16]!==m||e[17]!==u||e[18]!==p?(h=a.createElement("div",{className:Wa,style:c},m,u,p),e[15]=c,e[16]=m,e[17]=u,e[18]=p,e[19]=h):h=e[19],h};function Ya(e){return null!==e.user.userId}function Qa(e){return!0===e.prefs.isFirstRun}function Ka(e){return e.ui}var Ja=n(9934);const Za=(0,f.Mz)([e=>e.artists],e=>{const t={"#":0},n="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");let a=0;return e.result.forEach((r,s)=>{const l=e.entities[r].name[0].toUpperCase(),o=n.indexOf(l)-a;o>=0&&(a+=o,t[n[a]]=s,a++)}),t}),Xa=(0,f.Mz)([e=>(0,Ja.wd)(e.queue),e=>e.status.isAtQueueEnd?void 0:e.status.queueId,e=>e.status.historyJSON],(e,t,n)=>{const a=JSON.parse(n),r=[],s=[];return e.result.forEach(n=>{a.includes(n)?r.push(e.entities[n].songId):n!==t&&s.push(e.entities[n].songId)}),{played:r,upcoming:s,current:e.entities[t]?.songId}});var $a=n(68853);const er="JoCtgfMdp4_LkFISBVdL",tr=e=>{const t=(0,s.c)(24),{numRows:n,onRowsRendered:r,onRef:l,paddingTop:o,paddingRight:i,paddingBottom:c,rowComponent:d,rowHeight:m,rowProps:p,width:h,height:g}=e;let E;t[0]!==p?(E=void 0===p?{}:p,t[0]=p,t[1]=E):E=t[1];const f=E;let v;t[2]!==l?(v=e=>{l&&l(e)},t[2]=l,t[3]=v):v=t[3];const y=v;let b;t[4]!==d||t[5]!==n||t[6]!==i?(b=e=>{let{index:t,style:r,ariaAttributes:s,...l}=e;return 0===t||t===n+1?a.createElement("div",{key:0===t?"top":"bottom",style:r}):a.createElement(d,(0,u.A)({index:--t,style:{...r,paddingRight:i},ariaAttributes:s},l))},t[4]=d,t[5]=n,t[6]=i,t[7]=b):b=t[7];const C=b;let w;t[8]!==n||t[9]!==c||t[10]!==o||t[11]!==m?(w=e=>0===e?o:e===n+1?c:m(e-1),t[8]=n,t[9]=c,t[10]=o,t[11]=m,t[12]=w):w=t[12];const A=w,S=n+2;let N,_;return t[13]!==g||t[14]!==h?(N={width:h,height:g},t[13]=g,t[14]=h,t[15]=N):N=t[15],t[16]!==C||t[17]!==A||t[18]!==y||t[19]!==r||t[20]!==f||t[21]!==S||t[22]!==N?(_=a.createElement($a.B8,{rowProps:f,rowComponent:C,rowCount:S,rowHeight:A,onRowsRendered:r,overscanCount:10,listRef:y,className:er,style:N}),t[16]=C,t[17]=A,t[18]=y,t[19]=r,t[20]=f,t[21]=S,t[22]=N,t[23]=_):_=t[23],_},nr="vN10Ra6WwFQwsoJD1_3H";class ar extends a.Component{alphabet="#ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");state={isTouchCapable:!1,isTouching:!1,char:null,y:null};render(){return a.createElement("div",{className:nr,style:{height:this.props.height,top:this.props.top},onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouch,onTouchEnd:this.handleTouchEnd,onMouseDown:this.handleTouch,onMouseUp:this.handleTouchEnd},this.alphabet.map(e=>a.createElement("div",{key:e,style:{flex:"1 1 auto",minHeight:0}},e)))}handleTouchStart=()=>{(0,k.Dx)(!0),this.setState({isTouchCapable:!0,isTouching:!0})};handleTouch=e=>{if(e.preventDefault(),"mousedown"===e.type&&this.state.isTouchCapable)return;const t="targetTouches"in e?e.targetTouches[0].clientY:e.clientY,n=this.alphabet[Math.floor((t-this.props.top)/this.props.height*this.alphabet.length)];this.setState({char:n,y:t-this.props.top}),n!==this.state.char&&void 0!==n&&this.props.onPick(n)};handleTouchEnd=()=>{(0,k.Dx)(!1),this.setState({isTouching:!1,char:null})}}const rr=ar;var sr=n(23257),lr=n.n(sr),or=n(10188);const ir="NLkRlVVNnuiKJMNOXMhe",cr="IW53X1CCc5LsUP_viCWs";class dr extends a.Component{render(){let e=0;const t=a.Children.map(this.props.children,t=>{if(a.isValidElement(t))return t.props["data-hide"]&&!this.props.isExpanded?a.cloneElement(t,{className:(0,p.A)(t.props.className,cr)}):(e++,t)});return a.createElement("div",{className:(0,p.A)(ir,this.props.className),style:{width:this.props.btnWidth*e}},t)}}class mr extends a.Component{state={animate:!1};componentDidUpdate(e){this.props.toggle!==e.toggle&&this.setState({animate:!0})}render(){return this.state.animate?a.Children.map(this.props.children,e=>{if(a.isValidElement(e))return a.cloneElement(e,{className:(0,p.A)(e.props.className,this.props.className),onAnimationEnd:this.handleAnimationEnd})}):this.props.children}handleAnimationEnd=()=>this.setState({animate:!1})}const ur={container:"Hk5Oiz4LTn0TQU1HJ_4r",withArtist:"otX4OYp4lT3aOtJMqjAT",upcoming:"Ar5Q9JpCbRQjA3OMib2W",title:"oqSOn8U_QmqEzSvyfAw_",played:"iMwtWGP1vWpUXRv3MLTP",artist:"INKd0vI4DamezRZUfFHO",starred:"_t4JBPFRguFbumW7x8D6",star:"bfE_vcKGNAy6HuKrhsLQ",starCount:"a2lTNMjjT5QzeuYbGeux",animateGlow:"q8d4R7JJbyKfMfb5qTtn",duration:"hxXzgFhspryRgl6_AkmQ",primary:"z8K08MurHExDsFH50TjN",btn:"DLgbTdB3hYU0zYVmvotm",info:"IpLs3GshduGnVRAThUSV",animateStar:"r4HcW54ut9T2YXA4ysAf"};let pr=!1;const hr=e=>{const t=(0,s.c)(67),{songId:n,artist:r,title:l,duration:o,onSongQueue:i,onSongStarClick:c,onSongInfo:d,isPlayed:m,isStarred:g,isUpcoming:f,isAdmin:v,numStars:y,numMedia:b,filterKeywords:C}=e,[w,A]=(0,a.useState)(!1);let S;t[0]!==f||t[1]!==i||t[2]!==n?(S=()=>{pr?pr=!1:f||i(n)},t[0]=f,t[1]=i,t[2]=n,t[3]=S):S=t[3];const N=S;let _;t[4]!==d||t[5]!==n?(_=()=>d(n),t[4]=d,t[5]=n,t[6]=_):_=t[6];const I=_;let R;t[7]!==c||t[8]!==n?(R=()=>c(n),t[7]=c,t[8]=n,t[9]=R):R=t[9];const P=R;let L,O,T;t[10]!==v?(L=e=>{const{event:t}=e;pr="mouseup"===t.type,A(v)},t[10]=v,t[11]=L):L=t[11],t[12]===Symbol.for("react.memo_cache_sentinel")?(O=e=>{const{event:t}=e;pr="mouseup"===t.type,A(!1)},t[12]=O):O=t[12],t[13]!==L?(T={onSwipedLeft:L,onSwipedRight:O,preventScrollOnSwipe:!0,trackMouse:!0},t[13]=L,t[14]=T):T=t[14];const k=(0,or.uh)(T),M=m&&ur.played,V=f&&ur.upcoming,z=g&&ur.starred,H=w&&ur.expanded,x=r&&ur.withArtist;let U,D,G,q,F,B,W,j,Y,Q,K,J;t[15]!==H||t[16]!==x||t[17]!==M||t[18]!==V||t[19]!==z?(U=(0,p.A)(ur.container,M,V,z,H,x),t[15]=H,t[16]=x,t[17]=M,t[18]=V,t[19]=z,t[20]=U):U=t[20],t[21]!==o?(D=Ae(o),t[21]=o,t[22]=D):D=t[22],t[23]!==D?(G=a.createElement("div",{className:ur.duration},D),t[23]=D,t[24]=G):G=t[24],t[25]!==C||t[26]!==l?(q=C?.length?a.createElement(lr(),{autoEscape:!0,textToHighlight:l,searchWords:C}):l,t[25]=C,t[26]=l,t[27]=q):q=t[27],t[28]!==v||t[29]!==b?(F=v&&b>1&&a.createElement("i",null," ","(",b,")"),t[28]=v,t[29]=b,t[30]=F):F=t[30],t[31]!==r?(B=r&&a.createElement("div",{className:ur.artist},r),t[31]=r,t[32]=B):B=t[32],t[33]!==q||t[34]!==F||t[35]!==B?(W=a.createElement("div",{className:ur.title},q,F,B),t[33]=q,t[34]=F,t[35]=B,t[36]=W):W=t[36],t[37]!==N||t[38]!==W?(j=a.createElement("div",{onClick:N,className:ur.primary},W),t[37]=N,t[38]=W,t[39]=j):j=t[39],t[40]!==f||t[41]!==G||t[42]!==j?(Y=a.createElement(mr,{toggle:f,className:ur.animateGlow},G,j),t[40]=f,t[41]=G,t[42]=j,t[43]=Y):Y=t[43],t[44]===Symbol.for("react.memo_cache_sentinel")?(Q=(0,p.A)(ur.btn,ur.star),t[44]=Q):Q=t[44],t[45]===Symbol.for("react.memo_cache_sentinel")?(K=a.createElement(h.A,{icon:"STAR_FULL"}),t[45]=K):K=t[45],t[46]!==g?(J=a.createElement(mr,{toggle:g,className:ur.animateStar},K),t[46]=g,t[47]=J):J=t[47];const Z=y||"";let X,$,ee,te,ne,ae,re;return t[48]!==Z?(X=a.createElement("div",{className:ur.starCount},Z),t[48]=Z,t[49]=X):X=t[49],t[50]!==P||t[51]!==J||t[52]!==X?($=a.createElement(E,{onClick:P,className:Q},J,X),t[50]=P,t[51]=J,t[52]=X,t[53]=$):$=t[53],t[54]===Symbol.for("react.memo_cache_sentinel")?(ee=(0,p.A)(ur.btn,ur.info),t[54]=ee):ee=t[54],t[55]===Symbol.for("react.memo_cache_sentinel")?(te=a.createElement(h.A,{icon:"INFO_OUTLINE"}),t[55]=te):te=t[55],t[56]!==I?(ne=a.createElement(E,{onClick:I,className:ee,"data-hide":!0},te),t[56]=I,t[57]=ne):ne=t[57],t[58]!==w||t[59]!==$||t[60]!==ne?(ae=a.createElement(dr,{btnWidth:56,isExpanded:w},$,ne),t[58]=w,t[59]=$,t[60]=ne,t[61]=ae):ae=t[61],t[62]!==k||t[63]!==U||t[64]!==Y||t[65]!==ae?(re=a.createElement("div",(0,u.A)({},k,{className:U}),Y,ae),t[62]=k,t[63]=U,t[64]=Y,t[65]=ae,t[66]=re):re=t[66],re};var gr=n(8870);const Er=e=>{const t=(0,s.c)(35),n=(0,d.j)(),r=(0,d.G)(fr),l=(0,d.G)(vr),o=(0,d.G)(yr),i=(0,d.G)(br),c=(0,d.G)(Cr),{played:m,upcoming:p,current:h}=(0,d.G)(Xa);let g;t[0]!==n?(g=e=>n((0,dn.$1)(e)),t[0]=n,t[1]=g):g=t[1];const E=g;let f;t[2]!==n?(f=e=>n((0,et.XH)(e)),t[2]=n,t[3]=f):f=t[3];const v=f;let y;t[4]!==n?(y=e=>n((0,gr.D)(e)),t[4]=n,t[5]=y):y=t[5];const b=y;let C;if(t[6]!==r||t[7]!==h||t[8]!==v||t[9]!==E||t[10]!==b||t[11]!==c||t[12]!==m||t[13]!==e.filterKeywords||t[14]!==e.showArtist||t[15]!==e.songIds||t[16]!==l||t[17]!==i||t[18]!==o||t[19]!==p){let n;t[21]!==r||t[22]!==h||t[23]!==v||t[24]!==E||t[25]!==b||t[26]!==c||t[27]!==m||t[28]!==e.filterKeywords||t[29]!==e.showArtist||t[30]!==l||t[31]!==i||t[32]!==o||t[33]!==p?(n=t=>a.createElement(hr,(0,u.A)({},l[t],{artist:e.showArtist?r[l[t].artistId].name:"",filterKeywords:e.filterKeywords,isPlayed:m.includes(t),isUpcoming:p.includes(t)||h===t,isStarred:o.includes(t),isAdmin:c,key:t,numStars:i[t]||0,onSongQueue:E,onSongStarClick:b,onSongInfo:v})),t[21]=r,t[22]=h,t[23]=v,t[24]=E,t[25]=b,t[26]=c,t[27]=m,t[28]=e.filterKeywords,t[29]=e.showArtist,t[30]=l,t[31]=i,t[32]=o,t[33]=p,t[34]=n):n=t[34],C=e.songIds.map(n),t[6]=r,t[7]=h,t[8]=v,t[9]=E,t[10]=b,t[11]=c,t[12]=m,t[13]=e.filterKeywords,t[14]=e.showArtist,t[15]=e.songIds,t[16]=l,t[17]=i,t[18]=o,t[19]=p,t[20]=C}else C=t[20];return C};function fr(e){return e.artists.entities}function vr(e){return e.songs.entities}function yr(e){return(0,Ja.wd)(e.userStars).starredSongs}function br(e){return e.starCounts.songs}function Cr(e){return e.user.isAdmin}const wr="ZQ1vJSuEzaXfK5U2mVy3",Ar="Lo0KOIA2KNbjdkAzONWs",Sr="p93wNKEZo5tcFcoqQsLu",Nr="EDIoZvkx8L71cjC29VBS",_r="uK9euOQJZqLMy1JCBauJ",Ir="b9LqH0GqWQ8WmCaa4ktx",Rr="HZ0_7hegL7xDvnX1Vw9I",Pr="sfB8p0Y7lGZmslY0UxWw",Lr=e=>{const t=(0,s.c)(61),{artistSongIds:n,filterKeywords:r,isExpanded:l,name:o,onArtistClick:i,starredSongs:c,style:d,upcomingSongs:m}=e;let u,g,E,f,v,y,b,C,w,A,S,N,_,I,R;if(t[0]!==n||t[1]!==l||t[2]!==i||t[3]!==c||t[4]!==d||t[5]!==m){let e;t[15]!==m?(e=e=>m.includes(e),t[15]=m,t[16]=e):e=t[16];const r=n.some(e);if(t[17]!==n||t[18]!==i||t[19]!==c||t[20]!==d){let e;t[25]!==c?(e=e=>c.includes(e),t[25]=c,t[26]=e):e=t[26];const a=n.some(e);C=d,w="no",v=i,y=(0,p.A)(wr,a&&_r),t[17]=n,t[18]=i,t[19]=c,t[20]=d,t[21]=v,t[22]=y,t[23]=C,t[24]=w}else v=t[21],y=t[22],C=t[23],w=t[24];let s,o,A;t[27]===Symbol.for("react.memo_cache_sentinel")?(s=a.createElement(h.A,{icon:"FOLDER"}),t[27]=s):s=t[27],t[28]!==l?(o=l&&a.createElement("div",{className:Nr},a.createElement(h.A,{icon:"CHEVRON_DOWN"})),t[28]=l,t[29]=o):o=t[29],t[30]!==n.length||t[31]!==l?(A=!l&&a.createElement("div",{className:Ir},n.length),t[30]=n.length,t[31]=l,t[32]=A):A=t[32],t[33]!==o||t[34]!==A?(b=a.createElement("div",{className:Sr},s,o,A),t[33]=o,t[34]=A,t[35]=b):b=t[35],u=mr,E=r,f=Rr,g=(0,p.A)(Ar,r&&Pr),t[0]=n,t[1]=l,t[2]=i,t[3]=c,t[4]=d,t[5]=m,t[6]=u,t[7]=g,t[8]=E,t[9]=f,t[10]=v,t[11]=y,t[12]=b,t[13]=C,t[14]=w}else u=t[6],g=t[7],E=t[8],f=t[9],v=t[10],y=t[11],b=t[12],C=t[13],w=t[14];return t[36]!==r||t[37]!==o?(A=r?.length?a.createElement(lr(),{autoEscape:!0,textToHighlight:o,searchWords:r}):o,t[36]=r,t[37]=o,t[38]=A):A=t[38],t[39]!==g||t[40]!==A?(S=a.createElement("div",{className:g},A),t[39]=g,t[40]=A,t[41]=S):S=t[41],t[42]!==u||t[43]!==S||t[44]!==E||t[45]!==f?(N=a.createElement(u,{toggle:E,className:f},S),t[42]=u,t[43]=S,t[44]=E,t[45]=f,t[46]=N):N=t[46],t[47]!==N||t[48]!==v||t[49]!==y||t[50]!==b?(_=a.createElement("div",{onClick:v,className:y},b,N),t[47]=N,t[48]=v,t[49]=y,t[50]=b,t[51]=_):_=t[51],t[52]!==n||t[53]!==r||t[54]!==l?(I=l&&a.createElement(Er,{songIds:n,showArtist:!1,filterKeywords:r}),t[52]=n,t[53]=r,t[54]=l,t[55]=I):I=t[55],t[56]!==_||t[57]!==I||t[58]!==C||t[59]!==w?(R=a.createElement("div",{style:C,translate:w},_,I),t[56]=_,t[57]=I,t[58]=C,t[59]=w,t[60]=R):R=t[60],R},Or=e=>{const t=(0,s.c)(16),{index:n,style:r,dispatch:l,artists:o,expandedArtists:i}=e,c=(0,d.G)(kr),{starredSongs:m}=(0,d.G)(Mr),{upcoming:u,current:p}=(0,d.G)(Xa),h=o.entities[o.result[n]];p&&u.push(p);const g=h.songIds;let E;t[0]!==h.artistId||t[1]!==i?(E=i.includes(h.artistId),t[0]=h.artistId,t[1]=i,t[2]=E):E=t[2];const f=c[h.artistId]||0;let v,y;return t[3]!==h.artistId||t[4]!==l?(v=()=>l((0,w.RH)(h.artistId)),t[3]=h.artistId,t[4]=l,t[5]=v):v=t[5],t[6]!==h.artistId||t[7]!==h.name||t[8]!==h.songIds||t[9]!==m||t[10]!==r||t[11]!==E||t[12]!==f||t[13]!==v||t[14]!==u?(y=a.createElement(Lr,{artistSongIds:g,isExpanded:E,key:h.artistId,name:h.name,numStars:f,onArtistClick:v,upcomingSongs:u,starredSongs:m,style:r}),t[6]=h.artistId,t[7]=h.name,t[8]=h.songIds,t[9]=m,t[10]=r,t[11]=E,t[12]=f,t[13]=v,t[14]=u,t[15]=y):y=t[15],y},Tr=e=>{const t=(0,s.c)(30),{ui:n}=e,r=(0,d.j)(),{expandedArtists:l}=(0,d.G)(Vr),o=(0,d.G)(zr),i=(0,d.G)(Za),c=(0,d.G)(Hr),m=(0,a.useRef)(o),u=(0,a.useRef)(null);let p,h,g;t[0]!==r?(p=()=>()=>{r((0,w.AR)(m.current))},h=[r],t[0]=r,t[1]=p,t[2]=h):(p=t[1],h=t[2]),(0,a.useEffect)(p,h),t[3]!==c.entities||t[4]!==c.result||t[5]!==l?(g=e=>{const t=c.result[e];let n=48;return l.includes(t)&&(n=48+56*c.entities[t].songIds.length),n},t[3]=c.entities,t[4]=c.result,t[5]=l,t[6]=g):g=t[6];const E=g;let f;t[7]===Symbol.for("react.memo_cache_sentinel")?(f=e=>{const{startIndex:t}=e;m.current=t},t[7]=f):f=t[7];const v=f;let y;t[8]!==i?(y=e=>{const t=i[e];void 0!==t&&u.current&&u.current.scrollToRow({index:t>0?t-1:t,align:"start"})},t[8]=i,t[9]=y):y=t[9];const b=y;let C;t[10]===Symbol.for("react.memo_cache_sentinel")?(C=e=>{e&&(u.current=e,m.current&&u.current.scrollToRow({index:m.current,align:"start",behavior:"instant"}))},t[10]=C):C=t[10];const A=C;if(0===c.result.length)return null;let S,N;t[11]!==c||t[12]!==r||t[13]!==l?(S={dispatch:r,artists:c,expandedArtists:l},t[11]=c,t[12]=r,t[13]=l,t[14]=S):S=t[14],t[15]!==c.result.length||t[16]!==E||t[17]!==S||t[18]!==n.footerHeight||t[19]!==n.headerHeight||t[20]!==n.innerHeight||t[21]!==n.innerWidth?(N=a.createElement(tr,{rowComponent:Or,rowProps:S,rowHeight:E,numRows:c.result.length,onRowsRendered:v,onRef:A,paddingTop:n.headerHeight,paddingRight:30,paddingBottom:n.footerHeight,width:n.innerWidth,height:n.innerHeight}),t[15]=c.result.length,t[16]=E,t[17]=S,t[18]=n.footerHeight,t[19]=n.headerHeight,t[20]=n.innerHeight,t[21]=n.innerWidth,t[22]=N):N=t[22];const _=n.innerHeight-n.headerHeight-n.footerHeight;let I,R;return t[23]!==b||t[24]!==_||t[25]!==n.headerHeight?(I=a.createElement(rr,{onPick:b,height:_,top:n.headerHeight}),t[23]=b,t[24]=_,t[25]=n.headerHeight,t[26]=I):I=t[26],t[27]!==I||t[28]!==N?(R=a.createElement("div",null,N,I),t[27]=I,t[28]=N,t[29]=R):R=t[29],R};function kr(e){return e.starCounts.artists}function Mr(e){return(0,Ja.wd)(e.userStars)}function Vr(e){return e.library}function zr(e){return e.library.scrollRow}function Hr(e){return e.artists}var xr=n(54638);const Ur=e=>e.artists,Dr=e=>e.songs,Gr=e=>e.library.filterStr.trim().toLowerCase(),qr=e=>e.library.filterStarred,Fr=(0,f.Mz)([Ur],e=>new xr.W5(e.result,{keySelector:t=>e.entities[t].name,threshold:.8})),Br=(0,f.Mz)([Dr],e=>new xr.W5(e.result,{keySelector:t=>e.entities[t].title,threshold:.8})),Wr=(0,f.Mz)([Ur,Gr,Fr],(e,t,n)=>t?n.search(t,{returnMatchData:!0}).map(e=>e.item):e.result),jr=(0,f.Mz)([Dr,Gr,Br],(e,t,n)=>t?n.search(t,{returnMatchData:!0}).map(e=>e.item):e.result),Yr=(0,f.Mz)([Wr,qr,e=>(0,Ja.wd)(e.userStars).starredArtists],(e,t,n)=>e.filter(e=>!t||n.includes(e))),Qr=(0,f.Mz)([jr,qr,e=>(0,Ja.wd)(e.userStars).starredSongs],(e,t,n)=>e.filter(e=>!t||n.includes(e))),Kr=(0,f.Mz)([Yr,Qr],(e,t)=>({artistsResult:e,songsResult:t})),Jr="FM0NON48tUGevc0Mocok",Zr="CEmdQRH561N9ZZS2sElY",Xr=e=>{const t=(0,s.c)(32),{index:n,style:r,dispatch:l,artists:o,filterKeywords:i,filterStarred:c,artistsResult:m,songsResult:u,expandedArtistResults:p}=e,{starredSongs:h}=(0,d.G)(es),{upcoming:g}=(0,d.G)(Xa);if(0===n){const e=c?"starred ":"",n=1===m.length?"artist":"artists";let s;return t[0]!==m.length||t[1]!==r||t[2]!==e||t[3]!==n?(s=a.createElement("div",{key:"artistsHeading",style:r,className:Jr},m.length," ",e,n),t[0]=m.length,t[1]=r,t[2]=e,t[3]=n,t[4]=s):s=t[4],s}if(n>0&&n<m.length+1){const e=m[n-1],s=o.entities[e],c=s.songIds;let d,u,E;return t[5]!==e||t[6]!==p?(d=p.includes(e),t[5]=e,t[6]=p,t[7]=d):d=t[7],t[8]!==e||t[9]!==l?(u=()=>l((0,w.wk)(e)),t[8]=e,t[9]=l,t[10]=u):u=t[10],t[11]!==s.name||t[12]!==s.songIds||t[13]!==e||t[14]!==i||t[15]!==h||t[16]!==r||t[17]!==d||t[18]!==u||t[19]!==g?(E=a.createElement(Lr,{artistSongIds:c,filterKeywords:i,isExpanded:d,key:e,name:s.name,numStars:0,onArtistClick:u,upcomingSongs:g,starredSongs:h,style:r}),t[11]=s.name,t[12]=s.songIds,t[13]=e,t[14]=i,t[15]=h,t[16]=r,t[17]=d,t[18]=u,t[19]=g,t[20]=E):E=t[20],E}if(n===m.length+1){const e=c?"starred ":"",n=1===u.length?"song":"songs";let s;return t[21]!==u.length||t[22]!==r||t[23]!==e||t[24]!==n?(s=a.createElement("div",{key:"songsHeading",style:r,className:Zr},u.length," ",e,n),t[21]=u.length,t[22]=r,t[23]=e,t[24]=n,t[25]=s):s=t[25],s}let E,f;return t[26]!==i||t[27]!==u?(E=a.createElement(Er,{songIds:u,showArtist:!0,filterKeywords:i}),t[26]=i,t[27]=u,t[28]=E):E=t[28],t[29]!==r||t[30]!==E?(f=a.createElement("div",{style:r,key:"songs"},E),t[29]=r,t[30]=E,t[31]=f):f=t[31],f},$r=e=>{const t=(0,s.c)(23),{ui:n}=e,r=(0,d.j)(),l=(0,d.G)(ts),o=(0,d.G)(ns),{filterStr:i,filterStarred:c}=(0,d.G)(as),{artistsResult:m,songsResult:u}=(0,d.G)(Kr),p=(0,a.useRef)(null);let h;t[0]!==i?(h=i.trim()?i.trim().toLowerCase().split(" "):[],t[0]=i,t[1]=h):h=t[1];const g=h;let E;t[2]!==l||t[3]!==m||t[4]!==o||t[5]!==u?(E=e=>{if(0===e)return 24;if(e>0&&e<m.length+1){const t=m[e-1];let n=48;return o.includes(t)&&(n=48+56*l.entities[t].songIds.length),n}return e===m.length+1?24:68*u.length},t[2]=l,t[3]=m,t[4]=o,t[5]=u,t[6]=E):E=t[6];const f=E;let v;t[7]===Symbol.for("react.memo_cache_sentinel")?(v=e=>{e&&(p.current=e)},t[7]=v):v=t[7];const y=v;let b;t[8]!==l||t[9]!==m||t[10]!==r||t[11]!==o||t[12]!==g||t[13]!==c||t[14]!==u?(b={dispatch:r,artists:l,filterStarred:c,filterKeywords:g,artistsResult:m,songsResult:u,expandedArtistResults:o},t[8]=l,t[9]=m,t[10]=r,t[11]=o,t[12]=g,t[13]=c,t[14]=u,t[15]=b):b=t[15];const C=m.length+3;let w;return t[16]!==f||t[17]!==b||t[18]!==C||t[19]!==n.footerHeight||t[20]!==n.headerHeight||t[21]!==n.innerHeight?(w=a.createElement(tr,{rowComponent:Xr,rowProps:b,rowHeight:f,numRows:C,paddingTop:n.headerHeight,paddingRight:4,paddingBottom:n.footerHeight,height:n.innerHeight,onRef:y}),t[16]=f,t[17]=b,t[18]=C,t[19]=n.footerHeight,t[20]=n.headerHeight,t[21]=n.innerHeight,t[22]=w):w=t[22],w};function es(e){return(0,Ja.wd)(e.userStars)}function ts(e){return e.artists}function ns(e){return e.library.expandedArtistResults}function as(e){return e.library}const rs="l_cLCw9eRNCSyRKgXWS5",ss="Fog7IKmx1oVfPd8FU407",ls=e=>{const t=(0,s.c)(5);let n,r;return t[0]!==e.className?(n=(0,p.A)(ss,e.className),t[0]=e.className,t[1]=n):n=t[1],t[2]!==e.children||t[3]!==n?(r=a.createElement("div",{className:rs},a.createElement("div",{className:n},e.children)),t[2]=e.children,t[3]=n,t[4]=r):r=t[4],r},os="Cy2j9ZX2IZrQWobGUi7X",is="dTWtSURLdyh9OV1LTnaC",cs="L3qh5gTBMbZXjFIzwmUI",ds="f7Ry7aQoljxI7zOj18tU",ms="jZojmB6JI3Y1bkX6XnDI",us="EcvP0cnG_tPw2rSbAdHh",ps=()=>{const e=(0,s.c)(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=a.createElement("div",{className:os},a.createElement("div",{className:is}),a.createElement("div",{className:(0,p.A)(is,cs)}),a.createElement("div",{className:(0,p.A)(is,ds)}),a.createElement("div",{className:(0,p.A)(is,ms)}),a.createElement("div",{className:(0,p.A)(is,us)})),e[0]=t):t=e[0],t},hs="bhZWQ2xPWPTNIX6C4F3a",gs=()=>{const e=(0,s.c)(20),{isAdmin:t}=(0,d.G)(Es),{isLoading:n,filterStr:l,filterStarred:o}=(0,d.G)(fs),i=(0,d.G)(vs),c=(0,d.G)(ys);let m;e[0]!==o||e[1]!==l?(m=!!l.trim().length||o,e[0]=o,e[1]=l,e[2]=m):m=e[2];const u=m,[p]=(0,a.useState)(c.headerHeight),[h,g]=(0,a.useState)(null);if(null===h&&c.headerHeight>p&&g(c.headerHeight),!h)return null;let E,f,v,y,b;return e[3]!==u||e[4]!==c?(E=!u&&a.createElement(Tr,{ui:c}),e[3]=u,e[4]=c,e[5]=E):E=e[5],e[6]!==u||e[7]!==c?(f=u&&a.createElement($r,{ui:c}),e[6]=u,e[7]=c,e[8]=f):f=e[8],e[9]!==n?(v=n&&a.createElement(ps,null),e[9]=n,e[10]=v):v=e[10],e[11]!==t||e[12]!==n||e[13]!==i?(y=!n&&0===i.length&&a.createElement(ls,{className:hs},a.createElement("h1",null,"Library Empty"),t&&a.createElement("p",null,a.createElement(r.N_,{to:"/account"},"Add media folders")," ","to get started.")),e[11]=t,e[12]=n,e[13]=i,e[14]=y):y=e[14],e[15]!==E||e[16]!==f||e[17]!==v||e[18]!==y?(b=a.createElement(a.Fragment,null,E,f,v,y),e[15]=E,e[16]=f,e[17]=v,e[18]=y,e[19]=b):b=e[19],b};function Es(e){return e.user}function fs(e){return e.library}function vs(e){return e.songs.result}function ys(e){return e.ui}var bs=n(54669),Cs=n(5668);const ws="wmZzvQLV8SUXBxloByaI",As="OcXId78BLaxBJIqdYIof",Ss="umnUSnD73DO3rWOYPZ9K",Ns="GacRKdveAPO6_ywV1_ca",_s="ctOyiO7TWxvaj2cMva6s",Is="pCDYhCexaZe_zujCsnng",Rs="nDkBZyovKLxzMG7K_3Tg",Ps="Wj7Me9sY8G3TTqTAeAaj",Ls="oyozFDwcV8GMOumLs906",Os="PyOIw1JanvSSiLfkRkZt",Ts="HEBTYqqhv5BzgHhWH7vd",ks="_LtmdT6l38fSEjxPLZod",Ms="SUdDbZdeZwQPymCmhaMA",Vs="YmwxQ7Vy9kTAPCo00I2U",zs="tX8eNQUgD77rREuwXWHO",Hs="gh_SYElq5eTJHE5IZynP",xs="ENoEOjlwEk0jBI45f4pk",Us="_gt_BEXlOrYwzEmK6sQ8",Ds="sSOYgUUl_mJhj1uPzBFs",Gs="ZRVZZ_1kYEKO36fznW79",qs="x1y3JtPFnfVcJSd6mKkB",Fs="pXOty7OejiIGXdAxm6PY",Bs=e=>{const t=(0,s.c)(129),{artist:n,errorMessage:r,isCurrent:l,isErrored:o,isInfoable:i,isMovable:c,isOwner:m,isPlayed:h,isPlaying:g,isRemovable:f,isReplayable:v,isSkippable:y,isStarred:b,isUpcoming:C,onMoveClick:w,onRemoveUpcoming:A,pctPlayed:S,queueId:N,songId:_,title:I,userDateUpdated:R,userDisplayName:P,userId:L,wait:O}=e,[M,V]=(0,a.useState)(!1),z=(0,a.useRef)(!1),H=(0,d.j)();let x;t[0]!==H||t[1]!==r?(x=()=>H((0,k.f1)(r)),t[0]=H,t[1]=r,t[2]=x):x=t[2];const U=x;let D;t[3]!==H||t[4]!==_?(D=()=>H((0,et.XH)(_)),t[3]=H,t[4]=_,t[5]=D):D=t[5];const G=D;let q;t[6]!==w||t[7]!==N?(q=()=>{w(N),V(!1)},t[6]=w,t[7]=N,t[8]=q):q=t[8];const F=q;let B;t[9]!==H||t[10]!==N?(B=()=>{H((0,T.n3)(N)),V(!1)},t[9]=H,t[10]=N,t[11]=B):B=t[11];const W=B;let j;t[12]!==H||t[13]!==_?(j=()=>{H((0,dn.$1)(_)),V(!1)},t[12]=H,t[13]=_,t[14]=j):j=t[14];const Y=j;let Q;t[15]!==H||t[16]!==N?(Q=()=>H((0,dn.Ai)({queueId:N})),t[15]=H,t[16]=N,t[17]=Q):Q=t[17];const K=Q;let J;t[18]!==H?(J=()=>H((0,T.Lx)()),t[18]=H,t[19]=J):J=t[19];const Z=J;let X;t[20]!==H||t[21]!==_?(X=()=>H((0,gr.D)(_)),t[20]=H,t[21]=_,t[22]=X):X=t[22];const $=X;let ee,te,ne;t[23]!==o||t[24]!==i||t[25]!==f||t[26]!==y?(ee=()=>{V(o||i||f||y)},t[23]=o,t[24]=i,t[25]=f,t[26]=y,t[27]=ee):ee=t[27],t[28]===Symbol.for("react.memo_cache_sentinel")?(te=()=>V(!1),t[28]=te):te=t[28],t[29]!==ee?(ne={onSwipedLeft:ee,onSwipedRight:te,preventScrollOnSwipe:!0,trackMouse:!0},t[29]=ee,t[30]=ne):ne=t[30];const ae=(0,or.uh)(ne);let re,se;t[31]!==m||t[32]!==A||t[33]!==P||t[34]!==L?(re=()=>{const e=m?"Remove all your upcoming songs?":`Remove all upcoming songs for "${P}"?`;z.current=!0,confirm(e)&&A(L)},t[31]=m,t[32]=A,t[33]=P,t[34]=L,t[35]=re):re=t[35],t[36]===Symbol.for("react.memo_cache_sentinel")?(se={threshold:700,cancelOnMovement:!0},t[36]=se):se=t[36];const le=(0,bs.HZ)(re,se);let oe,ie;t[37]!==Z||t[38]!==m||t[39]!==A||t[40]!==P||t[41]!==L?(oe=()=>{const e=m?"Skip and remove all your upcoming songs?":`Skip and remove all upcoming songs for "${P}"?`;z.current=!0,confirm(e)&&(A(L),Z())},t[37]=Z,t[38]=m,t[39]=A,t[40]=P,t[41]=L,t[42]=oe):oe=t[42],t[43]===Symbol.for("react.memo_cache_sentinel")?(ie={threshold:700,cancelOnMovement:!0},t[43]=ie):ie=t[43];const ce=(0,bs.HZ)(oe,ie),de=l&&qs,me=l&&!g&&Fs;let ue;t[44]!==de||t[45]!==me?(ue=(0,p.A)(ws,de,me),t[44]=de,t[45]=me,t[46]=ue):ue=t[46];const pe=(l&&S<2?2:S)+"%";let he;t[47]!==pe?(he={"--progress":pe},t[47]=pe,t[48]=he):he=t[48];const ge=he,Ee=h&&Ss;let fe,ve,ye,be,Ce;t[49]!==Ee?(fe=(0,p.A)(Ns,Ee),t[49]=Ee,t[50]=fe):fe=t[50],t[51]!==R||t[52]!==L?(ve=a.createElement(Cs.A,{userId:L,dateUpdated:R}),t[51]=R,t[52]=L,t[53]=ve):ve=t[53],t[54]!==m||t[55]!==C||t[56]!==O?(ye=C&&a.createElement("div",{className:(0,p.A)(Is,m&&ks)},O),t[54]=m,t[55]=C,t[56]=O,t[57]=ye):ye=t[57],t[58]!==ye?(be=a.createElement("div",{className:_s},ye),t[58]=ye,t[59]=be):be=t[59],t[60]!==fe||t[61]!==ve||t[62]!==be?(Ce=a.createElement("div",{className:fe},ve,be),t[60]=fe,t[61]=ve,t[62]=be,t[63]=Ce):Ce=t[63];const we=h&&Ss;let Ae,Se,Ne,_e;t[64]!==we?(Ae=(0,p.A)(Rs,we),t[64]=we,t[65]=Ae):Ae=t[65],t[66]!==I?(Se=a.createElement("div",{className:Ls},I),t[66]=I,t[67]=Se):Se=t[67],t[68]!==n?(Ne=a.createElement("div",{className:Os},n),t[68]=n,t[69]=Ne):Ne=t[69],t[70]!==Se||t[71]!==Ne?(_e=a.createElement("div",{className:Ps},Se,Ne),t[70]=Se,t[71]=Ne,t[72]=_e):_e=t[72];const Ie=m&&ks;let Re,Pe,Le,Oe;t[73]!==Ie?(Re=(0,p.A)(Ts,Ie),t[73]=Ie,t[74]=Re):Re=t[74],t[75]!==Re||t[76]!==P?(Pe=a.createElement("div",{className:Re},P),t[75]=Re,t[76]=P,t[77]=Pe):Pe=t[77],t[78]!==Ae||t[79]!==_e||t[80]!==Pe?(Le=a.createElement("div",{className:Ae,translate:"no"},_e,Pe),t[78]=Ae,t[79]=_e,t[80]=Pe,t[81]=Le):Le=t[81],t[82]!==U||t[83]!==o?(Oe=o&&a.createElement(E,{className:zs,icon:"INFO_OUTLINE",onClick:U}),t[82]=U,t[83]=o,t[84]=Oe):Oe=t[84];const Te=b&&Vs;let ke,Me,Ve,ze,He,xe,Ue,De,Ge,qe,Fe;return t[85]!==Te?(ke=(0,p.A)(Te),t[85]=Te,t[86]=ke):ke=t[86],t[87]!==$||t[88]!==ke?(Me=a.createElement(E,{animateClassName:Gs,className:ke,icon:"STAR_FULL",onClick:$}),t[87]=$,t[88]=ke,t[89]=Me):Me=t[89],t[90]!==G||t[91]!==i?(Ve=i&&a.createElement(E,{className:Vs,"data-hide":!0,icon:"INFO_OUTLINE",onClick:G}),t[90]=G,t[91]=i,t[92]=Ve):Ve=t[92],t[93]!==F||t[94]!==c?(ze=c&&a.createElement(E,{className:(0,p.A)(Us,Vs),"data-hide":!0,icon:"MOVE_TOP",onClick:F}),t[93]=F,t[94]=c,t[95]=ze):ze=t[95],t[96]!==Y||t[97]!==h?(He=h&&a.createElement(E,{className:(0,p.A)(Hs,Vs),"data-hide":!0,icon:"PLUS",onClick:Y}),t[96]=Y,t[97]=h,t[98]=He):He=t[98],t[99]!==W||t[100]!==v?(xe=v&&a.createElement(E,{className:(0,p.A)(Vs,zs),"data-hide":!0,icon:"REPLAY",onClick:W}),t[99]=W,t[100]=v,t[101]=xe):xe=t[101],t[102]!==le||t[103]!==K||t[104]!==f?(Ue=f&&a.createElement(E,(0,u.A)({className:(0,p.A)(Ds,zs),"data-hide":!0,icon:"DELETE",onTouchEnd:e=>{if(z.current)return e.preventDefault(),e.stopPropagation(),void(z.current=!1)},onClick:()=>{z.current?z.current=!1:K()}},le())),t[102]=le,t[103]=K,t[104]=f,t[105]=Ue):Ue=t[105],t[106]!==ce||t[107]!==Z||t[108]!==y?(De=y&&a.createElement(E,(0,u.A)({className:(0,p.A)(xs,zs),"data-hide":!0,icon:"PLAY_NEXT",onTouchEnd:e=>{if(z.current)return e.preventDefault(),e.stopPropagation(),void(z.current=!1)},onClick:()=>{z.current?z.current=!1:Z()}},ce())),t[106]=ce,t[107]=Z,t[108]=y,t[109]=De):De=t[109],t[110]!==M||t[111]!==Oe||t[112]!==Me||t[113]!==Ve||t[114]!==ze||t[115]!==He||t[116]!==xe||t[117]!==Ue||t[118]!==De?(Ge=a.createElement(dr,{btnWidth:56,isExpanded:M,className:Ms},Oe,Me,Ve,ze,He,xe,Ue,De),t[110]=M,t[111]=Oe,t[112]=Me,t[113]=Ve,t[114]=ze,t[115]=He,t[116]=xe,t[117]=Ue,t[118]=De,t[119]=Ge):Ge=t[119],t[120]!==Ce||t[121]!==Le||t[122]!==Ge?(qe=a.createElement("div",{className:As},Ce,Le,Ge),t[120]=Ce,t[121]=Le,t[122]=Ge,t[123]=qe):qe=t[123],t[124]!==ae||t[125]!==ue||t[126]!==ge||t[127]!==qe?(Fe=a.createElement("div",(0,u.A)({},ae,{className:ue,style:ge}),qe),t[124]=ae,t[125]=ue,t[126]=ge,t[127]=qe,t[128]=Fe):Fe=t[128],Fe};var Ws=n(40400);const js="bbUhdC2XhFqBtedX7G5x",Ys="oj9sgd1_DuPZvgyJKc_3",Qs=e=>{e.addEventListener("animationend",e=>e.currentTarget.classList.remove(js)),e.classList.add(js),e.style.removeProperty("opacity")},Ks=(e,t,n)=>{e.addEventListener("animationend",n),e.classList.add(Ys)},Js=(e,t)=>t===e,Zs=e=>{const t=(0,s.c)(6),{queueItems:n}=e,r=(0,d.G)(Xs);let l;t[0]!==n?(l=a.Children.map(n,$s),t[0]=n,t[1]=l):l=t[1];const o=l;let i;return t[2]!==r||t[3]!==o||t[4]!==n?(i=a.createElement(Ws.ZI,{applyTransformOrigin:!1,decisionData:r,flipKey:n},o),t[2]=r,t[3]=o,t[4]=n,t[5]=i):i=t[5],i};function Xs(e){return e.ui.headerHeight}function $s(e){return a.createElement(Ws.lf,{flipId:e.key,key:e.key,onAppear:Qs,onExit:Ks,shouldFlip:Js,translate:!0},a.createElement("div",null,e))}const el=()=>{const e=(0,s.c)(42),t=(0,d.G)(tl),{errorMessage:n,isAtQueueEnd:r,isErrored:l,isPlaying:o,position:i,queueId:c}=(0,d.G)(nl),m=(0,d.G)(b.A),p=(0,d.G)(y.A),h=(0,d.G)(al),g=(0,d.G)(rl),E=(0,d.G)(sl),f=(0,d.G)(C),v=(0,d.j)();let w;e[0]!==v||e[1]!==p.entities||e[2]!==p.result||e[3]!==c?(w=e=>{const t=p.entities[e].userId;let n=c;for(let e=p.result.indexOf(c);e>=0;e--)if(p.entities[p.result[e]].userId===t){n=p.result[e];break}v((0,dn.Pe)({queueId:e,prevQueueId:n}))},e[0]=v,e[1]=p.entities,e[2]=p.result,e[3]=c,e[4]=w):w=e[4];const A=w;let S;e[5]!==v?(S=e=>{v((0,dn.t2)(e))},e[5]=v,e[6]=S):S=e[6];const N=S;let _;if(e[7]!==t||e[8]!==n||e[9]!==A||e[10]!==N||e[11]!==r||e[12]!==l||e[13]!==o||e[14]!==m||e[15]!==i||e[16]!==p.entities||e[17]!==p.result||e[18]!==c||e[19]!==h||e[20]!==g||e[21]!==E||e[22]!==f){let s;e[24]!==t||e[25]!==n||e[26]!==A||e[27]!==N||e[28]!==r||e[29]!==l||e[30]!==o||e[31]!==m||e[32]!==i||e[33]!==p.entities||e[34]!==c||e[35]!==h||e[36]!==g||e[37]!==E||e[38]!==f?(s=e=>{const s=p.entities[e],d=h.entities[s.songId].duration,v=e===c&&!r,y=e!==c&&!m.includes(e),b=s.userId===E.userId;return a.createElement(Bs,(0,u.A)({},s,{artist:t.entities[h.entities[s.songId].artistId].name,errorMessage:v&&n?n:"",isCurrent:v,key:e,isErrored:v&&l,isInfoable:E.isAdmin,isMovable:y&&(b||E.isAdmin),isOwner:b,isPlayed:!y&&!v,isPlaying:v&&o,isRemovable:y&&(b||E.isAdmin),isReplayable:(!y||v)&&E.isAdmin,isSkippable:v&&(b||E.isAdmin),isStarred:g.includes(s.songId),isUpcoming:y,pctPlayed:v?i/d*100:0,title:h.entities[s.songId].title,wait:Se(f[e],!0),onMoveClick:A,onRemoveUpcoming:N}))},e[24]=t,e[25]=n,e[26]=A,e[27]=N,e[28]=r,e[29]=l,e[30]=o,e[31]=m,e[32]=i,e[33]=p.entities,e[34]=c,e[35]=h,e[36]=g,e[37]=E,e[38]=f,e[39]=s):s=e[39],_=p.result.map(s),e[7]=t,e[8]=n,e[9]=A,e[10]=N,e[11]=r,e[12]=l,e[13]=o,e[14]=m,e[15]=i,e[16]=p.entities,e[17]=p.result,e[18]=c,e[19]=h,e[20]=g,e[21]=E,e[22]=f,e[23]=_}else _=e[23];const I=_;let R;return e[40]!==I?(R=a.createElement(Zs,{queueItems:I}),e[40]=I,e[41]=R):R=e[41],R};function tl(e){return e.artists}function nl(e){return e.status}function al(e){return e.songs}function rl(e){return(0,Ja.wd)(e.userStars).starredSongs}function sl(e){return e.user}const ll="SF0X5MbNRNL3euuIjCwB",ol=()=>{const e=(0,s.c)(22),{innerWidth:t,innerHeight:n,headerHeight:l,footerHeight:o}=(0,d.G)(il),i=(0,d.G)(cl),c=(0,d.G)(dl),m=(0,d.G)(y.A),u=(0,d.G)(ml),p=(0,a.useRef)(null);let h,g,E,f,v,b,C,w;return e[0]!==m||e[1]!==u?(h=()=>{if(p.current){const e=m.result.indexOf(u);p.current.scrollTop=92*e}},e[0]=m,e[1]=u,e[2]=h):h=e[2],e[3]===Symbol.for("react.memo_cache_sentinel")?(g=[],e[3]=g):g=e[3],(0,a.useEffect)(h,g),e[4]!==o||e[5]!==l||e[6]!==n||e[7]!==t?(E={paddingTop:l,paddingBottom:o,width:t,height:n},e[4]=o,e[5]=l,e[6]=n,e[7]=t,e[8]=E):E=e[8],e[9]!==i?(f=!i&&a.createElement(ls,null,a.createElement("h1",null,"Get a Room!"),a.createElement("p",null,a.createElement(r.N_,{to:"/account"},"Sign in to a room")," ","to start queueing songs.")),e[9]=i,e[10]=f):f=e[10],e[11]!==c?(v=c&&a.createElement(ps,null),e[11]=c,e[12]=v):v=e[12],e[13]!==c||e[14]!==m?(b=!c&&0===m.result.length&&a.createElement(ls,null,a.createElement("h1",null,"Queue Empty"),a.createElement("p",null,"Tap a song in the"," ",a.createElement(r.N_,{to:"/library"},"library")," ","to queue it.")),e[13]=c,e[14]=m,e[15]=b):b=e[15],e[16]===Symbol.for("react.memo_cache_sentinel")?(C=a.createElement(el,null),e[16]=C):C=e[16],e[17]!==E||e[18]!==f||e[19]!==v||e[20]!==b?(w=a.createElement("div",{className:ll,ref:p,style:E},f,v,b,C),e[17]=E,e[18]=f,e[19]=v,e[20]=b,e[21]=w):w=e[21],w};function il(e){return e.ui}function cl(e){return!!e.user.roomId}function dl(e){return(0,Ja.wd)(e.queue).isLoading}function ml(e){return e.status.queueId}const ul=a.lazy(()=>Promise.all([n.e(447),n.e(958)]).then(n.bind(n,13958))),pl=()=>{const e=(0,s.c)(5);let t,n,l,o,i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=a.createElement(r.qh,{path:"/account",element:a.createElement(ja,null)}),e[0]=t):t=e[0],e[1]===Symbol.for("react.memo_cache_sentinel")?(n=a.createElement(r.qh,{path:"/library",element:a.createElement(hl,{path:"/library",redirectTo:"/account"},a.createElement(gs,null))}),e[1]=n):n=e[1],e[2]===Symbol.for("react.memo_cache_sentinel")?(l=a.createElement(r.qh,{path:"/queue",element:a.createElement(hl,{path:"/queue",redirectTo:"/account"},a.createElement(ol,null))}),e[2]=l):l=e[2],e[3]===Symbol.for("react.memo_cache_sentinel")?(o=a.createElement(r.qh,{path:"/player",element:a.createElement(hl,{path:"/player",redirectTo:"/account"},a.createElement(ul,null))}),e[3]=o):o=e[3],e[4]===Symbol.for("react.memo_cache_sentinel")?(i=a.createElement(r.BV,null,t,n,l,o,a.createElement(r.qh,{path:"/",element:a.createElement(r.C5,{to:{pathname:"/library",search:window.location.search},replace:!0})})),e[4]=i):i=e[4],i},hl=e=>{const t=(0,s.c)(10),{children:n,path:l,redirectTo:o}=e,{isAdmin:i,userId:c}=(0,d.G)(gl),m=(0,r.zy)();if("/player"===l&&!i){let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=a.createElement(r.C5,{to:"/",replace:!0}),t[0]=e):e=t[0],e}if(null===c){let e,n,s;if(t[1]!==m.search||t[2]!==l||t[3]!==o){const a=new URLSearchParams(m.search);a.set("redirect",l),e=r.C5,n=o+"?",s=a.toString(),t[1]=m.search,t[2]=l,t[3]=o,t[4]=e,t[5]=n,t[6]=s}else e=t[4],n=t[5],s=t[6];const i=n+s;let c;return t[7]!==e||t[8]!==i?(c=a.createElement(e,{to:i,replace:!0}),t[7]=e,t[8]=i,t[9]=c):c=t[9],c}return n};function gl(e){return e.user}const El=()=>{const e=(0,s.c)(18),t=(0,r.RQ)("/player"),n=(0,d.j)(),l=(0,a.useRef)(null),o=(0,a.useRef)(null);let i,c;e[0]!==n?(i={onResize:e=>{const{height:t}=e;n((0,k.DP)(t))},ref:l},e[0]=n,e[1]=i):i=e[1],(0,m.A)(i),e[2]!==n?(c={onResize:e=>{const{height:t}=e;n((0,k.NJ)(t))},ref:o},e[2]=n,e[3]=c):c=e[3],(0,m.A)(c);const u=(0,d.G)(fl);let p;e[4]!==n?(p=()=>n((0,k.T6)()),e[4]=n,e[5]=p):p=e[5];const h=p;let g,f,v,y,b,C;return e[6]===Symbol.for("react.memo_cache_sentinel")?(g=a.createElement(He,{ref:l}),f=a.createElement(pl,null),e[6]=g,e[7]=f):(g=e[6],f=e[7]),e[8]!==t?(v=!t&&a.createElement(Ye,{ref:o}),e[8]=t,e[9]=v):v=e[9],e[10]===Symbol.for("react.memo_cache_sentinel")?(y=a.createElement(st,null),e[10]=y):y=e[10],e[11]!==h||e[12]!==u.errorMessage||e[13]!==u.isErrored?(b=u.isErrored&&a.createElement(X,{title:"Oops...",onClose:h,buttons:a.createElement(E,{variant:"primary",onClick:h},"OK")},a.createElement("p",{style:{WebkitUserSelect:"text",userSelect:"text"}},u.errorMessage)),e[11]=h,e[12]=u.errorMessage,e[13]=u.isErrored,e[14]=b):b=e[14],e[15]!==v||e[16]!==b?(C=a.createElement(a.Fragment,null,g,f,v,y,b),e[15]=v,e[16]=b,e[17]=C):C=e[17],C};function fl(e){return e.ui}const vl=()=>{const e=(0,s.c)(3);let t,n,r;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=a.createElement(ps,null),n=c.A.get(),e[0]=t,e[1]=n):(t=e[0],n=e[1]),e[2]===Symbol.for("react.memo_cache_sentinel")?(r=a.createElement(l.Kq,{store:i.A},a.createElement(o.Q,{loading:t,persistor:n},a.createElement(a.Suspense,{fallback:a.createElement(ps,null)},a.createElement(El,null)))),e[2]=r):r=e[2],r},yl=new URL(document.baseURI).pathname,bl=(0,r.Ys)([{path:"*",element:a.createElement(vl,null)}],{basename:yl})},77170(e,t,n){n.d(t,{A:()=>a});class a{constructor(e=""){this.prefix=e,this.options={credentials:"same-origin"}}put=(e,t={})=>this.request("PUT",e,t);post=(e,t={})=>this.request("POST",e,t);get=(e,t={})=>this.request("GET",e,t);delete=(e,t={})=>this.request("DELETE",e,t);request=async(e,t,n={})=>{const a={...this.options,...n,method:e};"object"!=typeof a.body||a.body instanceof FormData||(a.headers=new Headers({"Content-Type":"application/json"}),a.body=JSON.stringify(a.body));const r=await fetch(`${document.baseURI}api/${this.prefix}${t}`,a);if(r.ok){const e=r.headers.get("Content-Type");return e&&e.includes("application/json")?r.json():r}const s=await r.text();throw new Error(s)}}},49905(e,t,n){n.d(t,{A:()=>a});const a=(0,n(23508).Ay)({autoConnect:!1,path:new URL(document.baseURI).pathname+"socket.io"})},95099(e,t,n){var a=n(96540),r=n(5338),s=n(35570),l=n(85555),o=n(49905),i=n(87161),c=n(77759);n(32681).A.init(l.A,()=>{null!==l.A.getState().user.userId&&(l.A.dispatch((0,c.cH)()),o.A.open())}),o.A.on("reconnect_attempt",()=>{l.A.dispatch((0,c.cH)())}),(0,r.H)(document.getElementById("root")).render(a.createElement(a.StrictMode,null,a.createElement(s.pg,{router:i.A})))},47768(e,t,n){n.d(t,{AR:()=>s,Ay:()=>u,Ic:()=>d,RH:()=>l,lo:()=>c,wk:()=>o,yy:()=>m});var a=n(15452),r=n(42730);const s=(0,a.VP)(r.xd),l=(0,a.VP)(r.fm),o=(0,a.VP)(r.hC),i=(0,a.VP)(r.tA),c=(0,a.VP)(r.Jc),d=(0,a.VP)(r.UD),m=(0,a.VP)(r.lq,e=>({payload:e,meta:{throttle:{wait:350,leading:!1}}})),u=(0,a.vy)({isLoading:!0,version:0,filterStr:"",filterStarred:!1,scrollRow:0,expandedArtists:[],expandedArtistResults:[]},e=>{e.addCase(m,(e,{payload:t})=>{e.filterStr=t}).addCase(c,e=>{e.filterStr=""}).addCase(d,e=>{e.filterStarred=!e.filterStarred}).addCase(s,(e,{payload:t})=>{e.scrollRow=t}).addCase(l,(e,{payload:t})=>{const n=e.expandedArtists.indexOf(t);-1===n?e.expandedArtists.push(t):e.expandedArtists.splice(n,1)}).addCase(o,(e,{payload:t})=>{const n=e.expandedArtistResults.indexOf(t);-1===n?e.expandedArtistResults.push(t):e.expandedArtistResults.splice(n,1)}).addCase(i,(e,{payload:t})=>({...e,isLoading:!1,version:t.version}))})},38180(e,t,n){n.d(t,{$1:()=>d,Ai:()=>i,Ay:()=>u,Pe:()=>o,t2:()=>m});var a=n(15452),r=n(33054),s=n(42730);const l=(0,a.VP)(s.T_),o=(0,a.VP)(s.Al),i=(0,a.VP)(s.vJ),c=(0,a.VP)(s.bX),d=(0,a.VP)(s.Un,e=>({payload:{songId:e},meta:{isOptimistic:!0}})),m=e=>(t,n)=>{const a=(0,r.A)(n(),e);t(i({queueId:a}))},u=(0,a.vy)({isLoading:!0,result:[],entities:{}},e=>{e.addCase(d,(e,{payload:t})=>{const n=e.result.length?e.result[e.result.length-1]+1:1;e.result.push(n),e.entities[n]={...t,queueId:n,prevQueueId:n-1||null,isOptimistic:!0}}).addCase(c,(e,{payload:t})=>({isLoading:!1,result:t.result,entities:t.entities})).addCase(l,e=>{e.result=[],e.entities={}})})},46685(e,t,n){n.d(t,{A:()=>a});const a=(0,n(25508).Mz)([e=>e.status.historyJSON],e=>JSON.parse(e))},32509(e,t,n){n.d(t,{A:()=>l});var a=n(9934),r=n(25508),s=n(46685);const l=(0,r.Mz)([e=>(0,a.wd)(e.queue).result,e=>(0,a.wd)(e.queue).entities,s.A,e=>e.status.queueId,e=>e.status.nextUserId],(e,t,n,a,r)=>{if(n=n.filter(t=>e.includes(t)),t[a]&&-1===n.lastIndexOf(a)&&n.push(a),null!==r)for(const a of e)if(!n.includes(a)&&!0!==t[a].isOptimistic&&t[a].userId===r){n.push(a);break}const s=new Map,l=[],o=n.map(e=>t[e].userId);for(e.forEach(e=>{if(n.includes(e)||!0===t[e].isOptimistic)return;const a=t[e].userId;s.set(a,s.has(a)?[...s.get(a),e]:[e])});s.size;){let e,t=-1;for(const n of s.keys()){const a=o.lastIndexOf(n),r=-1===a?1/0:o.length-a;r>t&&(t=r,e=n)}const n=s.get(e),a=n.shift();n.length?s.set(e,n):s.delete(e),o.push(e),l.push(a)}return{result:n.concat(l),entities:t}})},33054(e,t,n){n.d(t,{A:()=>l});var a=n(9934),r=n(25508),s=n(46685);const l=(0,r.Mz)([e=>(0,a.wd)(e.queue).result,e=>(0,a.wd)(e.queue).entities,s.A,e=>e.status.queueId,(e,t)=>t],(e,t,n,a,r)=>e.filter(e=>{const s=t[e];return!0!==s.isOptimistic&&s.userId===r&&e!==a&&!n.includes(e)}))},32681(e,t,n){n.d(t,{A:()=>r});var a=n(70960);class r{static init(e,t){return this.instance=(0,a.GM)(e,null,t),this.instance}static get(){if(!this.instance)throw new Error("persistor not initialized");return this.instance}}},76140(e,t,n){n.d(t,{G:()=>s,j:()=>r});var a=n(71468);const r=a.wA,s=a.d4},99996(e,t,n){n.d(t,{Ah:()=>c,Ay:()=>f,I8:()=>o,PA:()=>h,dJ:()=>p,fm:()=>E,gL:()=>i,mN:()=>g,yx:()=>u});var a=n(15452),r=n(42730);const s=new(n(77170).A)("prefs"),l=(0,a.VP)(r.T_),o=(0,a.VP)(r.Ac),i=(0,a.VP)(r.NT),c=(0,a.VP)(r.Xw),d=(0,a.VP)(r.kY),m=(0,a.VP)(r.$W),u=(0,a.zD)(r.BD,async({pathId:e,data:t},n)=>{const a=await s.put(`/path/${e}`,{body:t});n.dispatch(i(a))}),p=(0,a.zD)(r.J$,async(e,t)=>{const n=await s.get("");return n.isFirstRun&&null!==t.getState().user.userId&&t.dispatch(l()),n}),h=(0,a.zD)(r.gv,async e=>await s.get(`/path/${e}/scan`)),g=(0,a.zD)(r.gv,async()=>await s.get("/paths/scan")),E=(0,a.zD)(r.sr,async()=>await s.get("/paths/scan/stop")),f=(0,a.vy)({isScanning:!1,isReplayGainEnabled:!1,paths:{result:[],entities:{}},roles:{result:[],entities:{}},scannerPct:0,scannerText:""},e=>{e.addCase(p.fulfilled,(e,{payload:t})=>({...e,...t})).addCase(i,(e,{payload:t})=>({...e,...t})).addCase(d,(e,{payload:t})=>({...e,...t})).addCase(m,(e,{payload:t})=>({...e,isScanning:t.isScanning,scannerPct:t.pct,scannerText:t.text}))})},80470(e,t,n){n.d(t,{$R:()=>p,Ay:()=>v,Mv:()=>h,RM:()=>o,SV:()=>m,ab:()=>c,uE:()=>E,v4:()=>u,x1:()=>i,xX:()=>d});var a=n(15452),r=n(42730);const s=new(n(77170).A)("rooms"),l=(0,a.VP)(r.pg),o=(0,a.zD)(r.VW,async()=>await s.get("")),i=(0,a.zD)(r.VW,async(e,t)=>{const n=t.getState().user.roomId;return"number"!=typeof n?Promise.reject("Please sign into a room"):await s.get(`/${n}`)}),c=(0,a.zD)(r.jI,async(e,t)=>{const n=await s.post("",{body:e});t.dispatch(l(n)),t.dispatch(p())}),d=(0,a.zD)(r.gU,async({roomId:e,data:t},n)=>{const a=await s.put(`/${e}`,{body:t});n.dispatch(l(a)),n.dispatch(p())}),m=(0,a.zD)(r.ln,async(e,t)=>{const n=await s.delete(`/${e}`);t.dispatch(l(n)),t.dispatch(p())}),u=(0,a.VP)(r.P8),p=(0,a.VP)(r.lk),h=(0,a.VP)(r.Gg),g=(0,a.VP)(r.e_);function E(e,t){return n=>{n({type:r.Ig,payload:{roomId:e,prefs:t},meta:{throttle:{wait:200,leading:!0}}})}}const f={result:[],entities:{},filterStatus:"open",isEditorOpen:!1},v=(0,a.vy)(f,e=>{e.addCase(o.fulfilled,(e,{payload:t})=>({...e,...t})).addCase(l,(e,{payload:t})=>({...e,...t})).addCase(u,e=>{e.isEditorOpen=!0}).addCase(p,e=>{e.isEditorOpen=!1}).addCase(h,(e,{payload:t})=>{e.filterStatus=t}).addCase(g,(e,{payload:t})=>{const n=t.roomId;e.entities[n]&&(e.entities[n].prefs=t.prefs)}).addCase(r.T_,()=>({...f}))})},89853(e,t,n){n.d(t,{Ay:()=>d,XH:()=>o,Zi:()=>c,ks:()=>i});var a=n(15452),r=n(77170),s=n(42730);const l=new r.A,o=(0,a.zD)(s.Pg,async e=>await l.get(`song/${e}`)),i=(0,a.VP)(s.kW),c=(0,a.zD)(s.Ah,async({songId:e,mediaId:t,isPreferred:n},a)=>{await l.request(n?"PUT":"DELETE",`media/${t}/prefer`),a.dispatch(o(e))}),d=(0,a.vy)({isLoading:!1,isVisible:!1,songId:null,media:{result:[],entities:{}}},e=>{e.addCase(o.pending,(e,{meta:t})=>{e.isLoading=!0,e.isVisible=!0,e.songId=t.arg}).addCase(o.fulfilled,(e,{payload:t})=>{e.isLoading=!1,e.media=t}).addCase(o.rejected,e=>{e.isLoading=!1,e.isVisible=!1}).addCase(i,e=>{e.isVisible=!1})})},88146(e,t,n){n.d(t,{Ay:()=>p,Lx:()=>o,MP:()=>m,ag:()=>u,cd:()=>s,n3:()=>d,wr:()=>l});var a=n(15452),r=n(42730);const s=(0,a.VP)(r.K9),l=(0,a.VP)(r.qd),o=(0,a.VP)(r.Bw),i=(0,a.VP)(r.PQ),c=(0,a.VP)(r.cP),d=(0,a.VP)(r.F7,e=>({payload:{queueId:e}})),m=(0,a.VP)(r.gw,e=>({payload:e,meta:{throttle:{wait:200,leading:!1}}})),u=(0,a.VP)(r.YM,e=>({payload:e,meta:{throttle:{wait:200,leading:!0}}})),p=(0,a.vy)({cdgAlpha:0,cdgSize:.8,errorMessage:"",historyJSON:"[]",isAtQueueEnd:!1,isErrored:!1,isPlayerPresent:!1,isPlaying:!1,isVideoKeyingEnabled:!1,isWebGLSupported:!1,mediaType:null,mp4Alpha:1,nextUserId:null,position:0,queueId:-1,visualizer:{},volume:1},e=>{e.addCase(c,e=>{e.isPlayerPresent=!1}).addCase(i,(e,{payload:t})=>({...e,...t,isPlayerPresent:!0}))})},85134(e,t,n){n.d(t,{Ay:()=>g,DP:()=>i,Dx:()=>m,L5:()=>d,NJ:()=>c,T6:()=>l,f1:()=>o});var a=n(15452),r=n(42730);let s;const l=(0,a.VP)(r.tx),o=(0,a.VP)(r.$h),i=(0,a.zD)("ui/SET_HEADER_HEIGHT",async(e,{dispatch:t,getState:n})=>{n().ui.headerHeight!==e&&t({type:r.$Q,payload:e??0})}),c=(0,a.zD)("ui/SET_HEADER_HEIGHT",async(e,{dispatch:t,getState:n})=>{n().ui.footerHeight!==e&&t({type:r.Hz,payload:e??0})}),d=(0,a.VP)(r.Df,e=>({payload:e,meta:{throttle:{wait:200,leading:!1}}})),m=e=>{e?(clearTimeout(s),s=null,document.body.classList.add("scroll-lock")):s||(s=setTimeout(()=>{s=null,document.body.classList.remove("scroll-lock")},200))},u=(0,a.VP)(r.Hz),p=(0,a.VP)(r.$Q),h={isErrored:!1,errorMessage:null,footerHeight:0,headerHeight:0,innerWidth:window.innerWidth,innerHeight:window.innerHeight,contentWidth:Math.min(window.innerWidth,768)},g=(0,a.vy)(h,e=>{e.addCase(p,(e,{payload:t})=>{e.headerHeight=t}).addCase(u,(e,{payload:t})=>{e.footerHeight=t}).addCase(o,(e,{payload:t})=>{e.isErrored=!0,e.errorMessage=t}).addCase(l,e=>{e.isErrored=!1}).addCase(d,(e,{payload:t})=>{e.innerWidth=t.innerWidth,e.innerHeight=t.innerHeight,e.contentWidth=Math.min(t.innerWidth,768)}).addMatcher(e=>!!e.error,(e,{error:t})=>{e.isErrored=!0,e.errorMessage=t.message??t})})},77759(e,t,n){n.d(t,{Ay:()=>N,_m:()=>v,aw:()=>f,cH:()=>w,iD:()=>g,mb:()=>b,z0:()=>y});var a=n(15452),r=n(70960),s=n(69282),l=n(49905),o=n(87161),i=n(77170),c=n(32681),d=n(99996),m=n(42730);const u=new i.A(""),p=new URL(document.baseURI).pathname,h=(0,a.VP)(m.qx),g=(0,a.zD)(m.S3,async(e,t)=>{const n=await u.post("login",{body:e});c.A.get().purge(),t.dispatch(h(n)),t.dispatch((0,d.dJ)()),t.dispatch(w()),l.A.open();const a=new URLSearchParams(window.location.search).get("redirect");a&&o.A.navigate(p.replace(/\/$/,"")+a)}),E=(0,a.VP)(m.T_),f=(0,a.zD)(m.T_,async(e,t)=>{try{await u.get("logout")}catch{}t.dispatch(E()),c.A.get().purge(),l.A.close()}),v=(0,a.zD)(m.ZC,async(e,t)=>{const n=t.getState().prefs.isFirstRun,a=await u.post(n?"setup":"user",{body:e});c.A.get().purge(),t.dispatch(h(a)),t.dispatch((0,d.dJ)()),t.dispatch(w()),l.A.open();const r=new URLSearchParams(window.location.search).get("redirect");r&&o.A.navigate(p.replace(/\/$/,"")+r)}),y=(0,a.zD)(m.ae,async(e,t)=>{const{userId:n}=t.getState().user,a=await u.put(`user/${n}`,{body:e});t.dispatch(h(a)),alert("Account updated successfully.")}),b=(0,a.zD)(m.c8,async(e,t)=>{try{const e=await u.get("user");t.dispatch(h(e))}catch{}}),C=(0,a.VP)(m.tB),w=(0,a.zD)("user/SOCKET_CONNECT",async(e,{dispatch:t,getState:n})=>{const a={library:n().library.version,stars:n().starCounts.version};t(C(a)),l.A.io.opts.query=a}),A={userId:null,username:null,name:null,roomId:null,isAdmin:!1,isGuest:!1,dateCreated:0,dateUpdated:0},S=(0,a.vy)(A,e=>{e.addCase(h,(e,{payload:t})=>({...e,...t})).addCase(m.T_,()=>({...A})).addCase(m.OL,()=>({...A}))}),N=(0,r.rL)({key:"user",storage:s.A},S)},8870(e,t,n){n.d(t,{A:()=>g,D:()=>o});var a=n(15452),r=n(70960),s=n(9934),l=n(42730);const o=(0,a.zD)("userStars/toggleSongStarred",async(e,{dispatch:t,getState:n})=>{(0,s.wd)(n().userStars).starredSongs.includes(e)?t(c(e)):t(i(e))}),i=(0,a.VP)(l.H8,e=>({payload:{songId:e},meta:{isOptimistic:!0}})),c=(0,a.VP)(l.s4,e=>({payload:{songId:e},meta:{isOptimistic:!0}})),d=(0,a.VP)(l.OA),m=(0,a.VP)(l.DN),u=(0,a.VP)(l.bA),p=(0,a.VP)(l.qx),h={userId:null,starredArtists:[],starredSongs:[]},g=(0,a.vy)(h,e=>{e.addCase(i,(e,{payload:t})=>{e.starredSongs.push(t.songId)}).addCase(c,(e,{payload:t})=>{e.starredSongs.splice(e.starredSongs.indexOf(t.songId),1)}).addCase(d,(e,{payload:t})=>{t.userId!==e.userId||e.starredSongs.includes(t.songId)||e.starredSongs.push(t.songId)}).addCase(m,(e,{payload:t})=>{t.userId===e.userId&&e.starredSongs.includes(t.songId)&&e.starredSongs.splice(e.starredSongs.indexOf(t.songId),1)}).addCase(u,(e,{payload:t})=>({...e,...t})).addCase(p,(e,{payload:t})=>{e.userId=t.userId}).addCase(r.r2,(e,{payload:t})=>{"number"==typeof t?.userId&&(e.userId=t.userId)}).addCase(l.T_,()=>({...h})).addCase(l.OL,()=>({...h}))})},37655(e,t,n){n.d(t,{A:()=>S});var a=n(15452),r=n(9934),s=n(42730);const l=(0,a.VP)(s.tA),o=(0,a.vy)({result:[],entities:{}},e=>{e.addCase(l,(e,{payload:t})=>({result:t.artists.result,entities:t.artists.entities}))});var i=n(47768),c=n(99996),d=n(38180),m=n(80470);const u=(0,a.VP)(s.dh),p=(0,a.VP)(s.tA),h=(0,a.vy)({result:[],entities:{}},e=>{e.addCase(p,(e,{payload:t})=>({result:t.songs.result,entities:t.songs.entities})).addCase(u,(e,{payload:t})=>({...e,entities:{...e.entities,...t}}))});var g=n(89853);const E=(0,a.VP)(s.OA),f=(0,a.VP)(s.DN),v=(0,a.VP)(s.Nz),y=(0,a.vy)({artists:{},songs:{},version:0},e=>{e.addCase(E,(e,{payload:t})=>{e.songs[t.songId]=e.songs[t.songId]+1||1}).addCase(f,(e,{payload:t})=>{e.songs[t.songId]=Math.max(e.songs[t.songId]-1,0)}).addCase(v,(e,{payload:t})=>({...t}))});var b=n(88146),C=n(85134),w=n(77759),A=n(8870);const S=(0,a.fP)({artists:o,library:i.Ay,prefs:c.Ay,queue:(0,r.yi)(d.Ay),rooms:m.Ay,songs:h,songInfo:g.Ay,starCounts:y,status:b.Ay,ui:C.Ay,user:w.Ay,userStars:(0,r.yi)(A.A)}).withLazyLoadedSlices()},85555(e,t,n){n.d(t,{A:()=>h});var a=n(15452),r=n(37655),s=n(49905),l=n(9934);let o=0;var i=n(44063),c=n(70960),d=n(85134);window.addEventListener("resize",()=>p.dispatch((0,d.L5)({innerWidth:window.innerWidth,innerHeight:window.innerHeight})));const m=(0,i.Ay)(1e3,{leading:!0,trailing:!0}),u=function(e,t){return n=>(e.on("action",e=>n.dispatch(e)),n=>a=>{if(!a.type||!a.type.startsWith(t))return n(a);const r="meta"in a&&(a.meta?.isOptimistic??!1);if(e.emit("action",a,e=>{"object"==typeof e&&"string"==typeof e.type&&(r&&(e.meta={..."meta"in e&&"object"==typeof e.meta?e.meta:{},optimistic:e.error?{type:l.tH,id:o}:{type:l.cJ,id:o}}),n(e))}),!r)return n(a);o++,n({...a,meta:{...a.meta,optimistic:{type:l.Q,id:o}}})})}(s.A,"server/"),p=(0,a.U1)({reducer:r.A,middleware:e=>e({serializableCheck:{ignoredActions:[c.ZM,c.r2,c.Hz,c.DY,c.Cq,c.eY]}}).concat(m,u)});const h=p}},l={};function o(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}};return s[e].call(n.exports,n,n.exports,o),n.exports}o.m=s,e=[],o.O=(t,n,a,r)=>{if(!n){var s=1/0;for(d=0;d<e.length;d++){for(var[n,a,r]=e[d],l=!0,i=0;i<n.length;i++)(!1&r||s>=r)&&Object.keys(o.O).every(e=>o.O[e](n[i]))?n.splice(i--,1):(l=!1,r<s&&(s=r));if(l){e.splice(d--,1);var c=a();void 0!==c&&(t=c)}}return t}r=r||0;for(var d=e.length;d>0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[n,a,r]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var r=Object.create(null);o.r(r);var s={};t=t||[null,n({}),n([]),n(n)];for(var l=2&a&&e;("object"==typeof l||"function"==typeof l)&&!~t.indexOf(l);l=n(l))Object.getOwnPropertyNames(l).forEach(t=>s[t]=()=>e[t]);return s.default=()=>e,o.d(r,s),r},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,n)=>(o.f[n](e,t),t),[])),o.u=e=>e+"."+o.h()+".js",o.miniCssF=e=>e+"."+o.h()+".css",o.h=()=>"094443a82e8dc123bed9",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},r="karaoke-eternal:",o.l=(e,t,n,s)=>{if(a[e])a[e].push(t);else{var l,i;if(void 0!==n)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var m=c[d];if(m.getAttribute("src")==e||m.getAttribute("data-webpack")==r+n){l=m;break}}l||(i=!0,(l=document.createElement("script")).charset="utf-8",o.nc&&l.setAttribute("nonce",o.nc),l.setAttribute("data-webpack",r+n),l.src=e),a[e]=[t];var u=(t,n)=>{l.onerror=l.onload=null,clearTimeout(p);var r=a[e];if(delete a[e],l.parentNode&&l.parentNode.removeChild(l),r&&r.forEach(e=>e(n)),t)return t(n)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=u.bind(null,l.onerror),l.onload=u.bind(null,l.onload),i&&document.head.appendChild(l)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var a=n.length-1;a>-1&&(!e||!/^http(s?):/.test(e));)e=n[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{if("undefined"!=typeof document){var e=e=>new Promise((t,n)=>{var a=o.miniCssF(e),r=o.p+a;if(((e,t)=>{for(var n=document.getElementsByTagName("link"),a=0;a<n.length;a++){var r=(l=n[a]).getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(r===e||r===t))return l}var s=document.getElementsByTagName("style");for(a=0;a<s.length;a++){var l;if((r=(l=s[a]).getAttribute("data-href"))===e||r===t)return l}})(a,r))return t();((e,t,n,a,r)=>{var s=document.createElement("link");s.rel="stylesheet",s.type="text/css",o.nc&&(s.nonce=o.nc),s.onerror=s.onload=n=>{if(s.onerror=s.onload=null,"load"===n.type)a();else{var l=n&&n.type,o=n&&n.target&&n.target.href||t,i=new Error("Loading CSS chunk "+e+" failed.\n("+l+": "+o+")");i.name="ChunkLoadError",i.code="CSS_CHUNK_LOAD_FAILED",i.type=l,i.request=o,s.parentNode&&s.parentNode.removeChild(s),r(i)}},s.href=t,n?n.parentNode.insertBefore(s,n.nextSibling):document.head.appendChild(s)})(e,r,null,t,n)}),t={792:0};o.f.miniCss=(n,a)=>{t[n]?a.push(t[n]):0!==t[n]&&{851:1,958:1}[n]&&a.push(t[n]=e(n).then(()=>{t[n]=0},e=>{throw delete t[n],e}))}}})(),(()=>{var e={792:0};o.f.j=(t,n)=>{var a=o.o(e,t)?e[t]:void 0;if(0!==a)if(a)n.push(a[2]);else{var r=new Promise((n,r)=>a=e[t]=[n,r]);n.push(a[2]=r);var s=o.p+o.u(t),l=new Error;o.l(s,n=>{if(o.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var r=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;l.message="Loading chunk "+t+" failed.\n("+r+": "+s+")",l.name="ChunkLoadError",l.type=r,l.request=s,a[1](l)}},"chunk-"+t,t)}},o.O.j=t=>0===e[t];var t=(t,n)=>{var a,r,[s,l,i]=n,c=0;if(s.some(t=>0!==e[t])){for(a in l)o.o(l,a)&&(o.m[a]=l[a]);if(i)var d=i(o)}for(t&&t(n);c<s.length;c++)r=s[c],o.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return o.O(d)},n=self.webpackChunkkaraoke_eternal=self.webpackChunkkaraoke_eternal||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var i=o.O(void 0,[240],()=>o(95099));i=o.O(i)})();