@aigamo/hydrangean-diva 0.0.1-alpha.50 → 0.0.1-alpha.51

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.
Files changed (56) hide show
  1. package/dist/index.cjs.js +6 -6
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.es.js +1968 -1964
  4. package/dist/index.es.js.map +1 -1
  5. package/dist/src/features/index.d.ts +7 -2
  6. package/dist/src/features/media-player/components/index.d.ts +1 -0
  7. package/dist/src/features/media-player.bottom-bar/index.d.ts +1 -0
  8. package/dist/src/features/{media-player.player → media-player.bottom-bar}/stores/BottomBarStore.d.ts +2 -2
  9. package/dist/src/features/{media-player.player → media-player.bottom-bar.abstractions}/index.d.ts +0 -1
  10. package/dist/src/features/media-player.bottom-bar.abstractions/interfaces/index.d.ts +1 -0
  11. package/dist/src/features/media-player.mini-player/index.d.ts +1 -0
  12. package/dist/src/features/{media-player.player → media-player.mini-player}/stores/MiniPlayerStore.d.ts +3 -3
  13. package/dist/src/features/media-player.mini-player.abstractions/index.d.ts +1 -0
  14. package/dist/src/features/media-player.mini-player.abstractions/interfaces/index.d.ts +1 -0
  15. package/dist/src/features/media-player.player/stores/PlayerStore.d.ts +1 -1
  16. package/dist/src/features/media-player.player.abstractions/index.d.ts +1 -0
  17. package/dist/src/features/media-player.player.abstractions/interfaces/index.d.ts +1 -0
  18. package/dist/src/features/media-player.playlists/components/PlaylistCommandBar.d.ts +1 -1
  19. package/dist/src/features/media-player.playlists/components/PlaylistListTable.d.ts +2 -2
  20. package/dist/src/features/media-player.playlists/components/PlaylistSection.d.ts +1 -1
  21. package/dist/src/features/media-player.playlists/components/PlaylistTable.d.ts +1 -1
  22. package/dist/src/features/media-player.playlists/index.d.ts +0 -1
  23. package/dist/src/features/media-player.playlists/pages/PlaylistDetailsPage.d.ts +2 -2
  24. package/dist/src/features/media-player.playlists/stores/PlaylistItemStore.d.ts +2 -2
  25. package/dist/src/features/media-player.playlists/stores/PlaylistListItemStore.d.ts +10 -0
  26. package/dist/src/features/media-player.playlists/stores/PlaylistListStore.d.ts +8 -14
  27. package/dist/src/features/media-player.playlists/stores/PlaylistStore.d.ts +2 -2
  28. package/dist/src/features/media-player.playlists.abstractions/contexts/PlaylistListContext.d.ts +3 -0
  29. package/dist/src/features/media-player.playlists.abstractions/index.d.ts +1 -0
  30. package/dist/src/features/media-player.playlists.abstractions/interfaces/IPlaylistListItemStore.d.ts +6 -0
  31. package/dist/src/features/media-player.playlists.abstractions/interfaces/IPlaylistListStore.d.ts +8 -0
  32. package/package.json +4 -4
  33. package/dist/src/features/media-player.player/components/index.d.ts +0 -3
  34. package/dist/src/features/media-player.player/interfaces/index.d.ts +0 -3
  35. package/dist/src/features/media-player.playlists/contexts/PlaylistListContext.d.ts +0 -3
  36. /package/dist/src/features/{media-player.player → media-player}/components/MediaPlayerLayout.d.ts +0 -0
  37. /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/BottomBar.d.ts +0 -0
  38. /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/BottomBarCenterControls.d.ts +0 -0
  39. /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/BottomBarLeftControls.d.ts +0 -0
  40. /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/BottomBarProvider.d.ts +0 -0
  41. /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/BottomBarRightControls.d.ts +0 -0
  42. /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/SeekBar.d.ts +0 -0
  43. /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/index.d.ts +0 -0
  44. /package/dist/src/features/{media-player.player → media-player.bottom-bar.abstractions}/contexts/BottomBarContext.d.ts +0 -0
  45. /package/dist/src/features/{media-player.player → media-player.bottom-bar.abstractions}/interfaces/IBottomBarStore.d.ts +0 -0
  46. /package/dist/src/features/{media-player.player → media-player.mini-player}/components/CookieConsentPanel.d.ts +0 -0
  47. /package/dist/src/features/{media-player.player/components/mini-player → media-player.mini-player/components}/MiniPlayer.d.ts +0 -0
  48. /package/dist/src/features/{media-player.player/components/mini-player → media-player.mini-player/components}/MiniPlayerProvider.d.ts +0 -0
  49. /package/dist/src/features/{media-player.player/components/mini-player → media-player.mini-player/components}/index.d.ts +0 -0
  50. /package/dist/src/features/{media-player.player → media-player.mini-player.abstractions}/contexts/MiniPlayerContext.d.ts +0 -0
  51. /package/dist/src/features/{media-player.player → media-player.mini-player.abstractions}/interfaces/IMiniPlayerStore.d.ts +0 -0
  52. /package/dist/src/features/{media-player.player → media-player.player.abstractions}/contexts/PlayerContext.d.ts +0 -0
  53. /package/dist/src/features/{media-player.player → media-player.player.abstractions}/interfaces/IPlayerStore.d.ts +0 -0
  54. /package/dist/src/features/{media-player.playlists → media-player.playlists.abstractions}/contexts/index.d.ts +0 -0
  55. /package/dist/src/features/{media-player.playlists → media-player.playlists.abstractions}/interfaces/IPlaylistItemStore.d.ts +0 -0
  56. /package/dist/src/features/{media-player.playlists → media-player.playlists.abstractions}/interfaces/IPlaylistStore.d.ts +0 -0
