karaoke-eternal 1.0.0
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.
- package/LICENSE +5 -0
- package/README.md +49 -0
- package/assets/app.ico +0 -0
- package/assets/app.png +0 -0
- package/assets/favicon.ico +0 -0
- package/assets/mic-blackTemplate.png +0 -0
- package/assets/mic-blackTemplate@2x.png +0 -0
- package/assets/mic-white.png +0 -0
- package/assets/mic-white@2x.png +0 -0
- package/assets/robots.txt +2 -0
- package/build/267.4be526e3a94d53aeceae.js +1 -0
- package/build/591.4be526e3a94d53aeceae.js +1 -0
- package/build/598.4be526e3a94d53aeceae.css +5 -0
- package/build/598.4be526e3a94d53aeceae.js +1 -0
- package/build/799.4be526e3a94d53aeceae.js +1 -0
- package/build/7ce9eb3fe454f54745a4.woff2 +0 -0
- package/build/845.4be526e3a94d53aeceae.css +132 -0
- package/build/845.4be526e3a94d53aeceae.js +1 -0
- package/build/a35814dd9eb496e3d7cc.woff2 +0 -0
- package/build/e419b95dccb58b362811.woff2 +0 -0
- package/build/index.html +1 -0
- package/build/licenses.txt +1400 -0
- package/build/main.4be526e3a94d53aeceae.css +2034 -0
- package/build/main.4be526e3a94d53aeceae.js +1 -0
- package/package.json +144 -0
- package/server/Library/Library.js +340 -0
- package/server/Library/index.js +3 -0
- package/server/Library/ipc.js +18 -0
- package/server/Library/router.js +27 -0
- package/server/Library/socket.js +47 -0
- package/server/Media/Media.js +207 -0
- package/server/Media/index.js +3 -0
- package/server/Media/ipc.js +19 -0
- package/server/Media/router.js +99 -0
- package/server/Player/socket.js +78 -0
- package/server/Prefs/Prefs.js +165 -0
- package/server/Prefs/index.js +3 -0
- package/server/Prefs/router.js +124 -0
- package/server/Prefs/socket.js +68 -0
- package/server/Queue/Queue.js +208 -0
- package/server/Queue/index.js +3 -0
- package/server/Queue/socket.js +99 -0
- package/server/Rooms/Rooms.js +114 -0
- package/server/Rooms/index.js +3 -0
- package/server/Rooms/router.js +146 -0
- package/server/Scanner/FileScanner/FileScanner.js +225 -0
- package/server/Scanner/FileScanner/getConfig.js +35 -0
- package/server/Scanner/FileScanner/getFiles.js +63 -0
- package/server/Scanner/FileScanner/index.js +3 -0
- package/server/Scanner/MetaParser/MetaParser.js +49 -0
- package/server/Scanner/MetaParser/defaultMiddleware.js +197 -0
- package/server/Scanner/MetaParser/index.js +3 -0
- package/server/Scanner/Scanner.js +33 -0
- package/server/User/User.js +139 -0
- package/server/User/index.js +3 -0
- package/server/User/router.js +442 -0
- package/server/lib/Database.js +55 -0
- package/server/lib/IPCBridge.js +115 -0
- package/server/lib/Log.js +71 -0
- package/server/lib/bcrypt.js +24 -0
- package/server/lib/cli.js +136 -0
- package/server/lib/electron.js +81 -0
- package/server/lib/getCdgName.js +20 -0
- package/server/lib/getDevMiddleware.js +51 -0
- package/server/lib/getFolders.js +10 -0
- package/server/lib/getHotMiddleware.js +27 -0
- package/server/lib/getIPAddress.js +16 -0
- package/server/lib/getPermutations.js +21 -0
- package/server/lib/getWindowsDrives.js +30 -0
- package/server/lib/parseCookie.js +12 -0
- package/server/lib/pushQueuesAndLibrary.js +29 -0
- package/server/lib/schemas/001-initial-schema.sql +98 -0
- package/server/lib/schemas/002-replaygain.sql +9 -0
- package/server/lib/schemas/003-queue-linked-list.sql +16 -0
- package/server/main.js +135 -0
- package/server/scannerWorker.js +58 -0
- package/server/serverWorker.js +242 -0
- package/server/socket.js +173 -0
- package/shared/actionTypes.js +103 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! See licenses in licenses.txt */(()=>{var e,t,r,n,a,o={94081:e=>{e.exports={SOCKET_REQUEST_CONNECT:"user/SOCKET_REQUEST_CONNECT",SOCKET_AUTH_ERROR:"user/SOCKET_AUTH_ERROR",LIBRARY_FILTER_STRING:"library/FILTER_KEYWORD",LIBRARY_FILTER_STRING_RESET:"library/FILTER_KEYWORD_CLEAR",LIBRARY_FILTER_TOGGLE_STARRED:"library/TOGGLE_FILTER_STARRED",TOGGLE_ARTIST_EXPANDED:"library/TOGGLE_ARTIST_EXPANDED",TOGGLE_ARTIST_RESULT_EXPANDED:"library/TOGGLE_ARTIST_RESULT_EXPANDED",SCROLL_ARTISTS:"library/SCROLL_ARTISTS",SONG_STARRED:"library/SONG_STARRED",SONG_UNSTARRED:"library/SONG_UNSTARRED",STAR_COUNTS_PUSH:"library/STAR_COUNTS_PUSH",LIBRARY_PUSH:"library/PUSH",LIBRARY_PUSH_SONG:"library/PUSH_SONG",QUEUE_ADD:"server/QUEUE_ADD",QUEUE_MOVE:"server/QUEUE_MOVE",QUEUE_PUSH:"queue/PUSH",QUEUE_REMOVE:"server/QUEUE_REMOVE",PLAYER_UPDATE:"player/UPDATE",PLAYER_CMD_OPTIONS:"player/CMD_OPTIONS",PLAYER_CMD_NEXT:"player/CMD_NEXT",PLAYER_CMD_PAUSE:"player/CMD_PAUSE",PLAYER_CMD_PLAY:"player/CMD_PLAY",PLAYER_CMD_VOLUME:"player/CMD_VOLUME",PLAYER_REQ_OPTIONS:"server/PLAYER_REQ_OPTIONS",PLAYER_REQ_PLAY:"server/PLAYER_REQ_PLAY",PLAYER_REQ_PAUSE:"server/PLAYER_REQ_PAUSE",PLAYER_REQ_NEXT:"server/PLAYER_REQ_NEXT",PLAYER_REQ_VOLUME:"server/PLAYER_REQ_VOLUME",PLAYER_EMIT_STATUS:"server/PLAYER_EMIT_STATUS",PLAYER_EMIT_LEAVE:"server/PLAYER_EMIT_LEAVE",PLAYER_STATUS:"status/PLAYER_STATUS",PLAYER_ERROR:"status/PLAYER_ERROR",PLAYER_LEAVE:"status/PLAYER_LEAVE",PLAYER_LOAD:"status/PLAYER_LOAD",PLAYER_PLAY:"status/PLAYER_PLAY",PLAYER_VISUALIZER_ERROR:"status/PLAYER_VISUALIZER_ERROR",LOGIN:"user/LOGIN",LOGOUT:"user/LOGOUT",CREATE_ACCOUNT:"user/CREATE_ACCOUNT",UPDATE_ACCOUNT:"user/UPDATE_ACCOUNT",REQUEST_ACCOUNT:"user/REQUEST_ACCOUNT",REQUEST_ROOMS:"rooms/REQUEST_ROOMS",ROOM_UPDATE:"rooms/UPDATE",ROOM_CREATE:"rooms/CREATE",ROOM_REMOVE:"rooms/REMOVE",ROOM_EDITOR_OPEN:"rooms/EDITOR_OPEN",ROOM_EDITOR_CLOSE:"rooms/EDITOR_CLOSE",ROOM_FILTER_STATUS:"rooms/TOGGLE_SHOW_ALL",STAR_SONG:"server/STAR_SONG",UNSTAR_SONG:"server/UNSTAR_SONG",STARS_PUSH:"user/STARS_PUSH",PREFS_RECEIVE:"prefs/RECEIVE",PREFS_REQUEST:"prefs/REQUEST",PREFS_SET:"server/PREFS_SET",PREFS_SET_PATH_PRIORITY:"server/PREFS_SET_PATH_PRIORITY",PREFS_PUSH:"prefs/PREFS_PUSH",PREFS_REQ_SCANNER_START:"prefs/REQ_SCANNER_START",PREFS_REQ_SCANNER_STOP:"prefs/REQ_SCANNER_STOP",USERS_CREATE:"users/CREATE",USERS_EDITOR_OPEN:"users/EDITOR_OPEN",USERS_EDITOR_CLOSE:"users/EDITOR_CLOSE",USERS_FILTER_ONLINE:"users/FILTER_ONLINE",USERS_FILTER_ROOM_ID:"users/FILTER_ROOM_ID",USERS_RECEIVE:"users/RECEIVE",USERS_REMOVE:"users/REMOVE",USERS_REQUEST:"users/REQUEST",USERS_UPDATE:"users/UPDATE",HEADER_HEIGHT_CHANGE:"ui/HEADER_HEIGHT_CHANGE",FOOTER_HEIGHT_CHANGE:"ui/FOOTER_HEIGHT_CHANGE",SHOW_ERROR_MESSAGE:"ui/SHOW_ERROR_MESSAGE",CLEAR_ERROR_MESSAGE:"ui/CLEAR_ERROR_MESSAGE",UI_WINDOW_RESIZE:"ui/WINDOW_RESIZE",SONG_INFO_REQUEST:"songInfo/SONG_INFO_REQUEST",SONG_INFO_SET_PREFERRED:"songInfo/SET_PREFERRED",SONG_INFO_CLOSE:"songInfo/SONG_INFO_CLOSE",SCANNER_CMD_START:"scannerWorker/CMD_START",SCANNER_CMD_STOP:"scannerWorker/CMD_STOP",SCANNER_WORKER_LOG:"scannerWorker/LOG",SCANNER_WORKER_STATUS:"scannerWorker/STATUS",SERVER_WORKER_STATUS:"serverWorker/STATUS",SERVER_WORKER_ERROR:"serverWorker/ERROR",LIBRARY_MATCH_SONG:"scannerWorker/LIBRARY_MATCH_SONG",MEDIA_ADD:"scannerWorker/MEDIA_ADD",MEDIA_CLEANUP:"scannerWorker/MEDIA_CLEANUP",MEDIA_REMOVE:"scannerWorker/MEDIA_REMOVE",MEDIA_UPDATE:"scannerWorker/MEDIA_UPDATE",_SUCCESS:"_SUCCESS",_ERROR:"_ERROR"}},75732:e=>{e.exports={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:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"},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"},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 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"},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"},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"}}},32507:(e,t,r)=>{"use strict";r.d(t,{Z:()=>p});var n=r(87462),a=r(45987),o=r(45697),s=r.n(o),i=r(67294),c=r(75732),l=r.n(c),u=["size","icon"],d=function(e){var t=e.size,r=e.icon,o=(0,a.Z)(e,u);return i.createElement("svg",(0,n.Z)({width:"".concat(t,"px"),height:"".concat(t,"px"),viewBox:l()[r].viewBox},o),i.createElement("path",{d:l()[r].d}))};d.propTypes={icon:s().string.isRequired,size:s().number.isRequired};const p=d},7174:(e,t,r)=>{"use strict";r.d(t,{Z:()=>g});var n=r(15671),a=r(43144),o=r(97326),s=r(60136),i=r(82963),c=r(61120),l=r(4942),u=r(45697),d=r.n(u),p=r(67294),f=r(32507);const m="mzDMD6M1pFKWJavfPkH5",E="VlpZ7WoRWqt_q9Lph86w";function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var v=function(e){(0,s.Z)(r,e);var t=h(r);function r(){var e;(0,n.Z)(this,r);for(var a=arguments.length,s=new Array(a),i=0;i<a;i++)s[i]=arguments[i];return e=t.call.apply(t,[this].concat(s)),(0,l.Z)((0,o.Z)(e),"state",{isLoading:!0,isErrored:!1}),(0,l.Z)((0,o.Z)(e),"handleImgLoad",(function(t){e.setState({isLoading:!1})})),(0,l.Z)((0,o.Z)(e),"handleImgError",(function(t){e.setState({isErrored:!0,isLoading:!1})})),e}return(0,a.Z)(r,[{key:"render",value:function(){var e=this.props,t=this.state;return p.createElement(p.Fragment,null,(t.isLoading||t.isErrored)&&e.height&&p.createElement(f.Z,{icon:"ACCOUNT",size:e.height,className:E}),!t.isErrored&&p.createElement("img",{src:"".concat(document.baseURI,"api/user/").concat(e.userId,"/image?v=").concat(e.dateUpdated),onLoad:this.handleImgLoad,onError:this.handleImgError,className:"".concat(m," ").concat(e.className),style:{display:t.isLoading?"none":"initial",height:e.height?e.height:null}}))}}]),r}(p.Component);(0,l.Z)(v,"propTypes",{className:d().string,dateUpdated:d().number.isRequired,height:d().number,userId:d().number.isRequired});const g=v},54986:(e,t,r)=>{"use strict";r.d(t,{Z:()=>l});var n=r(71002),a=r(43144),o=r(15671),s=r(4942);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,s.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var l=(0,a.Z)((function e(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return(0,o.Z)(this,e),(0,s.Z)(this,"callApi",(function(e,r){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=c(c(c({},t.options),a),{},{method:e});return"object"!==(0,n.Z)(o.body)||o.body instanceof FormData||(o.headers=new Headers({"Content-Type":"application/json"}),o.body=JSON.stringify(o.body)),fetch("".concat(document.baseURI,"api/").concat(t.prefix).concat(r),o).then((function(e){if(e.ok){var t=e.headers.get("Content-Type");return t&&t.includes("application/json")?e.json():e}return e.text().then((function(e){throw new Error(e)}))}))})),this.prefix=r,this.options={credentials:"same-origin"},this.callApi}))},41474:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});const n=(0,r(55648).lX)()},10562:(e,t,r)=>{"use strict";var n=r(67294),a=r(73935),o=r(14890),s=r(71002),i=r(4942),c=r(56478);function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){(0,i.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var d=0;function p(e,t){return function(r){return e.on("action",(function(e){return r.dispatch(e)})),function(r){return function(n){var a=n.type,o=n.meta,i=o&&!!o.isOptimistic;if(!a||!a.startsWith(t))return r(n);i?(d++,r(u(u({},n),{},{meta:u(u({},o),{},{optimistic:{type:c.kE,id:d}})}))):r(n),e.emit("action",n,(function(e){"object"===(0,s.Z)(e)&&"string"==typeof e.type&&(i&&(e.meta=u(u({},e.meta),{},{optimistic:e.error?{type:c.US,id:d}:{type:c.g,id:d}})),r(e))}))}}}}var f=r(53894),m=r(4571),E=r(77968),h=r(67246);var v=r(15671),g=r(43144),R=r(60136),y=r(82963),O=r(61120),S=r(45697),b=r.n(S),C=r(86706),_=r(78603),T=r(39711),N=r(86388),A=r(96974),w=r(20573),I=r(8225),P=r(77116),Z=r(19921);const L=(0,w.P1)([function(e){return(0,P.Z)(e)},function(e){return e.status.queueId},Z.Z,function(e){return e.status.position},function(e){return e.songs}],(function(e,t,r,n,a){var o=e.result.indexOf(t),s={},i=0,c=0;return e.result.forEach((function(t,l){var u=e.entities[t].songId;a.entities[u]&&(l===o?-1===r.lastIndexOf(t)&&(c=Math.round(a.entities[u].duration-n)):l>o&&(i+=c,c=a.entities[u].duration),s[t]=i)})),s}));var U=r(97326),k=r(87462),j=r(70885),D=r(45987),M=r(32507),q=["animateClassName","icon","onClick","size"],x=function(e){var t=e.animateClassName,r=e.icon,a=e.onClick,o=e.size,s=(0,D.Z)(e,q),i=(0,n.useState)(!1),c=(0,j.Z)(i,2),l=c[0],u=c[1],d=(0,n.useRef)();(0,n.useLayoutEffect)((function(){l&&d.current.classList.add(t)}),[t,s.className,l]);var p=(0,n.useCallback)((function(){d.current.classList.remove(t),u(!1)}),[t]),f=(0,n.useCallback)((function(){t&&(d.current.classList.add(t),d.current.addEventListener("animationend",p),u(!0)),a&&a.apply(void 0,arguments)}),[t,p,a]);return n.createElement("div",(0,k.Z)({onClick:f,ref:d},s),n.createElement(M.Z,{icon:r,size:o}),s.children)};x.propTypes={animateClassName:b().string,children:b().node,className:b().string,onClick:b().func,icon:b().string.isRequired,size:b().number.isRequired};const V=x,H="UIK2HEzG93kJrZg1zrOI",z="jvBgtBq5nhwhgFxDdohV",F="cwDhxOIVfzteFzlWeKwa",G="Y7B1obsA9DO34NOCVSUZ cwDhxOIVfzteFzlWeKwa",B="fvmAaIs1XBUyXOMAAkYo";function Q(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var Y=function(e){(0,R.Z)(r,e);var t=Q(r);function r(){var e;(0,v.Z)(this,r);for(var a=arguments.length,o=new Array(a),s=0;s<a;s++)o[s]=arguments[s];return e=t.call.apply(t,[this].concat(o)),(0,i.Z)((0,U.Z)(e),"searchInput",n.createRef()),(0,i.Z)((0,U.Z)(e),"state",{value:e.props.filterStr}),(0,i.Z)((0,U.Z)(e),"handleChange",(function(t){e.setState({value:t.target.value}),e.props.setFilterStr(t.target.value)})),(0,i.Z)((0,U.Z)(e),"handleMagnifierClick",(function(){e.state.value.trim()?e.clearSearch():e.searchInput.current.focus()})),(0,i.Z)((0,U.Z)(e),"clearSearch",(function(){e.setState({value:""}),e.props.resetFilterStr()})),e}return(0,g.Z)(r,[{key:"render",value:function(){var e=this.props,t=e.filterStr,r=e.filterStarred;return n.createElement("div",{className:H},n.createElement(V,{className:t?G:F,icon:"MAGNIFIER",onClick:this.handleMagnifierClick,size:40}),n.createElement("input",{type:"search",className:z,placeholder:"search",value:this.state.value,onChange:this.handleChange,ref:this.searchInput}),t&&n.createElement(V,{icon:"CLEAR",onClick:this.clearSearch,className:G,size:40}),n.createElement(V,{animateClassName:B,className:r?G:F,icon:"STAR_FULL",onClick:this.props.toggleFilterStarred,size:44}))}}]),r}(n.Component);(0,i.Z)(Y,"propTypes",{filterStr:b().string.isRequired,filterStarred:b().bool.isRequired,setFilterStr:b().func.isRequired,resetFilterStr:b().func.isRequired,toggleFilterStarred:b().func.isRequired});const W=Y;var K=r(91595),X={setFilterStr:K.je,resetFilterStr:K.HJ,toggleFilterStarred:K.Qz};const J=(0,C.$j)((function(e){return{filterStr:e.library.filterStr,filterStarred:e.library.filterStarred}}),X)(W);var $=r(47489),ee=r(94467),te=r(81008);function re(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var ne=function(e){(0,R.Z)(r,e);var t=re(r);function r(){var e;(0,v.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,i.Z)((0,U.Z)(e),"state",{val:e.props.value,isDragging:!1,isStable:!0}),(0,i.Z)((0,U.Z)(e),"timerId",null),(0,i.Z)((0,U.Z)(e),"handleChange",(function(t){e.setState({val:t},(function(){e.props.onChange(t)}))})),(0,i.Z)((0,U.Z)(e),"handleBeforeChange",(function(){(0,h.TO)(!0),clearTimeout(e.timerId),e.setState({isDragging:!0})})),(0,i.Z)((0,U.Z)(e),"handleAfterChange",(function(t){(0,h.TO)(!1),e.setState({isStable:t===e.props.value,isDragging:!1}),t!==e.props.value&&(e.timerId=setTimeout((function(){return e.setState({val:e.props.value})}),2e3))})),e}return(0,g.Z)(r,[{key:"componentDidUpdate",value:function(e){this.state.isStable||this.state.val!==this.props.value||(clearTimeout(this.timerId),this.setState({isStable:!0}))}},{key:"shouldComponentUpdate",value:function(e,t){return!(!t.isDragging&&!t.isStable&&e.value!==t.val)}},{key:"render",value:function(){return n.createElement(te.Z,{className:this.props.className,handleRender:this.props.handle,max:this.props.max,min:this.props.min,onAfterChange:this.handleAfterChange,onBeforeChange:this.handleBeforeChange,onChange:this.handleChange,step:this.props.step,value:this.state.isDragging?this.state.val:this.props.value})}}]),r}(n.Component);(0,i.Z)(ne,"propTypes",{className:b().string,handle:b().func.isRequired,min:b().number.isRequired,max:b().number.isRequired,onChange:b().func.isRequired,step:b().number.isRequired,value:b().number.isRequired});const ae=ne,oe="dMo9SQYONtw9WYO5lxiN",se="pMYNwtxIUiwKZSuUB8NQ";function ie(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var ce=function(e){(0,R.Z)(r,e);var t=ie(r);function r(){return(0,v.Z)(this,r),t.apply(this,arguments)}return(0,g.Z)(r,[{key:"render",value:function(){return n.createElement(ae,{className:oe,handle:le,min:0,max:1,onChange:this.props.onVolumeChange,step:.01,value:this.props.volume})}}]),r}(n.Component);(0,i.Z)(ce,"propTypes",{volume:b().number.isRequired,onVolumeChange:b().func.isRequired});var le=function(e,t){var r=t.value,a="VOLUME_UP";return 0===r?a="VOLUME_OFF":r<.4?a="VOLUME_MUTE":r<.7&&(a="VOLUME_DOWN"),n.cloneElement(e,{className:se},n.createElement(M.Z,{icon:a,size:42}))};const ue=ce,de="sfr6H9YQSnxNFewvtYb2",pe="QYsiKZ5NRjaOsK5iaXfX";const fe=function(e){return n.createElement("div",{className:de},n.createElement("p",{className:pe},"No player in room (",n.createElement(T.rU,{to:"/player"},"Start Player"),")"))};var me=r(93399);const Ee="Mavkfley4QjffP3Catge",he="CNM_5gB7G5H_AMRhZuHX",ve="CKty5KaEk_nKaO8C9NWj",ge="rSAvyMqmZiU8isOniIRg",Re="AxFsDuLo2IzSUTFEbuZo",ye="HHYLkEZBcUJPga1se3oQ",Oe="eJLT6828XSsubIHdpAW2",Se="M1nSLELWzWtg0nMNVAPp",be="nsGMxmc6ZA0V4Fwl17Bf";function Ce(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _e(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ce(Object(r),!0).forEach((function(t){(0,i.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ce(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var Te=function(e){return n.createElement(me.u,{blockScroll:!1,animationDuration:167,open:e.isVisible,onClose:e.onClose,closeOnEsc:!0,closeOnOverlayClick:!0,classNames:{root:Ee,overlay:he,modal:ve,modalContainer:ge,closeButton:Re},styles:{modal:_e({},e.style)}},n.createElement("div",{className:ye},n.createElement("h1",{className:Oe},e.title),n.createElement("div",{className:Se},e.children),e.buttons&&n.createElement("div",{className:be},e.buttons)))};Te.propTypes={buttons:b().any,children:b().any,isVisible:b().bool.isRequired,onClose:b().func.isRequired,style:b().object,title:b().string.isRequired};const Ne=n.memo(Te),Ae={section:"eBgZD0SKZoZxdKfDH4T1",visualizer:"PJhDzihe1KxTY9CE2xvq eBgZD0SKZoZxdKfDH4T1",lyrics:"Y8xCNeqBBAdhv1S2a0zC eBgZD0SKZoZxdKfDH4T1",field:"lNVvAVB0rbHGFBU4wBbH",presetBtnContainer:"QyK2Uk7cCogrdI3yDGZX",btnPreset:"Busc1bvYRrq8mQTC8UsA",btnIcon:"UD9HYyUBgOjSl2ux6LIp",unsupported:"zIEucMK4dBypf03pERBF",slider:"MhuyzAaoykU7XrttP0lt",handle:"vA6PJ2CfQyCJ0Aqjod8g"};function we(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var Ie=function(e){(0,R.Z)(r,e);var t=we(r);function r(){var e;(0,v.Z)(this,r);for(var a=arguments.length,o=new Array(a),s=0;s<a;s++)o[s]=arguments[s];return e=t.call.apply(t,[this].concat(o)),(0,i.Z)((0,U.Z)(e),"checkbox",n.createRef()),(0,i.Z)((0,U.Z)(e),"handleAlpha",(function(t){e.props.onRequestOptions((0,i.Z)({},e.props.mediaType+"Alpha",t))})),(0,i.Z)((0,U.Z)(e),"handleSensitivity",(function(t){return e.props.onRequestOptions({visualizer:{sensitivity:t}})})),(0,i.Z)((0,U.Z)(e),"handleSize",(function(t){e.props.onRequestOptions({cdgSize:t})})),(0,i.Z)((0,U.Z)(e),"handleToggleVisualizer",(function(){return e.props.onRequestOptions({visualizer:{isEnabled:!e.props.isVisualizerEnabled}})})),(0,i.Z)((0,U.Z)(e),"handlePresetNext",(function(){return e.props.onRequestOptions({visualizer:{nextPreset:!0}})})),(0,i.Z)((0,U.Z)(e),"handlePresetPrev",(function(){return e.props.onRequestOptions({visualizer:{prevPreset:!0}})})),(0,i.Z)((0,U.Z)(e),"handlePresetRandom",(function(){return e.props.onRequestOptions({visualizer:{randomPreset:!0}})})),e}return(0,g.Z)(r,[{key:"render",value:function(){return n.createElement(Ne,{isVisible:this.props.isVisible,onClose:this.props.onClose,title:"Display",buttons:n.createElement("button",{onClick:this.props.onClose},"Done"),style:{width:Math.max(320,.66*this.props.ui.contentWidth)}},n.createElement("div",{className:Ae.container},n.createElement("fieldset",{className:Ae.visualizer},n.createElement("legend",null,n.createElement("label",null,n.createElement("input",{type:"checkbox",checked:this.props.isVisualizerEnabled,disabled:!this.props.isWebGLSupported,onChange:this.handleToggleVisualizer,ref:this.checkbox})," Visualizer")),this.props.isWebGLSupported&&"cdg"===this.props.mediaType&&n.createElement(n.Fragment,null,n.createElement("div",{className:Ae.presetBtnContainer},n.createElement("button",{className:Ae.btnPreset,onClick:this.handlePresetPrev},n.createElement(M.Z,{icon:"CHEVRON_LEFT",size:42,className:Ae.btnIcon})),n.createElement("button",{className:Ae.btnPreset,onClick:this.handlePresetRandom},n.createElement(M.Z,{icon:"DICE",size:48,className:Ae.btnIcon})),n.createElement("button",{className:Ae.btnPreset,onClick:this.handlePresetNext},n.createElement(M.Z,{icon:"CHEVRON_RIGHT",size:42,className:Ae.btnIcon}))),n.createElement("label",null,this.props.visualizerPresetName),n.createElement("label",{className:Ae.field},"Sensitivity"),n.createElement(ae,{min:0,max:2,step:.01,value:this.props.sensitivity,onChange:this.handleSensitivity,handle:Pe,className:Ae.slider})),this.props.isWebGLSupported&&"cdg"!==this.props.mediaType&&n.createElement("p",{className:Ae.unsupported},"Not available for this media type"),!this.props.isWebGLSupported&&n.createElement("p",{className:Ae.unsupported},"WebGL not supported")),n.createElement("fieldset",{className:Ae.lyrics},n.createElement("legend",null,n.createElement("label",null,"Lyrics")),"cdg"===this.props.mediaType&&n.createElement(n.Fragment,null,n.createElement("label",{className:Ae.field},"Size"),n.createElement(ae,{min:.6,max:1,step:.01,value:this.props.cdgSize,onChange:this.handleSize,handle:Pe,className:Ae.slider}),n.createElement("label",{className:Ae.field},"Background"),n.createElement(ae,{min:0,max:1,step:.01,value:this.props[this.props.mediaType+"Alpha"],onChange:this.handleAlpha,handle:Pe,className:Ae.slider})),"cdg"!==this.props.mediaType&&n.createElement("p",{className:Ae.unsupported},"No options available"))))}}]),r}(n.Component);(0,i.Z)(Ie,"propTypes",{cdgAlpha:b().number.isRequired,cdgSize:b().number.isRequired,isVisible:b().bool.isRequired,isVisualizerEnabled:b().bool.isRequired,isWebGLSupported:b().bool.isRequired,mediaType:b().string,mp4Alpha:b().number.isRequired,sensitivity:b().number.isRequired,visualizerPresetName:b().string.isRequired,ui:b().object.isRequired,onRequestOptions:b().func.isRequired,onClose:b().func.isRequired});var Pe=function(e,t){return n.cloneElement(e,{className:Ae.handle},n.createElement(M.Z,{icon:"CIRCLE",size:36}))};const Ze=Ie,Le="s6dMfvg4cHkpBCZwMxlM",Ue="pRlD2sOdoJdRfrjBCylf",ke="ffq0SD5gzioIYEcgKgLY utieeUffOQOs5Tb422mr",je="pjBKslXw1U349A1rnhe0 utieeUffOQOs5Tb422mr",De="tQEHmnxGjJM781oxemUN utieeUffOQOs5Tb422mr",Me="fIuT4teYAIcl4oLOLEzJ utieeUffOQOs5Tb422mr",qe="HZ7zG9VjL9eCkdQDZGIM utieeUffOQOs5Tb422mr";var xe=function(){if($.Z.isEnabled){var e=document.getElementById("player-fs-container");$.Z.request(e)}};const Ve=function(e){var t=(0,C.v9)((function(e){return e.user.isAdmin})),r=(0,C.v9)((function(e){return null!==e.user.roomId})),a=(0,C.v9)((function(e){return e.status})),o=(0,C.v9)((function(e){return e.ui})),s=(0,A.TH)().pathname.replace(/\/$/,"").endsWith("/player"),i=(0,C.I0)(),c=(0,n.useCallback)((function(e){return i((0,ee.wY)(e))}),[i]),l=(0,n.useCallback)((function(){return i((0,ee.hz)())}),[i]),u=(0,n.useCallback)((function(){return i((0,ee.D0)())}),[i]),d=(0,n.useCallback)((function(){return i((0,ee.EV)())}),[i]),p=(0,n.useCallback)((function(e){return i((0,ee.q7)(e))}),[i]),f=(0,n.useState)(!1),m=(0,j.Z)(f,2),E=m[0],h=m[1],v=(0,n.useCallback)((function(){h(!E)}),[E]);return a.isPlayerPresent?n.createElement("div",{className:Le},n.createElement(V,{animateClassName:Ue,className:a.isPlaying?je:ke,icon:a.isPlaying?"PAUSE":"PLAY",onClick:a.isPlaying?l:u,size:44}),n.createElement(V,{animateClassName:Ue,className:De,icon:"PLAY_NEXT",onClick:d,size:48}),n.createElement(ue,{volume:a.volume,onVolumeChange:p}),n.createElement(V,{className:Me,icon:"TUNE",onClick:v,size:48}),s&&$.Z.isEnabled&&n.createElement(V,{className:qe,icon:"FULLSCREEN",onClick:xe,size:48}),n.createElement(Ze,{cdgAlpha:a.cdgAlpha,cdgSize:a.cdgSize,isVisible:E,isVisualizerEnabled:a.visualizer.isEnabled,isWebGLSupported:a.isWebGLSupported,mediaType:a.mediaType,mp4Alpha:a.mp4Alpha,onClose:v,onRequestOptions:c,sensitivity:a.visualizer.sensitivity,ui:o,visualizerPresetName:a.visualizer.presetName})):t&&r&&$.Z.isEnabled?n.createElement(fe,null):null},He="R0tWhGzOMnxRvplqamqt",ze="WxqoYmzzeIRmqDepbVLR",Fe="iL_22Dl4fbuLsQo42o2o L3KVVs498s_TTzMFHKn5",Ge="rMNneKuTapuKwyse_AMl L3KVVs498s_TTzMFHKn5";function Be(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var Qe=function(e){(0,R.Z)(r,e);var t=Be(r);function r(){var e;(0,v.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,i.Z)((0,U.Z)(e),"state",{isCanceling:!1,isVisible:!1}),(0,i.Z)((0,U.Z)(e),"handleCancelClick",(function(){e.props.isActive&&!e.state.isCanceling?(e.setState({isCanceling:!0}),e.props.onCancel()):e.setState({isVisible:!1})})),e}return(0,g.Z)(r,[{key:"componentDidUpdate",value:function(e,t){this.props.isActive&&!e.isActive?this.setState({isVisible:!0,isCanceling:!1}):this.state.isCanceling&&this.props.text!==e.text&&this.setState({isCanceling:!1})}},{key:"render",value:function(){var e=this.state,t=this.props;return e.isVisible?n.createElement("div",{className:He,style:{backgroundSize:t.pct+"% 100%"}},n.createElement("p",{className:ze},e.isCanceling?"Stopping...":t.text),n.createElement(V,{className:t.isActive?Fe:Ge,icon:"CLEAR",onClick:this.handleCancelClick,size:40})):null}}]),r}(n.Component);(0,i.Z)(Qe,"propTypes",{isActive:b().bool.isRequired,onCancel:b().func.isRequired,pct:b().number.isRequired,text:b().string.isRequired});const Ye=Qe;function We(e){return function(e){return e.toISOString().substring(0,10)}(e)+" "+function(e){var t=e.getHours(),r=e.getMinutes(),n=t>11?"p":"a";return t>12?t-=12:0===t&&(t="12"),r<10&&(r="0"+r),t+":"+r+n}(e)}function Ke(e){var t=Math.floor(e/60),r=e%60;return"".concat(t,":").concat(r<10?"0"+r:r)}function Xe(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e>=60&&t)return Math.round(e/60)+"m";var r=Math.floor(e/60),n=e%60;return r?"".concat(r,"m ").concat(n,"s"):"".concat(n,"s")}const Je="PhYxOVpDCwPMJWw0BE6k qdbIg3xgUn4KEomWXd7E",$e="C9WuYntlaEVvxRaewY7r qdbIg3xgUn4KEomWXd7E",et="pXcSEQ5RRGogLr2WCFum qdbIg3xgUn4KEomWXd7E",tt="ZYRIFRvELzaH67PRlPlp";var rt=function(e){return e.isUpNow?n.createElement("div",{className:$e},n.createElement("p",{className:tt},"You’re up ",n.createElement("strong",null,"now"))):e.isUpNext?n.createElement("div",{className:Je},n.createElement("p",{className:tt},"You’re up ",n.createElement("strong",null,"next"),e.wait?" in ".concat(Xe(e.wait,!0)):"")):e.wait?n.createElement("div",{className:et},n.createElement("p",{className:tt},"You’re up in ",Xe(e.wait,!0))):null};rt.propTypes={isUpNow:b().bool.isRequired,isUpNext:b().bool.isRequired,wait:b().number};const nt=rt,at="vreYukSnqUrGi25wejn4";var ot=function(e){return e.status.queueId},st=function(e){return e.user.userId},it=(0,w.P1)([P.Z,ot,st,L],(function(e,t,r,n){for(var a=e.result.indexOf(t)+1;a<e.result.length;a++)if(e.entities[e.result[a]].userId===r)return n[e.result[a]]})),ct=(0,w.P1)([P.Z,ot,function(e){return e.status.isAtQueueEnd},st],(function(e,t,r,n){var a=e.result,o=e.entities,s=a.indexOf(t),i=o[t];return{isUpNext:!!a[s+1]&&o[a[s+1]].userId===n,isUpNow:!!i&&(!r&&i.userId===n)}})),lt=n.forwardRef((function(e,t){var r=(0,C.v9)((function(e){return e.user.isAdmin})),a=(0,C.v9)((function(e){return e.status.isPlayerPresent})),o=(0,C.v9)((function(e){return e.prefs.isScanning})),s=(0,C.v9)((function(e){return e.prefs.scannerText})),i=(0,C.v9)((function(e){return e.prefs.scannerPct})),c=(0,C.v9)(ct),l=c.isUpNext,u=c.isUpNow,d=(0,C.v9)(it),p=(0,A.TH)().pathname.replace(/\/$/,"").endsWith("/player"),f=(0,C.I0)(),m=(0,n.useCallback)((function(){return f((0,I.zw)())}),[f]);return n.createElement("div",{className:"".concat(at," bg-blur"),ref:t},!p&&a&&n.createElement(nt,{isUpNext:l,isUpNow:u,wait:d}),(u||r)&&n.createElement(Ve,null),r&&!p&&n.createElement(Ye,{isActive:o,onCancel:m,pct:i,text:s}),n.createElement(A.Z5,null,n.createElement(A.AW,{path:"/library",element:n.createElement(J,null)})))}));lt.displayName="Header";const ut=lt,dt="sjMaG58osNAeqXFe4zpO",pt="ekb54bjQ8jCQ8gjJwL6h",ft="CERhwPlf7uoRzmK7byOo ekb54bjQ8jCQ8gjJwL6h",mt="bx9kUlhkDMmCKpxez9Kn",Et="LpKkKnxGUM9XUZaJYwKA";var ht=n.forwardRef((function(e,t){return n.createElement("div",{className:"".concat(dt," bg-blur"),ref:t},n.createElement(T.OL,{to:"/library",className:function(e){return e.isActive?ft:pt}},n.createElement(V,{animateClassName:mt,className:Et,icon:"NAV_LIBRARY",size:42})),n.createElement(T.OL,{to:"/queue",className:function(e){return e.isActive?ft:pt}},n.createElement(V,{animateClassName:mt,className:Et,icon:"NAV_SUBSCRIPTIONS",size:42})),n.createElement(T.OL,{to:"/account",className:function(e){return e.isActive?ft:pt}},n.createElement(V,{animateClassName:mt,className:Et,icon:"NAV_ACCOUNT",size:42})))}));ht.displayName="Navigation";const vt=ht;var gt=r(79176);const Rt="AOWDkEJZ7Uh6TMmJSmDN",yt="Gi_1FjbpZU1FcRC85lBE",Ot="k8N_J395xr2bblBgwvim",St="TSJBvSrnl7BotohIdqrj";const bt=function(e){var t=(0,C.v9)((function(e){return e.songInfo})),r=t.isLoading,a=t.isVisible,o=t.songId,s=t.media,i=(0,C.I0)(),c=function(){return i((0,gt.xc)())},l=s.result.map((function(e){var t=s.entities[e],r=!!t.isPreferred;return n.createElement("div",{key:t.mediaId,className:Ot},t.path+(0===t.path.indexOf("/")?"/":"\\")+t.relPath,n.createElement("br",null),n.createElement("span",{className:St},"Duration: "),Ke(t.duration),n.createElement("br",null),n.createElement("span",{className:St},"Media ID: "),e,n.createElement("br",null),n.createElement("span",{className:St},"Preferred: "),r&&n.createElement("span",null,n.createElement("strong",null,"Yes")," ",n.createElement("a",{onClick:function(){return function(e){return i((0,gt.N3)(o,e,!1))}(e)}},"(Unset)")),!r&&n.createElement("span",null,"No ",n.createElement("a",{onClick:function(){return function(e){return i((0,gt.N3)(o,e,!0))}(e)}},"(Set)")))}));return n.createElement(Ne,{isVisible:a,onClose:c,title:"Song Info",style:{width:"90%",height:"90%"}},n.createElement("div",{className:Rt},n.createElement("p",null,n.createElement("span",{className:St},"Song ID: "),o,n.createElement("br",null),n.createElement("span",{className:St},"Media Files: "),r?"?":s.result.length),n.createElement("div",{className:yt},r?n.createElement("p",null,"Loading..."):l),n.createElement("div",null,n.createElement("button",{className:"primary",onClick:c},"Done"))))};var Ct,_t=r(96747),Tt=r(54986),Nt=r(94081);function At(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function wt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?At(Object(r),!0).forEach((function(t){(0,i.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):At(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var It=new Tt.Z("");function Pt(){return function(e,t){return e({type:Nt.USERS_REQUEST}),It("GET","users").then((function(t){e(function(e){return{type:Nt.USERS_RECEIVE,payload:e}}(t))})).catch((function(t){e({type:Nt.USERS_REQUEST+Nt._ERROR,error:t.message})}))}}function Zt(e){return function(t,r){return t({type:Nt.USERS_CREATE}),It("POST","user",{body:e}).then((function(){t({type:Nt.USERS_CREATE+Nt._SUCCESS}),t(Pt())})).catch((function(e){t(function(e){return{type:Nt.USERS_CREATE+Nt._ERROR,error:e.message}}(e))}))}}function Lt(e,t){return function(r,n){return r(function(e){return{type:Nt.USERS_UPDATE,payload:e}}({userId:e,data:t})),It("PUT","user/".concat(e),{body:t}).then((function(){r({type:Nt.USERS_UPDATE+Nt._SUCCESS}),r(Pt())})).catch((function(e){r(function(e){return{type:Nt.USERS_UPDATE+Nt._ERROR,error:e.message}}(e))}))}}function Ut(e){return function(t,r){return t(function(e){return{type:Nt.USERS_REMOVE,payload:{userId:e}}}(e)),It("DELETE","user/".concat(e)).then((function(){t({type:Nt.USERS_REMOVE+Nt._SUCCESS}),t(Pt())})).catch((function(e){t(function(e){return{type:Nt.USERS_REMOVE+Nt._ERROR,error:e.message}}(e))}))}}function kt(e){return{type:Nt.USERS_FILTER_ONLINE,payload:e}}function jt(e){return{type:Nt.USERS_FILTER_ROOM_ID,payload:e}}var Dt=(Ct={},(0,i.Z)(Ct,Nt.USERS_CREATE+Nt._SUCCESS,(function(e,t){t.payload;return wt(wt({},e),{},{isEditorOpen:!1})})),(0,i.Z)(Ct,Nt.USERS_RECEIVE,(function(e,t){var r=t.payload;return wt(wt({},e),r)})),(0,i.Z)(Ct,Nt.USERS_EDITOR_OPEN,(function(e,t){t.payload;return wt(wt({},e),{},{isEditorOpen:!0})})),(0,i.Z)(Ct,Nt.USERS_EDITOR_CLOSE,(function(e,t){t.payload;return wt(wt({},e),{},{isEditorOpen:!1})})),(0,i.Z)(Ct,Nt.USERS_FILTER_ONLINE,(function(e,t){var r=t.payload;return wt(wt({},e),{},{filterOnline:r,filterRoomId:null})})),(0,i.Z)(Ct,Nt.USERS_FILTER_ROOM_ID,(function(e,t){var r=t.payload;return wt(wt({},e),{},{filterOnline:!1,filterRoomId:r})})),(0,i.Z)(Ct,Nt.USERS_REMOVE+Nt._SUCCESS,(function(e,t){t.payload;return wt(wt({},e),{},{isEditorOpen:!1})})),(0,i.Z)(Ct,Nt.USERS_UPDATE+Nt._SUCCESS,(function(e,t){t.payload;return wt(wt({},e),{},{isEditorOpen:!1})})),Ct),Mt={result:[],entities:{},filterOnline:!0,filterRoomId:null,isEditorOpen:!1};function qt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Mt,t=arguments.length>1?arguments[1]:void 0,r=Dt[t.type];return r?r(e,t):e}var xt=r(62719);const Vt="MhLrBfYw2bVvon36GHQg",Ht="MRwxEsiCu74aMC4fJ2yn",zt="XrgY7jUteM7yAiFgHV3G",Ft="opBGPXUVYOwhN4fsI5_5";var Gt=function(e){return n.createElement("div",{className:"".concat(Vt," ").concat(e.className)},n.createElement("h1",{className:Ht},"Karaoke",n.createElement("span",{className:zt},"Eterna",n.createElement("span",{className:Ft},"l"))))};Gt.propTypes={className:b().string};const Bt=Gt;const Qt="U8A_lOQ63TZUTsiYgktE",Yt="TEhgIScv1BL8HW1JbB3B",Wt="XIvZjD6Co9DyofyCj0Da",Kt="oPMyaF6eFojk2b8ZQKwH",Xt="mFno0FFze3kHGDdbZDBB",Jt="NjmtwxMJxR179Hk2Pomb",$t="GAUmcVf7ad6DttxMOqMj",er="lESUPQPijSGMX4Z2Z_vW";const tr=function(e){var t=(0,n.useState)(!1),r=(0,j.Z)(t,2),a=r[0],o=r[1],s=(0,n.useCallback)((function(){return o((function(e){return!e}))}),[]);return n.createElement("div",{className:Qt},n.createElement("h1",{className:Yt},"About"),n.createElement("div",{className:Wt},n.createElement("a",{href:"https://www.karaoke-eternal.com",target:"_blank",rel:"noreferrer"}," ",n.createElement(Bt,{className:Kt})),n.createElement("p",{className:Xt},"©","2019-2022"," ",n.createElement("a",{href:"https://www.radroot.com",target:"_blank",rel:"noreferrer"},"RadRoot LLC"),n.createElement("br",null)," ","v","1.0.0"," "),n.createElement("p",null,n.createElement("a",{className:Jt,onClick:s},"Changelog & Sponsors")," | ",n.createElement("a",{href:"/licenses.txt",target:"_blank"},"Licenses"))," ",n.createElement("a",{href:"https://www.karaoke-eternal.com/repo",target:"_blank",rel:"noreferrer"},n.createElement(xt.Z,{"data-size":"large","data-color-scheme":"no-preference: dark; light: dark;"},"GitHub"))," ",n.createElement("a",{href:"https://www.karaoke-eternal.com/repo",target:"_blank",rel:"noreferrer"},n.createElement(xt.Z,{"data-icon":"octicon-star","data-size":"large","data-color-scheme":"no-preference: dark; light: dark;"},"Star"))," ",n.createElement("a",{href:"https://www.karaoke-eternal.com/sponsor",target:"_blank",rel:"noreferrer"},n.createElement(xt.Z,{"data-icon":"octicon-heart","data-size":"large","data-color-scheme":"no-preference: dark; light: dark;"},"Sponsor"))," "),n.createElement(Ne,{title:"Changelog & Sponsors",isVisible:a,onClose:s,focusTrapped:!1,style:{width:"90%",height:"90%"}},n.createElement("div",{className:$t},n.createElement("div",{className:er},n.createElement("a",{href:""}),n.createElement("div",{dangerouslySetInnerHTML:{__html:'<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> "Make user's next" button for upcoming songs</li> <li><strong>(app)</strong> "Re-queue" 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's place is now reserved and won'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'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> '}})),n.createElement("div",null,n.createElement("button",{className:"primary",onClick:s},"Done")))))};var rr=r(49303),nr=r.n(rr);const ar="rIur97ACvqfbIkmbOiCL",or="_03pNkaJuEzTEpMZlrFAs",sr="zDcM8XBIpYcWZBK2ostT",ir="QoNRuAf71c67_0daJ00g";function cr(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var lr=function(e){(0,R.Z)(r,e);var t=cr(r);function r(){var e;(0,v.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,i.Z)((0,U.Z)(e),"state",{isLoading:!0,imageURL:e.props.user&&null!==e.props.user.userId?"".concat(document.baseURI,"api/user/").concat(e.props.user.userId,"/image?v=").concat(e.props.user.dateUpdated):null}),(0,i.Z)((0,U.Z)(e),"handleImgLoad",(function(){e.setState({isLoading:!1})})),(0,i.Z)((0,U.Z)(e),"handleImgError",(function(t){e.setState({imageURL:null,isLoading:!1})})),(0,i.Z)((0,U.Z)(e),"handleImgClear",(function(){e.setState({imageURL:null}),e.props.onSelect(null)})),(0,i.Z)((0,U.Z)(e),"handleChoose",(function(t){var r=t.target.files[0];r&&nr()(r,(function(t){if("error"===t.type)return alert("The image could not be loaded.");nr().scale(t,{maxWidth:400,maxHeight:300,crop:!0,downsamplingRatio:.5}).toBlob((function(t){e.setState({imageURL:URL.createObjectURL(t)}),e.props.onSelect(t)}),"image/jpeg")}),{canvas:!0,aspectRatio:4/3,orientation:!0})})),e}return(0,g.Z)(r,[{key:"componentDidUpdate",value:function(e,t){t.imageURL!==this.state.imageURL&&URL.revokeObjectURL(t.imageURL)}},{key:"render",value:function(){return n.createElement("div",{className:ar},!this.state.imageURL&&n.createElement(M.Z,{icon:"ACCOUNT_BOX",size:72,className:ir}),this.state.imageURL&&n.createElement("img",{src:this.state.imageURL,width:96,height:72,onLoad:this.handleImgLoad,onError:this.handleImgError}),this.state.imageURL&&!this.state.isLoading&&n.createElement(V,{className:sr,icon:"CLEAR",onClick:this.handleImgClear,size:32}),n.createElement("input",{type:"file",accept:"image/*",onChange:this.handleChoose,className:or,tabIndex:"-1"}))}}]),r}(n.Component);(0,i.Z)(lr,"propTypes",{user:b().object,onSelect:b().func.isRequired});const ur=lr,dr="UJP7G5dKPXhMYPVm9lGC",pr="MRv8af4NPh12SLYbjwuA",fr="TFXhqL1_ppdgVq8Ip8G0",mr="TXcvFiC1fGbvm_9tjD0d";function Er(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var hr=function(e){(0,R.Z)(r,e);var t=Er(r);function r(){var e;(0,v.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,i.Z)((0,U.Z)(e),"state",{isDirty:!1,isChangingPassword:!e.props.user||null===e.props.user.userId,userImage:void 0}),(0,i.Z)((0,U.Z)(e),"handleSubmit",(function(t){t.preventDefault();var r=new FormData;e.name.value.trim()&&r.append("name",e.name.value.trim()),e.username.value.trim()&&r.append("username",e.username.value.trim()),e.state.isChangingPassword&&(r.append("newPassword",e.newPassword.value),r.append("newPasswordConfirm",e.newPasswordConfirm.value)),void 0!==e.state.userImage&&r.append("image",e.state.userImage),e.role&&r.append("role",e.role.value),e.props.onSubmit(r)})),(0,i.Z)((0,U.Z)(e),"handleUserImageChange",(function(t){e.setState({userImage:t,isDirty:!0})})),(0,i.Z)((0,U.Z)(e),"updateDirty",(function(){e.props.user&&null!==e.props.user.userId&&e.setState({isDirty:!!e.username.value||!!e.newPassword.value||e.name.value!==e.props.user.name||e.role&&e.role.value!==(e.props.user.isAdmin?"1":"0"),isChangingPassword:!!e.newPassword.value})})),e}return(0,g.Z)(r,[{key:"componentDidUpdate",value:function(e,t){this.props.user&&e.user.dateUpdated!==this.props.user.dateUpdated&&this.setState({isDirty:!1}),this.props.onDirtyChange&&t.isDirty!==this.state.isDirty&&this.props.onDirtyChange(this.state.isDirty)}},{key:"render",value:function(){var e,t=this,r=this.props.user&&null!==this.props.user.userId;return n.createElement("form",{className:dr,key:null===(e=this.props.user)||void 0===e?void 0:e.dateUpdated,noValidate:!0,onSubmit:this.handleSubmit},n.createElement("input",{type:"email",autoComplete:"off",autoFocus:!r,onChange:this.updateDirty,placeholder:r?"change username (optional)":"username or email",ref:function(e){t.username=e},className:fr}),n.createElement("input",{type:"password",autoComplete:"new-password",onChange:this.updateDirty,placeholder:r?"change password (optional)":"password",ref:function(e){t.newPassword=e},className:fr}),this.state.isChangingPassword&&n.createElement("input",{type:"password",autoComplete:"new-password",placeholder:r?"new password confirm":"confirm password",ref:function(e){t.newPasswordConfirm=e},className:fr}),n.createElement("div",{className:pr},n.createElement(ur,{user:this.props.user,onSelect:this.handleUserImageChange}),n.createElement("input",{type:"text",defaultValue:r?this.props.user.name:"",onChange:this.updateDirty,placeholder:"display name",ref:function(e){t.name=e},className:"".concat(fr," ").concat(mr)})),this.props.showRole&&n.createElement("select",{defaultValue:r&&this.props.user.isAdmin?"1":"0",onChange:this.updateDirty,ref:function(e){t.role=e},className:fr},n.createElement("option",{key:"choose",value:"",disabled:!0},"select role..."),n.createElement("option",{key:"std",value:"0"},"Standard"),n.createElement("option",{key:"admin",value:"1"},"Administrator")),this.props.children)}}]),r}(n.Component);(0,i.Z)(hr,"propTypes",{children:b().node,onDirtyChange:b().func,onSubmit:b().func.isRequired,requirePassword:b().bool,showRole:b().bool,user:b().object});const vr=hr,gr="AdPYAIbFPpGhbG80E9oa",Rr="LbIcdbrF5GE54rSrqL_I",yr="eWB988t3JuRQuM9e6O_N",Or="lVRxnFYFCfHZHGIPV2QD",Sr="Fj4oA4Er2_057Nqs3d_R";const br=function(e){var t=(0,n.useRef)(null),r=(0,C.v9)((function(e){return e.user})),a=(0,n.useState)(!1),o=(0,j.Z)(a,2),s=o[0],i=o[1],c=(0,C.I0)(),l=(0,n.useCallback)((function(e){return i(e)}),[]),u=(0,n.useCallback)((function(){return c((0,_t.kS)())}),[c]),d=(0,n.useCallback)((function(e){if(!t.current.value.trim())return alert("Please enter your current password to make changes."),void t.current.focus();e.append("password",t.current.value),c((0,_t.sG)(e))}),[c]);return n.createElement("div",{className:gr},n.createElement("h1",{className:Rr},"My Account"),n.createElement("div",{className:yr},n.createElement("p",null,"Signed in as ",n.createElement("strong",null,r.username)),n.createElement(vr,{user:r,onDirtyChange:l,onSubmit:d},s&&n.createElement(n.Fragment,null,n.createElement("br",null),n.createElement("input",{type:"password",autoComplete:"current-password",placeholder:"current password",ref:t}),n.createElement("button",{className:"primary ".concat(Sr)},"Update Account"))),n.createElement("button",{onClick:u,className:Or},"Sign Out")))};var Cr=r(17801);const _r="zXRZqy8GypIyzzonhQDj",Tr="nn35PIgJyM8hd_PfVG9P",Nr="iWBd2Rn8EbpVZP3_NmrF";var Ar=function(e){return n.createElement("div",{className:_r,onClick:e.onSelect},n.createElement("div",null,n.createElement(M.Z,{icon:"FOLDER",size:28,className:Nr})),n.createElement("div",{className:Tr},e.path))};Ar.propTypes={path:b().string.isRequired,onSelect:b().func};const wr=Ar,Ir="PCD9_JwmkY6aoE1S6ZP_",Pr="zuvIYSwYXKYBkknUSBt0",Zr="Er04pbLH9MbYq06HYgN2",Lr="iMjsWmBEoY_an0jfzpzr",Ur="k7DvjmmaDcQjq3A2XJBH";var kr=new Tt.Z("prefs/path"),jr=function(e){var t=e.onCancel,r=e.onChoose,a=e.isVisible,o=(0,n.useRef)(),s=(0,n.useState)({current:null,parent:null,children:[]}),i=(0,j.Z)(s,2),c=i[0],l=i[1],u=(0,n.useCallback)((function(){r(c.current)}),[r,c]),d=(0,n.useCallback)((function(e){kr("GET","/ls?dir=".concat(encodeURIComponent(e))).then((function(e){return l(e)})).catch((function(e){return alert(e)}))}),[]);return(0,n.useEffect)((function(){a&&d(c.current||".")}),[a]),(0,n.useEffect)((function(){o.current&&(o.current.scrollTop=0)}),[]),n.createElement(Ne,{isVisible:a,onClose:t,title:"Add Folder",style:{width:"90%",height:"90%"}},n.createElement("div",{className:Ir},n.createElement("div",{className:Pr},c.current||" "),n.createElement("div",{className:Zr,ref:o},!1!==c.parent&&n.createElement("strong",null,n.createElement(wr,{path:"..",onSelect:function(){return d(c.parent)}})),c.children.map((function(e,t){return n.createElement(wr,{key:t,path:e.label,onSelect:function(){return d(e.path)}})}))),n.createElement("div",{style:{display:"flex"}},n.createElement("button",{className:"".concat(Lr," primary"),onClick:u},"Add Folder"),n.createElement("button",{className:Ur,onClick:t},"Cancel"))))};jr.propTypes={isVisible:b().bool.isRequired,onChoose:b().func.isRequired,onCancel:b().func.isRequired};const Dr=jr,Mr="vfEtFMD1PnnZpL7KJi5i",qr="reQxnTVFy0pmOJ_OxHEW",xr="ZYVMDVEYbeodkfufIBsd",Vr="cLbX8ACpwjrJHf1i33Kw";var Hr=function(e){var t=e.path,r=t.path,a=t.pathId;return n.createElement(Cr._l,{draggableId:"path-".concat(a),index:e.index},(function(t,o){return n.createElement("div",(0,k.Z)({className:Mr,key:a,ref:t.innerRef,style:t.draggableProps.style},t.draggableProps),n.createElement("div",t.dragHandleProps,n.createElement(M.Z,{icon:"DRAG_INDICATOR",size:24,className:Vr})),n.createElement("div",{className:qr},r),n.createElement(V,{className:xr,"data-path-id":a,icon:"CLEAR",onClick:e.onRemove,size:32}))}))};Hr.propTypes={index:b().number.isRequired,onRemove:b().func.isRequired,path:b().object.isRequired};const zr=Hr,Fr="iEi_d5e035onJ18oKA6M",Gr="IkPiZ7oarPYasin3JcFC",Br="eabAFWz3ueFCR7MFdfnm",Qr="H5t2XU3F3BFidL0_rXXf",Yr="eYUqAJLLPnFSGQfPrwJp",Wr="COsFBSxrE3VeJHh23G5V";var Kr=new Tt.Z("prefs/path");const Xr=function(e){var t=(0,C.v9)((function(e){return e.prefs.paths})),r=(0,n.useState)(!1),a=(0,j.Z)(r,2),o=a[0],s=a[1],i=(0,n.useState)(!1),c=(0,j.Z)(i,2),l=c[0],u=c[1],d=(0,n.useState)(t.result),p=(0,j.Z)(d,2),f=p[0],m=p[1],E=(0,n.useCallback)((function(){return s((function(e){return!e}))}),[]),h=(0,n.useCallback)((function(){return u(!1)}),[]),v=(0,n.useCallback)((function(){return u(!0)}),[]);(0,n.useEffect)((function(){m(t.result)}),[t]);var g=(0,C.I0)(),R=(0,n.useCallback)((function(){return g((0,I.T0)())}),[g]),y=(0,n.useCallback)((function(e){if(e.destination){var t=f.slice(),r=t.splice(e.source.index,1),n=(0,j.Z)(r,1)[0];t.splice(e.destination.index,0,n),m(t),g((0,I.d9)(t))}}),[g,f]),O=(0,n.useCallback)((function(e){Kr("POST","/?dir=".concat(encodeURIComponent(e))).then((function(e){g((0,I.jg)(e)),u(!1)})).catch((function(e){alert(e)}))}),[g]),S=(0,n.useCallback)((function(e){var r=t.entities[e.currentTarget.dataset.pathId],n=r.path,a=r.pathId;confirm("Remove folder from library?\n\n".concat(n))&&(m(f.filter((function(e){return e!==a}))),Kr("DELETE","/".concat(a)).then((function(e){g((0,I.jg)(e))})).catch((function(e){alert(e)})))}),[g,t,f]);return n.createElement("div",{className:Fr},n.createElement("div",{className:Gr,onClick:E},n.createElement(M.Z,{icon:"FOLDER_MUSIC",size:28,className:Qr}),n.createElement("div",{className:Br},"Media Folders"),n.createElement("div",null,n.createElement(M.Z,{icon:o?"CHEVRON_DOWN":"CHEVRON_RIGHT",size:24,className:Qr}))),n.createElement("div",{className:Yr,style:{display:o?"block":"none"}},0===t.result.length&&n.createElement("p",{style:{marginTop:0}},"Add a media folder to get started."),n.createElement(Cr.Z5,{onDragEnd:y},n.createElement(Cr.bK,{droppableId:"droppable"},(function(e,r){return n.createElement("div",(0,k.Z)({ref:e.innerRef},e.droppableProps),f.map((function(e,r){return n.createElement(zr,{index:r,key:e,path:t.entities[e],onRemove:S})})),e.placeholder)}))),n.createElement("div",{className:Wr},n.createElement("button",{className:"primary",style:{flex:1,width:"auto"},onClick:v},"Add Folder"),t.result.length>0&&n.createElement("button",{style:{marginLeft:".5em",width:"auto"},onClick:R},"Refresh")),n.createElement(Dr,{isVisible:l,onCancel:h,onChoose:O})))},Jr="rFRCbyZPT_PQc_wrBjwo",$r="iQsmu84S0UOMvskFslib",en="ug6Vnih76yOx9OR2lGmt",tn="EsTYWrxvRDwQ5bUKgop3",rn="hE76lHI6zK5vyZqbFZPC";const nn=function(e){var t=(0,n.useState)(!1),r=(0,j.Z)(t,2),a=r[0],o=r[1],s=(0,C.v9)((function(e){return e.prefs.isReplayGainEnabled})),i=(0,n.useCallback)((function(){o(!a)}),[a]),c=(0,C.I0)(),l=(0,n.useCallback)((function(e){c((0,I.n)(e.target.name,e.target.checked))}),[c]);return n.createElement("div",{className:Jr},n.createElement("div",{className:$r,onClick:i},n.createElement(M.Z,{icon:"TELEVISION_PLAY",size:28,className:rn}),n.createElement("div",{className:en},"Player"),n.createElement("div",null,n.createElement(M.Z,{icon:a?"CHEVRON_DOWN":"CHEVRON_RIGHT",size:24,className:rn}))),n.createElement("div",{className:tn,style:{display:a?"block":"none"}},n.createElement("label",null,n.createElement("input",{type:"checkbox",checked:s,onChange:l,name:"isReplayGainEnabled"})," ReplayGain (clip-safe)")))},an="UpHxEb2QWaWp9rGss7Hw",on="DXs3pxIfjaqE0SeBpWKz",sn="ew2x2VQFG7Hj_ltiyxbF";const cn=function(e){return n.createElement("div",{className:an},n.createElement("h1",{className:on},"Preferences"),n.createElement("div",{className:sn},n.createElement(Xr,null),n.createElement(nn,null)))};var ln=r(59586);const un="zlSZG60tYLnv3ifQhy83",dn="KPS_QjyNbNZvOcq4_1Pg",pn="B5kM8X2kOsyfaMqa0xWN";var fn=!1,mn=function(e){var t=(0,n.useRef)(null),r=(0,C.I0)(),a=(0,n.useCallback)((function(n){n.preventDefault();var a=new FormData(t.current);a.set("status",a.get("status")?"open":"closed"),e.room?(fn||a.delete("password"),r((0,ln.R$)(e.room.roomId,a))):r((0,ln.dB)(a))}),[r,e.room]),o=(0,n.useCallback)((function(){confirm('Remove room "'.concat(e.room.name,'" and its queue?'))&&r((0,ln.jr)(e.room.roomId))}),[r,e.room]);return(0,n.useEffect)((function(){!1===e.isVisible&&(fn=!1)}),[e.isVisible]),n.createElement(Ne,{isVisible:e.isVisible,onClose:e.onClose,title:e.room?"Edit Room":"Create Room",style:{minWidth:"300px"}},n.createElement("form",{onSubmit:a,ref:t,className:un},n.createElement("input",{type:"text",autoComplete:"off",autoFocus:void 0===e.room,className:pn,defaultValue:e.room?e.room.name:"",name:"name",placeholder:"room name"}),n.createElement("input",{type:"password",autoComplete:"new-password",className:pn,defaultValue:e.room&&e.room.hasPassword?"*".repeat(32):"",name:"password",onChange:function(){fn=!0},placeholder:"room password (optional)"}),n.createElement("label",null,n.createElement("input",{type:"checkbox",defaultChecked:!e.room||"open"===e.room.status,name:"status"})," Open"),n.createElement("br",null),n.createElement("br",null),n.createElement("button",{type:"submit",className:"".concat(dn," primary")},e.room?"Update Room":"Create Room"),e.room&&n.createElement("button",{type:"button",onClick:o,className:dn},"Remove Room"),n.createElement("button",{type:"button",onClick:e.onClose},"Cancel")))};mn.propTypes={room:b().object,isVisible:b().bool.isRequired,onClose:b().func.isRequired};const En=mn;const hn=(0,w.P1)([function(e){return e.rooms.result},function(e){return e.rooms.entities},function(e){return e.rooms.filterStatus}],(function(e,t,r){return{result:e.filter((function(e){return!1===r||t[e].status===r})),entities:t}})),vn="ysLnY77UZ_c1_TfyXfgo",gn="hx1d5UAAVzr0KT0tBfNB",Rn="u57YoQwu4we4ucg5Z3JI",yn="OUzt44G4J9NqiXahGZNg",On="HAVmLg8TCL18Jeiuo7fX";const Sn=function(e){var t=(0,n.useState)(null),r=(0,j.Z)(t,2),a=r[0],o=r[1],s=(0,C.v9)((function(e){return e.rooms})),i=s.isEditorOpen,c=s.filterStatus,l=(0,C.v9)(hn),u=(0,C.I0)(),d=(0,n.useCallback)((function(){return u((0,ln.Xf)())}),[u]),p=(0,n.useCallback)((function(e){"all"===e.target.value?u((0,ln.mj)(!1)):u((0,ln.mj)(e.target.value))}),[u]),f=(0,n.useCallback)((function(e){return u(jt(parseInt(e.target.dataset.roomId,10)))}),[u]),m=(0,n.useCallback)((function(e){o(l.entities[e.target.dataset.roomId]),u((0,ln.V2)())}),[u,l]);(0,n.useEffect)((function(){u((0,ln.Q0)())}),[u]);var E=l.result.map((function(e){var t=l.entities[e];return n.createElement("tr",{key:e},n.createElement("td",null,n.createElement("a",{"data-room-id":e,onClick:m},t.name)),n.createElement("td",null,t.status,t.numUsers>0&&n.createElement(n.Fragment,null," ",n.createElement("a",{"data-room-id":e,onClick:f},"(",t.numUsers,")"))),n.createElement("td",null,We(new Date(1e3*t.dateCreated))))}));return n.createElement("div",{className:vn},n.createElement("div",{className:gn},n.createElement("h1",{className:Rn},"Rooms"),n.createElement("select",{onChange:p,value:!1===c?"all":c},n.createElement("option",{key:"all",value:"all"},"All"),n.createElement("option",{key:"open",value:"open"},"Open"),n.createElement("option",{key:"closed",value:"closed"},"Closed"))),n.createElement("div",{className:yn},n.createElement("table",{className:On},n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Name"),n.createElement("th",null,"Status"),n.createElement("th",null,"Created"))),n.createElement("tbody",null,E)),n.createElement("br",null),n.createElement("button",{onClick:m,className:"primary"},"Create Room"),n.createElement(En,{isVisible:i,onClose:d,room:a})))},bn="GOcqON1ttKvLN26MFNIy";var Cn=function(e){var t=(0,n.useState)(!1),r=(0,j.Z)(t,2),a=r[0],o=r[1],s=(0,n.useCallback)((function(e){return o(e)}),[]);(0,n.useEffect)((function(){!1===e.isVisible&&o(!1)}),[e.isVisible]);var i=(0,C.I0)(),c=(0,n.useCallback)((function(t){e.user?i(Lt(e.user.userId,t)):i(Zt(t))}),[i,e.user]),l=(0,n.useCallback)((function(){confirm('Remove user "'.concat(e.user.username,'"?\n\nTheir history of queued songs will also be removed.'))&&i(Ut(e.user.userId))}),[i,e.user]);return n.createElement(Ne,{isVisible:e.isVisible,onClose:e.onClose,title:e.user?e.user.username:"Create User",style:{minWidth:"300px"}},n.createElement(vr,{user:e.user,onDirtyChange:s,onSubmit:c,showRole:!0},n.createElement("br",null),!e.user&&n.createElement("button",{className:"".concat(bn," primary")},"Create User"),e.user&&a&&n.createElement("button",{className:"".concat(bn," primary")},"Update User")),e.user&&n.createElement("button",{onClick:l,className:bn},"Remove User"),n.createElement("button",{onClick:e.onClose},"Cancel"))};Cn.propTypes={user:b().object,isVisible:b().bool.isRequired,onClose:b().func.isRequired};const _n=Cn;const Tn=(0,w.P1)([function(e){return e.users.result},function(e){return e.users.entities},function(e){return e.users.filterOnline},function(e){return e.users.filterRoomId}],(function(e,t,r,n){return r?e=e.filter((function(e){return t[e].rooms.length})):"number"==typeof n&&(e=e.filter((function(e){return t[e].rooms.includes(n)}))),{result:e,entities:t}})),Nn="ffaCMJ3wIqwLL6cRptTw",An="tQTBvPKeFLjVpNbYouTj",wn="bc5ncwHH9YJ23tSoHwjU",In="qCcT2N3kiZaZB2i4v2gX",Pn="dVtQTutpaei_Zk_0Dmhd";const Zn=function(e){var t=(0,n.useState)(null),r=(0,j.Z)(t,2),a=r[0],o=r[1],s=(0,C.v9)((function(e){return e.user.userId})),i=(0,C.v9)((function(e){return e.users})),c=i.isEditorOpen,l=i.filterOnline,u=i.filterRoomId,d=(0,C.v9)((function(e){return e.rooms})),p=(0,C.v9)(Tn),f=(0,C.I0)(),m=(0,n.useCallback)((function(){return f({type:Nt.USERS_EDITOR_CLOSE})}),[f]),E=(0,n.useCallback)((function(e){"all"===e.target.value?f(kt(!1)):"online"===e.target.value?f(kt(!0)):f(jt(parseInt(e.target.value,10)))}),[f]),h=(0,n.useCallback)((function(e){o(p.entities[e.target.dataset.userId]),f({type:Nt.USERS_EDITOR_OPEN})}),[f,p]);(0,n.useEffect)((function(){f(Pt())}),[f]);var v=p.result.map((function(e){var t=p.entities[e];return n.createElement("tr",{key:e},e===s&&n.createElement("td",null,n.createElement("strong",null,t.username)," (",t.name,")"),e!==s&&n.createElement("td",null,n.createElement("a",{"data-user-id":e,onClick:h},t.username)," (",t.name,")"),n.createElement("td",null,t.isAdmin?"admin":"standard"),n.createElement("td",null,We(new Date(1e3*t.dateCreated))))})),g=d.result.filter((function(e){return!!d.entities[e].numUsers})).map((function(e){return n.createElement("option",{key:e,value:e},d.entities[e].name)}));return n.createElement("div",{className:Nn},n.createElement("div",{className:An},n.createElement("h1",{className:wn},"Users"),n.createElement("select",{onChange:E,value:l?"online":u||"all"},n.createElement("option",{key:"all",value:"all"},"All"),n.createElement("option",{key:"online",value:"online"},"Online"),n.createElement("optgroup",{label:"Online in..."},g))),n.createElement("div",{className:In},n.createElement("table",{className:Pn},n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Username"),n.createElement("th",null,"Role"),n.createElement("th",null,"Joined"))),n.createElement("tbody",null,v)),n.createElement("br",null),n.createElement("button",{onClick:h,className:"primary"},"Create User"),n.createElement(_n,{isVisible:c,onClose:m,user:a})))};const Ln=function(e){var t=(0,C.v9)((function(e){return e.user})).isAdmin,r=!!(0,C.v9)((function(e){return e.users})),a=(0,C.oR)(),o=(0,C.I0)();return t&&!r&&(0,E.fn)(a,{key:"users",reducer:qt}),(0,n.useEffect)((function(){return o((0,_t.$G)())}),[o]),n.createElement(n.Fragment,null,t&&n.createElement(Sn,null),t&&n.createElement(Zn,null),t&&n.createElement(cn,null),n.createElement(br,null),n.createElement(tr,null))},Un=Ln,kn="_kg8JIOeafNciIqzc0kY",jn="Gt1harUlpdZAYOWiLjgK";var Dn,Mn=function(e){var t=e.onSelectRef,r=e.onPasswordRef,a=(0,C.v9)((function(e){return e.rooms})),o=(0,n.useState)(""),s=(0,j.Z)(o,2),i=s[0],c=s[1],l=(0,C.I0)(),u=(0,n.useCallback)((function(e){c(e.target.value)}),[]),d=(0,n.useCallback)((function(e){t(e)}),[t]),p=(0,n.useCallback)((function(e){Dn=e,r(e)}),[r]);return(0,n.useEffect)((function(){return l((0,ln.Q0)())}),[l]),(0,n.useEffect)((function(){1===a.result.length&&c(a.result[0])}),[a]),(0,n.useEffect)((function(){a.result.length>1&&i&&a.entities[i].hasPassword&&Dn.focus()}),[a,i]),n.createElement(n.Fragment,null,n.createElement("select",{value:i,onChange:u,ref:d,className:"".concat(kn," ").concat(jn)},n.createElement("option",{key:"choose",value:"",disabled:!0},"select room..."),a.result.map((function(e){return n.createElement("option",{key:e,value:e},a.entities[e].name)}))),i&&a.entities[i].hasPassword&&n.createElement("input",{type:"password",autoComplete:"off",className:"".concat(kn," ").concat(e.className),placeholder:"room password (required)",ref:p}))};Mn.propTypes={className:b().string,onSelectRef:b().func.isRequired,onPasswordRef:b().func.isRequired};const qn=Mn,xn="f1EKGJojigwMU6SsYuZr";var Vn,Hn,zn=function(e){var t=(0,C.v9)((function(e){return e.user})),r=(0,n.useCallback)((function(e){Vn=e}),[]),a=(0,n.useCallback)((function(e){Hn=e}),[]),o=(0,C.I0)(),s=(0,n.useCallback)((function(e){if(!Vn.value)return alert("Please select a room"),void Vn.focus();e.append("roomId",Vn.value),Hn&&e.append("roomPassword",Hn.value),o((0,_t.o1)(e))}),[o]);return n.createElement(n.Fragment,null,n.createElement("div",{className:xn},n.createElement("h2",null,"Create Account"),n.createElement("span",null,n.createElement("a",{onClick:e.onToggle},"Already have an account?"))),n.createElement(vr,{user:t,onSubmit:s},n.createElement(qn,{onSelectRef:r,onPasswordRef:a}),n.createElement("button",{className:"primary"},"Create Account")))};zn.propTypes={onToggle:b().func.isRequired};const Fn=zn,Gn="Z00W8gVjj0IMplO_RP3Q";const Bn=function(e){var t=(0,C.v9)((function(e){return e.user})),r=(0,C.I0)(),a=(0,n.useCallback)((function(e){r((0,_t.o1)(e))}),[r]);return n.createElement(n.Fragment,null,n.createElement("div",{className:Gn},n.createElement("h2",null,"Welcome"),n.createElement("p",null,"Create your ",n.createElement("b",null,"admin")," account to get started. All data is locally stored and never shared.")),n.createElement(vr,{user:t,onSubmit:a},n.createElement("button",{className:"primary"},"Create Account")))},Qn="eWcvh3MX2knJm1d0CQWu",Yn="GSpYmU6m4qxOLmgK4rX3";var Wn,Kn,Xn=function(e){var t=(0,n.useRef)(null),r=(0,n.useRef)(null),a=(0,n.useCallback)((function(e){Wn=e}),[]),o=(0,n.useCallback)((function(e){Kn=e}),[]),s=(0,C.I0)(),i=(0,n.useCallback)((function(e){e.preventDefault(),s((0,_t.x4)({username:t.current.value.trim(),password:r.current.value,roomId:Wn.value,roomPassword:Kn?Kn.value:void 0}))}),[s]);return n.createElement(n.Fragment,null,n.createElement("div",{className:Qn},n.createElement("h2",null,"Sign In"),n.createElement("span",null,n.createElement("a",{onClick:e.onToggle},"Don’t have an account?"))),n.createElement("form",{noValidate:!0},n.createElement("input",{type:"email",autoComplete:"username",autoFocus:!0,placeholder:"username or email",ref:t,className:Yn}),n.createElement("input",{type:"password",autoComplete:"current-password",placeholder:"password",ref:r,className:Yn}),n.createElement(qn,{onSelectRef:a,onPasswordRef:o}),n.createElement("button",{onClick:i,className:"primary"},"Sign In")))};Xn.propTypes={onToggle:b().func.isRequired};const Jn=Xn,$n="e3jR4OMsV_OIaaAci_hn",ea="kfaDc9tZA7V0rbLrrQxW";const ta=function(e){var t=(0,n.useState)(!1),r=(0,j.Z)(t,2),a=r[0],o=r[1],s=(0,n.useCallback)((function(){return o((function(e){return!e}))}),[]),i=(0,C.v9)((function(e){return!0===e.prefs.isFirstRun})),c=(0,C.v9)((function(e){return e.ui}));return n.createElement("div",{className:$n,style:{maxWidth:Math.max(340,.66*c.contentWidth)}},n.createElement(Bt,{className:ea}),a&&n.createElement(Fn,{onToggle:s}),!i&&!a&&n.createElement(Jn,{onToggle:s}),i&&n.createElement(Bn,null))},ra="EPw4Q8pC4VCZu_ENeHOh";const na=function(e){var t=(0,C.v9)((function(e){return null!==e.user.userId})),r=(0,C.v9)((function(e){return e.ui})),a=(0,C.I0)();return(0,n.useEffect)((function(){a((0,I.no)())}),[a]),n.createElement("div",{className:ra,style:{paddingTop:r.headerHeight,paddingBottom:r.footerHeight,width:r.contentWidth,height:r.innerHeight}},t&&n.createElement(Un,null),!t&&n.createElement(ta,null))};var aa=r(18258),oa=r(74061);const sa="JoCtgfMdp4_LkFISBVdL";function ia(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ca(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ia(Object(r),!0).forEach((function(t){(0,i.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ia(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function la(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var ua=function(e){(0,R.Z)(r,e);var t=la(r);function r(){var e;(0,v.Z)(this,r);for(var a=arguments.length,o=new Array(a),s=0;s<a;s++)o[s]=arguments[s];return e=t.call.apply(t,[this].concat(o)),(0,i.Z)((0,U.Z)(e),"rowRenderer",(function(t){var r=t.index,a=t.style;return 0===r||r===e.props.numRows+1?n.createElement("div",{key:0===r?"top":"bottom",style:a}):e.props.rowRenderer({index:--r,style:ca(ca({},a),{},{paddingRight:e.props.paddingRight})})})),(0,i.Z)((0,U.Z)(e),"getItemSize",(function(t){return 0===t?e.props.paddingTop:t===e.props.numRows+1?e.props.paddingBottom:(t--,e.props.rowHeight(t))})),(0,i.Z)((0,U.Z)(e),"setRef",(function(t){e.list=t})),e}return(0,g.Z)(r,[{key:"componentDidMount",value:function(){this.props.onRef&&this.props.onRef(this.list)}},{key:"render",value:function(){return n.createElement(oa.S_,{itemCount:this.props.numRows+2,itemSize:this.getItemSize,onScroll:this.props.onScroll,overscanCount:10,ref:this.setRef,className:sa,width:this.props.width,height:this.props.height},this.rowRenderer)}},{key:"componentDidUpdate",value:function(e){var t=this.props,r=t.paddingTop,n=t.paddingBottom;r===e.paddingTop&&n===e.paddingBottom||this.list.resetAfterIndex(0)}}]),r}(n.Component);(0,i.Z)(ua,"propTypes",{numRows:b().number.isRequired,onScroll:b().func,onRef:b().func,paddingTop:b().number.isRequired,paddingRight:b().number,paddingBottom:b().number.isRequired,rowRenderer:b().func.isRequired,rowHeight:b().func.isRequired,width:b().number.isRequired,height:b().number.isRequired});const da=ua,pa="vN10Ra6WwFQwsoJD1_3H";function fa(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var ma=function(e){(0,R.Z)(r,e);var t=fa(r);function r(){var e;(0,v.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,i.Z)((0,U.Z)(e),"alphabet","#ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("")),(0,i.Z)((0,U.Z)(e),"state",{isTouchCapable:!1,isTouching:!1,char:null,y:null}),(0,i.Z)((0,U.Z)(e),"handleTouchStart",(function(t){(0,h.TO)(!0),e.setState({isTouchCapable:!0,isTouching:!0})})),(0,i.Z)((0,U.Z)(e),"handleTouch",(function(t){if(t.preventDefault(),"mousedown"!==t.type||!e.state.isTouchCapable){var r=t.targetTouches?t.targetTouches[0].clientY:t.clientY,n=e.alphabet[Math.floor((r-e.props.top)/e.props.height*e.alphabet.length)];e.setState({char:n,y:r-e.props.top}),n!==e.state.char&&void 0!==n&&e.props.onPick(n)}})),(0,i.Z)((0,U.Z)(e),"handleTouchEnd",(function(t){(0,h.TO)(!1),e.setState({isTouching:!1,char:null})})),(0,i.Z)((0,U.Z)(e),"handleRef",(function(t){e.ref=t})),e}return(0,g.Z)(r,[{key:"render",value:function(){return n.createElement("div",{className:pa,style:{height:this.props.height,top:this.props.top},onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouch,onTouchEnd:this.handleTouchEnd,onMouseDown:this.handleTouch,onMouseUp:this.handleTouchEnd,ref:this.handleRef},this.alphabet.map((function(e,t){return n.createElement("div",{key:e,style:{flex:"1 1 auto",minHeight:0}},e)})))}}]),r}(n.Component);ma.propTypes={onPick:b().func.isRequired,height:b().number.isRequired,top:b().number.isRequired};const Ea=ma;var ha=r(37763),va=r.n(ha),ga=r(45338);const Ra="NLkRlVVNnuiKJMNOXMhe",ya="IW53X1CCc5LsUP_viCWs";function Oa(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var Sa=function(e){(0,R.Z)(r,e);var t=Oa(r);function r(){return(0,v.Z)(this,r),t.apply(this,arguments)}return(0,g.Z)(r,[{key:"render",value:function(){var e=this,t=0,r=n.Children.map(this.props.children,(function(r,a){if(n.isValidElement(r))return r.props["data-hide"]&&!e.props.isExpanded?n.cloneElement(r,{className:r.props.className+" "+ya}):(t++,r)}));return n.createElement("div",{className:"".concat(Ra," ").concat(this.props.className),style:{width:this.props.btnWidth*t}},r)}}]),r}(n.Component);(0,i.Z)(Sa,"propTypes",{btnWidth:b().number.isRequired,className:b().string,children:b().any,isExpanded:b().bool.isRequired});const ba=Sa;function Ca(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var _a=function(e){(0,R.Z)(r,e);var t=Ca(r);function r(){var e;(0,v.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,i.Z)((0,U.Z)(e),"state",{animate:!1}),(0,i.Z)((0,U.Z)(e),"handleAnimationEnd",(function(t){return e.setState({animate:!1})})),e}return(0,g.Z)(r,[{key:"componentDidUpdate",value:function(e,t){this.props.toggle!==e.toggle&&this.setState({animate:!0})}},{key:"render",value:function(){var e=this;return this.state.animate?n.Children.map(this.props.children,(function(t){return n.cloneElement(t,{className:t.props.className+" "+e.props.className,onAnimationEnd:e.handleAnimationEnd})})):this.props.children}}]),r}(n.Component);(0,i.Z)(_a,"propTypes",{toggle:b().bool.isRequired,className:b().string.isRequired,children:b().node});const Ta=_a,Na="Hk5Oiz4LTn0TQU1HJ_4r",Aa="zik5wR9zmSukEda8d8FN Hk5Oiz4LTn0TQU1HJ_4r",wa="oqSOn8U_QmqEzSvyfAw_",Ia="q8d4R7JJbyKfMfb5qTtn",Pa="hxXzgFhspryRgl6_AkmQ",Za="z8K08MurHExDsFH50TjN",La="INKd0vI4DamezRZUfFHO",Ua="DLgbTdB3hYU0zYVmvotm",ka="bfE_vcKGNAy6HuKrhsLQ",ja="sITkO1nY1LgSZ74YOArz",Da="a2lTNMjjT5QzeuYbGeux",Ma="sF5sWiz0_6zeoGgwx9_r a2lTNMjjT5QzeuYbGeux",qa="r4HcW54ut9T2YXA4ysAf",xa="IpLs3GshduGnVRAThUSV";var Va=!1,Ha=function(e){var t=e.songId,r=e.artist,a=e.title,o=e.duration,s=e.onSongQueue,i=e.onSongStarClick,c=e.onSongInfo,l=e.isQueued,u=e.isStarred,d=e.isAdmin,p=e.numStars,f=e.numMedia,m=e.filterKeywords,E=(0,n.useState)(!1),h=(0,j.Z)(E,2),v=h[0],g=h[1],R=(0,n.useCallback)((function(){Va?Va=!1:s(t)}),[s,t]),y=(0,n.useCallback)((function(){return c(t)}),[c,t]),O=(0,n.useCallback)((function(){return i(t)}),[i,t]),S=(0,ga.QS)({onSwipedLeft:(0,n.useCallback)((function(e){var t=e.event;Va="mouseup"===t.type,g(d)}),[d]),onSwipedRight:(0,n.useCallback)((function(e){var t=e.event;Va="mouseup"===t.type,g(!1)}),[]),preventScrollOnSwipe:!0,trackMouse:!0});return n.createElement("div",(0,k.Z)({},S,{style:{height:r?60:44},className:l?Aa:Na}),n.createElement(Ta,{toggle:l,className:Ia},n.createElement("div",{className:Pa},Ke(o)),n.createElement("div",{onClick:R,className:Za},n.createElement("div",{className:wa},n.createElement(va(),{autoEscape:!0,textToHighlight:a,searchWords:m}),d&&f>1&&n.createElement("i",null," (",f,")"),r&&n.createElement("div",{className:La},r)))),n.createElement(ba,{btnWidth:50,isExpanded:v},n.createElement("div",{onClick:O,className:"".concat(Ua," ").concat(ka)},n.createElement(Ta,{toggle:u,className:qa},n.createElement(M.Z,{size:44,icon:"STAR_FULL",className:u?ja:ka})),n.createElement("div",{className:u?Ma:Da},p||"")),n.createElement("div",{onClick:y,className:Ua,"data-hide":!0},n.createElement(M.Z,{size:44,icon:"INFO_OUTLINE",className:"".concat(Ua," ").concat(xa)}))))};Ha.propTypes={songId:b().number.isRequired,artist:b().string,title:b().string.isRequired,duration:b().number.isRequired,onSongQueue:b().func.isRequired,onSongStarClick:b().func.isRequired,onSongInfo:b().func.isRequired,isQueued:b().bool.isRequired,isStarred:b().bool.isRequired,isAdmin:b().bool.isRequired,numStars:b().number.isRequired,numMedia:b().number.isRequired,filterKeywords:b().array.isRequired};const za=Ha;var Fa=function(e){return e.songIds.map((function(t){return n.createElement(za,(0,k.Z)({},e.songs[t],{artist:e.showArtist?e.artists[e.songs[t].artistId].name:"",filterKeywords:e.filterKeywords,isQueued:e.queuedSongs.includes(t),isStarred:e.starredSongs.includes(t),isAdmin:e.isAdmin,key:t,numStars:e.starredSongCounts[t]||0,onSongQueue:e.queueSong,onSongStarClick:e.toggleSongStarred,onSongInfo:e.showSongInfo}))}))};Fa.propTypes={artists:b().object.isRequired,filterKeywords:b().array.isRequired,queuedSongs:b().array.isRequired,showArtist:b().bool.isRequired,songs:b().object.isRequired,songIds:b().array.isRequired,starredSongs:b().array.isRequired,starredSongCounts:b().object.isRequired,queueSong:b().func.isRequired,showSongInfo:b().func.isRequired,toggleSongStarred:b().func.isRequired};const Ga=Fa;var Ba=r(28666),Qa=r(24606),Ya={queueSong:Ba.b,showSongInfo:gt.Pe,toggleSongStarred:Qa.m};const Wa=(0,C.$j)((function(e,t){return{artists:e.artists.entities,isAdmin:e.user.isAdmin,songs:e.songs.entities,starredSongs:(0,c.jf)(e.userStars).starredSongs,starredSongCounts:e.starCounts.songs}}),Ya)(Ga),Ka="ZQ1vJSuEzaXfK5U2mVy3",Xa="Oeq1kmzT_zA03h__nm96 ZQ1vJSuEzaXfK5U2mVy3",Ja="Lo0KOIA2KNbjdkAzONWs",$a="MX_Porxug1vkdk_A2Vcz",eo="HZ0_7hegL7xDvnX1Vw9I",to="lLz_KOztRoFN8eQxqGc1",ro="Bc6UO2wMDwOUxrq1bAUP lLz_KOztRoFN8eQxqGc1",no="b9LqH0GqWQ8WmCaa4ktx",ao="EsKyaVkUOVjrQNBLIEEM",oo="qAmZbfGSZX2Xu4xgWagx EsKyaVkUOVjrQNBLIEEM";function so(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var io=function(e){(0,R.Z)(r,e);var t=so(r);function r(){var e;(0,v.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,i.Z)((0,U.Z)(e),"handleArtistClick",(function(){e.props.onArtistClick(e.props.artistId)})),e}return(0,g.Z)(r,[{key:"render",value:function(){var e=this.props,t=e.artistSongIds.some((function(t){return e.queuedSongs.includes(t)})),r=e.artistSongIds.some((function(t){return e.starredSongs.includes(t)}));return n.createElement("div",{style:e.style},n.createElement("div",{onClick:this.handleArtistClick,className:e.isExpanded?Xa:Ka},n.createElement("div",{className:r?ro:to},n.createElement(M.Z,{icon:"FOLDER",size:44}),e.isExpanded&&n.createElement("div",{className:r?oo:ao},n.createElement(M.Z,{icon:"CHEVRON_DOWN",size:24})),!e.isExpanded&&n.createElement("div",{className:no},e.artistSongIds.length)),n.createElement(Ta,{toggle:t,className:eo},n.createElement("div",{className:"".concat(Ja," ").concat(t?$a:"")},n.createElement(va(),{autoEscape:!0,textToHighlight:e.name,searchWords:e.filterKeywords})))),e.isExpanded&&n.createElement(Wa,{songIds:e.artistSongIds,showArtist:!1,filterKeywords:e.filterKeywords,queuedSongs:e.queuedSongs}))}}]),r}(n.Component);(0,i.Z)(io,"propTypes",{artistId:b().number.isRequired,artistSongIds:b().array.isRequired,filterKeywords:b().array.isRequired,isExpanded:b().bool.isRequired,name:b().string.isRequired,numStars:b().number.isRequired,queuedSongs:b().array.isRequired,starredSongs:b().array.isRequired,style:b().object,onArtistClick:b().func.isRequired});const co=io;function lo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var uo=function(e){(0,R.Z)(r,e);var t=lo(r);function r(){var e;(0,v.Z)(this,r);for(var a=arguments.length,o=new Array(a),s=0;s<a;s++)o[s]=arguments[s];return e=t.call.apply(t,[this].concat(o)),(0,i.Z)((0,U.Z)(e),"rowRenderer",(function(t){var r=t.index,a=t.style,o=e.props,s=o.artists,i=o.artistsResult,c=o.expandedArtists,l=s[i[r]];return n.createElement(co,{artistId:l.artistId,artistSongIds:l.songIds,filterKeywords:e.props.filterKeywords,isExpanded:c.includes(l.artistId),key:l.artistId,name:l.name,numStars:e.props.starredArtistCounts[l.artistId]||0,onArtistClick:e.props.toggleArtistExpanded,queuedSongs:e.props.queuedSongs,starredSongs:e.props.starredSongs,songs:e.props.songs,style:a})})),(0,i.Z)((0,U.Z)(e),"rowHeight",(function(t){var r=e.props.artistsResult[t],n=1;return e.props.expandedArtists.includes(r)&&(n+=e.props.artists[r].songIds.length),44*n})),(0,i.Z)((0,U.Z)(e),"handleScroll",(function(t){var r=t.scrollOffset;e.lastScrollTop=r})),(0,i.Z)((0,U.Z)(e),"handleAlphaPick",(function(t){var r=e.props.alphaPickerMap[t];void 0!==r&&e.list.scrollToItem(r>0?r-1:r,"start")})),(0,i.Z)((0,U.Z)(e),"handleRef",(function(t){e.list=t,e.list.scrollTo(e.props.scrollTop)})),e}return(0,g.Z)(r,[{key:"render",value:function(){return 0===this.props.artistsResult.length?null:n.createElement("div",null,n.createElement(da,{numRows:this.props.artistsResult.length,rowHeight:this.rowHeight,rowRenderer:this.rowRenderer,onScroll:this.handleScroll,onRef:this.handleRef,paddingTop:this.props.ui.headerHeight,paddingRight:30,paddingBottom:this.props.ui.footerHeight,width:this.props.ui.innerWidth,height:this.props.ui.innerHeight}),n.createElement(Ea,{onPick:this.handleAlphaPick,onTouch:this.handleAlphaTouch,height:this.props.ui.innerHeight-this.props.ui.headerHeight-this.props.ui.footerHeight,top:this.props.ui.headerHeight}))}},{key:"componentWillUnmount",value:function(){this.props.scrollArtists(this.lastScrollTop||this.props.scrollTop)}},{key:"componentDidUpdate",value:function(e){this.list&&this.list.resetAfterIndex(0)}}]),r}(n.Component);(0,i.Z)(uo,"propTypes",{alphaPickerMap:b().object.isRequired,artists:b().object.isRequired,artistsResult:b().array.isRequired,expandedArtists:b().array.isRequired,filterKeywords:b().array.isRequired,queuedSongs:b().array.isRequired,songs:b().object.isRequired,starredSongs:b().array.isRequired,starredArtistCounts:b().object.isRequired,scrollTop:b().number.isRequired,ui:b().object.isRequired,toggleArtistExpanded:b().func.isRequired,scrollArtists:b().func.isRequired});const po=uo,fo="FM0NON48tUGevc0Mocok",mo="CEmdQRH561N9ZZS2sElY";function Eo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var ho=function(e){(0,R.Z)(r,e);var t=Eo(r);function r(){var e;(0,v.Z)(this,r);for(var a=arguments.length,o=new Array(a),s=0;s<a;s++)o[s]=arguments[s];return e=t.call.apply(t,[this].concat(o)),(0,i.Z)((0,U.Z)(e),"rowRenderer",(function(t){var r=t.index,a=t.style,o=e.props,s=o.artistsResult,i=o.songsResult,c=o.filterStarred;if(0===r)return n.createElement("div",{key:"artistsHeading",style:a,className:fo},s.length," ",c?"starred ":"",1===s.length?"artist":"artists");if(r>0&&r<s.length+1){var l=s[r-1],u=e.props.artists[l];return n.createElement(co,{artistId:l,songs:e.props.songs,name:u.name,numStars:e.props.starredArtistCounts[l]||0,artistSongIds:u.songIds,queuedSongs:e.props.queuedSongs,starredSongs:e.props.starredSongs,isExpanded:e.props.expandedArtistResults.includes(l),filterKeywords:e.props.filterKeywords,onArtistClick:e.props.toggleArtistResultExpanded,key:l,style:a})}return r===s.length+1?n.createElement("div",{key:"songsHeading",style:a,className:mo},i.length," ",c?"starred ":"",1===i.length?"song":"songs"):n.createElement("div",{style:a,key:"songs"},n.createElement(Wa,{songIds:i,showArtist:!0,filterKeywords:e.props.filterKeywords,queuedSongs:e.props.queuedSongs}))})),(0,i.Z)((0,U.Z)(e),"rowHeight",(function(t){if(0===t)return 22;if(t>0&&t<e.props.artistsResult.length+1){var r=1,n=e.props.artistsResult[t-1];return e.props.expandedArtistResults.includes(n)&&(r+=e.props.artists[n].songIds.length),44*r}return t===e.props.artistsResult.length+1?22:60*e.props.songsResult.length})),(0,i.Z)((0,U.Z)(e),"setRef",(function(t){e.list=t})),e}return(0,g.Z)(r,[{key:"componentDidUpdate",value:function(e){this.list&&this.list.resetAfterIndex(0)}},{key:"render",value:function(){return n.createElement(da,{numRows:this.props.artistsResult.length+3,rowHeight:this.rowHeight,rowRenderer:this.rowRenderer,paddingTop:this.props.ui.headerHeight,paddingRight:4,paddingBottom:this.props.ui.footerHeight,width:this.props.ui.innerWidth,height:this.props.ui.innerHeight,onRef:this.setRef})}}]),r}(n.Component);(0,i.Z)(ho,"propTypes",{artists:b().object.isRequired,artistsResult:b().array.isRequired,expandedArtistResults:b().array.isRequired,filterKeywords:b().array.isRequired,filterStarred:b().bool.isRequired,queuedSongs:b().array.isRequired,songs:b().object.isRequired,songsResult:b().array.isRequired,starredSongs:b().array.isRequired,starredArtistCounts:b().object.isRequired,ui:b().object.isRequired,toggleArtistResultExpanded:b().func.isRequired});const vo=ho,go="l_cLCw9eRNCSyRKgXWS5",Ro="Fog7IKmx1oVfPd8FU407";var yo=function(e){return n.createElement("div",{className:go},n.createElement("div",{className:"".concat(Ro," ").concat(e.className)},e.children))};const Oo=yo;yo.propTypes={children:b().node.isRequired,className:b().string};const So=Oo,bo="Cy2j9ZX2IZrQWobGUi7X",Co="dTWtSURLdyh9OV1LTnaC",_o="L3qh5gTBMbZXjFIzwmUI",To="f7Ry7aQoljxI7zOj18tU",No="jZojmB6JI3Y1bkX6XnDI",Ao="EcvP0cnG_tPw2rSbAdHh";const wo=function(){return n.createElement("div",{className:bo},n.createElement("div",{className:Co}),n.createElement("div",{className:"".concat(Co," ").concat(_o)}),n.createElement("div",{className:"".concat(Co," ").concat(To)}),n.createElement("div",{className:"".concat(Co," ").concat(No)}),n.createElement("div",{className:"".concat(Co," ").concat(Ao)}))},Io="bhZWQ2xPWPTNIX6C4F3a";var Po=function(e){var t=e.isAdmin,r=e.isEmpty,a=e.isLoading,o=e.isSearching;return n.createElement(n.Fragment,null,!o&&n.createElement(po,e),o&&n.createElement(vo,e),a&&n.createElement(wo,null),!a&&r&&n.createElement(So,{className:Io},n.createElement("h1",null,"Library Empty"),t&&n.createElement("p",null,n.createElement(T.rU,{to:"/account"},"Add media folders")," to get started.")))};Po.propTypes={isAdmin:b().bool.isRequired,isLoading:b().bool.isRequired,isSearching:b().bool.isRequired,isEmpty:b().bool.isRequired};const Zo=Po;var Lo=function(e){return e.artists},Uo=function(e){return e.songs},ko=function(e){return e.library.filterStr.trim().toLowerCase()},jo=function(e){return e.library.filterStarred},Do=function(e){return(0,c.jf)(e.userStars).starredSongs},Mo=(0,w.P1)([function(e){return(0,c.jf)(e.queue)},function(e){return e.status.queueId},function(e){return e.status.historyJSON}],(function(e,t,r){return r=JSON.parse(r),e.result.filter((function(e){return!r.includes(e)})).map((function(t){return e.entities[t].songId}))})),qo=(0,w.P1)([ko],(function(e){return e.length?e.split(" "):[]})),xo=(0,w.P1)([Lo],(function(e){var t={"#":0},r="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),n=0;return e.result.forEach((function(a,o){var s=e.entities[a].name[0].toUpperCase(),i=r.indexOf(s)-n;i>=0&&(t[r[n+=i]]=o,n++)})),t})),Vo=(0,w.P1)([Lo],(function(e){return new aa.sz(e.result,{keySelector:function(t){return e.entities[t].name},threshold:.8})})),Ho=(0,w.P1)([Uo],(function(e){return new aa.sz(e.result,{keySelector:function(t){return e.entities[t].title},threshold:.8})})),zo=(0,w.P1)([Lo,ko,Vo],(function(e,t,r){return t?r.search(t,{returnMatchData:!0}).map((function(e){return e.item})):e.result})),Fo=(0,w.P1)([Uo,ko,Ho],(function(e,t,r){return t?r.search(t,{returnMatchData:!0}).map((function(e){return e.item})):e.result})),Go=(0,w.P1)([zo,jo,function(e){return(0,c.jf)(e.userStars).starredArtists}],(function(e,t,r){return e.filter((function(e){return!t||r.includes(e)}))})),Bo=(0,w.P1)([Fo,jo,Do],(function(e,t,r){return e.filter((function(e){return!t||r.includes(e)}))})),Qo={toggleArtistExpanded:K.fu,toggleArtistResultExpanded:K.d3,scrollArtists:K.Ib,showSongInfo:gt.Pe,closeSongInfo:gt.xc};const Yo=(0,C.$j)((function(e){return{artists:e.artists.entities,songs:e.songs.entities,starredArtistCounts:e.starCounts.artists,queuedSongs:Mo(e),starredSongs:Do(e),expandedArtists:e.library.expandedArtists,alphaPickerMap:xo(e),scrollTop:e.library.scrollTop,isAdmin:e.user.isAdmin,isSearching:!!qo(e).length||jo(e),isLoading:e.library.isLoading,isEmpty:0===e.songs.result.length,ui:e.ui,songsResult:Bo(e),artistsResult:Go(e),filterKeywords:qo(e),filterStarred:jo(e),expandedArtistResults:e.library.expandedArtistResults}}),Qo)(Zo);var Wo=r(7174);const Ko="wmZzvQLV8SUXBxloByaI",Xo="OcXId78BLaxBJIqdYIof",Jo="umnUSnD73DO3rWOYPZ9K",$o="GacRKdveAPO6_ywV1_ca",es="RGd3UJAFUhL9NuucNZat",ts="ctOyiO7TWxvaj2cMva6s",rs="pCDYhCexaZe_zujCsnng",ns="nDkBZyovKLxzMG7K_3Tg",as="Wj7Me9sY8G3TTqTAeAaj",os="oyozFDwcV8GMOumLs906 VVVypNxrRbHxoVVWCt7a",ss="PyOIw1JanvSSiLfkRkZt VVVypNxrRbHxoVVWCt7a",is="HEBTYqqhv5BzgHhWH7vd",cs="_LtmdT6l38fSEjxPLZod",ls="ipO9CAddWNfj0FeLnSlg",us="YmwxQ7Vy9kTAPCo00I2U",ds="tX8eNQUgD77rREuwXWHO",ps="ZRVZZ_1kYEKO36fznW79";var fs=["artist","dateUpdated","errorMessage","isCurrent","isErrored","isInfoable","isMovable","isOwner","isPlayed","isRemovable","isSkippable","isStarred","isUpcoming","onMoveClick","pctPlayed","queueId","songId","title","userId","userDisplayName","wait"],ms=function(e){var t=e.artist,r=e.dateUpdated,a=e.errorMessage,o=e.isCurrent,s=e.isErrored,i=e.isInfoable,c=e.isMovable,l=e.isOwner,u=e.isPlayed,d=e.isRemovable,p=e.isSkippable,f=e.isStarred,m=e.isUpcoming,E=e.onMoveClick,v=e.pctPlayed,g=e.queueId,R=e.songId,y=e.title,O=e.userId,S=e.userDisplayName,b=e.wait,_=((0,D.Z)(e,fs),(0,n.useState)(!1)),T=(0,j.Z)(_,2),N=T[0],A=T[1],w=(0,C.I0)(),I=(0,n.useCallback)((function(){return w((0,h.UW)(a))}),[w,a]),P=(0,n.useCallback)((function(){return w((0,gt.Pe)(R))}),[w,R]),Z=(0,n.useCallback)((function(){E(g),A(!1)}),[E,g]),L=(0,n.useCallback)((function(){w((0,Ba.b)(R)),A(!1)}),[w,R]),U=(0,n.useCallback)((function(){return w((0,Ba.cl)(g))}),[w,g]),M=(0,n.useCallback)((function(){return w((0,ee.EV)())}),[w]),q=(0,n.useCallback)((function(){return w((0,Qa.m)(R))}),[w,R]),x=(0,ga.QS)({onSwipedLeft:(0,n.useCallback)((function(){A(s||i||d||p)}),[s,i,d,p]),onSwipedRight:(0,n.useCallback)((function(){return A(!1)}),[]),preventScrollOnSwipe:!0,trackMouse:!0});return n.createElement("div",(0,k.Z)({},x,{className:Ko,style:{backgroundSize:(o&&v<2?2:v)+"% 100%"}}),n.createElement("div",{className:Xo},n.createElement("div",{className:"".concat($o," ").concat(u?Jo:"")},n.createElement(Wo.Z,{userId:O,dateUpdated:r,height:72,className:es}),n.createElement("div",{className:ts},m&&n.createElement("div",{className:"".concat(rs," ").concat(l?cs:"")},b))),n.createElement("div",{className:"".concat(ns," ").concat(u?Jo:"")},n.createElement("div",{className:as},n.createElement("div",{className:os},y),n.createElement("div",{className:ss},t)),n.createElement("div",{className:"".concat(is," ").concat(l?cs:"")},S)),n.createElement(ba,{btnWidth:50,isExpanded:N},s&&n.createElement(V,{className:"".concat(ls," ").concat(ds),icon:"INFO_OUTLINE",onClick:I,size:44}),n.createElement(V,{animateClassName:ps,className:"".concat(ls," ").concat(f?us:""),icon:"STAR_FULL",onClick:q,size:44}),u&&n.createElement(V,{className:"".concat(ls," ").concat(us),"data-hide":!0,icon:"REFRESH",onClick:L,size:48}),c&&n.createElement(V,{className:"".concat(ls," ").concat(us),"data-hide":!0,icon:"MOVE_TOP",onClick:Z,size:44}),i&&n.createElement(V,{className:"".concat(ls," ").concat(us),"data-hide":!0,icon:"INFO_OUTLINE",onClick:P,size:44}),d&&n.createElement(V,{className:"".concat(ls," ").concat(ds),"data-hide":!0,icon:"CLEAR",onClick:U,size:44}),p&&n.createElement(V,{className:"".concat(ls," ").concat(ds),"data-hide":!0,icon:"PLAY_NEXT",onClick:M,size:44}))))};ms.propTypes={artist:b().string.isRequired,dateUpdated:b().number.isRequired,errorMessage:b().string.isRequired,isCurrent:b().bool.isRequired,isErrored:b().bool.isRequired,isInfoable:b().bool.isRequired,isMovable:b().bool.isRequired,isOwner:b().bool.isRequired,isPlayed:b().bool.isRequired,isRemovable:b().bool.isRequired,isSkippable:b().bool.isRequired,isStarred:b().bool.isRequired,isUpcoming:b().bool.isRequired,pctPlayed:b().number.isRequired,queueId:b().number.isRequired,songId:b().number.isRequired,title:b().string.isRequired,userId:b().number.isRequired,userDisplayName:b().string.isRequired,wait:b().string,onMoveClick:b().func.isRequired};const Es=n.memo(ms);var hs=r(12690);const vs="bbUhdC2XhFqBtedX7G5x",gs="oj9sgd1_DuPZvgyJKc_3";var Rs=function(e,t){e.addEventListener("animationend",(function(e){return e.target.classList.remove(vs)})),e.classList.add(vs),e.style.removeProperty("opacity")},ys=function(e,t,r){e.addEventListener("animationend",r),e.classList.add(gs)},Os=function(e,t){return t===e},Ss=function(e){var t=e.children,r=(0,C.v9)((function(e){return e.ui.headerHeight})),a=n.Children.map(t,(function(e){return n.createElement(hs.$3,{flipId:e.key,key:e.key,onAppear:Rs,onExit:ys,shouldFlip:Os,translate:!0},n.createElement("div",null,e))}));return n.createElement(hs.U5,{applyTransformOrigin:!1,decisionData:r,flipKey:t},a)};Ss.propTypes={children:b().node};const bs=Ss;const Cs=function(e){var t=(0,C.v9)((function(e){return e.artists})),r=(0,C.v9)((function(e){return e.status})),a=r.errorMessage,o=r.isAtQueueEnd,s=r.isErrored,i=r.position,l=r.queueId,u=(0,C.v9)(Z.Z),d=(0,C.v9)(P.Z),p=(0,C.v9)((function(e){return e.songs})),f=(0,C.v9)((function(e){return(0,c.jf)(e.userStars).starredSongs})),m=(0,C.v9)((function(e){return e.user})),E=(0,C.v9)(L),h=(0,C.I0)(),v=(0,n.useCallback)((function(e){for(var t=d.entities[e].userId,r=l,n=d.result.indexOf(l);n>=0;n--)if(d.entities[d.result[n]].userId===t){r=d.result[n];break}h((0,Ba.uo)(e,r))}),[h,l,d.entities,d.result]),g=d.result.map((function(e){var r=d.entities[e],c=p.entities[r.songId].duration,h=e===l&&!o,g=e!==l&&!u.includes(e),R=r.userId===m.userId;return n.createElement(Es,(0,k.Z)({},r,{artist:t.entities[p.entities[r.songId].artistId].name,errorMessage:h&&a?a:"",isCurrent:h,key:e,isErrored:h&&s,isInfoable:m.isAdmin,isMovable:g&&(R||m.isAdmin),isOwner:R,isPlayed:!g&&!h,isRemovable:g&&(R||m.isAdmin),isSkippable:h&&(R||m.isAdmin),isStarred:f.includes(r.songId),isUpcoming:g,pctPlayed:h?i/c*100:0,title:p.entities[r.songId].title,wait:Xe(E[e],!0),onMoveClick:v}))}));return n.createElement(bs,null,g)},_s="SF0X5MbNRNL3euuIjCwB";const Ts=function(e){var t=(0,C.v9)((function(e){return e.ui})),r=t.innerWidth,a=t.innerHeight,o=t.headerHeight,s=t.footerHeight,i=(0,C.v9)((function(e){return!!e.user.roomId})),l=(0,C.v9)((function(e){return(0,c.jf)(e.queue).isLoading})),u=(0,C.v9)(P.Z),d=(0,C.v9)((function(e){return e.status.queueId})),p=(0,n.useRef)();return(0,n.useEffect)((function(){if(p.current){var e=u.result.indexOf(d);p.current.scrollTop=92*e}}),[]),n.createElement("div",{className:_s,ref:p,style:{paddingTop:o,paddingBottom:s,width:r,height:a}},!i&&n.createElement(So,null,n.createElement("h1",null,"Get a Room!"),n.createElement("p",null,n.createElement(T.rU,{to:"/account"},"Sign in to a room")," to start queueing songs.")),l&&n.createElement(wo,null),!l&&0===u.result.length&&n.createElement(So,null,n.createElement("h1",null,"Queue Empty"),n.createElement("p",null,"Tap a song in the ",n.createElement(T.rU,{to:"/library"},"library")," to queue it.")),n.createElement(Cs,null))};var Ns=n.lazy((function(){return Promise.all([r.e(591),r.e(845)]).then(r.bind(r,92845))}));const As=function(e){return n.createElement(A.Z5,null,n.createElement(A.AW,{path:"/account",element:n.createElement(na,null)}),n.createElement(A.AW,{path:"/library",element:n.createElement(ws,{path:"/library",redirectTo:"/account"},n.createElement(Yo,null))}),n.createElement(A.AW,{path:"/queue",element:n.createElement(ws,{path:"/queue",redirectTo:"/account"},n.createElement(Ts,null))}),n.createElement(A.AW,{path:"/player",element:n.createElement(ws,{path:"/player",redirectTo:"/account"},n.createElement(Ns,null))}),n.createElement(A.AW,{path:"/",element:n.createElement(A.Fg,{to:"/library"})}))};var ws=function(e){var t=e.children,r=e.path,a=e.redirectTo,o=(0,C.v9)((function(e){return null!==e.user.userId})),s=(0,A.TH)();if(!o){var i=new URLSearchParams(s.search);return i.set("redirect",r),n.createElement(A.Fg,{to:a+"?"+i.toString()})}return t};ws.propTypes={children:b().node.isRequired,path:b().string.isRequired,redirectTo:b().string.isRequired};const Is=As;const Ps=function(e){var t=(0,C.I0)(),r=n.useRef(),a=n.useRef();(0,N.Z)({onResize:function(e){e.width;var r=e.height;t((0,h.cs)(r))},ref:r}),(0,N.Z)({onResize:function(e){e.width;var r=e.height;t((0,h.Qs)(r))},ref:a});var o=(0,C.v9)((function(e){return e.ui})),s=(0,n.useCallback)((function(){return t((0,h.Ds)())}),[t]);return n.createElement(n.Fragment,null,n.createElement(ut,{ref:r}),n.createElement(Is,null),n.createElement(vt,{ref:a}),n.createElement(bt,null),n.createElement(Ne,{isVisible:o.isErrored,onClose:s,title:"Oops...",buttons:n.createElement("button",{onClick:s},"OK")},n.createElement("p",{style:{"-webkit-user-select":"text",userSelect:"text"}},o.errorMessage)))};var Zs=r(41474);function Ls(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,O.Z)(e);if(t){var a=(0,O.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,y.Z)(this,r)}}var Us=new URL(document.baseURI).pathname,ks=function(e){(0,R.Z)(r,e);var t=Ls(r);function r(){return(0,v.Z)(this,r),t.apply(this,arguments)}return(0,g.Z)(r,[{key:"render",value:function(){return n.createElement(C.zt,{store:this.props.store},n.createElement(_.r,{loading:n.createElement(wo,null),persistor:this.props.persistor},n.createElement(n.Suspense,{fallback:n.createElement(wo,null)},n.createElement(T.M,{history:Zs.Z,basename:Us},n.createElement(Ps,null)))))}}]),r}(n.Component);(0,i.Z)(ks,"propTypes",{store:b().object.isRequired,persistor:b().object.isRequired});const js=ks;var Ds=r(99244),Ms=r(61818);window._socket=(0,Ms.ZP)({autoConnect:!1,path:new URL(document.baseURI).pathname+"socket.io"}),window._socket.on("reconnect_attempt",(function(){qs.dispatch((0,_t.zp)())}));var qs=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};window.addEventListener("resize",(function(){return i.dispatch((0,h.Qr)(window))}));var t=(0,m.ZP)(1e3,{leading:!0,trailing:!0}),r=p(window._socket,"server/"),n=[f.Z,t,r],a=[],s=o.qC,i=(0,o.MT)((0,E.ZP)(),e,s.apply(void 0,[o.md.apply(void 0,n)].concat(a)));return i.asyncReducers={},i}(window.__INITIAL_STATE__);window._persistor=(0,Ds.p5)(qs,null,(function(){null!==qs.getState().user.userId&&(qs.dispatch((0,_t.zp)()),window._socket.open())}));var xs=document.getElementById("root");a.render(n.createElement(js,{store:qs,persistor:window._persistor}),xs)},91595:(e,t,r)=>{"use strict";r.d(t,{HJ:()=>p,Ib:()=>c,Qz:()=>f,ZP:()=>h,d3:()=>u,fu:()=>l,je:()=>d});var n,a=r(4942),o=r(94081);function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){(0,a.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e){return{type:o.SCROLL_ARTISTS,payload:e}}function l(e){return{type:o.TOGGLE_ARTIST_EXPANDED,payload:e}}function u(e){return{type:o.TOGGLE_ARTIST_RESULT_EXPANDED,payload:e}}function d(e){return{type:o.LIBRARY_FILTER_STRING,payload:{str:e},meta:{throttle:{wait:350,leading:!1}}}}function p(){return{type:o.LIBRARY_FILTER_STRING_RESET}}function f(){return{type:o.LIBRARY_FILTER_TOGGLE_STARRED}}var m=(n={},(0,a.Z)(n,o.LIBRARY_FILTER_STRING,(function(e,t){var r=t.payload;return i(i({},e),{},{filterStr:r.str})})),(0,a.Z)(n,o.LIBRARY_FILTER_STRING_RESET,(function(e,t){t.payload;return i(i({},e),{},{filterStr:""})})),(0,a.Z)(n,o.LIBRARY_FILTER_TOGGLE_STARRED,(function(e,t){t.payload;return i(i({},e),{},{filterStarred:!e.filterStarred})})),(0,a.Z)(n,o.SCROLL_ARTISTS,(function(e,t){var r=t.payload;return i(i({},e),{},{scrollTop:r})})),(0,a.Z)(n,o.TOGGLE_ARTIST_EXPANDED,(function(e,t){var r=t.payload,n=e.expandedArtists.slice(),a=n.indexOf(r);return-1===a?n.push(r):n.splice(a,1),i(i({},e),{},{expandedArtists:n})})),(0,a.Z)(n,o.TOGGLE_ARTIST_RESULT_EXPANDED,(function(e,t){var r=t.payload,n=e.expandedArtistResults.slice(),a=n.indexOf(r);return-1===a?n.push(r):n.splice(a,1),i(i({},e),{},{expandedArtistResults:n})})),(0,a.Z)(n,o.LIBRARY_PUSH,(function(e,t){var r=t.payload;return i(i({},e),{},{isLoading:!1,version:r.version})})),n),E={isLoading:!0,version:0,filterStr:"",filterStarred:!1,scrollTop:0,expandedArtists:[],expandedArtistResults:[]};function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:E,t=arguments.length>1?arguments[1]:void 0,r=m[t.type];return r?r(e,t):e}},28666:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>m,b:()=>u,cl:()=>d,uo:()=>l});var n,a=r(42982),o=r(4942),s=r(94081);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,o.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){return{type:s.QUEUE_MOVE,payload:{queueId:e,prevQueueId:t}}}function u(e){return function(t,r){t({type:s.QUEUE_ADD,meta:{isOptimistic:!0},payload:{songId:e}})}}function d(e){return{type:s.QUEUE_REMOVE,payload:{queueId:e}}}var p=(n={},(0,o.Z)(n,s.LOGOUT+s._SUCCESS,(function(e,t){t.payload;return{result:[],entities:{}}})),(0,o.Z)(n,s.QUEUE_ADD,(function(e,t){var r=t.payload,n=e.result.length?e.result[e.result.length-1]+1:1;return c(c({},e),{},{result:[].concat((0,a.Z)(e.result),[n]),entities:c(c({},e.entities),{},(0,o.Z)({},n,c(c({},r),{},{queueId:n,prevQueueId:n-1||null,isOptimistic:!0})))})})),(0,o.Z)(n,s.QUEUE_PUSH,(function(e,t){var r=t.payload;return{isLoading:!1,result:r.result,entities:r.entities}})),n),f={isLoading:!0,result:[],entities:{}};function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,t=arguments.length>1?arguments[1]:void 0,r=p[t.type];return r?r(e,t):e}},19921:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});const n=(0,r(20573).P1)([function(e){return e.status.historyJSON}],(function(e){return JSON.parse(e)}))},77116:(e,t,r)=>{"use strict";r.d(t,{Z:()=>l});var n=r(42982),a=r(56478),o=r(20573),s=r(19921);function i(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,i=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){i=!0,o=e},f:function(){try{s||null==r.return||r.return()}finally{if(i)throw o}}}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}const l=(0,o.P1)([function(e){return(0,a.jf)(e.queue).result},function(e){return(0,a.jf)(e.queue).entities},s.Z,function(e){return e.status.queueId},function(e){return e.status.nextUserId}],(function(e,t,r,a,o){if(r=r.filter((function(t){return e.includes(t)})),t[a]&&-1===r.lastIndexOf(a)&&r.push(a),null!==o){var s,c=i(e);try{for(c.s();!(s=c.n()).done;){var l=s.value;if(!r.includes(l)&&t[l].userId===o){r.push(l);break}}}catch(e){c.e(e)}finally{c.f()}}var u=new Map,d=[],p=r.map((function(e){return t[e].userId}));for(e.forEach((function(e){if(!r.includes(e)&&!t[e].isOptimistic){var a=t[e].userId;u.set(a,u.has(a)?[].concat((0,n.Z)(u.get(a)),[e]):[e])}}));u.size;){var f,m=-1,E=void 0,h=i(u.keys());try{for(h.s();!(f=h.n()).done;){var v=f.value,g=p.lastIndexOf(v),R=-1===g?1/0:p.length-g;R>m&&(m=R,E=v)}}catch(e){h.e(e)}finally{h.f()}var y=u.get(E),O=y.shift();y.length?u.set(E,y):u.delete(E),p.push(E),d.push(O)}return{result:r.concat(d),entities:t}}))},8225:(e,t,r)=>{"use strict";r.d(t,{T0:()=>m,ZP:()=>g,d9:()=>d,jg:()=>f,n:()=>u,no:()=>p,zw:()=>E});var n,a=r(4942),o=r(94081),s=r(96747);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,a.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var l=new(r(54986).Z)("prefs");function u(e,t){return{type:o.PREFS_SET,payload:{key:e,data:t}}}function d(e){return{type:o.PREFS_SET_PATH_PRIORITY,payload:e}}function p(){return function(e,t){return e({type:o.PREFS_REQUEST}),l("GET","").then((function(r){e(f(r)),r.isFirstRun&&null!==t().user.userId&&e((0,s.kS)())})).catch((function(t){e({type:o.PREFS_REQUEST+o._ERROR,error:t.message})}))}}function f(e){return{type:o.PREFS_RECEIVE,payload:e}}function m(){return function(e,t){return e({type:o.PREFS_REQ_SCANNER_START}),l("GET","/scan").catch((function(t){e({type:o.PREFS_REQ_SCANNER_START+"_ERROR",error:t.message})}))}}function E(){return function(e,t){return e({type:o.PREFS_REQ_SCANNER_STOP}),l("GET","/scan/stop").catch((function(t){e({type:o.PREFS_REQ_SCANNER_STOP+"_ERROR",error:t.message})}))}}var h=(n={},(0,a.Z)(n,o.PREFS_RECEIVE,(function(e,t){var r=t.payload;return c(c({},e),r)})),(0,a.Z)(n,o.PREFS_PUSH,(function(e,t){var r=t.payload;return c(c({},e),r)})),(0,a.Z)(n,o.SCANNER_WORKER_STATUS,(function(e,t){var r=t.payload;return c(c({},e),{},{isScanning:r.isScanning,scannerPct:r.pct,scannerText:r.text})})),n),v={isScanning:!1,isReplayGainEnabled:!1,paths:{result:[],entities:{}},scannerPct:0,scannerText:""};function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:v,t=arguments.length>1?arguments[1]:void 0,r=h[t.type];return r?r(e,t):e}},59586:(e,t,r)=>{"use strict";r.d(t,{Q0:()=>u,R$:()=>p,V2:()=>E,Xf:()=>m,ZP:()=>R,dB:()=>d,jr:()=>f,mj:()=>h});var n,a=r(4942),o=r(94081);function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){(0,a.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var c=new(r(54986).Z)("rooms");function l(e){return{type:o.REQUEST_ROOMS+o._SUCCESS,payload:e}}function u(){return function(e){return e({type:o.REQUEST_ROOMS,payload:null}),c("GET","").then((function(t){e(l(t))})).catch((function(t){var r;e((r=t.message,{type:o.REQUEST_ROOMS+o._ERROR,error:r}))}))}}function d(e){return function(t,r){return t({type:o.ROOM_CREATE}),c("POST","",{body:e}).then((function(e){t(l(e)),t(m())})).catch((function(e){t({type:o.ROOM_CREATE+o._ERROR,error:e.message})}))}}function p(e,t){return function(r,n){return r({type:o.ROOM_UPDATE,payload:{roomId:e}}),c("PUT","/".concat(e),{body:t}).then((function(e){r(l(e)),r(m())})).catch((function(e){r({type:o.ROOM_UPDATE+o._ERROR,error:e.message})}))}}function f(e){return function(t,r){return t({type:o.ROOM_REMOVE,payload:e}),c("DELETE","/".concat(e)).then((function(e){t(l(e)),t(m())})).catch((function(e){t({type:o.ROOM_REMOVE+o._ERROR,error:e.message})}))}}function m(){return{type:o.ROOM_EDITOR_CLOSE}}function E(){return{type:o.ROOM_EDITOR_OPEN}}function h(e){return{type:o.ROOM_FILTER_STATUS,payload:e}}var v=(n={},(0,a.Z)(n,o.LOGOUT+o._SUCCESS,(function(e,t){t.payload;return i({},g)})),(0,a.Z)(n,o.REQUEST_ROOMS+o._SUCCESS,(function(e,t){var r=t.payload;return i(i({},e),r)})),(0,a.Z)(n,o.ROOM_EDITOR_OPEN,(function(e,t){t.payload;return i(i({},e),{},{isEditorOpen:!0})})),(0,a.Z)(n,o.ROOM_EDITOR_CLOSE,(function(e,t){t.payload;return i(i({},e),{},{isEditorOpen:!1})})),(0,a.Z)(n,o.ROOM_FILTER_STATUS,(function(e,t){var r=t.payload;return i(i({},e),{},{filterStatus:r})})),n),g={result:[],entities:{},filterStatus:"open",isEditorOpen:!1};function R(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,t=arguments.length>1?arguments[1]:void 0,r=v[t.type];return r?r(e,t):e}},79176:(e,t,r)=>{"use strict";r.d(t,{N3:()=>p,Pe:()=>u,ZP:()=>E,xc:()=>d});var n,a=r(4942),o=r(54986),s=r(94081);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,a.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var l=new o.Z;function u(e){return function(t,r){return t(function(e){return{type:s.SONG_INFO_REQUEST,payload:{songId:e}}}(e)),l("GET","song/".concat(e)).then((function(e){t(function(e){return{type:s.SONG_INFO_REQUEST+s._SUCCESS,payload:e}}(e))})).catch((function(e){t(function(e){return{type:s.SONG_INFO_REQUEST+s._ERROR,error:e.message}}(e))}))}}function d(){return{type:s.SONG_INFO_CLOSE}}function p(e,t,r){return function(n,a){return n({type:s.SONG_INFO_SET_PREFERRED,payload:{songId:e,mediaId:t,isPreferred:r}}),l(r?"PUT":"DELETE","media/".concat(t,"/prefer")).then((function(a){n({type:s.SONG_INFO_SET_PREFERRED+s._SUCCESS,payload:{songId:e,mediaId:t,isPreferred:r}}),n(u(e))})).catch((function(a){n({type:s.SONG_INFO_SET_PREFERRED+s._ERROR,payload:{songId:e,mediaId:t,isPreferred:r},error:a.message})}))}}var f=(n={},(0,a.Z)(n,s.SONG_INFO_REQUEST,(function(e,t){var r=t.payload;return c(c({},m),{},{isLoading:!0,isVisible:!0,songId:r.songId})})),(0,a.Z)(n,s.SONG_INFO_REQUEST+s._SUCCESS,(function(e,t){var r=t.payload;return c(c({},e),{},{isLoading:!1,media:r})})),(0,a.Z)(n,s.SONG_INFO_REQUEST+s._ERROR,(function(e,t){t.payload;return c(c({},e),{},{isLoading:!1,isVisible:!1})})),(0,a.Z)(n,s.SONG_INFO_CLOSE,(function(e,t){t.payload;return c(c({},e),{},{isVisible:!1})})),n),m={isLoading:!1,isVisible:!1,songId:null,media:{result:[],entities:{}}};function E(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m,t=arguments.length>1?arguments[1]:void 0,r=f[t.type];return r?r(e,t):e}},94467:(e,t,r)=>{"use strict";r.d(t,{D0:()=>l,EV:()=>d,ZP:()=>E,hz:()=>u,q7:()=>p,wY:()=>c});var n,a=r(4942),o=r(94081);function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){(0,a.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e){return{type:o.PLAYER_REQ_OPTIONS,payload:e,meta:{throttle:{wait:200,leading:!0}}}}function l(){return{type:o.PLAYER_REQ_PLAY}}function u(){return{type:o.PLAYER_REQ_PAUSE}}function d(){return{type:o.PLAYER_REQ_NEXT}}function p(e){return{type:o.PLAYER_REQ_VOLUME,payload:e,meta:{throttle:{wait:200,leading:!1}}}}var f=(n={},(0,a.Z)(n,o.PLAYER_LEAVE,(function(e,t){t.payload;return i(i({},e),{},{isPlayerPresent:!1})})),(0,a.Z)(n,o.PLAYER_STATUS,(function(e,t){var r=t.payload;return i(i(i({},e),r),{},{isPlayerPresent:!0})})),n),m={cdgAlpha:0,cdgSize:.8,errorMessage:"",historyJSON:"[]",isAtQueueEnd:!1,isErrored:!1,isPlayerPresent:!1,isPlaying:!1,isWebGLSupported:!1,mediaType:null,mp4Alpha:1,nextUserId:null,position:0,queueId:-1,visualizer:{},volume:1};function E(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m,t=arguments.length>1?arguments[1]:void 0,r=f[t.type];return r?r(e,t):e}},67246:(e,t,r)=>{"use strict";r.d(t,{Ds:()=>l,Qr:()=>f,Qs:()=>p,TO:()=>m,UW:()=>u,ZP:()=>v,cs:()=>d});var n,a=r(4942),o=r(94081);function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){(0,a.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var c;function l(){return{type:o.CLEAR_ERROR_MESSAGE}}function u(e){return{type:o.SHOW_ERROR_MESSAGE,error:e}}function d(e){return function(t,r){r().ui.headerHeight!==e&&t({type:o.HEADER_HEIGHT_CHANGE,payload:e||0})}}function p(e){return function(t,r){r().ui.footerHeight!==e&&t({type:o.FOOTER_HEIGHT_CHANGE,payload:e||0})}}function f(e){return{type:o.UI_WINDOW_RESIZE,payload:e,meta:{throttle:{wait:200,leading:!1}}}}function m(e){e?(clearTimeout(c),c=null,document.body.classList.add("scroll-lock")):c||(c=setTimeout((function(){c=null,document.body.classList.remove("scroll-lock")}),200))}var E=(n={},(0,a.Z)(n,o.HEADER_HEIGHT_CHANGE,(function(e,t){var r=t.payload;return i(i({},e),{},{headerHeight:r})})),(0,a.Z)(n,o.FOOTER_HEIGHT_CHANGE,(function(e,t){var r=t.payload;return i(i({},e),{},{footerHeight:r})})),(0,a.Z)(n,o.SHOW_ERROR_MESSAGE,(function(e,t){return i(i({},e),{},{isErrored:!0,errorMessage:t.error})})),(0,a.Z)(n,o.CLEAR_ERROR_MESSAGE,(function(e,t){t.payload;return i(i({},e),{},{isErrored:!1})})),(0,a.Z)(n,o.UI_WINDOW_RESIZE,(function(e,t){var r=t.payload;return i(i({},e),{},{innerWidth:r.innerWidth,innerHeight:r.innerHeight,contentWidth:Math.min(r.innerWidth,768)})})),n),h={isErrored:!1,errorMessage:null,footerHeight:0,headerHeight:0,innerWidth:window.innerWidth,innerHeight:window.innerHeight,contentWidth:Math.min(window.innerWidth,768)};function v(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h,t=arguments.length>1?arguments[1]:void 0,r=E[t.type],n=r?r(e,t):e;return t.error?i(i({},n),{},{isErrored:!0,errorMessage:t.error}):n}},96747:(e,t,r)=>{"use strict";r.d(t,{$G:()=>R,ZP:()=>b,kS:()=>h,o1:()=>v,sG:()=>g,x4:()=>E,zp:()=>y});var n,a=r(4942),o=r(99244),s=r(76734),i=r(8225),c=r(54986),l=r(41474),u=r(94081);function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach((function(t){(0,a.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var f=new c.Z(""),m=new URL(document.baseURI).pathname;function E(e){return function(t,r){return t(function(e){return{type:u.LOGIN,payload:e}}(e)),f("POST","login",{body:e}).then((function(e){window._persistor.purge(),t(function(e){return{type:u.LOGIN+u._SUCCESS,payload:e}}(e)),t(y()),window._socket.open(),e.isAdmin&&t((0,i.no)());var r=new URLSearchParams(l.Z.location.search).get("redirect");r&&l.Z.push(m.replace(/\/$/,"")+r)})).catch((function(e){t(function(e){return{type:u.LOGIN+u._ERROR,error:e.message}}(e))}))}}function h(){return function(e,t){return e({type:u.LOGOUT}),f("GET","logout").then((function(t){e({type:u.LOGOUT+u._SUCCESS})})).catch((function(t){e(function(e){return{type:u.LOGOUT+u._ERROR,error:e.message}}(t))})).then((function(){window._persistor.purge(),window._socket.close()}))}}function v(e,t){return function(t,r){t({type:u.CREATE_ACCOUNT});var n=r().prefs.isFirstRun;return f("POST",n?"setup":"user",{body:e}).then((function(r){if(n&&"number"!=typeof r.roomId)throw new Error("firstRun: No roomId in response");return t({type:u.CREATE_ACCOUNT+u._SUCCESS}),t(E({username:e.get("username"),password:e.get("newPassword"),roomId:n?r.roomId:e.get("roomId"),roomPassword:e.get("roomPassword")}))})).catch((function(e){t(function(e){return{type:u.CREATE_ACCOUNT+u._ERROR,error:e.message}}(e))}))}}function g(e){return function(t,r){var n=r().user.userId;return t({type:u.UPDATE_ACCOUNT}),f("PUT","user/".concat(n),{body:e}).then((function(e){var r;t((r=e,{type:u.UPDATE_ACCOUNT+u._SUCCESS,payload:r})),alert("Account updated successfully.")})).catch((function(e){t(function(e){return{type:u.UPDATE_ACCOUNT+u._ERROR,error:e.message}}(e))}))}}function R(){return function(e,t){return e({type:u.REQUEST_ACCOUNT}),f("GET","user").then((function(t){var r;e((r=t,{type:u.REQUEST_ACCOUNT+u._SUCCESS,payload:r}))})).catch((function(t){e(function(e){return{type:u.REQUEST_ACCOUNT+u._ERROR,payload:e.message}}(t))}))}}function y(){return function(e,t){var r,n={library:t().library.version,stars:t().starCounts.version};e((r=n,{type:u.SOCKET_REQUEST_CONNECT,payload:{query:r}})),window._socket.io.opts.query=n}}var O=(n={},(0,a.Z)(n,u.LOGIN+u._SUCCESS,(function(e,t){var r=t.payload;return p(p({},e),r)})),(0,a.Z)(n,u.UPDATE_ACCOUNT+u._SUCCESS,(function(e,t){var r=t.payload;return p(p({},e),r)})),(0,a.Z)(n,u.CREATE_ACCOUNT+u._SUCCESS,(function(e,t){var r=t.payload;return p(p({},e),r)})),(0,a.Z)(n,u.REQUEST_ACCOUNT+u._SUCCESS,(function(e,t){var r=t.payload;return p(p({},e),r)})),(0,a.Z)(n,u.LOGOUT+u._SUCCESS,(function(e,t){t.payload;return p({},S)})),(0,a.Z)(n,u.SOCKET_AUTH_ERROR,(function(e,t){t.payload;return p({},S)})),n),S={userId:null,username:null,name:null,roomId:null,isAdmin:!1,dateCreated:0,dateUpdated:0};const b=(0,o.OJ)({key:"user",storage:s.Z},(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:S,t=arguments.length>1?arguments[1]:void 0,r=O[t.type];return r?r(e,t):e}))},24606:(e,t,r)=>{"use strict";r.d(t,{Z:()=>m,m:()=>d});var n,a=r(42982),o=r(4942),s=r(99244),i=r(56478),c=r(94081);function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){(0,o.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function d(e){return function(t,r){t((0,i.jf)(r().userStars).starredSongs.includes(e)?function(e){return{type:c.UNSTAR_SONG,meta:{isOptimistic:!0},payload:{songId:e}}}(e):function(e){return{type:c.STAR_SONG,meta:{isOptimistic:!0},payload:{songId:e}}}(e))}}var p=(n={},(0,o.Z)(n,c.STAR_SONG,(function(e,t){var r=t.payload,n=e.starredSongs.slice();return n.push(r.songId),u(u({},e),{},{starredSongs:n})})),(0,o.Z)(n,c.UNSTAR_SONG,(function(e,t){var r=t.payload,n=e.starredSongs.slice();return n.splice(n.indexOf(r.songId),1),u(u({},e),{},{starredSongs:n})})),(0,o.Z)(n,c.SONG_STARRED,(function(e,t){var r=t.payload;return r.userId!==e.userId||-1!==e.starredSongs.indexOf(r.songId)?e:u(u({},e),{},{starredSongs:[].concat((0,a.Z)(e.starredSongs),[r.songId])})})),(0,o.Z)(n,c.SONG_UNSTARRED,(function(e,t){var r=t.payload;if(r.userId!==e.userId)return e;if(-1===e.starredSongs.indexOf(r.songId))return e;var n=e.starredSongs.slice();return n.splice(n.indexOf(r.songId),1),u(u({},e),{},{starredSongs:n})})),(0,o.Z)(n,c.STARS_PUSH,(function(e,t){var r=t.payload;return u(u({},e),r)})),(0,o.Z)(n,c.LOGIN+c._SUCCESS,(function(e,t){var r=t.payload;return u(u({},e),{},{userId:r.userId})})),(0,o.Z)(n,c.CREATE+c._SUCCESS,(function(e,t){var r=t.payload;return u(u({},e),{},{userId:r.userId})})),(0,o.Z)(n,s.I2,(function(e,t){var r=t.payload;return u(u({},e),{},{userId:r&&"number"==typeof r.userId?r.userId:e.userId})})),(0,o.Z)(n,c.LOGOUT+c._SUCCESS,(function(e,t){t.payload;return u({},f)})),(0,o.Z)(n,c.SOCKET_AUTH_ERROR,(function(e,t){t.payload;return u({},f)})),n),f={userId:null,starredArtists:[],starredSongs:[]};function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,t=arguments.length>1?arguments[1]:void 0,r=p[t.type];return r?r(e,t):e}},77968:(e,t,r)=>{"use strict";r.d(t,{ZP:()=>j,fn:()=>k});var n=r(4942),a=r(14890),o=r(56478),s=r(94081);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var l=(0,n.Z)({},s.LIBRARY_PUSH,(function(e,t){var r=t.payload;return c(c({},e),{},{result:r.artists.result,entities:r.artists.entities})})),u={result:[],entities:{}};function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,t=arguments.length>1?arguments[1]:void 0,r=l[t.type];return r?r(e,t):e}var p,f=r(91595),m=r(8225),E=r(28666),h=r(59586);function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var R=(p={},(0,n.Z)(p,s.LIBRARY_PUSH,(function(e,t){var r=t.payload;return g(g({},e),{},{result:r.songs.result,entities:r.songs.entities})})),(0,n.Z)(p,s.LIBRARY_PUSH_SONG,(function(e,t){var r=t.payload;return g(g({},e),{},{entities:g(g({},e.entities),r)})})),p),y={result:[],entities:{}};function O(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y,t=arguments.length>1?arguments[1]:void 0,r=R[t.type];return r?r(e,t):e}var S,b=r(79176);function C(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?C(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):C(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var T=(S={},(0,n.Z)(S,s.SONG_STARRED,(function(e,t){var r=t.payload;return _(_({},e),{},{songs:_(_({},e.songs),{},(0,n.Z)({},r.songId,++e.songs[r.songId]||1))})})),(0,n.Z)(S,s.SONG_UNSTARRED,(function(e,t){var r=t.payload;return _(_({},e),{},{songs:_(_({},e.songs),{},(0,n.Z)({},r.songId,Math.max(--e.songs[r.songId],0)))})})),(0,n.Z)(S,s.STAR_COUNTS_PUSH,(function(e,t){return _({},t.payload)})),S),N={artists:{},songs:{},version:0};function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:N,t=arguments.length>1?arguments[1]:void 0,r=T[t.type];return r?r(e,t):e}var w=r(94467),I=r(67246),P=r(96747),Z=r(24606);function L(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var U=function(e){return(0,a.UY)(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?L(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):L(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({artists:d,library:f.ZP,prefs:m.ZP,queue:(0,o.Ac)(E.ZP),rooms:h.ZP,songs:O,songInfo:b.ZP,starCounts:A,status:w.ZP,ui:I.ZP,user:P.ZP,userStars:(0,o.Ac)(Z.Z)},e))},k=function(e,t){var r=t.key,n=t.reducer;Object.hasOwnProperty.call(e.asyncReducers,r)||(e.asyncReducers[r]=n,e.replaceReducer(U(e.asyncReducers)))};const j=U}},s={};function i(e){var t=s[e];if(void 0!==t)return t.exports;var r=s[e]={exports:{}};return o[e].call(r.exports,r,r.exports,i),r.exports}i.m=o,e=[],i.O=(t,r,n,a)=>{if(!r){var o=1/0;for(u=0;u<e.length;u++){for(var[r,n,a]=e[u],s=!0,c=0;c<r.length;c++)(!1&a||o>=a)&&Object.keys(i.O).every((e=>i.O[e](r[c])))?r.splice(c--,1):(s=!1,a<o&&(o=a));if(s){e.splice(u--,1);var l=n();void 0!==l&&(t=l)}}return t}a=a||0;for(var u=e.length;u>0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[r,n,a]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>e+"."+i.h()+".js",i.miniCssF=e=>e+"."+i.h()+".css",i.h=()=>"4be526e3a94d53aeceae",i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},r="karaoke-eternal:",i.l=(e,n,a,o)=>{if(t[e])t[e].push(n);else{var s,c;if(void 0!==a)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var d=l[u];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==r+a){s=d;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",r+a),s.src=e),t[e]=[n];var p=(r,n)=>{s.onerror=s.onload=null,clearTimeout(f);var a=t[e];if(delete t[e],s.parentNode&&s.parentNode.removeChild(s),a&&a.forEach((e=>e(n))),r)return r(n)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=p.bind(null,s.onerror),s.onload=p.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");r.length&&(e=r[r.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),n=e=>new Promise(((t,r)=>{var n=i.miniCssF(e),a=i.p+n;if(((e,t)=>{for(var r=document.getElementsByTagName("link"),n=0;n<r.length;n++){var a=(s=r[n]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(a===e||a===t))return s}var o=document.getElementsByTagName("style");for(n=0;n<o.length;n++){var s;if((a=(s=o[n]).getAttribute("data-href"))===e||a===t)return s}})(n,a))return t();((e,t,r,n)=>{var a=document.createElement("link");a.rel="stylesheet",a.type="text/css",a.onerror=a.onload=o=>{if(a.onerror=a.onload=null,"load"===o.type)r();else{var s=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.href||t,c=new Error("Loading CSS chunk "+e+" failed.\n("+i+")");c.code="CSS_CHUNK_LOAD_FAILED",c.type=s,c.request=i,a.parentNode.removeChild(a),n(c)}},a.href=t,document.head.appendChild(a)})(e,a,t,r)})),a={179:0},i.f.miniCss=(e,t)=>{a[e]?t.push(a[e]):0!==a[e]&&{598:1,845:1}[e]&&t.push(a[e]=n(e).then((()=>{a[e]=0}),(t=>{throw delete a[e],t})))},(()=>{var e={179:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var a=new Promise(((r,a)=>n=e[t]=[r,a]));r.push(n[2]=a);var o=i.p+i.u(t),s=new Error;i.l(o,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",s.name="ChunkLoadError",s.type=a,s.request=o,n[1](s)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,r)=>{var n,a,[o,s,c]=r,l=0;if(o.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)var u=c(i)}for(t&&t(r);l<o.length;l++)a=o[l],i.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return i.O(u)},r=self.webpackChunkkaraoke_eternal=self.webpackChunkkaraoke_eternal||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var c=i.O(void 0,[799],(()=>i(10562)));c=i.O(c)})();
|
package/package.json
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "karaoke-eternal",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Open karaoke party system",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"karaoke",
|
|
7
|
+
"party",
|
|
8
|
+
"player",
|
|
9
|
+
"lyrics",
|
|
10
|
+
"cdgraphics",
|
|
11
|
+
"cdg",
|
|
12
|
+
"mp3+g",
|
|
13
|
+
"mp4",
|
|
14
|
+
"webgl"
|
|
15
|
+
],
|
|
16
|
+
"homepage": "https://www.karaoke-eternal.com",
|
|
17
|
+
"main": "./server/main.js",
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=16.0.0",
|
|
20
|
+
"npm": ">=8.0.0"
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"lint": "eslint .",
|
|
24
|
+
"lint:fix": "npm run lint -- --fix",
|
|
25
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
26
|
+
"dev": "NODE_ENV=development nodemon --ignore build --ignore dist --ignore src -- -p3000",
|
|
27
|
+
"build": "rimraf build && webpack --config config/webpack.config.js",
|
|
28
|
+
"serve": "node server/main.js",
|
|
29
|
+
"serve:docs": "hugo serve --source docs -b http://$(hostname) --bind 0.0.0.0",
|
|
30
|
+
"server": "npm run serve",
|
|
31
|
+
"start": "electron . -p 3000",
|
|
32
|
+
"dist": "DEBUG=electron-builder:* electron-builder -c config/electron-builder.config.js",
|
|
33
|
+
"install-app-deps": "electron-builder install-app-deps"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"assets/**",
|
|
37
|
+
"build/**",
|
|
38
|
+
"server/**",
|
|
39
|
+
"shared/**",
|
|
40
|
+
"project.config.js"
|
|
41
|
+
],
|
|
42
|
+
"bin": {
|
|
43
|
+
"karaoke-eternal-server": "./server/main.js"
|
|
44
|
+
},
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "git+https://github.com/bhj/KaraokeEternal.git"
|
|
48
|
+
},
|
|
49
|
+
"productName": "Karaoke Eternal Server",
|
|
50
|
+
"author": "RadRoot LLC",
|
|
51
|
+
"license": "ISC",
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@babel/runtime": "^7.17.9",
|
|
54
|
+
"@jcoreio/async-throttle": "^1.4.3",
|
|
55
|
+
"bcrypt": "^5.0.1",
|
|
56
|
+
"ctx-compose": "^3.0.0",
|
|
57
|
+
"electron-log": "^4.4.7",
|
|
58
|
+
"fs-extra": "^10.1.0",
|
|
59
|
+
"jsonwebtoken": "^8.5.1",
|
|
60
|
+
"koa": "^2.13.4",
|
|
61
|
+
"koa-body": "^5.0.0",
|
|
62
|
+
"koa-favicon": "^2.1.0",
|
|
63
|
+
"koa-logger": "^3.2.1",
|
|
64
|
+
"koa-mount": "^4.0.0",
|
|
65
|
+
"koa-range": "^0.3.0",
|
|
66
|
+
"koa-router": "^10.1.1",
|
|
67
|
+
"koa-static": "^5.0.0",
|
|
68
|
+
"music-metadata": "^7.12.3",
|
|
69
|
+
"rimraf": "^3.0.2",
|
|
70
|
+
"socket.io": "^4.5.0",
|
|
71
|
+
"sqlate": "^2.2.0",
|
|
72
|
+
"sqlite": "^4.1.1",
|
|
73
|
+
"sqlite3": "^5.0.8",
|
|
74
|
+
"vm2": "^3.9.9",
|
|
75
|
+
"yargs": "^17.5.0"
|
|
76
|
+
},
|
|
77
|
+
"devDependencies": {
|
|
78
|
+
"@babel/core": "^7.17.10",
|
|
79
|
+
"@babel/eslint-parser": "^7.17.0",
|
|
80
|
+
"@babel/eslint-plugin": "^7.17.7",
|
|
81
|
+
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
|
82
|
+
"@babel/plugin-proposal-object-rest-spread": "^7.17.3",
|
|
83
|
+
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
84
|
+
"@babel/plugin-transform-runtime": "^7.17.10",
|
|
85
|
+
"@babel/preset-env": "^7.17.10",
|
|
86
|
+
"@babel/preset-react": "^7.16.7",
|
|
87
|
+
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.6",
|
|
88
|
+
"babel-loader": "^8.2.5",
|
|
89
|
+
"blueimp-load-image": "^5.16.0",
|
|
90
|
+
"butterchurn": "^3.0.0-beta.4",
|
|
91
|
+
"butterchurn-presets": "^3.0.0-beta.4",
|
|
92
|
+
"case-sensitive-paths-webpack-plugin": "^2.4.0",
|
|
93
|
+
"cdgraphics": "^6.0.0",
|
|
94
|
+
"css-loader": "^6.7.1",
|
|
95
|
+
"electron": "^18.2.3",
|
|
96
|
+
"electron-builder": "^23.0.3",
|
|
97
|
+
"eslint": "^8.15.0",
|
|
98
|
+
"eslint-config-standard": "^17.0.0",
|
|
99
|
+
"eslint-plugin-import": "^2.26.0",
|
|
100
|
+
"eslint-plugin-n": "^15.2.0",
|
|
101
|
+
"eslint-plugin-promise": "^6.0.0",
|
|
102
|
+
"eslint-plugin-react": "^7.29.4",
|
|
103
|
+
"eslint-plugin-react-hooks": "^4.5.0",
|
|
104
|
+
"fast-fuzzy": "^1.11.1",
|
|
105
|
+
"file-loader": "^6.2.0",
|
|
106
|
+
"history": "^5.3.0",
|
|
107
|
+
"html-loader": "^3.1.0",
|
|
108
|
+
"html-webpack-plugin": "^5.5.0",
|
|
109
|
+
"license-webpack-plugin": "^4.0.2",
|
|
110
|
+
"markdown-loader": "^8.0.0",
|
|
111
|
+
"mini-css-extract-plugin": "^2.6.0",
|
|
112
|
+
"modern-normalize": "^1.1.0",
|
|
113
|
+
"nodemon": "^2.0.16",
|
|
114
|
+
"prop-types": "^15.8.1",
|
|
115
|
+
"rc-slider": "^10.0.0",
|
|
116
|
+
"react": "^17.0.2",
|
|
117
|
+
"react-beautiful-dnd": "^13.1.0",
|
|
118
|
+
"react-dom": "^17.0.2",
|
|
119
|
+
"react-flip-toolkit": "^7.0.14",
|
|
120
|
+
"react-github-btn": "^1.2.2",
|
|
121
|
+
"react-highlight-words": "^0.18.0",
|
|
122
|
+
"react-redux": "^8.0.1",
|
|
123
|
+
"react-refresh": "^0.13.0",
|
|
124
|
+
"react-responsive-modal": "^6.2.0",
|
|
125
|
+
"react-router-dom": "^6.3.0",
|
|
126
|
+
"react-swipeable": "^7.0.0",
|
|
127
|
+
"react-transition-group": "^4.4.2",
|
|
128
|
+
"react-window": "^1.8.7",
|
|
129
|
+
"redux": "^4.2.0",
|
|
130
|
+
"redux-optimistic-ui": "^3.1.0",
|
|
131
|
+
"redux-persist": "^6.0.0",
|
|
132
|
+
"redux-throttle": "^0.1.1",
|
|
133
|
+
"redux-thunk": "^2.4.1",
|
|
134
|
+
"reselect": "^4.1.5",
|
|
135
|
+
"screenfull": "^6.0.1",
|
|
136
|
+
"socket.io-client": "^4.5.0",
|
|
137
|
+
"use-resize-observer": "^9.0.0",
|
|
138
|
+
"webpack": "^5.72.1",
|
|
139
|
+
"webpack-cli": "^4.9.2",
|
|
140
|
+
"webpack-dev-middleware": "^5.3.1",
|
|
141
|
+
"webpack-hot-middleware": "^2.25.1",
|
|
142
|
+
"webpack-node-externals": "^3.0.0"
|
|
143
|
+
}
|
|
144
|
+
}
|