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