package/dist/index.cjs.js CHANGED
@@ -1,15 +1,15 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react"),Br=require("@emotion/cache"),Mr=require("ajv"),pe=require("@aigamo/nostalgic-diva"),s=require("mobx"),Je=require("lodash-es"),Ke=require("@aigamo/route-sphere"),l=require("@elastic/eui"),S=require("@fluentui/react-icons"),P=require("mobx-react-lite"),vt=require("react-sortablejs"),bt=require("@tanstack/react-router");function Dr(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const de=Dr(p),gt=81;var We={exports:{}},Fe={};var Lt;function Nr(){if(Lt)return Fe;Lt=1;var e=p,t=Symbol.for("react.element"),r=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function u(h,y,g){var R,w={},K=null,W=null;g!==void 0&&(K=""+g),y.key!==void 0&&(K=""+y.key),y.ref!==void 0&&(W=y.ref);for(R in y)a.call(y,R)&&!c.hasOwnProperty(R)&&(w[R]=y[R]);if(h&&h.defaultProps)for(R in y=h.defaultProps,y)w[R]===void 0&&(w[R]=y[R]);return{$$typeof:t,type:h,key:K,ref:W,props:w,_owner:i.current}}return Fe.Fragment=r,Fe.jsx=u,Fe.jsxs=u,Fe}var Be={};var Qt;function jr(){return Qt||(Qt=1,process.env.NODE_ENV!=="production"&&(function(){var e=p,t=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),h=Symbol.for("react.context"),y=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),R=Symbol.for("react.suspense_list"),w=Symbol.for("react.memo"),K=Symbol.for("react.lazy"),W=Symbol.for("react.offscreen"),H=Symbol.iterator,re="@@iterator";function ce(n){if(n===null||typeof n!="object")return null;var d=H&&n[H]||n[re];return typeof d=="function"?d:null}var X=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function M(n){{for(var d=arguments.length,f=new Array(d>1?d-1:0),b=1;b<d;b++)f[b-1]=arguments[b];q("error",n,f)}}function q(n,d,f){{var b=X.ReactDebugCurrentFrame,O=b.getStackAddendum();O!==""&&(d+="%s",f=f.concat([O]));var B=f.map(function(x){return String(x)});B.unshift("Warning: "+d),Function.prototype.apply.call(console[n],console,B)}}var Q=!1,m=!1,Z=!1,Te=!1,je=!1,$e;$e=Symbol.for("react.module.reference");function et(n){return!!(typeof n=="string"||typeof n=="function"||n===a||n===c||je||n===i||n===g||n===R||Te||n===W||Q||m||Z||typeof n=="object"&&n!==null&&(n.$$typeof===K||n.$$typeof===w||n.$$typeof===u||n.$$typeof===h||n.$$typeof===y||n.$$typeof===$e||n.getModuleId!==void 0))}function tt(n,d,f){var b=n.displayName;if(b)return b;var O=d.displayName||d.name||"";return O!==""?f+"("+O+")":f}function Le(n){return n.displayName||"Context"}function ie(n){if(n==null)return null;if(typeof n.tag=="number"&&M("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case a:return"Fragment";case r:return"Portal";case c:return"Profiler";case i:return"StrictMode";case g:return"Suspense";case R:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case h:var d=n;return Le(d)+".Consumer";case u:var f=n;return Le(f._context)+".Provider";case y:return tt(n,n.render,"ForwardRef");case w:var b=n.displayName||null;return b!==null?b:ie(n.type)||"Memo";case K:{var O=n,B=O._payload,x=O._init;try{return ie(x(B))}catch{return null}}}return null}var ue=Object.assign,ye=0,Qe,ze,xe,Ye,Re,Ve,He;function qe(){}qe.__reactDisabledLog=!0;function rt(){{if(ye===0){Qe=console.log,ze=console.info,xe=console.warn,Ye=console.error,Re=console.group,Ve=console.groupCollapsed,He=console.groupEnd;var n={configurable:!0,enumerable:!0,value:qe,writable:!0};Object.defineProperties(console,{info:n,log:n,warn:n,error:n,group:n,groupCollapsed:n,groupEnd:n})}ye++}}function ot(){{if(ye--,ye===0){var n={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:ue({},n,{value:Qe}),info:ue({},n,{value:ze}),warn:ue({},n,{value:xe}),error:ue({},n,{value:Ye}),group:ue({},n,{value:Re}),groupCollapsed:ue({},n,{value:Ve}),groupEnd:ue({},n,{value:He})})}ye<0&&M("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var we=X.ReactCurrentDispatcher,Oe;function be(n,d,f){{if(Oe===void 0)try{throw Error()}catch(O){var b=O.stack.trim().match(/\n( *(at )?)/);Oe=b&&b[1]||""}return`
2
- `+Oe+n}}var _e=!1,ge;{var nt=typeof WeakMap=="function"?WeakMap:Map;ge=new nt}function v(n,d){if(!n||_e)return"";{var f=ge.get(n);if(f!==void 0)return f}var b;_e=!0;var O=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var B;B=we.current,we.current=null,rt();try{if(d){var x=function(){throw Error()};if(Object.defineProperty(x.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(x,[])}catch(ee){b=ee}Reflect.construct(n,[],x)}else{try{x.call()}catch(ee){b=ee}n.call(x.prototype)}}else{try{throw Error()}catch(ee){b=ee}n()}}catch(ee){if(ee&&b&&typeof ee.stack=="string"){for(var C=ee.stack.split(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react"),Mr=require("@emotion/cache"),Dr=require("ajv"),s=require("mobx"),Ke=require("@aigamo/route-sphere"),pe=require("@aigamo/nostalgic-diva"),Je=require("lodash-es"),l=require("@elastic/eui"),P=require("mobx-react-lite"),S=require("@fluentui/react-icons"),bt=require("react-sortablejs"),gt=require("@tanstack/react-router");function jr(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,a.get?a:{enumerable:!0,get:()=>t[r]})}}return e.default=t,Object.freeze(e)}const de=jr(p),St=81;var We={exports:{}},Ae={};var Qt;function Nr(){if(Qt)return Ae;Qt=1;var t=p,e=Symbol.for("react.element"),r=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,i=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function u(h,y,g){var w,R={},K=null,W=null;g!==void 0&&(K=""+g),y.key!==void 0&&(K=""+y.key),y.ref!==void 0&&(W=y.ref);for(w in y)a.call(y,w)&&!c.hasOwnProperty(w)&&(R[w]=y[w]);if(h&&h.defaultProps)for(w in y=h.defaultProps,y)R[w]===void 0&&(R[w]=y[w]);return{$$typeof:e,type:h,key:K,ref:W,props:R,_owner:i.current}}return Ae.Fragment=r,Ae.jsx=u,Ae.jsxs=u,Ae}var Fe={};var zt;function $r(){return zt||(zt=1,process.env.NODE_ENV!=="production"&&(function(){var t=p,e=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),h=Symbol.for("react.context"),y=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),w=Symbol.for("react.suspense_list"),R=Symbol.for("react.memo"),K=Symbol.for("react.lazy"),W=Symbol.for("react.offscreen"),H=Symbol.iterator,re="@@iterator";function ce(n){if(n===null||typeof n!="object")return null;var d=H&&n[H]||n[re];return typeof d=="function"?d:null}var X=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function M(n){{for(var d=arguments.length,f=new Array(d>1?d-1:0),b=1;b<d;b++)f[b-1]=arguments[b];q("error",n,f)}}function q(n,d,f){{var b=X.ReactDebugCurrentFrame,O=b.getStackAddendum();O!==""&&(d+="%s",f=f.concat([O]));var B=f.map(function(x){return String(x)});B.unshift("Warning: "+d),Function.prototype.apply.call(console[n],console,B)}}var Q=!1,m=!1,Z=!1,Ce=!1,Ne=!1,$e;$e=Symbol.for("react.module.reference");function tt(n){return!!(typeof n=="string"||typeof n=="function"||n===a||n===c||Ne||n===i||n===g||n===w||Ce||n===W||Q||m||Z||typeof n=="object"&&n!==null&&(n.$$typeof===K||n.$$typeof===R||n.$$typeof===u||n.$$typeof===h||n.$$typeof===y||n.$$typeof===$e||n.getModuleId!==void 0))}function rt(n,d,f){var b=n.displayName;if(b)return b;var O=d.displayName||d.name||"";return O!==""?f+"("+O+")":f}function Le(n){return n.displayName||"Context"}function ie(n){if(n==null)return null;if(typeof n.tag=="number"&&M("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case a:return"Fragment";case r:return"Portal";case c:return"Profiler";case i:return"StrictMode";case g:return"Suspense";case w:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case h:var d=n;return Le(d)+".Consumer";case u:var f=n;return Le(f._context)+".Provider";case y:return rt(n,n.render,"ForwardRef");case R:var b=n.displayName||null;return b!==null?b:ie(n.type)||"Memo";case K:{var O=n,B=O._payload,x=O._init;try{return ie(x(B))}catch{return null}}}return null}var ue=Object.assign,fe=0,Qe,ze,Te,Ye,xe,Ve,He;function qe(){}qe.__reactDisabledLog=!0;function ot(){{if(fe===0){Qe=console.log,ze=console.info,Te=console.warn,Ye=console.error,xe=console.group,Ve=console.groupCollapsed,He=console.groupEnd;var n={configurable:!0,enumerable:!0,value:qe,writable:!0};Object.defineProperties(console,{info:n,log:n,warn:n,error:n,group:n,groupCollapsed:n,groupEnd:n})}fe++}}function nt(){{if(fe--,fe===0){var n={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:ue({},n,{value:Qe}),info:ue({},n,{value:ze}),warn:ue({},n,{value:Te}),error:ue({},n,{value:Ye}),group:ue({},n,{value:xe}),groupCollapsed:ue({},n,{value:Ve}),groupEnd:ue({},n,{value:He})})}fe<0&&M("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var we=X.ReactCurrentDispatcher,Re;function ve(n,d,f){{if(Re===void 0)try{throw Error()}catch(O){var b=O.stack.trim().match(/\n( *(at )?)/);Re=b&&b[1]||""}return`
2
+ `+Re+n}}var Oe=!1,be;{var at=typeof WeakMap=="function"?WeakMap:Map;be=new at}function v(n,d){if(!n||Oe)return"";{var f=be.get(n);if(f!==void 0)return f}var b;Oe=!0;var O=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var B;B=we.current,we.current=null,ot();try{if(d){var x=function(){throw Error()};if(Object.defineProperty(x.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(x,[])}catch(ee){b=ee}Reflect.construct(n,[],x)}else{try{x.call()}catch(ee){b=ee}n.call(x.prototype)}}else{try{throw Error()}catch(ee){b=ee}n()}}catch(ee){if(ee&&b&&typeof ee.stack=="string"){for(var C=ee.stack.split(`
3
3
  `),J=b.stack.split(`
4
4
  `),z=C.length-1,U=J.length-1;z>=1&&U>=0&&C[z]!==J[U];)U--;for(;z>=1&&U>=0;z--,U--)if(C[z]!==J[U]){if(z!==1||U!==1)do if(z--,U--,U<0||C[z]!==J[U]){var oe=`
5
- `+C[z].replace(" at new "," at ");return n.displayName&&oe.includes("<anonymous>")&&(oe=oe.replace("<anonymous>",n.displayName)),typeof n=="function"&&ge.set(n,oe),oe}while(z>=1&&U>=0);break}}}finally{_e=!1,we.current=B,ot(),Error.prepareStackTrace=O}var Ee=n?n.displayName||n.name:"",ve=Ee?be(Ee):"";return typeof n=="function"&&ge.set(n,ve),ve}function ke(n,d,f){return v(n,!1)}function Se(n){var d=n.prototype;return!!(d&&d.isReactComponent)}function he(n,d,f){if(n==null)return"";if(typeof n=="function")return v(n,Se(n));if(typeof n=="string")return be(n);switch(n){case g:return be("Suspense");case R:return be("SuspenseList")}if(typeof n=="object")switch(n.$$typeof){case y:return ke(n.render);case w:return he(n.type,d,f);case K:{var b=n,O=b._payload,B=b._init;try{return he(B(O),d,f)}catch{}}}return""}var Ae=Object.prototype.hasOwnProperty,xt={},Rt=X.ReactDebugCurrentFrame;function Ue(n){if(n){var d=n._owner,f=he(n.type,n._source,d?d.type:null);Rt.setExtraStackFrame(f)}else Rt.setExtraStackFrame(null)}function pr(n,d,f,b,O){{var B=Function.call.bind(Ae);for(var x in n)if(B(n,x)){var C=void 0;try{if(typeof n[x]!="function"){var J=Error((b||"React class")+": "+f+" type `"+x+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof n[x]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw J.name="Invariant Violation",J}C=n[x](d,x,b,f,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(z){C=z}C&&!(C instanceof Error)&&(Ue(O),M("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",b||"React class",f,x,typeof C),Ue(null)),C instanceof Error&&!(C.message in xt)&&(xt[C.message]=!0,Ue(O),M("Failed %s type: %s",f,C.message),Ue(null))}}}var mr=Array.isArray;function at(n){return mr(n)}function fr(n){{var d=typeof Symbol=="function"&&Symbol.toStringTag,f=d&&n[Symbol.toStringTag]||n.constructor.name||"Object";return f}}function yr(n){try{return wt(n),!1}catch{return!0}}function wt(n){return""+n}function Ot(n){if(yr(n))return M("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",fr(n)),wt(n)}var _t=X.ReactCurrentOwner,hr={key:!0,ref:!0,__self:!0,__source:!0},kt,At;function vr(n){if(Ae.call(n,"ref")){var d=Object.getOwnPropertyDescriptor(n,"ref").get;if(d&&d.isReactWarning)return!1}return n.ref!==void 0}function br(n){if(Ae.call(n,"key")){var d=Object.getOwnPropertyDescriptor(n,"key").get;if(d&&d.isReactWarning)return!1}return n.key!==void 0}function gr(n,d){typeof n.ref=="string"&&_t.current}function Sr(n,d){{var f=function(){kt||(kt=!0,M("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",d))};f.isReactWarning=!0,Object.defineProperty(n,"key",{get:f,configurable:!0})}}function Ir(n,d){{var f=function(){At||(At=!0,M("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",d))};f.isReactWarning=!0,Object.defineProperty(n,"ref",{get:f,configurable:!0})}}var Er=function(n,d,f,b,O,B,x){var C={$$typeof:t,type:n,key:d,ref:f,props:x,_owner:B};return C._store={},Object.defineProperty(C._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(C,"_self",{configurable:!1,enumerable:!1,writable:!1,value:b}),Object.defineProperty(C,"_source",{configurable:!1,enumerable:!1,writable:!1,value:O}),Object.freeze&&(Object.freeze(C.props),Object.freeze(C)),C};function Pr(n,d,f,b,O){{var B,x={},C=null,J=null;f!==void 0&&(Ot(f),C=""+f),br(d)&&(Ot(d.key),C=""+d.key),vr(d)&&(J=d.ref,gr(d,O));for(B in d)Ae.call(d,B)&&!hr.hasOwnProperty(B)&&(x[B]=d[B]);if(n&&n.defaultProps){var z=n.defaultProps;for(B in z)x[B]===void 0&&(x[B]=z[B])}if(C||J){var U=typeof n=="function"?n.displayName||n.name||"Unknown":n;C&&Sr(x,U),J&&Ir(x,U)}return Er(n,C,J,O,b,_t.current,x)}}var it=X.ReactCurrentOwner,Ft=X.ReactDebugCurrentFrame;function Ie(n){if(n){var d=n._owner,f=he(n.type,n._source,d?d.type:null);Ft.setExtraStackFrame(f)}else Ft.setExtraStackFrame(null)}var st;st=!1;function lt(n){return typeof n=="object"&&n!==null&&n.$$typeof===t}function Bt(){{if(it.current){var n=ie(it.current.type);if(n)return`
5
+ `+C[z].replace(" at new "," at ");return n.displayName&&oe.includes("<anonymous>")&&(oe=oe.replace("<anonymous>",n.displayName)),typeof n=="function"&&be.set(n,oe),oe}while(z>=1&&U>=0);break}}}finally{Oe=!1,we.current=B,nt(),Error.prepareStackTrace=O}var Ie=n?n.displayName||n.name:"",he=Ie?ve(Ie):"";return typeof n=="function"&&be.set(n,he),he}function _e(n,d,f){return v(n,!1)}function ge(n){var d=n.prototype;return!!(d&&d.isReactComponent)}function ye(n,d,f){if(n==null)return"";if(typeof n=="function")return v(n,ge(n));if(typeof n=="string")return ve(n);switch(n){case g:return ve("Suspense");case w:return ve("SuspenseList")}if(typeof n=="object")switch(n.$$typeof){case y:return _e(n.render);case R:return ye(n.type,d,f);case K:{var b=n,O=b._payload,B=b._init;try{return ye(B(O),d,f)}catch{}}}return""}var ke=Object.prototype.hasOwnProperty,wt={},Rt=X.ReactDebugCurrentFrame;function Ue(n){if(n){var d=n._owner,f=ye(n.type,n._source,d?d.type:null);Rt.setExtraStackFrame(f)}else Rt.setExtraStackFrame(null)}function mr(n,d,f,b,O){{var B=Function.call.bind(ke);for(var x in n)if(B(n,x)){var C=void 0;try{if(typeof n[x]!="function"){var J=Error((b||"React class")+": "+f+" type `"+x+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof n[x]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw J.name="Invariant Violation",J}C=n[x](d,x,b,f,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(z){C=z}C&&!(C instanceof Error)&&(Ue(O),M("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",b||"React class",f,x,typeof C),Ue(null)),C instanceof Error&&!(C.message in wt)&&(wt[C.message]=!0,Ue(O),M("Failed %s type: %s",f,C.message),Ue(null))}}}var fr=Array.isArray;function it(n){return fr(n)}function yr(n){{var d=typeof Symbol=="function"&&Symbol.toStringTag,f=d&&n[Symbol.toStringTag]||n.constructor.name||"Object";return f}}function hr(n){try{return Ot(n),!1}catch{return!0}}function Ot(n){return""+n}function _t(n){if(hr(n))return M("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",yr(n)),Ot(n)}var kt=X.ReactCurrentOwner,vr={key:!0,ref:!0,__self:!0,__source:!0},At,Ft;function br(n){if(ke.call(n,"ref")){var d=Object.getOwnPropertyDescriptor(n,"ref").get;if(d&&d.isReactWarning)return!1}return n.ref!==void 0}function gr(n){if(ke.call(n,"key")){var d=Object.getOwnPropertyDescriptor(n,"key").get;if(d&&d.isReactWarning)return!1}return n.key!==void 0}function Sr(n,d){typeof n.ref=="string"&&kt.current}function Ir(n,d){{var f=function(){At||(At=!0,M("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",d))};f.isReactWarning=!0,Object.defineProperty(n,"key",{get:f,configurable:!0})}}function Er(n,d){{var f=function(){Ft||(Ft=!0,M("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",d))};f.isReactWarning=!0,Object.defineProperty(n,"ref",{get:f,configurable:!0})}}var Pr=function(n,d,f,b,O,B,x){var C={$$typeof:e,type:n,key:d,ref:f,props:x,_owner:B};return C._store={},Object.defineProperty(C._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(C,"_self",{configurable:!1,enumerable:!1,writable:!1,value:b}),Object.defineProperty(C,"_source",{configurable:!1,enumerable:!1,writable:!1,value:O}),Object.freeze&&(Object.freeze(C.props),Object.freeze(C)),C};function Cr(n,d,f,b,O){{var B,x={},C=null,J=null;f!==void 0&&(_t(f),C=""+f),gr(d)&&(_t(d.key),C=""+d.key),br(d)&&(J=d.ref,Sr(d,O));for(B in d)ke.call(d,B)&&!vr.hasOwnProperty(B)&&(x[B]=d[B]);if(n&&n.defaultProps){var z=n.defaultProps;for(B in z)x[B]===void 0&&(x[B]=z[B])}if(C||J){var U=typeof n=="function"?n.displayName||n.name||"Unknown":n;C&&Ir(x,U),J&&Er(x,U)}return Pr(n,C,J,O,b,kt.current,x)}}var st=X.ReactCurrentOwner,Bt=X.ReactDebugCurrentFrame;function Se(n){if(n){var d=n._owner,f=ye(n.type,n._source,d?d.type:null);Bt.setExtraStackFrame(f)}else Bt.setExtraStackFrame(null)}var lt;lt=!1;function ct(n){return typeof n=="object"&&n!==null&&n.$$typeof===e}function Mt(){{if(st.current){var n=ie(st.current.type);if(n)return`
6
6
 
7
- Check the render method of \``+n+"`."}return""}}function Cr(n){return""}var Mt={};function Tr(n){{var d=Bt();if(!d){var f=typeof n=="string"?n:n.displayName||n.name;f&&(d=`
7
+ Check the render method of \``+n+"`."}return""}}function Tr(n){return""}var Dt={};function xr(n){{var d=Mt();if(!d){var f=typeof n=="string"?n:n.displayName||n.name;f&&(d=`
8
8
 
9
- Check the top-level render call using <`+f+">.")}return d}}function Dt(n,d){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var f=Tr(d);if(Mt[f])return;Mt[f]=!0;var b="";n&&n._owner&&n._owner!==it.current&&(b=" It was passed a child from "+ie(n._owner.type)+"."),Ie(n),M('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',f,b),Ie(null)}}function Nt(n,d){{if(typeof n!="object")return;if(at(n))for(var f=0;f<n.length;f++){var b=n[f];lt(b)&&Dt(b,d)}else if(lt(n))n._store&&(n._store.validated=!0);else if(n){var O=ce(n);if(typeof O=="function"&&O!==n.entries)for(var B=O.call(n),x;!(x=B.next()).done;)lt(x.value)&&Dt(x.value,d)}}}function xr(n){{var d=n.type;if(d==null||typeof d=="string")return;var f;if(typeof d=="function")f=d.propTypes;else if(typeof d=="object"&&(d.$$typeof===y||d.$$typeof===w))f=d.propTypes;else return;if(f){var b=ie(d);pr(f,n.props,"prop",b,n)}else if(d.PropTypes!==void 0&&!st){st=!0;var O=ie(d);M("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",O||"Unknown")}typeof d.getDefaultProps=="function"&&!d.getDefaultProps.isReactClassApproved&&M("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Rr(n){{for(var d=Object.keys(n.props),f=0;f<d.length;f++){var b=d[f];if(b!=="children"&&b!=="key"){Ie(n),M("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",b),Ie(null);break}}n.ref!==null&&(Ie(n),M("Invalid attribute `ref` supplied to `React.Fragment`."),Ie(null))}}var jt={};function $t(n,d,f,b,O,B){{var x=et(n);if(!x){var C="";(n===void 0||typeof n=="object"&&n!==null&&Object.keys(n).length===0)&&(C+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var J=Cr();J?C+=J:C+=Bt();var z;n===null?z="null":at(n)?z="array":n!==void 0&&n.$$typeof===t?(z="<"+(ie(n.type)||"Unknown")+" />",C=" Did you accidentally export a JSX literal instead of a component?"):z=typeof n,M("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",z,C)}var U=Pr(n,d,f,O,B);if(U==null)return U;if(x){var oe=d.children;if(oe!==void 0)if(b)if(at(oe)){for(var Ee=0;Ee<oe.length;Ee++)Nt(oe[Ee],n);Object.freeze&&Object.freeze(oe)}else M("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Nt(oe,n)}if(Ae.call(d,"key")){var ve=ie(n),ee=Object.keys(d).filter(function(Fr){return Fr!=="key"}),ct=ee.length>0?"{key: someKey, "+ee.join(": ..., ")+": ...}":"{key: someKey}";if(!jt[ve+ct]){var Ar=ee.length>0?"{"+ee.join(": ..., ")+": ...}":"{}";M(`A props object containing a "key" prop is being spread into JSX:
9
+ Check the top-level render call using <`+f+">.")}return d}}function jt(n,d){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var f=xr(d);if(Dt[f])return;Dt[f]=!0;var b="";n&&n._owner&&n._owner!==st.current&&(b=" It was passed a child from "+ie(n._owner.type)+"."),Se(n),M('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',f,b),Se(null)}}function Nt(n,d){{if(typeof n!="object")return;if(it(n))for(var f=0;f<n.length;f++){var b=n[f];ct(b)&&jt(b,d)}else if(ct(n))n._store&&(n._store.validated=!0);else if(n){var O=ce(n);if(typeof O=="function"&&O!==n.entries)for(var B=O.call(n),x;!(x=B.next()).done;)ct(x.value)&&jt(x.value,d)}}}function wr(n){{var d=n.type;if(d==null||typeof d=="string")return;var f;if(typeof d=="function")f=d.propTypes;else if(typeof d=="object"&&(d.$$typeof===y||d.$$typeof===R))f=d.propTypes;else return;if(f){var b=ie(d);mr(f,n.props,"prop",b,n)}else if(d.PropTypes!==void 0&&!lt){lt=!0;var O=ie(d);M("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",O||"Unknown")}typeof d.getDefaultProps=="function"&&!d.getDefaultProps.isReactClassApproved&&M("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Rr(n){{for(var d=Object.keys(n.props),f=0;f<d.length;f++){var b=d[f];if(b!=="children"&&b!=="key"){Se(n),M("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",b),Se(null);break}}n.ref!==null&&(Se(n),M("Invalid attribute `ref` supplied to `React.Fragment`."),Se(null))}}var $t={};function Lt(n,d,f,b,O,B){{var x=tt(n);if(!x){var C="";(n===void 0||typeof n=="object"&&n!==null&&Object.keys(n).length===0)&&(C+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var J=Tr();J?C+=J:C+=Mt();var z;n===null?z="null":it(n)?z="array":n!==void 0&&n.$$typeof===e?(z="<"+(ie(n.type)||"Unknown")+" />",C=" Did you accidentally export a JSX literal instead of a component?"):z=typeof n,M("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",z,C)}var U=Cr(n,d,f,O,B);if(U==null)return U;if(x){var oe=d.children;if(oe!==void 0)if(b)if(it(oe)){for(var Ie=0;Ie<oe.length;Ie++)Nt(oe[Ie],n);Object.freeze&&Object.freeze(oe)}else M("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Nt(oe,n)}if(ke.call(d,"key")){var he=ie(n),ee=Object.keys(d).filter(function(Br){return Br!=="key"}),ut=ee.length>0?"{key: someKey, "+ee.join(": ..., ")+": ...}":"{key: someKey}";if(!$t[he+ut]){var Fr=ee.length>0?"{"+ee.join(": ..., ")+": ...}":"{}";M(`A props object containing a "key" prop is being spread into JSX:
10
10
  let props = %s;
11
11
  <%s {...props} />
12
12
  React keys must be passed directly to JSX without using spread:
13
13
  let props = %s;
14
- <%s key={someKey} {...props} />`,ct,ve,Ar,ve),jt[ve+ct]=!0}}return n===a?Rr(U):xr(U),U}}function wr(n,d,f){return $t(n,d,f,!0)}function Or(n,d,f){return $t(n,d,f,!1)}var _r=Or,kr=wr;Be.Fragment=a,Be.jsx=_r,Be.jsxs=kr})()),Be}var zt;function $r(){return zt||(zt=1,process.env.NODE_ENV==="production"?We.exports=Nr():We.exports=jr()),We.exports}var Me=$r(),Ge={exports:{}},_={};var Yt;function Lr(){if(Yt)return _;Yt=1;var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,a=e?Symbol.for("react.fragment"):60107,i=e?Symbol.for("react.strict_mode"):60108,c=e?Symbol.for("react.profiler"):60114,u=e?Symbol.for("react.provider"):60109,h=e?Symbol.for("react.context"):60110,y=e?Symbol.for("react.async_mode"):60111,g=e?Symbol.for("react.concurrent_mode"):60111,R=e?Symbol.for("react.forward_ref"):60112,w=e?Symbol.for("react.suspense"):60113,K=e?Symbol.for("react.suspense_list"):60120,W=e?Symbol.for("react.memo"):60115,H=e?Symbol.for("react.lazy"):60116,re=e?Symbol.for("react.block"):60121,ce=e?Symbol.for("react.fundamental"):60117,X=e?Symbol.for("react.responder"):60118,M=e?Symbol.for("react.scope"):60119;function q(m){if(typeof m=="object"&&m!==null){var Z=m.$$typeof;switch(Z){case t:switch(m=m.type,m){case y:case g:case a:case c:case i:case w:return m;default:switch(m=m&&m.$$typeof,m){case h:case R:case H:case W:case u:return m;default:return Z}}case r:return Z}}}function Q(m){return q(m)===g}return _.AsyncMode=y,_.ConcurrentMode=g,_.ContextConsumer=h,_.ContextProvider=u,_.Element=t,_.ForwardRef=R,_.Fragment=a,_.Lazy=H,_.Memo=W,_.Portal=r,_.Profiler=c,_.StrictMode=i,_.Suspense=w,_.isAsyncMode=function(m){return Q(m)||q(m)===y},_.isConcurrentMode=Q,_.isContextConsumer=function(m){return q(m)===h},_.isContextProvider=function(m){return q(m)===u},_.isElement=function(m){return typeof m=="object"&&m!==null&&m.$$typeof===t},_.isForwardRef=function(m){return q(m)===R},_.isFragment=function(m){return q(m)===a},_.isLazy=function(m){return q(m)===H},_.isMemo=function(m){return q(m)===W},_.isPortal=function(m){return q(m)===r},_.isProfiler=function(m){return q(m)===c},_.isStrictMode=function(m){return q(m)===i},_.isSuspense=function(m){return q(m)===w},_.isValidElementType=function(m){return typeof m=="string"||typeof m=="function"||m===a||m===g||m===c||m===i||m===w||m===K||typeof m=="object"&&m!==null&&(m.$$typeof===H||m.$$typeof===W||m.$$typeof===u||m.$$typeof===h||m.$$typeof===R||m.$$typeof===ce||m.$$typeof===X||m.$$typeof===M||m.$$typeof===re)},_.typeOf=q,_}var k={};var Vt;function Qr(){return Vt||(Vt=1,process.env.NODE_ENV!=="production"&&(function(){var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,a=e?Symbol.for("react.fragment"):60107,i=e?Symbol.for("react.strict_mode"):60108,c=e?Symbol.for("react.profiler"):60114,u=e?Symbol.for("react.provider"):60109,h=e?Symbol.for("react.context"):60110,y=e?Symbol.for("react.async_mode"):60111,g=e?Symbol.for("react.concurrent_mode"):60111,R=e?Symbol.for("react.forward_ref"):60112,w=e?Symbol.for("react.suspense"):60113,K=e?Symbol.for("react.suspense_list"):60120,W=e?Symbol.for("react.memo"):60115,H=e?Symbol.for("react.lazy"):60116,re=e?Symbol.for("react.block"):60121,ce=e?Symbol.for("react.fundamental"):60117,X=e?Symbol.for("react.responder"):60118,M=e?Symbol.for("react.scope"):60119;function q(v){return typeof v=="string"||typeof v=="function"||v===a||v===g||v===c||v===i||v===w||v===K||typeof v=="object"&&v!==null&&(v.$$typeof===H||v.$$typeof===W||v.$$typeof===u||v.$$typeof===h||v.$$typeof===R||v.$$typeof===ce||v.$$typeof===X||v.$$typeof===M||v.$$typeof===re)}function Q(v){if(typeof v=="object"&&v!==null){var ke=v.$$typeof;switch(ke){case t:var Se=v.type;switch(Se){case y:case g:case a:case c:case i:case w:return Se;default:var he=Se&&Se.$$typeof;switch(he){case h:case R:case H:case W:case u:return he;default:return ke}}case r:return ke}}}var m=y,Z=g,Te=h,je=u,$e=t,et=R,tt=a,Le=H,ie=W,ue=r,ye=c,Qe=i,ze=w,xe=!1;function Ye(v){return xe||(xe=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),Re(v)||Q(v)===y}function Re(v){return Q(v)===g}function Ve(v){return Q(v)===h}function He(v){return Q(v)===u}function qe(v){return typeof v=="object"&&v!==null&&v.$$typeof===t}function rt(v){return Q(v)===R}function ot(v){return Q(v)===a}function we(v){return Q(v)===H}function Oe(v){return Q(v)===W}function be(v){return Q(v)===r}function _e(v){return Q(v)===c}function ge(v){return Q(v)===i}function nt(v){return Q(v)===w}k.AsyncMode=m,k.ConcurrentMode=Z,k.ContextConsumer=Te,k.ContextProvider=je,k.Element=$e,k.ForwardRef=et,k.Fragment=tt,k.Lazy=Le,k.Memo=ie,k.Portal=ue,k.Profiler=ye,k.StrictMode=Qe,k.Suspense=ze,k.isAsyncMode=Ye,k.isConcurrentMode=Re,k.isContextConsumer=Ve,k.isContextProvider=He,k.isElement=qe,k.isForwardRef=rt,k.isFragment=ot,k.isLazy=we,k.isMemo=Oe,k.isPortal=be,k.isProfiler=_e,k.isStrictMode=ge,k.isSuspense=nt,k.isValidElementType=q,k.typeOf=Q})()),k}var Ht;function zr(){return Ht||(Ht=1,process.env.NODE_ENV==="production"?Ge.exports=Lr():Ge.exports=Qr()),Ge.exports}var ut,qt;function Yr(){if(qt)return ut;qt=1;var e=zr(),t={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},r={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};c[e.ForwardRef]=a,c[e.Memo]=i;function u(H){return e.isMemo(H)?i:c[H.$$typeof]||t}var h=Object.defineProperty,y=Object.getOwnPropertyNames,g=Object.getOwnPropertySymbols,R=Object.getOwnPropertyDescriptor,w=Object.getPrototypeOf,K=Object.prototype;function W(H,re,ce){if(typeof re!="string"){if(K){var X=w(re);X&&X!==K&&W(H,X,ce)}var M=y(re);g&&(M=M.concat(g(re)));for(var q=u(H),Q=u(re),m=0;m<M.length;++m){var Z=M[m];if(!r[Z]&&!(ce&&ce[Z])&&!(Q&&Q[Z])&&!(q&&q[Z])){var Te=R(re,Z);try{h(H,Z,Te)}catch{}}}}return H}return ut=W,ut}Yr();var Vr=!0;function Hr(e,t,r){var a="";return r.split(" ").forEach(function(i){e[i]!==void 0?t.push(e[i]+";"):i&&(a+=i+" ")}),a}var Jt=function(t,r,a){var i=t.key+"-"+r.name;(a===!1||Vr===!1)&&t.registered[i]===void 0&&(t.registered[i]=r.styles)},qr=function(t,r,a){Jt(t,r,a);var i=t.key+"-"+r.name;if(t.inserted[r.name]===void 0){var c=r;do t.insert(r===c?"."+i:"",c,t.sheet,!0),c=c.next;while(c!==void 0)}};function Ur(e){for(var t=0,r,a=0,i=e.length;i>=4;++a,i-=4)r=e.charCodeAt(a)&255|(e.charCodeAt(++a)&255)<<8|(e.charCodeAt(++a)&255)<<16|(e.charCodeAt(++a)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,t=(r&65535)*1540483477+((r>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(a+2)&255)<<16;case 2:t^=(e.charCodeAt(a+1)&255)<<8;case 1:t^=e.charCodeAt(a)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var Wr={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function Gr(e){var t=Object.create(null);return function(r){return t[r]===void 0&&(t[r]=e(r)),t[r]}}var Jr=/[A-Z]|^ms/g,Kr=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Kt=function(t){return t.charCodeAt(1)===45},Ut=function(t){return t!=null&&typeof t!="boolean"},dt=Gr(function(e){return Kt(e)?e:e.replace(Jr,"-$&").toLowerCase()}),Wt=function(t,r){switch(t){case"animation":case"animationName":if(typeof r=="string")return r.replace(Kr,function(a,i,c){return se={name:i,styles:c,next:se},i})}return Wr[t]!==1&&!Kt(t)&&typeof r=="number"&&r!==0?r+"px":r};function De(e,t,r){if(r==null)return"";var a=r;if(a.__emotion_styles!==void 0)return a;switch(typeof r){case"boolean":return"";case"object":{var i=r;if(i.anim===1)return se={name:i.name,styles:i.styles,next:se},i.name;var c=r;if(c.styles!==void 0){var u=c.next;if(u!==void 0)for(;u!==void 0;)se={name:u.name,styles:u.styles,next:se},u=u.next;var h=c.styles+";";return h}return Xr(e,t,r)}case"function":{if(e!==void 0){var y=se,g=r(e);return se=y,De(e,t,g)}break}}var R=r;return R}function Xr(e,t,r){var a="";if(Array.isArray(r))for(var i=0;i<r.length;i++)a+=De(e,t,r[i])+";";else for(var c in r){var u=r[c];if(typeof u!="object"){var h=u;Ut(h)&&(a+=dt(c)+":"+Wt(c,h)+";")}else if(Array.isArray(u)&&typeof u[0]=="string"&&t==null)for(var y=0;y<u.length;y++)Ut(u[y])&&(a+=dt(c)+":"+Wt(c,u[y])+";");else{var g=De(e,t,u);switch(c){case"animation":case"animationName":{a+=dt(c)+":"+g+";";break}default:a+=c+"{"+g+"}"}}}return a}var Gt=/label:\s*([^\s;{]+)\s*(;|$)/g,se;function Zr(e,t,r){if(e.length===1&&typeof e[0]=="object"&&e[0]!==null&&e[0].styles!==void 0)return e[0];var a=!0,i="";se=void 0;var c=e[0];if(c==null||c.raw===void 0)a=!1,i+=De(r,t,c);else{var u=c;i+=u[0]}for(var h=1;h<e.length;h++)if(i+=De(r,t,e[h]),a){var y=c;i+=y[h]}Gt.lastIndex=0;for(var g="",R;(R=Gt.exec(i))!==null;)g+="-"+R[1];var w=Ur(i)+g;return{name:w,styles:i,next:se}}var eo=function(t){return t()},to=de.useInsertionEffect?de.useInsertionEffect:!1,ro=to||eo,Xt=de.createContext(typeof HTMLElement<"u"?Br({key:"css"}):null);Xt.Provider;var oo=function(t){return p.forwardRef(function(r,a){var i=p.useContext(Xt);return t(r,i,a)})},no=de.createContext({}),Xe={}.hasOwnProperty,mt="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Zt=function(t,r){var a={};for(var i in r)Xe.call(r,i)&&(a[i]=r[i]);return a[mt]=t,a},ao=function(t){var r=t.cache,a=t.serialized,i=t.isStringTag;return Jt(r,a,i),ro(function(){return qr(r,a,i)}),null},io=oo(function(e,t,r){var a=e.css;typeof a=="string"&&t.registered[a]!==void 0&&(a=t.registered[a]);var i=e[mt],c=[a],u="";typeof e.className=="string"?u=Hr(t.registered,c,e.className):e.className!=null&&(u=e.className+" ");var h=Zr(c,void 0,de.useContext(no));u+=t.key+"-"+h.name;var y={};for(var g in e)Xe.call(e,g)&&g!=="css"&&g!==mt&&(y[g]=e[g]);return y.className=u,r&&(y.ref=r),de.createElement(de.Fragment,null,de.createElement(ao,{cache:t,serialized:h,isStringTag:typeof i=="string"}),de.createElement(i,y))}),er=io,me=Me.Fragment,o=function(t,r,a){return Xe.call(r,"css")?Me.jsx(er,Zt(t,r),a):Me.jsx(t,r,a)},T=function(t,r,a){return Xe.call(r,"css")?Me.jsxs(er,Zt(t,r),a):Me.jsxs(t,r,a)};const so=({components:e=[],children:t})=>o(me,{children:e.reduceRight((r,a)=>o(a,{children:r}),t)}),Ze={playQueue:"PlayQueueStore",bottomBar:"BottomBarStore",playlistList:"PlaylistListStore",playlist:e=>`PlaylistStore/${e}`},St=p.createContext(void 0),Pe=()=>p.useContext(St),pt=new Mr({coerceTypes:!0});function It(e,t){let r;if(r=pt.getSchema(t),r===void 0&&(pt.addSchema(e,t),r=pt.getSchema(t)),r===void 0||r.schema!==e)throw new Error(`Invalid schema. Expected: '${JSON.stringify(e)}', but got '${JSON.stringify(r?.schema)}'.`);return r}const tr={type:"object",properties:{url:{type:"string"},type:{type:"string"},videoId:{type:"string"},title:{type:"string"}},required:["url","type","videoId","title"]};var D=(e=>(e.Off="Off",e.All="All",e.One="One",e))(D||{});const lo={type:"object",properties:{version:{type:"string",nullable:!0},repeat:{type:"string",enum:Object.values(D),nullable:!0},shuffle:{type:"boolean",nullable:!0},items:{type:"array",nullable:!0,items:tr},currentIndex:{type:"integer",nullable:!0}}};var co=Object.defineProperty,uo=Object.getOwnPropertyDescriptor,Y=(e,t,r,a)=>{for(var i=a>1?void 0:a?uo(t,r):t,c=e.length-1,u;c>=0;c--)(u=e[c])&&(i=(a?u(t,r,i):u(i))||i);return a&&i&&co(t,r,i),i};const $=class ft{constructor(t,r){this.playQueue=t,this.dto=r,s.makeObservable(this),this.id=ft.nextId++}static nextId=1;id;isSelected=!1;static fromDto(t,r){return new ft(t,r)}get url(){return this.dto.url}get type(){return this.dto.type}get videoId(){return this.dto.videoId}get title(){return this.dto.title}get isCurrent(){return this.playQueue.currentItem===this}get index(){return this.playQueue.items.indexOf(this)}get isFirst(){return this.index===0}get isLast(){return this.index===this.playQueue.items.length-1}get canMoveToTop(){return!this.isFirst}get canMoveToBottom(){return!this.isLast}get canRemoveToTop(){return!this.isFirst}get canRemoveOthers(){return this.playQueue.hasMultipleItems}clone(){return this.playQueue.createItemFromDto(this.dto)}unselect(){this.isSelected=!1}select(){this.isSelected=!0}toggleSelected(){this.isSelected=!this.isSelected}play(){return this.playQueue.setCurrentItem(this),Promise.resolve()}remove(){return this.playQueue.removeItems([this])}playFirst(){return this.playQueue.playFirst([this.clone()])}playNext(){return this.playQueue.playNext([this.clone()])}addToPlayQueue(){return this.playQueue.addItems([this.clone()])}moveToTop(){this.playQueue.moveItem(this,0)}moveToBottom(){this.playQueue.moveItem(this,this.playQueue.items.length-1)}removeToTop(){return this.playQueue.removeItemsAbove(this)}removeOthers(){return this.playQueue.removeOtherItems(this)}};Y([s.observable],$.prototype,"isSelected",2);Y([s.computed],$.prototype,"isCurrent",1);Y([s.computed],$.prototype,"index",1);Y([s.computed],$.prototype,"isFirst",1);Y([s.computed],$.prototype,"isLast",1);Y([s.computed],$.prototype,"canMoveToTop",1);Y([s.computed],$.prototype,"canMoveToBottom",1);Y([s.computed],$.prototype,"canRemoveToTop",1);Y([s.computed],$.prototype,"canRemoveOthers",1);Y([s.action.bound],$.prototype,"unselect",1);Y([s.action.bound],$.prototype,"select",1);Y([s.action.bound],$.prototype,"toggleSelected",1);Y([s.action.bound],$.prototype,"play",1);Y([s.action.bound],$.prototype,"remove",1);Y([s.action.bound],$.prototype,"playFirst",1);Y([s.action.bound],$.prototype,"playNext",1);Y([s.action.bound],$.prototype,"addToPlayQueue",1);Y([s.action.bound],$.prototype,"moveToTop",1);Y([s.action.bound],$.prototype,"moveToBottom",1);Y([s.action.bound],$.prototype,"removeToTop",1);Y([s.action.bound],$.prototype,"removeOthers",1);let po=$;var mo=Object.defineProperty,fo=Object.getOwnPropertyDescriptor,I=(e,t,r,a)=>{for(var i=a>1?void 0:a?fo(t,r):t,c=e.length-1,u;c>=0;c--)(u=e[c])&&(i=(a?u(t,r,i):u(i))||i);return a&&i&&mo(t,r,i),i};class rr{constructor(t){this.playQueue=t,s.makeObservable(this)}get state(){return{version:"1.0",items:this.playQueue.items.map(t=>t.dto),currentIndex:this.playQueue.currentIndex}}set state(t){this.playQueue.items=t.items?.map(r=>this.playQueue.createItemFromDto(r))??[],this.playQueue.currentIndex=t.currentIndex}validateState(t){return It(lo,"PlayQueueDto")(t)}}I([s.computed.struct],rr.prototype,"state",1);class E{localStorageState;items=[];currentId;constructor(){s.makeObservable(this),this.localStorageState=new rr(this)}createItemFromDto(t){return po.fromDto(this,{url:t.url,type:t.type,videoId:t.videoId,title:t.title})}get isEmpty(){return this.items.length===0}get canClear(){return!this.isEmpty}get currentItem(){return this.items.find(t=>t.id===this.currentId)}get canPlay(){return this.currentItem!==void 0}get canPause(){return this.currentItem!==void 0}get hasMultipleItems(){return this.items.length>1}get currentIndex(){return this.currentId!==void 0?this.items.findIndex(t=>t.id===this.currentId):void 0}set currentIndex(t){this.currentId=t!==void 0?this.items.at(t)?.id:void 0}get hasPreviousItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex>0}get hasNextItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex<this.items.length-1}get isLastItem(){return this.currentIndex!==void 0&&this.currentIndex===this.items.length-1}get selectedItems(){return this.items.filter(t=>t.isSelected)}get allItemsSelected(){return this.selectedItems.length===this.items.length}get hasSelectedItems(){return this.selectedItems.length>0}get selectedItemsOrAllItems(){return this.hasSelectedItems?this.selectedItems:this.items}get canAddSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}get canPlaySelectedItemsNext(){return!this.isEmpty&&this.hasSelectedItems}get canRemoveSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}setItems(t){this.items=t}clear(){this.currentIndex=void 0,this.items=[]}unselectAll(){for(const t of this.items)t.unselect()}selectAll(){for(const t of this.items)t.select()}setCurrentItem(t){this.currentId=t?.id}setNextItems(t){this.currentIndex!==void 0&&this.items.splice(this.currentIndex+1,0,...t)}clearAndSetItems(t){this.clear(),this.setCurrentItem(t[0]),this.setNextItems(t)}async playNext(t){if(this.isEmpty){this.clearAndSetItems(t);return}this.setNextItems(t)}async playSelectedItemsNext(){await this.playNext(this.selectedItemsOrAllItems.map(t=>t.clone())),this.unselectAll()}async addItems(t){if(this.isEmpty){this.clearAndSetItems(t);return}this.items.push(...t)}async addSelectedItems(){await this.addItems(this.selectedItemsOrAllItems.map(t=>t.clone())),this.unselectAll()}async playFirst(t){if(this.isEmpty){this.clearAndSetItems(t);return}const{currentIndex:r}=this;r!==void 0&&(this.items.splice(r,0,...t),this.currentIndex=r)}moveItem(t,r){const a=this.items.splice(this.items.indexOf(t),1)[0];this.items.splice(r,0,a)}async goToFirst(){this.currentIndex!==void 0&&(this.currentIndex=0)}async removeItems(t){const{currentItem:r}=this;Je.pull(this.items,...t.filter(c=>c!==r));const{currentIndex:a,isLastItem:i}=this;Je.pull(this.items,t.find(c=>c===r)),this.currentItem!==r&&(i?await this.goToFirst():this.currentIndex=a)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(t){const r=t.id;return this.removeItems(this.items.filter(a=>a.id!==r))}async removeItemsAbove(t){const r=this.items.indexOf(t);return this.removeItems(this.items.filter((a,i)=>i<r))}async previous(){this.currentIndex!==void 0&&this.hasPreviousItem&&this.currentIndex--}async next(){this.currentIndex!==void 0&&this.hasNextItem&&this.currentIndex++}addItemFromDto(t){const r=this.createItemFromDto(t);return this.addItems([r])}}I([s.observable],E.prototype,"items",2);I([s.observable],E.prototype,"currentId",2);I([s.computed],E.prototype,"isEmpty",1);I([s.computed],E.prototype,"canClear",1);I([s.computed],E.prototype,"currentItem",1);I([s.computed],E.prototype,"canPlay",1);I([s.computed],E.prototype,"canPause",1);I([s.computed],E.prototype,"hasMultipleItems",1);I([s.computed],E.prototype,"currentIndex",1);I([s.computed],E.prototype,"hasPreviousItem",1);I([s.computed],E.prototype,"hasNextItem",1);I([s.computed],E.prototype,"isLastItem",1);I([s.computed],E.prototype,"selectedItems",1);I([s.computed],E.prototype,"allItemsSelected",1);I([s.computed],E.prototype,"hasSelectedItems",1);I([s.computed],E.prototype,"selectedItemsOrAllItems",1);I([s.computed],E.prototype,"canAddSelectedItems",1);I([s.computed],E.prototype,"canPlaySelectedItemsNext",1);I([s.computed],E.prototype,"canRemoveSelectedItems",1);I([s.action.bound],E.prototype,"setItems",1);I([s.action.bound],E.prototype,"clear",1);I([s.action.bound],E.prototype,"unselectAll",1);I([s.action.bound],E.prototype,"selectAll",1);I([s.action.bound],E.prototype,"setCurrentItem",1);I([s.action.bound],E.prototype,"setNextItems",1);I([s.action.bound],E.prototype,"clearAndSetItems",1);I([s.action.bound],E.prototype,"playNext",1);I([s.action.bound],E.prototype,"playSelectedItemsNext",1);I([s.action.bound],E.prototype,"addItems",1);I([s.action.bound],E.prototype,"addSelectedItems",1);I([s.action.bound],E.prototype,"playFirst",1);I([s.action.bound],E.prototype,"moveItem",1);I([s.action.bound],E.prototype,"goToFirst",1);I([s.action.bound],E.prototype,"removeItems",1);I([s.action.bound],E.prototype,"removeSelectedItems",1);I([s.action.bound],E.prototype,"removeOtherItems",1);I([s.action.bound],E.prototype,"removeItemsAbove",1);I([s.action.bound],E.prototype,"previous",1);I([s.action.bound],E.prototype,"next",1);I([s.action.bound],E.prototype,"addItemFromDto",1);const yo=({children:e})=>{const[t]=p.useState(()=>new E);Ke.useLocalStorageState(Ze.playQueue,t.localStorageState);const r=pe.useNostalgicDiva();return p.useEffect(()=>s.reaction(()=>t.currentItem,async(a,i)=>{a===void 0||i===void 0||a.type===i.type&&a.videoId===i.videoId&&await r.setCurrentTime(0)}),[t,r]),o(St.Provider,{value:t,children:e})},or=p.createContext(void 0),nr=()=>p.useContext(or);var ho=Object.defineProperty,vo=Object.getOwnPropertyDescriptor,ne=(e,t,r,a)=>{for(var i=a>1?void 0:a?vo(t,r):t,c=e.length-1,u;c>=0;c--)(u=e[c])&&(i=(a?u(t,r,i):u(i))||i);return a&&i&&ho(t,r,i),i};class te{controller=pe.nullPlayerController;playing=!1;percent=0;seeking=!1;constructor(){s.makeObservable(this)}setPlaying(t){this.playing=t}setPercent(t){this.percent=t}setSeeking(t){this.seeking=t}onControllerChange(t){this.controller=t}onPlay(){this.playing=!0}onPause(){this.playing=!1}onEnded(){this.playing=!1}onTimeUpdate({percent:t}){t!==void 0&&(this.seeking||(this.percent=t))}}ne([s.observable],te.prototype,"controller",2);ne([s.observable],te.prototype,"playing",2);ne([s.observable],te.prototype,"percent",2);ne([s.observable],te.prototype,"seeking",2);ne([s.action.bound],te.prototype,"setPlaying",1);ne([s.action.bound],te.prototype,"setPercent",1);ne([s.action.bound],te.prototype,"setSeeking",1);ne([s.action.bound],te.prototype,"onControllerChange",1);ne([s.action.bound],te.prototype,"onPlay",1);ne([s.action.bound],te.prototype,"onPause",1);ne([s.action.bound],te.prototype,"onEnded",1);ne([s.action.bound],te.prototype,"onTimeUpdate",1);const bo=({children:e})=>{const[t]=p.useState(()=>new te);return o(or.Provider,{value:t,children:e})},ar=p.createContext(void 0),G=()=>p.useContext(ar);var go=Object.defineProperty,So=Object.getOwnPropertyDescriptor,A=(e,t,r,a)=>{for(var i=a>1?void 0:a?So(t,r):t,c=e.length-1,u;c>=0;c--)(u=e[c])&&(i=(a?u(t,r,i):u(i))||i);return a&&i&&go(t,r,i),i};const Io={type:"object",properties:{repeat:{type:"string",enum:Object.values(D),nullable:!0},shuffle:{type:"boolean",nullable:!0}}};class ir{constructor(t){this.bottomBar=t,s.makeObservable(this)}get state(){return{repeat:this.bottomBar.repeat,shuffle:this.bottomBar.shuffle}}set state(t){this.bottomBar.repeat=t.repeat??D.Off,this.bottomBar.shuffle=t.shuffle??!1}validateState(t){return It(Io,"BottomBarLocalStorageState")(t)}}A([s.computed.struct],ir.prototype,"state",1);class F{constructor(t,r){this.player=t,this.playQueue=r,s.makeObservable(this),this.localStorageState=new ir(this)}localStorageState;repeat=D.Off;shuffle=!1;get controller(){return this.player.controller}get playing(){return this.player.playing}get percent(){return this.player.percent}get canSeek(){return!this.playQueue.isEmpty&&this.controller.supports("setCurrentTime")}get currentItem(){return this.playQueue.currentItem}get canToggleRepeat(){return!0}get canToggleShuffle(){return!1}get canPlay(){return this.playQueue.canPlay&&this.controller.supports("play")}get canPause(){return this.playQueue.canPause&&this.controller.supports("pause")}get canPrevious(){return!this.playQueue.isEmpty}get canNext(){return this.playQueue.hasNextItem}get canSkipBack10(){return this.canSeek}get canSkipForward30(){return this.canSeek}get canRemoveFromPlayQueue(){return!this.playQueue.isEmpty}setPercent(t){this.player.setPercent(t)}setSeeking(t){this.player.setSeeking(t)}toggleRepeat(){switch(this.repeat){case D.Off:this.repeat=D.All;break;case D.All:this.repeat=D.One;break;case D.One:this.repeat=D.Off;break}}toggleShuffle(){this.shuffle=!this.shuffle}play(){return this.controller.play()}pause(){return this.controller.pause()}async previous(){if(this.playQueue.hasPreviousItem){const t=await this.controller.getCurrentTime();t===void 0||t<5?await this.playQueue.previous():await this.controller.setCurrentTime(0)}else await this.controller.setCurrentTime(0)}next(){return this.playQueue.next()}async skipBack10(){const t=await this.controller.getCurrentTime();t!==void 0&&await this.controller.setCurrentTime(t-10)}async skipForward30(){const t=await this.controller.getCurrentTime();t!==void 0&&await this.controller.setCurrentTime(t+30)}async removeFromPlayQueue(){this.currentItem!==void 0&&await this.playQueue.removeItems([this.currentItem])}}A([s.observable],F.prototype,"repeat",2);A([s.observable],F.prototype,"shuffle",2);A([s.computed],F.prototype,"controller",1);A([s.computed],F.prototype,"playing",1);A([s.computed],F.prototype,"percent",1);A([s.computed],F.prototype,"canSeek",1);A([s.computed],F.prototype,"currentItem",1);A([s.computed],F.prototype,"canToggleRepeat",1);A([s.computed],F.prototype,"canToggleShuffle",1);A([s.computed],F.prototype,"canPlay",1);A([s.computed],F.prototype,"canPause",1);A([s.computed],F.prototype,"canPrevious",1);A([s.computed],F.prototype,"canNext",1);A([s.computed],F.prototype,"canSkipBack10",1);A([s.computed],F.prototype,"canSkipForward30",1);A([s.computed],F.prototype,"canRemoveFromPlayQueue",1);A([s.action.bound],F.prototype,"setPercent",1);A([s.action.bound],F.prototype,"setSeeking",1);A([s.action.bound],F.prototype,"toggleRepeat",1);A([s.action.bound],F.prototype,"toggleShuffle",1);A([s.action.bound],F.prototype,"play",1);A([s.action.bound],F.prototype,"pause",1);A([s.action.bound],F.prototype,"previous",1);A([s.action.bound],F.prototype,"next",1);A([s.action.bound],F.prototype,"skipBack10",1);A([s.action.bound],F.prototype,"skipForward30",1);A([s.action.bound],F.prototype,"removeFromPlayQueue",1);const Eo=({children:e})=>{const t=nr(),r=Pe(),[a]=p.useState(()=>new F(t,r));return Ke.useLocalStorageState(Ze.bottomBar,a.localStorageState),o(ar.Provider,{value:a,children:e})},sr=p.createContext(void 0),Po=()=>p.useContext(sr);var Co=Object.defineProperty,To=Object.getOwnPropertyDescriptor,le=(e,t,r,a)=>{for(var i=a>1?void 0:a?To(t,r):t,c=e.length-1,u;c>=0;c--)(u=e[c])&&(i=(a?u(t,r,i):u(i))||i);return a&&i&&Co(t,r,i),i};class ae{constructor(t,r,a){this.player=t,this.playQueue=r,this.bottomBar=a,s.makeObservable(this)}interacted=!1;get controller(){return this.player.controller}get currentItem(){return this.playQueue.currentItem}interact(){this.interacted=!0}async onLoaded(){this.interacted&&await this.controller.play()}onPlay(){this.player.onPlay()}onPause(){this.player.onPause()}async onEnded(){switch(this.bottomBar.repeat){case D.One:await this.controller.setCurrentTime(0);break;case D.Off:case D.All:if(this.playQueue.isLastItem)switch(this.bottomBar.repeat){case D.Off:this.player.onEnded();break;case D.All:this.playQueue.hasMultipleItems?await this.playQueue.goToFirst():await this.controller.setCurrentTime(0);break}else await this.playQueue.next();break}}onTimeUpdate(t){this.player.onTimeUpdate(t)}onControllerChange(t){this.player.onControllerChange(t)}}le([s.observable],ae.prototype,"interacted",2);le([s.computed],ae.prototype,"controller",1);le([s.computed],ae.prototype,"currentItem",1);le([s.action.bound],ae.prototype,"interact",1);le([s.action.bound],ae.prototype,"onLoaded",1);le([s.action.bound],ae.prototype,"onPlay",1);le([s.action.bound],ae.prototype,"onPause",1);le([s.action.bound],ae.prototype,"onEnded",1);le([s.action.bound],ae.prototype,"onTimeUpdate",1);le([s.action.bound],ae.prototype,"onControllerChange",1);const xo=({children:e})=>{const t=nr(),r=Pe(),a=G(),[i]=p.useState(()=>new ae(t,r,a));return o(sr.Provider,{value:i,children:e})},Et=p.createContext(void 0),lr=()=>p.useContext(Et);var Ro=Object.defineProperty,wo=Object.getOwnPropertyDescriptor,fe=(e,t,r,a)=>{for(var i=a>1?void 0:a?wo(t,r):t,c=e.length-1,u;c>=0;c--)(u=e[c])&&(i=(a?u(t,r,i):u(i))||i);return a&&i&&Ro(t,r,i),i};class cr{constructor(t){this.playlistList=t,s.makeObservable(this)}get state(){return{items:this.playlistList.items.map(t=>({id:t.id,name:t.name}))}}set state(t){this.playlistList.items=t.items?.map(r=>new Ce(this.playlistList,r.id,r.name))??[]}validateState(t){return!0}}fe([s.computed.struct],cr.prototype,"state",1);class Ce{constructor(t,r,a){this.playlistList=t,s.makeObservable(this),this.id=r,this.name=a}id;name;async rename(t){this.name=t}remove(){return this.playlistList.removeItem(this)}}fe([s.observable],Ce.prototype,"id",2);fe([s.observable],Ce.prototype,"name",2);fe([s.action.bound],Ce.prototype,"rename",1);fe([s.action.bound],Ce.prototype,"remove",1);class Ne{localStorageState;items=[];constructor(){s.makeObservable(this),this.localStorageState=new cr(this)}createItem(t){return new Ce(this,crypto.randomUUID(),t)}setItems(t){this.items=t}async addItem(t){this.items.push(t)}async removeItem(t){Je.pull(this.items,t)}}fe([s.observable],Ne.prototype,"items",2);fe([s.action.bound],Ne.prototype,"setItems",1);fe([s.action.bound],Ne.prototype,"addItem",1);fe([s.action.bound],Ne.prototype,"removeItem",1);const Oo=({children:e})=>{const[t]=p.useState(()=>new Ne);return Ke.useLocalStorageState(Ze.playlistList,t.localStorageState),o(Et.Provider,{value:t,children:e})},_o=({children:e,nostalgicDivaProps:t})=>o(pe.NostalgicDivaProvider,{...t,children:o(so,{components:[bo,yo,Eo,xo,Oo],children:e})});function ko(e){return e!==null&&typeof e=="object"&&"title"in e&&typeof e.title=="string"}const Ao=({onCancel:e,onSave:t})=>{const r=l.useGeneratedHtmlId({prefix:"modalForm"}),[a,i]=p.useState(""),[c,u]=p.useState(""),[h,y]=p.useState(!1);return T(l.EuiModal,{onClose:e,initialFocus:"[name=url]",children:[o(l.EuiModalHeader,{children:o(l.EuiModalHeaderTitle,{children:"Add video"})}),o(l.EuiModalBody,{children:T(l.EuiForm,{id:r,component:"form",onSubmit:async g=>{g.preventDefault();try{y(!0),await t({url:a,title:c})}finally{y(!1)}},children:[o(l.EuiFormRow,{label:"URL",children:o(l.EuiFieldText,{name:"url",value:a,onChange:g=>i(g.target.value)})}),o(l.EuiFormRow,{label:"Title",children:o(l.EuiFieldText,{name:"title",value:c,onChange:g=>u(g.target.value)})})]})}),T(l.EuiModalFooter,{children:[o(l.EuiButtonEmpty,{onClick:e,children:"Cancel"}),o(l.EuiButton,{type:"submit",form:r,fill:!0,disabled:a.trim().length===0,isLoading:h,children:"Add video"})]})]})},Pt=p.memo(({onSave:e})=>{const[t,r]=p.useState(!1),a=p.useCallback(async i=>{const c=pe.findVideoService(i.url);if(c===void 0)return;const u=c.extractVideoId(i.url);if(u===void 0)return;const y=await(await fetch(`https://noembed.com/embed?url=${encodeURIComponent(i.url)}`)).json();await e({url:i.url,type:c.type,videoId:u,title:i.title||(ko(y)?y.title:u)}),r(!1)},[e]);return T(me,{children:[o(l.EuiButton,{onClick:()=>r(!0),iconType:S.AddRegular,color:"primary",children:"Add video"}),t&&o(Ao,{onCancel:()=>r(!1),onSave:a})]})}),Fo=P.observer(({playQueue:e})=>o(l.EuiButton,{iconType:S.AddRegular,onClick:e.addSelectedItems,disabled:!e.canAddSelectedItems,children:"Add to play queue"})),Bo=P.observer(({playQueue:e})=>{const{euiTheme:t}=l.useEuiTheme();return T(l.EuiFlexGroup,{alignItems:"center",gutterSize:"m",style:{position:"sticky",top:48,zIndex:998,background:t.colors.backgroundBasePlain},children:[o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{disabled:!e.canPlaySelectedItemsNext,onClick:e.playSelectedItemsNext,children:"Play next"})}),o(l.EuiFlexItem,{grow:!1,children:o(Fo,{playQueue:e})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:S.DismissRegular,onClick:e.removeSelectedItems,disabled:!e.canRemoveSelectedItems,children:"Remove"})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:S.DeleteRegular,onClick:e.clear,disabled:!e.canClear,children:"Clear"})}),o(l.EuiFlexItem,{grow:!0}),o(l.EuiFlexItem,{grow:!1,children:o(Pt,{onSave:e.addItemFromDto})})]})}),Ct={Audio:"",Dailymotion:"https://www.dailymotion.com/favicon.ico",Niconico:"https://www.nicovideo.jp/favicon.ico",SoundCloud:"https://soundcloud.com/favicon.ico",Twitch:"https://www.twitch.tv/favicon.ico",Vimeo:"https://vimeo.com/favicon.ico",YouTube:"https://www.youtube.com/favicon.ico"},Mo=P.observer(({playQueue:e})=>{const{euiTheme:t}=l.useEuiTheme();return T(l.EuiTableHeader,{style:{position:"sticky",top:112,zIndex:998,background:t.colors.backgroundBasePlain},children:[o(l.EuiTableHeaderCellCheckbox,{children:o(l.EuiCheckbox,{id:"",checked:e.allItemsSelected,onChange:r=>{r.target.checked?e.selectAll():e.unselectAll()}})}),o(l.EuiTableHeaderCell,{width:24}),o(l.EuiTableHeaderCell,{children:"Title"}),o(l.EuiTableHeaderCell,{})]})}),Do=p.memo(({item:e,closePopover:t})=>{const r=p.useCallback(({name:i,icon:c,disabled:u,onClick:h})=>({name:i,icon:c,disabled:u,onClick:async y=>{t(),h(y)}}),[t]),a=p.useMemo(()=>[{id:0,items:[r({name:"Play first",icon:o(l.EuiIcon,{type:""}),onClick:e.playFirst}),r({name:"Play next",icon:o(l.EuiIcon,{type:""}),onClick:e.playNext}),r({name:"Add to play queue",icon:o(l.EuiIcon,{type:S.AddRegular}),onClick:e.addToPlayQueue}),{isSeparator:!0},r({name:"Move to the top",icon:o(l.EuiIcon,{type:S.ArrowUploadRegular}),onClick:e.moveToTop,disabled:!e.canMoveToTop}),r({name:"Move to the bottom",icon:o(l.EuiIcon,{type:S.ArrowDownloadRegular}),onClick:e.moveToBottom,disabled:!e.canMoveToBottom}),{isSeparator:!0},r({name:"Remove to the top",icon:o(l.EuiIcon,{type:""}),onClick:e.removeToTop,disabled:!e.canRemoveToTop}),r({name:"Remove others",icon:o(l.EuiIcon,{type:""}),onClick:e.removeOthers,disabled:!e.canRemoveOthers})]}],[r,e]);return o(l.EuiContextMenu,{initialPanelId:0,panels:a})}),No=p.memo(({item:e})=>{const[t,r]=p.useState(!1),a=p.useCallback(()=>r(!t),[t]),i=p.useCallback(()=>r(!1),[]);return o(l.EuiPopover,{button:o(l.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:S.MoreHorizontalFilled,size:"s",color:"text",onClick:a}),isOpen:t,closePopover:i,panelPaddingSize:"none",anchorPosition:"leftCenter",children:o(Do,{item:e,closePopover:i})})}),jo=P.observer(({item:e})=>{const t=pe.useNostalgicDiva();return T(l.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[o(l.EuiButton,{iconType:S.PlayRegular,size:"s",onClick:async()=>{e.isCurrent?await t.setCurrentTime(0):e.play()},children:"Play"}),o(l.EuiButton,{iconType:S.DismissRegular,size:"s",onClick:e.remove,children:"Remove"}),o(No,{item:e})]})}),$o=P.observer(({item:e})=>T(l.EuiTableRow,{isSelected:e.isCurrent,children:[o(l.EuiTableRowCellCheckbox,{children:o(l.EuiCheckbox,{id:e.id.toString(),checked:e.isSelected,onChange:e.toggleSelected})}),o(l.EuiTableRowCell,{textOnly:!1,children:o("img",{src:Ct[e.type],width:16,height:16,alt:e.type})}),o(l.EuiTableRowCell,{children:o(l.EuiLink,{href:e.url,target:"_blank",external:!0,children:e.title})}),o(jo,{item:e})]})),Lo=P.observer(({playQueue:e})=>o(vt.ReactSortable,{tag:"tbody",list:e.items,setList:t=>e.setItems(t),children:e.items.map(t=>o($o,{item:t},t.id))})),Qo=P.observer(({playQueue:e})=>T(l.EuiTable,{children:[o(Mo,{playQueue:e}),o(Lo,{playQueue:e})]})),ur=P.observer(({playQueue:e})=>{const{euiTheme:t}=l.useEuiTheme();return T(l.EuiPageTemplate.Section,{children:[o(Bo,{playQueue:e}),o(l.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:t.colors.backgroundBasePlain}}),e.isEmpty?o(l.EuiEmptyPrompt,{title:o("h2",{children:"We couldn't find any videos"}),body:o("p",{children:"Your video library doesn't contain any video content."}),actions:o(Pt,{onSave:e.addItemFromDto})}):o(Qo,{playQueue:e})]})}),Tt=({breadcrumbs:e,tabs:t,...r})=>{const a=bt.useRouter();return o(l.EuiPageTemplate.Header,{...r,breadcrumbs:e?.map(({linkProps:i,...c})=>({...c,href:i===void 0?void 0:a.buildLocation(i).href,onClick:i===void 0?void 0:async u=>{u.preventDefault(),await a.navigate(i)}})),tabs:t?.map(({linkProps:i,...c})=>({...c,href:i===void 0?void 0:a.buildLocation(i).href,onClick:i===void 0?void 0:async u=>{u.preventDefault(),await a.navigate(i)}}))})},zo=()=>{const e=Pe();return T(me,{children:[o(Tt,{pageTitle:"Play queue",rightSideItems:[]}),o(ur,{playQueue:e})]})},Yo=P.observer(()=>{const e=G();return o(l.EuiButtonIcon,{title:`Shuffle: ${e.shuffle?"On":"Off"}`,"aria-label":`Shuffle: ${e.shuffle?"On":"Off"}`,iconType:e.shuffle?S.ArrowShuffleFilled:S.ArrowShuffleOffFilled,size:"s",iconSize:"l",onClick:e.toggleShuffle,disabled:!e.canToggleShuffle})}),Vo=P.observer(()=>{const e=G();return o(l.EuiButtonIcon,{title:"Previous","aria-label":"Previous",iconType:S.PreviousFilled,size:"s",iconSize:"l",onClick:e.previous,disabled:!e.canPrevious})}),Ho=P.observer(()=>{const e=G();return o(l.EuiButtonIcon,{title:"Skip back 10 seconds","aria-label":"Skip back 10 seconds",iconType:S.SkipBack10Regular,size:"s",iconSize:"l",onClick:e.skipBack10,disabled:!e.canSkipBack10})}),qo=P.observer(()=>{const e=G();return o(l.EuiButtonIcon,{title:"Pause","aria-label":"Pause",iconType:S.PauseFilled,size:"s",iconSize:"l",onClick:e.pause,disabled:!e.canPause})}),Uo=P.observer(()=>{const e=G();return o(l.EuiButtonIcon,{title:"Play","aria-label":"Play",iconType:S.PlayFilled,size:"s",iconSize:"l",onClick:e.play,disabled:!e.canPlay})}),Wo=P.observer(()=>{const e=G();return o(l.EuiButtonIcon,{title:"Skip forward 30 seconds","aria-label":"Skip forward 30 seconds",iconType:S.SkipForward30Regular,size:"s",iconSize:"l",onClick:e.skipForward30,disabled:!e.canSkipForward30})}),Go=P.observer(()=>{const e=G();return o(l.EuiButtonIcon,{title:"Next","aria-label":"Next",iconType:S.NextFilled,size:"s",iconSize:"l",onClick:e.next,disabled:!e.canNext})}),Jo={[D.Off]:S.ArrowRepeatAllOffFilled,[D.All]:S.ArrowRepeatAllFilled,[D.One]:S.ArrowRepeat1Filled},Ko=P.observer(()=>{const e=G();return o(l.EuiButtonIcon,{title:`Repeat: ${e.repeat===D.All?"All":e.repeat===D.One?"One":"Off"}`,"aria-label":`Repeat: ${e.repeat===D.All?"All":e.repeat===D.One?"One":"Off"}`,iconType:Jo[e.repeat],size:"s",iconSize:"l",onClick:e.toggleRepeat,disabled:!e.canToggleRepeat})}),Xo=P.observer(()=>{const e=G();return T(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o(Yo,{}),o(Vo,{}),o(Ho,{}),e.playing?o(qo,{}):o(Uo,{}),o(Wo,{}),o(Go,{}),o(Ko,{})]})}),Zo=p.memo(({item:e,closePopover:t})=>{const r=p.useCallback(({name:i,icon:c,onClick:u})=>({name:i,icon:c,onClick:async h=>{t(),u(h)}}),[t]),a=p.useMemo(()=>[{id:0,items:[r({name:"Open in new tab",icon:o(l.EuiIcon,{type:S.OpenRegular}),onClick:async()=>{window.open(e.dto.url,"_blank")}}),r({name:"Copy link address",icon:o(l.EuiIcon,{type:""}),onClick:async()=>{await navigator.clipboard.writeText(e.dto.url)}}),r({name:"Copy link text",icon:o(l.EuiIcon,{type:""}),onClick:async()=>{await navigator.clipboard.writeText(e.dto.title)}})]}],[r,e]);return o(l.EuiContextMenu,{initialPanelId:0,panels:a})}),en=p.memo(({item:e})=>{const[t,r]=p.useState(!1),a=p.useCallback(()=>r(!t),[t]),i=p.useCallback(()=>r(!1),[]);return o(l.EuiPopover,{button:o(l.EuiButtonEmpty,{iconType:Ct[e.type],size:"s",onClick:a,children:e.title}),isOpen:t,closePopover:i,panelPaddingSize:"none",anchorPosition:"upLeft",children:o(Zo,{item:e,closePopover:i})})}),tn=P.observer(()=>{const e=G();return o(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexStart",alignItems:"center",children:e.currentItem&&o(en,{item:e.currentItem})})}),rn=P.observer(()=>{const e=G();return o(l.EuiButtonIcon,{title:"Mute","aria-label":"Mute",iconType:S.Speaker2Regular,size:"s",iconSize:"l",disabled:!e.controller.supports("setMuted")})}),on=P.observer(({button:e,isOpen:t,closePopover:r})=>{const a=G(),[i,c]=p.useState("0"),u=pe.useNostalgicDiva();p.useLayoutEffect(()=>{t&&u.getVolume().then(y=>{y!==void 0&&c(Math.floor(y*100).toString())})},[t,u]);const h=p.useCallback(async y=>{c(y.currentTarget.value),await u.setVolume(Number(y.currentTarget.value)/100)},[u]);return o(l.EuiPopover,{button:e,isOpen:t,closePopover:r,anchorPosition:"upRight",children:o(l.EuiFormRow,{children:T(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o(rn,{}),o(l.EuiRange,{min:0,max:100,step:1,value:i,onChange:h,css:{blockSize:32},disabled:!a.controller.supports("setVolume")})]})})})}),nn=P.observer(()=>{const e=G(),[t,r]=p.useState(!1),a=()=>r(!t);return o(on,{button:o(l.EuiButtonIcon,{title:"Volume","aria-label":"Volume",iconType:S.Speaker2Regular,size:"s",iconSize:"l",onClick:a,disabled:!e.controller.supports("getVolume")}),isOpen:t,closePopover:()=>r(!1)})}),an=({onClickPlayQueueButton:e})=>o(l.EuiButtonIcon,{title:"Play queue","aria-label":"Play queue",iconType:S.NavigationPlayRegular,size:"s",iconSize:"l",onClick:e}),sn=P.observer(({closePopover:e})=>{const t=G(),r=pe.useNostalgicDiva(),a=p.useCallback(async()=>{await t.skipBack10(),e()},[t,e]),i=p.useCallback(async()=>{await t.skipForward30(),e()},[t,e]),c=p.useCallback(async w=>{await r.setPlaybackRate(w),e()},[r,e]),u=p.useCallback(async()=>{await t.removeFromPlayQueue(),e()},[t,e]),[h,y]=p.useState(),g=p.useCallback(async()=>{await t.controller.getPlaybackRate().then(w=>y(w))},[t]),R=p.useMemo(()=>[{id:0,items:[{name:"Speed",icon:o(l.EuiIcon,{type:S.TopSpeedRegular}),panel:1,onClick:g,disabled:!t.controller.supports("getPlaybackRate")},{name:"Skip back 10 seconds",icon:o(l.EuiIcon,{type:S.SkipBack10Regular}),onClick:a,disabled:!t.canSkipBack10},{name:"Skip forward 30 seconds",icon:o(l.EuiIcon,{type:S.SkipForward30Regular}),onClick:i,disabled:!t.canSkipForward30},{isSeparator:!0},{name:"Remove from play queue",icon:o(l.EuiIcon,{type:S.DismissRegular}),onClick:u,disabled:!t.canRemoveFromPlayQueue}]},{id:1,title:"Speed",items:[.25,.5,.75,1,1.25,1.5,1.75,2].map(w=>({name:w.toString(),onClick:()=>c(w),icon:w===h?"check":"empty",disabled:!t.controller.supports("setPlaybackRate")}))}],[t,g,a,i,u,c,h]);return o(l.EuiContextMenu,{initialPanelId:0,panels:R})}),ln=p.memo(({button:e,isOpen:t,closePopover:r})=>o(l.EuiPopover,{button:e,isOpen:t,closePopover:r,panelPaddingSize:"none",anchorPosition:"upRight",children:o(sn,{closePopover:r})})),cn=p.memo(()=>{const[e,t]=p.useState(!1),r=()=>t(!e);return o(ln,{button:o(l.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:S.MoreHorizontalFilled,size:"s",iconSize:"l",onClick:r}),isOpen:e,closePopover:()=>t(!1)})}),un=p.memo(({onClickPlayQueueButton:e})=>T(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexEnd",alignItems:"center",children:[o(nn,{}),e&&o(an,{onClickPlayQueueButton:e}),o(cn,{})]})),dn=P.observer(()=>{const e=G(),t=pe.useNostalgicDiva(),r=p.useCallback(c=>{const u=Number(c.currentTarget.value)/100;e.setPercent(u)},[e]),a=p.useCallback(c=>{c.button===0&&e.setSeeking(!0)},[e]),i=p.useCallback(async c=>{if(c.button===0){const u=Number(c.currentTarget.value)/100;e.setSeeking(!1);const h=await t.getDuration();h!==void 0&&await t.setCurrentTime(h*u)}},[e,t]);return o(l.EuiRange,{min:0,max:100,step:1e-7,value:e.percent*100,onChange:r,onMouseDown:a,onMouseUp:i,fullWidth:!0,showRange:!0,css:{blockSize:32},disabled:!e.canSeek})}),pn=P.observer(({onClickPlayQueueButton:e})=>o(l.EuiBottomBar,{paddingSize:"s",children:T(l.EuiFlexGroup,{direction:"column",gutterSize:"none",children:[o(l.EuiFlexItem,{children:o(dn,{})}),o(l.EuiFlexItem,{children:T(l.EuiFlexGroup,{responsive:!1,children:[o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(tn,{})}),o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(Xo,{})}),o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(un,{onClickPlayQueueButton:e})})]})})]})})),yt={width:400,height:225},mn=P.observer(()=>{const e=Po(),t=p.useMemo(()=>({onLoaded:e.onLoaded,onPlay:e.onPlay,onPause:e.onPause,onEnded:e.onEnded,onTimeUpdate:e.onTimeUpdate}),[e]);return p.useLayoutEffect(()=>(window.addEventListener("click",e.interact,{once:!0}),()=>{window.removeEventListener("click",e.interact)}),[e]),o("div",{css:{position:"fixed",right:0,bottom:gt,width:yt.width,height:yt.height,zIndex:998,backgroundColor:"rgb(39, 39, 39)",display:"flex",flexDirection:"column"},children:o("div",{css:{flexGrow:1,backgroundColor:"black"},children:e.currentItem&&o(pe.NostalgicDiva,{src:e.currentItem.url,options:t,onControllerChange:e.onControllerChange})})})}),fn=P.observer(({children:e})=>{const t=Pe();return T(l.EuiPageTemplate,{panelled:!0,style:{minBlockSize:`max(460px, 100vh - ${gt}px)`},children:[e,!t.isEmpty&&o(l.EuiSpacer,{style:{blockSize:yt.height}})]})}),yn=P.observer(({playlist:e})=>o(l.EuiButton,{iconType:S.AddRegular,onClick:e.addSelectedItems,disabled:!e.canAddSelectedItems,children:"Add to play queue"})),hn=P.observer(({playlist:e})=>{const{euiTheme:t}=l.useEuiTheme();return T(l.EuiFlexGroup,{alignItems:"center",gutterSize:"m",style:{position:"sticky",top:48,zIndex:998,background:t.colors.backgroundBasePlain},children:[o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{disabled:!e.canPlaySelectedItemsNext,onClick:e.playSelectedItemsNext,children:"Play next"})}),o(l.EuiFlexItem,{grow:!1,children:o(yn,{playlist:e})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:S.DismissRegular,onClick:e.removeSelectedItems,disabled:!e.canRemoveSelectedItems,children:"Remove"})}),o(l.EuiFlexItem,{grow:!0}),o(l.EuiFlexItem,{grow:!1,children:o(Pt,{onSave:e.addItemFromDto})})]})}),vn=P.observer(({playlist:e})=>T(l.EuiTableHeader,{children:[o(l.EuiTableHeaderCellCheckbox,{children:o(l.EuiCheckbox,{id:"",checked:e.allItemsSelected,onChange:t=>{t.target.checked?e.selectAll():e.unselectAll()}})}),o(l.EuiTableHeaderCell,{width:24}),o(l.EuiTableHeaderCell,{children:"Title"}),o(l.EuiTableHeaderCell,{})]})),bn=p.memo(({item:e,closePopover:t})=>{const r=p.useCallback(({name:i,icon:c,disabled:u,onClick:h})=>({name:i,icon:c,disabled:u,onClick:async y=>{t(),h(y)}}),[t]),a=p.useMemo(()=>[{id:0,items:[r({name:"Play first",icon:o(l.EuiIcon,{type:""}),onClick:e.playFirst}),r({name:"Play next",icon:o(l.EuiIcon,{type:""}),onClick:e.playNext}),r({name:"Add to play queue",icon:o(l.EuiIcon,{type:S.AddRegular}),onClick:e.addToPlayQueue}),{isSeparator:!0},r({name:"Move to the top",icon:o(l.EuiIcon,{type:S.ArrowUploadRegular}),onClick:e.moveToTop,disabled:!e.canMoveToTop}),r({name:"Move to the bottom",icon:o(l.EuiIcon,{type:S.ArrowDownloadRegular}),onClick:e.moveToBottom,disabled:!e.canMoveToBottom}),{isSeparator:!0},r({name:"Remove to the top",icon:o(l.EuiIcon,{type:""}),onClick:e.removeToTop,disabled:!e.canRemoveToTop}),r({name:"Remove others",icon:o(l.EuiIcon,{type:""}),onClick:e.removeOthers,disabled:!e.canRemoveOthers})]}],[r,e]);return o(l.EuiContextMenu,{initialPanelId:0,panels:a})}),gn=p.memo(({item:e})=>{const[t,r]=p.useState(!1),a=p.useCallback(()=>r(!t),[t]),i=p.useCallback(()=>r(!1),[]);return o(l.EuiPopover,{button:o(l.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:S.MoreHorizontalFilled,size:"s",color:"text",onClick:a}),isOpen:t,closePopover:i,panelPaddingSize:"none",anchorPosition:"leftCenter",children:o(bn,{item:e,closePopover:i})})}),Sn=P.observer(({item:e})=>T(l.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[o(l.EuiButton,{iconType:S.PlayRegular,size:"s",onClick:e.play,children:"Play"}),o(l.EuiButton,{iconType:S.DismissRegular,size:"s",onClick:e.remove,children:"Remove"}),o(gn,{item:e})]})),In=P.observer(({item:e})=>T(l.EuiTableRow,{isSelected:e.isCurrent,children:[o(l.EuiTableRowCellCheckbox,{children:o(l.EuiCheckbox,{id:e.id.toString(),checked:e.isSelected,onChange:e.toggleSelected})}),o(l.EuiTableRowCell,{textOnly:!1,children:o("img",{src:Ct[e.type],width:16,height:16,alt:e.type})}),o(l.EuiTableRowCell,{children:o(l.EuiLink,{href:e.url,target:"_blank",external:!0,children:e.title})}),o(Sn,{item:e})]})),En=P.observer(({playlist:e})=>o(vt.ReactSortable,{tag:"tbody",list:e.items,setList:t=>e.setItems(t),children:e.items.map(t=>o(In,{item:t},t.id))})),Pn=P.observer(({playlist:e})=>T(l.EuiTable,{children:[o(vn,{playlist:e}),o(En,{playlist:e})]})),Cn=P.observer(({playlist:e})=>{const{euiTheme:t}=l.useEuiTheme();return T(l.EuiPageTemplate.Section,{children:[o(hn,{playlist:e}),o(l.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:t.colors.backgroundBasePlain}}),e.isEmpty?o(me,{}):o(Pn,{playlist:e})]})});var Tn=Object.defineProperty,xn=Object.getOwnPropertyDescriptor,V=(e,t,r,a)=>{for(var i=a>1?void 0:a?xn(t,r):t,c=e.length-1,u;c>=0;c--)(u=e[c])&&(i=(a?u(t,r,i):u(i))||i);return a&&i&&Tn(t,r,i),i};const L=class ht{constructor(t,r,a){this.playQueue=t,this.playlist=r,this.dto=a,s.makeObservable(this),this.id=ht.nextId++}static nextId=1;id;isSelected=!1;static fromDto(t,r,a){return new ht(t,r,a)}get url(){return this.dto.url}get type(){return this.dto.type}get videoId(){return this.dto.videoId}get title(){return this.dto.title}get isCurrent(){return!1}get index(){return this.playlist.items.indexOf(this)}get isFirst(){return this.index===0}get isLast(){return this.index===this.playlist.items.length-1}get canMoveToTop(){return!this.isFirst}get canMoveToBottom(){return!this.isLast}get canRemoveToTop(){return!this.isFirst}get canRemoveOthers(){return this.playlist.hasMultipleItems}unselect(){this.isSelected=!1}select(){this.isSelected=!0}toggleSelected(){this.isSelected=!this.isSelected}play(){return this.playQueue.clearAndSetItems([this.playQueue.createItemFromDto(this.dto)]),Promise.resolve()}remove(){return this.playlist.removeItems([this])}playFirst(){return this.playQueue.playFirst([this.playQueue.createItemFromDto(this.dto)])}playNext(){return this.playQueue.playNext([this.playQueue.createItemFromDto(this.dto)])}addToPlayQueue(){return this.playQueue.addItems([this.playQueue.createItemFromDto(this.dto)])}moveToTop(){this.playlist.moveItem(this,0)}moveToBottom(){this.playlist.moveItem(this,this.playlist.items.length-1)}removeToTop(){return this.playlist.removeItemsAbove(this)}removeOthers(){return this.playlist.removeOtherItems(this)}};V([s.observable],L.prototype,"isSelected",2);V([s.computed],L.prototype,"isCurrent",1);V([s.computed],L.prototype,"index",1);V([s.computed],L.prototype,"isFirst",1);V([s.computed],L.prototype,"isLast",1);V([s.computed],L.prototype,"canMoveToTop",1);V([s.computed],L.prototype,"canMoveToBottom",1);V([s.computed],L.prototype,"canRemoveToTop",1);V([s.computed],L.prototype,"canRemoveOthers",1);V([s.action.bound],L.prototype,"unselect",1);V([s.action.bound],L.prototype,"select",1);V([s.action.bound],L.prototype,"toggleSelected",1);V([s.action.bound],L.prototype,"play",1);V([s.action.bound],L.prototype,"remove",1);V([s.action.bound],L.prototype,"playFirst",1);V([s.action.bound],L.prototype,"playNext",1);V([s.action.bound],L.prototype,"addToPlayQueue",1);V([s.action.bound],L.prototype,"moveToTop",1);V([s.action.bound],L.prototype,"moveToBottom",1);V([s.action.bound],L.prototype,"removeToTop",1);V([s.action.bound],L.prototype,"removeOthers",1);let Rn=L;var wn=Object.defineProperty,On=Object.getOwnPropertyDescriptor,N=(e,t,r,a)=>{for(var i=a>1?void 0:a?On(t,r):t,c=e.length-1,u;c>=0;c--)(u=e[c])&&(i=(a?u(t,r,i):u(i))||i);return a&&i&&wn(t,r,i),i};const _n={type:"object",properties:{version:{type:"string",nullable:!0},items:{type:"array",nullable:!0,items:tr}}};class dr{constructor(t){this.playlist=t,s.makeObservable(this)}get state(){return{version:"1.0",items:this.playlist.items.map(t=>t.dto)}}set state(t){this.playlist.items=t.items?.map(r=>this.playlist.createItemFromDto(r))??[]}validateState(t){return It(_n,"PlaylistLocalStorageState")(t)}}N([s.computed.struct],dr.prototype,"state",1);class j{constructor(t){this.playQueue=t,s.makeObservable(this),this.localStorageState=new dr(this)}localStorageState;items=[];createItemFromDto(t){return Rn.fromDto(this.playQueue,this,{url:t.url,type:t.type,videoId:t.videoId,title:t.title})}get isEmpty(){return this.items.length===0}get hasMultipleItems(){return this.items.length>1}get selectedItems(){return this.items.filter(t=>t.isSelected)}get allItemsSelected(){return this.selectedItems.length===this.items.length}get hasSelectedItems(){return this.selectedItems.length>0}get selectedItemsOrAllItems(){return this.hasSelectedItems?this.selectedItems:this.items}get canAddSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}get canPlaySelectedItemsNext(){return!this.isEmpty&&this.hasSelectedItems}get canRemoveSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}setItems(t){this.items=t}unselectAll(){for(const t of this.items)t.unselect()}selectAll(){for(const t of this.items)t.select()}async playSelectedItemsNext(){await this.playQueue.playNext(this.selectedItemsOrAllItems.map(t=>this.playQueue.createItemFromDto(t.dto))),this.unselectAll()}async addSelectedItems(){await this.playQueue.addItems(this.selectedItemsOrAllItems.map(t=>this.playQueue.createItemFromDto(t.dto))),this.unselectAll()}async addItems(t){this.items.push(...t)}moveItem(t,r){const a=this.items.splice(this.items.indexOf(t),1)[0];this.items.splice(r,0,a)}async removeItems(t){Je.pull(this.items,...t)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(t){const r=t.id;return this.removeItems(this.items.filter(a=>a.id!==r))}async removeItemsAbove(t){const r=this.items.indexOf(t);return this.removeItems(this.items.filter((a,i)=>i<r))}addItemFromDto(t){const r=this.createItemFromDto(t);return this.addItems([r])}playAll(){return this.playQueue.clearAndSetItems(this.items.map(t=>this.playQueue.createItemFromDto(t.dto))),Promise.resolve()}}N([s.observable],j.prototype,"items",2);N([s.computed],j.prototype,"isEmpty",1);N([s.computed],j.prototype,"hasMultipleItems",1);N([s.computed],j.prototype,"selectedItems",1);N([s.computed],j.prototype,"allItemsSelected",1);N([s.computed],j.prototype,"hasSelectedItems",1);N([s.computed],j.prototype,"selectedItemsOrAllItems",1);N([s.computed],j.prototype,"canAddSelectedItems",1);N([s.computed],j.prototype,"canPlaySelectedItemsNext",1);N([s.computed],j.prototype,"canRemoveSelectedItems",1);N([s.action.bound],j.prototype,"setItems",1);N([s.action.bound],j.prototype,"unselectAll",1);N([s.action.bound],j.prototype,"selectAll",1);N([s.action.bound],j.prototype,"playSelectedItemsNext",1);N([s.action.bound],j.prototype,"addSelectedItems",1);N([s.action.bound],j.prototype,"addItems",1);N([s.action.bound],j.prototype,"moveItem",1);N([s.action.bound],j.prototype,"removeItems",1);N([s.action.bound],j.prototype,"removeSelectedItems",1);N([s.action.bound],j.prototype,"removeOtherItems",1);N([s.action.bound],j.prototype,"removeItemsAbove",1);N([s.action.bound],j.prototype,"addItemFromDto",1);N([s.action.bound],j.prototype,"playAll",1);const kn=({onClick:e})=>o(l.EuiButton,{onClick:e,iconType:S.PlayRegular,fill:!0,children:"Play all"}),An=({playlistListItem:e,onCancel:t,onSave:r})=>{const a=l.useGeneratedHtmlId({prefix:"modalForm"}),[i,c]=p.useState(e.name),[u,h]=p.useState(!1);return T(l.EuiModal,{onClose:t,initialFocus:"[name=name]",children:[o(l.EuiModalHeader,{children:o(l.EuiModalHeaderTitle,{children:"Rename playlist"})}),o(l.EuiModalBody,{children:o(l.EuiForm,{id:a,component:"form",onSubmit:async y=>{y.preventDefault();try{h(!0),await r({name:i})}finally{h(!1)}},children:o(l.EuiFormRow,{label:"Name",children:o(l.EuiFieldText,{name:"name",value:i,onChange:y=>c(y.target.value)})})})}),T(l.EuiModalFooter,{children:[o(l.EuiButtonEmpty,{onClick:t,children:"Cancel"}),o(l.EuiButton,{type:"submit",form:a,fill:!0,disabled:i.trim().length===0,isLoading:u,children:"Rename"})]})]})},Fn=({playlistListItem:e,onSave:t})=>{const[r,a]=p.useState(!1),i=p.useCallback(async c=>{await t(c),a(!1)},[t]);return T(me,{children:[o(l.EuiButton,{onClick:()=>a(!0),iconType:S.RenameRegular,children:"Rename"}),r&&o(An,{playlistListItem:e,onCancel:()=>a(!1),onSave:i})]})},Bn=({playlistListItem:e,onCancel:t,onSave:r})=>{const[a,i]=p.useState(!1),c=p.useCallback(async()=>{try{i(!0),await r()}finally{i(!1)}},[r]);return o(l.EuiConfirmModal,{title:"Delete playlist permanently?",onCancel:t,onConfirm:c,cancelButtonText:"Cancel",confirmButtonText:"Delete",buttonColor:"danger",isLoading:a,children:T("p",{children:["Are you sure you want to delete this playlist? If you delete '",e.name,"', you won't be able to recover it."]})})},Mn=({playlistListItem:e,onSave:t})=>{const[r,a]=p.useState(!1),i=p.useCallback(async()=>{await t(),a(!1)},[t]);return T(me,{children:[o(l.EuiButton,{onClick:()=>a(!0),iconType:S.DeleteRegular,children:"Delete"}),r&&o(Bn,{playlistListItem:e,onCancel:()=>a(!1),onSave:i})]})},Dn=P.observer(({playlistListItem:e})=>{const t=Ze.playlist(e.id),r=Pe(),[a]=p.useState(()=>new j(r));Ke.useLocalStorageState(t,a.localStorageState);const i=bt.useRouter(),c=p.useCallback(async h=>{await e.rename(h.name)},[e]),u=p.useCallback(async()=>{await i.navigate({to:"/playlists"}),window.localStorage.removeItem(t),await e.remove()},[e,i,t]);return T(me,{children:[o(Tt,{pageTitle:e.name,breadcrumbs:[{text:"Playlists",linkProps:{to:"/playlists"}},{text:e.name}],rightSideItems:[o(kn,{onClick:a.playAll}),o(Fn,{playlistListItem:e,onSave:c}),o(Mn,{playlistListItem:e,onSave:u})]}),o(Cn,{playlist:a})]})}),Nn=({onCancel:e,onSave:t})=>{const r=l.useGeneratedHtmlId({prefix:"modalForm"}),[a,i]=p.useState(""),[c,u]=p.useState(!1);return T(l.EuiModal,{onClose:e,initialFocus:"[name=name]",children:[o(l.EuiModalHeader,{children:o(l.EuiModalHeaderTitle,{children:"Create playlist"})}),o(l.EuiModalBody,{children:o(l.EuiForm,{id:r,component:"form",onSubmit:async h=>{h.preventDefault();try{u(!0),await t({name:a})}finally{u(!1)}},children:o(l.EuiFormRow,{label:"Name",children:o(l.EuiFieldText,{name:"name",value:a,onChange:h=>i(h.target.value)})})})}),T(l.EuiModalFooter,{children:[o(l.EuiButtonEmpty,{onClick:e,children:"Cancel"}),o(l.EuiButton,{type:"submit",form:r,fill:!0,disabled:a.trim().length===0,isLoading:c,children:"Create playlist"})]})]})},jn=({children:e,onSave:t})=>{const[r,a]=p.useState(!1),i=p.useCallback(async c=>{await t(c),a(!1)},[t]);return T(me,{children:[o(l.EuiButton,{onClick:()=>a(!0),iconType:S.AddRegular,fill:!0,children:e}),r&&o(Nn,{onCancel:()=>a(!1),onSave:i})]})},$n=({linkProps:e,...t})=>{const r=bt.useRouter(),a=async i=>{i.preventDefault(),await r.navigate(e)};return o(l.EuiLink,{...t,href:r.buildLocation(e).href,onClick:a})},Ln=P.observer(({playlistList:e})=>o(l.EuiTableHeader,{children:o(l.EuiTableHeaderCell,{children:"Name"})})),Qn=P.observer(({item:e})=>o(l.EuiTableRow,{children:o(l.EuiTableRowCell,{children:o($n,{linkProps:{to:"/playlists/$playlistId",params:{playlistId:e.id}},children:e.name})})},e.id)),zn=P.observer(({playlistList:e})=>o(vt.ReactSortable,{tag:"tbody",list:e.items,setList:t=>e.setItems(t),children:e.items.map(t=>o(Qn,{item:t},t.id))})),Yn=P.observer(({playlistList:e})=>T(l.EuiTable,{children:[o(Ln,{playlistList:e}),o(zn,{playlistList:e})]})),Vn=()=>o(Tt,{pageTitle:"Playlists",breadcrumbs:[{text:"Playlists"}]}),Hn=P.observer(({playlistList:e})=>{const t=p.useCallback(async r=>{await e.addItem(e.createItem(r.name))},[e]);return T(l.EuiPageTemplate.Section,{children:[o(jn,{onSave:t,children:"New playlist"}),o(l.EuiSpacer,{size:"l"}),o(Yn,{playlistList:e})]})}),qn=p.memo(()=>{const e=lr();return T(me,{children:[o(Vn,{}),o(Hn,{playlistList:e})]})});exports.BottomBar=pn;exports.HydrangeanDivaProvider=_o;exports.MediaPlayerLayout=fn;exports.MiniPlayer=mn;exports.PlayQueueContext=St;exports.PlayQueuePage=zo;exports.PlayQueueSection=ur;exports.PlaylistDetailsPage=Dn;exports.PlaylistListContext=Et;exports.PlaylistListPage=qn;exports.RepeatMode=D;exports.bottomBarHeight=gt;exports.usePlayQueue=Pe;exports.usePlaylistList=lr;
14
+ <%s key={someKey} {...props} />`,ut,he,Fr,he),$t[he+ut]=!0}}return n===a?Rr(U):wr(U),U}}function Or(n,d,f){return Lt(n,d,f,!0)}function _r(n,d,f){return Lt(n,d,f,!1)}var kr=_r,Ar=Or;Fe.Fragment=a,Fe.jsx=kr,Fe.jsxs=Ar})()),Fe}var Yt;function Lr(){return Yt||(Yt=1,process.env.NODE_ENV==="production"?We.exports=Nr():We.exports=$r()),We.exports}var Be=Lr(),Ge={exports:{}},_={};var Vt;function Qr(){if(Vt)return _;Vt=1;var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,r=t?Symbol.for("react.portal"):60106,a=t?Symbol.for("react.fragment"):60107,i=t?Symbol.for("react.strict_mode"):60108,c=t?Symbol.for("react.profiler"):60114,u=t?Symbol.for("react.provider"):60109,h=t?Symbol.for("react.context"):60110,y=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,w=t?Symbol.for("react.forward_ref"):60112,R=t?Symbol.for("react.suspense"):60113,K=t?Symbol.for("react.suspense_list"):60120,W=t?Symbol.for("react.memo"):60115,H=t?Symbol.for("react.lazy"):60116,re=t?Symbol.for("react.block"):60121,ce=t?Symbol.for("react.fundamental"):60117,X=t?Symbol.for("react.responder"):60118,M=t?Symbol.for("react.scope"):60119;function q(m){if(typeof m=="object"&&m!==null){var Z=m.$$typeof;switch(Z){case e:switch(m=m.type,m){case y:case g:case a:case c:case i:case R:return m;default:switch(m=m&&m.$$typeof,m){case h:case w:case H:case W:case u:return m;default:return Z}}case r:return Z}}}function Q(m){return q(m)===g}return _.AsyncMode=y,_.ConcurrentMode=g,_.ContextConsumer=h,_.ContextProvider=u,_.Element=e,_.ForwardRef=w,_.Fragment=a,_.Lazy=H,_.Memo=W,_.Portal=r,_.Profiler=c,_.StrictMode=i,_.Suspense=R,_.isAsyncMode=function(m){return Q(m)||q(m)===y},_.isConcurrentMode=Q,_.isContextConsumer=function(m){return q(m)===h},_.isContextProvider=function(m){return q(m)===u},_.isElement=function(m){return typeof m=="object"&&m!==null&&m.$$typeof===e},_.isForwardRef=function(m){return q(m)===w},_.isFragment=function(m){return q(m)===a},_.isLazy=function(m){return q(m)===H},_.isMemo=function(m){return q(m)===W},_.isPortal=function(m){return q(m)===r},_.isProfiler=function(m){return q(m)===c},_.isStrictMode=function(m){return q(m)===i},_.isSuspense=function(m){return q(m)===R},_.isValidElementType=function(m){return typeof m=="string"||typeof m=="function"||m===a||m===g||m===c||m===i||m===R||m===K||typeof m=="object"&&m!==null&&(m.$$typeof===H||m.$$typeof===W||m.$$typeof===u||m.$$typeof===h||m.$$typeof===w||m.$$typeof===ce||m.$$typeof===X||m.$$typeof===M||m.$$typeof===re)},_.typeOf=q,_}var k={};var Ht;function zr(){return Ht||(Ht=1,process.env.NODE_ENV!=="production"&&(function(){var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,r=t?Symbol.for("react.portal"):60106,a=t?Symbol.for("react.fragment"):60107,i=t?Symbol.for("react.strict_mode"):60108,c=t?Symbol.for("react.profiler"):60114,u=t?Symbol.for("react.provider"):60109,h=t?Symbol.for("react.context"):60110,y=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,w=t?Symbol.for("react.forward_ref"):60112,R=t?Symbol.for("react.suspense"):60113,K=t?Symbol.for("react.suspense_list"):60120,W=t?Symbol.for("react.memo"):60115,H=t?Symbol.for("react.lazy"):60116,re=t?Symbol.for("react.block"):60121,ce=t?Symbol.for("react.fundamental"):60117,X=t?Symbol.for("react.responder"):60118,M=t?Symbol.for("react.scope"):60119;function q(v){return typeof v=="string"||typeof v=="function"||v===a||v===g||v===c||v===i||v===R||v===K||typeof v=="object"&&v!==null&&(v.$$typeof===H||v.$$typeof===W||v.$$typeof===u||v.$$typeof===h||v.$$typeof===w||v.$$typeof===ce||v.$$typeof===X||v.$$typeof===M||v.$$typeof===re)}function Q(v){if(typeof v=="object"&&v!==null){var _e=v.$$typeof;switch(_e){case e:var ge=v.type;switch(ge){case y:case g:case a:case c:case i:case R:return ge;default:var ye=ge&&ge.$$typeof;switch(ye){case h:case w:case H:case W:case u:return ye;default:return _e}}case r:return _e}}}var m=y,Z=g,Ce=h,Ne=u,$e=e,tt=w,rt=a,Le=H,ie=W,ue=r,fe=c,Qe=i,ze=R,Te=!1;function Ye(v){return Te||(Te=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),xe(v)||Q(v)===y}function xe(v){return Q(v)===g}function Ve(v){return Q(v)===h}function He(v){return Q(v)===u}function qe(v){return typeof v=="object"&&v!==null&&v.$$typeof===e}function ot(v){return Q(v)===w}function nt(v){return Q(v)===a}function we(v){return Q(v)===H}function Re(v){return Q(v)===W}function ve(v){return Q(v)===r}function Oe(v){return Q(v)===c}function be(v){return Q(v)===i}function at(v){return Q(v)===R}k.AsyncMode=m,k.ConcurrentMode=Z,k.ContextConsumer=Ce,k.ContextProvider=Ne,k.Element=$e,k.ForwardRef=tt,k.Fragment=rt,k.Lazy=Le,k.Memo=ie,k.Portal=ue,k.Profiler=fe,k.StrictMode=Qe,k.Suspense=ze,k.isAsyncMode=Ye,k.isConcurrentMode=xe,k.isContextConsumer=Ve,k.isContextProvider=He,k.isElement=qe,k.isForwardRef=ot,k.isFragment=nt,k.isLazy=we,k.isMemo=Re,k.isPortal=ve,k.isProfiler=Oe,k.isStrictMode=be,k.isSuspense=at,k.isValidElementType=q,k.typeOf=Q})()),k}var qt;function Yr(){return qt||(qt=1,process.env.NODE_ENV==="production"?Ge.exports=Qr():Ge.exports=zr()),Ge.exports}var dt,Ut;function Vr(){if(Ut)return dt;Ut=1;var t=Yr(),e={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},r={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};c[t.ForwardRef]=a,c[t.Memo]=i;function u(H){return t.isMemo(H)?i:c[H.$$typeof]||e}var h=Object.defineProperty,y=Object.getOwnPropertyNames,g=Object.getOwnPropertySymbols,w=Object.getOwnPropertyDescriptor,R=Object.getPrototypeOf,K=Object.prototype;function W(H,re,ce){if(typeof re!="string"){if(K){var X=R(re);X&&X!==K&&W(H,X,ce)}var M=y(re);g&&(M=M.concat(g(re)));for(var q=u(H),Q=u(re),m=0;m<M.length;++m){var Z=M[m];if(!r[Z]&&!(ce&&ce[Z])&&!(Q&&Q[Z])&&!(q&&q[Z])){var Ce=w(re,Z);try{h(H,Z,Ce)}catch{}}}}return H}return dt=W,dt}Vr();var Hr=!0;function qr(t,e,r){var a="";return r.split(" ").forEach(function(i){t[i]!==void 0?e.push(t[i]+";"):i&&(a+=i+" ")}),a}var Kt=function(e,r,a){var i=e.key+"-"+r.name;(a===!1||Hr===!1)&&e.registered[i]===void 0&&(e.registered[i]=r.styles)},Ur=function(e,r,a){Kt(e,r,a);var i=e.key+"-"+r.name;if(e.inserted[r.name]===void 0){var c=r;do e.insert(r===c?"."+i:"",c,e.sheet,!0),c=c.next;while(c!==void 0)}};function Wr(t){for(var e=0,r,a=0,i=t.length;i>=4;++a,i-=4)r=t.charCodeAt(a)&255|(t.charCodeAt(++a)&255)<<8|(t.charCodeAt(++a)&255)<<16|(t.charCodeAt(++a)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,e=(r&65535)*1540483477+((r>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(i){case 3:e^=(t.charCodeAt(a+2)&255)<<16;case 2:e^=(t.charCodeAt(a+1)&255)<<8;case 1:e^=t.charCodeAt(a)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}var Gr={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function Jr(t){var e=Object.create(null);return function(r){return e[r]===void 0&&(e[r]=t(r)),e[r]}}var Kr=/[A-Z]|^ms/g,Xr=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Xt=function(e){return e.charCodeAt(1)===45},Wt=function(e){return e!=null&&typeof e!="boolean"},pt=Jr(function(t){return Xt(t)?t:t.replace(Kr,"-$&").toLowerCase()}),Gt=function(e,r){switch(e){case"animation":case"animationName":if(typeof r=="string")return r.replace(Xr,function(a,i,c){return se={name:i,styles:c,next:se},i})}return Gr[e]!==1&&!Xt(e)&&typeof r=="number"&&r!==0?r+"px":r};function Me(t,e,r){if(r==null)return"";var a=r;if(a.__emotion_styles!==void 0)return a;switch(typeof r){case"boolean":return"";case"object":{var i=r;if(i.anim===1)return se={name:i.name,styles:i.styles,next:se},i.name;var c=r;if(c.styles!==void 0){var u=c.next;if(u!==void 0)for(;u!==void 0;)se={name:u.name,styles:u.styles,next:se},u=u.next;var h=c.styles+";";return h}return Zr(t,e,r)}case"function":{if(t!==void 0){var y=se,g=r(t);return se=y,Me(t,e,g)}break}}var w=r;return w}function Zr(t,e,r){var a="";if(Array.isArray(r))for(var i=0;i<r.length;i++)a+=Me(t,e,r[i])+";";else for(var c in r){var u=r[c];if(typeof u!="object"){var h=u;Wt(h)&&(a+=pt(c)+":"+Gt(c,h)+";")}else if(Array.isArray(u)&&typeof u[0]=="string"&&e==null)for(var y=0;y<u.length;y++)Wt(u[y])&&(a+=pt(c)+":"+Gt(c,u[y])+";");else{var g=Me(t,e,u);switch(c){case"animation":case"animationName":{a+=pt(c)+":"+g+";";break}default:a+=c+"{"+g+"}"}}}return a}var Jt=/label:\s*([^\s;{]+)\s*(;|$)/g,se;function eo(t,e,r){if(t.length===1&&typeof t[0]=="object"&&t[0]!==null&&t[0].styles!==void 0)return t[0];var a=!0,i="";se=void 0;var c=t[0];if(c==null||c.raw===void 0)a=!1,i+=Me(r,e,c);else{var u=c;i+=u[0]}for(var h=1;h<t.length;h++)if(i+=Me(r,e,t[h]),a){var y=c;i+=y[h]}Jt.lastIndex=0;for(var g="",w;(w=Jt.exec(i))!==null;)g+="-"+w[1];var R=Wr(i)+g;return{name:R,styles:i,next:se}}var to=function(e){return e()},ro=de.useInsertionEffect?de.useInsertionEffect:!1,oo=ro||to,Zt=de.createContext(typeof HTMLElement<"u"?Mr({key:"css"}):null);Zt.Provider;var no=function(e){return p.forwardRef(function(r,a){var i=p.useContext(Zt);return e(r,i,a)})},ao=de.createContext({}),Xe={}.hasOwnProperty,ft="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",er=function(e,r){var a={};for(var i in r)Xe.call(r,i)&&(a[i]=r[i]);return a[ft]=e,a},io=function(e){var r=e.cache,a=e.serialized,i=e.isStringTag;return Kt(r,a,i),oo(function(){return Ur(r,a,i)}),null},so=no(function(t,e,r){var a=t.css;typeof a=="string"&&e.registered[a]!==void 0&&(a=e.registered[a]);var i=t[ft],c=[a],u="";typeof t.className=="string"?u=qr(e.registered,c,t.className):t.className!=null&&(u=t.className+" ");var h=eo(c,void 0,de.useContext(ao));u+=e.key+"-"+h.name;var y={};for(var g in t)Xe.call(t,g)&&g!=="css"&&g!==ft&&(y[g]=t[g]);return y.className=u,r&&(y.ref=r),de.createElement(de.Fragment,null,de.createElement(io,{cache:e,serialized:h,isStringTag:typeof i=="string"}),de.createElement(i,y))}),tr=so,me=Be.Fragment,o=function(e,r,a){return Xe.call(r,"css")?Be.jsx(tr,er(e,r),a):Be.jsx(e,r,a)},T=function(e,r,a){return Xe.call(r,"css")?Be.jsxs(tr,er(e,r),a):Be.jsxs(e,r,a)};const lo=({components:t=[],children:e})=>o(me,{children:t.reduceRight((r,a)=>o(a,{children:r}),e)}),Ze={playQueue:"PlayQueueStore",bottomBar:"BottomBarStore",playlistList:"PlaylistListStore",playlist:t=>`PlaylistStore/${t}`},rr=p.createContext(void 0),G=()=>p.useContext(rr),mt=new Dr({coerceTypes:!0});function It(t,e){let r;if(r=mt.getSchema(e),r===void 0&&(mt.addSchema(t,e),r=mt.getSchema(e)),r===void 0||r.schema!==t)throw new Error(`Invalid schema. Expected: '${JSON.stringify(t)}', but got '${JSON.stringify(r?.schema)}'.`);return r}var D=(t=>(t.Off="Off",t.All="All",t.One="One",t))(D||{}),co=Object.defineProperty,uo=Object.getOwnPropertyDescriptor,A=(t,e,r,a)=>{for(var i=a>1?void 0:a?uo(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(a?u(e,r,i):u(i))||i);return a&&i&&co(e,r,i),i};const po={type:"object",properties:{repeat:{type:"string",enum:Object.values(D),nullable:!0},shuffle:{type:"boolean",nullable:!0}}};class or{constructor(e){this.bottomBar=e,s.makeObservable(this)}get state(){return{repeat:this.bottomBar.repeat,shuffle:this.bottomBar.shuffle}}set state(e){this.bottomBar.repeat=e.repeat??D.Off,this.bottomBar.shuffle=e.shuffle??!1}validateState(e){return It(po,"BottomBarLocalStorageState")(e)}}A([s.computed.struct],or.prototype,"state",1);class F{constructor(e,r){this.player=e,this.playQueue=r,s.makeObservable(this),this.localStorageState=new or(this)}localStorageState;repeat=D.Off;shuffle=!1;get controller(){return this.player.controller}get playing(){return this.player.playing}get percent(){return this.player.percent}get canSeek(){return!this.playQueue.isEmpty&&this.controller.supports("setCurrentTime")}get currentItem(){return this.playQueue.currentItem}get canToggleRepeat(){return!0}get canToggleShuffle(){return!1}get canPlay(){return this.playQueue.canPlay&&this.controller.supports("play")}get canPause(){return this.playQueue.canPause&&this.controller.supports("pause")}get canPrevious(){return!this.playQueue.isEmpty}get canNext(){return this.playQueue.hasNextItem}get canSkipBack10(){return this.canSeek}get canSkipForward30(){return this.canSeek}get canRemoveFromPlayQueue(){return!this.playQueue.isEmpty}setPercent(e){this.player.setPercent(e)}setSeeking(e){this.player.setSeeking(e)}toggleRepeat(){switch(this.repeat){case D.Off:this.repeat=D.All;break;case D.All:this.repeat=D.One;break;case D.One:this.repeat=D.Off;break}}toggleShuffle(){this.shuffle=!this.shuffle}play(){return this.controller.play()}pause(){return this.controller.pause()}async previous(){if(this.playQueue.hasPreviousItem){const e=await this.controller.getCurrentTime();e===void 0||e<5?await this.playQueue.previous():await this.controller.setCurrentTime(0)}else await this.controller.setCurrentTime(0)}next(){return this.playQueue.next()}async skipBack10(){const e=await this.controller.getCurrentTime();e!==void 0&&await this.controller.setCurrentTime(e-10)}async skipForward30(){const e=await this.controller.getCurrentTime();e!==void 0&&await this.controller.setCurrentTime(e+30)}async removeFromPlayQueue(){this.currentItem!==void 0&&await this.playQueue.removeItems([this.currentItem])}}A([s.observable],F.prototype,"repeat",2);A([s.observable],F.prototype,"shuffle",2);A([s.computed],F.prototype,"controller",1);A([s.computed],F.prototype,"playing",1);A([s.computed],F.prototype,"percent",1);A([s.computed],F.prototype,"canSeek",1);A([s.computed],F.prototype,"currentItem",1);A([s.computed],F.prototype,"canToggleRepeat",1);A([s.computed],F.prototype,"canToggleShuffle",1);A([s.computed],F.prototype,"canPlay",1);A([s.computed],F.prototype,"canPause",1);A([s.computed],F.prototype,"canPrevious",1);A([s.computed],F.prototype,"canNext",1);A([s.computed],F.prototype,"canSkipBack10",1);A([s.computed],F.prototype,"canSkipForward30",1);A([s.computed],F.prototype,"canRemoveFromPlayQueue",1);A([s.action.bound],F.prototype,"setPercent",1);A([s.action.bound],F.prototype,"setSeeking",1);A([s.action.bound],F.prototype,"toggleRepeat",1);A([s.action.bound],F.prototype,"toggleShuffle",1);A([s.action.bound],F.prototype,"play",1);A([s.action.bound],F.prototype,"pause",1);A([s.action.bound],F.prototype,"previous",1);A([s.action.bound],F.prototype,"next",1);A([s.action.bound],F.prototype,"skipBack10",1);A([s.action.bound],F.prototype,"skipForward30",1);A([s.action.bound],F.prototype,"removeFromPlayQueue",1);const Et=p.createContext(void 0),Ee=()=>p.useContext(Et),nr=p.createContext(void 0),ar=()=>p.useContext(nr),mo=({children:t})=>{const e=ar(),r=Ee(),[a]=p.useState(()=>new F(e,r));return Ke.useLocalStorageState(Ze.bottomBar,a.localStorageState),o(rr.Provider,{value:a,children:t})},ir=p.createContext(void 0),fo=()=>p.useContext(ir);var yo=Object.defineProperty,ho=Object.getOwnPropertyDescriptor,le=(t,e,r,a)=>{for(var i=a>1?void 0:a?ho(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(a?u(e,r,i):u(i))||i);return a&&i&&yo(e,r,i),i};class ae{constructor(e,r,a){this.player=e,this.playQueue=r,this.bottomBar=a,s.makeObservable(this)}interacted=!1;get controller(){return this.player.controller}get currentItem(){return this.playQueue.currentItem}interact(){this.interacted=!0}async onLoaded(){this.interacted&&await this.controller.play()}onPlay(){this.player.onPlay()}onPause(){this.player.onPause()}async onEnded(){switch(this.bottomBar.repeat){case D.One:await this.controller.setCurrentTime(0);break;case D.Off:case D.All:if(this.playQueue.isLastItem)switch(this.bottomBar.repeat){case D.Off:this.player.onEnded();break;case D.All:this.playQueue.hasMultipleItems?await this.playQueue.goToFirst():await this.controller.setCurrentTime(0);break}else await this.playQueue.next();break}}onTimeUpdate(e){this.player.onTimeUpdate(e)}onControllerChange(e){this.player.onControllerChange(e)}}le([s.observable],ae.prototype,"interacted",2);le([s.computed],ae.prototype,"controller",1);le([s.computed],ae.prototype,"currentItem",1);le([s.action.bound],ae.prototype,"interact",1);le([s.action.bound],ae.prototype,"onLoaded",1);le([s.action.bound],ae.prototype,"onPlay",1);le([s.action.bound],ae.prototype,"onPause",1);le([s.action.bound],ae.prototype,"onEnded",1);le([s.action.bound],ae.prototype,"onTimeUpdate",1);le([s.action.bound],ae.prototype,"onControllerChange",1);const vo=({children:t})=>{const e=ar(),r=Ee(),a=G(),[i]=p.useState(()=>new ae(e,r,a));return o(ir.Provider,{value:i,children:t})},sr={type:"object",properties:{url:{type:"string"},type:{type:"string"},videoId:{type:"string"},title:{type:"string"}},required:["url","type","videoId","title"]},bo={type:"object",properties:{version:{type:"string",nullable:!0},repeat:{type:"string",enum:Object.values(D),nullable:!0},shuffle:{type:"boolean",nullable:!0},items:{type:"array",nullable:!0,items:sr},currentIndex:{type:"integer",nullable:!0}}};var go=Object.defineProperty,So=Object.getOwnPropertyDescriptor,Y=(t,e,r,a)=>{for(var i=a>1?void 0:a?So(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(a?u(e,r,i):u(i))||i);return a&&i&&go(e,r,i),i};const $=class yt{constructor(e,r){this.playQueue=e,this.dto=r,s.makeObservable(this),this.id=yt.nextId++}static nextId=1;id;isSelected=!1;static fromDto(e,r){return new yt(e,r)}get url(){return this.dto.url}get type(){return this.dto.type}get videoId(){return this.dto.videoId}get title(){return this.dto.title}get isCurrent(){return this.playQueue.currentItem===this}get index(){return this.playQueue.items.indexOf(this)}get isFirst(){return this.index===0}get isLast(){return this.index===this.playQueue.items.length-1}get canMoveToTop(){return!this.isFirst}get canMoveToBottom(){return!this.isLast}get canRemoveToTop(){return!this.isFirst}get canRemoveOthers(){return this.playQueue.hasMultipleItems}clone(){return this.playQueue.createItemFromDto(this.dto)}unselect(){this.isSelected=!1}select(){this.isSelected=!0}toggleSelected(){this.isSelected=!this.isSelected}play(){return this.playQueue.setCurrentItem(this),Promise.resolve()}remove(){return this.playQueue.removeItems([this])}playFirst(){return this.playQueue.playFirst([this.clone()])}playNext(){return this.playQueue.playNext([this.clone()])}addToPlayQueue(){return this.playQueue.addItems([this.clone()])}moveToTop(){this.playQueue.moveItem(this,0)}moveToBottom(){this.playQueue.moveItem(this,this.playQueue.items.length-1)}removeToTop(){return this.playQueue.removeItemsAbove(this)}removeOthers(){return this.playQueue.removeOtherItems(this)}};Y([s.observable],$.prototype,"isSelected",2);Y([s.computed],$.prototype,"isCurrent",1);Y([s.computed],$.prototype,"index",1);Y([s.computed],$.prototype,"isFirst",1);Y([s.computed],$.prototype,"isLast",1);Y([s.computed],$.prototype,"canMoveToTop",1);Y([s.computed],$.prototype,"canMoveToBottom",1);Y([s.computed],$.prototype,"canRemoveToTop",1);Y([s.computed],$.prototype,"canRemoveOthers",1);Y([s.action.bound],$.prototype,"unselect",1);Y([s.action.bound],$.prototype,"select",1);Y([s.action.bound],$.prototype,"toggleSelected",1);Y([s.action.bound],$.prototype,"play",1);Y([s.action.bound],$.prototype,"remove",1);Y([s.action.bound],$.prototype,"playFirst",1);Y([s.action.bound],$.prototype,"playNext",1);Y([s.action.bound],$.prototype,"addToPlayQueue",1);Y([s.action.bound],$.prototype,"moveToTop",1);Y([s.action.bound],$.prototype,"moveToBottom",1);Y([s.action.bound],$.prototype,"removeToTop",1);Y([s.action.bound],$.prototype,"removeOthers",1);let Io=$;var Eo=Object.defineProperty,Po=Object.getOwnPropertyDescriptor,I=(t,e,r,a)=>{for(var i=a>1?void 0:a?Po(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(a?u(e,r,i):u(i))||i);return a&&i&&Eo(e,r,i),i};class lr{constructor(e){this.playQueue=e,s.makeObservable(this)}get state(){return{version:"1.0",items:this.playQueue.items.map(e=>e.dto),currentIndex:this.playQueue.currentIndex}}set state(e){this.playQueue.items=e.items?.map(r=>this.playQueue.createItemFromDto(r))??[],this.playQueue.currentIndex=e.currentIndex}validateState(e){return It(bo,"PlayQueueDto")(e)}}I([s.computed.struct],lr.prototype,"state",1);class E{localStorageState;items=[];currentId;constructor(){s.makeObservable(this),this.localStorageState=new lr(this)}createItemFromDto(e){return Io.fromDto(this,{url:e.url,type:e.type,videoId:e.videoId,title:e.title})}get isEmpty(){return this.items.length===0}get canClear(){return!this.isEmpty}get currentItem(){return this.items.find(e=>e.id===this.currentId)}get canPlay(){return this.currentItem!==void 0}get canPause(){return this.currentItem!==void 0}get hasMultipleItems(){return this.items.length>1}get currentIndex(){return this.currentId!==void 0?this.items.findIndex(e=>e.id===this.currentId):void 0}set currentIndex(e){this.currentId=e!==void 0?this.items.at(e)?.id:void 0}get hasPreviousItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex>0}get hasNextItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex<this.items.length-1}get isLastItem(){return this.currentIndex!==void 0&&this.currentIndex===this.items.length-1}get selectedItems(){return this.items.filter(e=>e.isSelected)}get allItemsSelected(){return this.selectedItems.length===this.items.length}get hasSelectedItems(){return this.selectedItems.length>0}get selectedItemsOrAllItems(){return this.hasSelectedItems?this.selectedItems:this.items}get canAddSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}get canPlaySelectedItemsNext(){return!this.isEmpty&&this.hasSelectedItems}get canRemoveSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}setItems(e){this.items=e}clear(){this.currentIndex=void 0,this.items=[]}unselectAll(){for(const e of this.items)e.unselect()}selectAll(){for(const e of this.items)e.select()}setCurrentItem(e){this.currentId=e?.id}setNextItems(e){this.currentIndex!==void 0&&this.items.splice(this.currentIndex+1,0,...e)}clearAndSetItems(e){this.clear(),this.setCurrentItem(e[0]),this.setNextItems(e)}async playNext(e){if(this.isEmpty){this.clearAndSetItems(e);return}this.setNextItems(e)}async playSelectedItemsNext(){await this.playNext(this.selectedItemsOrAllItems.map(e=>e.clone())),this.unselectAll()}async addItems(e){if(this.isEmpty){this.clearAndSetItems(e);return}this.items.push(...e)}async addSelectedItems(){await this.addItems(this.selectedItemsOrAllItems.map(e=>e.clone())),this.unselectAll()}async playFirst(e){if(this.isEmpty){this.clearAndSetItems(e);return}const{currentIndex:r}=this;r!==void 0&&(this.items.splice(r,0,...e),this.currentIndex=r)}moveItem(e,r){const a=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(r,0,a)}async goToFirst(){this.currentIndex!==void 0&&(this.currentIndex=0)}async removeItems(e){const{currentItem:r}=this;Je.pull(this.items,...e.filter(c=>c!==r));const{currentIndex:a,isLastItem:i}=this;Je.pull(this.items,e.find(c=>c===r)),this.currentItem!==r&&(i?await this.goToFirst():this.currentIndex=a)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){const r=e.id;return this.removeItems(this.items.filter(a=>a.id!==r))}async removeItemsAbove(e){const r=this.items.indexOf(e);return this.removeItems(this.items.filter((a,i)=>i<r))}async previous(){this.currentIndex!==void 0&&this.hasPreviousItem&&this.currentIndex--}async next(){this.currentIndex!==void 0&&this.hasNextItem&&this.currentIndex++}addItemFromDto(e){const r=this.createItemFromDto(e);return this.addItems([r])}}I([s.observable],E.prototype,"items",2);I([s.observable],E.prototype,"currentId",2);I([s.computed],E.prototype,"isEmpty",1);I([s.computed],E.prototype,"canClear",1);I([s.computed],E.prototype,"currentItem",1);I([s.computed],E.prototype,"canPlay",1);I([s.computed],E.prototype,"canPause",1);I([s.computed],E.prototype,"hasMultipleItems",1);I([s.computed],E.prototype,"currentIndex",1);I([s.computed],E.prototype,"hasPreviousItem",1);I([s.computed],E.prototype,"hasNextItem",1);I([s.computed],E.prototype,"isLastItem",1);I([s.computed],E.prototype,"selectedItems",1);I([s.computed],E.prototype,"allItemsSelected",1);I([s.computed],E.prototype,"hasSelectedItems",1);I([s.computed],E.prototype,"selectedItemsOrAllItems",1);I([s.computed],E.prototype,"canAddSelectedItems",1);I([s.computed],E.prototype,"canPlaySelectedItemsNext",1);I([s.computed],E.prototype,"canRemoveSelectedItems",1);I([s.action.bound],E.prototype,"setItems",1);I([s.action.bound],E.prototype,"clear",1);I([s.action.bound],E.prototype,"unselectAll",1);I([s.action.bound],E.prototype,"selectAll",1);I([s.action.bound],E.prototype,"setCurrentItem",1);I([s.action.bound],E.prototype,"setNextItems",1);I([s.action.bound],E.prototype,"clearAndSetItems",1);I([s.action.bound],E.prototype,"playNext",1);I([s.action.bound],E.prototype,"playSelectedItemsNext",1);I([s.action.bound],E.prototype,"addItems",1);I([s.action.bound],E.prototype,"addSelectedItems",1);I([s.action.bound],E.prototype,"playFirst",1);I([s.action.bound],E.prototype,"moveItem",1);I([s.action.bound],E.prototype,"goToFirst",1);I([s.action.bound],E.prototype,"removeItems",1);I([s.action.bound],E.prototype,"removeSelectedItems",1);I([s.action.bound],E.prototype,"removeOtherItems",1);I([s.action.bound],E.prototype,"removeItemsAbove",1);I([s.action.bound],E.prototype,"previous",1);I([s.action.bound],E.prototype,"next",1);I([s.action.bound],E.prototype,"addItemFromDto",1);const Co=({children:t})=>{const[e]=p.useState(()=>new E);Ke.useLocalStorageState(Ze.playQueue,e.localStorageState);const r=pe.useNostalgicDiva();return p.useEffect(()=>s.reaction(()=>e.currentItem,async(a,i)=>{a===void 0||i===void 0||a.type===i.type&&a.videoId===i.videoId&&await r.setCurrentTime(0)}),[e,r]),o(Et.Provider,{value:e,children:t})};var To=Object.defineProperty,xo=Object.getOwnPropertyDescriptor,ne=(t,e,r,a)=>{for(var i=a>1?void 0:a?xo(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(a?u(e,r,i):u(i))||i);return a&&i&&To(e,r,i),i};class te{controller=pe.nullPlayerController;playing=!1;percent=0;seeking=!1;constructor(){s.makeObservable(this)}setPlaying(e){this.playing=e}setPercent(e){this.percent=e}setSeeking(e){this.seeking=e}onControllerChange(e){this.controller=e}onPlay(){this.playing=!0}onPause(){this.playing=!1}onEnded(){this.playing=!1}onTimeUpdate({percent:e}){e!==void 0&&(this.seeking||(this.percent=e))}}ne([s.observable],te.prototype,"controller",2);ne([s.observable],te.prototype,"playing",2);ne([s.observable],te.prototype,"percent",2);ne([s.observable],te.prototype,"seeking",2);ne([s.action.bound],te.prototype,"setPlaying",1);ne([s.action.bound],te.prototype,"setPercent",1);ne([s.action.bound],te.prototype,"setSeeking",1);ne([s.action.bound],te.prototype,"onControllerChange",1);ne([s.action.bound],te.prototype,"onPlay",1);ne([s.action.bound],te.prototype,"onPause",1);ne([s.action.bound],te.prototype,"onEnded",1);ne([s.action.bound],te.prototype,"onTimeUpdate",1);const wo=({children:t})=>{const[e]=p.useState(()=>new te);return o(nr.Provider,{value:e,children:t})},Pt=p.createContext(void 0),cr=()=>p.useContext(Pt);var Ro=Object.defineProperty,Oo=Object.getOwnPropertyDescriptor,et=(t,e,r,a)=>{for(var i=a>1?void 0:a?Oo(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(a?u(e,r,i):u(i))||i);return a&&i&&Ro(e,r,i),i};class Pe{constructor(e,r,a){this.playlistList=e,s.makeObservable(this),this.id=r,this.name=a}id;name;async rename(e){this.name=e}remove(){return this.playlistList.removeItem(this)}}et([s.observable],Pe.prototype,"id",2);et([s.observable],Pe.prototype,"name",2);et([s.action.bound],Pe.prototype,"rename",1);et([s.action.bound],Pe.prototype,"remove",1);var _o=Object.defineProperty,ko=Object.getOwnPropertyDescriptor,De=(t,e,r,a)=>{for(var i=a>1?void 0:a?ko(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(a?u(e,r,i):u(i))||i);return a&&i&&_o(e,r,i),i};class ur{constructor(e){this.playlistList=e,s.makeObservable(this)}get state(){return{items:this.playlistList.items.map(e=>({id:e.id,name:e.name}))}}set state(e){this.playlistList.items=e.items?.map(r=>new Pe(this.playlistList,r.id,r.name))??[]}validateState(e){return!0}}De([s.computed.struct],ur.prototype,"state",1);class je{localStorageState;items=[];constructor(){s.makeObservable(this),this.localStorageState=new ur(this)}createItem(e){return new Pe(this,crypto.randomUUID(),e)}setItems(e){this.items=e}async addItem(e){this.items.push(e)}async removeItem(e){Je.pull(this.items,e)}}De([s.observable],je.prototype,"items",2);De([s.action.bound],je.prototype,"setItems",1);De([s.action.bound],je.prototype,"addItem",1);De([s.action.bound],je.prototype,"removeItem",1);const Ao=({children:t})=>{const[e]=p.useState(()=>new je);return Ke.useLocalStorageState(Ze.playlistList,e.localStorageState),o(Pt.Provider,{value:e,children:t})},Fo=({children:t,nostalgicDivaProps:e})=>o(pe.NostalgicDivaProvider,{...e,children:o(lo,{components:[wo,Co,mo,vo,Ao],children:t})}),ht={width:400,height:225},Bo=P.observer(({children:t})=>{const e=Ee();return T(l.EuiPageTemplate,{panelled:!0,style:{minBlockSize:`max(460px, 100vh - ${St}px)`},children:[t,!e.isEmpty&&o(l.EuiSpacer,{style:{blockSize:ht.height}})]})}),Mo=P.observer(()=>{const t=G();return o(l.EuiButtonIcon,{title:`Shuffle: ${t.shuffle?"On":"Off"}`,"aria-label":`Shuffle: ${t.shuffle?"On":"Off"}`,iconType:t.shuffle?S.ArrowShuffleFilled:S.ArrowShuffleOffFilled,size:"s",iconSize:"l",onClick:t.toggleShuffle,disabled:!t.canToggleShuffle})}),Do=P.observer(()=>{const t=G();return o(l.EuiButtonIcon,{title:"Previous","aria-label":"Previous",iconType:S.PreviousFilled,size:"s",iconSize:"l",onClick:t.previous,disabled:!t.canPrevious})}),jo=P.observer(()=>{const t=G();return o(l.EuiButtonIcon,{title:"Skip back 10 seconds","aria-label":"Skip back 10 seconds",iconType:S.SkipBack10Regular,size:"s",iconSize:"l",onClick:t.skipBack10,disabled:!t.canSkipBack10})}),No=P.observer(()=>{const t=G();return o(l.EuiButtonIcon,{title:"Pause","aria-label":"Pause",iconType:S.PauseFilled,size:"s",iconSize:"l",onClick:t.pause,disabled:!t.canPause})}),$o=P.observer(()=>{const t=G();return o(l.EuiButtonIcon,{title:"Play","aria-label":"Play",iconType:S.PlayFilled,size:"s",iconSize:"l",onClick:t.play,disabled:!t.canPlay})}),Lo=P.observer(()=>{const t=G();return o(l.EuiButtonIcon,{title:"Skip forward 30 seconds","aria-label":"Skip forward 30 seconds",iconType:S.SkipForward30Regular,size:"s",iconSize:"l",onClick:t.skipForward30,disabled:!t.canSkipForward30})}),Qo=P.observer(()=>{const t=G();return o(l.EuiButtonIcon,{title:"Next","aria-label":"Next",iconType:S.NextFilled,size:"s",iconSize:"l",onClick:t.next,disabled:!t.canNext})}),zo={[D.Off]:S.ArrowRepeatAllOffFilled,[D.All]:S.ArrowRepeatAllFilled,[D.One]:S.ArrowRepeat1Filled},Yo=P.observer(()=>{const t=G();return o(l.EuiButtonIcon,{title:`Repeat: ${t.repeat===D.All?"All":t.repeat===D.One?"One":"Off"}`,"aria-label":`Repeat: ${t.repeat===D.All?"All":t.repeat===D.One?"One":"Off"}`,iconType:zo[t.repeat],size:"s",iconSize:"l",onClick:t.toggleRepeat,disabled:!t.canToggleRepeat})}),Vo=P.observer(()=>{const t=G();return T(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o(Mo,{}),o(Do,{}),o(jo,{}),t.playing?o(No,{}):o($o,{}),o(Lo,{}),o(Qo,{}),o(Yo,{})]})}),Ct={Audio:"",Dailymotion:"https://www.dailymotion.com/favicon.ico",Niconico:"https://www.nicovideo.jp/favicon.ico",SoundCloud:"https://soundcloud.com/favicon.ico",Twitch:"https://www.twitch.tv/favicon.ico",Vimeo:"https://vimeo.com/favicon.ico",YouTube:"https://www.youtube.com/favicon.ico"},Ho=p.memo(({item:t,closePopover:e})=>{const r=p.useCallback(({name:i,icon:c,onClick:u})=>({name:i,icon:c,onClick:async h=>{e(),u(h)}}),[e]),a=p.useMemo(()=>[{id:0,items:[r({name:"Open in new tab",icon:o(l.EuiIcon,{type:S.OpenRegular}),onClick:async()=>{window.open(t.dto.url,"_blank")}}),r({name:"Copy link address",icon:o(l.EuiIcon,{type:""}),onClick:async()=>{await navigator.clipboard.writeText(t.dto.url)}}),r({name:"Copy link text",icon:o(l.EuiIcon,{type:""}),onClick:async()=>{await navigator.clipboard.writeText(t.dto.title)}})]}],[r,t]);return o(l.EuiContextMenu,{initialPanelId:0,panels:a})}),qo=p.memo(({item:t})=>{const[e,r]=p.useState(!1),a=p.useCallback(()=>r(!e),[e]),i=p.useCallback(()=>r(!1),[]);return o(l.EuiPopover,{button:o(l.EuiButtonEmpty,{iconType:Ct[t.type],size:"s",onClick:a,children:t.title}),isOpen:e,closePopover:i,panelPaddingSize:"none",anchorPosition:"upLeft",children:o(Ho,{item:t,closePopover:i})})}),Uo=P.observer(()=>{const t=G();return o(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexStart",alignItems:"center",children:t.currentItem&&o(qo,{item:t.currentItem})})}),Wo=P.observer(()=>{const t=G();return o(l.EuiButtonIcon,{title:"Mute","aria-label":"Mute",iconType:S.Speaker2Regular,size:"s",iconSize:"l",disabled:!t.controller.supports("setMuted")})}),Go=P.observer(({button:t,isOpen:e,closePopover:r})=>{const a=G(),[i,c]=p.useState("0"),u=pe.useNostalgicDiva();p.useLayoutEffect(()=>{e&&u.getVolume().then(y=>{y!==void 0&&c(Math.floor(y*100).toString())})},[e,u]);const h=p.useCallback(async y=>{c(y.currentTarget.value),await u.setVolume(Number(y.currentTarget.value)/100)},[u]);return o(l.EuiPopover,{button:t,isOpen:e,closePopover:r,anchorPosition:"upRight",children:o(l.EuiFormRow,{children:T(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o(Wo,{}),o(l.EuiRange,{min:0,max:100,step:1,value:i,onChange:h,css:{blockSize:32},disabled:!a.controller.supports("setVolume")})]})})})}),Jo=P.observer(()=>{const t=G(),[e,r]=p.useState(!1),a=()=>r(!e);return o(Go,{button:o(l.EuiButtonIcon,{title:"Volume","aria-label":"Volume",iconType:S.Speaker2Regular,size:"s",iconSize:"l",onClick:a,disabled:!t.controller.supports("getVolume")}),isOpen:e,closePopover:()=>r(!1)})}),Ko=({onClickPlayQueueButton:t})=>o(l.EuiButtonIcon,{title:"Play queue","aria-label":"Play queue",iconType:S.NavigationPlayRegular,size:"s",iconSize:"l",onClick:t}),Xo=P.observer(({closePopover:t})=>{const e=G(),r=pe.useNostalgicDiva(),a=p.useCallback(async()=>{await e.skipBack10(),t()},[e,t]),i=p.useCallback(async()=>{await e.skipForward30(),t()},[e,t]),c=p.useCallback(async R=>{await r.setPlaybackRate(R),t()},[r,t]),u=p.useCallback(async()=>{await e.removeFromPlayQueue(),t()},[e,t]),[h,y]=p.useState(),g=p.useCallback(async()=>{await e.controller.getPlaybackRate().then(R=>y(R))},[e]),w=p.useMemo(()=>[{id:0,items:[{name:"Speed",icon:o(l.EuiIcon,{type:S.TopSpeedRegular}),panel:1,onClick:g,disabled:!e.controller.supports("getPlaybackRate")},{name:"Skip back 10 seconds",icon:o(l.EuiIcon,{type:S.SkipBack10Regular}),onClick:a,disabled:!e.canSkipBack10},{name:"Skip forward 30 seconds",icon:o(l.EuiIcon,{type:S.SkipForward30Regular}),onClick:i,disabled:!e.canSkipForward30},{isSeparator:!0},{name:"Remove from play queue",icon:o(l.EuiIcon,{type:S.DismissRegular}),onClick:u,disabled:!e.canRemoveFromPlayQueue}]},{id:1,title:"Speed",items:[.25,.5,.75,1,1.25,1.5,1.75,2].map(R=>({name:R.toString(),onClick:()=>c(R),icon:R===h?"check":"empty",disabled:!e.controller.supports("setPlaybackRate")}))}],[e,g,a,i,u,c,h]);return o(l.EuiContextMenu,{initialPanelId:0,panels:w})}),Zo=p.memo(({button:t,isOpen:e,closePopover:r})=>o(l.EuiPopover,{button:t,isOpen:e,closePopover:r,panelPaddingSize:"none",anchorPosition:"upRight",children:o(Xo,{closePopover:r})})),en=p.memo(()=>{const[t,e]=p.useState(!1),r=()=>e(!t);return o(Zo,{button:o(l.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:S.MoreHorizontalFilled,size:"s",iconSize:"l",onClick:r}),isOpen:t,closePopover:()=>e(!1)})}),tn=p.memo(({onClickPlayQueueButton:t})=>T(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexEnd",alignItems:"center",children:[o(Jo,{}),t&&o(Ko,{onClickPlayQueueButton:t}),o(en,{})]})),rn=P.observer(()=>{const t=G(),e=pe.useNostalgicDiva(),r=p.useCallback(c=>{const u=Number(c.currentTarget.value)/100;t.setPercent(u)},[t]),a=p.useCallback(c=>{c.button===0&&t.setSeeking(!0)},[t]),i=p.useCallback(async c=>{if(c.button===0){const u=Number(c.currentTarget.value)/100;t.setSeeking(!1);const h=await e.getDuration();h!==void 0&&await e.setCurrentTime(h*u)}},[t,e]);return o(l.EuiRange,{min:0,max:100,step:1e-7,value:t.percent*100,onChange:r,onMouseDown:a,onMouseUp:i,fullWidth:!0,showRange:!0,css:{blockSize:32},disabled:!t.canSeek})}),on=P.observer(({onClickPlayQueueButton:t})=>o(l.EuiBottomBar,{paddingSize:"s",children:T(l.EuiFlexGroup,{direction:"column",gutterSize:"none",children:[o(l.EuiFlexItem,{children:o(rn,{})}),o(l.EuiFlexItem,{children:T(l.EuiFlexGroup,{responsive:!1,children:[o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(Uo,{})}),o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(Vo,{})}),o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(tn,{onClickPlayQueueButton:t})})]})})]})})),nn=P.observer(()=>{const t=fo(),e=p.useMemo(()=>({onLoaded:t.onLoaded,onPlay:t.onPlay,onPause:t.onPause,onEnded:t.onEnded,onTimeUpdate:t.onTimeUpdate}),[t]);return p.useLayoutEffect(()=>(window.addEventListener("click",t.interact,{once:!0}),()=>{window.removeEventListener("click",t.interact)}),[t]),o("div",{css:{position:"fixed",right:0,bottom:St,width:ht.width,height:ht.height,zIndex:998,backgroundColor:"rgb(39, 39, 39)",display:"flex",flexDirection:"column"},children:o("div",{css:{flexGrow:1,backgroundColor:"black"},children:t.currentItem&&o(pe.NostalgicDiva,{src:t.currentItem.url,options:e,onControllerChange:t.onControllerChange})})})});function an(t){return t!==null&&typeof t=="object"&&"title"in t&&typeof t.title=="string"}const sn=({onCancel:t,onSave:e})=>{const r=l.useGeneratedHtmlId({prefix:"modalForm"}),[a,i]=p.useState(""),[c,u]=p.useState(""),[h,y]=p.useState(!1);return T(l.EuiModal,{onClose:t,initialFocus:"[name=url]",children:[o(l.EuiModalHeader,{children:o(l.EuiModalHeaderTitle,{children:"Add video"})}),o(l.EuiModalBody,{children:T(l.EuiForm,{id:r,component:"form",onSubmit:async g=>{g.preventDefault();try{y(!0),await e({url:a,title:c})}finally{y(!1)}},children:[o(l.EuiFormRow,{label:"URL",children:o(l.EuiFieldText,{name:"url",value:a,onChange:g=>i(g.target.value)})}),o(l.EuiFormRow,{label:"Title",children:o(l.EuiFieldText,{name:"title",value:c,onChange:g=>u(g.target.value)})})]})}),T(l.EuiModalFooter,{children:[o(l.EuiButtonEmpty,{onClick:t,children:"Cancel"}),o(l.EuiButton,{type:"submit",form:r,fill:!0,disabled:a.trim().length===0,isLoading:h,children:"Add video"})]})]})},Tt=p.memo(({onSave:t})=>{const[e,r]=p.useState(!1),a=p.useCallback(async i=>{const c=pe.findVideoService(i.url);if(c===void 0)return;const u=c.extractVideoId(i.url);if(u===void 0)return;const y=await(await fetch(`https://noembed.com/embed?url=${encodeURIComponent(i.url)}`)).json();await t({url:i.url,type:c.type,videoId:u,title:i.title||(an(y)?y.title:u)}),r(!1)},[t]);return T(me,{children:[o(l.EuiButton,{onClick:()=>r(!0),iconType:S.AddRegular,color:"primary",children:"Add video"}),e&&o(sn,{onCancel:()=>r(!1),onSave:a})]})}),ln=P.observer(({playQueue:t})=>o(l.EuiButton,{iconType:S.AddRegular,onClick:t.addSelectedItems,disabled:!t.canAddSelectedItems,children:"Add to play queue"})),cn=P.observer(({playQueue:t})=>{const{euiTheme:e}=l.useEuiTheme();return T(l.EuiFlexGroup,{alignItems:"center",gutterSize:"m",style:{position:"sticky",top:48,zIndex:998,background:e.colors.backgroundBasePlain},children:[o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{disabled:!t.canPlaySelectedItemsNext,onClick:t.playSelectedItemsNext,children:"Play next"})}),o(l.EuiFlexItem,{grow:!1,children:o(ln,{playQueue:t})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:S.DismissRegular,onClick:t.removeSelectedItems,disabled:!t.canRemoveSelectedItems,children:"Remove"})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:S.DeleteRegular,onClick:t.clear,disabled:!t.canClear,children:"Clear"})}),o(l.EuiFlexItem,{grow:!0}),o(l.EuiFlexItem,{grow:!1,children:o(Tt,{onSave:t.addItemFromDto})})]})}),un=P.observer(({playQueue:t})=>{const{euiTheme:e}=l.useEuiTheme();return T(l.EuiTableHeader,{style:{position:"sticky",top:112,zIndex:998,background:e.colors.backgroundBasePlain},children:[o(l.EuiTableHeaderCellCheckbox,{children:o(l.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:r=>{r.target.checked?t.selectAll():t.unselectAll()}})}),o(l.EuiTableHeaderCell,{width:24}),o(l.EuiTableHeaderCell,{children:"Title"}),o(l.EuiTableHeaderCell,{})]})}),dn=p.memo(({item:t,closePopover:e})=>{const r=p.useCallback(({name:i,icon:c,disabled:u,onClick:h})=>({name:i,icon:c,disabled:u,onClick:async y=>{e(),h(y)}}),[e]),a=p.useMemo(()=>[{id:0,items:[r({name:"Play first",icon:o(l.EuiIcon,{type:""}),onClick:t.playFirst}),r({name:"Play next",icon:o(l.EuiIcon,{type:""}),onClick:t.playNext}),r({name:"Add to play queue",icon:o(l.EuiIcon,{type:S.AddRegular}),onClick:t.addToPlayQueue}),{isSeparator:!0},r({name:"Move to the top",icon:o(l.EuiIcon,{type:S.ArrowUploadRegular}),onClick:t.moveToTop,disabled:!t.canMoveToTop}),r({name:"Move to the bottom",icon:o(l.EuiIcon,{type:S.ArrowDownloadRegular}),onClick:t.moveToBottom,disabled:!t.canMoveToBottom}),{isSeparator:!0},r({name:"Remove to the top",icon:o(l.EuiIcon,{type:""}),onClick:t.removeToTop,disabled:!t.canRemoveToTop}),r({name:"Remove others",icon:o(l.EuiIcon,{type:""}),onClick:t.removeOthers,disabled:!t.canRemoveOthers})]}],[r,t]);return o(l.EuiContextMenu,{initialPanelId:0,panels:a})}),pn=p.memo(({item:t})=>{const[e,r]=p.useState(!1),a=p.useCallback(()=>r(!e),[e]),i=p.useCallback(()=>r(!1),[]);return o(l.EuiPopover,{button:o(l.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:S.MoreHorizontalFilled,size:"s",color:"text",onClick:a}),isOpen:e,closePopover:i,panelPaddingSize:"none",anchorPosition:"leftCenter",children:o(dn,{item:t,closePopover:i})})}),mn=P.observer(({item:t})=>{const e=pe.useNostalgicDiva();return T(l.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[o(l.EuiButton,{iconType:S.PlayRegular,size:"s",onClick:async()=>{t.isCurrent?await e.setCurrentTime(0):await t.play()},children:"Play"}),o(l.EuiButton,{iconType:S.DismissRegular,size:"s",onClick:t.remove,children:"Remove"}),o(pn,{item:t})]})}),fn=P.observer(({item:t})=>T(l.EuiTableRow,{isSelected:t.isCurrent,children:[o(l.EuiTableRowCellCheckbox,{children:o(l.EuiCheckbox,{id:t.id.toString(),checked:t.isSelected,onChange:t.toggleSelected})}),o(l.EuiTableRowCell,{textOnly:!1,children:o("img",{src:Ct[t.type],width:16,height:16,alt:t.type})}),o(l.EuiTableRowCell,{children:o(l.EuiLink,{href:t.url,target:"_blank",external:!0,children:t.title})}),o(mn,{item:t})]})),yn=P.observer(({playQueue:t})=>o(bt.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>o(fn,{item:e},e.id))})),hn=P.observer(({playQueue:t})=>T(l.EuiTable,{children:[o(un,{playQueue:t}),o(yn,{playQueue:t})]})),dr=P.observer(({playQueue:t})=>{const{euiTheme:e}=l.useEuiTheme();return T(l.EuiPageTemplate.Section,{children:[o(cn,{playQueue:t}),o(l.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:e.colors.backgroundBasePlain}}),t.isEmpty?o(l.EuiEmptyPrompt,{title:o("h2",{children:"We couldn't find any videos"}),body:o("p",{children:"Your video library doesn't contain any video content."}),actions:o(Tt,{onSave:t.addItemFromDto})}):o(hn,{playQueue:t})]})}),xt=({breadcrumbs:t,tabs:e,...r})=>{const a=gt.useRouter();return o(l.EuiPageTemplate.Header,{...r,breadcrumbs:t?.map(({linkProps:i,...c})=>({...c,href:i===void 0?void 0:a.buildLocation(i).href,onClick:i===void 0?void 0:async u=>{u.preventDefault(),await a.navigate(i)}})),tabs:e?.map(({linkProps:i,...c})=>({...c,href:i===void 0?void 0:a.buildLocation(i).href,onClick:i===void 0?void 0:async u=>{u.preventDefault(),await a.navigate(i)}}))})},vn=()=>{const t=Ee();return T(me,{children:[o(xt,{pageTitle:"Play queue",rightSideItems:[]}),o(dr,{playQueue:t})]})},bn=P.observer(({playlist:t})=>o(l.EuiButton,{iconType:S.AddRegular,onClick:t.addSelectedItems,disabled:!t.canAddSelectedItems,children:"Add to play queue"})),gn=P.observer(({playlist:t})=>{const{euiTheme:e}=l.useEuiTheme();return T(l.EuiFlexGroup,{alignItems:"center",gutterSize:"m",style:{position:"sticky",top:48,zIndex:998,background:e.colors.backgroundBasePlain},children:[o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{disabled:!t.canPlaySelectedItemsNext,onClick:t.playSelectedItemsNext,children:"Play next"})}),o(l.EuiFlexItem,{grow:!1,children:o(bn,{playlist:t})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:S.DismissRegular,onClick:t.removeSelectedItems,disabled:!t.canRemoveSelectedItems,children:"Remove"})}),o(l.EuiFlexItem,{grow:!0}),o(l.EuiFlexItem,{grow:!1,children:o(Tt,{onSave:t.addItemFromDto})})]})}),Sn=P.observer(({playlist:t})=>T(l.EuiTableHeader,{children:[o(l.EuiTableHeaderCellCheckbox,{children:o(l.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:e=>{e.target.checked?t.selectAll():t.unselectAll()}})}),o(l.EuiTableHeaderCell,{width:24}),o(l.EuiTableHeaderCell,{children:"Title"}),o(l.EuiTableHeaderCell,{})]})),In=p.memo(({item:t,closePopover:e})=>{const r=p.useCallback(({name:i,icon:c,disabled:u,onClick:h})=>({name:i,icon:c,disabled:u,onClick:async y=>{e(),h(y)}}),[e]),a=p.useMemo(()=>[{id:0,items:[r({name:"Play first",icon:o(l.EuiIcon,{type:""}),onClick:t.playFirst}),r({name:"Play next",icon:o(l.EuiIcon,{type:""}),onClick:t.playNext}),r({name:"Add to play queue",icon:o(l.EuiIcon,{type:S.AddRegular}),onClick:t.addToPlayQueue}),{isSeparator:!0},r({name:"Move to the top",icon:o(l.EuiIcon,{type:S.ArrowUploadRegular}),onClick:t.moveToTop,disabled:!t.canMoveToTop}),r({name:"Move to the bottom",icon:o(l.EuiIcon,{type:S.ArrowDownloadRegular}),onClick:t.moveToBottom,disabled:!t.canMoveToBottom}),{isSeparator:!0},r({name:"Remove to the top",icon:o(l.EuiIcon,{type:""}),onClick:t.removeToTop,disabled:!t.canRemoveToTop}),r({name:"Remove others",icon:o(l.EuiIcon,{type:""}),onClick:t.removeOthers,disabled:!t.canRemoveOthers})]}],[r,t]);return o(l.EuiContextMenu,{initialPanelId:0,panels:a})}),En=p.memo(({item:t})=>{const[e,r]=p.useState(!1),a=p.useCallback(()=>r(!e),[e]),i=p.useCallback(()=>r(!1),[]);return o(l.EuiPopover,{button:o(l.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:S.MoreHorizontalFilled,size:"s",color:"text",onClick:a}),isOpen:e,closePopover:i,panelPaddingSize:"none",anchorPosition:"leftCenter",children:o(In,{item:t,closePopover:i})})}),Pn=P.observer(({item:t})=>T(l.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[o(l.EuiButton,{iconType:S.PlayRegular,size:"s",onClick:t.play,children:"Play"}),o(l.EuiButton,{iconType:S.DismissRegular,size:"s",onClick:t.remove,children:"Remove"}),o(En,{item:t})]})),Cn=P.observer(({item:t})=>T(l.EuiTableRow,{isSelected:t.isCurrent,children:[o(l.EuiTableRowCellCheckbox,{children:o(l.EuiCheckbox,{id:t.id.toString(),checked:t.isSelected,onChange:t.toggleSelected})}),o(l.EuiTableRowCell,{textOnly:!1,children:o("img",{src:Ct[t.type],width:16,height:16,alt:t.type})}),o(l.EuiTableRowCell,{children:o(l.EuiLink,{href:t.url,target:"_blank",external:!0,children:t.title})}),o(Pn,{item:t})]})),Tn=P.observer(({playlist:t})=>o(bt.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>o(Cn,{item:e},e.id))})),xn=P.observer(({playlist:t})=>T(l.EuiTable,{children:[o(Sn,{playlist:t}),o(Tn,{playlist:t})]})),wn=P.observer(({playlist:t})=>{const{euiTheme:e}=l.useEuiTheme();return T(l.EuiPageTemplate.Section,{children:[o(gn,{playlist:t}),o(l.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:e.colors.backgroundBasePlain}}),t.isEmpty?o(me,{}):o(xn,{playlist:t})]})});var Rn=Object.defineProperty,On=Object.getOwnPropertyDescriptor,V=(t,e,r,a)=>{for(var i=a>1?void 0:a?On(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(a?u(e,r,i):u(i))||i);return a&&i&&Rn(e,r,i),i};const L=class vt{constructor(e,r,a){this.playQueue=e,this.playlist=r,this.dto=a,s.makeObservable(this),this.id=vt.nextId++}static nextId=1;id;isSelected=!1;static fromDto(e,r,a){return new vt(e,r,a)}get url(){return this.dto.url}get type(){return this.dto.type}get videoId(){return this.dto.videoId}get title(){return this.dto.title}get isCurrent(){return!1}get index(){return this.playlist.items.indexOf(this)}get isFirst(){return this.index===0}get isLast(){return this.index===this.playlist.items.length-1}get canMoveToTop(){return!this.isFirst}get canMoveToBottom(){return!this.isLast}get canRemoveToTop(){return!this.isFirst}get canRemoveOthers(){return this.playlist.hasMultipleItems}unselect(){this.isSelected=!1}select(){this.isSelected=!0}toggleSelected(){this.isSelected=!this.isSelected}play(){return this.playQueue.clearAndSetItems([this.playQueue.createItemFromDto(this.dto)]),Promise.resolve()}remove(){return this.playlist.removeItems([this])}playFirst(){return this.playQueue.playFirst([this.playQueue.createItemFromDto(this.dto)])}playNext(){return this.playQueue.playNext([this.playQueue.createItemFromDto(this.dto)])}addToPlayQueue(){return this.playQueue.addItems([this.playQueue.createItemFromDto(this.dto)])}moveToTop(){this.playlist.moveItem(this,0)}moveToBottom(){this.playlist.moveItem(this,this.playlist.items.length-1)}removeToTop(){return this.playlist.removeItemsAbove(this)}removeOthers(){return this.playlist.removeOtherItems(this)}};V([s.observable],L.prototype,"isSelected",2);V([s.computed],L.prototype,"isCurrent",1);V([s.computed],L.prototype,"index",1);V([s.computed],L.prototype,"isFirst",1);V([s.computed],L.prototype,"isLast",1);V([s.computed],L.prototype,"canMoveToTop",1);V([s.computed],L.prototype,"canMoveToBottom",1);V([s.computed],L.prototype,"canRemoveToTop",1);V([s.computed],L.prototype,"canRemoveOthers",1);V([s.action.bound],L.prototype,"unselect",1);V([s.action.bound],L.prototype,"select",1);V([s.action.bound],L.prototype,"toggleSelected",1);V([s.action.bound],L.prototype,"play",1);V([s.action.bound],L.prototype,"remove",1);V([s.action.bound],L.prototype,"playFirst",1);V([s.action.bound],L.prototype,"playNext",1);V([s.action.bound],L.prototype,"addToPlayQueue",1);V([s.action.bound],L.prototype,"moveToTop",1);V([s.action.bound],L.prototype,"moveToBottom",1);V([s.action.bound],L.prototype,"removeToTop",1);V([s.action.bound],L.prototype,"removeOthers",1);let _n=L;var kn=Object.defineProperty,An=Object.getOwnPropertyDescriptor,j=(t,e,r,a)=>{for(var i=a>1?void 0:a?An(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(a?u(e,r,i):u(i))||i);return a&&i&&kn(e,r,i),i};const Fn={type:"object",properties:{version:{type:"string",nullable:!0},items:{type:"array",nullable:!0,items:sr}}};class pr{constructor(e){this.playlist=e,s.makeObservable(this)}get state(){return{version:"1.0",items:this.playlist.items.map(e=>e.dto)}}set state(e){this.playlist.items=e.items?.map(r=>this.playlist.createItemFromDto(r))??[]}validateState(e){return It(Fn,"PlaylistLocalStorageState")(e)}}j([s.computed.struct],pr.prototype,"state",1);class N{constructor(e){this.playQueue=e,s.makeObservable(this),this.localStorageState=new pr(this)}localStorageState;items=[];createItemFromDto(e){return _n.fromDto(this.playQueue,this,{url:e.url,type:e.type,videoId:e.videoId,title:e.title})}get isEmpty(){return this.items.length===0}get hasMultipleItems(){return this.items.length>1}get selectedItems(){return this.items.filter(e=>e.isSelected)}get allItemsSelected(){return this.selectedItems.length===this.items.length}get hasSelectedItems(){return this.selectedItems.length>0}get selectedItemsOrAllItems(){return this.hasSelectedItems?this.selectedItems:this.items}get canAddSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}get canPlaySelectedItemsNext(){return!this.isEmpty&&this.hasSelectedItems}get canRemoveSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}setItems(e){this.items=e}unselectAll(){for(const e of this.items)e.unselect()}selectAll(){for(const e of this.items)e.select()}async playSelectedItemsNext(){await this.playQueue.playNext(this.selectedItemsOrAllItems.map(e=>this.playQueue.createItemFromDto(e.dto))),this.unselectAll()}async addSelectedItems(){await this.playQueue.addItems(this.selectedItemsOrAllItems.map(e=>this.playQueue.createItemFromDto(e.dto))),this.unselectAll()}async addItems(e){this.items.push(...e)}moveItem(e,r){const a=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(r,0,a)}async removeItems(e){Je.pull(this.items,...e)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){const r=e.id;return this.removeItems(this.items.filter(a=>a.id!==r))}async removeItemsAbove(e){const r=this.items.indexOf(e);return this.removeItems(this.items.filter((a,i)=>i<r))}addItemFromDto(e){const r=this.createItemFromDto(e);return this.addItems([r])}playAll(){return this.playQueue.clearAndSetItems(this.items.map(e=>this.playQueue.createItemFromDto(e.dto))),Promise.resolve()}}j([s.observable],N.prototype,"items",2);j([s.computed],N.prototype,"isEmpty",1);j([s.computed],N.prototype,"hasMultipleItems",1);j([s.computed],N.prototype,"selectedItems",1);j([s.computed],N.prototype,"allItemsSelected",1);j([s.computed],N.prototype,"hasSelectedItems",1);j([s.computed],N.prototype,"selectedItemsOrAllItems",1);j([s.computed],N.prototype,"canAddSelectedItems",1);j([s.computed],N.prototype,"canPlaySelectedItemsNext",1);j([s.computed],N.prototype,"canRemoveSelectedItems",1);j([s.action.bound],N.prototype,"setItems",1);j([s.action.bound],N.prototype,"unselectAll",1);j([s.action.bound],N.prototype,"selectAll",1);j([s.action.bound],N.prototype,"playSelectedItemsNext",1);j([s.action.bound],N.prototype,"addSelectedItems",1);j([s.action.bound],N.prototype,"addItems",1);j([s.action.bound],N.prototype,"moveItem",1);j([s.action.bound],N.prototype,"removeItems",1);j([s.action.bound],N.prototype,"removeSelectedItems",1);j([s.action.bound],N.prototype,"removeOtherItems",1);j([s.action.bound],N.prototype,"removeItemsAbove",1);j([s.action.bound],N.prototype,"addItemFromDto",1);j([s.action.bound],N.prototype,"playAll",1);const Bn=({onClick:t})=>o(l.EuiButton,{onClick:t,iconType:S.PlayRegular,fill:!0,children:"Play all"}),Mn=({playlistListItem:t,onCancel:e,onSave:r})=>{const a=l.useGeneratedHtmlId({prefix:"modalForm"}),[i,c]=p.useState(t.name),[u,h]=p.useState(!1);return T(l.EuiModal,{onClose:e,initialFocus:"[name=name]",children:[o(l.EuiModalHeader,{children:o(l.EuiModalHeaderTitle,{children:"Rename playlist"})}),o(l.EuiModalBody,{children:o(l.EuiForm,{id:a,component:"form",onSubmit:async y=>{y.preventDefault();try{h(!0),await r({name:i})}finally{h(!1)}},children:o(l.EuiFormRow,{label:"Name",children:o(l.EuiFieldText,{name:"name",value:i,onChange:y=>c(y.target.value)})})})}),T(l.EuiModalFooter,{children:[o(l.EuiButtonEmpty,{onClick:e,children:"Cancel"}),o(l.EuiButton,{type:"submit",form:a,fill:!0,disabled:i.trim().length===0,isLoading:u,children:"Rename"})]})]})},Dn=({playlistListItem:t,onSave:e})=>{const[r,a]=p.useState(!1),i=p.useCallback(async c=>{await e(c),a(!1)},[e]);return T(me,{children:[o(l.EuiButton,{onClick:()=>a(!0),iconType:S.RenameRegular,children:"Rename"}),r&&o(Mn,{playlistListItem:t,onCancel:()=>a(!1),onSave:i})]})},jn=({playlistListItem:t,onCancel:e,onSave:r})=>{const[a,i]=p.useState(!1),c=p.useCallback(async()=>{try{i(!0),await r()}finally{i(!1)}},[r]);return o(l.EuiConfirmModal,{title:"Delete playlist permanently?",onCancel:e,onConfirm:c,cancelButtonText:"Cancel",confirmButtonText:"Delete",buttonColor:"danger",isLoading:a,children:T("p",{children:["Are you sure you want to delete this playlist? If you delete '",t.name,"', you won't be able to recover it."]})})},Nn=({playlistListItem:t,onSave:e})=>{const[r,a]=p.useState(!1),i=p.useCallback(async()=>{await e(),a(!1)},[e]);return T(me,{children:[o(l.EuiButton,{onClick:()=>a(!0),iconType:S.DeleteRegular,children:"Delete"}),r&&o(jn,{playlistListItem:t,onCancel:()=>a(!1),onSave:i})]})},$n=P.observer(({playlistListItem:t})=>{const e=Ze.playlist(t.id),r=Ee(),[a]=p.useState(()=>new N(r));Ke.useLocalStorageState(e,a.localStorageState);const i=gt.useRouter(),c=p.useCallback(async h=>{await t.rename(h.name)},[t]),u=p.useCallback(async()=>{await i.navigate({to:"/playlists"}),window.localStorage.removeItem(e),await t.remove()},[t,i,e]);return T(me,{children:[o(xt,{pageTitle:t.name,breadcrumbs:[{text:"Playlists",linkProps:{to:"/playlists"}},{text:t.name}],rightSideItems:[o(Bn,{onClick:a.playAll}),o(Dn,{playlistListItem:t,onSave:c}),o(Nn,{playlistListItem:t,onSave:u})]}),o(wn,{playlist:a})]})}),Ln=({onCancel:t,onSave:e})=>{const r=l.useGeneratedHtmlId({prefix:"modalForm"}),[a,i]=p.useState(""),[c,u]=p.useState(!1);return T(l.EuiModal,{onClose:t,initialFocus:"[name=name]",children:[o(l.EuiModalHeader,{children:o(l.EuiModalHeaderTitle,{children:"Create playlist"})}),o(l.EuiModalBody,{children:o(l.EuiForm,{id:r,component:"form",onSubmit:async h=>{h.preventDefault();try{u(!0),await e({name:a})}finally{u(!1)}},children:o(l.EuiFormRow,{label:"Name",children:o(l.EuiFieldText,{name:"name",value:a,onChange:h=>i(h.target.value)})})})}),T(l.EuiModalFooter,{children:[o(l.EuiButtonEmpty,{onClick:t,children:"Cancel"}),o(l.EuiButton,{type:"submit",form:r,fill:!0,disabled:a.trim().length===0,isLoading:c,children:"Create playlist"})]})]})},Qn=({children:t,onSave:e})=>{const[r,a]=p.useState(!1),i=p.useCallback(async c=>{await e(c),a(!1)},[e]);return T(me,{children:[o(l.EuiButton,{onClick:()=>a(!0),iconType:S.AddRegular,fill:!0,children:t}),r&&o(Ln,{onCancel:()=>a(!1),onSave:i})]})},zn=({linkProps:t,...e})=>{const r=gt.useRouter(),a=async i=>{i.preventDefault(),await r.navigate(t)};return o(l.EuiLink,{...e,href:r.buildLocation(t).href,onClick:a})},Yn=P.observer(({playlistList:t})=>o(l.EuiTableHeader,{children:o(l.EuiTableHeaderCell,{children:"Name"})})),Vn=P.observer(({item:t})=>o(l.EuiTableRow,{children:o(l.EuiTableRowCell,{children:o(zn,{linkProps:{to:"/playlists/$playlistId",params:{playlistId:t.id}},children:t.name})})},t.id)),Hn=P.observer(({playlistList:t})=>o(bt.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>o(Vn,{item:e},e.id))})),qn=P.observer(({playlistList:t})=>T(l.EuiTable,{children:[o(Yn,{playlistList:t}),o(Hn,{playlistList:t})]})),Un=()=>o(xt,{pageTitle:"Playlists",breadcrumbs:[{text:"Playlists"}]}),Wn=P.observer(({playlistList:t})=>{const e=p.useCallback(async r=>{await t.addItem(t.createItem(r.name))},[t]);return T(l.EuiPageTemplate.Section,{children:[o(Qn,{onSave:e,children:"New playlist"}),o(l.EuiSpacer,{size:"l"}),o(qn,{playlistList:t})]})}),Gn=p.memo(()=>{const t=cr();return T(me,{children:[o(Un,{}),o(Wn,{playlistList:t})]})});exports.BottomBar=on;exports.HydrangeanDivaProvider=Fo;exports.MediaPlayerLayout=Bo;exports.MiniPlayer=nn;exports.PlayQueueContext=Et;exports.PlayQueuePage=vn;exports.PlayQueueSection=dr;exports.PlaylistDetailsPage=$n;exports.PlaylistListContext=Pt;exports.PlaylistListPage=Gn;exports.RepeatMode=D;exports.bottomBarHeight=St;exports.usePlayQueue=Ee;exports.usePlaylistList=cr;
15
15
  //# sourceMappingURL=index.cjs.js.map