@aigamo/hydrangean-diva 0.0.1-alpha.10 → 0.0.1-alpha.12

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 (41) hide show
  1. package/dist/features/common/index.d.ts +2 -0
  2. package/dist/features/common/interfaces/index.d.ts +1 -0
  3. package/dist/features/{media-player → common}/stores/MobXObservableStateProvider.d.ts +1 -1
  4. package/dist/features/{media-player → common}/stores/ObservableStateProvider.d.ts +1 -1
  5. package/dist/features/common/stores/index.d.ts +2 -0
  6. package/dist/features/{media-player → media-player.play-queue}/components/AddVideoButton.d.ts +2 -2
  7. package/dist/features/media-player.play-queue/components/HydrangeanDiva.d.ts +9 -0
  8. package/dist/features/{media-player → media-player.play-queue}/components/PlayQueueTable.d.ts +2 -2
  9. package/dist/features/media-player.play-queue/components/index.d.ts +2 -0
  10. package/dist/features/media-player.play-queue/index.d.ts +2 -0
  11. package/dist/features/{media-player/stores → media-player.play-queue/interfaces}/IPlayQueueItemStore.d.ts +1 -6
  12. package/dist/features/media-player.play-queue/interfaces/IPlayQueueStore.d.ts +37 -0
  13. package/dist/features/media-player.play-queue/interfaces/PlayQueueDto.d.ts +11 -0
  14. package/dist/features/media-player.play-queue/interfaces/PlayQueueItemDto.d.ts +9 -0
  15. package/dist/features/media-player.play-queue/interfaces/index.d.ts +3 -0
  16. package/dist/features/{media-player → media-player.play-queue}/stores/PlayQueueItemStore.d.ts +5 -5
  17. package/dist/features/{media-player → media-player.play-queue}/stores/PlayQueueStore.d.ts +10 -9
  18. package/dist/features/media-player.player/components/BottomBar.d.ts +12 -0
  19. package/dist/features/{media-player → media-player.player}/components/MiniPlayer.d.ts +4 -4
  20. package/dist/features/{media-player → media-player.player}/components/PlayerStoreContext.d.ts +2 -2
  21. package/dist/features/{media-player → media-player.player}/components/index.d.ts +0 -2
  22. package/dist/features/{media-player → media-player.player}/index.d.ts +0 -1
  23. package/dist/features/media-player.player/interfaces/IPlayerStore.d.ts +11 -0
  24. package/dist/features/{media-player → media-player.player}/stores/PlayerStore.d.ts +3 -2
  25. package/dist/index.cjs.js +6 -6
  26. package/dist/index.cjs.js.map +1 -1
  27. package/dist/index.d.ts +3 -1
  28. package/dist/index.es.js +954 -948
  29. package/dist/index.es.js.map +1 -1
  30. package/package.json +3 -1
  31. package/dist/features/media-player/components/BottomBar.d.ts +0 -12
  32. package/dist/features/media-player/components/HydrangeanDiva.d.ts +0 -11
  33. package/dist/features/media-player/stores/IPlayQueueStore.d.ts +0 -15
  34. package/dist/features/media-player/stores/PlayQueueLocalStorageState.d.ts +0 -10
  35. package/dist/features/media-player/stores/index.d.ts +0 -6
  36. /package/dist/features/{media-player/stores → common/interfaces}/IObservableStateProvider.d.ts +0 -0
  37. /package/dist/features/{media-player → common}/stores/getOrAddSchema.d.ts +0 -0
  38. /package/dist/features/{media-player → media-player.play-queue}/components/PlayQueueStoreContext.d.ts +0 -0
  39. /package/dist/features/{media-player/stores → media-player.play-queue/interfaces}/RepeatMode.d.ts +0 -0
  40. /package/dist/features/{media-player → media-player.play-queue}/pages/PlayQueuePage.d.ts +0 -0
  41. /package/dist/features/{media-player → media-player.player}/components/MediaPlayerLayout.d.ts +0 -0
@@ -0,0 +1,2 @@
1
+ export * from './interfaces';
2
+ export * from './stores';
@@ -0,0 +1 @@
1
+ export * from './IObservableStateProvider';
@@ -1,5 +1,5 @@
1
1
  import { AnnotationsMap } from 'mobx';
2
- import { IObservableStateProvider } from './IObservableStateProvider';
2
+ import { IObservableStateProvider } from '../interfaces/IObservableStateProvider';
3
3
  export declare class MobXObservableStateProvider implements IObservableStateProvider {
4
4
  makeObservable<T extends object, AdditionalKeys extends PropertyKey = never>(target: T, annotations?: AnnotationsMap<T, AdditionalKeys>): T;
5
5
  }
@@ -1,5 +1,5 @@
1
1
  import { AnnotationsMap } from 'mobx';
2
- import { IObservableStateProvider } from './IObservableStateProvider';
2
+ import { IObservableStateProvider } from '../interfaces/IObservableStateProvider';
3
3
  export declare class ObservableStateProvider implements IObservableStateProvider {
4
4
  makeObservable<T extends object, AdditionalKeys extends PropertyKey = never>(target: T, annotations?: AnnotationsMap<T, AdditionalKeys>): T;
5
5
  }
@@ -0,0 +1,2 @@
1
+ export * from './MobXObservableStateProvider';
2
+ export * from './ObservableStateProvider';
@@ -1,7 +1,7 @@
1
1
  import { default as React, ReactElement } from 'react';
2
- import { PlayQueueStore } from '../stores/PlayQueueStore';
2
+ import { IPlayQueueStore } from '../interfaces/IPlayQueueStore';
3
3
  interface AddVideoButtonProps {
4
- playQueueStore: PlayQueueStore;
4
+ playQueueStore: IPlayQueueStore;
5
5
  }
6
6
  export declare const AddVideoButton: React.MemoExoticComponent<({ playQueueStore }: AddVideoButtonProps) => ReactElement>;
7
7
  export {};
@@ -0,0 +1,9 @@
1
+ import { ReactElement } from 'react';
2
+ import { IPlayQueueStore } from '../interfaces/IPlayQueueStore';
3
+ interface HydrangeanDivaProps {
4
+ playQueueStore: IPlayQueueStore;
5
+ }
6
+ export declare const HydrangeanDiva: (({ playQueueStore }: HydrangeanDivaProps) => ReactElement) & {
7
+ displayName: string;
8
+ };
9
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { ReactElement } from 'react';
2
- import { PlayQueueStore } from '../stores/PlayQueueStore';
2
+ import { IPlayQueueStore } from '../interfaces/IPlayQueueStore';
3
3
  interface PlayQueueTableProps {
4
- playQueueStore: PlayQueueStore;
4
+ playQueueStore: IPlayQueueStore;
5
5
  }
