@aigamo/hydrangean-diva 0.0.1-alpha.27 → 0.0.1-alpha.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/features/media-player.play-queue/components/DeveloperToolsButton.d.ts +2 -2
  2. package/dist/features/media-player.play-queue/components/PlayQueue.d.ts +2 -2
  3. package/dist/features/media-player.play-queue/components/PlayQueueProvider.d.ts +6 -0
  4. package/dist/features/media-player.play-queue/components/PlayQueueTable.d.ts +2 -2
  5. package/dist/features/media-player.play-queue.abstractions/contexts/PlayQueueContext.d.ts +3 -0
  6. package/dist/features/media-player.play-queue.abstractions/contexts/index.d.ts +1 -1
  7. package/dist/features/media-player.play-queue.abstractions/interfaces/IPlayQueueStore.d.ts +3 -1
  8. package/dist/features/media-player.player/components/PlayerProvider.d.ts +6 -0
  9. package/dist/features/media-player.player/components/bottom-bar/BottomBarCenterControls.d.ts +1 -6
  10. package/dist/features/media-player.player/components/bottom-bar/BottomBarLeftControls.d.ts +1 -6
  11. package/dist/features/media-player.player/components/bottom-bar/BottomBarProvider.d.ts +6 -0
  12. package/dist/features/media-player.player/components/bottom-bar/BottomBarRightControls.d.ts +1 -3
  13. package/dist/features/media-player.player/components/bottom-bar/SeekBar.d.ts +1 -6
  14. package/dist/features/media-player.player/components/mini-player/MiniPlayerProvider.d.ts +6 -0
  15. package/dist/features/media-player.player/contexts/BottomBarContext.d.ts +3 -0
  16. package/dist/features/media-player.player/contexts/MiniPlayerContext.d.ts +3 -0
  17. package/dist/features/media-player.player/contexts/PlayerContext.d.ts +3 -0
  18. package/dist/features/media-player.playlists/components/PlaylistTable.d.ts +2 -2
  19. package/dist/features/media-player.playlists/pages/PlaylistDetailsPage.d.ts +2 -4
  20. package/dist/features/media-player.playlists/stores/PlaylistItemStore.d.ts +2 -2
  21. package/dist/features/media-player.playlists/stores/PlaylistStore.d.ts +1 -1
  22. package/dist/index.cjs.js +8 -8
  23. package/dist/index.cjs.js.map +1 -1
  24. package/dist/index.es.js +1109 -1140
  25. package/dist/index.es.js.map +1 -1
  26. package/package.json +1 -1
  27. package/dist/features/media-player.play-queue/components/PlayQueueStoreProvider.d.ts +0 -6
  28. package/dist/features/media-player.play-queue.abstractions/contexts/PlayQueueStoreContext.d.ts +0 -3
  29. package/dist/features/media-player.player/components/PlayerStoreProvider.d.ts +0 -6
  30. package/dist/features/media-player.player/components/bottom-bar/BottomBarStoreProvider.d.ts +0 -6
  31. package/dist/features/media-player.player/components/mini-player/MiniPlayerStoreProvider.d.ts +0 -6
  32. package/dist/features/media-player.player/contexts/BottomBarStoreContext.d.ts +0 -3
  33. package/dist/features/media-player.player/contexts/MiniPlayerStoreContext.d.ts +0 -3
  34. package/dist/features/media-player.player/contexts/PlayerStoreContext.d.ts +0 -3
@@ -1,9 +1,9 @@
1
1
  import { PlayQueueStore } from '../stores/PlayQueueStore';
2
2
  import { ReactElement } from 'react';
3
3
  interface DeveloperToolsButtonProps {
4
- playQueueStore: PlayQueueStore;
4
+ playQueue: PlayQueueStore;
5
5
  }
