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