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