6
- export declare const DeveloperToolsButton: (({ playQueueStore }: DeveloperToolsButtonProps) => ReactElement) & {
6
+ export declare const DeveloperToolsButton: (({ playQueue }: DeveloperToolsButtonProps) => ReactElement) & {
7
7
  displayName: string;
8
8
  };
9
9
  export {};
@@ -1,9 +1,9 @@
1
1
  import { IPlayQueueStore } from '../../media-player.play-queue.abstractions/interfaces/IPlayQueueStore';
2
2
  import { ReactElement } from 'react';
3
3
  interface PlayQueueProps {
4
- playQueueStore: IPlayQueueStore;
4
+ playQueue: IPlayQueueStore;
5
5
  }
6
- export declare const PlayQueue: (({ playQueueStore }: PlayQueueProps) => ReactElement) & {
6
+ export declare const PlayQueue: (({ playQueue }: PlayQueueProps) => ReactElement) & {
7
7
  displayName: string;
8
8
  };
9
9
  export {};
@@ -0,0 +1,6 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ interface PlayQueueProviderProps {
3
+ children?: ReactNode;
4
+ }
5
+ export declare const PlayQueueProvider: ({ children, }: PlayQueueProviderProps) => ReactElement;
6
+ export {};
@@ -1,9 +1,9 @@
1
1
  import { IPlayQueueStore } from '../../media-player.play-queue.abstractions/interfaces/IPlayQueueStore';
2
2
  import { ReactElement } from 'react';
3
3
  interface PlayQueueTableProps {
4
- playQueueStore: IPlayQueueStore;
4
+ playQueue: IPlayQueueStore;
5
5
  }
6
- export declare const PlayQueueTable: (({ playQueueStore }: PlayQueueTableProps) => ReactElement) & {
6
+ export declare const PlayQueueTable: (({ playQueue }: PlayQueueTableProps) => ReactElement) & {
7
7
  displayName: string;
8
8
  };
9
9
  export {};
@@ -0,0 +1,3 @@
1
+ import { IPlayQueueStore } from '../interfaces';
2
+ export declare const PlayQueueContext: import('react').Context<IPlayQueueStore>;
3
+ export declare const usePlayQueue: () => IPlayQueueStore;
@@ -1 +1 @@
1
- export * from './PlayQueueStoreContext';
1
+ export * from './PlayQueueContext';
@@ -1,7 +1,9 @@
1
1
  import { IPlayQueueItemStore } from './IPlayQueueItemStore';
2
+ import { PlayQueueDto } from './PlayQueueDto';
2
3
  import { PlayQueueItemDto } from './PlayQueueItemDto';
3
4
  import { RepeatMode } from './RepeatMode';
4
- export interface IPlayQueueStore {
5
+ import { LocalStorageStateStore } from '@aigamo/route-sphere';
6
+ export interface IPlayQueueStore extends LocalStorageStateStore<PlayQueueDto> {
5
7
  readonly interacted: boolean;
6
8
  readonly items: IPlayQueueItemStore[];
7
9
  readonly repeat: RepeatMode;
@@ -0,0 +1,6 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ interface PlayerProviderProps {
3
+ children?: ReactNode;
4
+ }
5
+ export declare const PlayerProvider: ({ children, }: PlayerProviderProps) => ReactElement;
6
+ export {};
@@ -1,9 +1,4 @@
1
- import { IBottomBarStore } from '../../interfaces/IBottomBarStore';
2
1
  import { ReactElement } from 'react';
3
- interface BottomBarCenterControlsProps {
4
- bottomBarStore: IBottomBarStore;
5
- }
6
- export declare const BottomBarCenterControls: (({ bottomBarStore }: BottomBarCenterControlsProps) => ReactElement) & {
2
+ export declare const BottomBarCenterControls: (() => ReactElement) & {
7
3
  displayName: string;
8
4
  };
9
- export {};
@@ -1,9 +1,4 @@
1
- import { IBottomBarStore } from '../../interfaces/IBottomBarStore';
2
1
  import { ReactElement } from 'react';
3
- interface BottomBarLeftControlsProps {
4
- bottomBarStore: IBottomBarStore;
5
- }
6
- export declare const BottomBarLeftControls: (({ bottomBarStore }: BottomBarLeftControlsProps) => ReactElement) & {
2
+ export declare const BottomBarLeftControls: (() => ReactElement) & {
7
3
  displayName: string;
8
4
  };
9
- export {};
@@ -0,0 +1,6 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ interface BottomBarProviderProps {
3
+ children?: ReactNode;
4
+ }
5
+ export declare const BottomBarProvider: ({ children, }: BottomBarProviderProps) => ReactElement;
6
+ export {};
@@ -1,8 +1,6 @@
1
- import { IBottomBarStore } from '../../interfaces/IBottomBarStore';
2
1
  import { MouseEventHandler, ReactElement } from 'react';
3
2
  interface BottomBarRightControlsProps {
4
- bottomBarStore: IBottomBarStore;
5
3
  onClickPlayQueueButton?: MouseEventHandler<HTMLButtonElement>;
6
4
  }
7
- export declare const BottomBarRightControls: import('react').MemoExoticComponent<({ bottomBarStore, onClickPlayQueueButton, }: BottomBarRightControlsProps) => ReactElement>;
5
+ export declare const BottomBarRightControls: import('react').MemoExoticComponent<({ onClickPlayQueueButton }: BottomBarRightControlsProps) => ReactElement>;
8
6
  export {};
@@ -1,9 +1,4 @@
1
- import { IBottomBarStore } from '../../interfaces/IBottomBarStore';
2
1
  import { ReactElement } from 'react';
3
- interface SeekBarProps {
4
- bottomBarStore: IBottomBarStore;
5
- }
6
- export declare const SeekBar: (({ bottomBarStore }: SeekBarProps) => ReactElement) & {
2
+ export declare const SeekBar: (() => ReactElement) & {
7
3
  displayName: string;
8
4
  };
9
- export {};
@@ -0,0 +1,6 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ interface MiniPlayerProviderProps {
3
+ children?: ReactNode;
4
+ }
5
+ export declare const MiniPlayerProvider: ({ children, }: MiniPlayerProviderProps) => ReactElement;
6
+ export {};
@@ -0,0 +1,3 @@
1
+ import { IBottomBarStore } from '../interfaces/IBottomBarStore';
2
+ export declare const BottomBarContext: import('react').Context<IBottomBarStore>;
3
+ export declare const useBottomBar: () => IBottomBarStore;
@@ -0,0 +1,3 @@
1
+ import { IMiniPlayerStore } from '../interfaces/IMiniPlayerStore';
2
+ export declare const MiniPlayerContext: import('react').Context<IMiniPlayerStore>;
3
+ export declare const useMiniPlayer: () => IMiniPlayerStore;
@@ -0,0 +1,3 @@
1
+ import { IPlayerStore } from '../interfaces/IPlayerStore';
2
+ export declare const PlayerContext: import('react').Context<IPlayerStore>;
3
+ export declare const usePlayer: () => IPlayerStore;
@@ -1,9 +1,9 @@
1
1
  import { PlaylistStore } from '../stores/PlaylistStore';
2
2
  import { ReactElement } from 'react';
3
3
  interface PlaylistTableProps {
4
- playlistStore: PlaylistStore;
4
+ playlist: PlaylistStore;
5
5
  }
6
- export declare const PlaylistTable: (({ playlistStore }: PlaylistTableProps) => ReactElement) & {
6
+ export declare const PlaylistTable: (({ playlist }: PlaylistTableProps) => ReactElement) & {
7
7
  displayName: string;
8
8
  };
9
9
  export {};
@@ -1,11 +1,9 @@
1
- import { HydrangeanDivaMediaPlayerContractsPlaylistsDtosPlaylistDto } from '../../../api';
2
1
  import { PlaylistStore } from '../stores/PlaylistStore';
3
2
  import { ReactElement } from 'react';
4
3
  interface PlaylistDetailsPageProps {
5
- playlist: HydrangeanDivaMediaPlayerContractsPlaylistsDtosPlaylistDto;
6
- playlistStore: PlaylistStore;
4
+ playlist: PlaylistStore;
7
5
  }
8
- export declare const PlaylistDetailsPage: (({ playlist, playlistStore }: PlaylistDetailsPageProps) => ReactElement) & {
6
+ export declare const PlaylistDetailsPage: (({ playlist }: PlaylistDetailsPageProps) => ReactElement) & {
9
7
  displayName: string;
10
8
  };
11
9
  export {};
@@ -3,12 +3,12 @@ import { IObservableStateProvider } from '../../common';
3
3
  import { PlaylistStore } from './PlaylistStore';
4
4
  import { PlayerType } from '@aigamo/nostalgic-diva';
5
5
  export declare class PlaylistItemStore {
6
- private readonly playlistStore;
6
+ private readonly playlist;
7
7
  private readonly dto;
8
8
  static nextId: number;
9
9
  readonly id: number;
10
10
  isSelected: boolean;
11
- constructor(observableStateProvider: IObservableStateProvider, playlistStore: PlaylistStore, dto: HydrangeanDivaMediaPlayerContractsPlaylistsDtosTrackDto);
11
+ constructor(observableStateProvider: IObservableStateProvider, playlist: PlaylistStore, dto: HydrangeanDivaMediaPlayerContractsPlaylistsDtosTrackDto);
12
12
  get url(): string;
13
13
  get type(): PlayerType;
14
14
  get videoId(): string;
@@ -8,7 +8,7 @@ export declare class PlaylistStore implements LocationStateStore<PlaylistLocatio
8
8
  private readonly playQueue;
9
9
  private readonly observableStateProvider;
10
10
  private readonly mediaPlayerPlaylistsApi;
11
- private readonly dto;
11
+ readonly dto: HydrangeanDivaMediaPlayerContractsPlaylistsDtosPlaylistDto;
12
12
  items: PlaylistItemStore[];
13
13
  loading: boolean;
14
14
  constructor(playQueue: IPlayQueueStore, observableStateProvider: IObservableStateProvider, mediaPlayerPlaylistsApi: MediaPlayerPlaylistsApi, dto: HydrangeanDivaMediaPlayerContractsPlaylistsDtosPlaylistDto);
package/dist/index.cjs.js CHANGED
@@ -1,15 +1,15 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("mobx"),h=require("react"),ur=require("@emotion/cache"),dr=require("ajv"),ht=require("lodash-es"),Y=require("@aigamo/nostalgic-diva"),c=require("@elastic/eui"),w=require("@fluentui/react-icons"),O=require("mobx-react-lite"),fr=require("react-sortablejs"),pr=require("@tanstack/react-router");function mr(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,i.get?i:{enumerable:!0,get:()=>t[r]})}}return e.default=t,Object.freeze(e)}const K=mr(h),Xe=81;class Pe{makeObservable(e,r){return l.makeObservable(e,r)}}class hr{makeObservable(e,r){return e}}var Fe={exports:{}},he={};var yt;function yr(){if(yt)return he;yt=1;var t=h,e=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,s={key:!0,ref:!0,__self:!0,__source:!0};function d(m,y,g){var E,I={},z=null,j=null;g!==void 0&&(z=""+g),y.key!==void 0&&(z=""+y.key),y.ref!==void 0&&(j=y.ref);for(E in y)i.call(y,E)&&!s.hasOwnProperty(E)&&(I[E]=y[E]);if(m&&m.defaultProps)for(E in y=m.defaultProps,y)I[E]===void 0&&(I[E]=y[E]);return{$$typeof:e,type:m,key:z,ref:j,props:I,_owner:a.current}}return he.Fragment=r,he.jsx=d,he.jsxs=d,he}var ye={};var vt;function vr(){return vt||(vt=1,process.env.NODE_ENV!=="production"&&(function(){var t=h,e=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),d=Symbol.for("react.provider"),m=Symbol.for("react.context"),y=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),E=Symbol.for("react.suspense_list"),I=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),j=Symbol.for("react.offscreen"),M=Symbol.iterator,U="@@iterator";function W(n){if(n===null||typeof n!="object")return null;var u=M&&n[M]||n[U];return typeof u=="function"?u:null}var L=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function k(n){{for(var u=arguments.length,p=new Array(u>1?u-1:0),b=1;b<u;b++)p[b-1]=arguments[b];D("error",n,p)}}function D(n,u,p){{var b=L.ReactDebugCurrentFrame,C=b.getStackAddendum();C!==""&&(u+="%s",p=p.concat([C]));var x=p.map(function(S){return String(S)});x.unshift("Warning: "+u),Function.prototype.apply.call(console[n],console,x)}}var A=!1,f=!1,Q=!1,se=!1,we=!1,Ie;Ie=Symbol.for("react.module.reference");function $e(n){return!!(typeof n=="string"||typeof n=="function"||n===i||n===s||we||n===a||n===g||n===E||se||n===j||A||f||Q||typeof n=="object"&&n!==null&&(n.$$typeof===z||n.$$typeof===I||n.$$typeof===d||n.$$typeof===m||n.$$typeof===y||n.$$typeof===Ie||n.getModuleId!==void 0))}function je(n,u,p){var b=n.displayName;if(b)return b;var C=u.displayName||u.name||"";return C!==""?p+"("+C+")":p}function Ce(n){return n.displayName||"Context"}function G(n){if(n==null)return null;if(typeof n.tag=="number"&&k("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case i:return"Fragment";case r:return"Portal";case s:return"Profiler";case a:return"StrictMode";case g:return"Suspense";case E:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case m:var u=n;return Ce(u)+".Consumer";case d:var p=n;return Ce(p._context)+".Provider";case y:return je(n,n.render,"ForwardRef");case I:var b=n.displayName||null;return b!==null?b:G(n.type)||"Memo";case z:{var C=n,x=C._payload,S=C._init;try{return G(S(x))}catch{return null}}}return null}var J=Object.assign,X=0,Te,Re,le,xe,ce,Oe,ke;function _e(){}_e.__reactDisabledLog=!0;function qe(){{if(X===0){Te=console.log,Re=console.info,le=console.warn,xe=console.error,ce=console.group,Oe=console.groupCollapsed,ke=console.groupEnd;var n={configurable:!0,enumerable:!0,value:_e,writable:!0};Object.defineProperties(console,{info:n,log:n,warn:n,error:n,group:n,groupCollapsed:n,groupEnd:n})}X++}}function ze(){{if(X--,X===0){var n={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:J({},n,{value:Te}),info:J({},n,{value:Re}),warn:J({},n,{value:le}),error:J({},n,{value:xe}),group:J({},n,{value:ce}),groupCollapsed:J({},n,{value:Oe}),groupEnd:J({},n,{value:ke})})}X<0&&k("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ue=L.ReactCurrentDispatcher,de;function re(n,u,p){{if(de===void 0)try{throw Error()}catch(C){var b=C.stack.trim().match(/\n( *(at )?)/);de=b&&b[1]||""}return`
2
- `+de+n}}var fe=!1,ne;{var Le=typeof WeakMap=="function"?WeakMap:Map;ne=new Le}function v(n,u){if(!n||fe)return"";{var p=ne.get(n);if(p!==void 0)return p}var b;fe=!0;var C=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var x;x=ue.current,ue.current=null,qe();try{if(u){var S=function(){throw Error()};if(Object.defineProperty(S.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(S,[])}catch(B){b=B}Reflect.construct(n,[],S)}else{try{S.call()}catch(B){b=B}n.call(S.prototype)}}else{try{throw Error()}catch(B){b=B}n()}}catch(B){if(B&&b&&typeof B.stack=="string"){for(var P=B.stack.split(`
3
- `),q=b.stack.split(`
4
- `),F=P.length-1,N=q.length-1;F>=1&&N>=0&&P[F]!==q[N];)N--;for(;F>=1&&N>=0;F--,N--)if(P[F]!==q[N]){if(F!==1||N!==1)do if(F--,N--,N<0||P[F]!==q[N]){var V=`
5
- `+P[F].replace(" at new "," at ");return n.displayName&&V.includes("<anonymous>")&&(V=V.replace("<anonymous>",n.displayName)),typeof n=="function"&&ne.set(n,V),V}while(F>=1&&N>=0);break}}}finally{fe=!1,ue.current=x,ze(),Error.prepareStackTrace=C}var oe=n?n.displayName||n.name:"",ee=oe?re(oe):"";return typeof n=="function"&&ne.set(n,ee),ee}function pe(n,u,p){return v(n,!1)}function ie(n){var u=n.prototype;return!!(u&&u.isReactComponent)}function Z(n,u,p){if(n==null)return"";if(typeof n=="function")return v(n,ie(n));if(typeof n=="string")return re(n);switch(n){case g:return re("Suspense");case E:return re("SuspenseList")}if(typeof n=="object")switch(n.$$typeof){case y:return pe(n.render);case I:return Z(n.type,u,p);case z:{var b=n,C=b._payload,x=b._init;try{return Z(x(C),u,p)}catch{}}}return""}var me=Object.prototype.hasOwnProperty,tt={},rt=L.ReactDebugCurrentFrame;function Ae(n){if(n){var u=n._owner,p=Z(n.type,n._source,u?u.type:null);rt.setExtraStackFrame(p)}else rt.setExtraStackFrame(null)}function Qt(n,u,p,b,C){{var x=Function.call.bind(me);for(var S in n)if(x(n,S)){var P=void 0;try{if(typeof n[S]!="function"){var q=Error((b||"React class")+": "+p+" type `"+S+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof n[S]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw q.name="Invariant Violation",q}P=n[S](u,S,b,p,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(F){P=F}P&&!(P instanceof Error)&&(Ae(C),k("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",b||"React class",p,S,typeof P),Ae(null)),P instanceof Error&&!(P.message in tt)&&(tt[P.message]=!0,Ae(C),k("Failed %s type: %s",p,P.message),Ae(null))}}}var Bt=Array.isArray;function Qe(n){return Bt(n)}function Ut(n){{var u=typeof Symbol=="function"&&Symbol.toStringTag,p=u&&n[Symbol.toStringTag]||n.constructor.name||"Object";return p}}function Vt(n){try{return nt(n),!1}catch{return!0}}function nt(n){return""+n}function it(n){if(Vt(n))return k("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Ut(n)),nt(n)}var at=L.ReactCurrentOwner,Yt={key:!0,ref:!0,__self:!0,__source:!0},ot,st;function Gt(n){if(me.call(n,"ref")){var u=Object.getOwnPropertyDescriptor(n,"ref").get;if(u&&u.isReactWarning)return!1}return n.ref!==void 0}function Ht(n){if(me.call(n,"key")){var u=Object.getOwnPropertyDescriptor(n,"key").get;if(u&&u.isReactWarning)return!1}return n.key!==void 0}function Wt(n,u){typeof n.ref=="string"&&at.current}function Jt(n,u){{var p=function(){ot||(ot=!0,k("%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)",u))};p.isReactWarning=!0,Object.defineProperty(n,"key",{get:p,configurable:!0})}}function Kt(n,u){{var p=function(){st||(st=!0,k("%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)",u))};p.isReactWarning=!0,Object.defineProperty(n,"ref",{get:p,configurable:!0})}}var Xt=function(n,u,p,b,C,x,S){var P={$$typeof:e,type:n,key:u,ref:p,props:S,_owner:x};return P._store={},Object.defineProperty(P._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(P,"_self",{configurable:!1,enumerable:!1,writable:!1,value:b}),Object.defineProperty(P,"_source",{configurable:!1,enumerable:!1,writable:!1,value:C}),Object.freeze&&(Object.freeze(P.props),Object.freeze(P)),P};function Zt(n,u,p,b,C){{var x,S={},P=null,q=null;p!==void 0&&(it(p),P=""+p),Ht(u)&&(it(u.key),P=""+u.key),Gt(u)&&(q=u.ref,Wt(u,C));for(x in u)me.call(u,x)&&!Yt.hasOwnProperty(x)&&(S[x]=u[x]);if(n&&n.defaultProps){var F=n.defaultProps;for(x in F)S[x]===void 0&&(S[x]=F[x])}if(P||q){var N=typeof n=="function"?n.displayName||n.name||"Unknown":n;P&&Jt(S,N),q&&Kt(S,N)}return Xt(n,P,q,C,b,at.current,S)}}var Be=L.ReactCurrentOwner,lt=L.ReactDebugCurrentFrame;function ae(n){if(n){var u=n._owner,p=Z(n.type,n._source,u?u.type:null);lt.setExtraStackFrame(p)}else lt.setExtraStackFrame(null)}var Ue;Ue=!1;function Ve(n){return typeof n=="object"&&n!==null&&n.$$typeof===e}function ct(){{if(Be.current){var n=G(Be.current.type);if(n)return`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("mobx"),h=require("react"),dr=require("@emotion/cache"),fr=require("ajv"),yt=require("lodash-es"),G=require("@aigamo/nostalgic-diva"),c=require("@elastic/eui"),w=require("@fluentui/react-icons"),O=require("mobx-react-lite"),mr=require("react-sortablejs"),pr=require("@tanstack/react-router");function hr(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,a.get?a:{enumerable:!0,get:()=>t[r]})}}return e.default=t,Object.freeze(e)}const X=hr(h),Ze=81;class Se{makeObservable(e,r){return l.makeObservable(e,r)}}class yr{makeObservable(e,r){return e}}var Me={exports:{}},ye={};var vt;function vr(){if(vt)return ye;vt=1;var t=h,e=Symbol.for("react.element"),r=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,i=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function d(p,y,g){var S,I={},z=null,$=null;g!==void 0&&(z=""+g),y.key!==void 0&&(z=""+y.key),y.ref!==void 0&&($=y.ref);for(S in y)a.call(y,S)&&!s.hasOwnProperty(S)&&(I[S]=y[S]);if(p&&p.defaultProps)for(S in y=p.defaultProps,y)I[S]===void 0&&(I[S]=y[S]);return{$$typeof:e,type:p,key:z,ref:$,props:I,_owner:i.current}}return ye.Fragment=r,ye.jsx=d,ye.jsxs=d,ye}var ve={};var gt;function gr(){return gt||(gt=1,process.env.NODE_ENV!=="production"&&(function(){var t=h,e=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),d=Symbol.for("react.provider"),p=Symbol.for("react.context"),y=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),S=Symbol.for("react.suspense_list"),I=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),$=Symbol.for("react.offscreen"),M=Symbol.iterator,V="@@iterator";function J(n){if(n===null||typeof n!="object")return null;var u=M&&n[M]||n[V];return typeof u=="function"?u:null}var L=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function k(n){{for(var u=arguments.length,m=new Array(u>1?u-1:0),b=1;b<u;b++)m[b-1]=arguments[b];D("error",n,m)}}function D(n,u,m){{var b=L.ReactDebugCurrentFrame,C=b.getStackAddendum();C!==""&&(u+="%s",m=m.concat([C]));var x=m.map(function(E){return String(E)});x.unshift("Warning: "+u),Function.prototype.apply.call(console[n],console,x)}}var A=!1,f=!1,Q=!1,le=!1,Ie=!1,Ce;Ce=Symbol.for("react.module.reference");function $e(n){return!!(typeof n=="string"||typeof n=="function"||n===a||n===s||Ie||n===i||n===g||n===S||le||n===$||A||f||Q||typeof n=="object"&&n!==null&&(n.$$typeof===z||n.$$typeof===I||n.$$typeof===d||n.$$typeof===p||n.$$typeof===y||n.$$typeof===Ce||n.getModuleId!==void 0))}function je(n,u,m){var b=n.displayName;if(b)return b;var C=u.displayName||u.name||"";return C!==""?m+"("+C+")":m}function Te(n){return n.displayName||"Context"}function H(n){if(n==null)return null;if(typeof n.tag=="number"&&k("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case a:return"Fragment";case r:return"Portal";case s:return"Profiler";case i:return"StrictMode";case g:return"Suspense";case S:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case p:var u=n;return Te(u)+".Consumer";case d:var m=n;return Te(m._context)+".Provider";case y:return je(n,n.render,"ForwardRef");case I:var b=n.displayName||null;return b!==null?b:H(n.type)||"Memo";case z:{var C=n,x=C._payload,E=C._init;try{return H(E(x))}catch{return null}}}return null}var K=Object.assign,Z=0,Re,xe,ce,Oe,ue,ke,_e;function Ae(){}Ae.__reactDisabledLog=!0;function qe(){{if(Z===0){Re=console.log,xe=console.info,ce=console.warn,Oe=console.error,ue=console.group,ke=console.groupCollapsed,_e=console.groupEnd;var n={configurable:!0,enumerable:!0,value:Ae,writable:!0};Object.defineProperties(console,{info:n,log:n,warn:n,error:n,group:n,groupCollapsed:n,groupEnd:n})}Z++}}function ze(){{if(Z--,Z===0){var n={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:K({},n,{value:Re}),info:K({},n,{value:xe}),warn:K({},n,{value:ce}),error:K({},n,{value:Oe}),group:K({},n,{value:ue}),groupCollapsed:K({},n,{value:ke}),groupEnd:K({},n,{value:_e})})}Z<0&&k("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var de=L.ReactCurrentDispatcher,fe;function ne(n,u,m){{if(fe===void 0)try{throw Error()}catch(C){var b=C.stack.trim().match(/\n( *(at )?)/);fe=b&&b[1]||""}return`
2
+ `+fe+n}}var me=!1,ae;{var Le=typeof WeakMap=="function"?WeakMap:Map;ae=new Le}function v(n,u){if(!n||me)return"";{var m=ae.get(n);if(m!==void 0)return m}var b;me=!0;var C=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var x;x=de.current,de.current=null,qe();try{if(u){var E=function(){throw Error()};if(Object.defineProperty(E.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(E,[])}catch(U){b=U}Reflect.construct(n,[],E)}else{try{E.call()}catch(U){b=U}n.call(E.prototype)}}else{try{throw Error()}catch(U){b=U}n()}}catch(U){if(U&&b&&typeof U.stack=="string"){for(var P=U.stack.split(`
3
+ `),j=b.stack.split(`
4
+ `),F=P.length-1,B=j.length-1;F>=1&&B>=0&&P[F]!==j[B];)B--;for(;F>=1&&B>=0;F--,B--)if(P[F]!==j[B]){if(F!==1||B!==1)do if(F--,B--,B<0||P[F]!==j[B]){var Y=`
5
+ `+P[F].replace(" at new "," at ");return n.displayName&&Y.includes("<anonymous>")&&(Y=Y.replace("<anonymous>",n.displayName)),typeof n=="function"&&ae.set(n,Y),Y}while(F>=1&&B>=0);break}}}finally{me=!1,de.current=x,ze(),Error.prepareStackTrace=C}var se=n?n.displayName||n.name:"",te=se?ne(se):"";return typeof n=="function"&&ae.set(n,te),te}function pe(n,u,m){return v(n,!1)}function ie(n){var u=n.prototype;return!!(u&&u.isReactComponent)}function ee(n,u,m){if(n==null)return"";if(typeof n=="function")return v(n,ie(n));if(typeof n=="string")return ne(n);switch(n){case g:return ne("Suspense");case S:return ne("SuspenseList")}if(typeof n=="object")switch(n.$$typeof){case y:return pe(n.render);case I:return ee(n.type,u,m);case z:{var b=n,C=b._payload,x=b._init;try{return ee(x(C),u,m)}catch{}}}return""}var he=Object.prototype.hasOwnProperty,rt={},nt=L.ReactDebugCurrentFrame;function Fe(n){if(n){var u=n._owner,m=ee(n.type,n._source,u?u.type:null);nt.setExtraStackFrame(m)}else nt.setExtraStackFrame(null)}function Qt(n,u,m,b,C){{var x=Function.call.bind(he);for(var E in n)if(x(n,E)){var P=void 0;try{if(typeof n[E]!="function"){var j=Error((b||"React class")+": "+m+" type `"+E+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof n[E]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw j.name="Invariant Violation",j}P=n[E](u,E,b,m,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(F){P=F}P&&!(P instanceof Error)&&(Fe(C),k("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",b||"React class",m,E,typeof P),Fe(null)),P instanceof Error&&!(P.message in rt)&&(rt[P.message]=!0,Fe(C),k("Failed %s type: %s",m,P.message),Fe(null))}}}var Ut=Array.isArray;function Qe(n){return Ut(n)}function Vt(n){{var u=typeof Symbol=="function"&&Symbol.toStringTag,m=u&&n[Symbol.toStringTag]||n.constructor.name||"Object";return m}}function Yt(n){try{return at(n),!1}catch{return!0}}function at(n){return""+n}function it(n){if(Yt(n))return k("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Vt(n)),at(n)}var ot=L.ReactCurrentOwner,Gt={key:!0,ref:!0,__self:!0,__source:!0},st,lt;function Ht(n){if(he.call(n,"ref")){var u=Object.getOwnPropertyDescriptor(n,"ref").get;if(u&&u.isReactWarning)return!1}return n.ref!==void 0}function Wt(n){if(he.call(n,"key")){var u=Object.getOwnPropertyDescriptor(n,"key").get;if(u&&u.isReactWarning)return!1}return n.key!==void 0}function Jt(n,u){typeof n.ref=="string"&&ot.current}function Kt(n,u){{var m=function(){st||(st=!0,k("%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)",u))};m.isReactWarning=!0,Object.defineProperty(n,"key",{get:m,configurable:!0})}}function Xt(n,u){{var m=function(){lt||(lt=!0,k("%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)",u))};m.isReactWarning=!0,Object.defineProperty(n,"ref",{get:m,configurable:!0})}}var Zt=function(n,u,m,b,C,x,E){var P={$$typeof:e,type:n,key:u,ref:m,props:E,_owner:x};return P._store={},Object.defineProperty(P._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(P,"_self",{configurable:!1,enumerable:!1,writable:!1,value:b}),Object.defineProperty(P,"_source",{configurable:!1,enumerable:!1,writable:!1,value:C}),Object.freeze&&(Object.freeze(P.props),Object.freeze(P)),P};function er(n,u,m,b,C){{var x,E={},P=null,j=null;m!==void 0&&(it(m),P=""+m),Wt(u)&&(it(u.key),P=""+u.key),Ht(u)&&(j=u.ref,Jt(u,C));for(x in u)he.call(u,x)&&!Gt.hasOwnProperty(x)&&(E[x]=u[x]);if(n&&n.defaultProps){var F=n.defaultProps;for(x in F)E[x]===void 0&&(E[x]=F[x])}if(P||j){var B=typeof n=="function"?n.displayName||n.name||"Unknown":n;P&&Kt(E,B),j&&Xt(E,B)}return Zt(n,P,j,C,b,ot.current,E)}}var Ue=L.ReactCurrentOwner,ct=L.ReactDebugCurrentFrame;function oe(n){if(n){var u=n._owner,m=ee(n.type,n._source,u?u.type:null);ct.setExtraStackFrame(m)}else ct.setExtraStackFrame(null)}var Ve;Ve=!1;function Ye(n){return typeof n=="object"&&n!==null&&n.$$typeof===e}function ut(){{if(Ue.current){var n=H(Ue.current.type);if(n)return`
6
6
 
7
- Check the render method of \``+n+"`."}return""}}function er(n){return""}var ut={};function tr(n){{var u=ct();if(!u){var p=typeof n=="string"?n:n.displayName||n.name;p&&(u=`
7
+ Check the render method of \``+n+"`."}return""}}function tr(n){return""}var dt={};function rr(n){{var u=ut();if(!u){var m=typeof n=="string"?n:n.displayName||n.name;m&&(u=`
8
8
 
9
- Check the top-level render call using <`+p+">.")}return u}}function dt(n,u){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var p=tr(u);if(ut[p])return;ut[p]=!0;var b="";n&&n._owner&&n._owner!==Be.current&&(b=" It was passed a child from "+G(n._owner.type)+"."),ae(n),k('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',p,b),ae(null)}}function ft(n,u){{if(typeof n!="object")return;if(Qe(n))for(var p=0;p<n.length;p++){var b=n[p];Ve(b)&&dt(b,u)}else if(Ve(n))n._store&&(n._store.validated=!0);else if(n){var C=W(n);if(typeof C=="function"&&C!==n.entries)for(var x=C.call(n),S;!(S=x.next()).done;)Ve(S.value)&&dt(S.value,u)}}}function rr(n){{var u=n.type;if(u==null||typeof u=="string")return;var p;if(typeof u=="function")p=u.propTypes;else if(typeof u=="object"&&(u.$$typeof===y||u.$$typeof===I))p=u.propTypes;else return;if(p){var b=G(u);Qt(p,n.props,"prop",b,n)}else if(u.PropTypes!==void 0&&!Ue){Ue=!0;var C=G(u);k("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",C||"Unknown")}typeof u.getDefaultProps=="function"&&!u.getDefaultProps.isReactClassApproved&&k("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function nr(n){{for(var u=Object.keys(n.props),p=0;p<u.length;p++){var b=u[p];if(b!=="children"&&b!=="key"){ae(n),k("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",b),ae(null);break}}n.ref!==null&&(ae(n),k("Invalid attribute `ref` supplied to `React.Fragment`."),ae(null))}}var pt={};function mt(n,u,p,b,C,x){{var S=$e(n);if(!S){var P="";(n===void 0||typeof n=="object"&&n!==null&&Object.keys(n).length===0)&&(P+=" 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 q=er();q?P+=q:P+=ct();var F;n===null?F="null":Qe(n)?F="array":n!==void 0&&n.$$typeof===e?(F="<"+(G(n.type)||"Unknown")+" />",P=" Did you accidentally export a JSX literal instead of a component?"):F=typeof n,k("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",F,P)}var N=Zt(n,u,p,C,x);if(N==null)return N;if(S){var V=u.children;if(V!==void 0)if(b)if(Qe(V)){for(var oe=0;oe<V.length;oe++)ft(V[oe],n);Object.freeze&&Object.freeze(V)}else k("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 ft(V,n)}if(me.call(u,"key")){var ee=G(n),B=Object.keys(u).filter(function(cr){return cr!=="key"}),Ye=B.length>0?"{key: someKey, "+B.join(": ..., ")+": ...}":"{key: someKey}";if(!pt[ee+Ye]){var lr=B.length>0?"{"+B.join(": ..., ")+": ...}":"{}";k(`A props object containing a "key" prop is being spread into JSX:
9
+ Check the top-level render call using <`+m+">.")}return u}}function ft(n,u){{if(!n._store||n._store.validated||n.key!=null)return;n._store.validated=!0;var m=rr(u);if(dt[m])return;dt[m]=!0;var b="";n&&n._owner&&n._owner!==Ue.current&&(b=" It was passed a child from "+H(n._owner.type)+"."),oe(n),k('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',m,b),oe(null)}}function mt(n,u){{if(typeof n!="object")return;if(Qe(n))for(var m=0;m<n.length;m++){var b=n[m];Ye(b)&&ft(b,u)}else if(Ye(n))n._store&&(n._store.validated=!0);else if(n){var C=J(n);if(typeof C=="function"&&C!==n.entries)for(var x=C.call(n),E;!(E=x.next()).done;)Ye(E.value)&&ft(E.value,u)}}}function nr(n){{var u=n.type;if(u==null||typeof u=="string")return;var m;if(typeof u=="function")m=u.propTypes;else if(typeof u=="object"&&(u.$$typeof===y||u.$$typeof===I))m=u.propTypes;else return;if(m){var b=H(u);Qt(m,n.props,"prop",b,n)}else if(u.PropTypes!==void 0&&!Ve){Ve=!0;var C=H(u);k("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",C||"Unknown")}typeof u.getDefaultProps=="function"&&!u.getDefaultProps.isReactClassApproved&&k("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function ar(n){{for(var u=Object.keys(n.props),m=0;m<u.length;m++){var b=u[m];if(b!=="children"&&b!=="key"){oe(n),k("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",b),oe(null);break}}n.ref!==null&&(oe(n),k("Invalid attribute `ref` supplied to `React.Fragment`."),oe(null))}}var pt={};function ht(n,u,m,b,C,x){{var E=$e(n);if(!E){var P="";(n===void 0||typeof n=="object"&&n!==null&&Object.keys(n).length===0)&&(P+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var j=tr();j?P+=j:P+=ut();var F;n===null?F="null":Qe(n)?F="array":n!==void 0&&n.$$typeof===e?(F="<"+(H(n.type)||"Unknown")+" />",P=" Did you accidentally export a JSX literal instead of a component?"):F=typeof n,k("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",F,P)}var B=er(n,u,m,C,x);if(B==null)return B;if(E){var Y=u.children;if(Y!==void 0)if(b)if(Qe(Y)){for(var se=0;se<Y.length;se++)mt(Y[se],n);Object.freeze&&Object.freeze(Y)}else k("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 mt(Y,n)}if(he.call(u,"key")){var te=H(n),U=Object.keys(u).filter(function(ur){return ur!=="key"}),Ge=U.length>0?"{key: someKey, "+U.join(": ..., ")+": ...}":"{key: someKey}";if(!pt[te+Ge]){var cr=U.length>0?"{"+U.join(": ..., ")+": ...}":"{}";k(`A props object containing a "key" prop is being spread into JSX:
10
10
  let props = %s;
11
11
  <%s {...props} />
12
12
  React keys must be passed directly to JSX without using spread:
13
13
  let props = %s;
14
- <%s key={someKey} {...props} />`,Ye,ee,lr,ee),pt[ee+Ye]=!0}}return n===i?nr(N):rr(N),N}}function ir(n,u,p){return mt(n,u,p,!0)}function ar(n,u,p){return mt(n,u,p,!1)}var or=ar,sr=ir;ye.Fragment=i,ye.jsx=or,ye.jsxs=sr})()),ye}var gt;function gr(){return gt||(gt=1,process.env.NODE_ENV==="production"?Fe.exports=yr():Fe.exports=vr()),Fe.exports}var ge=gr(),Me={exports:{}},T={};var bt;function br(){if(bt)return T;bt=1;var t=typeof Symbol=="function"&&Symbol.for,e=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,s=t?Symbol.for("react.profiler"):60114,d=t?Symbol.for("react.provider"):60109,m=t?Symbol.for("react.context"):60110,y=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,E=t?Symbol.for("react.forward_ref"):60112,I=t?Symbol.for("react.suspense"):60113,z=t?Symbol.for("react.suspense_list"):60120,j=t?Symbol.for("react.memo"):60115,M=t?Symbol.for("react.lazy"):60116,U=t?Symbol.for("react.block"):60121,W=t?Symbol.for("react.fundamental"):60117,L=t?Symbol.for("react.responder"):60118,k=t?Symbol.for("react.scope"):60119;function D(f){if(typeof f=="object"&&f!==null){var Q=f.$$typeof;switch(Q){case e:switch(f=f.type,f){case y:case g:case i:case s:case a:case I:return f;default:switch(f=f&&f.$$typeof,f){case m:case E:case M:case j:case d:return f;default:return Q}}case r:return Q}}}function A(f){return D(f)===g}return T.AsyncMode=y,T.ConcurrentMode=g,T.ContextConsumer=m,T.ContextProvider=d,T.Element=e,T.ForwardRef=E,T.Fragment=i,T.Lazy=M,T.Memo=j,T.Portal=r,T.Profiler=s,T.StrictMode=a,T.Suspense=I,T.isAsyncMode=function(f){return A(f)||D(f)===y},T.isConcurrentMode=A,T.isContextConsumer=function(f){return D(f)===m},T.isContextProvider=function(f){return D(f)===d},T.isElement=function(f){return typeof f=="object"&&f!==null&&f.$$typeof===e},T.isForwardRef=function(f){return D(f)===E},T.isFragment=function(f){return D(f)===i},T.isLazy=function(f){return D(f)===M},T.isMemo=function(f){return D(f)===j},T.isPortal=function(f){return D(f)===r},T.isProfiler=function(f){return D(f)===s},T.isStrictMode=function(f){return D(f)===a},T.isSuspense=function(f){return D(f)===I},T.isValidElementType=function(f){return typeof f=="string"||typeof f=="function"||f===i||f===g||f===s||f===a||f===I||f===z||typeof f=="object"&&f!==null&&(f.$$typeof===M||f.$$typeof===j||f.$$typeof===d||f.$$typeof===m||f.$$typeof===E||f.$$typeof===W||f.$$typeof===L||f.$$typeof===k||f.$$typeof===U)},T.typeOf=D,T}var R={};var Pt;function Pr(){return Pt||(Pt=1,process.env.NODE_ENV!=="production"&&(function(){var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,r=t?Symbol.for("react.portal"):60106,i=t?Symbol.for("react.fragment"):60107,a=t?Symbol.for("react.strict_mode"):60108,s=t?Symbol.for("react.profiler"):60114,d=t?Symbol.for("react.provider"):60109,m=t?Symbol.for("react.context"):60110,y=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,E=t?Symbol.for("react.forward_ref"):60112,I=t?Symbol.for("react.suspense"):60113,z=t?Symbol.for("react.suspense_list"):60120,j=t?Symbol.for("react.memo"):60115,M=t?Symbol.for("react.lazy"):60116,U=t?Symbol.for("react.block"):60121,W=t?Symbol.for("react.fundamental"):60117,L=t?Symbol.for("react.responder"):60118,k=t?Symbol.for("react.scope"):60119;function D(v){return typeof v=="string"||typeof v=="function"||v===i||v===g||v===s||v===a||v===I||v===z||typeof v=="object"&&v!==null&&(v.$$typeof===M||v.$$typeof===j||v.$$typeof===d||v.$$typeof===m||v.$$typeof===E||v.$$typeof===W||v.$$typeof===L||v.$$typeof===k||v.$$typeof===U)}function A(v){if(typeof v=="object"&&v!==null){var pe=v.$$typeof;switch(pe){case e:var ie=v.type;switch(ie){case y:case g:case i:case s:case a:case I:return ie;default:var Z=ie&&ie.$$typeof;switch(Z){case m:case E:case M:case j:case d:return Z;default:return pe}}case r:return pe}}}var f=y,Q=g,se=m,we=d,Ie=e,$e=E,je=i,Ce=M,G=j,J=r,X=s,Te=a,Re=I,le=!1;function xe(v){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.")),ce(v)||A(v)===y}function ce(v){return A(v)===g}function Oe(v){return A(v)===m}function ke(v){return A(v)===d}function _e(v){return typeof v=="object"&&v!==null&&v.$$typeof===e}function qe(v){return A(v)===E}function ze(v){return A(v)===i}function ue(v){return A(v)===M}function de(v){return A(v)===j}function re(v){return A(v)===r}function fe(v){return A(v)===s}function ne(v){return A(v)===a}function Le(v){return A(v)===I}R.AsyncMode=f,R.ConcurrentMode=Q,R.ContextConsumer=se,R.ContextProvider=we,R.Element=Ie,R.ForwardRef=$e,R.Fragment=je,R.Lazy=Ce,R.Memo=G,R.Portal=J,R.Profiler=X,R.StrictMode=Te,R.Suspense=Re,R.isAsyncMode=xe,R.isConcurrentMode=ce,R.isContextConsumer=Oe,R.isContextProvider=ke,R.isElement=_e,R.isForwardRef=qe,R.isFragment=ze,R.isLazy=ue,R.isMemo=de,R.isPortal=re,R.isProfiler=fe,R.isStrictMode=ne,R.isSuspense=Le,R.isValidElementType=D,R.typeOf=A})()),R}var Et;function Er(){return Et||(Et=1,process.env.NODE_ENV==="production"?Me.exports=br():Me.exports=Pr()),Me.exports}var Ge,St;function Sr(){if(St)return Ge;St=1;var t=Er(),e={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},r={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};s[t.ForwardRef]=i,s[t.Memo]=a;function d(M){return t.isMemo(M)?a:s[M.$$typeof]||e}var m=Object.defineProperty,y=Object.getOwnPropertyNames,g=Object.getOwnPropertySymbols,E=Object.getOwnPropertyDescriptor,I=Object.getPrototypeOf,z=Object.prototype;function j(M,U,W){if(typeof U!="string"){if(z){var L=I(U);L&&L!==z&&j(M,L,W)}var k=y(U);g&&(k=k.concat(g(U)));for(var D=d(M),A=d(U),f=0;f<k.length;++f){var Q=k[f];if(!r[Q]&&!(W&&W[Q])&&!(A&&A[Q])&&!(D&&D[Q])){var se=E(U,Q);try{m(M,Q,se)}catch{}}}}return M}return Ge=j,Ge}Sr();var wr=!0;function Ir(t,e,r){var i="";return r.split(" ").forEach(function(a){t[a]!==void 0?e.push(t[a]+";"):a&&(i+=a+" ")}),i}var Rt=function(e,r,i){var a=e.key+"-"+r.name;(i===!1||wr===!1)&&e.registered[a]===void 0&&(e.registered[a]=r.styles)},Cr=function(e,r,i){Rt(e,r,i);var a=e.key+"-"+r.name;if(e.inserted[r.name]===void 0){var s=r;do e.insert(r===s?"."+a:"",s,e.sheet,!0),s=s.next;while(s!==void 0)}};function Tr(t){for(var e=0,r,i=0,a=t.length;a>=4;++i,a-=4)r=t.charCodeAt(i)&255|(t.charCodeAt(++i)&255)<<8|(t.charCodeAt(++i)&255)<<16|(t.charCodeAt(++i)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,e=(r&65535)*1540483477+((r>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(a){case 3:e^=(t.charCodeAt(i+2)&255)<<16;case 2:e^=(t.charCodeAt(i+1)&255)<<8;case 1:e^=t.charCodeAt(i)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}var Rr={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function xr(t){var e=Object.create(null);return function(r){return e[r]===void 0&&(e[r]=t(r)),e[r]}}var Or=/[A-Z]|^ms/g,kr=/_EMO_([^_]+?)_([^]*?)_EMO_/g,xt=function(e){return e.charCodeAt(1)===45},wt=function(e){return e!=null&&typeof e!="boolean"},He=xr(function(t){return xt(t)?t:t.replace(Or,"-$&").toLowerCase()}),It=function(e,r){switch(e){case"animation":case"animationName":if(typeof r=="string")return r.replace(kr,function(i,a,s){return H={name:a,styles:s,next:H},a})}return Rr[e]!==1&&!xt(e)&&typeof r=="number"&&r!==0?r+"px":r};function be(t,e,r){if(r==null)return"";var i=r;if(i.__emotion_styles!==void 0)return i;switch(typeof r){case"boolean":return"";case"object":{var a=r;if(a.anim===1)return H={name:a.name,styles:a.styles,next:H},a.name;var s=r;if(s.styles!==void 0){var d=s.next;if(d!==void 0)for(;d!==void 0;)H={name:d.name,styles:d.styles,next:H},d=d.next;var m=s.styles+";";return m}return _r(t,e,r)}case"function":{if(t!==void 0){var y=H,g=r(t);return H=y,be(t,e,g)}break}}var E=r;return E}function _r(t,e,r){var i="";if(Array.isArray(r))for(var a=0;a<r.length;a++)i+=be(t,e,r[a])+";";else for(var s in r){var d=r[s];if(typeof d!="object"){var m=d;wt(m)&&(i+=He(s)+":"+It(s,m)+";")}else if(Array.isArray(d)&&typeof d[0]=="string"&&e==null)for(var y=0;y<d.length;y++)wt(d[y])&&(i+=He(s)+":"+It(s,d[y])+";");else{var g=be(t,e,d);switch(s){case"animation":case"animationName":{i+=He(s)+":"+g+";";break}default:i+=s+"{"+g+"}"}}}return i}var Ct=/label:\s*([^\s;{]+)\s*(;|$)/g,H;function Ar(t,e,r){if(t.length===1&&typeof t[0]=="object"&&t[0]!==null&&t[0].styles!==void 0)return t[0];var i=!0,a="";H=void 0;var s=t[0];if(s==null||s.raw===void 0)i=!1,a+=be(r,e,s);else{var d=s;a+=d[0]}for(var m=1;m<t.length;m++)if(a+=be(r,e,t[m]),i){var y=s;a+=y[m]}Ct.lastIndex=0;for(var g="",E;(E=Ct.exec(a))!==null;)g+="-"+E[1];var I=Tr(a)+g;return{name:I,styles:a,next:H}}var Fr=function(e){return e()},Mr=K.useInsertionEffect?K.useInsertionEffect:!1,Dr=Mr||Fr,Ot=K.createContext(typeof HTMLElement<"u"?ur({key:"css"}):null);Ot.Provider;var Nr=function(e){return h.forwardRef(function(r,i){var a=h.useContext(Ot);return e(r,a,i)})},$r=K.createContext({}),Ne={}.hasOwnProperty,Je="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",kt=function(e,r){var i={};for(var a in r)Ne.call(r,a)&&(i[a]=r[a]);return i[Je]=e,i},jr=function(e){var r=e.cache,i=e.serialized,a=e.isStringTag;return Rt(r,i,a),Dr(function(){return Cr(r,i,a)}),null},qr=Nr(function(t,e,r){var i=t.css;typeof i=="string"&&e.registered[i]!==void 0&&(i=e.registered[i]);var a=t[Je],s=[i],d="";typeof t.className=="string"?d=Ir(e.registered,s,t.className):t.className!=null&&(d=t.className+" ");var m=Ar(s,void 0,K.useContext($r));d+=e.key+"-"+m.name;var y={};for(var g in t)Ne.call(t,g)&&g!=="css"&&g!==Je&&(y[g]=t[g]);return y.className=d,r&&(y.ref=r),K.createElement(K.Fragment,null,K.createElement(jr,{cache:e,serialized:m,isStringTag:typeof a=="string"}),K.createElement(a,y))}),_t=qr,Ee=ge.Fragment,o=function(e,r,i){return Ne.call(r,"css")?ge.jsx(_t,kt(e,r),i):ge.jsx(e,r,i)},$=function(e,r,i){return Ne.call(r,"css")?ge.jsxs(_t,kt(e,r),i):ge.jsxs(e,r,i)};const zr=({components:t=[],children:e})=>o(Ee,{children:t.reduceRight((r,i)=>o(i,{children:r}),e)}),Ze=h.createContext(void 0),Se=()=>h.useContext(Ze),We=new dr({coerceTypes:!0});function Lr(t,e){let r;if(r=We.getSchema(e),r===void 0&&(We.addSchema(t,e),r=We.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}const Qr={type:"object",properties:{url:{type:"string"},type:{type:"string"},videoId:{type:"string"},title:{type:"string"}},required:["url","type","videoId","title"]};var _=(t=>(t.Off="Off",t.All="All",t.One="One",t))(_||{});const Br={type:"object",properties:{version:{type:"string",nullable:!0},repeat:{type:"string",enum:Object.values(_),nullable:!0},shuffle:{type:"boolean",nullable:!0},items:{type:"array",nullable:!0,items:Qr},currentIndex:{type:"integer",nullable:!0}}};class De{constructor(e,r,i){this.observableStateProvider=e,this.playQueue=r,this.dto=i,this.id=De.nextId++,e.makeObservable(this,{isSelected:l.observable,isCurrent:l.computed,index:l.computed,isFirst:l.computed,isLast:l.computed,canMoveToTop:l.computed,canMoveToBottom:l.computed,canRemoveToTop:l.computed,canRemoveOthers:l.computed,unselect:l.action,select:l.action,toggleSelected:l.action.bound,play:l.action,remove:l.action.bound,playFirst:l.action.bound,playNext:l.action.bound,addToPlayQueue:l.action.bound,moveToTop:l.action.bound,moveToBottom:l.action.bound,removeToTop:l.action.bound,removeOthers:l.action.bound})}static nextId=1;id;isSelected=!1;static fromDto(e,r,i){return new De(e,r,i)}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.createItem(this.dto)}unselect(){this.isSelected=!1}select(){this.isSelected=!0}toggleSelected(){this.isSelected=!this.isSelected}play(){this.playQueue.setCurrentItem(this)}remove(){return this.playQueue.removeItems([this])}async playFirst(){await this.playQueue.playFirst([this.clone()])}async playNext(){await this.playQueue.playNext([this.clone()])}async addToPlayQueue(){await 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)}}class Ur{constructor(e){this.observableStateProvider=e,e.makeObservable(this,{interacted:l.observable,items:l.observable,currentId:l.observable,repeat:l.observable,shuffle:l.observable,localStorageState:l.computed.struct,isEmpty:l.computed,canClear:l.computed,currentItem:l.computed,canPlay:l.computed,canPause:l.computed,hasMultipleItems:l.computed,currentIndex:l.computed,hasPreviousItem:l.computed,hasNextItem:l.computed,isLastItem:l.computed,selectedItems:l.computed,allItemsSelected:l.computed,hasSelectedItems:l.computed,selectedItemsOrAllItems:l.computed,canAddSelectedItems:l.computed,canPlaySelectedItemsNext:l.computed,canRemoveSelectedItems:l.computed,setItems:l.action,interact:l.action,clear:l.action.bound,unselectAll:l.action,selectAll:l.action,setCurrentItem:l.action,setNextItems:l.action,clearAndSetItems:l.action,playNext:l.action,playSelectedItemsNext:l.action.bound,addItems:l.action,addSelectedItems:l.action.bound,playFirst:l.action,moveItem:l.action,goToFirst:l.action,removeItems:l.action,removeSelectedItems:l.action.bound,removeOtherItems:l.action,removeItemsAbove:l.action,toggleRepeat:l.action.bound,toggleShuffle:l.action.bound,previous:l.action,next:l.action.bound})}interacted=!1;items=[];currentId;repeat=_.Off;shuffle=!1;createItem(e){return De.fromDto(this.observableStateProvider,this,{url:e.url,type:e.type,videoId:e.videoId,title:e.title})}get localStorageState(){return{version:"1.0",repeat:this.repeat,shuffle:this.shuffle,items:this.items.map(e=>e.dto),currentIndex:this.currentIndex}}set localStorageState(e){this.repeat=e.repeat??_.Off,this.shuffle=e.shuffle??!1,this.items=e.items?.map(r=>this.createItem(r))??[],this.currentIndex=e.currentIndex}validateLocalStorageState(e){return Lr(Br,"PlayQueueDto")(e)}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}interact(){this.interacted=!0}clear(){this.interact(),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.interact(),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.interact(),this.items.splice(r,0,...e),this.currentIndex=r)}moveItem(e,r){const i=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(r,0,i)}async goToFirst(){this.currentIndex!==void 0&&(this.currentIndex=0)}async removeItems(e){const{currentItem:r}=this;ht.pull(this.items,...e.filter(s=>s!==r));const{currentIndex:i,isLastItem:a}=this;ht.pull(this.items,e.find(s=>s===r)),this.currentItem!==r&&(this.interact(),a?await this.goToFirst():this.currentIndex=i)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){const r=e.id;return this.removeItems(this.items.filter(i=>i.id!==r))}async removeItemsAbove(e){const r=this.items.indexOf(e);return this.removeItems(this.items.filter((i,a)=>a<r))}toggleRepeat(){switch(this.repeat){case _.Off:this.repeat=_.All;break;case _.All:this.repeat=_.One;break;case _.One:this.repeat=_.Off;break}}toggleShuffle(){this.shuffle=!this.shuffle}async previous(){this.currentIndex!==void 0&&this.hasPreviousItem&&(this.interact(),this.currentIndex--)}async next(){this.currentIndex!==void 0&&this.hasNextItem&&(this.interact(),this.currentIndex++)}}const Vr=({children:t})=>{const[e]=h.useState(()=>new Ur(new Pe)),r=Y.useNostalgicDiva();return h.useEffect(()=>l.reaction(()=>e.currentItem,async(i,a)=>{i===void 0||a===void 0||i.type===a.type&&i.videoId===a.videoId&&await r.setCurrentTime(0)}),[e,r]),o(Ze.Provider,{value:e,children:t})},At=h.createContext(void 0),Ft=()=>h.useContext(At);class Yr{controller=Y.nullPlayerController;playing=!1;percent=0;seeking=!1;constructor(e){e.makeObservable(this,{controller:l.observable,playing:l.observable,percent:l.observable,seeking:l.observable,setPlaying:l.action,setPercent:l.action,setSeeking:l.action,onControllerChange:l.action.bound,onPlay:l.action.bound,onPause:l.action.bound,onEnded:l.action.bound,onTimeUpdate:l.action.bound})}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))}}const Gr=({children:t})=>{const[e]=h.useState(()=>new Yr(new Pe));return o(At.Provider,{value:e,children:t})},Mt=h.createContext(void 0),Hr=()=>h.useContext(Mt);class Wr{constructor(e,r,i){this.player=r,this.playQueue=i,e.makeObservable(this,{controller:l.computed,playing:l.computed,percent:l.computed,canSeek:l.computed,currentItem:l.computed,repeat:l.computed,shuffle:l.computed,canToggleRepeat:l.computed,canToggleShuffle:l.computed,canPlay:l.computed,canPause:l.computed,canPrevious:l.computed,canNext:l.computed,canSkipBack10:l.computed,canSkipForward30:l.computed,canRemoveFromPlayQueue:l.computed,setPercent:l.action.bound,setSeeking:l.action.bound,toggleRepeat:l.action.bound,toggleShuffle:l.action.bound,play:l.action.bound,pause:l.action.bound,previous:l.action.bound,next:l.action.bound,skipBack10:l.action.bound,skipForward30:l.action.bound,removeFromPlayQueue:l.action.bound})}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 repeat(){return this.playQueue.repeat}get shuffle(){return this.playQueue.shuffle}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(){this.playQueue.toggleRepeat()}toggleShuffle(){this.playQueue.toggleShuffle()}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])}}const Jr=({children:t})=>{const e=Ft(),r=Se(),[i]=h.useState(()=>new Wr(new Pe,e,r));return o(Mt.Provider,{value:i,children:t})},Dt=h.createContext(void 0),Kr=()=>h.useContext(Dt);class Xr{constructor(e,r,i){this.player=r,this.playQueue=i,e.makeObservable(this,{controller:l.computed,currentItem:l.computed,onLoaded:l.action.bound,onPlay:l.action.bound,onPause:l.action.bound,onEnded:l.action.bound,onTimeUpdate:l.action.bound,onControllerChange:l.action.bound})}get controller(){return this.player.controller}get currentItem(){return this.playQueue.currentItem}async onLoaded(){this.playQueue.interacted&&await this.controller.play()}onPlay(){this.player.onPlay()}onPause(){this.player.onPause()}async onEnded(){switch(this.playQueue.repeat){case _.One:await this.controller.setCurrentTime(0);break;case _.Off:case _.All:if(this.playQueue.isLastItem)switch(this.playQueue.repeat){case _.Off:this.player.onEnded();break;case _.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)}}const Zr=({children:t})=>{const e=Ft(),r=Se(),[i]=h.useState(()=>new Xr(new Pe,e,r));return o(Dt.Provider,{value:i,children:t})},en=({children:t,nostalgicDivaProps:e})=>o(Y.NostalgicDivaProvider,{...e,children:o(zr,{components:[Gr,Vr,Zr,Jr],children:t})}),tn={mediaPlayer:{enablePlaylists:process.env.NODE_ENV!=="production"}},rn="http://localhost".replace(/\/+$/,"");class Nt{constructor(e={}){this.configuration=e}set config(e){this.configuration=e}get basePath(){return this.configuration.basePath!=null?this.configuration.basePath:rn}get fetchApi(){return this.configuration.fetchApi}get middleware(){return this.configuration.middleware||[]}get queryParamsStringify(){return this.configuration.queryParamsStringify||$t}get username(){return this.configuration.username}get password(){return this.configuration.password}get apiKey(){const e=this.configuration.apiKey;if(e)return typeof e=="function"?e:()=>e}get accessToken(){const e=this.configuration.accessToken;if(e)return typeof e=="function"?e:async()=>e}get headers(){return this.configuration.headers}get credentials(){return this.configuration.credentials}}const nn=new Nt;class et{constructor(e=nn){this.configuration=e,this.middleware=e.middleware}static jsonRegex=new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$","i");middleware;withMiddleware(...e){const r=this.clone();return r.middleware=r.middleware.concat(...e),r}withPreMiddleware(...e){const r=e.map(i=>({pre:i}));return this.withMiddleware(...r)}withPostMiddleware(...e){const r=e.map(i=>({post:i}));return this.withMiddleware(...r)}isJsonMime(e){return e?et.jsonRegex.test(e):!1}async request(e,r){const{url:i,init:a}=await this.createFetchParams(e,r),s=await this.fetchApi(i,a);if(s&&s.status>=200&&s.status<300)return s;throw new sn(s,"Response returned an error code")}async createFetchParams(e,r){let i=this.configuration.basePath+e.path;e.query!==void 0&&Object.keys(e.query).length!==0&&(i+="?"+this.configuration.queryParamsStringify(e.query));const a=Object.assign({},this.configuration.headers,e.headers);Object.keys(a).forEach(E=>a[E]===void 0?delete a[E]:{});const s=typeof r=="function"?r:async()=>r,d={method:e.method,headers:a,body:e.body,credentials:this.configuration.credentials},m={...d,...await s({init:d,context:e})};let y;on(m.body)||m.body instanceof URLSearchParams||an(m.body)?y=m.body:this.isJsonMime(a["Content-Type"])?y=JSON.stringify(m.body):y=m.body;const g={...m,body:y};return{url:i,init:g}}fetchApi=async(e,r)=>{let i={url:e,init:r};for(const s of this.middleware)s.pre&&(i=await s.pre({fetch:this.fetchApi,...i})||i);let a;try{a=await(this.configuration.fetchApi||fetch)(i.url,i.init)}catch(s){for(const d of this.middleware)d.onError&&(a=await d.onError({fetch:this.fetchApi,url:i.url,init:i.init,error:s,response:a?a.clone():void 0})||a);if(a===void 0)throw s instanceof Error?new ln(s,"The request failed and the interceptors did not return an alternative response"):s}for(const s of this.middleware)s.post&&(a=await s.post({fetch:this.fetchApi,url:i.url,init:i.init,response:a.clone()})||a);return a};clone(){const e=this.constructor,r=new e(this.configuration);return r.middleware=this.middleware.slice(),r}}function an(t){return typeof Blob<"u"&&t instanceof Blob}function on(t){return typeof FormData<"u"&&t instanceof FormData}class sn extends Error{constructor(e,r){super(r),this.response=e}name="ResponseError"}class ln extends Error{constructor(e,r){super(r),this.cause=e}name="FetchError"}class ve extends Error{constructor(e,r){super(r),this.field=e}name="RequiredError"}function $t(t,e=""){return Object.keys(t).map(r=>jt(r,t[r],e)).filter(r=>r.length>0).join("&")}function jt(t,e,r=""){const i=r+(r.length?`[${t}]`:t);if(e instanceof Array){const a=e.map(s=>encodeURIComponent(String(s))).join(`&${encodeURIComponent(i)}=`);return`${encodeURIComponent(i)}=${a}`}if(e instanceof Set){const a=Array.from(e);return jt(t,a,r)}return e instanceof Date?`${encodeURIComponent(i)}=${encodeURIComponent(e.toISOString())}`:e instanceof Object?$t(e,i):`${encodeURIComponent(i)}=${encodeURIComponent(String(e))}`}class te{constructor(e,r=i=>i){this.raw=e,this.transformer=r}async value(){return this.transformer(await this.raw.json())}}function qt(t){return cn(t)}function cn(t,e){return t==null?t:{id:t.id,name:t.name}}function un(t){return dn(t)}function dn(t,e){return t==null?t:{playlist:qt(t.playlist)}}function fn(t){return pn(t)}function pn(t,e){return t==null?t:{items:t.items.map(qt)}}function mn(t){return hn(t)}function hn(t,e){return t==null?t:{id:t.id,url:t.url,type:t.type,videoId:t.videoId,title:t.title}}function yn(t){return vn(t)}function vn(t,e){return t==null?t:{items:t.items.map(mn)}}function gn(t){return bn(t,!1)}function bn(t,e=!1){return t==null?t:{name:t.name}}function Pn(t){return En(t,!1)}function En(t,e=!1){return t==null?t:{name:t.name}}class Sn extends et{async mediaPlayerPlaylistsGetRaw(e){const r={},i={},s=await this.request({path:"/media-player/playlists",method:"GET",headers:i,query:r},e);return new te(s,d=>fn(d))}async mediaPlayerPlaylistsGet(e){return await(await this.mediaPlayerPlaylistsGetRaw(e)).value()}async mediaPlayerPlaylistsIdDeleteRaw(e,r){if(e.id==null)throw new ve("id",'Required parameter "id" was null or undefined when calling mediaPlayerPlaylistsIdDelete().');const i={},a={};let s="/media-player/playlists/{id}";s=s.replace("{id}",encodeURIComponent(String(e.id)));const d=await this.request({path:s,method:"DELETE",headers:a,query:i},r);return new te(d)}async mediaPlayerPlaylistsIdDelete(e,r){return await(await this.mediaPlayerPlaylistsIdDeleteRaw(e,r)).value()}async mediaPlayerPlaylistsIdGetRaw(e,r){if(e.id==null)throw new ve("id",'Required parameter "id" was null or undefined when calling mediaPlayerPlaylistsIdGet().');const i={},a={};let s="/media-player/playlists/{id}";s=s.replace("{id}",encodeURIComponent(String(e.id)));const d=await this.request({path:s,method:"GET",headers:a,query:i},r);return new te(d,m=>un(m))}async mediaPlayerPlaylistsIdGet(e,r){return await(await this.mediaPlayerPlaylistsIdGetRaw(e,r)).value()}async mediaPlayerPlaylistsIdRenamePostRaw(e,r){if(e.id==null)throw new ve("id",'Required parameter "id" was null or undefined when calling mediaPlayerPlaylistsIdRenamePost().');const i={},a={};a["Content-Type"]="application/json";let s="/media-player/playlists/{id}:rename";s=s.replace("{id}",encodeURIComponent(String(e.id)));const d=await this.request({path:s,method:"POST",headers:a,query:i,body:Pn(e.hydrangeanDivaMediaPlayerEndpointsPlaylistsRenamePlaylistRequest)},r);return new te(d)}async mediaPlayerPlaylistsIdRenamePost(e,r){return await(await this.mediaPlayerPlaylistsIdRenamePostRaw(e,r)).value()}async mediaPlayerPlaylistsIdTracksGetRaw(e,r){if(e.id==null)throw new ve("id",'Required parameter "id" was null or undefined when calling mediaPlayerPlaylistsIdTracksGet().');const i={},a={};let s="/media-player/playlists/{id}/tracks";s=s.replace("{id}",encodeURIComponent(String(e.id)));const d=await this.request({path:s,method:"GET",headers:a,query:i},r);return new te(d,m=>yn(m))}async mediaPlayerPlaylistsIdTracksGet(e,r){return await(await this.mediaPlayerPlaylistsIdTracksGetRaw(e,r)).value()}async mediaPlayerPlaylistsIdTracksPutRaw(e,r){if(e.id==null)throw new ve("id",'Required parameter "id" was null or undefined when calling mediaPlayerPlaylistsIdTracksPut().');const i={},a={};let s="/media-player/playlists/{id}/tracks";s=s.replace("{id}",encodeURIComponent(String(e.id)));const d=await this.request({path:s,method:"PUT",headers:a,query:i},r);return new te(d)}async mediaPlayerPlaylistsIdTracksPut(e,r){return await(await this.mediaPlayerPlaylistsIdTracksPutRaw(e,r)).value()}async mediaPlayerPlaylistsPostRaw(e,r){const i={},a={};a["Content-Type"]="application/json";const d=await this.request({path:"/media-player/playlists",method:"POST",headers:a,query:i,body:gn(e.hydrangeanDivaMediaPlayerEndpointsPlaylistsCreatePlaylistRequest)},r);return new te(d)}async mediaPlayerPlaylistsPost(e={},r){return await(await this.mediaPlayerPlaylistsPostRaw(e,r)).value()}}const wn=new Nt({basePath:new URL("api",window.location.origin).toString()}),In=new Sn(wn),Cn=({disabled:t,onAddToPlaylist:e})=>{const[r,i]=h.useState(!1),[a,s]=h.useState("loading");return h.useEffect(()=>{In.mediaPlayerPlaylistsGet().then(d=>s(d.items.map(m=>({key:m.id,label:m.name}))))},[]),o(c.EuiPopover,{panelPaddingSize:"none",button:o(c.EuiButton,{iconType:w.AddRegular,onClick:()=>i(!r),disabled:t,children:"Add to"}),isOpen:r,closePopover:()=>i(!1),children:o(c.EuiSelectable,{searchable:!0,searchProps:{compressed:!0},options:a==="loading"?void 0:a,isLoading:a==="loading",onChange:async(d,m,y)=>{i(!1),await e(y)},singleSelection:!0,children:(d,m)=>$("div",{style:{width:240},children:[o(c.EuiPopoverTitle,{paddingSize:"s",children:m}),d,o(c.EuiPopoverFooter,{paddingSize:"s",children:o(c.EuiButton,{size:"s",fullWidth:!0,iconType:w.AddRegular,children:"New playlist"})})]})})})},Tn=({onCancel:t,onSave:e})=>{const r=c.useGeneratedHtmlId({prefix:"modalForm"}),[i,a]=h.useState(""),[s,d]=h.useState(""),[m,y]=h.useState(!1);return $(c.EuiModal,{onClose:t,initialFocus:"[name=url]",children:[o(c.EuiModalHeader,{children:o(c.EuiModalHeaderTitle,{children:"Add video"})}),o(c.EuiModalBody,{children:$(c.EuiForm,{id:r,component:"form",onSubmit:async g=>{g.preventDefault();try{y(!0),await e({url:i,title:s})}finally{y(!1)}},children:[o(c.EuiFormRow,{label:"URL",children:o(c.EuiFieldText,{name:"url",value:i,onChange:g=>a(g.target.value)})}),o(c.EuiFormRow,{label:"Title",children:o(c.EuiFieldText,{name:"title",value:s,onChange:g=>d(g.target.value)})})]})}),$(c.EuiModalFooter,{children:[o(c.EuiButtonEmpty,{onClick:t,children:"Cancel"}),o(c.EuiButton,{type:"submit",form:r,fill:!0,disabled:i.trim().length===0,isLoading:m,children:"Add video"})]})]})},Tt=h.memo(({onSave:t})=>{const[e,r]=h.useState(!1),i=h.useCallback(async a=>{await t(a),r(!1)},[t]);return $(Ee,{children:[o(c.EuiButton,{onClick:()=>r(!0),iconType:w.AddRegular,color:"primary",children:"Add video"}),e&&o(Tn,{onCancel:()=>r(!1),onSave:i})]})});O.observer(({playQueueStore:t})=>{const[e,r]=h.useState(!1);return $(Ee,{children:[e&&o(c.EuiFlyout,{type:"push",size:"s",onClose:()=>r(!1),children:o("div",{style:{blockSize:"100%"},children:o(c.EuiCodeBlock,{language:"json",overflowHeight:"100%",isCopyable:!0,isVirtualized:!0,children:JSON.stringify(t.localStorageState,void 0,2)})})}),o(c.EuiButton,{onClick:()=>r(i=>!i),iconType:w.WindowDevToolsRegular,children:"Developer tools"})]})});const zt={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"},Rn=O.observer(({playQueueStore:t})=>{const{euiTheme:e}=c.useEuiTheme();return $(c.EuiTableHeader,{style:{position:"sticky",top:112,zIndex:998,background:e.colors.backgroundBasePlain},children:[o(c.EuiTableHeaderCellCheckbox,{children:o(c.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:r=>{r.target.checked?t.selectAll():t.unselectAll()}})}),o(c.EuiTableHeaderCell,{width:24}),o(c.EuiTableHeaderCell,{children:"Title"}),o(c.EuiTableHeaderCell,{})]})}),xn=h.memo(({item:t,closePopover:e})=>{const r=h.useMemo(()=>[{id:0,items:[{name:"Play first",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await t.playFirst()}},{name:"Play next",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await t.playNext()}},{name:"Add to play queue",icon:o(c.EuiIcon,{type:w.AddRegular}),onClick:async()=>{e(),await t.addToPlayQueue()}},{isSeparator:!0},{name:"Move to the top",icon:o(c.EuiIcon,{type:w.ArrowUploadRegular}),onClick:async()=>{e(),t.moveToTop()},disabled:!t.canMoveToTop},{name:"Move to the bottom",icon:o(c.EuiIcon,{type:w.ArrowDownloadRegular}),onClick:async()=>{e(),t.moveToBottom()},disabled:!t.canMoveToBottom},{isSeparator:!0},{name:"Remove to the top",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await t.removeToTop()},disabled:!t.canRemoveToTop},{name:"Remove others",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await t.removeOthers()},disabled:!t.canRemoveOthers}]}],[e,t]);return o(c.EuiContextMenu,{initialPanelId:0,panels:r})}),On=h.memo(({item:t})=>{const[e,r]=h.useState(!1),i=h.useCallback(()=>r(!e),[e]),a=h.useCallback(()=>r(!1),[]);return o(c.EuiPopover,{button:o(c.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:w.MoreHorizontalFilled,size:"s",color:"text",onClick:i}),isOpen:e,closePopover:a,panelPaddingSize:"none",anchorPosition:"leftCenter",children:o(xn,{item:t,closePopover:a})})}),kn=O.observer(({item:t})=>{const e=Y.useNostalgicDiva();return $(c.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[o(c.EuiButton,{iconType:w.PlayRegular,size:"s",onClick:async()=>{t.isCurrent?await e.setCurrentTime(0):t.play()},children:"Play"}),o(c.EuiButton,{iconType:w.DismissRegular,size:"s",onClick:t.remove,children:"Remove"}),o(On,{item:t})]})}),_n=O.observer(({item:t})=>{const e=Y.useNostalgicDiva();return $(c.EuiTableRow,{isSelected:t.isCurrent,children:[o(c.EuiTableRowCellCheckbox,{children:o(c.EuiCheckbox,{id:t.id.toString(),checked:t.isSelected,onChange:t.toggleSelected})}),o(c.EuiTableRowCell,{textOnly:!1,children:o("img",{src:zt[t.type],width:16,height:16,alt:t.type})}),o(c.EuiTableRowCell,{children:o(c.EuiLink,{href:t.url,target:"_blank",external:!0,onClick:()=>e.pause(),children:t.title})}),o(kn,{item:t})]},t.id)}),An=O.observer(({playQueueStore:t})=>o(fr.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>o(_n,{item:e},e.id))})),Fn=O.observer(({playQueueStore:t})=>$(c.EuiTable,{children:[o(Rn,{playQueueStore:t}),o(An,{playQueueStore:t})]}));function Mn(t){return t!==null&&typeof t=="object"&&"title"in t&&typeof t.title=="string"}const Dn=O.observer(({playQueueStore:t})=>o(c.EuiButton,{iconType:w.AddRegular,onClick:t.addSelectedItems,disabled:!t.canAddSelectedItems,children:"Add to play queue"})),Lt=O.observer(({playQueueStore:t})=>{const{euiTheme:e}=c.useEuiTheme(),r=h.useCallback(async()=>{},[]),i=h.useCallback(async a=>{const s=Y.findVideoService(a.url);if(s===void 0)return;const d=s.extractVideoId(a.url);if(d===void 0)return;const y=await(await fetch(`https://noembed.com/embed?url=${encodeURIComponent(a.url)}`)).json(),g=t.createItem({url:a.url,type:s.type,videoId:d,title:a.title||(Mn(y)?y.title:d)});await t.addItems([g])},[t]);return $(Ee,{children:[$(c.EuiFlexGroup,{alignItems:"center",gutterSize:"m",style:{position:"sticky",top:48,zIndex:998,background:e.colors.backgroundBasePlain},children:[o(c.EuiFlexItem,{grow:!1,children:o(c.EuiButton,{disabled:!t.canPlaySelectedItemsNext,onClick:t.playSelectedItemsNext,children:"Play next"})}),o(c.EuiFlexItem,{grow:!1,children:o(Dn,{playQueueStore:t})}),o(c.EuiFlexItem,{grow:!1,children:o(Cn,{disabled:!tn.mediaPlayer.enablePlaylists,onAddToPlaylist:r})}),o(c.EuiFlexItem,{grow:!1,children:o(c.EuiButton,{iconType:w.DismissRegular,onClick:t.removeSelectedItems,disabled:!t.canRemoveSelectedItems,children:"Remove"})}),o(c.EuiFlexItem,{grow:!1,children:o(c.EuiButton,{iconType:w.DeleteRegular,onClick:t.clear,disabled:!t.canClear,children:"Clear"})}),o(c.EuiFlexItem,{grow:!0}),$(c.EuiFlexItem,{grow:!1,children:[!1,o(Tt,{onSave:i})]})]}),o(c.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:e.colors.backgroundBasePlain}}),t.isEmpty?o(c.EuiEmptyPrompt,{title:o("h2",{children:"We couldn't find any videos"}),body:o("p",{children:"Your video library doesn't contain any video content."}),actions:o(Tt,{onSave:i})}):o(Fn,{playQueueStore:t})]})}),Nn=({breadcrumbs:t,tabs:e,...r})=>{const i=pr.useRouter();return o(c.EuiPageTemplate.Header,{...r,breadcrumbs:t?.map(({linkProps:a,...s})=>({...s,href:a===void 0?void 0:i.buildLocation(a).href,onClick:a===void 0?void 0:async d=>{d.preventDefault(),await i.navigate(a)}})),tabs:e?.map(({linkProps:a,...s})=>({...s,href:a===void 0?void 0:i.buildLocation(a).href,onClick:a===void 0?void 0:async d=>{d.preventDefault(),await i.navigate(a)}}))})},$n=()=>{const t=Se();return $(Ee,{children:[o(Nn,{pageTitle:"Play queue",rightSideItems:[]}),o(c.EuiPageTemplate.Section,{children:o(Lt,{playQueueStore:t})})]})},jn=O.observer(({bottomBarStore:t})=>o(c.EuiButtonIcon,{title:`Shuffle: ${t.shuffle?"On":"Off"}`,"aria-label":`Shuffle: ${t.shuffle?"On":"Off"}`,iconType:t.shuffle?w.ArrowShuffleFilled:w.ArrowShuffleOffFilled,size:"s",iconSize:"l",onClick:t.toggleShuffle,disabled:!t.canToggleShuffle})),qn=O.observer(({bottomBarStore:t})=>o(c.EuiButtonIcon,{title:"Previous","aria-label":"Previous",iconType:w.PreviousFilled,size:"s",iconSize:"l",onClick:t.previous,disabled:!t.canPrevious})),zn=O.observer(({bottomBarStore:t})=>o(c.EuiButtonIcon,{title:"Skip back 10 seconds","aria-label":"Skip back 10 seconds",iconType:w.SkipBack10Regular,size:"s",iconSize:"l",onClick:t.skipBack10,disabled:!t.canSkipBack10})),Ln=O.observer(({bottomBarStore:t})=>o(c.EuiButtonIcon,{title:"Pause","aria-label":"Pause",iconType:w.PauseFilled,size:"s",iconSize:"l",onClick:t.pause,disabled:!t.canPause})),Qn=O.observer(({bottomBarStore:t})=>o(c.EuiButtonIcon,{title:"Play","aria-label":"Play",iconType:w.PlayFilled,size:"s",iconSize:"l",onClick:t.play,disabled:!t.canPlay})),Bn=O.observer(({bottomBarStore:t})=>o(c.EuiButtonIcon,{title:"Skip forward 30 seconds","aria-label":"Skip forward 30 seconds",iconType:w.SkipForward30Regular,size:"s",iconSize:"l",onClick:t.skipForward30,disabled:!t.canSkipForward30})),Un=O.observer(({bottomBarStore:t})=>o(c.EuiButtonIcon,{title:"Next","aria-label":"Next",iconType:w.NextFilled,size:"s",iconSize:"l",onClick:t.next,disabled:!t.canNext})),Vn={[_.Off]:w.ArrowRepeatAllOffFilled,[_.All]:w.ArrowRepeatAllFilled,[_.One]:w.ArrowRepeat1Filled},Yn=O.observer(({bottomBarStore:t})=>o(c.EuiButtonIcon,{title:`Repeat: ${t.repeat===_.All?"All":t.repeat===_.One?"One":"Off"}`,"aria-label":`Repeat: ${t.repeat===_.All?"All":t.repeat===_.One?"One":"Off"}`,iconType:Vn[t.repeat],size:"s",iconSize:"l",onClick:t.toggleRepeat,disabled:!t.canToggleRepeat})),Gn=O.observer(({bottomBarStore:t})=>$(c.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o(jn,{bottomBarStore:t}),o(qn,{bottomBarStore:t}),o(zn,{bottomBarStore:t}),t.playing?o(Ln,{bottomBarStore:t}):o(Qn,{bottomBarStore:t}),o(Bn,{bottomBarStore:t}),o(Un,{bottomBarStore:t}),o(Yn,{bottomBarStore:t})]})),Hn=h.memo(({item:t,closePopover:e})=>{const r=Y.useNostalgicDiva(),i=h.useMemo(()=>[{id:0,items:[{name:"Open in new tab",icon:o(c.EuiIcon,{type:w.OpenRegular}),onClick:async()=>{e(),await r.pause(),window.open(t.dto.url,"_blank")}},{name:"Copy link address",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await navigator.clipboard.writeText(t.dto.url)}},{name:"Copy link text",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await navigator.clipboard.writeText(t.dto.title)}}]}],[e,r,t]);return o(c.EuiContextMenu,{initialPanelId:0,panels:i})}),Wn=h.memo(({item:t})=>{const[e,r]=h.useState(!1),i=h.useCallback(()=>r(!e),[e]),a=h.useCallback(()=>r(!1),[]);return o(c.EuiPopover,{button:o(c.EuiButtonEmpty,{iconType:zt[t.type],size:"s",onClick:i,children:t.title}),isOpen:e,closePopover:a,panelPaddingSize:"none",anchorPosition:"upLeft",children:o(Hn,{item:t,closePopover:a})})}),Jn=O.observer(({bottomBarStore:t})=>o(c.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexStart",alignItems:"center",children:t.currentItem&&o(Wn,{item:t.currentItem})})),Kn=O.observer(({bottomBarStore:t})=>o(c.EuiButtonIcon,{title:"Mute","aria-label":"Mute",iconType:w.Speaker2Regular,size:"s",iconSize:"l",disabled:!t.controller.supports("setMuted")})),Xn=O.observer(({bottomBarStore:t,button:e,isOpen:r,closePopover:i})=>{const[a,s]=h.useState("0"),d=Y.useNostalgicDiva();h.useLayoutEffect(()=>{r&&d.getVolume().then(y=>{y!==void 0&&s(Math.floor(y*100).toString())})},[r,d]);const m=h.useCallback(async y=>{s(y.currentTarget.value),await d.setVolume(Number(y.currentTarget.value)/100)},[d]);return o(c.EuiPopover,{button:e,isOpen:r,closePopover:i,anchorPosition:"upRight",children:o(c.EuiFormRow,{children:$(c.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o(Kn,{bottomBarStore:t}),o(c.EuiRange,{min:0,max:100,step:1,value:a,onChange:m,css:{blockSize:32},disabled:!t.controller.supports("setVolume")})]})})})}),Zn=O.observer(({bottomBarStore:t})=>{const[e,r]=h.useState(!1),i=()=>r(!e);return o(Xn,{bottomBarStore:t,button:o(c.EuiButtonIcon,{title:"Volume","aria-label":"Volume",iconType:w.Speaker2Regular,size:"s",iconSize:"l",onClick:i,disabled:!t.controller.supports("getVolume")}),isOpen:e,closePopover:()=>r(!1)})}),ei=({onClickPlayQueueButton:t})=>o(c.EuiButtonIcon,{title:"Play queue","aria-label":"Play queue",iconType:w.NavigationPlayRegular,size:"s",iconSize:"l",onClick:t}),ti=O.observer(({bottomBarStore:t,closePopover:e})=>{const r=Y.useNostalgicDiva(),i=h.useCallback(async()=>{await t.skipBack10(),e()},[t,e]),a=h.useCallback(async()=>{await t.skipForward30(),e()},[t,e]),s=h.useCallback(async I=>{await r.setPlaybackRate(I),e()},[r,e]),d=h.useCallback(async()=>{await t.removeFromPlayQueue(),e()},[t,e]),[m,y]=h.useState(),g=h.useCallback(async()=>{await t.controller.getPlaybackRate().then(I=>y(I))},[t]),E=h.useMemo(()=>[{id:0,items:[{name:"Speed",icon:o(c.EuiIcon,{type:w.TopSpeedRegular}),panel:1,onClick:g,disabled:!t.controller.supports("getPlaybackRate")},{name:"Skip back 10 seconds",icon:o(c.EuiIcon,{type:w.SkipBack10Regular}),onClick:i,disabled:!t.canSkipBack10},{name:"Skip forward 30 seconds",icon:o(c.EuiIcon,{type:w.SkipForward30Regular}),onClick:a,disabled:!t.canSkipForward30},{isSeparator:!0},{name:"Remove from play queue",icon:o(c.EuiIcon,{type:w.DismissRegular}),onClick:d,disabled:!t.canRemoveFromPlayQueue}]},{id:1,title:"Speed",items:[.25,.5,.75,1,1.25,1.5,1.75,2].map(I=>({name:I.toString(),onClick:()=>s(I),icon:I===m?"check":"empty",disabled:!t.controller.supports("setPlaybackRate")}))}],[t,g,i,a,d,s,m]);return o(c.EuiContextMenu,{initialPanelId:0,panels:E})}),ri=h.memo(({bottomBarStore:t,button:e,isOpen:r,closePopover:i})=>o(c.EuiPopover,{button:e,isOpen:r,closePopover:i,panelPaddingSize:"none",anchorPosition:"upRight",children:o(ti,{bottomBarStore:t,closePopover:i})})),ni=h.memo(({bottomBarStore:t})=>{const[e,r]=h.useState(!1),i=()=>r(!e);return o(ri,{bottomBarStore:t,button:o(c.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:w.MoreHorizontalFilled,size:"s",iconSize:"l",onClick:i}),isOpen:e,closePopover:()=>r(!1)})}),ii=h.memo(({bottomBarStore:t,onClickPlayQueueButton:e})=>$(c.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexEnd",alignItems:"center",children:[o(Zn,{bottomBarStore:t}),e&&o(ei,{onClickPlayQueueButton:e}),o(ni,{bottomBarStore:t})]})),ai=O.observer(({bottomBarStore:t})=>{const e=Y.useNostalgicDiva(),r=h.useCallback(s=>{const d=Number(s.currentTarget.value)/100;t.setPercent(d)},[t]),i=h.useCallback(s=>{s.button===0&&t.setSeeking(!0)},[t]),a=h.useCallback(async s=>{if(s.button===0){const d=Number(s.currentTarget.value)/100;t.setSeeking(!1);const m=await e.getDuration();m!==void 0&&await e.setCurrentTime(m*d)}},[t,e]);return o(c.EuiRange,{min:0,max:100,step:1e-7,value:t.percent*100,onChange:r,onMouseDown:i,onMouseUp:a,fullWidth:!0,showRange:!0,css:{blockSize:32},disabled:!t.canSeek})}),oi=O.observer(({onClickPlayQueueButton:t})=>{const e=Hr();return o(c.EuiBottomBar,{paddingSize:"s",children:$(c.EuiFlexGroup,{direction:"column",gutterSize:"none",children:[o(c.EuiFlexItem,{children:o(ai,{bottomBarStore:e})}),o(c.EuiFlexItem,{children:$(c.EuiFlexGroup,{responsive:!1,children:[o(c.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(Jn,{bottomBarStore:e})}),o(c.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(Gn,{bottomBarStore:e})}),o(c.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(ii,{bottomBarStore:e,onClickPlayQueueButton:t})})]})})]})})}),Ke={width:400,height:225},si=O.observer(()=>{const t=Kr(),e=h.useMemo(()=>({onLoaded:t.onLoaded,onPlay:t.onPlay,onPause:t.onPause,onEnded:t.onEnded,onTimeUpdate:t.onTimeUpdate}),[t]);return o("div",{css:{position:"fixed",right:0,bottom:Xe,width:Ke.width,height:Ke.height,zIndex:998,backgroundColor:"rgb(39, 39, 39)",display:"flex",flexDirection:"column"},children:o("div",{css:{flexGrow:1,backgroundColor:"black"},children:t.currentItem&&o(Y.NostalgicDiva,{src:t.currentItem.url,options:e,onControllerChange:t.onControllerChange})})})}),li=O.observer(({children:t})=>{const e=Se();return $(c.EuiPageTemplate,{panelled:!0,style:{minBlockSize:`max(460px, 100vh - ${Xe}px)`},children:[t,!e.isEmpty&&o(c.EuiSpacer,{style:{blockSize:Ke.height}})]})});exports.BottomBar=oi;exports.HydrangeanDivaProvider=en;exports.MediaPlayerLayout=li;exports.MiniPlayer=si;exports.MobXObservableStateProvider=Pe;exports.ObservableStateProvider=hr;exports.PlayQueue=Lt;exports.PlayQueuePage=$n;exports.PlayQueueStoreContext=Ze;exports.RepeatMode=_;exports.bottomBarHeight=Xe;exports.usePlayQueueStore=Se;
14
+ <%s key={someKey} {...props} />`,Ge,te,cr,te),pt[te+Ge]=!0}}return n===a?ar(B):nr(B),B}}function ir(n,u,m){return ht(n,u,m,!0)}function or(n,u,m){return ht(n,u,m,!1)}var sr=or,lr=ir;ve.Fragment=a,ve.jsx=sr,ve.jsxs=lr})()),ve}var bt;function br(){return bt||(bt=1,process.env.NODE_ENV==="production"?Me.exports=vr():Me.exports=gr()),Me.exports}var be=br(),De={exports:{}},T={};var Pt;function Pr(){if(Pt)return T;Pt=1;var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,r=t?Symbol.for("react.portal"):60106,a=t?Symbol.for("react.fragment"):60107,i=t?Symbol.for("react.strict_mode"):60108,s=t?Symbol.for("react.profiler"):60114,d=t?Symbol.for("react.provider"):60109,p=t?Symbol.for("react.context"):60110,y=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,S=t?Symbol.for("react.forward_ref"):60112,I=t?Symbol.for("react.suspense"):60113,z=t?Symbol.for("react.suspense_list"):60120,$=t?Symbol.for("react.memo"):60115,M=t?Symbol.for("react.lazy"):60116,V=t?Symbol.for("react.block"):60121,J=t?Symbol.for("react.fundamental"):60117,L=t?Symbol.for("react.responder"):60118,k=t?Symbol.for("react.scope"):60119;function D(f){if(typeof f=="object"&&f!==null){var Q=f.$$typeof;switch(Q){case e:switch(f=f.type,f){case y:case g:case a:case s:case i:case I:return f;default:switch(f=f&&f.$$typeof,f){case p:case S:case M:case $:case d:return f;default:return Q}}case r:return Q}}}function A(f){return D(f)===g}return T.AsyncMode=y,T.ConcurrentMode=g,T.ContextConsumer=p,T.ContextProvider=d,T.Element=e,T.ForwardRef=S,T.Fragment=a,T.Lazy=M,T.Memo=$,T.Portal=r,T.Profiler=s,T.StrictMode=i,T.Suspense=I,T.isAsyncMode=function(f){return A(f)||D(f)===y},T.isConcurrentMode=A,T.isContextConsumer=function(f){return D(f)===p},T.isContextProvider=function(f){return D(f)===d},T.isElement=function(f){return typeof f=="object"&&f!==null&&f.$$typeof===e},T.isForwardRef=function(f){return D(f)===S},T.isFragment=function(f){return D(f)===a},T.isLazy=function(f){return D(f)===M},T.isMemo=function(f){return D(f)===$},T.isPortal=function(f){return D(f)===r},T.isProfiler=function(f){return D(f)===s},T.isStrictMode=function(f){return D(f)===i},T.isSuspense=function(f){return D(f)===I},T.isValidElementType=function(f){return typeof f=="string"||typeof f=="function"||f===a||f===g||f===s||f===i||f===I||f===z||typeof f=="object"&&f!==null&&(f.$$typeof===M||f.$$typeof===$||f.$$typeof===d||f.$$typeof===p||f.$$typeof===S||f.$$typeof===J||f.$$typeof===L||f.$$typeof===k||f.$$typeof===V)},T.typeOf=D,T}var R={};var St;function Sr(){return St||(St=1,process.env.NODE_ENV!=="production"&&(function(){var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,r=t?Symbol.for("react.portal"):60106,a=t?Symbol.for("react.fragment"):60107,i=t?Symbol.for("react.strict_mode"):60108,s=t?Symbol.for("react.profiler"):60114,d=t?Symbol.for("react.provider"):60109,p=t?Symbol.for("react.context"):60110,y=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,S=t?Symbol.for("react.forward_ref"):60112,I=t?Symbol.for("react.suspense"):60113,z=t?Symbol.for("react.suspense_list"):60120,$=t?Symbol.for("react.memo"):60115,M=t?Symbol.for("react.lazy"):60116,V=t?Symbol.for("react.block"):60121,J=t?Symbol.for("react.fundamental"):60117,L=t?Symbol.for("react.responder"):60118,k=t?Symbol.for("react.scope"):60119;function D(v){return typeof v=="string"||typeof v=="function"||v===a||v===g||v===s||v===i||v===I||v===z||typeof v=="object"&&v!==null&&(v.$$typeof===M||v.$$typeof===$||v.$$typeof===d||v.$$typeof===p||v.$$typeof===S||v.$$typeof===J||v.$$typeof===L||v.$$typeof===k||v.$$typeof===V)}function A(v){if(typeof v=="object"&&v!==null){var pe=v.$$typeof;switch(pe){case e:var ie=v.type;switch(ie){case y:case g:case a:case s:case i:case I:return ie;default:var ee=ie&&ie.$$typeof;switch(ee){case p:case S:case M:case $:case d:return ee;default:return pe}}case r:return pe}}}var f=y,Q=g,le=p,Ie=d,Ce=e,$e=S,je=a,Te=M,H=$,K=r,Z=s,Re=i,xe=I,ce=!1;function Oe(v){return ce||(ce=!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.")),ue(v)||A(v)===y}function ue(v){return A(v)===g}function ke(v){return A(v)===p}function _e(v){return A(v)===d}function Ae(v){return typeof v=="object"&&v!==null&&v.$$typeof===e}function qe(v){return A(v)===S}function ze(v){return A(v)===a}function de(v){return A(v)===M}function fe(v){return A(v)===$}function ne(v){return A(v)===r}function me(v){return A(v)===s}function ae(v){return A(v)===i}function Le(v){return A(v)===I}R.AsyncMode=f,R.ConcurrentMode=Q,R.ContextConsumer=le,R.ContextProvider=Ie,R.Element=Ce,R.ForwardRef=$e,R.Fragment=je,R.Lazy=Te,R.Memo=H,R.Portal=K,R.Profiler=Z,R.StrictMode=Re,R.Suspense=xe,R.isAsyncMode=Oe,R.isConcurrentMode=ue,R.isContextConsumer=ke,R.isContextProvider=_e,R.isElement=Ae,R.isForwardRef=qe,R.isFragment=ze,R.isLazy=de,R.isMemo=fe,R.isPortal=ne,R.isProfiler=me,R.isStrictMode=ae,R.isSuspense=Le,R.isValidElementType=D,R.typeOf=A})()),R}var Et;function Er(){return Et||(Et=1,process.env.NODE_ENV==="production"?De.exports=Pr():De.exports=Sr()),De.exports}var He,wt;function wr(){if(wt)return He;wt=1;var t=Er(),e={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},r={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};s[t.ForwardRef]=a,s[t.Memo]=i;function d(M){return t.isMemo(M)?i:s[M.$$typeof]||e}var p=Object.defineProperty,y=Object.getOwnPropertyNames,g=Object.getOwnPropertySymbols,S=Object.getOwnPropertyDescriptor,I=Object.getPrototypeOf,z=Object.prototype;function $(M,V,J){if(typeof V!="string"){if(z){var L=I(V);L&&L!==z&&$(M,L,J)}var k=y(V);g&&(k=k.concat(g(V)));for(var D=d(M),A=d(V),f=0;f<k.length;++f){var Q=k[f];if(!r[Q]&&!(J&&J[Q])&&!(A&&A[Q])&&!(D&&D[Q])){var le=S(V,Q);try{p(M,Q,le)}catch{}}}}return M}return He=$,He}wr();var Ir=!0;function Cr(t,e,r){var a="";return r.split(" ").forEach(function(i){t[i]!==void 0?e.push(t[i]+";"):i&&(a+=i+" ")}),a}var xt=function(e,r,a){var i=e.key+"-"+r.name;(a===!1||Ir===!1)&&e.registered[i]===void 0&&(e.registered[i]=r.styles)},Tr=function(e,r,a){xt(e,r,a);var i=e.key+"-"+r.name;if(e.inserted[r.name]===void 0){var s=r;do e.insert(r===s?"."+i:"",s,e.sheet,!0),s=s.next;while(s!==void 0)}};function Rr(t){for(var e=0,r,a=0,i=t.length;i>=4;++a,i-=4)r=t.charCodeAt(a)&255|(t.charCodeAt(++a)&255)<<8|(t.charCodeAt(++a)&255)<<16|(t.charCodeAt(++a)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,e=(r&65535)*1540483477+((r>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(i){case 3:e^=(t.charCodeAt(a+2)&255)<<16;case 2:e^=(t.charCodeAt(a+1)&255)<<8;case 1:e^=t.charCodeAt(a)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}var xr={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 Or(t){var e=Object.create(null);return function(r){return e[r]===void 0&&(e[r]=t(r)),e[r]}}var kr=/[A-Z]|^ms/g,_r=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Ot=function(e){return e.charCodeAt(1)===45},It=function(e){return e!=null&&typeof e!="boolean"},We=Or(function(t){return Ot(t)?t:t.replace(kr,"-$&").toLowerCase()}),Ct=function(e,r){switch(e){case"animation":case"animationName":if(typeof r=="string")return r.replace(_r,function(a,i,s){return W={name:i,styles:s,next:W},i})}return xr[e]!==1&&!Ot(e)&&typeof r=="number"&&r!==0?r+"px":r};function Pe(t,e,r){if(r==null)return"";var a=r;if(a.__emotion_styles!==void 0)return a;switch(typeof r){case"boolean":return"";case"object":{var i=r;if(i.anim===1)return W={name:i.name,styles:i.styles,next:W},i.name;var s=r;if(s.styles!==void 0){var d=s.next;if(d!==void 0)for(;d!==void 0;)W={name:d.name,styles:d.styles,next:W},d=d.next;var p=s.styles+";";return p}return Ar(t,e,r)}case"function":{if(t!==void 0){var y=W,g=r(t);return W=y,Pe(t,e,g)}break}}var S=r;return S}function Ar(t,e,r){var a="";if(Array.isArray(r))for(var i=0;i<r.length;i++)a+=Pe(t,e,r[i])+";";else for(var s in r){var d=r[s];if(typeof d!="object"){var p=d;It(p)&&(a+=We(s)+":"+Ct(s,p)+";")}else if(Array.isArray(d)&&typeof d[0]=="string"&&e==null)for(var y=0;y<d.length;y++)It(d[y])&&(a+=We(s)+":"+Ct(s,d[y])+";");else{var g=Pe(t,e,d);switch(s){case"animation":case"animationName":{a+=We(s)+":"+g+";";break}default:a+=s+"{"+g+"}"}}}return a}var Tt=/label:\s*([^\s;{]+)\s*(;|$)/g,W;function Fr(t,e,r){if(t.length===1&&typeof t[0]=="object"&&t[0]!==null&&t[0].styles!==void 0)return t[0];var a=!0,i="";W=void 0;var s=t[0];if(s==null||s.raw===void 0)a=!1,i+=Pe(r,e,s);else{var d=s;i+=d[0]}for(var p=1;p<t.length;p++)if(i+=Pe(r,e,t[p]),a){var y=s;i+=y[p]}Tt.lastIndex=0;for(var g="",S;(S=Tt.exec(i))!==null;)g+="-"+S[1];var I=Rr(i)+g;return{name:I,styles:i,next:W}}var Mr=function(e){return e()},Dr=X.useInsertionEffect?X.useInsertionEffect:!1,Br=Dr||Mr,kt=X.createContext(typeof HTMLElement<"u"?dr({key:"css"}):null);kt.Provider;var Nr=function(e){return h.forwardRef(function(r,a){var i=h.useContext(kt);return e(r,i,a)})},$r=X.createContext({}),Ne={}.hasOwnProperty,Ke="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",_t=function(e,r){var a={};for(var i in r)Ne.call(r,i)&&(a[i]=r[i]);return a[Ke]=e,a},jr=function(e){var r=e.cache,a=e.serialized,i=e.isStringTag;return xt(r,a,i),Br(function(){return Tr(r,a,i)}),null},qr=Nr(function(t,e,r){var a=t.css;typeof a=="string"&&e.registered[a]!==void 0&&(a=e.registered[a]);var i=t[Ke],s=[a],d="";typeof t.className=="string"?d=Cr(e.registered,s,t.className):t.className!=null&&(d=t.className+" ");var p=Fr(s,void 0,X.useContext($r));d+=e.key+"-"+p.name;var y={};for(var g in t)Ne.call(t,g)&&g!=="css"&&g!==Ke&&(y[g]=t[g]);return y.className=d,r&&(y.ref=r),X.createElement(X.Fragment,null,X.createElement(jr,{cache:e,serialized:p,isStringTag:typeof i=="string"}),X.createElement(i,y))}),At=qr,Ee=be.Fragment,o=function(e,r,a){return Ne.call(r,"css")?be.jsx(At,_t(e,r),a):be.jsx(e,r,a)},N=function(e,r,a){return Ne.call(r,"css")?be.jsxs(At,_t(e,r),a):be.jsxs(e,r,a)};const zr=({components:t=[],children:e})=>o(Ee,{children:t.reduceRight((r,a)=>o(a,{children:r}),e)}),et=h.createContext(void 0),we=()=>h.useContext(et),Je=new fr({coerceTypes:!0});function Lr(t,e){let r;if(r=Je.getSchema(e),r===void 0&&(Je.addSchema(t,e),r=Je.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}const Qr={type:"object",properties:{url:{type:"string"},type:{type:"string"},videoId:{type:"string"},title:{type:"string"}},required:["url","type","videoId","title"]};var _=(t=>(t.Off="Off",t.All="All",t.One="One",t))(_||{});const Ur={type:"object",properties:{version:{type:"string",nullable:!0},repeat:{type:"string",enum:Object.values(_),nullable:!0},shuffle:{type:"boolean",nullable:!0},items:{type:"array",nullable:!0,items:Qr},currentIndex:{type:"integer",nullable:!0}}};class Be{constructor(e,r,a){this.observableStateProvider=e,this.playQueue=r,this.dto=a,this.id=Be.nextId++,e.makeObservable(this,{isSelected:l.observable,isCurrent:l.computed,index:l.computed,isFirst:l.computed,isLast:l.computed,canMoveToTop:l.computed,canMoveToBottom:l.computed,canRemoveToTop:l.computed,canRemoveOthers:l.computed,unselect:l.action,select:l.action,toggleSelected:l.action.bound,play:l.action,remove:l.action.bound,playFirst:l.action.bound,playNext:l.action.bound,addToPlayQueue:l.action.bound,moveToTop:l.action.bound,moveToBottom:l.action.bound,removeToTop:l.action.bound,removeOthers:l.action.bound})}static nextId=1;id;isSelected=!1;static fromDto(e,r,a){return new Be(e,r,a)}get url(){return this.dto.url}get type(){return this.dto.type}get videoId(){return this.dto.videoId}get title(){return this.dto.title}get isCurrent(){return 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.createItem(this.dto)}unselect(){this.isSelected=!1}select(){this.isSelected=!0}toggleSelected(){this.isSelected=!this.isSelected}play(){this.playQueue.setCurrentItem(this)}remove(){return this.playQueue.removeItems([this])}async playFirst(){await this.playQueue.playFirst([this.clone()])}async playNext(){await this.playQueue.playNext([this.clone()])}async addToPlayQueue(){await 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)}}class Vr{constructor(e){this.observableStateProvider=e,e.makeObservable(this,{interacted:l.observable,items:l.observable,currentId:l.observable,repeat:l.observable,shuffle:l.observable,localStorageState:l.computed.struct,isEmpty:l.computed,canClear:l.computed,currentItem:l.computed,canPlay:l.computed,canPause:l.computed,hasMultipleItems:l.computed,currentIndex:l.computed,hasPreviousItem:l.computed,hasNextItem:l.computed,isLastItem:l.computed,selectedItems:l.computed,allItemsSelected:l.computed,hasSelectedItems:l.computed,selectedItemsOrAllItems:l.computed,canAddSelectedItems:l.computed,canPlaySelectedItemsNext:l.computed,canRemoveSelectedItems:l.computed,setItems:l.action,interact:l.action,clear:l.action.bound,unselectAll:l.action,selectAll:l.action,setCurrentItem:l.action,setNextItems:l.action,clearAndSetItems:l.action,playNext:l.action,playSelectedItemsNext:l.action.bound,addItems:l.action,addSelectedItems:l.action.bound,playFirst:l.action,moveItem:l.action,goToFirst:l.action,removeItems:l.action,removeSelectedItems:l.action.bound,removeOtherItems:l.action,removeItemsAbove:l.action,toggleRepeat:l.action.bound,toggleShuffle:l.action.bound,previous:l.action,next:l.action.bound})}interacted=!1;items=[];currentId;repeat=_.Off;shuffle=!1;createItem(e){return Be.fromDto(this.observableStateProvider,this,{url:e.url,type:e.type,videoId:e.videoId,title:e.title})}get localStorageState(){return{version:"1.0",repeat:this.repeat,shuffle:this.shuffle,items:this.items.map(e=>e.dto),currentIndex:this.currentIndex}}set localStorageState(e){this.repeat=e.repeat??_.Off,this.shuffle=e.shuffle??!1,this.items=e.items?.map(r=>this.createItem(r))??[],this.currentIndex=e.currentIndex}validateLocalStorageState(e){return Lr(Ur,"PlayQueueDto")(e)}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}interact(){this.interacted=!0}clear(){this.interact(),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.interact(),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.interact(),this.items.splice(r,0,...e),this.currentIndex=r)}moveItem(e,r){const a=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(r,0,a)}async goToFirst(){this.currentIndex!==void 0&&(this.currentIndex=0)}async removeItems(e){const{currentItem:r}=this;yt.pull(this.items,...e.filter(s=>s!==r));const{currentIndex:a,isLastItem:i}=this;yt.pull(this.items,e.find(s=>s===r)),this.currentItem!==r&&(this.interact(),i?await this.goToFirst():this.currentIndex=a)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){const r=e.id;return this.removeItems(this.items.filter(a=>a.id!==r))}async removeItemsAbove(e){const r=this.items.indexOf(e);return this.removeItems(this.items.filter((a,i)=>i<r))}toggleRepeat(){switch(this.repeat){case _.Off:this.repeat=_.All;break;case _.All:this.repeat=_.One;break;case _.One:this.repeat=_.Off;break}}toggleShuffle(){this.shuffle=!this.shuffle}async previous(){this.currentIndex!==void 0&&this.hasPreviousItem&&(this.interact(),this.currentIndex--)}async next(){this.currentIndex!==void 0&&this.hasNextItem&&(this.interact(),this.currentIndex++)}}const Yr=({children:t})=>{const[e]=h.useState(()=>new Vr(new Se)),r=G.useNostalgicDiva();return h.useEffect(()=>l.reaction(()=>e.currentItem,async(a,i)=>{a===void 0||i===void 0||a.type===i.type&&a.videoId===i.videoId&&await r.setCurrentTime(0)}),[e,r]),o(et.Provider,{value:e,children:t})},Ft=h.createContext(void 0),Mt=()=>h.useContext(Ft);class Gr{controller=G.nullPlayerController;playing=!1;percent=0;seeking=!1;constructor(e){e.makeObservable(this,{controller:l.observable,playing:l.observable,percent:l.observable,seeking:l.observable,setPlaying:l.action,setPercent:l.action,setSeeking:l.action,onControllerChange:l.action.bound,onPlay:l.action.bound,onPause:l.action.bound,onEnded:l.action.bound,onTimeUpdate:l.action.bound})}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))}}const Hr=({children:t})=>{const[e]=h.useState(()=>new Gr(new Se));return o(Ft.Provider,{value:e,children:t})},Dt=h.createContext(void 0),q=()=>h.useContext(Dt);class Wr{constructor(e,r,a){this.player=r,this.playQueue=a,e.makeObservable(this,{controller:l.computed,playing:l.computed,percent:l.computed,canSeek:l.computed,currentItem:l.computed,repeat:l.computed,shuffle:l.computed,canToggleRepeat:l.computed,canToggleShuffle:l.computed,canPlay:l.computed,canPause:l.computed,canPrevious:l.computed,canNext:l.computed,canSkipBack10:l.computed,canSkipForward30:l.computed,canRemoveFromPlayQueue:l.computed,setPercent:l.action.bound,setSeeking:l.action.bound,toggleRepeat:l.action.bound,toggleShuffle:l.action.bound,play:l.action.bound,pause:l.action.bound,previous:l.action.bound,next:l.action.bound,skipBack10:l.action.bound,skipForward30:l.action.bound,removeFromPlayQueue:l.action.bound})}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 repeat(){return this.playQueue.repeat}get shuffle(){return this.playQueue.shuffle}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(){this.playQueue.toggleRepeat()}toggleShuffle(){this.playQueue.toggleShuffle()}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])}}const Jr=({children:t})=>{const e=Mt(),r=we(),[a]=h.useState(()=>new Wr(new Se,e,r));return o(Dt.Provider,{value:a,children:t})},Bt=h.createContext(void 0),Kr=()=>h.useContext(Bt);class Xr{constructor(e,r,a){this.player=r,this.playQueue=a,e.makeObservable(this,{controller:l.computed,currentItem:l.computed,onLoaded:l.action.bound,onPlay:l.action.bound,onPause:l.action.bound,onEnded:l.action.bound,onTimeUpdate:l.action.bound,onControllerChange:l.action.bound})}get controller(){return this.player.controller}get currentItem(){return this.playQueue.currentItem}async onLoaded(){this.playQueue.interacted&&await this.controller.play()}onPlay(){this.player.onPlay()}onPause(){this.player.onPause()}async onEnded(){switch(this.playQueue.repeat){case _.One:await this.controller.setCurrentTime(0);break;case _.Off:case _.All:if(this.playQueue.isLastItem)switch(this.playQueue.repeat){case _.Off:this.player.onEnded();break;case _.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)}}const Zr=({children:t})=>{const e=Mt(),r=we(),[a]=h.useState(()=>new Xr(new Se,e,r));return o(Bt.Provider,{value:a,children:t})},en=({children:t,nostalgicDivaProps:e})=>o(G.NostalgicDivaProvider,{...e,children:o(zr,{components:[Hr,Yr,Zr,Jr],children:t})}),tn={mediaPlayer:{enablePlaylists:process.env.NODE_ENV!=="production"}},rn="http://localhost".replace(/\/+$/,"");class Nt{constructor(e={}){this.configuration=e}set config(e){this.configuration=e}get basePath(){return this.configuration.basePath!=null?this.configuration.basePath:rn}get fetchApi(){return this.configuration.fetchApi}get middleware(){return this.configuration.middleware||[]}get queryParamsStringify(){return this.configuration.queryParamsStringify||$t}get username(){return this.configuration.username}get password(){return this.configuration.password}get apiKey(){const e=this.configuration.apiKey;if(e)return typeof e=="function"?e:()=>e}get accessToken(){const e=this.configuration.accessToken;if(e)return typeof e=="function"?e:async()=>e}get headers(){return this.configuration.headers}get credentials(){return this.configuration.credentials}}const nn=new Nt;class tt{constructor(e=nn){this.configuration=e,this.middleware=e.middleware}static jsonRegex=new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$","i");middleware;withMiddleware(...e){const r=this.clone();return r.middleware=r.middleware.concat(...e),r}withPreMiddleware(...e){const r=e.map(a=>({pre:a}));return this.withMiddleware(...r)}withPostMiddleware(...e){const r=e.map(a=>({post:a}));return this.withMiddleware(...r)}isJsonMime(e){return e?tt.jsonRegex.test(e):!1}async request(e,r){const{url:a,init:i}=await this.createFetchParams(e,r),s=await this.fetchApi(a,i);if(s&&s.status>=200&&s.status<300)return s;throw new sn(s,"Response returned an error code")}async createFetchParams(e,r){let a=this.configuration.basePath+e.path;e.query!==void 0&&Object.keys(e.query).length!==0&&(a+="?"+this.configuration.queryParamsStringify(e.query));const i=Object.assign({},this.configuration.headers,e.headers);Object.keys(i).forEach(S=>i[S]===void 0?delete i[S]:{});const s=typeof r=="function"?r:async()=>r,d={method:e.method,headers:i,body:e.body,credentials:this.configuration.credentials},p={...d,...await s({init:d,context:e})};let y;on(p.body)||p.body instanceof URLSearchParams||an(p.body)?y=p.body:this.isJsonMime(i["Content-Type"])?y=JSON.stringify(p.body):y=p.body;const g={...p,body:y};return{url:a,init:g}}fetchApi=async(e,r)=>{let a={url:e,init:r};for(const s of this.middleware)s.pre&&(a=await s.pre({fetch:this.fetchApi,...a})||a);let i;try{i=await(this.configuration.fetchApi||fetch)(a.url,a.init)}catch(s){for(const d of this.middleware)d.onError&&(i=await d.onError({fetch:this.fetchApi,url:a.url,init:a.init,error:s,response:i?i.clone():void 0})||i);if(i===void 0)throw s instanceof Error?new ln(s,"The request failed and the interceptors did not return an alternative response"):s}for(const s of this.middleware)s.post&&(i=await s.post({fetch:this.fetchApi,url:a.url,init:a.init,response:i.clone()})||i);return i};clone(){const e=this.constructor,r=new e(this.configuration);return r.middleware=this.middleware.slice(),r}}function an(t){return typeof Blob<"u"&&t instanceof Blob}function on(t){return typeof FormData<"u"&&t instanceof FormData}class sn extends Error{constructor(e,r){super(r),this.response=e}name="ResponseError"}class ln extends Error{constructor(e,r){super(r),this.cause=e}name="FetchError"}class ge extends Error{constructor(e,r){super(r),this.field=e}name="RequiredError"}function $t(t,e=""){return Object.keys(t).map(r=>jt(r,t[r],e)).filter(r=>r.length>0).join("&")}function jt(t,e,r=""){const a=r+(r.length?`[${t}]`:t);if(e instanceof Array){const i=e.map(s=>encodeURIComponent(String(s))).join(`&${encodeURIComponent(a)}=`);return`${encodeURIComponent(a)}=${i}`}if(e instanceof Set){const i=Array.from(e);return jt(t,i,r)}return e instanceof Date?`${encodeURIComponent(a)}=${encodeURIComponent(e.toISOString())}`:e instanceof Object?$t(e,a):`${encodeURIComponent(a)}=${encodeURIComponent(String(e))}`}class re{constructor(e,r=a=>a){this.raw=e,this.transformer=r}async value(){return this.transformer(await this.raw.json())}}function qt(t){return cn(t)}function cn(t,e){return t==null?t:{id:t.id,name:t.name}}function un(t){return dn(t)}function dn(t,e){return t==null?t:{playlist:qt(t.playlist)}}function fn(t){return mn(t)}function mn(t,e){return t==null?t:{items:t.items.map(qt)}}function pn(t){return hn(t)}function hn(t,e){return t==null?t:{id:t.id,url:t.url,type:t.type,videoId:t.videoId,title:t.title}}function yn(t){return vn(t)}function vn(t,e){return t==null?t:{items:t.items.map(pn)}}function gn(t){return bn(t,!1)}function bn(t,e=!1){return t==null?t:{name:t.name}}function Pn(t){return Sn(t,!1)}function Sn(t,e=!1){return t==null?t:{name:t.name}}class En extends tt{async mediaPlayerPlaylistsGetRaw(e){const r={},a={},s=await this.request({path:"/media-player/playlists",method:"GET",headers:a,query:r},e);return new re(s,d=>fn(d))}async mediaPlayerPlaylistsGet(e){return await(await this.mediaPlayerPlaylistsGetRaw(e)).value()}async mediaPlayerPlaylistsIdDeleteRaw(e,r){if(e.id==null)throw new ge("id",'Required parameter "id" was null or undefined when calling mediaPlayerPlaylistsIdDelete().');const a={},i={};let s="/media-player/playlists/{id}";s=s.replace("{id}",encodeURIComponent(String(e.id)));const d=await this.request({path:s,method:"DELETE",headers:i,query:a},r);return new re(d)}async mediaPlayerPlaylistsIdDelete(e,r){return await(await this.mediaPlayerPlaylistsIdDeleteRaw(e,r)).value()}async mediaPlayerPlaylistsIdGetRaw(e,r){if(e.id==null)throw new ge("id",'Required parameter "id" was null or undefined when calling mediaPlayerPlaylistsIdGet().');const a={},i={};let s="/media-player/playlists/{id}";s=s.replace("{id}",encodeURIComponent(String(e.id)));const d=await this.request({path:s,method:"GET",headers:i,query:a},r);return new re(d,p=>un(p))}async mediaPlayerPlaylistsIdGet(e,r){return await(await this.mediaPlayerPlaylistsIdGetRaw(e,r)).value()}async mediaPlayerPlaylistsIdRenamePostRaw(e,r){if(e.id==null)throw new ge("id",'Required parameter "id" was null or undefined when calling mediaPlayerPlaylistsIdRenamePost().');const a={},i={};i["Content-Type"]="application/json";let s="/media-player/playlists/{id}:rename";s=s.replace("{id}",encodeURIComponent(String(e.id)));const d=await this.request({path:s,method:"POST",headers:i,query:a,body:Pn(e.hydrangeanDivaMediaPlayerEndpointsPlaylistsRenamePlaylistRequest)},r);return new re(d)}async mediaPlayerPlaylistsIdRenamePost(e,r){return await(await this.mediaPlayerPlaylistsIdRenamePostRaw(e,r)).value()}async mediaPlayerPlaylistsIdTracksGetRaw(e,r){if(e.id==null)throw new ge("id",'Required parameter "id" was null or undefined when calling mediaPlayerPlaylistsIdTracksGet().');const a={},i={};let s="/media-player/playlists/{id}/tracks";s=s.replace("{id}",encodeURIComponent(String(e.id)));const d=await this.request({path:s,method:"GET",headers:i,query:a},r);return new re(d,p=>yn(p))}async mediaPlayerPlaylistsIdTracksGet(e,r){return await(await this.mediaPlayerPlaylistsIdTracksGetRaw(e,r)).value()}async mediaPlayerPlaylistsIdTracksPutRaw(e,r){if(e.id==null)throw new ge("id",'Required parameter "id" was null or undefined when calling mediaPlayerPlaylistsIdTracksPut().');const a={},i={};let s="/media-player/playlists/{id}/tracks";s=s.replace("{id}",encodeURIComponent(String(e.id)));const d=await this.request({path:s,method:"PUT",headers:i,query:a},r);return new re(d)}async mediaPlayerPlaylistsIdTracksPut(e,r){return await(await this.mediaPlayerPlaylistsIdTracksPutRaw(e,r)).value()}async mediaPlayerPlaylistsPostRaw(e,r){const a={},i={};i["Content-Type"]="application/json";const d=await this.request({path:"/media-player/playlists",method:"POST",headers:i,query:a,body:gn(e.hydrangeanDivaMediaPlayerEndpointsPlaylistsCreatePlaylistRequest)},r);return new re(d)}async mediaPlayerPlaylistsPost(e={},r){return await(await this.mediaPlayerPlaylistsPostRaw(e,r)).value()}}const wn=new Nt({basePath:new URL("api",window.location.origin).toString()}),In=new En(wn),Cn=({disabled:t,onAddToPlaylist:e})=>{const[r,a]=h.useState(!1),[i,s]=h.useState("loading");return h.useEffect(()=>{In.mediaPlayerPlaylistsGet().then(d=>s(d.items.map(p=>({key:p.id,label:p.name}))))},[]),o(c.EuiPopover,{panelPaddingSize:"none",button:o(c.EuiButton,{iconType:w.AddRegular,onClick:()=>a(!r),disabled:t,children:"Add to"}),isOpen:r,closePopover:()=>a(!1),children:o(c.EuiSelectable,{searchable:!0,searchProps:{compressed:!0},options:i==="loading"?void 0:i,isLoading:i==="loading",onChange:async(d,p,y)=>{a(!1),await e(y)},singleSelection:!0,children:(d,p)=>N("div",{style:{width:240},children:[o(c.EuiPopoverTitle,{paddingSize:"s",children:p}),d,o(c.EuiPopoverFooter,{paddingSize:"s",children:o(c.EuiButton,{size:"s",fullWidth:!0,iconType:w.AddRegular,children:"New playlist"})})]})})})},Tn=({onCancel:t,onSave:e})=>{const r=c.useGeneratedHtmlId({prefix:"modalForm"}),[a,i]=h.useState(""),[s,d]=h.useState(""),[p,y]=h.useState(!1);return N(c.EuiModal,{onClose:t,initialFocus:"[name=url]",children:[o(c.EuiModalHeader,{children:o(c.EuiModalHeaderTitle,{children:"Add video"})}),o(c.EuiModalBody,{children:N(c.EuiForm,{id:r,component:"form",onSubmit:async g=>{g.preventDefault();try{y(!0),await e({url:a,title:s})}finally{y(!1)}},children:[o(c.EuiFormRow,{label:"URL",children:o(c.EuiFieldText,{name:"url",value:a,onChange:g=>i(g.target.value)})}),o(c.EuiFormRow,{label:"Title",children:o(c.EuiFieldText,{name:"title",value:s,onChange:g=>d(g.target.value)})})]})}),N(c.EuiModalFooter,{children:[o(c.EuiButtonEmpty,{onClick:t,children:"Cancel"}),o(c.EuiButton,{type:"submit",form:r,fill:!0,disabled:a.trim().length===0,isLoading:p,children:"Add video"})]})]})},Rt=h.memo(({onSave:t})=>{const[e,r]=h.useState(!1),a=h.useCallback(async i=>{await t(i),r(!1)},[t]);return N(Ee,{children:[o(c.EuiButton,{onClick:()=>r(!0),iconType:w.AddRegular,color:"primary",children:"Add video"}),e&&o(Tn,{onCancel:()=>r(!1),onSave:a})]})});O.observer(({playQueue:t})=>{const[e,r]=h.useState(!1);return N(Ee,{children:[e&&o(c.EuiFlyout,{type:"push",size:"s",onClose:()=>r(!1),children:o("div",{style:{blockSize:"100%"},children:o(c.EuiCodeBlock,{language:"json",overflowHeight:"100%",isCopyable:!0,isVirtualized:!0,children:JSON.stringify(t.localStorageState,void 0,2)})})}),o(c.EuiButton,{onClick:()=>r(a=>!a),iconType:w.WindowDevToolsRegular,children:"Developer tools"})]})});const zt={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"},Rn=O.observer(({playQueue:t})=>{const{euiTheme:e}=c.useEuiTheme();return N(c.EuiTableHeader,{style:{position:"sticky",top:112,zIndex:998,background:e.colors.backgroundBasePlain},children:[o(c.EuiTableHeaderCellCheckbox,{children:o(c.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:r=>{r.target.checked?t.selectAll():t.unselectAll()}})}),o(c.EuiTableHeaderCell,{width:24}),o(c.EuiTableHeaderCell,{children:"Title"}),o(c.EuiTableHeaderCell,{})]})}),xn=h.memo(({item:t,closePopover:e})=>{const r=h.useMemo(()=>[{id:0,items:[{name:"Play first",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await t.playFirst()}},{name:"Play next",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await t.playNext()}},{name:"Add to play queue",icon:o(c.EuiIcon,{type:w.AddRegular}),onClick:async()=>{e(),await t.addToPlayQueue()}},{isSeparator:!0},{name:"Move to the top",icon:o(c.EuiIcon,{type:w.ArrowUploadRegular}),onClick:async()=>{e(),t.moveToTop()},disabled:!t.canMoveToTop},{name:"Move to the bottom",icon:o(c.EuiIcon,{type:w.ArrowDownloadRegular}),onClick:async()=>{e(),t.moveToBottom()},disabled:!t.canMoveToBottom},{isSeparator:!0},{name:"Remove to the top",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await t.removeToTop()},disabled:!t.canRemoveToTop},{name:"Remove others",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await t.removeOthers()},disabled:!t.canRemoveOthers}]}],[e,t]);return o(c.EuiContextMenu,{initialPanelId:0,panels:r})}),On=h.memo(({item:t})=>{const[e,r]=h.useState(!1),a=h.useCallback(()=>r(!e),[e]),i=h.useCallback(()=>r(!1),[]);return o(c.EuiPopover,{button:o(c.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:w.MoreHorizontalFilled,size:"s",color:"text",onClick:a}),isOpen:e,closePopover:i,panelPaddingSize:"none",anchorPosition:"leftCenter",children:o(xn,{item:t,closePopover:i})})}),kn=O.observer(({item:t})=>{const e=G.useNostalgicDiva();return N(c.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[o(c.EuiButton,{iconType:w.PlayRegular,size:"s",onClick:async()=>{t.isCurrent?await e.setCurrentTime(0):t.play()},children:"Play"}),o(c.EuiButton,{iconType:w.DismissRegular,size:"s",onClick:t.remove,children:"Remove"}),o(On,{item:t})]})}),_n=O.observer(({item:t})=>{const e=G.useNostalgicDiva();return N(c.EuiTableRow,{isSelected:t.isCurrent,children:[o(c.EuiTableRowCellCheckbox,{children:o(c.EuiCheckbox,{id:t.id.toString(),checked:t.isSelected,onChange:t.toggleSelected})}),o(c.EuiTableRowCell,{textOnly:!1,children:o("img",{src:zt[t.type],width:16,height:16,alt:t.type})}),o(c.EuiTableRowCell,{children:o(c.EuiLink,{href:t.url,target:"_blank",external:!0,onClick:()=>e.pause(),children:t.title})}),o(kn,{item:t})]},t.id)}),An=O.observer(({playQueue:t})=>o(mr.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>o(_n,{item:e},e.id))})),Fn=O.observer(({playQueue:t})=>N(c.EuiTable,{children:[o(Rn,{playQueue:t}),o(An,{playQueue:t})]}));function Mn(t){return t!==null&&typeof t=="object"&&"title"in t&&typeof t.title=="string"}const Dn=O.observer(({playQueue:t})=>o(c.EuiButton,{iconType:w.AddRegular,onClick:t.addSelectedItems,disabled:!t.canAddSelectedItems,children:"Add to play queue"})),Lt=O.observer(({playQueue:t})=>{const{euiTheme:e}=c.useEuiTheme(),r=h.useCallback(async()=>{},[]),a=h.useCallback(async i=>{const s=G.findVideoService(i.url);if(s===void 0)return;const d=s.extractVideoId(i.url);if(d===void 0)return;const y=await(await fetch(`https://noembed.com/embed?url=${encodeURIComponent(i.url)}`)).json(),g=t.createItem({url:i.url,type:s.type,videoId:d,title:i.title||(Mn(y)?y.title:d)});await t.addItems([g])},[t]);return N(Ee,{children:[N(c.EuiFlexGroup,{alignItems:"center",gutterSize:"m",style:{position:"sticky",top:48,zIndex:998,background:e.colors.backgroundBasePlain},children:[o(c.EuiFlexItem,{grow:!1,children:o(c.EuiButton,{disabled:!t.canPlaySelectedItemsNext,onClick:t.playSelectedItemsNext,children:"Play next"})}),o(c.EuiFlexItem,{grow:!1,children:o(Dn,{playQueue:t})}),o(c.EuiFlexItem,{grow:!1,children:o(Cn,{disabled:!tn.mediaPlayer.enablePlaylists,onAddToPlaylist:r})}),o(c.EuiFlexItem,{grow:!1,children:o(c.EuiButton,{iconType:w.DismissRegular,onClick:t.removeSelectedItems,disabled:!t.canRemoveSelectedItems,children:"Remove"})}),o(c.EuiFlexItem,{grow:!1,children:o(c.EuiButton,{iconType:w.DeleteRegular,onClick:t.clear,disabled:!t.canClear,children:"Clear"})}),o(c.EuiFlexItem,{grow:!0}),N(c.EuiFlexItem,{grow:!1,children:[!1,o(Rt,{onSave:a})]})]}),o(c.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:e.colors.backgroundBasePlain}}),t.isEmpty?o(c.EuiEmptyPrompt,{title:o("h2",{children:"We couldn't find any videos"}),body:o("p",{children:"Your video library doesn't contain any video content."}),actions:o(Rt,{onSave:a})}):o(Fn,{playQueue:t})]})}),Bn=({breadcrumbs:t,tabs:e,...r})=>{const a=pr.useRouter();return o(c.EuiPageTemplate.Header,{...r,breadcrumbs:t?.map(({linkProps:i,...s})=>({...s,href:i===void 0?void 0:a.buildLocation(i).href,onClick:i===void 0?void 0:async d=>{d.preventDefault(),await a.navigate(i)}})),tabs:e?.map(({linkProps:i,...s})=>({...s,href:i===void 0?void 0:a.buildLocation(i).href,onClick:i===void 0?void 0:async d=>{d.preventDefault(),await a.navigate(i)}}))})},Nn=()=>{const t=we();return N(Ee,{children:[o(Bn,{pageTitle:"Play queue",rightSideItems:[]}),o(c.EuiPageTemplate.Section,{children:o(Lt,{playQueue:t})})]})},$n=O.observer(()=>{const t=q();return o(c.EuiButtonIcon,{title:`Shuffle: ${t.shuffle?"On":"Off"}`,"aria-label":`Shuffle: ${t.shuffle?"On":"Off"}`,iconType:t.shuffle?w.ArrowShuffleFilled:w.ArrowShuffleOffFilled,size:"s",iconSize:"l",onClick:t.toggleShuffle,disabled:!t.canToggleShuffle})}),jn=O.observer(()=>{const t=q();return o(c.EuiButtonIcon,{title:"Previous","aria-label":"Previous",iconType:w.PreviousFilled,size:"s",iconSize:"l",onClick:t.previous,disabled:!t.canPrevious})}),qn=O.observer(()=>{const t=q();return o(c.EuiButtonIcon,{title:"Skip back 10 seconds","aria-label":"Skip back 10 seconds",iconType:w.SkipBack10Regular,size:"s",iconSize:"l",onClick:t.skipBack10,disabled:!t.canSkipBack10})}),zn=O.observer(()=>{const t=q();return o(c.EuiButtonIcon,{title:"Pause","aria-label":"Pause",iconType:w.PauseFilled,size:"s",iconSize:"l",onClick:t.pause,disabled:!t.canPause})}),Ln=O.observer(()=>{const t=q();return o(c.EuiButtonIcon,{title:"Play","aria-label":"Play",iconType:w.PlayFilled,size:"s",iconSize:"l",onClick:t.play,disabled:!t.canPlay})}),Qn=O.observer(()=>{const t=q();return o(c.EuiButtonIcon,{title:"Skip forward 30 seconds","aria-label":"Skip forward 30 seconds",iconType:w.SkipForward30Regular,size:"s",iconSize:"l",onClick:t.skipForward30,disabled:!t.canSkipForward30})}),Un=O.observer(()=>{const t=q();return o(c.EuiButtonIcon,{title:"Next","aria-label":"Next",iconType:w.NextFilled,size:"s",iconSize:"l",onClick:t.next,disabled:!t.canNext})}),Vn={[_.Off]:w.ArrowRepeatAllOffFilled,[_.All]:w.ArrowRepeatAllFilled,[_.One]:w.ArrowRepeat1Filled},Yn=O.observer(()=>{const t=q();return o(c.EuiButtonIcon,{title:`Repeat: ${t.repeat===_.All?"All":t.repeat===_.One?"One":"Off"}`,"aria-label":`Repeat: ${t.repeat===_.All?"All":t.repeat===_.One?"One":"Off"}`,iconType:Vn[t.repeat],size:"s",iconSize:"l",onClick:t.toggleRepeat,disabled:!t.canToggleRepeat})}),Gn=O.observer(()=>{const t=q();return N(c.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o($n,{}),o(jn,{}),o(qn,{}),t.playing?o(zn,{}):o(Ln,{}),o(Qn,{}),o(Un,{}),o(Yn,{})]})}),Hn=h.memo(({item:t,closePopover:e})=>{const r=G.useNostalgicDiva(),a=h.useMemo(()=>[{id:0,items:[{name:"Open in new tab",icon:o(c.EuiIcon,{type:w.OpenRegular}),onClick:async()=>{e(),await r.pause(),window.open(t.dto.url,"_blank")}},{name:"Copy link address",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await navigator.clipboard.writeText(t.dto.url)}},{name:"Copy link text",icon:o(c.EuiIcon,{type:""}),onClick:async()=>{e(),await navigator.clipboard.writeText(t.dto.title)}}]}],[e,r,t]);return o(c.EuiContextMenu,{initialPanelId:0,panels:a})}),Wn=h.memo(({item:t})=>{const[e,r]=h.useState(!1),a=h.useCallback(()=>r(!e),[e]),i=h.useCallback(()=>r(!1),[]);return o(c.EuiPopover,{button:o(c.EuiButtonEmpty,{iconType:zt[t.type],size:"s",onClick:a,children:t.title}),isOpen:e,closePopover:i,panelPaddingSize:"none",anchorPosition:"upLeft",children:o(Hn,{item:t,closePopover:i})})}),Jn=O.observer(()=>{const t=q();return o(c.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexStart",alignItems:"center",children:t.currentItem&&o(Wn,{item:t.currentItem})})}),Kn=O.observer(()=>{const t=q();return o(c.EuiButtonIcon,{title:"Mute","aria-label":"Mute",iconType:w.Speaker2Regular,size:"s",iconSize:"l",disabled:!t.controller.supports("setMuted")})}),Xn=O.observer(({button:t,isOpen:e,closePopover:r})=>{const a=q(),[i,s]=h.useState("0"),d=G.useNostalgicDiva();h.useLayoutEffect(()=>{e&&d.getVolume().then(y=>{y!==void 0&&s(Math.floor(y*100).toString())})},[e,d]);const p=h.useCallback(async y=>{s(y.currentTarget.value),await d.setVolume(Number(y.currentTarget.value)/100)},[d]);return o(c.EuiPopover,{button:t,isOpen:e,closePopover:r,anchorPosition:"upRight",children:o(c.EuiFormRow,{children:N(c.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o(Kn,{}),o(c.EuiRange,{min:0,max:100,step:1,value:i,onChange:p,css:{blockSize:32},disabled:!a.controller.supports("setVolume")})]})})})}),Zn=O.observer(()=>{const t=q(),[e,r]=h.useState(!1),a=()=>r(!e);return o(Xn,{button:o(c.EuiButtonIcon,{title:"Volume","aria-label":"Volume",iconType:w.Speaker2Regular,size:"s",iconSize:"l",onClick:a,disabled:!t.controller.supports("getVolume")}),isOpen:e,closePopover:()=>r(!1)})}),ea=({onClickPlayQueueButton:t})=>o(c.EuiButtonIcon,{title:"Play queue","aria-label":"Play queue",iconType:w.NavigationPlayRegular,size:"s",iconSize:"l",onClick:t}),ta=O.observer(({closePopover:t})=>{const e=q(),r=G.useNostalgicDiva(),a=h.useCallback(async()=>{await e.skipBack10(),t()},[e,t]),i=h.useCallback(async()=>{await e.skipForward30(),t()},[e,t]),s=h.useCallback(async I=>{await r.setPlaybackRate(I),t()},[r,t]),d=h.useCallback(async()=>{await e.removeFromPlayQueue(),t()},[e,t]),[p,y]=h.useState(),g=h.useCallback(async()=>{await e.controller.getPlaybackRate().then(I=>y(I))},[e]),S=h.useMemo(()=>[{id:0,items:[{name:"Speed",icon:o(c.EuiIcon,{type:w.TopSpeedRegular}),panel:1,onClick:g,disabled:!e.controller.supports("getPlaybackRate")},{name:"Skip back 10 seconds",icon:o(c.EuiIcon,{type:w.SkipBack10Regular}),onClick:a,disabled:!e.canSkipBack10},{name:"Skip forward 30 seconds",icon:o(c.EuiIcon,{type:w.SkipForward30Regular}),onClick:i,disabled:!e.canSkipForward30},{isSeparator:!0},{name:"Remove from play queue",icon:o(c.EuiIcon,{type:w.DismissRegular}),onClick:d,disabled:!e.canRemoveFromPlayQueue}]},{id:1,title:"Speed",items:[.25,.5,.75,1,1.25,1.5,1.75,2].map(I=>({name:I.toString(),onClick:()=>s(I),icon:I===p?"check":"empty",disabled:!e.controller.supports("setPlaybackRate")}))}],[e,g,a,i,d,s,p]);return o(c.EuiContextMenu,{initialPanelId:0,panels:S})}),ra=h.memo(({button:t,isOpen:e,closePopover:r})=>o(c.EuiPopover,{button:t,isOpen:e,closePopover:r,panelPaddingSize:"none",anchorPosition:"upRight",children:o(ta,{closePopover:r})})),na=h.memo(()=>{const[t,e]=h.useState(!1),r=()=>e(!t);return o(ra,{button:o(c.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:w.MoreHorizontalFilled,size:"s",iconSize:"l",onClick:r}),isOpen:t,closePopover:()=>e(!1)})}),aa=h.memo(({onClickPlayQueueButton:t})=>N(c.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexEnd",alignItems:"center",children:[o(Zn,{}),t&&o(ea,{onClickPlayQueueButton:t}),o(na,{})]})),ia=O.observer(()=>{const t=q(),e=G.useNostalgicDiva(),r=h.useCallback(s=>{const d=Number(s.currentTarget.value)/100;t.setPercent(d)},[t]),a=h.useCallback(s=>{s.button===0&&t.setSeeking(!0)},[t]),i=h.useCallback(async s=>{if(s.button===0){const d=Number(s.currentTarget.value)/100;t.setSeeking(!1);const p=await e.getDuration();p!==void 0&&await e.setCurrentTime(p*d)}},[t,e]);return o(c.EuiRange,{min:0,max:100,step:1e-7,value:t.percent*100,onChange:r,onMouseDown:a,onMouseUp:i,fullWidth:!0,showRange:!0,css:{blockSize:32},disabled:!t.canSeek})}),oa=O.observer(({onClickPlayQueueButton:t})=>o(c.EuiBottomBar,{paddingSize:"s",children:N(c.EuiFlexGroup,{direction:"column",gutterSize:"none",children:[o(c.EuiFlexItem,{children:o(ia,{})}),o(c.EuiFlexItem,{children:N(c.EuiFlexGroup,{responsive:!1,children:[o(c.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(Jn,{})}),o(c.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(Gn,{})}),o(c.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(aa,{onClickPlayQueueButton:t})})]})})]})})),Xe={width:400,height:225},sa=O.observer(()=>{const t=Kr(),e=h.useMemo(()=>({onLoaded:t.onLoaded,onPlay:t.onPlay,onPause:t.onPause,onEnded:t.onEnded,onTimeUpdate:t.onTimeUpdate}),[t]);return o("div",{css:{position:"fixed",right:0,bottom:Ze,width:Xe.width,height:Xe.height,zIndex:998,backgroundColor:"rgb(39, 39, 39)",display:"flex",flexDirection:"column"},children:o("div",{css:{flexGrow:1,backgroundColor:"black"},children:t.currentItem&&o(G.NostalgicDiva,{src:t.currentItem.url,options:e,onControllerChange:t.onControllerChange})})})}),la=O.observer(({children:t})=>{const e=we();return N(c.EuiPageTemplate,{panelled:!0,style:{minBlockSize:`max(460px, 100vh - ${Ze}px)`},children:[t,!e.isEmpty&&o(c.EuiSpacer,{style:{blockSize:Xe.height}})]})});exports.BottomBar=oa;exports.HydrangeanDivaProvider=en;exports.MediaPlayerLayout=la;exports.MiniPlayer=sa;exports.MobXObservableStateProvider=Se;exports.ObservableStateProvider=yr;exports.PlayQueue=Lt;exports.PlayQueueContext=et;exports.PlayQueuePage=Nn;exports.RepeatMode=_;exports.bottomBarHeight=Ze;exports.usePlayQueue=we;
15
15
  //# sourceMappingURL=index.cjs.js.map