6
6
  export declare const PlayQueueTable: (({ playQueueStore }: PlayQueueTableProps) => ReactElement) & {
7
7
  displayName: string;
@@ -0,0 +1,2 @@
1
+ export * from './HydrangeanDiva';
2
+ export * from './PlayQueueStoreContext';
@@ -0,0 +1,2 @@
1
+ export * from './components';
2
+ export * from './interfaces';
@@ -1,10 +1,5 @@
1
1
  import { PlayerType } from '@aigamo/nostalgic-diva';
2
- export interface PlayQueueItemDto {
3
- readonly url: string;
4
- readonly type: PlayerType;
5
- readonly videoId: string;
6
- readonly title: string;
7
- }
2
+ import { PlayQueueItemDto } from './PlayQueueItemDto';
8
3
  export interface IPlayQueueItemStore {
9
4
  readonly id: number;
10
5
  isSelected: boolean;
@@ -0,0 +1,37 @@
1
+ import { IPlayQueueItemStore } from './IPlayQueueItemStore';
2
+ import { PlayQueueItemDto } from './PlayQueueItemDto';
3
+ import { RepeatMode } from './RepeatMode';
4
+ export interface IPlayQueueStore {
5
+ readonly interacted: boolean;
6
+ readonly items: IPlayQueueItemStore[];
7
+ readonly repeat: RepeatMode;
8
+ readonly shuffle: boolean;
9
+ createItem(dto: PlayQueueItemDto): IPlayQueueItemStore;
10
+ readonly isEmpty: boolean;
11
+ readonly currentItem: IPlayQueueItemStore | undefined;
12
+ readonly canPlay: boolean;
13
+ readonly hasMultipleItems: boolean;
14
+ readonly hasPreviousItem: boolean;
15
+ readonly hasNextItem: boolean;
16
+ readonly isLastItem: boolean;
17
+ allItemsSelected: boolean;
18
+ readonly selectedItems: IPlayQueueItemStore[];
19
+ setItems(value: IPlayQueueItemStore[]): void;
20
+ clear(): void;
21
+ setCurrentItem(item: IPlayQueueItemStore | undefined): void;
22
+ playNext(items: IPlayQueueItemStore[]): Promise<void>;
23
+ playSelectedItemsNext(): Promise<void>;
24
+ addItems(items: IPlayQueueItemStore[]): Promise<void>;
25
+ addSelectedItems(): Promise<void>;
26
+ playFirst(items: IPlayQueueItemStore[]): Promise<void>;
27
+ moveItem(item: IPlayQueueItemStore, index: number): void;
28
+ removeItems(items: IPlayQueueItemStore[]): Promise<void>;
29
+ removeSelectedItems(): Promise<void>;
30
+ removeItemsAbove(item: IPlayQueueItemStore): Promise<void>;
31
+ removeOtherItems(item: IPlayQueueItemStore): Promise<void>;
32
+ toggleRepeat(): void;
33
+ toggleShuffle(): void;
34
+ previous(): Promise<void>;
35
+ next(): Promise<void>;
36
+ goToFirst(): Promise<void>;
37
+ }
@@ -0,0 +1,11 @@
1
+ import { JSONSchemaType } from 'ajv';
2
+ import { PlayQueueItemDto } from './PlayQueueItemDto';
3
+ import { RepeatMode } from './RepeatMode';
4
+ export interface PlayQueueDto {
5
+ readonly version?: '1.0';
6
+ readonly repeat?: RepeatMode;
7
+ readonly shuffle?: boolean;
8
+ readonly items?: PlayQueueItemDto[];
9
+ readonly currentIndex?: number;
10
+ }
11
+ export declare const PlayQueueDtoSchema: JSONSchemaType<PlayQueueDto>;
@@ -0,0 +1,9 @@
1
+ import { PlayerType } from '@aigamo/nostalgic-diva';
2
+ import { JSONSchemaType } from 'ajv';
3
+ export interface PlayQueueItemDto {
4
+ readonly url: string;
5
+ readonly type: PlayerType;
6
+ readonly videoId: string;
7
+ readonly title: string;
8
+ }
9
+ export declare const PlayQueueItemDtoSchema: JSONSchemaType<PlayQueueItemDto>;
@@ -0,0 +1,3 @@
1
+ export * from './IPlayQueueItemStore';
2
+ export * from './IPlayQueueStore';
3
+ export * from './RepeatMode';
@@ -1,8 +1,8 @@
1
1
  import { PlayerType } from '@aigamo/nostalgic-diva';
2
- import { IObservableStateProvider } from './IObservableStateProvider';
3
- import { IPlayQueueItemStore, PlayQueueItemDto } from './IPlayQueueItemStore';
4
- import { IPlayQueueStore } from './IPlayQueueStore';
5
- import { PlayQueueStore } from './PlayQueueStore';
2
+ import { IObservableStateProvider } from '../../common/interfaces/IObservableStateProvider';
3
+ import { IPlayQueueItemStore } from '../interfaces/IPlayQueueItemStore';
4
+ import { IPlayQueueStore } from '../interfaces/IPlayQueueStore';
5
+ import { PlayQueueItemDto } from '../interfaces/PlayQueueItemDto';
6
6
  export declare class PlayQueueItemStore implements IPlayQueueItemStore {
7
7
  readonly observableStateProvider: IObservableStateProvider;
8
8
  readonly playQueueStore: IPlayQueueStore;
@@ -11,7 +11,7 @@ export declare class PlayQueueItemStore implements IPlayQueueItemStore {
11
11
  readonly id: number;
12
12
  isSelected: boolean;
13
13
  constructor(observableStateProvider: IObservableStateProvider, playQueueStore: IPlayQueueStore, dto: PlayQueueItemDto);
14
- static fromDto(observableStateProvider: IObservableStateProvider, playQueueStore: PlayQueueStore, dto: PlayQueueItemDto): IPlayQueueItemStore;
14
+ static fromDto(observableStateProvider: IObservableStateProvider, playQueueStore: IPlayQueueStore, dto: PlayQueueItemDto): IPlayQueueItemStore;
15
15
  get url(): string;
16
16
  get type(): PlayerType;
17
17
  get videoId(): string;
@@ -1,10 +1,11 @@
1
1
  import { LocalStorageStateStore } from '@aigamo/route-sphere';
2
- import { IObservableStateProvider } from './IObservableStateProvider';
3
- import { IPlayQueueItemStore, PlayQueueItemDto } from './IPlayQueueItemStore';
4
- import { IPlayQueueStore } from './IPlayQueueStore';
5
- import { PlayQueueLocalStorageState } from './PlayQueueLocalStorageState';
6
- import { RepeatMode } from './RepeatMode';
7
- export declare class PlayQueueStore implements IPlayQueueStore, LocalStorageStateStore<PlayQueueLocalStorageState> {
2
+ import { IObservableStateProvider } from '../../common/interfaces/IObservableStateProvider';
3
+ import { IPlayQueueItemStore } from '../interfaces/IPlayQueueItemStore';
4
+ import { IPlayQueueStore } from '../interfaces/IPlayQueueStore';
5
+ import { PlayQueueDto } from '../interfaces/PlayQueueDto';
6
+ import { PlayQueueItemDto } from '../interfaces/PlayQueueItemDto';
7
+ import { RepeatMode } from '../interfaces/RepeatMode';
8
+ export declare class PlayQueueStore implements IPlayQueueStore, LocalStorageStateStore<PlayQueueDto> {
8
9
  readonly observableStateProvider: IObservableStateProvider;
9
10
  interacted: boolean;
10
11
  items: IPlayQueueItemStore[];
@@ -13,9 +14,9 @@ export declare class PlayQueueStore implements IPlayQueueStore, LocalStorageStat
13
14
  shuffle: boolean;
14
15
  constructor(observableStateProvider: IObservableStateProvider);
15
16
  createItem(dto: PlayQueueItemDto): IPlayQueueItemStore;
16
- get localStorageState(): PlayQueueLocalStorageState;
17
- set localStorageState(value: PlayQueueLocalStorageState);
18
- validateLocalStorageState(localStorageState: any): localStorageState is PlayQueueLocalStorageState;
17
+ get localStorageState(): PlayQueueDto;
18
+ set localStorageState(value: PlayQueueDto);
19
+ validateLocalStorageState(localStorageState: any): localStorageState is PlayQueueDto;
19
20
  get isEmpty(): boolean;
20
21
  get currentItem(): IPlayQueueItemStore | undefined;
21
22
  get canPlay(): boolean;
@@ -0,0 +1,12 @@
1
+ import { ReactElement } from 'react';
2
+ import { IPlayQueueStore } from '../../media-player.play-queue/interfaces/IPlayQueueStore';
3
+ import { IPlayerStore } from '../interfaces/IPlayerStore';
4
+ export declare const bottomBarHeight: number;
5
+ interface BottomBarProps {
6
+ playerStore: IPlayerStore;
7
+ playQueueStore: IPlayQueueStore;
8
+ }
9
+ export declare const BottomBar: (({ playerStore, playQueueStore }: BottomBarProps) => ReactElement) & {
10
+ displayName: string;
11
+ };
12
+ export {};
@@ -1,13 +1,13 @@
1
1
  import { ReactElement } from 'react';
2
- import { PlayerStore } from '../stores/PlayerStore';
3
- import { PlayQueueStore } from '../stores/PlayQueueStore';
2
+ import { IPlayQueueStore } from '../../media-player.play-queue/interfaces/IPlayQueueStore';
3
+ import { IPlayerStore } from '../interfaces/IPlayerStore';
4
4
  export declare const miniPlayerSize: {
5
5
  readonly width: number;
6
6
  readonly height: number;
7
7
  };
8
8
  interface MiniPlayerProps {
9
- playerStore: PlayerStore;
10
- playQueueStore: PlayQueueStore;
9
+ playerStore: IPlayerStore;
10
+ playQueueStore: IPlayQueueStore;
11
11
  }
12
12
  export declare const MiniPlayer: (({ playerStore, playQueueStore }: MiniPlayerProps) => ReactElement) & {
13
13
  displayName: string;
@@ -1,8 +1,8 @@
1
1
  import { ReactElement, ReactNode } from 'react';
2
- import { PlayerStore } from '../stores/PlayerStore';
2
+ import { IPlayerStore } from '../interfaces/IPlayerStore';
3
3
  interface PlayerStoreProviderProps {
4
4
  children?: ReactNode;
5
5
  }
6
6
  export declare const PlayerStoreProvider: ({ children, }: PlayerStoreProviderProps) => ReactElement;
7
- export declare const usePlayerStore: () => PlayerStore;
7
+ export declare const usePlayerStore: () => IPlayerStore;
8
8
  export {};
@@ -1,6 +1,4 @@
1
1
  export * from './BottomBar';
2
- export * from './HydrangeanDiva';
3
2
  export * from './MediaPlayerLayout';
4
3
  export * from './MiniPlayer';
5
4
  export * from './PlayerStoreContext';
6
- export * from './PlayQueueStoreContext';
@@ -1,2 +1 @@
1
1
  export * from './components';
2
- export * from './stores';
@@ -0,0 +1,11 @@
1
+ import { TimeEvent } from '@aigamo/nostalgic-diva';
2
+ export interface IPlayerStore {
3
+ readonly playing: boolean;
4
+ readonly percent: number;
5
+ setPercent(value: number): void;
6
+ setSeeking(value: boolean): void;
7
+ onPlay(): void;
8
+ onPause(): void;
9
+ onEnded(): void;
10
+ onTimeUpdate({ percent }: TimeEvent): void;
11
+ }
@@ -1,6 +1,7 @@
1
1
  import { TimeEvent } from '@aigamo/nostalgic-diva';
2
- import { IObservableStateProvider } from './IObservableStateProvider';
3
- export declare class PlayerStore {
2
+ import { IObservableStateProvider } from '../../common/interfaces/IObservableStateProvider';
3
+ import { IPlayerStore } from '../interfaces/IPlayerStore';
4
+ export declare class PlayerStore implements IPlayerStore {
4
5
  playing: boolean;
5
6
  percent: number;
6
7
  seeking: boolean;
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var er=Object.defineProperty;var tr=(t,e,n)=>e in t?er(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var U=(t,e,n)=>tr(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react"),rr=require("@emotion/cache"),J=require("@aigamo/nostalgic-diva"),l=require("@elastic/eui"),R=require("@fluentui/react-icons"),Y=require("mobx-react-lite"),nr=require("react-sortablejs"),u=require("mobx"),ft=require("lodash-es"),ir=require("ajv");function or(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:()=>t[n]})}}return e.default=t,Object.freeze(e)}const Z=or(p);var _e={exports:{}},he={};/**
1
+ "use strict";var er=Object.defineProperty;var tr=(t,e,n)=>e in t?er(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var U=(t,e,n)=>tr(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("mobx"),p=require("react"),rr=require("@emotion/cache"),l=require("@elastic/eui"),R=require("@fluentui/react-icons"),Y=require("mobx-react-lite"),J=require("@aigamo/nostalgic-diva"),nr=require("react-sortablejs"),ft=require("lodash-es"),ir=require("ajv");function or(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:()=>t[n]})}}return e.default=t,Object.freeze(e)}const Z=or(p);class Ke{makeObservable(e,n){return u.makeObservable(e,n)}}class ar{makeObservable(e,n){return e}}var _e={exports:{}},he={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.min.js
4
4
  *
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var mt;function ar(){if(mt)return he;mt=1;var t=p,e=Symbol.for("react.element"),n=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function m(y,h,g){var S,O={},z=null,D=null;g!==void 0&&(z=""+g),h.key!==void 0&&(z=""+h.key),h.ref!==void 0&&(D=h.ref);for(S in h)i.call(h,S)&&!c.hasOwnProperty(S)&&(O[S]=h[S]);if(y&&y.defaultProps)for(S in h=y.defaultProps,h)O[S]===void 0&&(O[S]=h[S]);return{$$typeof:e,type:y,key:z,ref:D,props:O,_owner:a.current}}return he.Fragment=n,he.jsx=m,he.jsxs=m,he}var pe={};/**
9
+ */var mt;function sr(){if(mt)return he;mt=1;var t=p,e=Symbol.for("react.element"),n=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function m(y,h,g){var S,O={},z=null,D=null;g!==void 0&&(z=""+g),h.key!==void 0&&(z=""+h.key),h.ref!==void 0&&(D=h.ref);for(S in h)i.call(h,S)&&!c.hasOwnProperty(S)&&(O[S]=h[S]);if(y&&y.defaultProps)for(S in h=y.defaultProps,h)O[S]===void 0&&(O[S]=h[S]);return{$$typeof:e,type:y,key:z,ref:D,props:O,_owner:a.current}}return he.Fragment=n,he.jsx=m,he.jsxs=m,he}var pe={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var vt;function sr(){return vt||(vt=1,process.env.NODE_ENV!=="production"&&function(){var t=p,e=Symbol.for("react.element"),n=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),m=Symbol.for("react.provider"),y=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),S=Symbol.for("react.suspense_list"),O=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),D=Symbol.for("react.offscreen"),F=Symbol.iterator,W="@@iterator";function K(r){if(r===null||typeof r!="object")return null;var s=F&&r[F]||r[W];return typeof s=="function"?s:null}var B=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function w(r){{for(var s=arguments.length,f=new Array(s>1?s-1:0),b=1;b<s;b++)f[b-1]=arguments[b];M("error",r,f)}}function M(r,s,f){{var b=B.ReactDebugCurrentFrame,I=b.getStackAddendum();I!==""&&(s+="%s",f=f.concat([I]));var P=f.map(function(x){return String(x)});P.unshift("Warning: "+s),Function.prototype.apply.call(console[r],console,P)}}var k=!1,d=!1,L=!1,se=!1,Ee=!1,xe;xe=Symbol.for("react.module.reference");function je(r){return!!(typeof r=="string"||typeof r=="function"||r===i||r===c||Ee||r===a||r===g||r===S||se||r===D||k||d||L||typeof r=="object"&&r!==null&&(r.$$typeof===z||r.$$typeof===O||r.$$typeof===m||r.$$typeof===y||r.$$typeof===h||r.$$typeof===xe||r.getModuleId!==void 0))}function Ne(r,s,f){var b=r.displayName;if(b)return b;var I=s.displayName||s.name||"";return I!==""?f+"("+I+")":f}function Se(r){return r.displayName||"Context"}function H(r){if(r==null)return null;if(typeof r.tag=="number"&&w("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof r=="function")return r.displayName||r.name||null;if(typeof r=="string")return r;switch(r){case i:return"Fragment";case n:return"Portal";case c:return"Profiler";case a:return"StrictMode";case g:return"Suspense";case S:return"SuspenseList"}if(typeof r=="object")switch(r.$$typeof){case y:var s=r;return Se(s)+".Consumer";case m:var f=r;return Se(f._context)+".Provider";case h:return Ne(r,r.render,"ForwardRef");case O:var b=r.displayName||null;return b!==null?b:H(r.type)||"Memo";case z:{var I=r,P=I._payload,x=I._init;try{return H(x(P))}catch{return null}}}return null}var X=Object.assign,Q=0,Ie,Te,le,Ce,ce,Pe,Re;function we(){}we.__reactDisabledLog=!0;function De(){{if(Q===0){Ie=console.log,Te=console.info,le=console.warn,Ce=console.error,ce=console.group,Pe=console.groupCollapsed,Re=console.groupEnd;var r={configurable:!0,enumerable:!0,value:we,writable:!0};Object.defineProperties(console,{info:r,log:r,warn:r,error:r,group:r,groupCollapsed:r,groupEnd:r})}Q++}}function $e(){{if(Q--,Q===0){var r={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:X({},r,{value:Ie}),info:X({},r,{value:Te}),warn:X({},r,{value:le}),error:X({},r,{value:Ce}),group:X({},r,{value:ce}),groupCollapsed:X({},r,{value:Pe}),groupEnd:X({},r,{value:Re})})}Q<0&&w("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ue=B.ReactCurrentDispatcher,de;function re(r,s,f){{if(de===void 0)try{throw Error()}catch(I){var b=I.stack.trim().match(/\n( *(at )?)/);de=b&&b[1]||""}return`
17
+ */var vt;function lr(){return vt||(vt=1,process.env.NODE_ENV!=="production"&&function(){var t=p,e=Symbol.for("react.element"),n=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),m=Symbol.for("react.provider"),y=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),S=Symbol.for("react.suspense_list"),O=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),D=Symbol.for("react.offscreen"),F=Symbol.iterator,W="@@iterator";function K(r){if(r===null||typeof r!="object")return null;var s=F&&r[F]||r[W];return typeof s=="function"?s:null}var B=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function w(r){{for(var s=arguments.length,f=new Array(s>1?s-1:0),b=1;b<s;b++)f[b-1]=arguments[b];M("error",r,f)}}function M(r,s,f){{var b=B.ReactDebugCurrentFrame,I=b.getStackAddendum();I!==""&&(s+="%s",f=f.concat([I]));var P=f.map(function(x){return String(x)});P.unshift("Warning: "+s),Function.prototype.apply.call(console[r],console,P)}}var k=!1,d=!1,L=!1,se=!1,Ee=!1,xe;xe=Symbol.for("react.module.reference");function je(r){return!!(typeof r=="string"||typeof r=="function"||r===i||r===c||Ee||r===a||r===g||r===S||se||r===D||k||d||L||typeof r=="object"&&r!==null&&(r.$$typeof===z||r.$$typeof===O||r.$$typeof===m||r.$$typeof===y||r.$$typeof===h||r.$$typeof===xe||r.getModuleId!==void 0))}function Ne(r,s,f){var b=r.displayName;if(b)return b;var I=s.displayName||s.name||"";return I!==""?f+"("+I+")":f}function Se(r){return r.displayName||"Context"}function H(r){if(r==null)return null;if(typeof r.tag=="number"&&w("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof r=="function")return r.displayName||r.name||null;if(typeof r=="string")return r;switch(r){case i:return"Fragment";case n:return"Portal";case c:return"Profiler";case a:return"StrictMode";case g:return"Suspense";case S:return"SuspenseList"}if(typeof r=="object")switch(r.$$typeof){case y:var s=r;return Se(s)+".Consumer";case m:var f=r;return Se(f._context)+".Provider";case h:return Ne(r,r.render,"ForwardRef");case O:var b=r.displayName||null;return b!==null?b:H(r.type)||"Memo";case z:{var I=r,P=I._payload,x=I._init;try{return H(x(P))}catch{return null}}}return null}var X=Object.assign,Q=0,Ie,Te,le,Ce,ce,Pe,Re;function we(){}we.__reactDisabledLog=!0;function De(){{if(Q===0){Ie=console.log,Te=console.info,le=console.warn,Ce=console.error,ce=console.group,Pe=console.groupCollapsed,Re=console.groupEnd;var r={configurable:!0,enumerable:!0,value:we,writable:!0};Object.defineProperties(console,{info:r,log:r,warn:r,error:r,group:r,groupCollapsed:r,groupEnd:r})}Q++}}function $e(){{if(Q--,Q===0){var r={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:X({},r,{value:Ie}),info:X({},r,{value:Te}),warn:X({},r,{value:le}),error:X({},r,{value:Ce}),group:X({},r,{value:ce}),groupCollapsed:X({},r,{value:Pe}),groupEnd:X({},r,{value:Re})})}Q<0&&w("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ue=B.ReactCurrentDispatcher,de;function re(r,s,f){{if(de===void 0)try{throw Error()}catch(I){var b=I.stack.trim().match(/\n( *(at )?)/);de=b&&b[1]||""}return`
18
18
  `+de+r}}var fe=!1,ne;{var ze=typeof WeakMap=="function"?WeakMap:Map;ne=new ze}function v(r,s){if(!r||fe)return"";{var f=ne.get(r);if(f!==void 0)return f}var b;fe=!0;var I=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var P;P=ue.current,ue.current=null,De();try{if(s){var x=function(){throw Error()};if(Object.defineProperty(x.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(x,[])}catch(V){b=V}Reflect.construct(r,[],x)}else{try{x.call()}catch(V){b=V}r.call(x.prototype)}}else{try{throw Error()}catch(V){b=V}r()}}catch(V){if(V&&b&&typeof V.stack=="string"){for(var E=V.stack.split(`
19
19
  `),$=b.stack.split(`
20
20
  `),A=E.length-1,j=$.length-1;A>=1&&j>=0&&E[A]!==$[j];)j--;for(;A>=1&&j>=0;A--,j--)if(E[A]!==$[j]){if(A!==1||j!==1)do if(A--,j--,j<0||E[A]!==$[j]){var q=`
@@ -27,19 +27,19 @@ Check the top-level render call using <`+f+">.")}return s}}function lt(r,s){{if(
27
27
  <%s {...props} />
28
28
  React keys must be passed directly to JSX without using spread:
29
29
  let props = %s;
30
- <%s key={someKey} {...props} />`,We,te,Zt,te),ut[te+We]=!0}}return r===i?Ht(j):Ut(j),j}}function Gt(r,s,f){return dt(r,s,f,!0)}function Jt(r,s,f){return dt(r,s,f,!1)}var Kt=Jt,Xt=Gt;pe.Fragment=i,pe.jsx=Kt,pe.jsxs=Xt}()),pe}var ht;function lr(){return ht||(ht=1,process.env.NODE_ENV==="production"?_e.exports=ar():_e.exports=sr()),_e.exports}var be=lr(),ke={exports:{}},T={};/** @license React v16.13.1
30
+ <%s key={someKey} {...props} />`,We,te,Zt,te),ut[te+We]=!0}}return r===i?Ht(j):Ut(j),j}}function Gt(r,s,f){return dt(r,s,f,!0)}function Jt(r,s,f){return dt(r,s,f,!1)}var Kt=Jt,Xt=Gt;pe.Fragment=i,pe.jsx=Kt,pe.jsxs=Xt}()),pe}var ht;function cr(){return ht||(ht=1,process.env.NODE_ENV==="production"?_e.exports=sr():_e.exports=lr()),_e.exports}var be=cr(),ke={exports:{}},T={};/** @license React v16.13.1
31
31
  * react-is.production.min.js
32
32
  *
33
33
  * Copyright (c) Facebook, Inc. and its affiliates.
34
34
  *
35
35
  * This source code is licensed under the MIT license found in the
36
36
  * LICENSE file in the root directory of this source tree.
37
- */var pt;function cr(){if(pt)return T;pt=1;var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,n=t?Symbol.for("react.portal"):60106,i=t?Symbol.for("react.fragment"):60107,a=t?Symbol.for("react.strict_mode"):60108,c=t?Symbol.for("react.profiler"):60114,m=t?Symbol.for("react.provider"):60109,y=t?Symbol.for("react.context"):60110,h=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,S=t?Symbol.for("react.forward_ref"):60112,O=t?Symbol.for("react.suspense"):60113,z=t?Symbol.for("react.suspense_list"):60120,D=t?Symbol.for("react.memo"):60115,F=t?Symbol.for("react.lazy"):60116,W=t?Symbol.for("react.block"):60121,K=t?Symbol.for("react.fundamental"):60117,B=t?Symbol.for("react.responder"):60118,w=t?Symbol.for("react.scope"):60119;function M(d){if(typeof d=="object"&&d!==null){var L=d.$$typeof;switch(L){case e:switch(d=d.type,d){case h:case g:case i:case c:case a:case O:return d;default:switch(d=d&&d.$$typeof,d){case y:case S:case F:case D:case m:return d;default:return L}}case n:return L}}}function k(d){return M(d)===g}return T.AsyncMode=h,T.ConcurrentMode=g,T.ContextConsumer=y,T.ContextProvider=m,T.Element=e,T.ForwardRef=S,T.Fragment=i,T.Lazy=F,T.Memo=D,T.Portal=n,T.Profiler=c,T.StrictMode=a,T.Suspense=O,T.isAsyncMode=function(d){return k(d)||M(d)===h},T.isConcurrentMode=k,T.isContextConsumer=function(d){return M(d)===y},T.isContextProvider=function(d){return M(d)===m},T.isElement=function(d){return typeof d=="object"&&d!==null&&d.$$typeof===e},T.isForwardRef=function(d){return M(d)===S},T.isFragment=function(d){return M(d)===i},T.isLazy=function(d){return M(d)===F},T.isMemo=function(d){return M(d)===D},T.isPortal=function(d){return M(d)===n},T.isProfiler=function(d){return M(d)===c},T.isStrictMode=function(d){return M(d)===a},T.isSuspense=function(d){return M(d)===O},T.isValidElementType=function(d){return typeof d=="string"||typeof d=="function"||d===i||d===g||d===c||d===a||d===O||d===z||typeof d=="object"&&d!==null&&(d.$$typeof===F||d.$$typeof===D||d.$$typeof===m||d.$$typeof===y||d.$$typeof===S||d.$$typeof===K||d.$$typeof===B||d.$$typeof===w||d.$$typeof===W)},T.typeOf=M,T}var C={};/** @license React v16.13.1
37
+ */var pt;function ur(){if(pt)return T;pt=1;var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,n=t?Symbol.for("react.portal"):60106,i=t?Symbol.for("react.fragment"):60107,a=t?Symbol.for("react.strict_mode"):60108,c=t?Symbol.for("react.profiler"):60114,m=t?Symbol.for("react.provider"):60109,y=t?Symbol.for("react.context"):60110,h=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,S=t?Symbol.for("react.forward_ref"):60112,O=t?Symbol.for("react.suspense"):60113,z=t?Symbol.for("react.suspense_list"):60120,D=t?Symbol.for("react.memo"):60115,F=t?Symbol.for("react.lazy"):60116,W=t?Symbol.for("react.block"):60121,K=t?Symbol.for("react.fundamental"):60117,B=t?Symbol.for("react.responder"):60118,w=t?Symbol.for("react.scope"):60119;function M(d){if(typeof d=="object"&&d!==null){var L=d.$$typeof;switch(L){case e:switch(d=d.type,d){case h:case g:case i:case c:case a:case O:return d;default:switch(d=d&&d.$$typeof,d){case y:case S:case F:case D:case m:return d;default:return L}}case n:return L}}}function k(d){return M(d)===g}return T.AsyncMode=h,T.ConcurrentMode=g,T.ContextConsumer=y,T.ContextProvider=m,T.Element=e,T.ForwardRef=S,T.Fragment=i,T.Lazy=F,T.Memo=D,T.Portal=n,T.Profiler=c,T.StrictMode=a,T.Suspense=O,T.isAsyncMode=function(d){return k(d)||M(d)===h},T.isConcurrentMode=k,T.isContextConsumer=function(d){return M(d)===y},T.isContextProvider=function(d){return M(d)===m},T.isElement=function(d){return typeof d=="object"&&d!==null&&d.$$typeof===e},T.isForwardRef=function(d){return M(d)===S},T.isFragment=function(d){return M(d)===i},T.isLazy=function(d){return M(d)===F},T.isMemo=function(d){return M(d)===D},T.isPortal=function(d){return M(d)===n},T.isProfiler=function(d){return M(d)===c},T.isStrictMode=function(d){return M(d)===a},T.isSuspense=function(d){return M(d)===O},T.isValidElementType=function(d){return typeof d=="string"||typeof d=="function"||d===i||d===g||d===c||d===a||d===O||d===z||typeof d=="object"&&d!==null&&(d.$$typeof===F||d.$$typeof===D||d.$$typeof===m||d.$$typeof===y||d.$$typeof===S||d.$$typeof===K||d.$$typeof===B||d.$$typeof===w||d.$$typeof===W)},T.typeOf=M,T}var C={};/** @license React v16.13.1
38
38
  * react-is.development.js
39
39
  *
40
40
  * Copyright (c) Facebook, Inc. and its affiliates.
41
41
  *
42
42
  * This source code is licensed under the MIT license found in the
43
43
  * LICENSE file in the root directory of this source tree.
44
- */var yt;function ur(){return yt||(yt=1,process.env.NODE_ENV!=="production"&&function(){var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,n=t?Symbol.for("react.portal"):60106,i=t?Symbol.for("react.fragment"):60107,a=t?Symbol.for("react.strict_mode"):60108,c=t?Symbol.for("react.profiler"):60114,m=t?Symbol.for("react.provider"):60109,y=t?Symbol.for("react.context"):60110,h=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,S=t?Symbol.for("react.forward_ref"):60112,O=t?Symbol.for("react.suspense"):60113,z=t?Symbol.for("react.suspense_list"):60120,D=t?Symbol.for("react.memo"):60115,F=t?Symbol.for("react.lazy"):60116,W=t?Symbol.for("react.block"):60121,K=t?Symbol.for("react.fundamental"):60117,B=t?Symbol.for("react.responder"):60118,w=t?Symbol.for("react.scope"):60119;function M(v){return typeof v=="string"||typeof v=="function"||v===i||v===g||v===c||v===a||v===O||v===z||typeof v=="object"&&v!==null&&(v.$$typeof===F||v.$$typeof===D||v.$$typeof===m||v.$$typeof===y||v.$$typeof===S||v.$$typeof===K||v.$$typeof===B||v.$$typeof===w||v.$$typeof===W)}function k(v){if(typeof v=="object"&&v!==null){var me=v.$$typeof;switch(me){case e:var ie=v.type;switch(ie){case h:case g:case i:case c:case a:case O:return ie;default:var ee=ie&&ie.$$typeof;switch(ee){case y:case S:case F:case D:case m:return ee;default:return me}}case n:return me}}}var d=h,L=g,se=y,Ee=m,xe=e,je=S,Ne=i,Se=F,H=D,X=n,Q=c,Ie=a,Te=O,le=!1;function Ce(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)||k(v)===h}function ce(v){return k(v)===g}function Pe(v){return k(v)===y}function Re(v){return k(v)===m}function we(v){return typeof v=="object"&&v!==null&&v.$$typeof===e}function De(v){return k(v)===S}function $e(v){return k(v)===i}function ue(v){return k(v)===F}function de(v){return k(v)===D}function re(v){return k(v)===n}function fe(v){return k(v)===c}function ne(v){return k(v)===a}function ze(v){return k(v)===O}C.AsyncMode=d,C.ConcurrentMode=L,C.ContextConsumer=se,C.ContextProvider=Ee,C.Element=xe,C.ForwardRef=je,C.Fragment=Ne,C.Lazy=Se,C.Memo=H,C.Portal=X,C.Profiler=Q,C.StrictMode=Ie,C.Suspense=Te,C.isAsyncMode=Ce,C.isConcurrentMode=ce,C.isContextConsumer=Pe,C.isContextProvider=Re,C.isElement=we,C.isForwardRef=De,C.isFragment=$e,C.isLazy=ue,C.isMemo=de,C.isPortal=re,C.isProfiler=fe,C.isStrictMode=ne,C.isSuspense=ze,C.isValidElementType=M,C.typeOf=k}()),C}var bt;function dr(){return bt||(bt=1,process.env.NODE_ENV==="production"?ke.exports=cr():ke.exports=ur()),ke.exports}var qe,gt;function fr(){if(gt)return qe;gt=1;var t=dr(),e={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},n={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},c={};c[t.ForwardRef]=i,c[t.Memo]=a;function m(F){return t.isMemo(F)?a:c[F.$$typeof]||e}var y=Object.defineProperty,h=Object.getOwnPropertyNames,g=Object.getOwnPropertySymbols,S=Object.getOwnPropertyDescriptor,O=Object.getPrototypeOf,z=Object.prototype;function D(F,W,K){if(typeof W!="string"){if(z){var B=O(W);B&&B!==z&&D(F,B,K)}var w=h(W);g&&(w=w.concat(g(W)));for(var M=m(F),k=m(W),d=0;d<w.length;++d){var L=w[d];if(!n[L]&&!(K&&K[L])&&!(k&&k[L])&&!(M&&M[L])){var se=S(W,L);try{y(F,L,se)}catch{}}}}return F}return qe=D,qe}fr();var mr=!0;function vr(t,e,n){var i="";return n.split(" ").forEach(function(a){t[a]!==void 0?e.push(t[a]+";"):a&&(i+=a+" ")}),i}var It=function(e,n,i){var a=e.key+"-"+n.name;(i===!1||mr===!1)&&e.registered[a]===void 0&&(e.registered[a]=n.styles)},hr=function(e,n,i){It(e,n,i);var a=e.key+"-"+n.name;if(e.inserted[n.name]===void 0){var c=n;do e.insert(n===c?"."+a:"",c,e.sheet,!0),c=c.next;while(c!==void 0)}};function pr(t){for(var e=0,n,i=0,a=t.length;a>=4;++i,a-=4)n=t.charCodeAt(i)&255|(t.charCodeAt(++i)&255)<<8|(t.charCodeAt(++i)&255)<<16|(t.charCodeAt(++i)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,e=(n&65535)*1540483477+((n>>>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 yr={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 br(t){var e=Object.create(null);return function(n){return e[n]===void 0&&(e[n]=t(n)),e[n]}}var gr=/[A-Z]|^ms/g,Er=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Tt=function(e){return e.charCodeAt(1)===45},Et=function(e){return e!=null&&typeof e!="boolean"},Ue=br(function(t){return Tt(t)?t:t.replace(gr,"-$&").toLowerCase()}),xt=function(e,n){switch(e){case"animation":case"animationName":if(typeof n=="string")return n.replace(Er,function(i,a,c){return G={name:a,styles:c,next:G},a})}return yr[e]!==1&&!Tt(e)&&typeof n=="number"&&n!==0?n+"px":n};function ge(t,e,n){if(n==null)return"";var i=n;if(i.__emotion_styles!==void 0)return i;switch(typeof n){case"boolean":return"";case"object":{var a=n;if(a.anim===1)return G={name:a.name,styles:a.styles,next:G},a.name;var c=n;if(c.styles!==void 0){var m=c.next;if(m!==void 0)for(;m!==void 0;)G={name:m.name,styles:m.styles,next:G},m=m.next;var y=c.styles+";";return y}return xr(t,e,n)}case"function":{if(t!==void 0){var h=G,g=n(t);return G=h,ge(t,e,g)}break}}var S=n;return S}function xr(t,e,n){var i="";if(Array.isArray(n))for(var a=0;a<n.length;a++)i+=ge(t,e,n[a])+";";else for(var c in n){var m=n[c];if(typeof m!="object"){var y=m;Et(y)&&(i+=Ue(c)+":"+xt(c,y)+";")}else if(Array.isArray(m)&&typeof m[0]=="string"&&e==null)for(var h=0;h<m.length;h++)Et(m[h])&&(i+=Ue(c)+":"+xt(c,m[h])+";");else{var g=ge(t,e,m);switch(c){case"animation":case"animationName":{i+=Ue(c)+":"+g+";";break}default:i+=c+"{"+g+"}"}}}return i}var St=/label:\s*([^\s;{]+)\s*(;|$)/g,G;function Sr(t,e,n){if(t.length===1&&typeof t[0]=="object"&&t[0]!==null&&t[0].styles!==void 0)return t[0];var i=!0,a="";G=void 0;var c=t[0];if(c==null||c.raw===void 0)i=!1,a+=ge(n,e,c);else{var m=c;a+=m[0]}for(var y=1;y<t.length;y++)if(a+=ge(n,e,t[y]),i){var h=c;a+=h[y]}St.lastIndex=0;for(var g="",S;(S=St.exec(a))!==null;)g+="-"+S[1];var O=pr(a)+g;return{name:O,styles:a,next:G}}var Ir=function(e){return e()},Tr=Z.useInsertionEffect?Z.useInsertionEffect:!1,Cr=Tr||Ir,Ct=Z.createContext(typeof HTMLElement<"u"?rr({key:"css"}):null);Ct.Provider;var Pr=function(e){return p.forwardRef(function(n,i){var a=p.useContext(Ct);return e(n,a,i)})},Rr=Z.createContext({}),Fe={}.hasOwnProperty,Ge="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Pt=function(e,n){var i={};for(var a in n)Fe.call(n,a)&&(i[a]=n[a]);return i[Ge]=e,i},wr=function(e){var n=e.cache,i=e.serialized,a=e.isStringTag;return It(n,i,a),Cr(function(){return hr(n,i,a)}),null},Or=Pr(function(t,e,n){var i=t.css;typeof i=="string"&&e.registered[i]!==void 0&&(i=e.registered[i]);var a=t[Ge],c=[i],m="";typeof t.className=="string"?m=vr(e.registered,c,t.className):t.className!=null&&(m=t.className+" ");var y=Sr(c,void 0,Z.useContext(Rr));m+=e.key+"-"+y.name;var h={};for(var g in t)Fe.call(t,g)&&g!=="css"&&g!==Ge&&(h[g]=t[g]);return h.className=m,n&&(h.ref=n),Z.createElement(Z.Fragment,null,Z.createElement(wr,{cache:e,serialized:y,isStringTag:typeof a=="string"}),Z.createElement(a,h))}),Rt=Or,Me=be.Fragment,o=function(e,n,i){return Fe.call(n,"css")?be.jsx(Rt,Pt(e,n),i):be.jsx(e,n,i)},N=function(e,n,i){return Fe.call(n,"css")?be.jsxs(Rt,Pt(e,n),i):be.jsxs(e,n,i)},_=(t=>(t.Off="Off",t.All="All",t.One="One",t))(_||{});const Ke=80,_r=Y.observer(({playerStore:t,playQueueStore:e})=>{const n=J.useNostalgicDiva(),i=p.useCallback(m=>{const y=Number(m.currentTarget.value)/100;t.setPercent(y)},[t]),a=p.useCallback(m=>{m.button===0&&t.setSeeking(!0)},[t]),c=p.useCallback(async m=>{if(m.button===0){const y=Number(m.currentTarget.value)/100;t.setSeeking(!1);const h=await n.getDuration();h!==void 0&&await n.setCurrentTime(h*y)}},[t,n]);return o(l.EuiRange,{min:0,max:100,step:1e-7,value:t.percent*100,onChange:i,onMouseDown:a,onMouseUp:c,fullWidth:!0,showRange:!0,css:{blockSize:32},disabled:e.isEmpty})}),kr=p.memo(({button:t,isOpen:e,closePopover:n})=>{const[i,a]=p.useState("0"),c=J.useNostalgicDiva();p.useLayoutEffect(()=>{e&&c.getVolume().then(y=>{y!==void 0&&a(Math.floor(y*100).toString())})},[e,c]);const m=p.useCallback(async y=>{a(y.currentTarget.value),await c.setVolume(Number(y.currentTarget.value)/100)},[c]);return o(l.EuiPopover,{button:t,isOpen:e,closePopover:n,anchorPosition:"upRight",children:o(l.EuiFormRow,{children:N(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o(l.EuiButtonIcon,{title:"Mute","aria-label":"Mute",iconType:R.Speaker2Regular,size:"s",iconSize:"l"}),o(l.EuiRange,{min:0,max:100,step:1,value:i,onChange:m,css:{blockSize:32}})]})})})}),Ar=p.memo(({playQueueStore:t,closePopover:e})=>{const n=J.useNostalgicDiva(),i=p.useCallback(async()=>{const g=await n.getCurrentTime();g!==void 0&&await n.setCurrentTime(g-10),e()},[n,e]),a=p.useCallback(async()=>{const g=await n.getCurrentTime();g!==void 0&&await n.setCurrentTime(g+30),e()},[n,e]),c=p.useCallback(async g=>{await n.setPlaybackRate(g),e()},[n,e]),m=p.useCallback(async()=>{t.currentItem!==void 0&&await t.removeItems([t.currentItem]),e()},[t,e]),[y]=p.useState(),h=p.useMemo(()=>[{id:0,items:[{name:"Speed",icon:o(l.EuiIcon,{type:R.TopSpeedRegular,size:"m"}),panel:1},{name:"Skip back 10 seconds",icon:o(l.EuiIcon,{type:R.SkipBack10Regular,size:"m"}),onClick:i,disabled:t.isEmpty},{name:"Skip forward 30 seconds",icon:o(l.EuiIcon,{type:R.SkipForward30Regular,size:"m"}),onClick:a,disabled:t.isEmpty},{isSeparator:!0},{name:"Remove from play queue",icon:o(l.EuiIcon,{type:R.DismissRegular,size:"m"}),onClick:m,disabled:t.isEmpty}]},{id:1,title:"Speed",items:[.25,.5,.75,1,1.25,1.5,1.75,2].map(g=>({name:g.toString(),onClick:()=>c(g),icon:g===y?"check":"empty"}))}],[t,i,a,m,c,y]);return o(l.EuiContextMenu,{initialPanelId:0,panels:h})}),Fr=p.memo(({playQueueStore:t,button:e,isOpen:n,closePopover:i})=>o(l.EuiPopover,{button:e,isOpen:n,closePopover:i,panelPaddingSize:"none",anchorPosition:"upRight",children:o(Ar,{playQueueStore:t,closePopover:i})})),Mr={[_.Off]:R.ArrowRepeatAllOffFilled,[_.All]:R.ArrowRepeatAllFilled,[_.One]:R.ArrowRepeat1Filled},jr=Y.observer(({playerStore:t,playQueueStore:e})=>{const n=J.useNostalgicDiva(),i=p.useCallback(async()=>{if(e.hasPreviousItem){const a=await n.getCurrentTime();a===void 0||a<5?await e.previous():await n.setCurrentTime(0)}else await n.setCurrentTime(0)},[e,n]);return N(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o(l.EuiButtonIcon,{title:`Shuffle: ${e.shuffle?"On":"Off"}`,"aria-label":`Shuffle: ${e.shuffle?"On":"Off"}`,iconType:e.shuffle?R.ArrowShuffleFilled:R.ArrowShuffleOffFilled,size:"s",iconSize:"l",onClick:e.toggleShuffle,disabled:!0}),o(l.EuiButtonIcon,{title:"Previous","aria-label":"Previous",iconType:R.PreviousFilled,size:"s",iconSize:"l",onClick:i,disabled:e.isEmpty}),t.playing?o(l.EuiButtonIcon,{title:"Pause","aria-label":"Pause",iconType:R.PauseFilled,size:"s",iconSize:"l",onClick:()=>n.pause(),disabled:!e.canPlay}):o(l.EuiButtonIcon,{title:"Play","aria-label":"Play",iconType:R.PlayFilled,size:"s",iconSize:"l",onClick:()=>n.play(),disabled:!e.canPlay}),o(l.EuiButtonIcon,{title:"Next","aria-label":"Next",iconType:R.NextFilled,size:"s",iconSize:"l",onClick:e.next,disabled:!e.hasNextItem}),o(l.EuiButtonIcon,{title:`Repeat: ${e.repeat===_.All?"All":e.repeat===_.One?"One":"Off"}`,"aria-label":`Repeat: ${e.repeat===_.All?"All":e.repeat===_.One?"One":"Off"}`,iconType:Mr[e.repeat],size:"s",iconSize:"l",onClick:e.toggleRepeat})]})}),Nr=p.memo(()=>{const[t,e]=p.useState(!1),n=()=>e(!t);return o(kr,{button:o(l.EuiButtonIcon,{title:"Volume","aria-label":"Volume",iconType:R.Speaker2Regular,size:"s",iconSize:"l",onClick:n}),isOpen:t,closePopover:()=>e(!1)})}),Dr=p.memo(({playQueueStore:t})=>{const[e,n]=p.useState(!1),i=()=>n(!e);return o(Fr,{playQueueStore:t,button:o(l.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:R.MoreHorizontalFilled,size:"s",iconSize:"l",onClick:i}),isOpen:e,closePopover:()=>n(!1)})}),$r=p.memo(({playQueueStore:t})=>N(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexEnd",alignItems:"center",children:[o(Nr,{}),o(Dr,{playQueueStore:t})]})),zr=Y.observer(({playerStore:t,playQueueStore:e})=>o(l.EuiBottomBar,{paddingSize:"s",children:N(l.EuiFlexGroup,{direction:"column",gutterSize:"none",children:[o(l.EuiFlexItem,{children:o(_r,{playerStore:t,playQueueStore:e})}),o(l.EuiFlexItem,{children:N(l.EuiFlexGroup,{responsive:!1,children:[o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"}}),o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(jr,{playerStore:t,playQueueStore:e})}),o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o($r,{playQueueStore:e})})]})})]})})),Br=({onCancel:t,onSave:e})=>{const[n,i]=p.useState(""),[a,c]=p.useState(""),[m,y]=p.useState(!1);return N(l.EuiModal,{onClose:t,initialFocus:"[name=url]",children:[o(l.EuiModalHeader,{children:o(l.EuiModalHeaderTitle,{children:"Add video"})}),o(l.EuiModalBody,{children:N(l.EuiForm,{component:"form",children:[o(l.EuiFormRow,{label:"URL",children:o(l.EuiFieldText,{name:"url",value:n,onChange:h=>i(h.target.value)})}),o(l.EuiFormRow,{label:"Title",children:o(l.EuiFieldText,{name:"title",value:a,onChange:h=>c(h.target.value)})})]})}),N(l.EuiModalFooter,{children:[o(l.EuiButtonEmpty,{onClick:t,children:"Cancel"}),o(l.EuiButton,{type:"submit",onClick:async()=>{try{y(!0),await e({url:n,title:a})}finally{y(!1)}},fill:!0,disabled:n.trim().length===0,isLoading:m,children:"Save"})]})]})};function Lr(t){return t!==null&&typeof t=="object"&&"title"in t&&typeof t.title=="string"}const wt=p.memo(({playQueueStore:t})=>{const[e,n]=p.useState(!1),i=p.useCallback(async a=>{const c=J.findVideoService(a.url);if(c!==void 0){const m=c.extractVideoId(a.url);if(m!==void 0){const h=await(await fetch(`https://noembed.com/embed?url=${encodeURIComponent(a.url)}`)).json();await t.addItems([t.createItem({url:a.url,type:c.type,videoId:m,title:a.title||(Lr(h)?h.title:m)})])}}n(!1)},[t]);return N(Me,{children:[o(l.EuiButton,{onClick:()=>n(!0),iconType:R.AddRegular,color:"primary",children:"Add video"}),e&&o(Br,{onCancel:()=>n(!1),onSave:i})]})}),Vr=Y.observer(({playQueueStore:t})=>{const{euiTheme:e}=l.useEuiTheme();return N(l.EuiTableHeader,{style:{position:"sticky",top:112,zIndex:998,background:e.colors.backgroundBasePlain},children:[o(l.EuiTableHeaderCellCheckbox,{children:o(l.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:n=>{t.allItemsSelected=n.target.checked}})}),o(l.EuiTableHeaderCell,{width:24}),o(l.EuiTableHeaderCell,{children:"Title"}),o(l.EuiTableHeaderCell,{})]})}),Yr=p.memo(({item:t,closePopover:e})=>{const n=p.memo(({onClick:i,...a})=>{const c=p.useCallback(m=>{e(),i==null||i(m)},[i]);return o(l.EuiContextMenuItem,{...a,onClick:c})});return N(l.EuiContextMenuPanel,{children:[o(n,{icon:o(l.EuiIcon,{type:""}),onClick:t.playFirst,children:"Play first"}),o(n,{icon:o(l.EuiIcon,{type:""}),onClick:t.playNext,children:"Play next"}),o(n,{icon:o(l.EuiIcon,{type:R.AddRegular}),onClick:t.addToPlayQueue,children:"Add to play queue"}),o(l.EuiHorizontalRule,{margin:"none"}),o(n,{icon:o(l.EuiIcon,{type:R.ArrowUploadRegular}),onClick:t.moveToTop,disabled:!t.canMoveToTop,children:"Move to the top"}),o(n,{icon:o(l.EuiIcon,{type:R.ArrowDownloadRegular}),onClick:t.moveToBottom,disabled:!t.canMoveToBottom,children:"Move to the bottom"}),o(l.EuiHorizontalRule,{margin:"none"}),o(n,{icon:o(l.EuiIcon,{type:""}),onClick:t.removeToTop,disabled:!t.canRemoveToTop,children:"Remove to the top"}),o(n,{icon:o(l.EuiIcon,{type:""}),onClick:t.removeOthers,disabled:!t.canRemoveOthers,children:"Remove others"})]})}),Wr=p.memo(({item:t})=>{const[e,n]=p.useState(!1),i=p.useCallback(()=>n(!e),[e]),a=p.useCallback(()=>n(!1),[]);return o(l.EuiPopover,{button:o(l.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:R.MoreHorizontalFilled,size:"s",color:"text",onClick:i}),isOpen:e,closePopover:a,panelPaddingSize:"none",anchorPosition:"leftCenter",children:o(Yr,{item:t,closePopover:a})})}),qr=Y.observer(({item:t})=>{const e=J.useNostalgicDiva();return N(l.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[o(l.EuiButton,{iconType:R.PlayRegular,size:"s",onClick:async()=>{t.isCurrent?await e.setCurrentTime(0):t.play()},children:"Play"}),o(l.EuiButton,{iconType:R.DismissRegular,size:"s",onClick:t.remove,children:"Remove"}),o(Wr,{item:t})]})}),Ur={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"},Hr=Y.observer(({item:t})=>{const e=J.useNostalgicDiva();return N(l.EuiTableRow,{isSelected:t.isCurrent,children:[o(l.EuiTableRowCellCheckbox,{children:o(l.EuiCheckbox,{id:t.id.toString(),checked:t.isSelected,onChange:t.toggleSelected})}),o(l.EuiTableRowCell,{textOnly:!1,children:o("img",{src:Ur[t.type],width:16,height:16,alt:t.type})}),o(l.EuiTableRowCell,{children:o(l.EuiLink,{href:t.url,target:"_blank",external:!0,onClick:()=>e.pause(),children:t.title})}),o(qr,{item:t})]},t.id)}),Gr=Y.observer(({playQueueStore:t})=>o(nr.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>o(Hr,{item:e},e.id))})),Jr=Y.observer(({playQueueStore:t})=>N(l.EuiTable,{children:[o(Vr,{playQueueStore:t}),o(Gr,{playQueueStore:t})]})),Kr=Y.observer(({playQueueStore:t})=>{const[e,n]=p.useState(!1);return N(Me,{children:[e&&o(l.EuiFlyout,{type:"push",size:"s",onClose:()=>n(!1),children:o("div",{style:{blockSize:"100%"},children:o(l.EuiCodeBlock,{language:"json",overflowHeight:"100%",isCopyable:!0,isVirtualized:!0,children:JSON.stringify(t.localStorageState,void 0,2)})})}),o(wt,{playQueueStore:t})]})}),Xr=Y.observer(({playerStore:t,playQueueStore:e})=>{const{euiTheme:n}=l.useEuiTheme();return N(Me,{children:[N(l.EuiFlexGroup,{alignItems:"center",gutterSize:"m",style:{position:"sticky",top:48,zIndex:998,background:n.colors.backgroundBasePlain},children:[o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{disabled:e.isEmpty||e.selectedItems.length===0,onClick:e.playSelectedItemsNext,children:"Play next"})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:R.AddRegular,onClick:e.addSelectedItems,disabled:e.isEmpty||e.selectedItems.length===0,children:"Add to play queue"})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:R.DismissRegular,onClick:e.removeSelectedItems,disabled:e.isEmpty||e.selectedItems.length===0,children:"Remove"})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:R.DeleteRegular,onClick:e.clear,disabled:e.isEmpty,children:"Clear"})}),o(l.EuiFlexItem,{grow:!0}),o(l.EuiFlexItem,{grow:!1,children:o(Kr,{playQueueStore:e})})]}),o(l.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:n.colors.backgroundBasePlain}}),e.isEmpty?o(l.EuiEmptyPrompt,{title:o("h2",{children:"We couldn't find any videos"}),body:o("p",{children:"Your video library doesn't contain any video content."}),actions:o(wt,{playQueueStore:e})}):o(Jr,{playQueueStore:e})]})}),Zr=Y.observer(({playerStore:t,playQueueStore:e})=>N(Me,{children:[o(l.EuiPageTemplate.Header,{pageTitle:"Play queue",rightSideItems:[]}),o(l.EuiPageTemplate.Section,{children:o(Xr,{playerStore:t,playQueueStore:e})})]})),Ae={width:16*25,height:9*25},Qr=Y.observer(({playerStore:t,playQueueStore:e})=>{const n=J.useNostalgicDiva(),i=p.useCallback(async()=>{e.interacted&&await n.play()},[e,n]),a=p.useCallback(async()=>{switch(e.repeat){case _.One:await n.setCurrentTime(0);break;case _.Off:case _.All:if(e.isLastItem)switch(e.repeat){case _.Off:t.onEnded();break;case _.All:e.hasMultipleItems?await e.goToFirst():await n.setCurrentTime(0);break}else await e.next();break}},[e,t,n]),c=p.useMemo(()=>({onLoaded:i,onPlay:t.onPlay,onPause:t.onPause,onEnded:a,onTimeUpdate:t.onTimeUpdate}),[t,i,a]);return o("div",{css:{position:"fixed",right:0,bottom:Ke,width:Ae.width,height:Ae.height,zIndex:998,backgroundColor:"rgb(39, 39, 39)",display:"flex",flexDirection:"column"},children:o("div",{css:{flexGrow:1,backgroundColor:"black"},children:e.currentItem&&o(J.NostalgicDiva,{src:e.currentItem.url,options:c})})})});class Xe{makeObservable(e,n){return u.makeObservable(e,n)}}const ye=class ye{constructor(e,n,i){U(this,"id");U(this,"isSelected",!1);this.observableStateProvider=e,this.playQueueStore=n,this.dto=i,this.id=ye.nextId++,e.makeObservable(this,{isSelected:u.observable,isCurrent:u.computed,index:u.computed,isFirst:u.computed,isLast:u.computed,canMoveToTop:u.computed,canMoveToBottom:u.computed,canRemoveToTop:u.computed,canRemoveOthers:u.computed,unselect:u.action,toggleSelected:u.action.bound,play:u.action,remove:u.action.bound,playFirst:u.action.bound,playNext:u.action.bound,addToPlayQueue:u.action.bound,moveToTop:u.action.bound,moveToBottom:u.action.bound,removeToTop:u.action.bound,removeOthers:u.action.bound})}static fromDto(e,n,i){return new ye(e,n,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.playQueueStore.currentItem===this}get index(){return this.playQueueStore.items.indexOf(this)}get isFirst(){return this.index===0}get isLast(){return this.index===this.playQueueStore.items.length-1}get canMoveToTop(){return!this.isFirst}get canMoveToBottom(){return!this.isLast}get canRemoveToTop(){return!this.isFirst}get canRemoveOthers(){return this.playQueueStore.hasMultipleItems}clone(){return this.playQueueStore.createItem(this.dto)}unselect(){this.isSelected=!1}toggleSelected(){this.isSelected=!this.isSelected}play(){this.playQueueStore.setCurrentItem(this)}remove(){return this.playQueueStore.removeItems([this])}async playFirst(){await this.playQueueStore.playFirst([this.clone()])}async playNext(){await this.playQueueStore.playNext([this.clone()])}async addToPlayQueue(){await this.playQueueStore.addItems([this.clone()])}moveToTop(){this.playQueueStore.moveItem(this,0)}moveToBottom(){this.playQueueStore.moveItem(this,this.playQueueStore.items.length-1)}removeToTop(){return this.playQueueStore.removeItemsAbove(this)}removeOthers(){return this.playQueueStore.removeOtherItems(this)}};U(ye,"nextId",1);let Je=ye;const He=new ir({coerceTypes:!0});function en(t,e){let n;if(n=He.getSchema(e),n===void 0&&(He.addSchema(t,e),n=He.getSchema(e)),n===void 0||n.schema!==t)throw new Error(`Invalid schema. Expected: '${JSON.stringify(t)}', but got '${JSON.stringify(n==null?void 0:n.schema)}'.`);return n}const tn={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:{type:"object",properties:{url:{type:"string"},type:{type:"string"},videoId:{type:"string"},title:{type:"string"}},required:["url","type","videoId","title"]}},currentIndex:{type:"integer",nullable:!0}}},rn=en(tn,"PlayQueueStore");class nn{constructor(e){U(this,"interacted",!1);U(this,"items",[]);U(this,"currentId");U(this,"repeat",_.Off);U(this,"shuffle",!1);this.observableStateProvider=e,e.makeObservable(this,{interacted:u.observable,items:u.observable,currentId:u.observable,repeat:u.observable,shuffle:u.observable,localStorageState:u.computed.struct,isEmpty:u.computed,currentItem:u.computed,canPlay:u.computed,canPause:u.computed,hasMultipleItems:u.computed,currentIndex:u.computed,hasPreviousItem:u.computed,hasNextItem:u.computed,isLastItem:u.computed,selectedItems:u.computed,allItemsSelected:u.computed,selectedItemsOrAllItems:u.computed,setItems:u.action,interact:u.action,clear:u.action.bound,unselectAll:u.action,setCurrentItem:u.action,setNextItems:u.action,clearAndSetItems:u.action,playNext:u.action,playSelectedItemsNext:u.action.bound,addItems:u.action,addSelectedItems:u.action.bound,playFirst:u.action,moveItem:u.action,removeItems:u.action,removeSelectedItems:u.action.bound,removeOtherItems:u.action,removeItemsAbove:u.action,toggleRepeat:u.action.bound,toggleShuffle:u.action.bound,previous:u.action,next:u.action.bound,goToFirst:u.action})}createItem(e){return Je.fromDto(this.observableStateProvider,this,e)}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){var n;this.repeat=e.repeat??_.Off,this.shuffle=e.shuffle??!1,this.items=((n=e.items)==null?void 0:n.map(i=>this.createItem(i)))??[],this.currentIndex=e.currentIndex}validateLocalStorageState(e){return rn(e)}get isEmpty(){return this.items.length===0}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){var n;this.currentId=e!==void 0?(n=this.items.at(e))==null?void 0:n.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}set allItemsSelected(e){for(const n of this.items)n.isSelected=e}get selectedItemsOrAllItems(){return this.selectedItems.length>0?this.selectedItems:this.items}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()}setCurrentItem(e){this.interact(),this.currentId=e==null?void 0: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:n}=this;n!==void 0&&(this.interact(),this.items.splice(n,0,...e),this.currentIndex=n)}moveItem(e,n){const i=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(n,0,i)}async removeItems(e){const{currentItem:n}=this;ft.pull(this.items,...e.filter(c=>c!==n));const{currentIndex:i,isLastItem:a}=this;ft.pull(this.items,e.find(c=>c===n)),this.currentItem!==n&&(this.interact(),a?await this.goToFirst():this.currentIndex=i)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){const n=e.id;return this.removeItems(this.items.filter(i=>i.id!==n))}async removeItemsAbove(e){const n=this.items.indexOf(e);return this.removeItems(this.items.filter((i,a)=>a<n))}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++)}async goToFirst(){this.currentIndex!==void 0&&(this.currentIndex=0)}}const Ot=p.createContext(void 0),on=({children:t})=>{const[e]=p.useState(()=>new nn(new Xe)),n=J.useNostalgicDiva();return p.useEffect(()=>u.reaction(()=>e.currentItem,async(i,a)=>{i===void 0||a===void 0||i.type===a.type&&i.videoId===a.videoId&&await n.setCurrentTime(0)}),[e,n]),o(Ot.Provider,{value:e,children:t})},_t=()=>p.useContext(Ot),an=Y.observer(({children:t})=>{const e=_t();return N(l.EuiPageTemplate,{panelled:!0,style:{minBlockSize:`max(460px, 100vh - ${Ke}px)`},children:[t,!e.isEmpty&&o(l.EuiSpacer,{style:{blockSize:Ae.height}})]})});class sn{constructor(e){U(this,"playing",!1);U(this,"percent",0);U(this,"seeking",!1);e.makeObservable(this,{playing:u.observable,percent:u.observable,seeking:u.observable,setPlaying:u.action,setPercent:u.action,setSeeking:u.action,onPlay:u.action.bound,onPause:u.action.bound,onEnded:u.action.bound,onTimeUpdate:u.action.bound})}setPlaying(e){this.playing=e}setPercent(e){this.percent=e}setSeeking(e){this.seeking=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 kt=p.createContext(void 0),ln=({children:t})=>{const[e]=p.useState(()=>new sn(new Xe));return o(kt.Provider,{value:e,children:t})},cn=()=>p.useContext(kt);class un{makeObservable(e,n){return e}}exports.BottomBar=zr;exports.HydrangeanDiva=Zr;exports.MediaPlayerLayout=an;exports.MiniPlayer=Qr;exports.MobXObservableStateProvider=Xe;exports.ObservableStateProvider=un;exports.PlayQueueStoreProvider=on;exports.PlayerStoreProvider=ln;exports.RepeatMode=_;exports.bottomBarHeight=Ke;exports.miniPlayerSize=Ae;exports.usePlayQueueStore=_t;exports.usePlayerStore=cn;
44
+ */var yt;function dr(){return yt||(yt=1,process.env.NODE_ENV!=="production"&&function(){var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,n=t?Symbol.for("react.portal"):60106,i=t?Symbol.for("react.fragment"):60107,a=t?Symbol.for("react.strict_mode"):60108,c=t?Symbol.for("react.profiler"):60114,m=t?Symbol.for("react.provider"):60109,y=t?Symbol.for("react.context"):60110,h=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,S=t?Symbol.for("react.forward_ref"):60112,O=t?Symbol.for("react.suspense"):60113,z=t?Symbol.for("react.suspense_list"):60120,D=t?Symbol.for("react.memo"):60115,F=t?Symbol.for("react.lazy"):60116,W=t?Symbol.for("react.block"):60121,K=t?Symbol.for("react.fundamental"):60117,B=t?Symbol.for("react.responder"):60118,w=t?Symbol.for("react.scope"):60119;function M(v){return typeof v=="string"||typeof v=="function"||v===i||v===g||v===c||v===a||v===O||v===z||typeof v=="object"&&v!==null&&(v.$$typeof===F||v.$$typeof===D||v.$$typeof===m||v.$$typeof===y||v.$$typeof===S||v.$$typeof===K||v.$$typeof===B||v.$$typeof===w||v.$$typeof===W)}function k(v){if(typeof v=="object"&&v!==null){var me=v.$$typeof;switch(me){case e:var ie=v.type;switch(ie){case h:case g:case i:case c:case a:case O:return ie;default:var ee=ie&&ie.$$typeof;switch(ee){case y:case S:case F:case D:case m:return ee;default:return me}}case n:return me}}}var d=h,L=g,se=y,Ee=m,xe=e,je=S,Ne=i,Se=F,H=D,X=n,Q=c,Ie=a,Te=O,le=!1;function Ce(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)||k(v)===h}function ce(v){return k(v)===g}function Pe(v){return k(v)===y}function Re(v){return k(v)===m}function we(v){return typeof v=="object"&&v!==null&&v.$$typeof===e}function De(v){return k(v)===S}function $e(v){return k(v)===i}function ue(v){return k(v)===F}function de(v){return k(v)===D}function re(v){return k(v)===n}function fe(v){return k(v)===c}function ne(v){return k(v)===a}function ze(v){return k(v)===O}C.AsyncMode=d,C.ConcurrentMode=L,C.ContextConsumer=se,C.ContextProvider=Ee,C.Element=xe,C.ForwardRef=je,C.Fragment=Ne,C.Lazy=Se,C.Memo=H,C.Portal=X,C.Profiler=Q,C.StrictMode=Ie,C.Suspense=Te,C.isAsyncMode=Ce,C.isConcurrentMode=ce,C.isContextConsumer=Pe,C.isContextProvider=Re,C.isElement=we,C.isForwardRef=De,C.isFragment=$e,C.isLazy=ue,C.isMemo=de,C.isPortal=re,C.isProfiler=fe,C.isStrictMode=ne,C.isSuspense=ze,C.isValidElementType=M,C.typeOf=k}()),C}var bt;function fr(){return bt||(bt=1,process.env.NODE_ENV==="production"?ke.exports=ur():ke.exports=dr()),ke.exports}var qe,gt;function mr(){if(gt)return qe;gt=1;var t=fr(),e={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},n={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},c={};c[t.ForwardRef]=i,c[t.Memo]=a;function m(F){return t.isMemo(F)?a:c[F.$$typeof]||e}var y=Object.defineProperty,h=Object.getOwnPropertyNames,g=Object.getOwnPropertySymbols,S=Object.getOwnPropertyDescriptor,O=Object.getPrototypeOf,z=Object.prototype;function D(F,W,K){if(typeof W!="string"){if(z){var B=O(W);B&&B!==z&&D(F,B,K)}var w=h(W);g&&(w=w.concat(g(W)));for(var M=m(F),k=m(W),d=0;d<w.length;++d){var L=w[d];if(!n[L]&&!(K&&K[L])&&!(k&&k[L])&&!(M&&M[L])){var se=S(W,L);try{y(F,L,se)}catch{}}}}return F}return qe=D,qe}mr();var vr=!0;function hr(t,e,n){var i="";return n.split(" ").forEach(function(a){t[a]!==void 0?e.push(t[a]+";"):a&&(i+=a+" ")}),i}var Tt=function(e,n,i){var a=e.key+"-"+n.name;(i===!1||vr===!1)&&e.registered[a]===void 0&&(e.registered[a]=n.styles)},pr=function(e,n,i){Tt(e,n,i);var a=e.key+"-"+n.name;if(e.inserted[n.name]===void 0){var c=n;do e.insert(n===c?"."+a:"",c,e.sheet,!0),c=c.next;while(c!==void 0)}};function yr(t){for(var e=0,n,i=0,a=t.length;a>=4;++i,a-=4)n=t.charCodeAt(i)&255|(t.charCodeAt(++i)&255)<<8|(t.charCodeAt(++i)&255)<<16|(t.charCodeAt(++i)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,e=(n&65535)*1540483477+((n>>>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 br={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function gr(t){var e=Object.create(null);return function(n){return e[n]===void 0&&(e[n]=t(n)),e[n]}}var Er=/[A-Z]|^ms/g,xr=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Ct=function(e){return e.charCodeAt(1)===45},Et=function(e){return e!=null&&typeof e!="boolean"},Ue=gr(function(t){return Ct(t)?t:t.replace(Er,"-$&").toLowerCase()}),xt=function(e,n){switch(e){case"animation":case"animationName":if(typeof n=="string")return n.replace(xr,function(i,a,c){return G={name:a,styles:c,next:G},a})}return br[e]!==1&&!Ct(e)&&typeof n=="number"&&n!==0?n+"px":n};function ge(t,e,n){if(n==null)return"";var i=n;if(i.__emotion_styles!==void 0)return i;switch(typeof n){case"boolean":return"";case"object":{var a=n;if(a.anim===1)return G={name:a.name,styles:a.styles,next:G},a.name;var c=n;if(c.styles!==void 0){var m=c.next;if(m!==void 0)for(;m!==void 0;)G={name:m.name,styles:m.styles,next:G},m=m.next;var y=c.styles+";";return y}return Sr(t,e,n)}case"function":{if(t!==void 0){var h=G,g=n(t);return G=h,ge(t,e,g)}break}}var S=n;return S}function Sr(t,e,n){var i="";if(Array.isArray(n))for(var a=0;a<n.length;a++)i+=ge(t,e,n[a])+";";else for(var c in n){var m=n[c];if(typeof m!="object"){var y=m;Et(y)&&(i+=Ue(c)+":"+xt(c,y)+";")}else if(Array.isArray(m)&&typeof m[0]=="string"&&e==null)for(var h=0;h<m.length;h++)Et(m[h])&&(i+=Ue(c)+":"+xt(c,m[h])+";");else{var g=ge(t,e,m);switch(c){case"animation":case"animationName":{i+=Ue(c)+":"+g+";";break}default:i+=c+"{"+g+"}"}}}return i}var St=/label:\s*([^\s;{]+)\s*(;|$)/g,G;function Ir(t,e,n){if(t.length===1&&typeof t[0]=="object"&&t[0]!==null&&t[0].styles!==void 0)return t[0];var i=!0,a="";G=void 0;var c=t[0];if(c==null||c.raw===void 0)i=!1,a+=ge(n,e,c);else{var m=c;a+=m[0]}for(var y=1;y<t.length;y++)if(a+=ge(n,e,t[y]),i){var h=c;a+=h[y]}St.lastIndex=0;for(var g="",S;(S=St.exec(a))!==null;)g+="-"+S[1];var O=yr(a)+g;return{name:O,styles:a,next:G}}var Tr=function(e){return e()},Cr=Z.useInsertionEffect?Z.useInsertionEffect:!1,Pr=Cr||Tr,Pt=Z.createContext(typeof HTMLElement<"u"?rr({key:"css"}):null);Pt.Provider;var Rr=function(e){return p.forwardRef(function(n,i){var a=p.useContext(Pt);return e(n,a,i)})},wr=Z.createContext({}),Fe={}.hasOwnProperty,Ge="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Rt=function(e,n){var i={};for(var a in n)Fe.call(n,a)&&(i[a]=n[a]);return i[Ge]=e,i},Or=function(e){var n=e.cache,i=e.serialized,a=e.isStringTag;return Tt(n,i,a),Pr(function(){return pr(n,i,a)}),null},_r=Rr(function(t,e,n){var i=t.css;typeof i=="string"&&e.registered[i]!==void 0&&(i=e.registered[i]);var a=t[Ge],c=[i],m="";typeof t.className=="string"?m=hr(e.registered,c,t.className):t.className!=null&&(m=t.className+" ");var y=Ir(c,void 0,Z.useContext(wr));m+=e.key+"-"+y.name;var h={};for(var g in t)Fe.call(t,g)&&g!=="css"&&g!==Ge&&(h[g]=t[g]);return h.className=m,n&&(h.ref=n),Z.createElement(Z.Fragment,null,Z.createElement(Or,{cache:e,serialized:y,isStringTag:typeof a=="string"}),Z.createElement(a,h))}),wt=_r,Me=be.Fragment,o=function(e,n,i){return Fe.call(n,"css")?be.jsx(wt,Rt(e,n),i):be.jsx(e,n,i)},N=function(e,n,i){return Fe.call(n,"css")?be.jsxs(wt,Rt(e,n),i):be.jsxs(e,n,i)};const kr=({onCancel:t,onSave:e})=>{const[n,i]=p.useState(""),[a,c]=p.useState(""),[m,y]=p.useState(!1);return N(l.EuiModal,{onClose:t,initialFocus:"[name=url]",children:[o(l.EuiModalHeader,{children:o(l.EuiModalHeaderTitle,{children:"Add video"})}),o(l.EuiModalBody,{children:N(l.EuiForm,{component:"form",children:[o(l.EuiFormRow,{label:"URL",children:o(l.EuiFieldText,{name:"url",value:n,onChange:h=>i(h.target.value)})}),o(l.EuiFormRow,{label:"Title",children:o(l.EuiFieldText,{name:"title",value:a,onChange:h=>c(h.target.value)})})]})}),N(l.EuiModalFooter,{children:[o(l.EuiButtonEmpty,{onClick:t,children:"Cancel"}),o(l.EuiButton,{type:"submit",onClick:async()=>{try{y(!0),await e({url:n,title:a})}finally{y(!1)}},fill:!0,disabled:n.trim().length===0,isLoading:m,children:"Save"})]})]})};function Ar(t){return t!==null&&typeof t=="object"&&"title"in t&&typeof t.title=="string"}const It=p.memo(({playQueueStore:t})=>{const[e,n]=p.useState(!1),i=p.useCallback(async a=>{const c=J.findVideoService(a.url);if(c!==void 0){const m=c.extractVideoId(a.url);if(m!==void 0){const h=await(await fetch(`https://noembed.com/embed?url=${encodeURIComponent(a.url)}`)).json();await t.addItems([t.createItem({url:a.url,type:c.type,videoId:m,title:a.title||(Ar(h)?h.title:m)})])}}n(!1)},[t]);return N(Me,{children:[o(l.EuiButton,{onClick:()=>n(!0),iconType:R.AddRegular,color:"primary",children:"Add video"}),e&&o(kr,{onCancel:()=>n(!1),onSave:i})]})}),Fr=Y.observer(({playQueueStore:t})=>{const{euiTheme:e}=l.useEuiTheme();return N(l.EuiTableHeader,{style:{position:"sticky",top:112,zIndex:998,background:e.colors.backgroundBasePlain},children:[o(l.EuiTableHeaderCellCheckbox,{children:o(l.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:n=>{t.allItemsSelected=n.target.checked}})}),o(l.EuiTableHeaderCell,{width:24}),o(l.EuiTableHeaderCell,{children:"Title"}),o(l.EuiTableHeaderCell,{})]})}),Mr=p.memo(({item:t,closePopover:e})=>{const n=p.memo(({onClick:i,...a})=>{const c=p.useCallback(m=>{e(),i==null||i(m)},[i]);return o(l.EuiContextMenuItem,{...a,onClick:c})});return N(l.EuiContextMenuPanel,{children:[o(n,{icon:o(l.EuiIcon,{type:""}),onClick:t.playFirst,children:"Play first"}),o(n,{icon:o(l.EuiIcon,{type:""}),onClick:t.playNext,children:"Play next"}),o(n,{icon:o(l.EuiIcon,{type:R.AddRegular}),onClick:t.addToPlayQueue,children:"Add to play queue"}),o(l.EuiHorizontalRule,{margin:"none"}),o(n,{icon:o(l.EuiIcon,{type:R.ArrowUploadRegular}),onClick:t.moveToTop,disabled:!t.canMoveToTop,children:"Move to the top"}),o(n,{icon:o(l.EuiIcon,{type:R.ArrowDownloadRegular}),onClick:t.moveToBottom,disabled:!t.canMoveToBottom,children:"Move to the bottom"}),o(l.EuiHorizontalRule,{margin:"none"}),o(n,{icon:o(l.EuiIcon,{type:""}),onClick:t.removeToTop,disabled:!t.canRemoveToTop,children:"Remove to the top"}),o(n,{icon:o(l.EuiIcon,{type:""}),onClick:t.removeOthers,disabled:!t.canRemoveOthers,children:"Remove others"})]})}),jr=p.memo(({item:t})=>{const[e,n]=p.useState(!1),i=p.useCallback(()=>n(!e),[e]),a=p.useCallback(()=>n(!1),[]);return o(l.EuiPopover,{button:o(l.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:R.MoreHorizontalFilled,size:"s",color:"text",onClick:i}),isOpen:e,closePopover:a,panelPaddingSize:"none",anchorPosition:"leftCenter",children:o(Mr,{item:t,closePopover:a})})}),Nr=Y.observer(({item:t})=>{const e=J.useNostalgicDiva();return N(l.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[o(l.EuiButton,{iconType:R.PlayRegular,size:"s",onClick:async()=>{t.isCurrent?await e.setCurrentTime(0):t.play()},children:"Play"}),o(l.EuiButton,{iconType:R.DismissRegular,size:"s",onClick:t.remove,children:"Remove"}),o(jr,{item:t})]})}),Dr={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"},$r=Y.observer(({item:t})=>{const e=J.useNostalgicDiva();return N(l.EuiTableRow,{isSelected:t.isCurrent,children:[o(l.EuiTableRowCellCheckbox,{children:o(l.EuiCheckbox,{id:t.id.toString(),checked:t.isSelected,onChange:t.toggleSelected})}),o(l.EuiTableRowCell,{textOnly:!1,children:o("img",{src:Dr[t.type],width:16,height:16,alt:t.type})}),o(l.EuiTableRowCell,{children:o(l.EuiLink,{href:t.url,target:"_blank",external:!0,onClick:()=>e.pause(),children:t.title})}),o(Nr,{item:t})]},t.id)}),zr=Y.observer(({playQueueStore:t})=>o(nr.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>o($r,{item:e},e.id))})),Br=Y.observer(({playQueueStore:t})=>N(l.EuiTable,{children:[o(Fr,{playQueueStore:t}),o(zr,{playQueueStore:t})]}));Y.observer(({playQueueStore:t})=>{const[e,n]=p.useState(!1);return N(Me,{children:[e&&o(l.EuiFlyout,{type:"push",size:"s",onClose:()=>n(!1),children:o("div",{style:{blockSize:"100%"},children:o(l.EuiCodeBlock,{language:"json",overflowHeight:"100%",isCopyable:!0,isVirtualized:!0,children:JSON.stringify(t.localStorageState,void 0,2)})})}),o(l.EuiButton,{onClick:()=>n(i=>!i),iconType:R.WindowDevToolsRegular,children:"Developer tools"})]})});const Lr=Y.observer(({playQueueStore:t})=>{const{euiTheme:e}=l.useEuiTheme();return N(Me,{children:[N(l.EuiFlexGroup,{alignItems:"center",gutterSize:"m",style:{position:"sticky",top:48,zIndex:998,background:e.colors.backgroundBasePlain},children:[o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{disabled:t.isEmpty||t.selectedItems.length===0,onClick:t.playSelectedItemsNext,children:"Play next"})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:R.AddRegular,onClick:t.addSelectedItems,disabled:t.isEmpty||t.selectedItems.length===0,children:"Add to play queue"})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:R.DismissRegular,onClick:t.removeSelectedItems,disabled:t.isEmpty||t.selectedItems.length===0,children:"Remove"})}),o(l.EuiFlexItem,{grow:!1,children:o(l.EuiButton,{iconType:R.DeleteRegular,onClick:t.clear,disabled:t.isEmpty,children:"Clear"})}),o(l.EuiFlexItem,{grow:!0}),N(l.EuiFlexItem,{grow:!1,children:[!1,o(It,{playQueueStore:t})]})]}),o(l.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:e.colors.backgroundBasePlain}}),t.isEmpty?o(l.EuiEmptyPrompt,{title:o("h2",{children:"We couldn't find any videos"}),body:o("p",{children:"Your video library doesn't contain any video content."}),actions:o(It,{playQueueStore:t})}):o(Br,{playQueueStore:t})]})}),Vr=Y.observer(({playQueueStore:t})=>N(Me,{children:[o(l.EuiPageTemplate.Header,{pageTitle:"Play queue",rightSideItems:[]}),o(l.EuiPageTemplate.Section,{children:o(Lr,{playQueueStore:t})})]})),He=new ir({coerceTypes:!0});function Yr(t,e){let n;if(n=He.getSchema(e),n===void 0&&(He.addSchema(t,e),n=He.getSchema(e)),n===void 0||n.schema!==t)throw new Error(`Invalid schema. Expected: '${JSON.stringify(t)}', but got '${JSON.stringify(n==null?void 0:n.schema)}'.`);return n}const Wr={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 qr={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:Wr},currentIndex:{type:"integer",nullable:!0}}},ye=class ye{constructor(e,n,i){U(this,"id");U(this,"isSelected",!1);this.observableStateProvider=e,this.playQueueStore=n,this.dto=i,this.id=ye.nextId++,e.makeObservable(this,{isSelected:u.observable,isCurrent:u.computed,index:u.computed,isFirst:u.computed,isLast:u.computed,canMoveToTop:u.computed,canMoveToBottom:u.computed,canRemoveToTop:u.computed,canRemoveOthers:u.computed,unselect:u.action,toggleSelected:u.action.bound,play:u.action,remove:u.action.bound,playFirst:u.action.bound,playNext:u.action.bound,addToPlayQueue:u.action.bound,moveToTop:u.action.bound,moveToBottom:u.action.bound,removeToTop:u.action.bound,removeOthers:u.action.bound})}static fromDto(e,n,i){return new ye(e,n,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.playQueueStore.currentItem===this}get index(){return this.playQueueStore.items.indexOf(this)}get isFirst(){return this.index===0}get isLast(){return this.index===this.playQueueStore.items.length-1}get canMoveToTop(){return!this.isFirst}get canMoveToBottom(){return!this.isLast}get canRemoveToTop(){return!this.isFirst}get canRemoveOthers(){return this.playQueueStore.hasMultipleItems}clone(){return this.playQueueStore.createItem(this.dto)}unselect(){this.isSelected=!1}toggleSelected(){this.isSelected=!this.isSelected}play(){this.playQueueStore.setCurrentItem(this)}remove(){return this.playQueueStore.removeItems([this])}async playFirst(){await this.playQueueStore.playFirst([this.clone()])}async playNext(){await this.playQueueStore.playNext([this.clone()])}async addToPlayQueue(){await this.playQueueStore.addItems([this.clone()])}moveToTop(){this.playQueueStore.moveItem(this,0)}moveToBottom(){this.playQueueStore.moveItem(this,this.playQueueStore.items.length-1)}removeToTop(){return this.playQueueStore.removeItemsAbove(this)}removeOthers(){return this.playQueueStore.removeOtherItems(this)}};U(ye,"nextId",1);let Je=ye;class Ur{constructor(e){U(this,"interacted",!1);U(this,"items",[]);U(this,"currentId");U(this,"repeat",_.Off);U(this,"shuffle",!1);this.observableStateProvider=e,e.makeObservable(this,{interacted:u.observable,items:u.observable,currentId:u.observable,repeat:u.observable,shuffle:u.observable,localStorageState:u.computed.struct,isEmpty:u.computed,currentItem:u.computed,canPlay:u.computed,canPause:u.computed,hasMultipleItems:u.computed,currentIndex:u.computed,hasPreviousItem:u.computed,hasNextItem:u.computed,isLastItem:u.computed,selectedItems:u.computed,allItemsSelected:u.computed,selectedItemsOrAllItems:u.computed,setItems:u.action,interact:u.action,clear:u.action.bound,unselectAll:u.action,setCurrentItem:u.action,setNextItems:u.action,clearAndSetItems:u.action,playNext:u.action,playSelectedItemsNext:u.action.bound,addItems:u.action,addSelectedItems:u.action.bound,playFirst:u.action,moveItem:u.action,removeItems:u.action,removeSelectedItems:u.action.bound,removeOtherItems:u.action,removeItemsAbove:u.action,toggleRepeat:u.action.bound,toggleShuffle:u.action.bound,previous:u.action,next:u.action.bound,goToFirst:u.action})}createItem(e){return Je.fromDto(this.observableStateProvider,this,e)}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){var n;this.repeat=e.repeat??_.Off,this.shuffle=e.shuffle??!1,this.items=((n=e.items)==null?void 0:n.map(i=>this.createItem(i)))??[],this.currentIndex=e.currentIndex}validateLocalStorageState(e){return Yr(qr,"PlayQueueDto")(e)}get isEmpty(){return this.items.length===0}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){var n;this.currentId=e!==void 0?(n=this.items.at(e))==null?void 0:n.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}set allItemsSelected(e){for(const n of this.items)n.isSelected=e}get selectedItemsOrAllItems(){return this.selectedItems.length>0?this.selectedItems:this.items}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()}setCurrentItem(e){this.interact(),this.currentId=e==null?void 0: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:n}=this;n!==void 0&&(this.interact(),this.items.splice(n,0,...e),this.currentIndex=n)}moveItem(e,n){const i=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(n,0,i)}async removeItems(e){const{currentItem:n}=this;ft.pull(this.items,...e.filter(c=>c!==n));const{currentIndex:i,isLastItem:a}=this;ft.pull(this.items,e.find(c=>c===n)),this.currentItem!==n&&(this.interact(),a?await this.goToFirst():this.currentIndex=i)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){const n=e.id;return this.removeItems(this.items.filter(i=>i.id!==n))}async removeItemsAbove(e){const n=this.items.indexOf(e);return this.removeItems(this.items.filter((i,a)=>a<n))}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++)}async goToFirst(){this.currentIndex!==void 0&&(this.currentIndex=0)}}const Ot=p.createContext(void 0),Hr=({children:t})=>{const[e]=p.useState(()=>new Ur(new Ke)),n=J.useNostalgicDiva();return p.useEffect(()=>u.reaction(()=>e.currentItem,async(i,a)=>{i===void 0||a===void 0||i.type===a.type&&i.videoId===a.videoId&&await n.setCurrentTime(0)}),[e,n]),o(Ot.Provider,{value:e,children:t})},_t=()=>p.useContext(Ot),Xe=81,Gr=Y.observer(({playerStore:t,playQueueStore:e})=>{const n=J.useNostalgicDiva(),i=p.useCallback(m=>{const y=Number(m.currentTarget.value)/100;t.setPercent(y)},[t]),a=p.useCallback(m=>{m.button===0&&t.setSeeking(!0)},[t]),c=p.useCallback(async m=>{if(m.button===0){const y=Number(m.currentTarget.value)/100;t.setSeeking(!1);const h=await n.getDuration();h!==void 0&&await n.setCurrentTime(h*y)}},[t,n]);return o(l.EuiRange,{min:0,max:100,step:1e-7,value:t.percent*100,onChange:i,onMouseDown:a,onMouseUp:c,fullWidth:!0,showRange:!0,css:{blockSize:32},disabled:e.isEmpty})}),Jr=p.memo(({button:t,isOpen:e,closePopover:n})=>{const[i,a]=p.useState("0"),c=J.useNostalgicDiva();p.useLayoutEffect(()=>{e&&c.getVolume().then(y=>{y!==void 0&&a(Math.floor(y*100).toString())})},[e,c]);const m=p.useCallback(async y=>{a(y.currentTarget.value),await c.setVolume(Number(y.currentTarget.value)/100)},[c]);return o(l.EuiPopover,{button:t,isOpen:e,closePopover:n,anchorPosition:"upRight",children:o(l.EuiFormRow,{children:N(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o(l.EuiButtonIcon,{title:"Mute","aria-label":"Mute",iconType:R.Speaker2Regular,size:"s",iconSize:"l"}),o(l.EuiRange,{min:0,max:100,step:1,value:i,onChange:m,css:{blockSize:32}})]})})})}),Kr=p.memo(({playQueueStore:t,closePopover:e})=>{const n=J.useNostalgicDiva(),i=p.useCallback(async()=>{const g=await n.getCurrentTime();g!==void 0&&await n.setCurrentTime(g-10),e()},[n,e]),a=p.useCallback(async()=>{const g=await n.getCurrentTime();g!==void 0&&await n.setCurrentTime(g+30),e()},[n,e]),c=p.useCallback(async g=>{await n.setPlaybackRate(g),e()},[n,e]),m=p.useCallback(async()=>{t.currentItem!==void 0&&await t.removeItems([t.currentItem]),e()},[t,e]),[y]=p.useState(),h=p.useMemo(()=>[{id:0,items:[{name:"Speed",icon:o(l.EuiIcon,{type:R.TopSpeedRegular,size:"m"}),panel:1},{name:"Skip back 10 seconds",icon:o(l.EuiIcon,{type:R.SkipBack10Regular,size:"m"}),onClick:i,disabled:t.isEmpty},{name:"Skip forward 30 seconds",icon:o(l.EuiIcon,{type:R.SkipForward30Regular,size:"m"}),onClick:a,disabled:t.isEmpty},{isSeparator:!0},{name:"Remove from play queue",icon:o(l.EuiIcon,{type:R.DismissRegular,size:"m"}),onClick:m,disabled:t.isEmpty}]},{id:1,title:"Speed",items:[.25,.5,.75,1,1.25,1.5,1.75,2].map(g=>({name:g.toString(),onClick:()=>c(g),icon:g===y?"check":"empty"}))}],[t,i,a,m,c,y]);return o(l.EuiContextMenu,{initialPanelId:0,panels:h})}),Xr=p.memo(({playQueueStore:t,button:e,isOpen:n,closePopover:i})=>o(l.EuiPopover,{button:e,isOpen:n,closePopover:i,panelPaddingSize:"none",anchorPosition:"upRight",children:o(Kr,{playQueueStore:t,closePopover:i})})),Zr={[_.Off]:R.ArrowRepeatAllOffFilled,[_.All]:R.ArrowRepeatAllFilled,[_.One]:R.ArrowRepeat1Filled},Qr=Y.observer(({playerStore:t,playQueueStore:e})=>{const n=J.useNostalgicDiva(),i=p.useCallback(async()=>{if(e.hasPreviousItem){const a=await n.getCurrentTime();a===void 0||a<5?await e.previous():await n.setCurrentTime(0)}else await n.setCurrentTime(0)},[e,n]);return N(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[o(l.EuiButtonIcon,{title:`Shuffle: ${e.shuffle?"On":"Off"}`,"aria-label":`Shuffle: ${e.shuffle?"On":"Off"}`,iconType:e.shuffle?R.ArrowShuffleFilled:R.ArrowShuffleOffFilled,size:"s",iconSize:"l",onClick:e.toggleShuffle,disabled:!0}),o(l.EuiButtonIcon,{title:"Previous","aria-label":"Previous",iconType:R.PreviousFilled,size:"s",iconSize:"l",onClick:i,disabled:e.isEmpty}),t.playing?o(l.EuiButtonIcon,{title:"Pause","aria-label":"Pause",iconType:R.PauseFilled,size:"s",iconSize:"l",onClick:()=>n.pause(),disabled:!e.canPlay}):o(l.EuiButtonIcon,{title:"Play","aria-label":"Play",iconType:R.PlayFilled,size:"s",iconSize:"l",onClick:()=>n.play(),disabled:!e.canPlay}),o(l.EuiButtonIcon,{title:"Next","aria-label":"Next",iconType:R.NextFilled,size:"s",iconSize:"l",onClick:e.next,disabled:!e.hasNextItem}),o(l.EuiButtonIcon,{title:`Repeat: ${e.repeat===_.All?"All":e.repeat===_.One?"One":"Off"}`,"aria-label":`Repeat: ${e.repeat===_.All?"All":e.repeat===_.One?"One":"Off"}`,iconType:Zr[e.repeat],size:"s",iconSize:"l",onClick:e.toggleRepeat})]})}),en=p.memo(()=>{const[t,e]=p.useState(!1),n=()=>e(!t);return o(Jr,{button:o(l.EuiButtonIcon,{title:"Volume","aria-label":"Volume",iconType:R.Speaker2Regular,size:"s",iconSize:"l",onClick:n}),isOpen:t,closePopover:()=>e(!1)})}),tn=p.memo(({playQueueStore:t})=>{const[e,n]=p.useState(!1),i=()=>n(!e);return o(Xr,{playQueueStore:t,button:o(l.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:R.MoreHorizontalFilled,size:"s",iconSize:"l",onClick:i}),isOpen:e,closePopover:()=>n(!1)})}),rn=p.memo(({playQueueStore:t})=>N(l.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexEnd",alignItems:"center",children:[o(en,{}),o(tn,{playQueueStore:t})]})),nn=Y.observer(({playerStore:t,playQueueStore:e})=>o(l.EuiBottomBar,{paddingSize:"s",children:N(l.EuiFlexGroup,{direction:"column",gutterSize:"none",children:[o(l.EuiFlexItem,{children:o(Gr,{playerStore:t,playQueueStore:e})}),o(l.EuiFlexItem,{children:N(l.EuiFlexGroup,{responsive:!1,children:[o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"}}),o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(Qr,{playerStore:t,playQueueStore:e})}),o(l.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:o(rn,{playQueueStore:e})})]})})]})})),Ae={width:16*25,height:9*25},on=Y.observer(({playerStore:t,playQueueStore:e})=>{const n=J.useNostalgicDiva(),i=p.useCallback(async()=>{e.interacted&&await n.play()},[e,n]),a=p.useCallback(async()=>{switch(e.repeat){case _.One:await n.setCurrentTime(0);break;case _.Off:case _.All:if(e.isLastItem)switch(e.repeat){case _.Off:t.onEnded();break;case _.All:e.hasMultipleItems?await e.goToFirst():await n.setCurrentTime(0);break}else await e.next();break}},[e,t,n]),c=p.useMemo(()=>({onLoaded:i,onPlay:t.onPlay,onPause:t.onPause,onEnded:a,onTimeUpdate:t.onTimeUpdate}),[t,i,a]);return o("div",{css:{position:"fixed",right:0,bottom:Xe,width:Ae.width,height:Ae.height,zIndex:998,backgroundColor:"rgb(39, 39, 39)",display:"flex",flexDirection:"column"},children:o("div",{css:{flexGrow:1,backgroundColor:"black"},children:e.currentItem&&o(J.NostalgicDiva,{src:e.currentItem.url,options:c})})})}),an=Y.observer(({children:t})=>{const e=_t();return N(l.EuiPageTemplate,{panelled:!0,style:{minBlockSize:`max(460px, 100vh - ${Xe}px)`},children:[t,!e.isEmpty&&o(l.EuiSpacer,{style:{blockSize:Ae.height}})]})});class sn{constructor(e){U(this,"playing",!1);U(this,"percent",0);U(this,"seeking",!1);e.makeObservable(this,{playing:u.observable,percent:u.observable,seeking:u.observable,setPlaying:u.action,setPercent:u.action,setSeeking:u.action,onPlay:u.action.bound,onPause:u.action.bound,onEnded:u.action.bound,onTimeUpdate:u.action.bound})}setPlaying(e){this.playing=e}setPercent(e){this.percent=e}setSeeking(e){this.seeking=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 kt=p.createContext(void 0),ln=({children:t})=>{const[e]=p.useState(()=>new sn(new Ke));return o(kt.Provider,{value:e,children:t})},cn=()=>p.useContext(kt);exports.BottomBar=nn;exports.HydrangeanDiva=Vr;exports.MediaPlayerLayout=an;exports.MiniPlayer=on;exports.MobXObservableStateProvider=Ke;exports.ObservableStateProvider=ar;exports.PlayQueueStoreProvider=Hr;exports.PlayerStoreProvider=ln;exports.RepeatMode=_;exports.bottomBarHeight=Xe;exports.miniPlayerSize=Ae;exports.usePlayQueueStore=_t;exports.usePlayerStore=cn;
45
45
  //# sourceMappingURL=index.cjs.js.map