@aigamo/hydrangean-diva 0.0.1-alpha.62 → 0.0.1-alpha.64

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,17 +1,2 @@
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
-
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
-
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:
12
- let props = %s;
13
- <%s {...props} />
14
- React keys must be passed directly to JSX without using spread:
15
- let props = %s;
16
- <%s key={someKey} {...props} />`,_,h,g.length>0?`{`+g.join(`: ..., `)+`: ...}`:`{}`,h),J[h+_]=!0)}return e===i?ze(f):Re(f),f}function Y(e,t,n){return Be(e,t,n,!0)}function Ve(e,t,n){return Be(e,t,n,!1)}var X=Ve,He=Y;e.Fragment=i,e.jsx=X,e.jsxs=He})()})),re=o(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=te():t.exports=ne()})),ie=o((e=>{var t=typeof Symbol==`function`&&Symbol.for,n=t?Symbol.for(`react.element`):60103,r=t?Symbol.for(`react.portal`):60106,i=t?Symbol.for(`react.fragment`):60107,a=t?Symbol.for(`react.strict_mode`):60108,o=t?Symbol.for(`react.profiler`):60114,s=t?Symbol.for(`react.provider`):60109,c=t?Symbol.for(`react.context`):60110,l=t?Symbol.for(`react.async_mode`):60111,u=t?Symbol.for(`react.concurrent_mode`):60111,d=t?Symbol.for(`react.forward_ref`):60112,f=t?Symbol.for(`react.suspense`):60113,p=t?Symbol.for(`react.suspense_list`):60120,m=t?Symbol.for(`react.memo`):60115,h=t?Symbol.for(`react.lazy`):60116,g=t?Symbol.for(`react.block`):60121,_=t?Symbol.for(`react.fundamental`):60117,v=t?Symbol.for(`react.responder`):60118,y=t?Symbol.for(`react.scope`):60119;function b(e){if(typeof e==`object`&&e){var t=e.$$typeof;switch(t){case n:switch(e=e.type,e){case l:case u:case i:case o:case a:case f:return e;default:switch(e&&=e.$$typeof,e){case c:case d:case h:case m:case s:return e;default:return t}}case r:return t}}}function x(e){return b(e)===u}e.AsyncMode=l,e.ConcurrentMode=u,e.ContextConsumer=c,e.ContextProvider=s,e.Element=n,e.ForwardRef=d,e.Fragment=i,e.Lazy=h,e.Memo=m,e.Portal=r,e.Profiler=o,e.StrictMode=a,e.Suspense=f,e.isAsyncMode=function(e){return x(e)||b(e)===l},e.isConcurrentMode=x,e.isContextConsumer=function(e){return b(e)===c},e.isContextProvider=function(e){return b(e)===s},e.isElement=function(e){return typeof e==`object`&&!!e&&e.$$typeof===n},e.isForwardRef=function(e){return b(e)===d},e.isFragment=function(e){return b(e)===i},e.isLazy=function(e){return b(e)===h},e.isMemo=function(e){return b(e)===m},e.isPortal=function(e){return b(e)===r},e.isProfiler=function(e){return b(e)===o},e.isStrictMode=function(e){return b(e)===a},e.isSuspense=function(e){return b(e)===f},e.isValidElementType=function(e){return typeof e==`string`||typeof e==`function`||e===i||e===u||e===o||e===a||e===f||e===p||typeof e==`object`&&!!e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===s||e.$$typeof===c||e.$$typeof===d||e.$$typeof===_||e.$$typeof===v||e.$$typeof===y||e.$$typeof===g)},e.typeOf=b})),ae=o((e=>{process.env.NODE_ENV!==`production`&&(function(){"use strict";var t=typeof Symbol==`function`&&Symbol.for,n=t?Symbol.for(`react.element`):60103,r=t?Symbol.for(`react.portal`):60106,i=t?Symbol.for(`react.fragment`):60107,a=t?Symbol.for(`react.strict_mode`):60108,o=t?Symbol.for(`react.profiler`):60114,s=t?Symbol.for(`react.provider`):60109,c=t?Symbol.for(`react.context`):60110,l=t?Symbol.for(`react.async_mode`):60111,u=t?Symbol.for(`react.concurrent_mode`):60111,d=t?Symbol.for(`react.forward_ref`):60112,f=t?Symbol.for(`react.suspense`):60113,p=t?Symbol.for(`react.suspense_list`):60120,m=t?Symbol.for(`react.memo`):60115,h=t?Symbol.for(`react.lazy`):60116,g=t?Symbol.for(`react.block`):60121,_=t?Symbol.for(`react.fundamental`):60117,v=t?Symbol.for(`react.responder`):60118,y=t?Symbol.for(`react.scope`):60119;function b(e){return typeof e==`string`||typeof e==`function`||e===i||e===u||e===o||e===a||e===f||e===p||typeof e==`object`&&!!e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===s||e.$$typeof===c||e.$$typeof===d||e.$$typeof===_||e.$$typeof===v||e.$$typeof===y||e.$$typeof===g)}function x(e){if(typeof e==`object`&&e){var t=e.$$typeof;switch(t){case n:var p=e.type;switch(p){case l:case u:case i:case o:case a:case f:return p;default:var g=p&&p.$$typeof;switch(g){case c:case d:case h:case m:case s:return g;default:return t}}case r:return t}}}var ee=l,S=u,te=c,ne=s,re=n,ie=d,ae=i,oe=h,C=m,w=r,T=o,se=a,ce=f,le=!1;function ue(e){return le||(le=!0,console.warn(`The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.`)),de(e)||x(e)===l}function de(e){return x(e)===u}function fe(e){return x(e)===c}function pe(e){return x(e)===s}function me(e){return typeof e==`object`&&!!e&&e.$$typeof===n}function he(e){return x(e)===d}function ge(e){return x(e)===i}function E(e){return x(e)===h}function D(e){return x(e)===m}function O(e){return x(e)===r}function k(e){return x(e)===o}function A(e){return x(e)===a}function _e(e){return x(e)===f}e.AsyncMode=ee,e.ConcurrentMode=S,e.ContextConsumer=te,e.ContextProvider=ne,e.Element=re,e.ForwardRef=ie,e.Fragment=ae,e.Lazy=oe,e.Memo=C,e.Portal=w,e.Profiler=T,e.StrictMode=se,e.Suspense=ce,e.isAsyncMode=ue,e.isConcurrentMode=de,e.isContextConsumer=fe,e.isContextProvider=pe,e.isElement=me,e.isForwardRef=he,e.isFragment=ge,e.isLazy=E,e.isMemo=D,e.isPortal=O,e.isProfiler=k,e.isStrictMode=A,e.isSuspense=_e,e.isValidElementType=b,e.typeOf=x})()})),oe=o(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=ie():t.exports=ae()})),C=o(((e,t)=>{var n=oe(),r={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};s[n.ForwardRef]=a,s[n.Memo]=o;function c(e){return n.isMemo(e)?o:s[e.$$typeof]||r}var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;function h(e,t,n){if(typeof t!=`string`){if(m){var r=p(t);r&&r!==m&&h(e,r,n)}var a=u(t);d&&(a=a.concat(d(t)));for(var o=c(e),s=c(t),g=0;g<a.length;++g){var _=a[g];if(!i[_]&&!(n&&n[_])&&!(s&&s[_])&&!(o&&o[_])){var v=f(t,_);try{l(e,_,v)}catch{}}}}return e}t.exports=h})),w=c(re()),T=!0;function se(e,t,n){var r=``;return n.split(` `).forEach(function(n){e[n]===void 0?n&&(r+=n+` `):t.push(e[n]+`;`)}),r}var ce=function(e,t,n){var r=e.key+`-`+t.name;(n===!1||T===!1)&&e.registered[r]===void 0&&(e.registered[r]=t.styles)},le=function(e,t,n){ce(e,t,n);var r=e.key+`-`+t.name;if(e.inserted[t.name]===void 0){var i=t;do e.insert(t===i?`.`+r:``,i,e.sheet,!0),i=i.next;while(i!==void 0)}};function ue(e){for(var t=0,n,r=0,i=e.length;i>=4;++r,i-=4)n=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(i){case 3:t^=(e.charCodeAt(r+2)&255)<<16;case 2:t^=(e.charCodeAt(r+1)&255)<<8;case 1:t^=e.charCodeAt(r)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var de={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function fe(e){var t=Object.create(null);return function(n){return t[n]===void 0&&(t[n]=e(n)),t[n]}}var pe=!1,me=/[A-Z]|^ms/g,he=/_EMO_([^_]+?)_([^]*?)_EMO_/g,ge=function(e){return e.charCodeAt(1)===45},E=function(e){return e!=null&&typeof e!=`boolean`},D=fe(function(e){return ge(e)?e:e.replace(me,`-$&`).toLowerCase()}),O=function(e,t){switch(e){case`animation`:case`animationName`:if(typeof t==`string`)return t.replace(he,function(e,t,n){return j={name:t,styles:n,next:j},t})}return de[e]!==1&&!ge(e)&&typeof t==`number`&&t!==0?t+`px`:t},k=`Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.`;function A(e,t,n){if(n==null)return``;var r=n;if(r.__emotion_styles!==void 0)return r;switch(typeof n){case`boolean`:return``;case`object`:var i=n;if(i.anim===1)return j={name:i.name,styles:i.styles,next:j},i.name;var a=n;if(a.styles!==void 0){var o=a.next;if(o!==void 0)for(;o!==void 0;)j={name:o.name,styles:o.styles,next:j},o=o.next;return a.styles+`;`}return _e(e,t,n);case`function`:if(e!==void 0){var s=j,c=n(e);return j=s,A(e,t,c)}break}var l=n;if(t==null)return l;var u=t[l];return u===void 0?l:u}function _e(e,t,n){var r=``;if(Array.isArray(n))for(var i=0;i<n.length;i++)r+=A(e,t,n[i])+`;`;else for(var a in n){var o=n[a];if(typeof o!=`object`){var s=o;t!=null&&t[s]!==void 0?r+=a+`{`+t[s]+`}`:E(s)&&(r+=D(a)+`:`+O(a,s)+`;`)}else{if(a===`NO_COMPONENT_SELECTOR`&&pe)throw Error(k);if(Array.isArray(o)&&typeof o[0]==`string`&&(t==null||t[o[0]]===void 0))for(var c=0;c<o.length;c++)E(o[c])&&(r+=D(a)+`:`+O(a,o[c])+`;`);else{var l=A(e,t,o);switch(a){case`animation`:case`animationName`:r+=D(a)+`:`+l+`;`;break;default:r+=a+`{`+l+`}`}}}}return r}var ve=/label:\s*([^\s;{]+)\s*(;|$)/g,j;function M(e,t,n){if(e.length===1&&typeof e[0]==`object`&&e[0]!==null&&e[0].styles!==void 0)return e[0];var r=!0,i=``;j=void 0;var a=e[0];a==null||a.raw===void 0?(r=!1,i+=A(n,t,a)):i+=a[0];for(var o=1;o<e.length;o++)i+=A(n,t,e[o]),r&&(i+=a[o]);ve.lastIndex=0;for(var s=``,c;(c=ve.exec(i))!==null;)s+=`-`+c[1];return{name:ue(i)+s,styles:i,next:j}}var N=function(e){return e()},ye=l.useInsertionEffect?l.useInsertionEffect:!1,be=ye||N;ye||l.useLayoutEffect;var P=l.createContext(typeof HTMLElement<`u`?(0,u.default)({key:`css`}):null);P.Provider;var xe=function(e){return(0,l.forwardRef)(function(t,n){return e(t,(0,l.useContext)(P),n)})},Se=l.createContext({}),F={}.hasOwnProperty,Ce=`__EMOTION_TYPE_PLEASE_DO_NOT_USE__`,we=function(e,t){var n={};for(var r in t)F.call(t,r)&&(n[r]=t[r]);return n[Ce]=e,n},Te=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return ce(t,n,r),be(function(){return le(t,n,r)}),null},Ee=xe(function(e,t,n){var r=e.css;typeof r==`string`&&t.registered[r]!==void 0&&(r=t.registered[r]);var i=e[Ce],a=[r],o=``;typeof e.className==`string`?o=se(t.registered,a,e.className):e.className!=null&&(o=e.className+` `);var s=M(a,void 0,l.useContext(Se));o+=t.key+`-`+s.name;var c={};for(var u in e)F.call(e,u)&&u!==`css`&&u!==Ce&&(c[u]=e[u]);return c.className=o,n&&(c.ref=n),l.createElement(l.Fragment,null,l.createElement(Te,{cache:t,serialized:s,isStringTag:typeof i==`string`}),l.createElement(i,c))});c(C());var I=w.Fragment,L=function(e,t,n){return F.call(t,`css`)?w.jsx(Ee,we(e,t),n):w.jsx(e,t,n)},R=function(e,t,n){return F.call(t,`css`)?w.jsxs(Ee,we(e,t),n):w.jsxs(e,t,n)},De=({components:e=[],children:t})=>L(I,{children:e.reduceRight((e,t)=>L(t,{children:e}),t)}),z={playQueue:`PlayQueueStore`,bottomBar:`BottomBarStore`,playlistList:`PlaylistListStore`,playlist:e=>`PlaylistStore/${e}`},Oe=(0,l.createContext)(void 0),B=()=>(0,l.useContext)(Oe),ke=new d.default({coerceTypes:!0});function Ae(e,t){let n;if(n=ke.getSchema(t),n===void 0&&(ke.addSchema(e,t),n=ke.getSchema(t)),n===void 0||n.schema!==e)throw Error(`Invalid schema. Expected: '${JSON.stringify(e)}', but got '${JSON.stringify(n?.schema)}'.`);return n}var V=function(e){return e.Off=`Off`,e.All=`All`,e.One=`One`,e}({});function H(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}var je={type:`object`,properties:{repeat:{type:`string`,enum:Object.values(V),nullable:!0},shuffle:{type:`boolean`,nullable:!0}}},U=class{constructor(e){this.bottomBar=e,(0,f.makeObservable)(this)}get state(){return{repeat:this.bottomBar.repeat,shuffle:this.bottomBar.shuffle}}set state(e){this.bottomBar.repeat=e.repeat??V.Off,this.bottomBar.shuffle=e.shuffle??!1}validateState(e){return Ae(je,`BottomBarLocalStorageState`)(e)}};H([f.computed.struct],U.prototype,`state`,null);var W=class{localStorageState;repeat=V.Off;shuffle=!1;constructor(e,t){this.player=e,this.playQueue=t,(0,f.makeObservable)(this),this.localStorageState=new U(this)}get controller(){return this.player.controller}get playing(){return this.player.playing}get percent(){return this.player.percent}get canSeek(){return!this.playQueue.isEmpty&&this.controller.supports(`setCurrentTime`)}get currentItem(){return this.playQueue.currentItem}get canToggleRepeat(){return!0}get canToggleShuffle(){return!1}get canPlay(){return this.playQueue.canPlay&&this.controller.supports(`play`)}get canPause(){return this.playQueue.canPause&&this.controller.supports(`pause`)}get canPrevious(){return!this.playQueue.isEmpty}get canNext(){return this.playQueue.hasNextItem}get canSkipBack10(){return this.canSeek}get canSkipForward30(){return this.canSeek}get canRemoveFromPlayQueue(){return!this.playQueue.isEmpty}setPercent(e){this.player.setPercent(e)}setSeeking(e){this.player.setSeeking(e)}toggleRepeat(){switch(this.repeat){case V.Off:this.repeat=V.All;break;case V.All:this.repeat=V.One;break;case V.One:this.repeat=V.Off;break}}toggleShuffle(){this.shuffle=!this.shuffle}play(){return this.controller.play()}pause(){return this.controller.pause()}async previous(){if(this.playQueue.hasPreviousItem){let e=await this.controller.getCurrentTime();e===void 0||e<5?await this.playQueue.previous():await this.controller.setCurrentTime(0)}else await this.controller.setCurrentTime(0)}next(){return this.playQueue.next()}async skipBack10(){let e=await this.controller.getCurrentTime();e!==void 0&&await this.controller.setCurrentTime(e-10)}async skipForward30(){let e=await this.controller.getCurrentTime();e!==void 0&&await this.controller.setCurrentTime(e+30)}async removeFromPlayQueue(){this.currentItem!==void 0&&await this.playQueue.removeItems([this.currentItem])}};H([f.observable],W.prototype,`repeat`,void 0),H([f.observable],W.prototype,`shuffle`,void 0),H([f.computed],W.prototype,`controller`,null),H([f.computed],W.prototype,`playing`,null),H([f.computed],W.prototype,`percent`,null),H([f.computed],W.prototype,`canSeek`,null),H([f.computed],W.prototype,`currentItem`,null),H([f.computed],W.prototype,`canToggleRepeat`,null),H([f.computed],W.prototype,`canToggleShuffle`,null),H([f.computed],W.prototype,`canPlay`,null),H([f.computed],W.prototype,`canPause`,null),H([f.computed],W.prototype,`canPrevious`,null),H([f.computed],W.prototype,`canNext`,null),H([f.computed],W.prototype,`canSkipBack10`,null),H([f.computed],W.prototype,`canSkipForward30`,null),H([f.computed],W.prototype,`canRemoveFromPlayQueue`,null),H([f.action.bound],W.prototype,`setPercent`,null),H([f.action.bound],W.prototype,`setSeeking`,null),H([f.action.bound],W.prototype,`toggleRepeat`,null),H([f.action.bound],W.prototype,`toggleShuffle`,null),H([f.action.bound],W.prototype,`play`,null),H([f.action.bound],W.prototype,`pause`,null),H([f.action.bound],W.prototype,`previous`,null),H([f.action.bound],W.prototype,`next`,null),H([f.action.bound],W.prototype,`skipBack10`,null),H([f.action.bound],W.prototype,`skipForward30`,null),H([f.action.bound],W.prototype,`removeFromPlayQueue`,null);var G=(0,l.createContext)(void 0),K=()=>(0,l.useContext)(G),Me=(0,l.createContext)(void 0),Ne=()=>(0,l.useContext)(Me),Pe=({children:e})=>{let t=Ne(),n=K(),[r]=(0,l.useState)(()=>new W(t,n));return(0,p.useLocalStorageState)(z.bottomBar,r.localStorageState),L(Oe.Provider,{value:r,children:e})},Fe=(0,l.createContext)(void 0),Ie=()=>(0,l.useContext)(Fe),q=class{interacted=!1;constructor(e,t,n){this.player=e,this.playQueue=t,this.bottomBar=n,(0,f.makeObservable)(this)}get controller(){return this.player.controller}get currentItem(){return this.playQueue.currentItem}interact(){this.interacted=!0}async onLoaded(){this.interacted&&await this.controller.play()}onPlay(){this.player.onPlay()}onPause(){this.player.onPause()}async onEnded(){switch(this.bottomBar.repeat){case V.One:await this.controller.setCurrentTime(0);break;case V.Off:case V.All:if(this.playQueue.isLastItem)switch(this.bottomBar.repeat){case V.Off:this.player.onEnded();break;case V.All:this.playQueue.hasMultipleItems?await this.playQueue.goToFirst():await this.controller.setCurrentTime(0);break}else await this.playQueue.next();break}}onTimeUpdate(e){this.player.onTimeUpdate(e)}onControllerChange(e){this.player.onControllerChange(e)}};H([f.observable],q.prototype,`interacted`,void 0),H([f.computed],q.prototype,`controller`,null),H([f.computed],q.prototype,`currentItem`,null),H([f.action.bound],q.prototype,`interact`,null),H([f.action.bound],q.prototype,`onLoaded`,null),H([f.action.bound],q.prototype,`onPlay`,null),H([f.action.bound],q.prototype,`onPause`,null),H([f.action.bound],q.prototype,`onEnded`,null),H([f.action.bound],q.prototype,`onTimeUpdate`,null),H([f.action.bound],q.prototype,`onControllerChange`,null);var Le=({children:e})=>{let t=Ne(),n=K(),r=B(),[i]=(0,l.useState)(()=>new q(t,n,r));return L(Fe.Provider,{value:i,children:e})},Re={type:`object`,properties:{url:{type:`string`},type:{type:`string`},videoId:{type:`string`},title:{type:`string`}},required:[`url`,`type`,`videoId`,`title`]},ze={type:`object`,properties:{version:{type:`string`,nullable:!0},repeat:{type:`string`,enum:Object.values(V),nullable:!0},shuffle:{type:`boolean`,nullable:!0},items:{type:`array`,nullable:!0,items:Re},currentIndex:{type:`integer`,nullable:!0}}},J=class e{static nextId=1;id;isSelected=!1;constructor(t,n){this.playQueue=t,this.dto=n,(0,f.makeObservable)(this),this.id=e.nextId++}static fromDto(t,n){return new e(t,n)}get url(){return this.dto.url}get type(){return this.dto.type}get videoId(){return this.dto.videoId}get title(){return this.dto.title}get isCurrent(){return this.playQueue.currentItem===this}get index(){return this.playQueue.items.indexOf(this)}get isFirst(){return this.index===0}get isLast(){return this.index===this.playQueue.items.length-1}get canMoveToTop(){return!this.isFirst}get canMoveToBottom(){return!this.isLast}get canRemoveToTop(){return!this.isFirst}get canRemoveOthers(){return this.playQueue.hasMultipleItems}clone(){return this.playQueue.createItemFromDto(this.dto)}unselect(){this.isSelected=!1}select(){this.isSelected=!0}toggleSelected(){this.isSelected=!this.isSelected}play(){return this.playQueue.setCurrentItem(this),Promise.resolve()}remove(){return this.playQueue.removeItems([this])}playFirst(){return this.playQueue.playFirst([this.clone()])}playNext(){return this.playQueue.playNext([this.clone()])}addToPlayQueue(){return this.playQueue.addItems([this.clone()])}moveToTop(){this.playQueue.moveItem(this,0)}moveToBottom(){this.playQueue.moveItem(this,this.playQueue.items.length-1)}removeToTop(){return this.playQueue.removeItemsAbove(this)}removeOthers(){return this.playQueue.removeOtherItems(this)}};H([f.observable],J.prototype,`isSelected`,void 0),H([f.computed],J.prototype,`isCurrent`,null),H([f.computed],J.prototype,`index`,null),H([f.computed],J.prototype,`isFirst`,null),H([f.computed],J.prototype,`isLast`,null),H([f.computed],J.prototype,`canMoveToTop`,null),H([f.computed],J.prototype,`canMoveToBottom`,null),H([f.computed],J.prototype,`canRemoveToTop`,null),H([f.computed],J.prototype,`canRemoveOthers`,null),H([f.action.bound],J.prototype,`unselect`,null),H([f.action.bound],J.prototype,`select`,null),H([f.action.bound],J.prototype,`toggleSelected`,null),H([f.action.bound],J.prototype,`play`,null),H([f.action.bound],J.prototype,`remove`,null),H([f.action.bound],J.prototype,`playFirst`,null),H([f.action.bound],J.prototype,`playNext`,null),H([f.action.bound],J.prototype,`addToPlayQueue`,null),H([f.action.bound],J.prototype,`moveToTop`,null),H([f.action.bound],J.prototype,`moveToBottom`,null),H([f.action.bound],J.prototype,`removeToTop`,null),H([f.action.bound],J.prototype,`removeOthers`,null);var Be=class{constructor(e){this.playQueue=e,(0,f.makeObservable)(this)}get state(){return{version:`1.0`,items:this.playQueue.items.map(e=>e.dto),currentIndex:this.playQueue.currentIndex}}set state(e){this.playQueue.items=e.items?.map(e=>this.playQueue.createItemFromDto(e))??[],this.playQueue.currentIndex=e.currentIndex}validateState(e){return Ae(ze,`PlayQueueDto`)(e)}};H([f.computed.struct],Be.prototype,`state`,null);var Y=class{localStorageState;items=[];currentId;constructor(){(0,f.makeObservable)(this),this.localStorageState=new Be(this)}createItemFromDto(e){return J.fromDto(this,{url:e.url,type:e.type,videoId:e.videoId,title:e.title})}get isEmpty(){return this.items.length===0}get canClear(){return!this.isEmpty}get currentItem(){return this.items.find(e=>e.id===this.currentId)}get canPlay(){return this.currentItem!==void 0}get canPause(){return this.currentItem!==void 0}get hasMultipleItems(){return this.items.length>1}get currentIndex(){return this.currentId===void 0?void 0:this.items.findIndex(e=>e.id===this.currentId)}set currentIndex(e){this.currentId=e===void 0?void 0:this.items.at(e)?.id}get hasPreviousItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex>0}get hasNextItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex<this.items.length-1}get isLastItem(){return this.currentIndex!==void 0&&this.currentIndex===this.items.length-1}get selectedItems(){return this.items.filter(e=>e.isSelected)}get allItemsSelected(){return this.selectedItems.length===this.items.length}get hasSelectedItems(){return this.selectedItems.length>0}get selectedItemsOrAllItems(){return this.hasSelectedItems?this.selectedItems:this.items}get canAddSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}get canPlaySelectedItemsNext(){return!this.isEmpty&&this.hasSelectedItems}get canRemoveSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}setItems(e){this.items=e}clear(){this.currentIndex=void 0,this.items=[]}unselectAll(){for(let e of this.items)e.unselect()}selectAll(){for(let e of this.items)e.select()}setCurrentItem(e){this.currentId=e?.id}setNextItems(e){this.currentIndex!==void 0&&this.items.splice(this.currentIndex+1,0,...e)}clearAndSetItems(e){this.clear(),this.setCurrentItem(e[0]),this.setNextItems(e)}async playNext(e){if(this.isEmpty){this.clearAndSetItems(e);return}this.setNextItems(e)}async playSelectedItemsNext(){await this.playNext(this.selectedItemsOrAllItems.map(e=>e.clone())),this.unselectAll()}async addItems(e){if(this.isEmpty){this.clearAndSetItems(e);return}this.items.push(...e)}async addSelectedItems(){await this.addItems(this.selectedItemsOrAllItems.map(e=>e.clone())),this.unselectAll()}async playFirst(e){if(this.isEmpty){this.clearAndSetItems(e);return}let{currentIndex:t}=this;t!==void 0&&(this.items.splice(t,0,...e),this.currentIndex=t)}moveItem(e,t){let n=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(t,0,n)}async goToFirst(){this.currentIndex!==void 0&&(this.currentIndex=0)}async removeItems(e){let{currentItem:t}=this;(0,m.pull)(this.items,...e.filter(e=>e!==t));let{currentIndex:n,isLastItem:r}=this;(0,m.pull)(this.items,e.find(e=>e===t)),this.currentItem!==t&&(r?await this.goToFirst():this.currentIndex=n)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){let t=e.id;return this.removeItems(this.items.filter(e=>e.id!==t))}async removeItemsAbove(e){let t=this.items.indexOf(e);return this.removeItems(this.items.filter((e,n)=>n<t))}async previous(){this.currentIndex!==void 0&&this.hasPreviousItem&&this.currentIndex--}async next(){this.currentIndex!==void 0&&this.hasNextItem&&this.currentIndex++}addItemFromDto(e){let t=this.createItemFromDto(e);return this.addItems([t])}};H([f.observable],Y.prototype,`items`,void 0),H([f.observable],Y.prototype,`currentId`,void 0),H([f.computed],Y.prototype,`isEmpty`,null),H([f.computed],Y.prototype,`canClear`,null),H([f.computed],Y.prototype,`currentItem`,null),H([f.computed],Y.prototype,`canPlay`,null),H([f.computed],Y.prototype,`canPause`,null),H([f.computed],Y.prototype,`hasMultipleItems`,null),H([f.computed],Y.prototype,`currentIndex`,null),H([f.computed],Y.prototype,`hasPreviousItem`,null),H([f.computed],Y.prototype,`hasNextItem`,null),H([f.computed],Y.prototype,`isLastItem`,null),H([f.computed],Y.prototype,`selectedItems`,null),H([f.computed],Y.prototype,`allItemsSelected`,null),H([f.computed],Y.prototype,`hasSelectedItems`,null),H([f.computed],Y.prototype,`selectedItemsOrAllItems`,null),H([f.computed],Y.prototype,`canAddSelectedItems`,null),H([f.computed],Y.prototype,`canPlaySelectedItemsNext`,null),H([f.computed],Y.prototype,`canRemoveSelectedItems`,null),H([f.action.bound],Y.prototype,`setItems`,null),H([f.action.bound],Y.prototype,`clear`,null),H([f.action.bound],Y.prototype,`unselectAll`,null),H([f.action.bound],Y.prototype,`selectAll`,null),H([f.action.bound],Y.prototype,`setCurrentItem`,null),H([f.action.bound],Y.prototype,`setNextItems`,null),H([f.action.bound],Y.prototype,`clearAndSetItems`,null),H([f.action.bound],Y.prototype,`playNext`,null),H([f.action.bound],Y.prototype,`playSelectedItemsNext`,null),H([f.action.bound],Y.prototype,`addItems`,null),H([f.action.bound],Y.prototype,`addSelectedItems`,null),H([f.action.bound],Y.prototype,`playFirst`,null),H([f.action.bound],Y.prototype,`moveItem`,null),H([f.action.bound],Y.prototype,`goToFirst`,null),H([f.action.bound],Y.prototype,`removeItems`,null),H([f.action.bound],Y.prototype,`removeSelectedItems`,null),H([f.action.bound],Y.prototype,`removeOtherItems`,null),H([f.action.bound],Y.prototype,`removeItemsAbove`,null),H([f.action.bound],Y.prototype,`previous`,null),H([f.action.bound],Y.prototype,`next`,null),H([f.action.bound],Y.prototype,`addItemFromDto`,null);var Ve=({children:e})=>{let[t]=(0,l.useState)(()=>new Y);(0,p.useLocalStorageState)(z.playQueue,t.localStorageState);let n=(0,h.useNostalgicDiva)();return(0,l.useEffect)(()=>(0,f.reaction)(()=>t.currentItem,async(e,t)=>{e===void 0||t===void 0||e.type===t.type&&e.videoId===t.videoId&&await n.setCurrentTime(0)}),[t,n]),L(G.Provider,{value:t,children:e})},X=class{controller=h.nullPlayerController;playing=!1;percent=0;seeking=!1;constructor(){(0,f.makeObservable)(this)}setPlaying(e){this.playing=e}setPercent(e){this.percent=e}setSeeking(e){this.seeking=e}onControllerChange(e){this.controller=e}onPlay(){this.playing=!0}onPause(){this.playing=!1}onEnded(){this.playing=!1}onTimeUpdate({percent:e}){e!==void 0&&(this.seeking||(this.percent=e))}};H([f.observable],X.prototype,`controller`,void 0),H([f.observable],X.prototype,`playing`,void 0),H([f.observable],X.prototype,`percent`,void 0),H([f.observable],X.prototype,`seeking`,void 0),H([f.action.bound],X.prototype,`setPlaying`,null),H([f.action.bound],X.prototype,`setPercent`,null),H([f.action.bound],X.prototype,`setSeeking`,null),H([f.action.bound],X.prototype,`onControllerChange`,null),H([f.action.bound],X.prototype,`onPlay`,null),H([f.action.bound],X.prototype,`onPause`,null),H([f.action.bound],X.prototype,`onEnded`,null),H([f.action.bound],X.prototype,`onTimeUpdate`,null);var He=({children:e})=>{let[t]=(0,l.useState)(()=>new X);return L(Me.Provider,{value:t,children:e})},Ue=(0,l.createContext)(void 0),We=()=>(0,l.useContext)(Ue),Z=class{id;name;constructor(e,t,n){this.playlistList=e,(0,f.makeObservable)(this),this.id=t,this.name=n}async rename(e){this.name=e}remove(){return this.playlistList.removeItem(this)}};H([f.observable],Z.prototype,`id`,void 0),H([f.observable],Z.prototype,`name`,void 0),H([f.action.bound],Z.prototype,`rename`,null),H([f.action.bound],Z.prototype,`remove`,null);var Ge=class{constructor(e){this.playlistList=e,(0,f.makeObservable)(this)}get state(){return{items:this.playlistList.items.map(e=>({id:e.id,name:e.name}))}}set state(e){this.playlistList.items=e.items?.map(e=>new Z(this.playlistList,e.id,e.name))??[]}validateState(e){return!0}};H([f.computed.struct],Ge.prototype,`state`,null);var Ke=class{localStorageState;items=[];constructor(){(0,f.makeObservable)(this),this.localStorageState=new Ge(this)}createItem(e){return new Z(this,crypto.randomUUID(),e)}setItems(e){this.items=e}async addItem(e){this.items.push(e)}async removeItem(e){(0,m.pull)(this.items,e)}};H([f.observable],Ke.prototype,`items`,void 0),H([f.action.bound],Ke.prototype,`setItems`,null),H([f.action.bound],Ke.prototype,`addItem`,null),H([f.action.bound],Ke.prototype,`removeItem`,null);var qe=({children:e})=>{let[t]=(0,l.useState)(()=>new Ke);return(0,p.useLocalStorageState)(z.playlistList,t.localStorageState),L(Ue.Provider,{value:t,children:e})},Je=({children:e,nostalgicDivaProps:t})=>L(h.NostalgicDivaProvider,{...t,children:L(De,{components:[He,Ve,Pe,Le,qe],children:e})}),Ye={width:400,height:225},Xe=(0,_.observer)(({children:e})=>{let t=K();return R(g.EuiPageTemplate,{panelled:!0,style:{minBlockSize:`max(460px, 100vh - 81px)`},children:[e,!t.isEmpty&&L(g.EuiSpacer,{style:{blockSize:Ye.height}})]})}),Ze=(0,_.observer)(()=>{let e=B();return L(g.EuiButtonIcon,{title:`Shuffle: ${e.shuffle?`On`:`Off`}`,"aria-label":`Shuffle: ${e.shuffle?`On`:`Off`}`,iconType:e.shuffle?v.ArrowShuffleFilled:v.ArrowShuffleOffFilled,size:`s`,iconSize:`l`,onClick:e.toggleShuffle,disabled:!e.canToggleShuffle})}),Qe=(0,_.observer)(()=>{let e=B();return L(g.EuiButtonIcon,{title:`Previous`,"aria-label":`Previous`,iconType:v.PreviousFilled,size:`s`,iconSize:`l`,onClick:e.previous,disabled:!e.canPrevious})}),$e=(0,_.observer)(()=>{let e=B();return L(g.EuiButtonIcon,{title:`Skip back 10 seconds`,"aria-label":`Skip back 10 seconds`,iconType:v.SkipBack10Regular,size:`s`,iconSize:`l`,onClick:e.skipBack10,disabled:!e.canSkipBack10})}),et=(0,_.observer)(()=>{let e=B();return L(g.EuiButtonIcon,{title:`Pause`,"aria-label":`Pause`,iconType:v.PauseFilled,size:`s`,iconSize:`l`,onClick:e.pause,disabled:!e.canPause})}),tt=(0,_.observer)(()=>{let e=B();return L(g.EuiButtonIcon,{title:`Play`,"aria-label":`Play`,iconType:v.PlayFilled,size:`s`,iconSize:`l`,onClick:e.play,disabled:!e.canPlay})}),nt=(0,_.observer)(()=>{let e=B();return L(g.EuiButtonIcon,{title:`Skip forward 30 seconds`,"aria-label":`Skip forward 30 seconds`,iconType:v.SkipForward30Regular,size:`s`,iconSize:`l`,onClick:e.skipForward30,disabled:!e.canSkipForward30})}),rt=(0,_.observer)(()=>{let e=B();return L(g.EuiButtonIcon,{title:`Next`,"aria-label":`Next`,iconType:v.NextFilled,size:`s`,iconSize:`l`,onClick:e.next,disabled:!e.canNext})}),it={[V.Off]:v.ArrowRepeatAllOffFilled,[V.All]:v.ArrowRepeatAllFilled,[V.One]:v.ArrowRepeat1Filled},at=(0,_.observer)(()=>{let e=B();return L(g.EuiButtonIcon,{title:`Repeat: ${e.repeat===V.All?`All`:e.repeat===V.One?`One`:`Off`}`,"aria-label":`Repeat: ${e.repeat===V.All?`All`:e.repeat===V.One?`One`:`Off`}`,iconType:it[e.repeat],size:`s`,iconSize:`l`,onClick:e.toggleRepeat,disabled:!e.canToggleRepeat})}),ot=(0,_.observer)(()=>{let e=B();return R(g.EuiFlexGroup,{responsive:!1,gutterSize:`s`,justifyContent:`center`,alignItems:`center`,children:[L(g.EuiHideFor,{sizes:[`xs`],children:L(Ze,{})}),L(Qe,{}),L(g.EuiHideFor,{sizes:[`xs`],children:L($e,{})}),e.playing?L(et,{}):L(tt,{}),L(g.EuiHideFor,{sizes:[`xs`],children:L(nt,{})}),L(rt,{}),L(g.EuiHideFor,{sizes:[`xs`],children:L(at,{})})]})}),st=(0,l.memo)(({item:e,closePopover:t})=>{let n=(0,l.useCallback)(({name:e,icon:n,onClick:r})=>({name:e,icon:n,onClick:async e=>{t(),r(e)}}),[t]);return L(g.EuiContextMenu,{initialPanelId:0,panels:(0,l.useMemo)(()=>[{id:0,items:[n({name:`Open in new tab`,icon:L(g.EuiIcon,{type:v.OpenRegular}),onClick:async()=>{window.open(e.dto.url,`_blank`)}}),n({name:`Copy link address`,icon:L(g.EuiIcon,{type:``}),onClick:async()=>{await navigator.clipboard.writeText(e.dto.url)}}),n({name:`Copy link text`,icon:L(g.EuiIcon,{type:``}),onClick:async()=>{await navigator.clipboard.writeText(e.dto.title)}})]}],[n,e])})}),ct=(0,l.memo)(({item:e})=>{let[t,n]=(0,l.useState)(!1),r=(0,l.useCallback)(()=>n(!t),[t]),i=(0,l.useCallback)(()=>n(!1),[]);return L(g.EuiPopover,{button:L(g.EuiButtonEmpty,{iconType:S.get(e.type),size:`s`,onClick:r,children:e.title}),isOpen:t,closePopover:i,panelPaddingSize:`none`,anchorPosition:`upLeft`,children:L(st,{item:e,closePopover:i})})}),lt=(0,_.observer)(()=>{let e=B();return L(g.EuiFlexGroup,{responsive:!1,gutterSize:`s`,justifyContent:`flexStart`,alignItems:`center`,children:e.currentItem&&L(ct,{item:e.currentItem})})}),ut=(0,_.observer)(()=>{let e=B();return L(g.EuiButtonIcon,{title:`Mute`,"aria-label":`Mute`,iconType:v.Speaker2Regular,size:`s`,iconSize:`l`,disabled:!e.controller.supports(`setMuted`)})}),dt=(0,_.observer)(({button:e,isOpen:t,closePopover:n})=>{let r=B(),[i,a]=(0,l.useState)(`0`),o=(0,h.useNostalgicDiva)();(0,l.useLayoutEffect)(()=>{t&&o.getVolume().then(e=>{e!==void 0&&a(Math.floor(e*100).toString())})},[t,o]);let s=(0,l.useCallback)(async e=>{a(e.currentTarget.value),await o.setVolume(Number(e.currentTarget.value)/100)},[o]);return L(g.EuiPopover,{button:e,isOpen:t,closePopover:n,anchorPosition:`upRight`,children:L(g.EuiFormRow,{children:R(g.EuiFlexGroup,{responsive:!1,gutterSize:`s`,justifyContent:`center`,alignItems:`center`,children:[L(ut,{}),L(g.EuiRange,{min:0,max:100,step:1,value:i,onChange:s,css:{blockSize:32},disabled:!r.controller.supports(`setVolume`)})]})})})}),ft=(0,_.observer)(()=>{let e=B(),[t,n]=(0,l.useState)(!1),r=()=>n(!t);return L(dt,{button:L(g.EuiButtonIcon,{title:`Volume`,"aria-label":`Volume`,iconType:v.Speaker2Regular,size:`s`,iconSize:`l`,onClick:r,disabled:!e.controller.supports(`getVolume`)}),isOpen:t,closePopover:()=>n(!1)})}),pt=({onClickPlayQueueButton:e})=>L(g.EuiButtonIcon,{title:`Play queue`,"aria-label":`Play queue`,iconType:v.NavigationPlayRegular,size:`s`,iconSize:`l`,onClick:e}),mt=(0,_.observer)(({closePopover:e})=>{let t=B(),n=(0,h.useNostalgicDiva)(),[r,i]=(0,l.useState)(),a=(0,l.useCallback)(async()=>{await t.controller.getPlaybackRate().then(e=>i(e))},[t]),o=(0,l.useCallback)(({name:t,icon:n,onClick:r,disabled:i,className:a})=>({name:t,icon:n,onClick:async()=>{e(),r()},disabled:i,className:a}),[e]);return L(g.EuiContextMenu,{initialPanelId:0,panels:(0,l.useMemo)(()=>[{id:0,items:[{name:`Speed`,icon:L(g.EuiIcon,{type:v.TopSpeedRegular}),panel:1,onClick:a,disabled:!t.controller.supports(`getPlaybackRate`)},o({name:`Skip back 10 seconds`,icon:L(g.EuiIcon,{type:v.SkipBack10Regular}),onClick:t.skipBack10,disabled:!t.canSkipBack10}),o({name:`Skip forward 30 seconds`,icon:L(g.EuiIcon,{type:v.SkipForward30Regular}),onClick:t.skipForward30,disabled:!t.canSkipForward30}),o({name:`Shuffle: ${t.shuffle?`On`:`Off`}`,icon:L(g.EuiIcon,{type:t.shuffle?v.ArrowShuffleFilled:v.ArrowShuffleOffFilled}),onClick:t.toggleShuffle,disabled:!t.canToggleShuffle,className:`eui-showFor--xs--flex`}),o({name:`Repeat: ${t.repeat===V.All?`All`:t.repeat===V.One?`One`:`Off`}`,icon:L(g.EuiIcon,{type:it[t.repeat]}),onClick:t.toggleRepeat,disabled:!t.canToggleRepeat,className:`eui-showFor--xs--flex`}),{isSeparator:!0},o({name:`Remove from play queue`,icon:L(g.EuiIcon,{type:v.DismissRegular}),onClick:t.removeFromPlayQueue,disabled:!t.canRemoveFromPlayQueue})]},{id:1,title:`Speed`,items:[.25,.5,.75,1,1.25,1.5,1.75,2].map(e=>o({name:e.toString(),onClick:()=>n.setPlaybackRate(e),icon:e===r?`check`:`empty`,disabled:!t.controller.supports(`setPlaybackRate`)}))}],[t,o,a,n,r])})}),ht=(0,l.memo)(({button:e,isOpen:t,closePopover:n})=>L(g.EuiPopover,{button:e,isOpen:t,closePopover:n,panelPaddingSize:`none`,anchorPosition:`upRight`,children:L(mt,{closePopover:n})})),gt=(0,l.memo)(()=>{let[e,t]=(0,l.useState)(!1),n=()=>t(!e);return L(ht,{button:L(g.EuiButtonIcon,{title:`More options`,"aria-label":`More options`,iconType:v.MoreHorizontalFilled,size:`s`,iconSize:`l`,onClick:n}),isOpen:e,closePopover:()=>t(!1)})}),_t=(0,l.memo)(({onClickPlayQueueButton:e})=>R(g.EuiFlexGroup,{responsive:!1,gutterSize:`s`,justifyContent:`flexEnd`,alignItems:`center`,children:[L(ft,{}),e&&L(pt,{onClickPlayQueueButton:e}),L(gt,{})]})),vt=(0,_.observer)(()=>{let e=B(),t=(0,h.useNostalgicDiva)(),n=(0,l.useCallback)(t=>{let n=Number(t.currentTarget.value)/100;e.setPercent(n)},[e]),r=(0,l.useCallback)(t=>{t.button===0&&e.setSeeking(!0)},[e]),i=(0,l.useCallback)(async n=>{if(n.button===0){let r=Number(n.currentTarget.value)/100;e.setSeeking(!1);let i=await t.getDuration();i!==void 0&&await t.setCurrentTime(i*r)}},[e,t]);return L(g.EuiRange,{min:0,max:100,step:1e-7,value:e.percent*100,onChange:n,onMouseDown:r,onMouseUp:i,fullWidth:!0,showRange:!0,css:{blockSize:32},disabled:!e.canSeek})}),yt=(0,_.observer)(({onClickPlayQueueButton:e})=>L(g.EuiBottomBar,{paddingSize:`s`,children:R(g.EuiFlexGroup,{direction:`column`,gutterSize:`none`,children:[L(g.EuiFlexItem,{children:L(vt,{})}),L(g.EuiFlexItem,{children:R(g.EuiFlexGroup,{responsive:!1,children:[L(g.EuiFlexItem,{css:{width:`calc(100% / 3)`},children:L(lt,{})}),L(g.EuiFlexItem,{css:{width:`calc(100% / 3)`},children:L(ot,{})}),L(g.EuiFlexItem,{css:{width:`calc(100% / 3)`},children:L(_t,{onClickPlayQueueButton:e})})]})})]})})),bt=(0,_.observer)(()=>{let e=Ie(),t=(0,l.useMemo)(()=>({onLoaded:e.onLoaded,onPlay:e.onPlay,onPause:e.onPause,onEnded:e.onEnded,onTimeUpdate:e.onTimeUpdate}),[e]);return(0,l.useLayoutEffect)(()=>(window.addEventListener(`click`,e.interact,{once:!0}),()=>{window.removeEventListener(`click`,e.interact)}),[e]),L(`div`,{css:{position:`fixed`,right:0,bottom:81,width:Ye.width,height:Ye.height,zIndex:998,backgroundColor:`rgb(39, 39, 39)`,display:`flex`,flexDirection:`column`},children:L(`div`,{css:{flexGrow:1,backgroundColor:`black`},children:e.currentItem&&L(h.NostalgicDiva,{src:e.currentItem.url,options:t,onControllerChange:e.onControllerChange})})})});function xt(e){return typeof e==`object`&&!!e&&`title`in e&&typeof e.title==`string`}var St=y.default.create(({remove:e,resolve:t})=>{let n=(0,g.useGeneratedHtmlId)({prefix:`modalForm`}),[r,i]=(0,l.useState)(``),[a,o]=(0,l.useState)(``),[s,c]=(0,l.useState)(!1);return R(g.EuiModal,{onClose:e,initialFocus:`[name=url]`,children:[L(g.EuiModalHeader,{children:L(g.EuiModalHeaderTitle,{children:`Add video`})}),L(g.EuiModalBody,{children:R(g.EuiForm,{id:n,component:`form`,onSubmit:async n=>{n.preventDefault();try{c(!0);let n=(0,h.findVideoService)(r);if(n===void 0)return;let i=n.extractVideoId(r);if(i===void 0)return;let o=await(await fetch(`https://noembed.com/embed?url=${encodeURIComponent(r)}`)).json();t({url:r,type:n.type,videoId:i,title:a||(xt(o)?o.title:i)}),e()}finally{c(!1)}},children:[L(g.EuiFormRow,{label:`URL`,children:L(g.EuiFieldText,{name:`url`,value:r,onChange:e=>i(e.target.value)})}),L(g.EuiFormRow,{label:`Title`,children:L(g.EuiFieldText,{name:`title`,value:a,onChange:e=>o(e.target.value)})})]})}),R(g.EuiModalFooter,{children:[L(g.EuiButtonEmpty,{onClick:e,children:`Cancel`}),L(g.EuiButton,{type:`submit`,form:n,fill:!0,disabled:r.trim().length===0,isLoading:s,children:`Add video`})]})]})}),Ct=(0,l.memo)(({onFulfilled:e})=>L(g.EuiButton,{onClick:()=>y.default.show(St).then(e),iconType:v.AddRegular,color:`primary`,children:`Add video`})),wt=(0,_.observer)(({playQueue:e})=>L(g.EuiButton,{iconType:v.AddRegular,onClick:e.addSelectedItems,disabled:!e.canAddSelectedItems,children:`Add to play queue`})),Tt=(0,_.observer)(({playQueue:e,closePopover:t})=>{let n=(0,l.useCallback)(({name:e,icon:n,disabled:r,onClick:i})=>({name:e,icon:n,disabled:r,onClick:async e=>{t(),i(e)}}),[t]);return L(g.EuiContextMenu,{initialPanelId:0,panels:(0,l.useMemo)(()=>[{id:0,items:[n({name:`Play next`,icon:L(g.EuiIcon,{type:``}),disabled:!e.canPlaySelectedItemsNext,onClick:e.playSelectedItemsNext}),n({name:`Add to play queue`,icon:L(g.EuiIcon,{type:v.AddRegular}),onClick:e.addSelectedItems,disabled:!e.canAddSelectedItems}),n({name:`Remove`,icon:L(g.EuiIcon,{type:v.DismissRegular}),onClick:e.removeSelectedItems,disabled:!e.canRemoveSelectedItems}),n({name:`Clear`,icon:L(g.EuiIcon,{type:v.DeleteRegular}),onClick:e.clear,disabled:!e.canClear})]}],[n,e])})}),Et=(0,l.memo)(({playQueue:e})=>{let[t,n]=(0,l.useState)(!1),r=(0,l.useCallback)(()=>n(!t),[t]),i=(0,l.useCallback)(()=>n(!1),[]);return L(g.EuiPopover,{button:L(g.EuiButtonIcon,{display:`base`,size:`m`,iconType:v.MoreHorizontalFilled,onClick:r}),isOpen:t,closePopover:i,panelPaddingSize:`none`,anchorPosition:`downLeft`,children:L(Tt,{playQueue:e,closePopover:i})})}),Dt=(0,_.observer)(({playQueue:e})=>{let{euiTheme:t}=(0,g.useEuiTheme)();return R(g.EuiFlexGroup,{alignItems:`center`,gutterSize:`m`,responsive:!1,style:{position:`sticky`,top:48,zIndex:998,background:t.colors.backgroundBasePlain},children:[R(g.EuiHideFor,{sizes:[`xs`],children:[L(g.EuiFlexItem,{grow:!1,children:L(g.EuiButton,{disabled:!e.canPlaySelectedItemsNext,onClick:e.playSelectedItemsNext,children:`Play next`})}),L(g.EuiFlexItem,{grow:!1,children:L(wt,{playQueue:e})}),L(g.EuiFlexItem,{grow:!1,children:L(g.EuiButton,{iconType:v.DismissRegular,onClick:e.removeSelectedItems,disabled:!e.canRemoveSelectedItems,children:`Remove`})}),L(g.EuiFlexItem,{grow:!1,children:L(g.EuiButton,{iconType:v.DeleteRegular,onClick:e.clear,disabled:!e.canClear,children:`Clear`})})]}),L(g.EuiShowFor,{sizes:[`xs`],children:L(Et,{playQueue:e})}),L(g.EuiFlexItem,{grow:!0}),L(g.EuiFlexItem,{grow:!1,children:L(Ct,{onFulfilled:e.addItemFromDto})})]})}),Ot=(0,_.observer)(({playQueue:e})=>{let{euiTheme:t}=(0,g.useEuiTheme)();return R(I,{children:[L(g.EuiTableHeaderMobile,{children:L(g.EuiFlexGroup,{responsive:!1,justifyContent:`spaceBetween`,alignItems:`baseline`,children:L(g.EuiFlexItem,{grow:!1,children:L(g.EuiCheckbox,{id:``,checked:e.allItemsSelected,onChange:t=>{t.target.checked?e.selectAll():e.unselectAll()}})})})}),R(g.EuiTableHeader,{style:{position:`sticky`,top:112,zIndex:998,background:t.colors.backgroundBasePlain},children:[L(g.EuiTableHeaderCellCheckbox,{children:L(g.EuiCheckbox,{id:``,checked:e.allItemsSelected,onChange:t=>{t.target.checked?e.selectAll():e.unselectAll()}})}),L(g.EuiTableHeaderCell,{width:24}),L(g.EuiTableHeaderCell,{children:`Title`}),L(g.EuiTableHeaderCell,{})]})]})}),kt=(0,_.observer)(({item:e,closePopover:t})=>{let n=(0,l.useCallback)(({name:e,icon:n,disabled:r,onClick:i,className:a})=>({name:e,icon:n,disabled:r,onClick:async e=>{t(),i(e)},className:a}),[t]);return L(g.EuiContextMenu,{initialPanelId:0,panels:(0,l.useMemo)(()=>[{id:0,items:[n({name:`Play`,icon:L(g.EuiIcon,{type:v.PlayRegular}),onClick:e.play,className:`eui-showFor--xs--flex`}),n({name:`Play first`,icon:L(g.EuiIcon,{type:``}),onClick:e.playFirst}),n({name:`Play next`,icon:L(g.EuiIcon,{type:``}),onClick:e.playNext}),n({name:`Add to play queue`,icon:L(g.EuiIcon,{type:v.AddRegular}),onClick:e.addToPlayQueue}),{isSeparator:!0},n({name:`Move to the top`,icon:L(g.EuiIcon,{type:v.ArrowUploadRegular}),onClick:e.moveToTop,disabled:!e.canMoveToTop}),n({name:`Move to the bottom`,icon:L(g.EuiIcon,{type:v.ArrowDownloadRegular}),onClick:e.moveToBottom,disabled:!e.canMoveToBottom}),{isSeparator:!0},n({name:`Remove`,icon:L(g.EuiIcon,{type:v.DismissRegular}),onClick:e.remove,className:`eui-showFor--xs--flex`}),n({name:`Remove to the top`,icon:L(g.EuiIcon,{type:``}),onClick:e.removeToTop,disabled:!e.canRemoveToTop}),n({name:`Remove others`,icon:L(g.EuiIcon,{type:``}),onClick:e.removeOthers,disabled:!e.canRemoveOthers})]}],[n,e])})}),At=(0,l.memo)(({item:e})=>{let[t,n]=(0,l.useState)(!1),r=(0,l.useCallback)(()=>n(!t),[t]),i=(0,l.useCallback)(()=>n(!1),[]);return L(g.EuiPopover,{button:L(g.EuiButtonIcon,{title:`More options`,"aria-label":`More options`,iconType:v.MoreHorizontalFilled,size:`s`,color:`text`,onClick:r}),isOpen:t,closePopover:i,panelPaddingSize:`none`,anchorPosition:`leftCenter`,children:L(kt,{item:e,closePopover:i})})}),jt=(0,_.observer)(({item:e})=>{let t=(0,h.useNostalgicDiva)();return R(g.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:`right`,children:[R(g.EuiHideFor,{sizes:[`xs`],children:[L(g.EuiButton,{iconType:v.PlayRegular,size:`s`,onClick:async()=>{e.isCurrent?await t.setCurrentTime(0):await e.play()},children:`Play`}),L(g.EuiButton,{iconType:v.DismissRegular,size:`s`,onClick:e.remove,children:`Remove`})]}),L(At,{item:e})]})}),Mt=(0,_.observer)(({item:e})=>R(g.EuiTableRow,{isSelected:e.isCurrent,hasSelection:!0,hasActions:!0,children:[L(g.EuiTableRowCellCheckbox,{children:L(g.EuiCheckbox,{id:e.id.toString(),checked:e.isSelected,onChange:e.toggleSelected})}),L(g.EuiTableRowCell,{textOnly:!1,children:L(`img`,{src:S.get(e.type),width:16,height:16,alt:e.type})}),L(g.EuiTableRowCell,{mobileOptions:{header:!1,enlarge:!0,width:`100%`},children:L(g.EuiLink,{href:e.url,target:`_blank`,external:!0,children:e.title})}),L(jt,{item:e})]})),Nt=(0,_.observer)(({playQueue:e})=>L(b.ReactSortable,{tag:`tbody`,list:e.items,setList:t=>e.setItems(t),children:e.items.map(e=>L(Mt,{item:e},e.id))})),Pt=(0,_.observer)(({playQueue:e})=>R(g.EuiTable,{children:[L(Ot,{playQueue:e}),L(Nt,{playQueue:e})]})),Ft=(0,_.observer)(({playQueue:e})=>{let{euiTheme:t}=(0,g.useEuiTheme)();return R(g.EuiPageTemplate.Section,{children:[L(Dt,{playQueue:e}),L(g.EuiSpacer,{size:`l`,style:{position:`sticky`,top:88,zIndex:998,background:t.colors.backgroundBasePlain}}),e.isEmpty?L(g.EuiEmptyPrompt,{title:L(`h2`,{children:`We couldn't find any videos`}),body:L(`p`,{children:`Your video library doesn't contain any video content.`}),actions:L(Ct,{onFulfilled:e.addItemFromDto})}):L(Pt,{playQueue:e})]})}),It=({breadcrumbs:e,tabs:t,...n})=>{let r=(0,x.useRouter)();return L(g.EuiPageTemplate.Header,{...n,breadcrumbs:e?.map(({linkProps:e,...t})=>({...t,href:e===void 0?void 0:r.buildLocation(e).href,onClick:e===void 0?void 0:async t=>{t.preventDefault(),await r.navigate(e)}})),tabs:t?.map(({linkProps:e,...t})=>({...t,href:e===void 0?void 0:r.buildLocation(e).href,onClick:e===void 0?void 0:async t=>{t.preventDefault(),await r.navigate(e)}}))})},Lt=()=>{let e=K();return R(I,{children:[L(It,{pageTitle:`Play queue`,rightSideItems:[]}),L(Ft,{playQueue:e})]})},Rt=y.default.create(({remove:e,resolve:t,playlistListItem:n})=>{let[r,i]=(0,l.useState)(!1);return L(g.EuiConfirmModal,{title:`Delete playlist permanently?`,onCancel:e,onConfirm:(0,l.useCallback)(async()=>{try{i(!0),t(),e()}finally{i(!1)}},[t,e]),cancelButtonText:`Cancel`,confirmButtonText:`Delete`,buttonColor:`danger`,isLoading:r,children:R(`p`,{children:[`Are you sure you want to delete this playlist? If you delete '`,n.name,`', you won't be able to recover it.`]})})}),zt=(0,_.observer)(({playlist:e})=>L(g.EuiButton,{iconType:v.AddRegular,onClick:e.addSelectedItems,disabled:!e.canAddSelectedItems,children:`Add to play queue`})),Bt=(0,_.observer)(({playlist:e,closePopover:t})=>{let n=(0,l.useCallback)(({name:e,icon:n,disabled:r,onClick:i})=>({name:e,icon:n,disabled:r,onClick:async e=>{t(),i(e)}}),[t]);return L(g.EuiContextMenu,{initialPanelId:0,panels:(0,l.useMemo)(()=>[{id:0,items:[n({name:`Play next`,icon:L(g.EuiIcon,{type:``}),disabled:!e.canPlaySelectedItemsNext,onClick:e.playSelectedItemsNext}),n({name:`Add to play queue`,icon:L(g.EuiIcon,{type:v.AddRegular}),onClick:e.addSelectedItems,disabled:!e.canAddSelectedItems}),n({name:`Remove`,icon:L(g.EuiIcon,{type:v.DismissRegular}),onClick:e.removeSelectedItems,disabled:!e.canRemoveSelectedItems})]}],[n,e])})}),Vt=(0,l.memo)(({playlist:e})=>{let[t,n]=(0,l.useState)(!1),r=(0,l.useCallback)(()=>n(!t),[t]),i=(0,l.useCallback)(()=>n(!1),[]);return L(g.EuiPopover,{button:L(g.EuiButtonIcon,{display:`base`,size:`m`,iconType:v.MoreHorizontalFilled,onClick:r}),isOpen:t,closePopover:i,panelPaddingSize:`none`,anchorPosition:`downLeft`,children:L(Bt,{playlist:e,closePopover:i})})}),Ht=(0,_.observer)(({playlist:e})=>{let{euiTheme:t}=(0,g.useEuiTheme)();return R(g.EuiFlexGroup,{alignItems:`center`,gutterSize:`m`,responsive:!1,style:{position:`sticky`,top:48,zIndex:998,background:t.colors.backgroundBasePlain},children:[R(g.EuiHideFor,{sizes:[`xs`],children:[L(g.EuiFlexItem,{grow:!1,children:L(g.EuiButton,{disabled:!e.canPlaySelectedItemsNext,onClick:e.playSelectedItemsNext,children:`Play next`})}),L(g.EuiFlexItem,{grow:!1,children:L(zt,{playlist:e})}),L(g.EuiFlexItem,{grow:!1,children:L(g.EuiButton,{iconType:v.DismissRegular,onClick:e.removeSelectedItems,disabled:!e.canRemoveSelectedItems,children:`Remove`})})]}),L(g.EuiShowFor,{sizes:[`xs`],children:L(Vt,{playlist:e})}),L(g.EuiFlexItem,{grow:!0}),L(g.EuiFlexItem,{grow:!1,children:L(Ct,{onFulfilled:e.addItemFromDto})})]})}),Ut=(0,_.observer)(({playlist:e})=>R(I,{children:[L(g.EuiTableHeaderMobile,{children:L(g.EuiFlexGroup,{responsive:!1,justifyContent:`spaceBetween`,alignItems:`baseline`,children:L(g.EuiFlexItem,{grow:!1,children:L(g.EuiCheckbox,{id:``,checked:e.allItemsSelected,onChange:t=>{t.target.checked?e.selectAll():e.unselectAll()}})})})}),R(g.EuiTableHeader,{children:[L(g.EuiTableHeaderCellCheckbox,{children:L(g.EuiCheckbox,{id:``,checked:e.allItemsSelected,onChange:t=>{t.target.checked?e.selectAll():e.unselectAll()}})}),L(g.EuiTableHeaderCell,{width:24}),L(g.EuiTableHeaderCell,{children:`Title`}),L(g.EuiTableHeaderCell,{})]})]})),Wt=(0,l.memo)(({item:e,closePopover:t})=>{let n=(0,l.useCallback)(({name:e,icon:n,disabled:r,onClick:i,className:a})=>({name:e,icon:n,disabled:r,onClick:async e=>{t(),i(e)},className:a}),[t]);return L(g.EuiContextMenu,{initialPanelId:0,panels:(0,l.useMemo)(()=>[{id:0,items:[n({name:`Play`,icon:L(g.EuiIcon,{type:v.PlayRegular}),onClick:e.play,className:`eui-showFor--xs--flex`}),n({name:`Play first`,icon:L(g.EuiIcon,{type:``}),onClick:e.playFirst}),n({name:`Play next`,icon:L(g.EuiIcon,{type:``}),onClick:e.playNext}),n({name:`Add to play queue`,icon:L(g.EuiIcon,{type:v.AddRegular}),onClick:e.addToPlayQueue}),{isSeparator:!0},n({name:`Move to the top`,icon:L(g.EuiIcon,{type:v.ArrowUploadRegular}),onClick:e.moveToTop,disabled:!e.canMoveToTop}),n({name:`Move to the bottom`,icon:L(g.EuiIcon,{type:v.ArrowDownloadRegular}),onClick:e.moveToBottom,disabled:!e.canMoveToBottom}),{isSeparator:!0},n({name:`Remove`,icon:L(g.EuiIcon,{type:v.DismissRegular}),onClick:e.remove,className:`eui-showFor--xs--flex`}),n({name:`Remove to the top`,icon:L(g.EuiIcon,{type:``}),onClick:e.removeToTop,disabled:!e.canRemoveToTop}),n({name:`Remove others`,icon:L(g.EuiIcon,{type:``}),onClick:e.removeOthers,disabled:!e.canRemoveOthers})]}],[n,e])})}),Gt=(0,l.memo)(({item:e})=>{let[t,n]=(0,l.useState)(!1),r=(0,l.useCallback)(()=>n(!t),[t]),i=(0,l.useCallback)(()=>n(!1),[]);return L(g.EuiPopover,{button:L(g.EuiButtonIcon,{title:`More options`,"aria-label":`More options`,iconType:v.MoreHorizontalFilled,size:`s`,color:`text`,onClick:r}),isOpen:t,closePopover:i,panelPaddingSize:`none`,anchorPosition:`leftCenter`,children:L(Wt,{item:e,closePopover:i})})}),Kt=(0,_.observer)(({item:e})=>R(g.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:`right`,children:[R(g.EuiHideFor,{sizes:[`xs`],children:[L(g.EuiButton,{iconType:v.PlayRegular,size:`s`,onClick:e.play,children:`Play`}),L(g.EuiButton,{iconType:v.DismissRegular,size:`s`,onClick:e.remove,children:`Remove`})]}),L(Gt,{item:e})]})),qt=(0,_.observer)(({item:e})=>R(g.EuiTableRow,{isSelected:e.isCurrent,hasSelection:!0,hasActions:!0,children:[L(g.EuiTableRowCellCheckbox,{children:L(g.EuiCheckbox,{id:e.id.toString(),checked:e.isSelected,onChange:e.toggleSelected})}),L(g.EuiTableRowCell,{textOnly:!1,children:L(`img`,{src:S.get(e.type),width:16,height:16,alt:e.type})}),L(g.EuiTableRowCell,{mobileOptions:{header:!1,enlarge:!0,width:`100%`},children:L(g.EuiLink,{href:e.url,target:`_blank`,external:!0,children:e.title})}),L(Kt,{item:e})]})),Jt=(0,_.observer)(({playlist:e})=>L(b.ReactSortable,{tag:`tbody`,list:e.items,setList:t=>e.setItems(t),children:e.items.map(e=>L(qt,{item:e},e.id))})),Yt=(0,_.observer)(({playlist:e})=>R(g.EuiTable,{children:[L(Ut,{playlist:e}),L(Jt,{playlist:e})]})),Xt=(0,_.observer)(({playlist:e})=>{let{euiTheme:t}=(0,g.useEuiTheme)();return R(g.EuiPageTemplate.Section,{children:[L(Ht,{playlist:e}),L(g.EuiSpacer,{size:`l`,style:{position:`sticky`,top:88,zIndex:998,background:t.colors.backgroundBasePlain}}),e.isEmpty?L(I,{}):L(Yt,{playlist:e})]})}),Zt=y.default.create(({remove:e,resolve:t,playlistListItem:n})=>{let r=(0,g.useGeneratedHtmlId)({prefix:`modalForm`}),[i,a]=(0,l.useState)(n.name),[o,s]=(0,l.useState)(!1);return R(g.EuiModal,{onClose:e,initialFocus:`[name=name]`,children:[L(g.EuiModalHeader,{children:L(g.EuiModalHeaderTitle,{children:`Rename playlist`})}),L(g.EuiModalBody,{children:L(g.EuiForm,{id:r,component:`form`,onSubmit:async n=>{n.preventDefault();try{s(!0),t(i),e()}finally{s(!1)}},children:L(g.EuiFormRow,{label:`Name`,children:L(g.EuiFieldText,{name:`name`,value:i,onChange:e=>a(e.target.value)})})})}),R(g.EuiModalFooter,{children:[L(g.EuiButtonEmpty,{onClick:e,children:`Cancel`}),L(g.EuiButton,{type:`submit`,form:r,fill:!0,disabled:i.trim().length===0,isLoading:o,children:`Rename`})]})]})}),Q=class e{static nextId=1;id;isSelected=!1;constructor(t,n,r){this.playQueue=t,this.playlist=n,this.dto=r,(0,f.makeObservable)(this),this.id=e.nextId++}static fromDto(t,n,r){return new e(t,n,r)}get url(){return this.dto.url}get type(){return this.dto.type}get videoId(){return this.dto.videoId}get title(){return this.dto.title}get isCurrent(){return!1}get index(){return this.playlist.items.indexOf(this)}get isFirst(){return this.index===0}get isLast(){return this.index===this.playlist.items.length-1}get canMoveToTop(){return!this.isFirst}get canMoveToBottom(){return!this.isLast}get canRemoveToTop(){return!this.isFirst}get canRemoveOthers(){return this.playlist.hasMultipleItems}unselect(){this.isSelected=!1}select(){this.isSelected=!0}toggleSelected(){this.isSelected=!this.isSelected}play(){return this.playQueue.clearAndSetItems([this.playQueue.createItemFromDto(this.dto)]),Promise.resolve()}remove(){return this.playlist.removeItems([this])}playFirst(){return this.playQueue.playFirst([this.playQueue.createItemFromDto(this.dto)])}playNext(){return this.playQueue.playNext([this.playQueue.createItemFromDto(this.dto)])}addToPlayQueue(){return this.playQueue.addItems([this.playQueue.createItemFromDto(this.dto)])}moveToTop(){this.playlist.moveItem(this,0)}moveToBottom(){this.playlist.moveItem(this,this.playlist.items.length-1)}removeToTop(){return this.playlist.removeItemsAbove(this)}removeOthers(){return this.playlist.removeOtherItems(this)}};H([f.observable],Q.prototype,`isSelected`,void 0),H([f.computed],Q.prototype,`isCurrent`,null),H([f.computed],Q.prototype,`index`,null),H([f.computed],Q.prototype,`isFirst`,null),H([f.computed],Q.prototype,`isLast`,null),H([f.computed],Q.prototype,`canMoveToTop`,null),H([f.computed],Q.prototype,`canMoveToBottom`,null),H([f.computed],Q.prototype,`canRemoveToTop`,null),H([f.computed],Q.prototype,`canRemoveOthers`,null),H([f.action.bound],Q.prototype,`unselect`,null),H([f.action.bound],Q.prototype,`select`,null),H([f.action.bound],Q.prototype,`toggleSelected`,null),H([f.action.bound],Q.prototype,`play`,null),H([f.action.bound],Q.prototype,`remove`,null),H([f.action.bound],Q.prototype,`playFirst`,null),H([f.action.bound],Q.prototype,`playNext`,null),H([f.action.bound],Q.prototype,`addToPlayQueue`,null),H([f.action.bound],Q.prototype,`moveToTop`,null),H([f.action.bound],Q.prototype,`moveToBottom`,null),H([f.action.bound],Q.prototype,`removeToTop`,null),H([f.action.bound],Q.prototype,`removeOthers`,null);var Qt={type:`object`,properties:{version:{type:`string`,nullable:!0},items:{type:`array`,nullable:!0,items:Re}}},$t=class{constructor(e){this.playlist=e,(0,f.makeObservable)(this)}get state(){return{version:`1.0`,items:this.playlist.items.map(e=>e.dto)}}set state(e){this.playlist.items=e.items?.map(e=>this.playlist.createItemFromDto(e))??[]}validateState(e){return Ae(Qt,`PlaylistLocalStorageState`)(e)}};H([f.computed.struct],$t.prototype,`state`,null);var $=class{localStorageState;items=[];constructor(e){this.playQueue=e,(0,f.makeObservable)(this),this.localStorageState=new $t(this)}createItemFromDto(e){return Q.fromDto(this.playQueue,this,{url:e.url,type:e.type,videoId:e.videoId,title:e.title})}get isEmpty(){return this.items.length===0}get hasMultipleItems(){return this.items.length>1}get selectedItems(){return this.items.filter(e=>e.isSelected)}get allItemsSelected(){return this.selectedItems.length===this.items.length}get hasSelectedItems(){return this.selectedItems.length>0}get selectedItemsOrAllItems(){return this.hasSelectedItems?this.selectedItems:this.items}get canAddSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}get canPlaySelectedItemsNext(){return!this.isEmpty&&this.hasSelectedItems}get canRemoveSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}setItems(e){this.items=e}unselectAll(){for(let e of this.items)e.unselect()}selectAll(){for(let e of this.items)e.select()}async playSelectedItemsNext(){await this.playQueue.playNext(this.selectedItemsOrAllItems.map(e=>this.playQueue.createItemFromDto(e.dto))),this.unselectAll()}async addSelectedItems(){await this.playQueue.addItems(this.selectedItemsOrAllItems.map(e=>this.playQueue.createItemFromDto(e.dto))),this.unselectAll()}async addItems(e){this.items.push(...e)}moveItem(e,t){let n=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(t,0,n)}async removeItems(e){(0,m.pull)(this.items,...e)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){let t=e.id;return this.removeItems(this.items.filter(e=>e.id!==t))}async removeItemsAbove(e){let t=this.items.indexOf(e);return this.removeItems(this.items.filter((e,n)=>n<t))}addItemFromDto(e){let t=this.createItemFromDto(e);return this.addItems([t])}playAll(){return this.playQueue.clearAndSetItems(this.items.map(e=>this.playQueue.createItemFromDto(e.dto))),Promise.resolve()}};H([f.observable],$.prototype,`items`,void 0),H([f.computed],$.prototype,`isEmpty`,null),H([f.computed],$.prototype,`hasMultipleItems`,null),H([f.computed],$.prototype,`selectedItems`,null),H([f.computed],$.prototype,`allItemsSelected`,null),H([f.computed],$.prototype,`hasSelectedItems`,null),H([f.computed],$.prototype,`selectedItemsOrAllItems`,null),H([f.computed],$.prototype,`canAddSelectedItems`,null),H([f.computed],$.prototype,`canPlaySelectedItemsNext`,null),H([f.computed],$.prototype,`canRemoveSelectedItems`,null),H([f.action.bound],$.prototype,`setItems`,null),H([f.action.bound],$.prototype,`unselectAll`,null),H([f.action.bound],$.prototype,`selectAll`,null),H([f.action.bound],$.prototype,`playSelectedItemsNext`,null),H([f.action.bound],$.prototype,`addSelectedItems`,null),H([f.action.bound],$.prototype,`addItems`,null),H([f.action.bound],$.prototype,`moveItem`,null),H([f.action.bound],$.prototype,`removeItems`,null),H([f.action.bound],$.prototype,`removeSelectedItems`,null),H([f.action.bound],$.prototype,`removeOtherItems`,null),H([f.action.bound],$.prototype,`removeItemsAbove`,null),H([f.action.bound],$.prototype,`addItemFromDto`,null),H([f.action.bound],$.prototype,`playAll`,null);var en=({onClick:e})=>L(g.EuiButton,{onClick:e,iconType:v.PlayRegular,fill:!0,children:`Play all`}),tn=({playlistListItem:e,onFulfilled:t})=>L(g.EuiButton,{onClick:()=>y.default.show(Zt,{playlistListItem:e}).then(t),iconType:v.RenameRegular,children:`Rename`}),nn=({playlistListItem:e,onFulfilled:t})=>L(g.EuiButton,{onClick:()=>y.default.show(Rt,{playlistListItem:e}).then(t),iconType:v.DeleteRegular,children:`Delete`}),rn=(0,_.observer)(({playlistListItem:e})=>{let t=z.playlist(e.id),n=K(),[r]=(0,l.useState)(()=>new $(n));(0,p.useLocalStorageState)(t,r.localStorageState);let i=(0,x.useRouter)(),a=(0,l.useCallback)(async t=>{await e.rename(t)},[e]),o=(0,l.useCallback)(async()=>{await i.navigate({to:`/playlists`}),window.localStorage.removeItem(t),await e.remove()},[e,i,t]);return R(I,{children:[L(It,{pageTitle:e.name,breadcrumbs:[{text:`Playlists`,linkProps:{to:`/playlists`}},{text:e.name}],rightSideItems:[L(en,{onClick:r.playAll}),L(tn,{playlistListItem:e,onFulfilled:a}),L(nn,{playlistListItem:e,onFulfilled:o})]}),L(Xt,{playlist:r})]})}),an=y.default.create(({remove:e,resolve:t})=>{let n=(0,g.useGeneratedHtmlId)({prefix:`modalForm`}),[r,i]=(0,l.useState)(``),[a,o]=(0,l.useState)(!1);return R(g.EuiModal,{onClose:e,initialFocus:`[name=name]`,children:[L(g.EuiModalHeader,{children:L(g.EuiModalHeaderTitle,{children:`Create playlist`})}),L(g.EuiModalBody,{children:L(g.EuiForm,{id:n,component:`form`,onSubmit:async n=>{n.preventDefault();try{o(!0),t(r),e()}finally{o(!1)}},children:L(g.EuiFormRow,{label:`Name`,children:L(g.EuiFieldText,{name:`name`,value:r,onChange:e=>i(e.target.value)})})})}),R(g.EuiModalFooter,{children:[L(g.EuiButtonEmpty,{onClick:e,children:`Cancel`}),L(g.EuiButton,{type:`submit`,form:n,fill:!0,disabled:r.trim().length===0,isLoading:a,children:`Create playlist`})]})]})}),on=({children:e,onFulfilled:t})=>L(g.EuiButton,{onClick:()=>y.default.show(an).then(t),iconType:v.AddRegular,fill:!0,children:e}),sn=({linkProps:e,...t})=>{let n=(0,x.useRouter)(),r=async t=>{t.preventDefault(),await n.navigate(e)};return L(g.EuiLink,{...t,href:n.buildLocation(e).href,onClick:r})},cn=(0,_.observer)(({playlistList:e})=>L(g.EuiTableHeader,{children:L(g.EuiTableHeaderCell,{children:`Name`})})),ln=(0,_.observer)(({item:e})=>L(g.EuiTableRow,{children:L(g.EuiTableRowCell,{children:L(sn,{linkProps:{to:`/playlists/$playlistId`,params:{playlistId:e.id}},children:e.name})})},e.id)),un=(0,_.observer)(({playlistList:e})=>L(b.ReactSortable,{tag:`tbody`,list:e.items,setList:t=>e.setItems(t),children:e.items.map(e=>L(ln,{item:e},e.id))})),dn=(0,_.observer)(({playlistList:e})=>R(g.EuiTable,{children:[L(cn,{playlistList:e}),L(un,{playlistList:e})]})),fn=()=>L(It,{pageTitle:`Playlists`,breadcrumbs:[{text:`Playlists`}]}),pn=(0,_.observer)(({playlistList:e})=>{let t=(0,l.useCallback)(async t=>{await e.addItem(e.createItem(t))},[e]);return R(g.EuiPageTemplate.Section,{children:[L(on,{onFulfilled:t,children:`New playlist`}),L(g.EuiSpacer,{size:`l`}),L(dn,{playlistList:e})]})}),mn=(0,l.memo)(()=>{let e=We();return R(I,{children:[L(fn,{}),L(pn,{playlistList:e})]})});exports.BottomBar=yt,exports.HydrangeanDivaProvider=Je,exports.MediaPlayerLayout=Xe,exports.MiniPlayer=bt,exports.PlayQueueContext=G,exports.PlayQueuePage=Lt,exports.PlayQueueSection=Ft,exports.PlaylistDetailsPage=rn,exports.PlaylistListContext=Ue,exports.PlaylistListPage=mn,exports.RepeatMode=V,exports.bottomBarHeight=ee,exports.usePlayQueue=K,exports.usePlaylistList=We,exports.videoServiceIcons=S;
17
- //# sourceMappingURL=index.cjs.js.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@emotion/react/jsx-runtime"),a=require("react"),be=require("ajv"),n=require("mobx"),_=require("@aigamo/route-sphere"),N=require("lodash-es"),O=require("@aigamo/nostalgic-diva"),s=require("@elastic/eui"),p=require("mobx-react-lite"),d=require("@fluentui/react-icons"),R=require("ez-modal-react"),K=require("react-sortablejs"),W=require("@tanstack/react-router"),Y=81,H=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"})),ve=({components:t=[],children:e})=>o.jsx(o.Fragment,{children:t.reduceRight((r,l)=>o.jsx(l,{children:r}),e)}),$={playQueue:"PlayQueueStore",bottomBar:"BottomBarStore",playlistList:"PlaylistListStore",playlist:t=>`PlaylistStore/${t}`},ne=a.createContext(void 0),E=()=>a.useContext(ne),V=new be({coerceTypes:!0});function X(t,e){let r;if(r=V.getSchema(e),r===void 0&&(V.addSchema(t,e),r=V.getSchema(e)),r===void 0||r.schema!==t)throw new Error(`Invalid schema. Expected: '${JSON.stringify(t)}', but got '${JSON.stringify(r?.schema)}'.`);return r}var g=(t=>(t.Off="Off",t.All="All",t.One="One",t))(g||{}),ge=Object.defineProperty,Ie=Object.getOwnPropertyDescriptor,x=(t,e,r,l)=>{for(var i=l>1?void 0:l?Ie(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(l?u(e,r,i):u(i))||i);return l&&i&&ge(e,r,i),i};const fe={type:"object",properties:{repeat:{type:"string",enum:Object.values(g),nullable:!0},shuffle:{type:"boolean",nullable:!0}}};class ie{constructor(e){this.bottomBar=e,n.makeObservable(this)}get state(){return{repeat:this.bottomBar.repeat,shuffle:this.bottomBar.shuffle}}set state(e){this.bottomBar.repeat=e.repeat??g.Off,this.bottomBar.shuffle=e.shuffle??!1}validateState(e){return X(fe,"BottomBarLocalStorageState")(e)}}x([n.computed.struct],ie.prototype,"state",1);class b{constructor(e,r){this.player=e,this.playQueue=r,n.makeObservable(this),this.localStorageState=new ie(this)}localStorageState;repeat=g.Off;shuffle=!1;get controller(){return this.player.controller}get playing(){return this.player.playing}get percent(){return this.player.percent}get canSeek(){return!this.playQueue.isEmpty&&this.controller.supports("setCurrentTime")}get currentItem(){return this.playQueue.currentItem}get canToggleRepeat(){return!0}get canToggleShuffle(){return!1}get canPlay(){return this.playQueue.canPlay&&this.controller.supports("play")}get canPause(){return this.playQueue.canPause&&this.controller.supports("pause")}get canPrevious(){return!this.playQueue.isEmpty}get canNext(){return this.playQueue.hasNextItem}get canSkipBack10(){return this.canSeek}get canSkipForward30(){return this.canSeek}get canRemoveFromPlayQueue(){return!this.playQueue.isEmpty}setPercent(e){this.player.setPercent(e)}setSeeking(e){this.player.setSeeking(e)}toggleRepeat(){switch(this.repeat){case g.Off:this.repeat=g.All;break;case g.All:this.repeat=g.One;break;case g.One:this.repeat=g.Off;break}}toggleShuffle(){this.shuffle=!this.shuffle}play(){return this.controller.play()}pause(){return this.controller.pause()}async previous(){if(this.playQueue.hasPreviousItem){const e=await this.controller.getCurrentTime();e===void 0||e<5?await this.playQueue.previous():await this.controller.setCurrentTime(0)}else await this.controller.setCurrentTime(0)}next(){return this.playQueue.next()}async skipBack10(){const e=await this.controller.getCurrentTime();e!==void 0&&await this.controller.setCurrentTime(e-10)}async skipForward30(){const e=await this.controller.getCurrentTime();e!==void 0&&await this.controller.setCurrentTime(e+30)}async removeFromPlayQueue(){this.currentItem!==void 0&&await this.playQueue.removeItems([this.currentItem])}}x([n.observable],b.prototype,"repeat",2);x([n.observable],b.prototype,"shuffle",2);x([n.computed],b.prototype,"controller",1);x([n.computed],b.prototype,"playing",1);x([n.computed],b.prototype,"percent",1);x([n.computed],b.prototype,"canSeek",1);x([n.computed],b.prototype,"currentItem",1);x([n.computed],b.prototype,"canToggleRepeat",1);x([n.computed],b.prototype,"canToggleShuffle",1);x([n.computed],b.prototype,"canPlay",1);x([n.computed],b.prototype,"canPause",1);x([n.computed],b.prototype,"canPrevious",1);x([n.computed],b.prototype,"canNext",1);x([n.computed],b.prototype,"canSkipBack10",1);x([n.computed],b.prototype,"canSkipForward30",1);x([n.computed],b.prototype,"canRemoveFromPlayQueue",1);x([n.action.bound],b.prototype,"setPercent",1);x([n.action.bound],b.prototype,"setSeeking",1);x([n.action.bound],b.prototype,"toggleRepeat",1);x([n.action.bound],b.prototype,"toggleShuffle",1);x([n.action.bound],b.prototype,"play",1);x([n.action.bound],b.prototype,"pause",1);x([n.action.bound],b.prototype,"previous",1);x([n.action.bound],b.prototype,"next",1);x([n.action.bound],b.prototype,"skipBack10",1);x([n.action.bound],b.prototype,"skipForward30",1);x([n.action.bound],b.prototype,"removeFromPlayQueue",1);const Z=a.createContext(void 0),A=()=>a.useContext(Z),le=a.createContext(void 0),ae=()=>a.useContext(le),Se=({children:t})=>{const e=ae(),r=A(),[l]=a.useState(()=>new b(e,r));return _.useLocalStorageState($.bottomBar,l.localStorageState),o.jsx(ne.Provider,{value:l,children:t})},ce=a.createContext(void 0),je=()=>a.useContext(ce);var Pe=Object.defineProperty,Ce=Object.getOwnPropertyDescriptor,F=(t,e,r,l)=>{for(var i=l>1?void 0:l?Ce(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(l?u(e,r,i):u(i))||i);return l&&i&&Pe(e,r,i),i};class B{constructor(e,r,l){this.player=e,this.playQueue=r,this.bottomBar=l,n.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 g.One:await this.controller.setCurrentTime(0);break;case g.Off:case g.All:if(this.playQueue.isLastItem)switch(this.bottomBar.repeat){case g.Off:this.player.onEnded();break;case g.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)}}F([n.observable],B.prototype,"interacted",2);F([n.computed],B.prototype,"controller",1);F([n.computed],B.prototype,"currentItem",1);F([n.action.bound],B.prototype,"interact",1);F([n.action.bound],B.prototype,"onLoaded",1);F([n.action.bound],B.prototype,"onPlay",1);F([n.action.bound],B.prototype,"onPause",1);F([n.action.bound],B.prototype,"onEnded",1);F([n.action.bound],B.prototype,"onTimeUpdate",1);F([n.action.bound],B.prototype,"onControllerChange",1);const Ee=({children:t})=>{const e=ae(),r=A(),l=E(),[i]=a.useState(()=>new B(e,r,l));return o.jsx(ce.Provider,{value:i,children:t})},ue={type:"object",properties:{url:{type:"string"},type:{type:"string"},videoId:{type:"string"},title:{type:"string"}},required:["url","type","videoId","title"]},Te={type:"object",properties:{version:{type:"string",nullable:!0},repeat:{type:"string",enum:Object.values(g),nullable:!0},shuffle:{type:"boolean",nullable:!0},items:{type:"array",nullable:!0,items:ue},currentIndex:{type:"integer",nullable:!0}}};var we=Object.defineProperty,ke=Object.getOwnPropertyDescriptor,P=(t,e,r,l)=>{for(var i=l>1?void 0:l?ke(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(l?u(e,r,i):u(i))||i);return l&&i&&we(e,r,i),i};const S=class U{constructor(e,r){this.playQueue=e,this.dto=r,n.makeObservable(this),this.id=U.nextId++}static nextId=1;id;isSelected=!1;static fromDto(e,r){return new U(e,r)}get url(){return this.dto.url}get type(){return this.dto.type}get videoId(){return this.dto.videoId}get title(){return this.dto.title}get isCurrent(){return this.playQueue.currentItem===this}get index(){return this.playQueue.items.indexOf(this)}get isFirst(){return this.index===0}get isLast(){return this.index===this.playQueue.items.length-1}get canMoveToTop(){return!this.isFirst}get canMoveToBottom(){return!this.isLast}get canRemoveToTop(){return!this.isFirst}get canRemoveOthers(){return this.playQueue.hasMultipleItems}clone(){return this.playQueue.createItemFromDto(this.dto)}unselect(){this.isSelected=!1}select(){this.isSelected=!0}toggleSelected(){this.isSelected=!this.isSelected}play(){return this.playQueue.setCurrentItem(this),Promise.resolve()}remove(){return this.playQueue.removeItems([this])}playFirst(){return this.playQueue.playFirst([this.clone()])}playNext(){return this.playQueue.playNext([this.clone()])}addToPlayQueue(){return this.playQueue.addItems([this.clone()])}moveToTop(){this.playQueue.moveItem(this,0)}moveToBottom(){this.playQueue.moveItem(this,this.playQueue.items.length-1)}removeToTop(){return this.playQueue.removeItemsAbove(this)}removeOthers(){return this.playQueue.removeOtherItems(this)}};P([n.observable],S.prototype,"isSelected",2);P([n.computed],S.prototype,"isCurrent",1);P([n.computed],S.prototype,"index",1);P([n.computed],S.prototype,"isFirst",1);P([n.computed],S.prototype,"isLast",1);P([n.computed],S.prototype,"canMoveToTop",1);P([n.computed],S.prototype,"canMoveToBottom",1);P([n.computed],S.prototype,"canRemoveToTop",1);P([n.computed],S.prototype,"canRemoveOthers",1);P([n.action.bound],S.prototype,"unselect",1);P([n.action.bound],S.prototype,"select",1);P([n.action.bound],S.prototype,"toggleSelected",1);P([n.action.bound],S.prototype,"play",1);P([n.action.bound],S.prototype,"remove",1);P([n.action.bound],S.prototype,"playFirst",1);P([n.action.bound],S.prototype,"playNext",1);P([n.action.bound],S.prototype,"addToPlayQueue",1);P([n.action.bound],S.prototype,"moveToTop",1);P([n.action.bound],S.prototype,"moveToBottom",1);P([n.action.bound],S.prototype,"removeToTop",1);P([n.action.bound],S.prototype,"removeOthers",1);let Be=S;var Fe=Object.defineProperty,Oe=Object.getOwnPropertyDescriptor,m=(t,e,r,l)=>{for(var i=l>1?void 0:l?Oe(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(l?u(e,r,i):u(i))||i);return l&&i&&Fe(e,r,i),i};class de{constructor(e){this.playQueue=e,n.makeObservable(this)}get state(){return{version:"1.0",items:this.playQueue.items.map(e=>e.dto),currentIndex:this.playQueue.currentIndex}}set state(e){this.playQueue.items=e.items?.map(r=>this.playQueue.createItemFromDto(r))??[],this.playQueue.currentIndex=e.currentIndex}validateState(e){return X(Te,"PlayQueueDto")(e)}}m([n.computed.struct],de.prototype,"state",1);class h{localStorageState;items=[];currentId;constructor(){n.makeObservable(this),this.localStorageState=new de(this)}createItemFromDto(e){return Be.fromDto(this,{url:e.url,type:e.type,videoId:e.videoId,title:e.title})}get isEmpty(){return this.items.length===0}get canClear(){return!this.isEmpty}get currentItem(){return this.items.find(e=>e.id===this.currentId)}get canPlay(){return this.currentItem!==void 0}get canPause(){return this.currentItem!==void 0}get hasMultipleItems(){return this.items.length>1}get currentIndex(){return this.currentId!==void 0?this.items.findIndex(e=>e.id===this.currentId):void 0}set currentIndex(e){this.currentId=e!==void 0?this.items.at(e)?.id:void 0}get hasPreviousItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex>0}get hasNextItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex<this.items.length-1}get isLastItem(){return this.currentIndex!==void 0&&this.currentIndex===this.items.length-1}get selectedItems(){return this.items.filter(e=>e.isSelected)}get allItemsSelected(){return this.selectedItems.length===this.items.length}get hasSelectedItems(){return this.selectedItems.length>0}get selectedItemsOrAllItems(){return this.hasSelectedItems?this.selectedItems:this.items}get canAddSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}get canPlaySelectedItemsNext(){return!this.isEmpty&&this.hasSelectedItems}get canRemoveSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}setItems(e){this.items=e}clear(){this.currentIndex=void 0,this.items=[]}unselectAll(){for(const e of this.items)e.unselect()}selectAll(){for(const e of this.items)e.select()}setCurrentItem(e){this.currentId=e?.id}setNextItems(e){this.currentIndex!==void 0&&this.items.splice(this.currentIndex+1,0,...e)}clearAndSetItems(e){this.clear(),this.setCurrentItem(e[0]),this.setNextItems(e)}async playNext(e){if(this.isEmpty){this.clearAndSetItems(e);return}this.setNextItems(e)}async playSelectedItemsNext(){await this.playNext(this.selectedItemsOrAllItems.map(e=>e.clone())),this.unselectAll()}async addItems(e){if(this.isEmpty){this.clearAndSetItems(e);return}this.items.push(...e)}async addSelectedItems(){await this.addItems(this.selectedItemsOrAllItems.map(e=>e.clone())),this.unselectAll()}async playFirst(e){if(this.isEmpty){this.clearAndSetItems(e);return}const{currentIndex:r}=this;r!==void 0&&(this.items.splice(r,0,...e),this.currentIndex=r)}moveItem(e,r){const l=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(r,0,l)}async goToFirst(){this.currentIndex!==void 0&&(this.currentIndex=0)}async removeItems(e){const{currentItem:r}=this;N.pull(this.items,...e.filter(c=>c!==r));const{currentIndex:l,isLastItem:i}=this;N.pull(this.items,e.find(c=>c===r)),this.currentItem!==r&&(i?await this.goToFirst():this.currentIndex=l)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){const r=e.id;return this.removeItems(this.items.filter(l=>l.id!==r))}async removeItemsAbove(e){const r=this.items.indexOf(e);return this.removeItems(this.items.filter((l,i)=>i<r))}async previous(){this.currentIndex!==void 0&&this.hasPreviousItem&&this.currentIndex--}async next(){this.currentIndex!==void 0&&this.hasNextItem&&this.currentIndex++}addItemFromDto(e){const r=this.createItemFromDto(e);return this.addItems([r])}}m([n.observable],h.prototype,"items",2);m([n.observable],h.prototype,"currentId",2);m([n.computed],h.prototype,"isEmpty",1);m([n.computed],h.prototype,"canClear",1);m([n.computed],h.prototype,"currentItem",1);m([n.computed],h.prototype,"canPlay",1);m([n.computed],h.prototype,"canPause",1);m([n.computed],h.prototype,"hasMultipleItems",1);m([n.computed],h.prototype,"currentIndex",1);m([n.computed],h.prototype,"hasPreviousItem",1);m([n.computed],h.prototype,"hasNextItem",1);m([n.computed],h.prototype,"isLastItem",1);m([n.computed],h.prototype,"selectedItems",1);m([n.computed],h.prototype,"allItemsSelected",1);m([n.computed],h.prototype,"hasSelectedItems",1);m([n.computed],h.prototype,"selectedItemsOrAllItems",1);m([n.computed],h.prototype,"canAddSelectedItems",1);m([n.computed],h.prototype,"canPlaySelectedItemsNext",1);m([n.computed],h.prototype,"canRemoveSelectedItems",1);m([n.action.bound],h.prototype,"setItems",1);m([n.action.bound],h.prototype,"clear",1);m([n.action.bound],h.prototype,"unselectAll",1);m([n.action.bound],h.prototype,"selectAll",1);m([n.action.bound],h.prototype,"setCurrentItem",1);m([n.action.bound],h.prototype,"setNextItems",1);m([n.action.bound],h.prototype,"clearAndSetItems",1);m([n.action.bound],h.prototype,"playNext",1);m([n.action.bound],h.prototype,"playSelectedItemsNext",1);m([n.action.bound],h.prototype,"addItems",1);m([n.action.bound],h.prototype,"addSelectedItems",1);m([n.action.bound],h.prototype,"playFirst",1);m([n.action.bound],h.prototype,"moveItem",1);m([n.action.bound],h.prototype,"goToFirst",1);m([n.action.bound],h.prototype,"removeItems",1);m([n.action.bound],h.prototype,"removeSelectedItems",1);m([n.action.bound],h.prototype,"removeOtherItems",1);m([n.action.bound],h.prototype,"removeItemsAbove",1);m([n.action.bound],h.prototype,"previous",1);m([n.action.bound],h.prototype,"next",1);m([n.action.bound],h.prototype,"addItemFromDto",1);const Re=({children:t})=>{const[e]=a.useState(()=>new h);_.useLocalStorageState($.playQueue,e.localStorageState);const r=O.useNostalgicDiva();return a.useEffect(()=>n.reaction(()=>e.currentItem,async(l,i)=>{l===void 0||i===void 0||l.type===i.type&&l.videoId===i.videoId&&await r.setCurrentTime(0)}),[e,r]),o.jsx(Z.Provider,{value:e,children:t})};var Ae=Object.defineProperty,Me=Object.getOwnPropertyDescriptor,w=(t,e,r,l)=>{for(var i=l>1?void 0:l?Me(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(l?u(e,r,i):u(i))||i);return l&&i&&Ae(e,r,i),i};class T{controller=O.nullPlayerController;playing=!1;percent=0;seeking=!1;constructor(){n.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))}}w([n.observable],T.prototype,"controller",2);w([n.observable],T.prototype,"playing",2);w([n.observable],T.prototype,"percent",2);w([n.observable],T.prototype,"seeking",2);w([n.action.bound],T.prototype,"setPlaying",1);w([n.action.bound],T.prototype,"setPercent",1);w([n.action.bound],T.prototype,"setSeeking",1);w([n.action.bound],T.prototype,"onControllerChange",1);w([n.action.bound],T.prototype,"onPlay",1);w([n.action.bound],T.prototype,"onPause",1);w([n.action.bound],T.prototype,"onEnded",1);w([n.action.bound],T.prototype,"onTimeUpdate",1);const De=({children:t})=>{const[e]=a.useState(()=>new T);return o.jsx(le.Provider,{value:e,children:t})},ee=a.createContext(void 0),pe=()=>a.useContext(ee);var Qe=Object.defineProperty,ze=Object.getOwnPropertyDescriptor,q=(t,e,r,l)=>{for(var i=l>1?void 0:l?ze(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(l?u(e,r,i):u(i))||i);return l&&i&&Qe(e,r,i),i};class M{constructor(e,r,l){this.playlistList=e,n.makeObservable(this),this.id=r,this.name=l}id;name;async rename(e){this.name=e}remove(){return this.playlistList.removeItem(this)}}q([n.observable],M.prototype,"id",2);q([n.observable],M.prototype,"name",2);q([n.action.bound],M.prototype,"rename",1);q([n.action.bound],M.prototype,"remove",1);var Le=Object.defineProperty,Ne=Object.getOwnPropertyDescriptor,z=(t,e,r,l)=>{for(var i=l>1?void 0:l?Ne(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(l?u(e,r,i):u(i))||i);return l&&i&&Le(e,r,i),i};class me{constructor(e){this.playlistList=e,n.makeObservable(this)}get state(){return{items:this.playlistList.items.map(e=>({id:e.id,name:e.name}))}}set state(e){this.playlistList.items=e.items?.map(r=>new M(this.playlistList,r.id,r.name))??[]}validateState(e){return!0}}z([n.computed.struct],me.prototype,"state",1);class L{localStorageState;items=[];constructor(){n.makeObservable(this),this.localStorageState=new me(this)}createItem(e){return new M(this,crypto.randomUUID(),e)}setItems(e){this.items=e}async addItem(e){this.items.push(e)}async removeItem(e){N.pull(this.items,e)}}z([n.observable],L.prototype,"items",2);z([n.action.bound],L.prototype,"setItems",1);z([n.action.bound],L.prototype,"addItem",1);z([n.action.bound],L.prototype,"removeItem",1);const _e=({children:t})=>{const[e]=a.useState(()=>new L);return _.useLocalStorageState($.playlistList,e.localStorageState),o.jsx(ee.Provider,{value:e,children:t})},He=({children:t,nostalgicDivaProps:e})=>o.jsx(O.NostalgicDivaProvider,{...e,children:o.jsx(ve,{components:[De,Re,Se,Ee,_e],children:t})}),G={width:400,height:225},$e=p.observer(({children:t})=>{const e=A();return o.jsxs(s.EuiPageTemplate,{panelled:!0,style:{minBlockSize:`max(460px, 100vh - ${Y}px)`},children:[t,!e.isEmpty&&o.jsx(s.EuiSpacer,{style:{blockSize:G.height}})]})}),qe=p.observer(()=>{const t=E();return o.jsx(s.EuiButtonIcon,{title:`Shuffle: ${t.shuffle?"On":"Off"}`,"aria-label":`Shuffle: ${t.shuffle?"On":"Off"}`,iconType:t.shuffle?d.ArrowShuffleFilled:d.ArrowShuffleOffFilled,size:"s",iconSize:"l",onClick:t.toggleShuffle,disabled:!t.canToggleShuffle})}),Ve=p.observer(()=>{const t=E();return o.jsx(s.EuiButtonIcon,{title:"Previous","aria-label":"Previous",iconType:d.PreviousFilled,size:"s",iconSize:"l",onClick:t.previous,disabled:!t.canPrevious})}),Ue=p.observer(()=>{const t=E();return o.jsx(s.EuiButtonIcon,{title:"Skip back 10 seconds","aria-label":"Skip back 10 seconds",iconType:d.SkipBack10Regular,size:"s",iconSize:"l",onClick:t.skipBack10,disabled:!t.canSkipBack10})}),Ge=p.observer(()=>{const t=E();return o.jsx(s.EuiButtonIcon,{title:"Pause","aria-label":"Pause",iconType:d.PauseFilled,size:"s",iconSize:"l",onClick:t.pause,disabled:!t.canPause})}),Je=p.observer(()=>{const t=E();return o.jsx(s.EuiButtonIcon,{title:"Play","aria-label":"Play",iconType:d.PlayFilled,size:"s",iconSize:"l",onClick:t.play,disabled:!t.canPlay})}),Ke=p.observer(()=>{const t=E();return o.jsx(s.EuiButtonIcon,{title:"Skip forward 30 seconds","aria-label":"Skip forward 30 seconds",iconType:d.SkipForward30Regular,size:"s",iconSize:"l",onClick:t.skipForward30,disabled:!t.canSkipForward30})}),We=p.observer(()=>{const t=E();return o.jsx(s.EuiButtonIcon,{title:"Next","aria-label":"Next",iconType:d.NextFilled,size:"s",iconSize:"l",onClick:t.next,disabled:!t.canNext})}),he={[g.Off]:d.ArrowRepeatAllOffFilled,[g.All]:d.ArrowRepeatAllFilled,[g.One]:d.ArrowRepeat1Filled},Ye=p.observer(()=>{const t=E();return o.jsx(s.EuiButtonIcon,{title:`Repeat: ${t.repeat===g.All?"All":t.repeat===g.One?"One":"Off"}`,"aria-label":`Repeat: ${t.repeat===g.All?"All":t.repeat===g.One?"One":"Off"}`,iconType:he[t.repeat],size:"s",iconSize:"l",onClick:t.toggleRepeat,disabled:!t.canToggleRepeat})}),Xe=p.observer(()=>{const t=E();return o.jsxs(s.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o.jsx(s.EuiHideFor,{sizes:["xs"],children:o.jsx(qe,{})}),o.jsx(Ve,{}),o.jsx(s.EuiHideFor,{sizes:["xs"],children:o.jsx(Ue,{})}),t.playing?o.jsx(Ge,{}):o.jsx(Je,{}),o.jsx(s.EuiHideFor,{sizes:["xs"],children:o.jsx(Ke,{})}),o.jsx(We,{}),o.jsx(s.EuiHideFor,{sizes:["xs"],children:o.jsx(Ye,{})})]})}),Ze=a.memo(({item:t,closePopover:e})=>{const r=a.useCallback(({name:i,icon:c,onClick:u})=>({name:i,icon:c,onClick:async v=>{e(),u(v)}}),[e]),l=a.useMemo(()=>[{id:0,items:[r({name:"Open in new tab",icon:o.jsx(s.EuiIcon,{type:d.OpenRegular}),onClick:async()=>{window.open(t.dto.url,"_blank")}}),r({name:"Copy link address",icon:o.jsx(s.EuiIcon,{type:""}),onClick:async()=>{await navigator.clipboard.writeText(t.dto.url)}}),r({name:"Copy link text",icon:o.jsx(s.EuiIcon,{type:""}),onClick:async()=>{await navigator.clipboard.writeText(t.dto.title)}})]}],[r,t]);return o.jsx(s.EuiContextMenu,{initialPanelId:0,panels:l})}),et=a.memo(({item:t})=>{const[e,r]=a.useState(!1),l=a.useCallback(()=>r(!e),[e]),i=a.useCallback(()=>r(!1),[]);return o.jsx(s.EuiPopover,{button:o.jsx(s.EuiButtonEmpty,{iconType:H.get(t.type),size:"s",onClick:l,children:t.title}),isOpen:e,closePopover:i,panelPaddingSize:"none",anchorPosition:"upLeft",children:o.jsx(Ze,{item:t,closePopover:i})})}),tt=p.observer(()=>{const t=E();return o.jsx(s.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexStart",alignItems:"center",children:t.currentItem&&o.jsx(et,{item:t.currentItem})})}),ot=p.observer(()=>{const t=E();return o.jsx(s.EuiButtonIcon,{title:"Mute","aria-label":"Mute",iconType:d.Speaker2Regular,size:"s",iconSize:"l",disabled:!t.controller.supports("setMuted")})}),st=p.observer(({button:t,isOpen:e,closePopover:r})=>{const l=E(),[i,c]=a.useState("0"),u=O.useNostalgicDiva();a.useLayoutEffect(()=>{e&&u.getVolume().then(y=>{y!==void 0&&c(Math.floor(y*100).toString())})},[e,u]);const v=a.useCallback(async y=>{c(y.currentTarget.value),await u.setVolume(Number(y.currentTarget.value)/100)},[u]);return o.jsx(s.EuiPopover,{button:t,isOpen:e,closePopover:r,anchorPosition:"upRight",children:o.jsx(s.EuiFormRow,{children:o.jsxs(s.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o.jsx(ot,{}),o.jsx(s.EuiRange,{min:0,max:100,step:1,value:i,onChange:v,css:{blockSize:32},disabled:!l.controller.supports("setVolume")})]})})})}),rt=p.observer(()=>{const t=E(),[e,r]=a.useState(!1),l=()=>r(!e);return o.jsx(st,{button:o.jsx(s.EuiButtonIcon,{title:"Volume","aria-label":"Volume",iconType:d.Speaker2Regular,size:"s",iconSize:"l",onClick:l,disabled:!t.controller.supports("getVolume")}),isOpen:e,closePopover:()=>r(!1)})}),nt=({onClickPlayQueueButton:t})=>o.jsx(s.EuiButtonIcon,{title:"Play queue","aria-label":"Play queue",iconType:d.NavigationPlayRegular,size:"s",iconSize:"l",onClick:t}),it=p.observer(({closePopover:t})=>{const e=E(),r=O.useNostalgicDiva(),[l,i]=a.useState(),c=a.useCallback(async()=>{await e.controller.getPlaybackRate().then(y=>i(y))},[e]),u=a.useCallback(({name:y,icon:k,onClick:D,disabled:Q,className:se})=>({name:y,icon:k,onClick:async()=>{t(),D()},disabled:Q,className:se}),[t]),v=a.useMemo(()=>[{id:0,items:[{name:"Speed",icon:o.jsx(s.EuiIcon,{type:d.TopSpeedRegular}),panel:1,onClick:c,disabled:!e.controller.supports("getPlaybackRate")},u({name:"Skip back 10 seconds",icon:o.jsx(s.EuiIcon,{type:d.SkipBack10Regular}),onClick:e.skipBack10,disabled:!e.canSkipBack10}),u({name:"Skip forward 30 seconds",icon:o.jsx(s.EuiIcon,{type:d.SkipForward30Regular}),onClick:e.skipForward30,disabled:!e.canSkipForward30}),u({name:`Shuffle: ${e.shuffle?"On":"Off"}`,icon:o.jsx(s.EuiIcon,{type:e.shuffle?d.ArrowShuffleFilled:d.ArrowShuffleOffFilled}),onClick:e.toggleShuffle,disabled:!e.canToggleShuffle,className:"eui-showFor--xs--flex"}),u({name:`Repeat: ${e.repeat===g.All?"All":e.repeat===g.One?"One":"Off"}`,icon:o.jsx(s.EuiIcon,{type:he[e.repeat]}),onClick:e.toggleRepeat,disabled:!e.canToggleRepeat,className:"eui-showFor--xs--flex"}),{isSeparator:!0},u({name:"Remove from play queue",icon:o.jsx(s.EuiIcon,{type:d.DismissRegular}),onClick:e.removeFromPlayQueue,disabled:!e.canRemoveFromPlayQueue})]},{id:1,title:"Speed",items:[.25,.5,.75,1,1.25,1.5,1.75,2].map(y=>u({name:y.toString(),onClick:()=>r.setPlaybackRate(y),icon:y===l?"check":"empty",disabled:!e.controller.supports("setPlaybackRate")}))}],[e,u,c,r,l]);return o.jsx(s.EuiContextMenu,{initialPanelId:0,panels:v})}),lt=a.memo(({button:t,isOpen:e,closePopover:r})=>o.jsx(s.EuiPopover,{button:t,isOpen:e,closePopover:r,panelPaddingSize:"none",anchorPosition:"upRight",children:o.jsx(it,{closePopover:r})})),at=a.memo(()=>{const[t,e]=a.useState(!1),r=()=>e(!t);return o.jsx(lt,{button:o.jsx(s.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:d.MoreHorizontalFilled,size:"s",iconSize:"l",onClick:r}),isOpen:t,closePopover:()=>e(!1)})}),ct=a.memo(({onClickPlayQueueButton:t})=>o.jsxs(s.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexEnd",alignItems:"center",children:[o.jsx(rt,{}),t&&o.jsx(nt,{onClickPlayQueueButton:t}),o.jsx(at,{})]})),ut=p.observer(()=>{const t=E(),e=O.useNostalgicDiva(),r=a.useCallback(c=>{const u=Number(c.currentTarget.value)/100;t.setPercent(u)},[t]),l=a.useCallback(c=>{c.button===0&&t.setSeeking(!0)},[t]),i=a.useCallback(async c=>{if(c.button===0){const u=Number(c.currentTarget.value)/100;t.setSeeking(!1);const v=await e.getDuration();v!==void 0&&await e.setCurrentTime(v*u)}},[t,e]);return o.jsx(s.EuiRange,{min:0,max:100,step:1e-7,value:t.percent*100,onChange:r,onMouseDown:l,onMouseUp:i,fullWidth:!0,showRange:!0,css:{blockSize:32},disabled:!t.canSeek})}),dt=p.observer(({onClickPlayQueueButton:t})=>o.jsx(s.EuiBottomBar,{paddingSize:"s",children:o.jsxs(s.EuiFlexGroup,{direction:"column",gutterSize:"none",children:[o.jsx(s.EuiFlexItem,{children:o.jsx(ut,{})}),o.jsx(s.EuiFlexItem,{children:o.jsxs(s.EuiFlexGroup,{responsive:!1,children:[o.jsx(s.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o.jsx(tt,{})}),o.jsx(s.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o.jsx(Xe,{})}),o.jsx(s.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o.jsx(ct,{onClickPlayQueueButton:t})})]})})]})})),pt=p.observer(()=>{const t=je(),e=a.useMemo(()=>({onLoaded:t.onLoaded,onPlay:t.onPlay,onPause:t.onPause,onEnded:t.onEnded,onTimeUpdate:t.onTimeUpdate}),[t]);return a.useLayoutEffect(()=>(window.addEventListener("click",t.interact,{once:!0}),()=>{window.removeEventListener("click",t.interact)}),[t]),o.jsx("div",{css:{position:"fixed",right:0,bottom:Y,width:G.width,height:G.height,zIndex:998,backgroundColor:"rgb(39, 39, 39)",display:"flex",flexDirection:"column"},children:o.jsx("div",{css:{flexGrow:1,backgroundColor:"black"},children:t.currentItem&&o.jsx(O.NostalgicDiva,{src:t.currentItem.url,options:e,onControllerChange:t.onControllerChange})})})});function mt(t){return t!==null&&typeof t=="object"&&"title"in t&&typeof t.title=="string"}const ht=R.create(({remove:t,resolve:e})=>{const r=s.useGeneratedHtmlId({prefix:"modalForm"}),[l,i]=a.useState(""),[c,u]=a.useState(""),[v,y]=a.useState(!1);return o.jsxs(s.EuiModal,{onClose:t,initialFocus:"[name=url]",children:[o.jsx(s.EuiModalHeader,{children:o.jsx(s.EuiModalHeaderTitle,{children:"Add video"})}),o.jsx(s.EuiModalBody,{children:o.jsxs(s.EuiForm,{id:r,component:"form",onSubmit:async k=>{k.preventDefault();try{y(!0);const D=O.findVideoService(l);if(D===void 0)return;const Q=D.extractVideoId(l);if(Q===void 0)return;const re=await(await fetch(`https://noembed.com/embed?url=${encodeURIComponent(l)}`)).json();e({url:l,type:D.type,videoId:Q,title:c||(mt(re)?re.title:Q)}),t()}finally{y(!1)}},children:[o.jsx(s.EuiFormRow,{label:"URL",children:o.jsx(s.EuiFieldText,{name:"url",value:l,onChange:k=>i(k.target.value)})}),o.jsx(s.EuiFormRow,{label:"Title",children:o.jsx(s.EuiFieldText,{name:"title",value:c,onChange:k=>u(k.target.value)})})]})}),o.jsxs(s.EuiModalFooter,{children:[o.jsx(s.EuiButtonEmpty,{onClick:t,children:"Cancel"}),o.jsx(s.EuiButton,{type:"submit",form:r,fill:!0,disabled:l.trim().length===0,isLoading:v,children:"Add video"})]})]})}),te=a.memo(({onFulfilled:t})=>{const e=()=>R.show(ht).then(t);return o.jsx(s.EuiButton,{onClick:e,iconType:d.AddRegular,color:"primary",children:"Add video"})}),yt=p.observer(({playQueue:t})=>o.jsx(s.EuiButton,{iconType:d.AddRegular,onClick:t.addSelectedItems,disabled:!t.canAddSelectedItems,children:"Add to play queue"})),xt=p.observer(({playQueue:t,closePopover:e})=>{const r=a.useCallback(({name:i,icon:c,disabled:u,onClick:v})=>({name:i,icon:c,disabled:u,onClick:async y=>{e(),v(y)}}),[e]),l=a.useMemo(()=>[{id:0,items:[r({name:"Play next",icon:o.jsx(s.EuiIcon,{type:""}),disabled:!t.canPlaySelectedItemsNext,onClick:t.playSelectedItemsNext}),r({name:"Add to play queue",icon:o.jsx(s.EuiIcon,{type:d.AddRegular}),onClick:t.addSelectedItems,disabled:!t.canAddSelectedItems}),r({name:"Remove",icon:o.jsx(s.EuiIcon,{type:d.DismissRegular}),onClick:t.removeSelectedItems,disabled:!t.canRemoveSelectedItems}),r({name:"Clear",icon:o.jsx(s.EuiIcon,{type:d.DeleteRegular}),onClick:t.clear,disabled:!t.canClear})]}],[r,t]);return o.jsx(s.EuiContextMenu,{initialPanelId:0,panels:l})}),bt=a.memo(({playQueue:t})=>{const[e,r]=a.useState(!1),l=a.useCallback(()=>r(!e),[e]),i=a.useCallback(()=>r(!1),[]);return o.jsx(s.EuiPopover,{button:o.jsx(s.EuiButtonIcon,{display:"base",size:"m",iconType:d.MoreHorizontalFilled,onClick:l}),isOpen:e,closePopover:i,panelPaddingSize:"none",anchorPosition:"downLeft",children:o.jsx(xt,{playQueue:t,closePopover:i})})}),vt=p.observer(({playQueue:t})=>{const{euiTheme:e}=s.useEuiTheme();return o.jsxs(s.EuiFlexGroup,{alignItems:"center",gutterSize:"m",responsive:!1,style:{position:"sticky",top:48,zIndex:998,background:e.colors.backgroundBasePlain},children:[o.jsxs(s.EuiHideFor,{sizes:["xs"],children:[o.jsx(s.EuiFlexItem,{grow:!1,children:o.jsx(s.EuiButton,{disabled:!t.canPlaySelectedItemsNext,onClick:t.playSelectedItemsNext,children:"Play next"})}),o.jsx(s.EuiFlexItem,{grow:!1,children:o.jsx(yt,{playQueue:t})}),o.jsx(s.EuiFlexItem,{grow:!1,children:o.jsx(s.EuiButton,{iconType:d.DismissRegular,onClick:t.removeSelectedItems,disabled:!t.canRemoveSelectedItems,children:"Remove"})}),o.jsx(s.EuiFlexItem,{grow:!1,children:o.jsx(s.EuiButton,{iconType:d.DeleteRegular,onClick:t.clear,disabled:!t.canClear,children:"Clear"})})]}),o.jsx(s.EuiShowFor,{sizes:["xs"],children:o.jsx(bt,{playQueue:t})}),o.jsx(s.EuiFlexItem,{grow:!0}),o.jsx(s.EuiFlexItem,{grow:!1,children:o.jsx(te,{onFulfilled:t.addItemFromDto})})]})}),gt=p.observer(({playQueue:t})=>{const{euiTheme:e}=s.useEuiTheme();return o.jsxs(o.Fragment,{children:[o.jsx(s.EuiTableHeaderMobile,{children:o.jsx(s.EuiFlexGroup,{responsive:!1,justifyContent:"spaceBetween",alignItems:"baseline",children:o.jsx(s.EuiFlexItem,{grow:!1,children:o.jsx(s.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:r=>{r.target.checked?t.selectAll():t.unselectAll()}})})})}),o.jsxs(s.EuiTableHeader,{style:{position:"sticky",top:112,zIndex:998,background:e.colors.backgroundBasePlain},children:[o.jsx(s.EuiTableHeaderCellCheckbox,{children:o.jsx(s.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:r=>{r.target.checked?t.selectAll():t.unselectAll()}})}),o.jsx(s.EuiTableHeaderCell,{width:24}),o.jsx(s.EuiTableHeaderCell,{children:"Title"}),o.jsx(s.EuiTableHeaderCell,{})]})]})}),It=p.observer(({item:t,closePopover:e})=>{const r=a.useCallback(({name:i,icon:c,disabled:u,onClick:v,className:y})=>({name:i,icon:c,disabled:u,onClick:async k=>{e(),v(k)},className:y}),[e]),l=a.useMemo(()=>[{id:0,items:[r({name:"Play",icon:o.jsx(s.EuiIcon,{type:d.PlayRegular}),onClick:t.play,className:"eui-showFor--xs--flex"}),r({name:"Play first",icon:o.jsx(s.EuiIcon,{type:""}),onClick:t.playFirst}),r({name:"Play next",icon:o.jsx(s.EuiIcon,{type:""}),onClick:t.playNext}),r({name:"Add to play queue",icon:o.jsx(s.EuiIcon,{type:d.AddRegular}),onClick:t.addToPlayQueue}),{isSeparator:!0},r({name:"Move to the top",icon:o.jsx(s.EuiIcon,{type:d.ArrowUploadRegular}),onClick:t.moveToTop,disabled:!t.canMoveToTop}),r({name:"Move to the bottom",icon:o.jsx(s.EuiIcon,{type:d.ArrowDownloadRegular}),onClick:t.moveToBottom,disabled:!t.canMoveToBottom}),{isSeparator:!0},r({name:"Remove",icon:o.jsx(s.EuiIcon,{type:d.DismissRegular}),onClick:t.remove,className:"eui-showFor--xs--flex"}),r({name:"Remove to the top",icon:o.jsx(s.EuiIcon,{type:""}),onClick:t.removeToTop,disabled:!t.canRemoveToTop}),r({name:"Remove others",icon:o.jsx(s.EuiIcon,{type:""}),onClick:t.removeOthers,disabled:!t.canRemoveOthers})]}],[r,t]);return o.jsx(s.EuiContextMenu,{initialPanelId:0,panels:l})}),ft=a.memo(({item:t})=>{const[e,r]=a.useState(!1),l=a.useCallback(()=>r(!e),[e]),i=a.useCallback(()=>r(!1),[]);return o.jsx(s.EuiPopover,{button:o.jsx(s.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:d.MoreHorizontalFilled,size:"s",color:"text",onClick:l}),isOpen:e,closePopover:i,panelPaddingSize:"none",anchorPosition:"leftCenter",children:o.jsx(It,{item:t,closePopover:i})})}),St=p.observer(({item:t})=>{const e=O.useNostalgicDiva();return o.jsxs(s.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[o.jsxs(s.EuiHideFor,{sizes:["xs"],children:[o.jsx(s.EuiButton,{iconType:d.PlayRegular,size:"s",onClick:async()=>{t.isCurrent?await e.setCurrentTime(0):await t.play()},children:"Play"}),o.jsx(s.EuiButton,{iconType:d.DismissRegular,size:"s",onClick:t.remove,children:"Remove"})]}),o.jsx(ft,{item:t})]})}),jt=p.observer(({item:t})=>o.jsxs(s.EuiTableRow,{isSelected:t.isCurrent,hasSelection:!0,hasActions:!0,children:[o.jsx(s.EuiTableRowCellCheckbox,{children:o.jsx(s.EuiCheckbox,{id:t.id.toString(),checked:t.isSelected,onChange:t.toggleSelected})}),o.jsx(s.EuiTableRowCell,{textOnly:!1,children:o.jsx("img",{src:H.get(t.type),width:16,height:16,alt:t.type})}),o.jsx(s.EuiTableRowCell,{mobileOptions:{header:!1,enlarge:!0,width:"100%"},children:o.jsx(s.EuiLink,{href:t.url,target:"_blank",external:!0,children:t.title})}),o.jsx(St,{item:t})]})),Pt=p.observer(({playQueue:t})=>o.jsx(K.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>o.jsx(jt,{item:e},e.id))})),Ct=p.observer(({playQueue:t})=>o.jsxs(s.EuiTable,{children:[o.jsx(gt,{playQueue:t}),o.jsx(Pt,{playQueue:t})]})),ye=p.observer(({playQueue:t})=>{const{euiTheme:e}=s.useEuiTheme();return o.jsxs(s.EuiPageTemplate.Section,{children:[o.jsx(vt,{playQueue:t}),o.jsx(s.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:e.colors.backgroundBasePlain}}),t.isEmpty?o.jsx(s.EuiEmptyPrompt,{title:o.jsx("h2",{children:"We couldn't find any videos"}),body:o.jsx("p",{children:"Your video library doesn't contain any video content."}),actions:o.jsx(te,{onFulfilled:t.addItemFromDto})}):o.jsx(Ct,{playQueue:t})]})}),oe=({breadcrumbs:t,tabs:e,...r})=>{const l=W.useRouter();return o.jsx(s.EuiPageTemplate.Header,{...r,breadcrumbs:t?.map(({linkProps:i,...c})=>({...c,href:i===void 0?void 0:l.buildLocation(i).href,onClick:i===void 0?void 0:async u=>{u.preventDefault(),await l.navigate(i)}})),tabs:e?.map(({linkProps:i,...c})=>({...c,href:i===void 0?void 0:l.buildLocation(i).href,onClick:i===void 0?void 0:async u=>{u.preventDefault(),await l.navigate(i)}}))})},Et=()=>{const t=A();return o.jsxs(o.Fragment,{children:[o.jsx(oe,{pageTitle:"Play queue",rightSideItems:[]}),o.jsx(ye,{playQueue:t})]})},Tt=R.create(({remove:t,resolve:e,playlistListItem:r})=>{const[l,i]=a.useState(!1),c=a.useCallback(async()=>{try{i(!0),e(),t()}finally{i(!1)}},[e,t]);return o.jsx(s.EuiConfirmModal,{title:"Delete playlist permanently?",onCancel:t,onConfirm:c,cancelButtonText:"Cancel",confirmButtonText:"Delete",buttonColor:"danger",isLoading:l,children:o.jsxs("p",{children:["Are you sure you want to delete this playlist? If you delete '",r.name,"', you won't be able to recover it."]})})}),wt=p.observer(({playlist:t})=>o.jsx(s.EuiButton,{iconType:d.AddRegular,onClick:t.addSelectedItems,disabled:!t.canAddSelectedItems,children:"Add to play queue"})),kt=p.observer(({playlist:t,closePopover:e})=>{const r=a.useCallback(({name:i,icon:c,disabled:u,onClick:v})=>({name:i,icon:c,disabled:u,onClick:async y=>{e(),v(y)}}),[e]),l=a.useMemo(()=>[{id:0,items:[r({name:"Play next",icon:o.jsx(s.EuiIcon,{type:""}),disabled:!t.canPlaySelectedItemsNext,onClick:t.playSelectedItemsNext}),r({name:"Add to play queue",icon:o.jsx(s.EuiIcon,{type:d.AddRegular}),onClick:t.addSelectedItems,disabled:!t.canAddSelectedItems}),r({name:"Remove",icon:o.jsx(s.EuiIcon,{type:d.DismissRegular}),onClick:t.removeSelectedItems,disabled:!t.canRemoveSelectedItems})]}],[r,t]);return o.jsx(s.EuiContextMenu,{initialPanelId:0,panels:l})}),Bt=a.memo(({playlist:t})=>{const[e,r]=a.useState(!1),l=a.useCallback(()=>r(!e),[e]),i=a.useCallback(()=>r(!1),[]);return o.jsx(s.EuiPopover,{button:o.jsx(s.EuiButtonIcon,{display:"base",size:"m",iconType:d.MoreHorizontalFilled,onClick:l}),isOpen:e,closePopover:i,panelPaddingSize:"none",anchorPosition:"downLeft",children:o.jsx(kt,{playlist:t,closePopover:i})})}),Ft=p.observer(({playlist:t})=>{const{euiTheme:e}=s.useEuiTheme();return o.jsxs(s.EuiFlexGroup,{alignItems:"center",gutterSize:"m",responsive:!1,style:{position:"sticky",top:48,zIndex:998,background:e.colors.backgroundBasePlain},children:[o.jsxs(s.EuiHideFor,{sizes:["xs"],children:[o.jsx(s.EuiFlexItem,{grow:!1,children:o.jsx(s.EuiButton,{disabled:!t.canPlaySelectedItemsNext,onClick:t.playSelectedItemsNext,children:"Play next"})}),o.jsx(s.EuiFlexItem,{grow:!1,children:o.jsx(wt,{playlist:t})}),o.jsx(s.EuiFlexItem,{grow:!1,children:o.jsx(s.EuiButton,{iconType:d.DismissRegular,onClick:t.removeSelectedItems,disabled:!t.canRemoveSelectedItems,children:"Remove"})})]}),o.jsx(s.EuiShowFor,{sizes:["xs"],children:o.jsx(Bt,{playlist:t})}),o.jsx(s.EuiFlexItem,{grow:!0}),o.jsx(s.EuiFlexItem,{grow:!1,children:o.jsx(te,{onFulfilled:t.addItemFromDto})})]})}),Ot=p.observer(({playlist:t})=>o.jsxs(o.Fragment,{children:[o.jsx(s.EuiTableHeaderMobile,{children:o.jsx(s.EuiFlexGroup,{responsive:!1,justifyContent:"spaceBetween",alignItems:"baseline",children:o.jsx(s.EuiFlexItem,{grow:!1,children:o.jsx(s.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:e=>{e.target.checked?t.selectAll():t.unselectAll()}})})})}),o.jsxs(s.EuiTableHeader,{children:[o.jsx(s.EuiTableHeaderCellCheckbox,{children:o.jsx(s.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:e=>{e.target.checked?t.selectAll():t.unselectAll()}})}),o.jsx(s.EuiTableHeaderCell,{width:24}),o.jsx(s.EuiTableHeaderCell,{children:"Title"}),o.jsx(s.EuiTableHeaderCell,{})]})]})),Rt=a.memo(({item:t,closePopover:e})=>{const r=a.useCallback(({name:i,icon:c,disabled:u,onClick:v,className:y})=>({name:i,icon:c,disabled:u,onClick:async k=>{e(),v(k)},className:y}),[e]),l=a.useMemo(()=>[{id:0,items:[r({name:"Play",icon:o.jsx(s.EuiIcon,{type:d.PlayRegular}),onClick:t.play,className:"eui-showFor--xs--flex"}),r({name:"Play first",icon:o.jsx(s.EuiIcon,{type:""}),onClick:t.playFirst}),r({name:"Play next",icon:o.jsx(s.EuiIcon,{type:""}),onClick:t.playNext}),r({name:"Add to play queue",icon:o.jsx(s.EuiIcon,{type:d.AddRegular}),onClick:t.addToPlayQueue}),{isSeparator:!0},r({name:"Move to the top",icon:o.jsx(s.EuiIcon,{type:d.ArrowUploadRegular}),onClick:t.moveToTop,disabled:!t.canMoveToTop}),r({name:"Move to the bottom",icon:o.jsx(s.EuiIcon,{type:d.ArrowDownloadRegular}),onClick:t.moveToBottom,disabled:!t.canMoveToBottom}),{isSeparator:!0},r({name:"Remove",icon:o.jsx(s.EuiIcon,{type:d.DismissRegular}),onClick:t.remove,className:"eui-showFor--xs--flex"}),r({name:"Remove to the top",icon:o.jsx(s.EuiIcon,{type:""}),onClick:t.removeToTop,disabled:!t.canRemoveToTop}),r({name:"Remove others",icon:o.jsx(s.EuiIcon,{type:""}),onClick:t.removeOthers,disabled:!t.canRemoveOthers})]}],[r,t]);return o.jsx(s.EuiContextMenu,{initialPanelId:0,panels:l})}),At=a.memo(({item:t})=>{const[e,r]=a.useState(!1),l=a.useCallback(()=>r(!e),[e]),i=a.useCallback(()=>r(!1),[]);return o.jsx(s.EuiPopover,{button:o.jsx(s.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:d.MoreHorizontalFilled,size:"s",color:"text",onClick:l}),isOpen:e,closePopover:i,panelPaddingSize:"none",anchorPosition:"leftCenter",children:o.jsx(Rt,{item:t,closePopover:i})})}),Mt=p.observer(({item:t})=>o.jsxs(s.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[o.jsxs(s.EuiHideFor,{sizes:["xs"],children:[o.jsx(s.EuiButton,{iconType:d.PlayRegular,size:"s",onClick:t.play,children:"Play"}),o.jsx(s.EuiButton,{iconType:d.DismissRegular,size:"s",onClick:t.remove,children:"Remove"})]}),o.jsx(At,{item:t})]})),Dt=p.observer(({item:t})=>o.jsxs(s.EuiTableRow,{isSelected:t.isCurrent,hasSelection:!0,hasActions:!0,children:[o.jsx(s.EuiTableRowCellCheckbox,{children:o.jsx(s.EuiCheckbox,{id:t.id.toString(),checked:t.isSelected,onChange:t.toggleSelected})}),o.jsx(s.EuiTableRowCell,{textOnly:!1,children:o.jsx("img",{src:H.get(t.type),width:16,height:16,alt:t.type})}),o.jsx(s.EuiTableRowCell,{mobileOptions:{header:!1,enlarge:!0,width:"100%"},children:o.jsx(s.EuiLink,{href:t.url,target:"_blank",external:!0,children:t.title})}),o.jsx(Mt,{item:t})]})),Qt=p.observer(({playlist:t})=>o.jsx(K.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>o.jsx(Dt,{item:e},e.id))})),zt=p.observer(({playlist:t})=>o.jsxs(s.EuiTable,{children:[o.jsx(Ot,{playlist:t}),o.jsx(Qt,{playlist:t})]})),Lt=p.observer(({playlist:t})=>{const{euiTheme:e}=s.useEuiTheme();return o.jsxs(s.EuiPageTemplate.Section,{children:[o.jsx(Ft,{playlist:t}),o.jsx(s.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:e.colors.backgroundBasePlain}}),t.isEmpty?o.jsx(o.Fragment,{}):o.jsx(zt,{playlist:t})]})}),Nt=R.create(({remove:t,resolve:e,playlistListItem:r})=>{const l=s.useGeneratedHtmlId({prefix:"modalForm"}),[i,c]=a.useState(r.name),[u,v]=a.useState(!1);return o.jsxs(s.EuiModal,{onClose:t,initialFocus:"[name=name]",children:[o.jsx(s.EuiModalHeader,{children:o.jsx(s.EuiModalHeaderTitle,{children:"Rename playlist"})}),o.jsx(s.EuiModalBody,{children:o.jsx(s.EuiForm,{id:l,component:"form",onSubmit:async y=>{y.preventDefault();try{v(!0),e(i),t()}finally{v(!1)}},children:o.jsx(s.EuiFormRow,{label:"Name",children:o.jsx(s.EuiFieldText,{name:"name",value:i,onChange:y=>c(y.target.value)})})})}),o.jsxs(s.EuiModalFooter,{children:[o.jsx(s.EuiButtonEmpty,{onClick:t,children:"Cancel"}),o.jsx(s.EuiButton,{type:"submit",form:l,fill:!0,disabled:i.trim().length===0,isLoading:u,children:"Rename"})]})]})});var _t=Object.defineProperty,Ht=Object.getOwnPropertyDescriptor,C=(t,e,r,l)=>{for(var i=l>1?void 0:l?Ht(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(l?u(e,r,i):u(i))||i);return l&&i&&_t(e,r,i),i};const j=class J{constructor(e,r,l){this.playQueue=e,this.playlist=r,this.dto=l,n.makeObservable(this),this.id=J.nextId++}static nextId=1;id;isSelected=!1;static fromDto(e,r,l){return new J(e,r,l)}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)}};C([n.observable],j.prototype,"isSelected",2);C([n.computed],j.prototype,"isCurrent",1);C([n.computed],j.prototype,"index",1);C([n.computed],j.prototype,"isFirst",1);C([n.computed],j.prototype,"isLast",1);C([n.computed],j.prototype,"canMoveToTop",1);C([n.computed],j.prototype,"canMoveToBottom",1);C([n.computed],j.prototype,"canRemoveToTop",1);C([n.computed],j.prototype,"canRemoveOthers",1);C([n.action.bound],j.prototype,"unselect",1);C([n.action.bound],j.prototype,"select",1);C([n.action.bound],j.prototype,"toggleSelected",1);C([n.action.bound],j.prototype,"play",1);C([n.action.bound],j.prototype,"remove",1);C([n.action.bound],j.prototype,"playFirst",1);C([n.action.bound],j.prototype,"playNext",1);C([n.action.bound],j.prototype,"addToPlayQueue",1);C([n.action.bound],j.prototype,"moveToTop",1);C([n.action.bound],j.prototype,"moveToBottom",1);C([n.action.bound],j.prototype,"removeToTop",1);C([n.action.bound],j.prototype,"removeOthers",1);let $t=j;var qt=Object.defineProperty,Vt=Object.getOwnPropertyDescriptor,I=(t,e,r,l)=>{for(var i=l>1?void 0:l?Vt(e,r):e,c=t.length-1,u;c>=0;c--)(u=t[c])&&(i=(l?u(e,r,i):u(i))||i);return l&&i&&qt(e,r,i),i};const Ut={type:"object",properties:{version:{type:"string",nullable:!0},items:{type:"array",nullable:!0,items:ue}}};class xe{constructor(e){this.playlist=e,n.makeObservable(this)}get state(){return{version:"1.0",items:this.playlist.items.map(e=>e.dto)}}set state(e){this.playlist.items=e.items?.map(r=>this.playlist.createItemFromDto(r))??[]}validateState(e){return X(Ut,"PlaylistLocalStorageState")(e)}}I([n.computed.struct],xe.prototype,"state",1);class f{constructor(e){this.playQueue=e,n.makeObservable(this),this.localStorageState=new xe(this)}localStorageState;items=[];createItemFromDto(e){return $t.fromDto(this.playQueue,this,{url:e.url,type:e.type,videoId:e.videoId,title:e.title})}get isEmpty(){return this.items.length===0}get hasMultipleItems(){return this.items.length>1}get selectedItems(){return this.items.filter(e=>e.isSelected)}get allItemsSelected(){return this.selectedItems.length===this.items.length}get hasSelectedItems(){return this.selectedItems.length>0}get selectedItemsOrAllItems(){return this.hasSelectedItems?this.selectedItems:this.items}get canAddSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}get canPlaySelectedItemsNext(){return!this.isEmpty&&this.hasSelectedItems}get canRemoveSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}setItems(e){this.items=e}unselectAll(){for(const e of this.items)e.unselect()}selectAll(){for(const e of this.items)e.select()}async playSelectedItemsNext(){await this.playQueue.playNext(this.selectedItemsOrAllItems.map(e=>this.playQueue.createItemFromDto(e.dto))),this.unselectAll()}async addSelectedItems(){await this.playQueue.addItems(this.selectedItemsOrAllItems.map(e=>this.playQueue.createItemFromDto(e.dto))),this.unselectAll()}async addItems(e){this.items.push(...e)}moveItem(e,r){const l=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(r,0,l)}async removeItems(e){N.pull(this.items,...e)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){const r=e.id;return this.removeItems(this.items.filter(l=>l.id!==r))}async removeItemsAbove(e){const r=this.items.indexOf(e);return this.removeItems(this.items.filter((l,i)=>i<r))}addItemFromDto(e){const r=this.createItemFromDto(e);return this.addItems([r])}playAll(){return this.playQueue.clearAndSetItems(this.items.map(e=>this.playQueue.createItemFromDto(e.dto))),Promise.resolve()}}I([n.observable],f.prototype,"items",2);I([n.computed],f.prototype,"isEmpty",1);I([n.computed],f.prototype,"hasMultipleItems",1);I([n.computed],f.prototype,"selectedItems",1);I([n.computed],f.prototype,"allItemsSelected",1);I([n.computed],f.prototype,"hasSelectedItems",1);I([n.computed],f.prototype,"selectedItemsOrAllItems",1);I([n.computed],f.prototype,"canAddSelectedItems",1);I([n.computed],f.prototype,"canPlaySelectedItemsNext",1);I([n.computed],f.prototype,"canRemoveSelectedItems",1);I([n.action.bound],f.prototype,"setItems",1);I([n.action.bound],f.prototype,"unselectAll",1);I([n.action.bound],f.prototype,"selectAll",1);I([n.action.bound],f.prototype,"playSelectedItemsNext",1);I([n.action.bound],f.prototype,"addSelectedItems",1);I([n.action.bound],f.prototype,"addItems",1);I([n.action.bound],f.prototype,"moveItem",1);I([n.action.bound],f.prototype,"removeItems",1);I([n.action.bound],f.prototype,"removeSelectedItems",1);I([n.action.bound],f.prototype,"removeOtherItems",1);I([n.action.bound],f.prototype,"removeItemsAbove",1);I([n.action.bound],f.prototype,"addItemFromDto",1);I([n.action.bound],f.prototype,"playAll",1);const Gt=({onClick:t})=>o.jsx(s.EuiButton,{onClick:t,iconType:d.PlayRegular,fill:!0,children:"Play all"}),Jt=({playlistListItem:t,onFulfilled:e})=>{const r=()=>R.show(Nt,{playlistListItem:t}).then(e);return o.jsx(s.EuiButton,{onClick:r,iconType:d.RenameRegular,children:"Rename"})},Kt=({playlistListItem:t,onFulfilled:e})=>{const r=()=>R.show(Tt,{playlistListItem:t}).then(e);return o.jsx(s.EuiButton,{onClick:r,iconType:d.DeleteRegular,children:"Delete"})},Wt=p.observer(({playlistListItem:t})=>{const e=$.playlist(t.id),r=A(),[l]=a.useState(()=>new f(r));_.useLocalStorageState(e,l.localStorageState);const i=W.useRouter(),c=a.useCallback(async v=>{await t.rename(v)},[t]),u=a.useCallback(async()=>{await i.navigate({to:"/playlists"}),window.localStorage.removeItem(e),await t.remove()},[t,i,e]);return o.jsxs(o.Fragment,{children:[o.jsx(oe,{pageTitle:t.name,breadcrumbs:[{text:"Playlists",linkProps:{to:"/playlists"}},{text:t.name}],rightSideItems:[o.jsx(Gt,{onClick:l.playAll}),o.jsx(Jt,{playlistListItem:t,onFulfilled:c}),o.jsx(Kt,{playlistListItem:t,onFulfilled:u})]}),o.jsx(Lt,{playlist:l})]})}),Yt=R.create(({remove:t,resolve:e})=>{const r=s.useGeneratedHtmlId({prefix:"modalForm"}),[l,i]=a.useState(""),[c,u]=a.useState(!1);return o.jsxs(s.EuiModal,{onClose:t,initialFocus:"[name=name]",children:[o.jsx(s.EuiModalHeader,{children:o.jsx(s.EuiModalHeaderTitle,{children:"Create playlist"})}),o.jsx(s.EuiModalBody,{children:o.jsx(s.EuiForm,{id:r,component:"form",onSubmit:async v=>{v.preventDefault();try{u(!0),e(l),t()}finally{u(!1)}},children:o.jsx(s.EuiFormRow,{label:"Name",children:o.jsx(s.EuiFieldText,{name:"name",value:l,onChange:v=>i(v.target.value)})})})}),o.jsxs(s.EuiModalFooter,{children:[o.jsx(s.EuiButtonEmpty,{onClick:t,children:"Cancel"}),o.jsx(s.EuiButton,{type:"submit",form:r,fill:!0,disabled:l.trim().length===0,isLoading:c,children:"Create playlist"})]})]})}),Xt=({children:t,onFulfilled:e})=>{const r=()=>R.show(Yt).then(e);return o.jsx(s.EuiButton,{onClick:r,iconType:d.AddRegular,fill:!0,children:t})},Zt=({linkProps:t,...e})=>{const r=W.useRouter(),l=async i=>{i.preventDefault(),await r.navigate(t)};return o.jsx(s.EuiLink,{...e,href:r.buildLocation(t).href,onClick:l})},eo=p.observer(({playlistList:t})=>o.jsx(s.EuiTableHeader,{children:o.jsx(s.EuiTableHeaderCell,{children:"Name"})})),to=p.observer(({item:t})=>o.jsx(s.EuiTableRow,{children:o.jsx(s.EuiTableRowCell,{children:o.jsx(Zt,{linkProps:{to:"/playlists/$playlistId",params:{playlistId:t.id}},children:t.name})})},t.id)),oo=p.observer(({playlistList:t})=>o.jsx(K.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>o.jsx(to,{item:e},e.id))})),so=p.observer(({playlistList:t})=>o.jsxs(s.EuiTable,{children:[o.jsx(eo,{playlistList:t}),o.jsx(oo,{playlistList:t})]})),ro=()=>o.jsx(oe,{pageTitle:"Playlists",breadcrumbs:[{text:"Playlists"}]}),no=p.observer(({playlistList:t})=>{const e=a.useCallback(async r=>{await t.addItem(t.createItem(r))},[t]);return o.jsxs(s.EuiPageTemplate.Section,{children:[o.jsx(Xt,{onFulfilled:e,children:"New playlist"}),o.jsx(s.EuiSpacer,{size:"l"}),o.jsx(so,{playlistList:t})]})}),io=a.memo(()=>{const t=pe();return o.jsxs(o.Fragment,{children:[o.jsx(ro,{}),o.jsx(no,{playlistList:t})]})});exports.BottomBar=dt;exports.HydrangeanDivaProvider=He;exports.MediaPlayerLayout=$e;exports.MiniPlayer=pt;exports.PlayQueueContext=Z;exports.PlayQueuePage=Et;exports.PlayQueueSection=ye;exports.PlaylistDetailsPage=Wt;exports.PlaylistListContext=ee;exports.PlaylistListPage=io;exports.RepeatMode=g;exports.bottomBarHeight=Y;exports.usePlayQueue=A;exports.usePlaylistList=pe;exports.videoServiceIcons=H;
2
+ //# sourceMappingURL=index.cjs.js.map