@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.
- package/dist/index.cjs.js +6 -6
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +1968 -1964
- package/dist/index.es.js.map +1 -1
- package/dist/src/features/index.d.ts +7 -2
- package/dist/src/features/media-player/components/index.d.ts +1 -0
- package/dist/src/features/media-player.bottom-bar/index.d.ts +1 -0
- package/dist/src/features/{media-player.player → media-player.bottom-bar}/stores/BottomBarStore.d.ts +2 -2
- package/dist/src/features/{media-player.player → media-player.bottom-bar.abstractions}/index.d.ts +0 -1
- package/dist/src/features/media-player.bottom-bar.abstractions/interfaces/index.d.ts +1 -0
- package/dist/src/features/media-player.mini-player/index.d.ts +1 -0
- package/dist/src/features/{media-player.player → media-player.mini-player}/stores/MiniPlayerStore.d.ts +3 -3
- package/dist/src/features/media-player.mini-player.abstractions/index.d.ts +1 -0
- package/dist/src/features/media-player.mini-player.abstractions/interfaces/index.d.ts +1 -0
- package/dist/src/features/media-player.player/stores/PlayerStore.d.ts +1 -1
- package/dist/src/features/media-player.player.abstractions/index.d.ts +1 -0
- package/dist/src/features/media-player.player.abstractions/interfaces/index.d.ts +1 -0
- package/dist/src/features/media-player.playlists/components/PlaylistCommandBar.d.ts +1 -1
- package/dist/src/features/media-player.playlists/components/PlaylistListTable.d.ts +2 -2
- package/dist/src/features/media-player.playlists/components/PlaylistSection.d.ts +1 -1
- package/dist/src/features/media-player.playlists/components/PlaylistTable.d.ts +1 -1
- package/dist/src/features/media-player.playlists/index.d.ts +0 -1
- package/dist/src/features/media-player.playlists/pages/PlaylistDetailsPage.d.ts +2 -2
- package/dist/src/features/media-player.playlists/stores/PlaylistItemStore.d.ts +2 -2
- package/dist/src/features/media-player.playlists/stores/PlaylistListItemStore.d.ts +10 -0
- package/dist/src/features/media-player.playlists/stores/PlaylistListStore.d.ts +8 -14
- package/dist/src/features/media-player.playlists/stores/PlaylistStore.d.ts +2 -2
- package/dist/src/features/media-player.playlists.abstractions/contexts/PlaylistListContext.d.ts +3 -0
- package/dist/src/features/media-player.playlists.abstractions/index.d.ts +1 -0
- package/dist/src/features/media-player.playlists.abstractions/interfaces/IPlaylistListItemStore.d.ts +6 -0
- package/dist/src/features/media-player.playlists.abstractions/interfaces/IPlaylistListStore.d.ts +8 -0
- package/package.json +4 -4
- package/dist/src/features/media-player.player/components/index.d.ts +0 -3
- package/dist/src/features/media-player.player/interfaces/index.d.ts +0 -3
- package/dist/src/features/media-player.playlists/contexts/PlaylistListContext.d.ts +0 -3
- /package/dist/src/features/{media-player.player → media-player}/components/MediaPlayerLayout.d.ts +0 -0
- /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/BottomBar.d.ts +0 -0
- /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/BottomBarCenterControls.d.ts +0 -0
- /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/BottomBarLeftControls.d.ts +0 -0
- /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/BottomBarProvider.d.ts +0 -0
- /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/BottomBarRightControls.d.ts +0 -0
- /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/SeekBar.d.ts +0 -0
- /package/dist/src/features/{media-player.player/components/bottom-bar → media-player.bottom-bar/components}/index.d.ts +0 -0
- /package/dist/src/features/{media-player.player → media-player.bottom-bar.abstractions}/contexts/BottomBarContext.d.ts +0 -0
- /package/dist/src/features/{media-player.player → media-player.bottom-bar.abstractions}/interfaces/IBottomBarStore.d.ts +0 -0
- /package/dist/src/features/{media-player.player → media-player.mini-player}/components/CookieConsentPanel.d.ts +0 -0
- /package/dist/src/features/{media-player.player/components/mini-player → media-player.mini-player/components}/MiniPlayer.d.ts +0 -0
- /package/dist/src/features/{media-player.player/components/mini-player → media-player.mini-player/components}/MiniPlayerProvider.d.ts +0 -0
- /package/dist/src/features/{media-player.player/components/mini-player → media-player.mini-player/components}/index.d.ts +0 -0
- /package/dist/src/features/{media-player.player → media-player.mini-player.abstractions}/contexts/MiniPlayerContext.d.ts +0 -0
- /package/dist/src/features/{media-player.player → media-player.mini-player.abstractions}/interfaces/IMiniPlayerStore.d.ts +0 -0
- /package/dist/src/features/{media-player.player → media-player.player.abstractions}/contexts/PlayerContext.d.ts +0 -0
- /package/dist/src/features/{media-player.player → media-player.player.abstractions}/interfaces/IPlayerStore.d.ts +0 -0
- /package/dist/src/features/{media-player.playlists → media-player.playlists.abstractions}/contexts/index.d.ts +0 -0
- /package/dist/src/features/{media-player.playlists → media-player.playlists.abstractions}/interfaces/IPlaylistItemStore.d.ts +0 -0
- /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"),
|
|
2
|
-
`+
|
|
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"&&
|
|
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
|
|
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
|
|
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
|