@aigamo/hydrangean-diva 0.0.1-alpha.47 → 0.0.1-alpha.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -11,5 +11,5 @@ Check the top-level render call using <`+f+">.")}return c}}function Ct(r,c){{if(
11
11
  <%s {...props} />
12
12
  React keys must be passed directly to JSX without using spread:
13
13
  let props = %s;
14
- <%s key={someKey} {...props} />`,tt,pe,Sr,pe),Tt[pe+tt]=!0}}return r===a?yr(z):mr(z),z}}function vr(r,c,f){return Rt(r,c,f,!0)}function hr(r,c,f){return Rt(r,c,f,!1)}var br=hr,gr=vr;we.Fragment=a,we.jsx=br,we.jsxs=gr})()),we}var _t;function Or(){return _t||(_t=1,process.env.NODE_ENV==="production"?Ye.exports=Rr():Ye.exports=wr()),Ye.exports}var Oe=Or(),Ve={exports:{}},R={};var kt;function _r(){if(kt)return R;kt=1;var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,o=t?Symbol.for("react.portal"):60106,a=t?Symbol.for("react.fragment"):60107,n=t?Symbol.for("react.strict_mode"):60108,l=t?Symbol.for("react.profiler"):60114,d=t?Symbol.for("react.provider"):60109,h=t?Symbol.for("react.context"):60110,v=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,C=t?Symbol.for("react.forward_ref"):60112,x=t?Symbol.for("react.suspense"):60113,W=t?Symbol.for("react.suspense_list"):60120,Y=t?Symbol.for("react.memo"):60115,L=t?Symbol.for("react.lazy"):60116,X=t?Symbol.for("react.block"):60121,ae=t?Symbol.for("react.fundamental"):60117,H=t?Symbol.for("react.responder"):60118,B=t?Symbol.for("react.scope"):60119;function Q(p){if(typeof p=="object"&&p!==null){var G=p.$$typeof;switch(G){case e:switch(p=p.type,p){case v:case g:case a:case l:case n:case x:return p;default:switch(p=p&&p.$$typeof,p){case h:case C:case L:case Y:case d:return p;default:return G}}case o:return G}}}function j(p){return Q(p)===g}return R.AsyncMode=v,R.ConcurrentMode=g,R.ContextConsumer=h,R.ContextProvider=d,R.Element=e,R.ForwardRef=C,R.Fragment=a,R.Lazy=L,R.Memo=Y,R.Portal=o,R.Profiler=l,R.StrictMode=n,R.Suspense=x,R.isAsyncMode=function(p){return j(p)||Q(p)===v},R.isConcurrentMode=j,R.isContextConsumer=function(p){return Q(p)===h},R.isContextProvider=function(p){return Q(p)===d},R.isElement=function(p){return typeof p=="object"&&p!==null&&p.$$typeof===e},R.isForwardRef=function(p){return Q(p)===C},R.isFragment=function(p){return Q(p)===a},R.isLazy=function(p){return Q(p)===L},R.isMemo=function(p){return Q(p)===Y},R.isPortal=function(p){return Q(p)===o},R.isProfiler=function(p){return Q(p)===l},R.isStrictMode=function(p){return Q(p)===n},R.isSuspense=function(p){return Q(p)===x},R.isValidElementType=function(p){return typeof p=="string"||typeof p=="function"||p===a||p===g||p===l||p===n||p===x||p===W||typeof p=="object"&&p!==null&&(p.$$typeof===L||p.$$typeof===Y||p.$$typeof===d||p.$$typeof===h||p.$$typeof===C||p.$$typeof===ae||p.$$typeof===H||p.$$typeof===B||p.$$typeof===X)},R.typeOf=Q,R}var w={};var At;function kr(){return At||(At=1,process.env.NODE_ENV!=="production"&&(function(){var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,o=t?Symbol.for("react.portal"):60106,a=t?Symbol.for("react.fragment"):60107,n=t?Symbol.for("react.strict_mode"):60108,l=t?Symbol.for("react.profiler"):60114,d=t?Symbol.for("react.provider"):60109,h=t?Symbol.for("react.context"):60110,v=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,C=t?Symbol.for("react.forward_ref"):60112,x=t?Symbol.for("react.suspense"):60113,W=t?Symbol.for("react.suspense_list"):60120,Y=t?Symbol.for("react.memo"):60115,L=t?Symbol.for("react.lazy"):60116,X=t?Symbol.for("react.block"):60121,ae=t?Symbol.for("react.fundamental"):60117,H=t?Symbol.for("react.responder"):60118,B=t?Symbol.for("react.scope"):60119;function Q(y){return typeof y=="string"||typeof y=="function"||y===a||y===g||y===l||y===n||y===x||y===W||typeof y=="object"&&y!==null&&(y.$$typeof===L||y.$$typeof===Y||y.$$typeof===d||y.$$typeof===h||y.$$typeof===C||y.$$typeof===ae||y.$$typeof===H||y.$$typeof===B||y.$$typeof===X)}function j(y){if(typeof y=="object"&&y!==null){var xe=y.$$typeof;switch(xe){case e:var ye=y.type;switch(ye){case v:case g:case a:case l:case n:case x:return ye;default:var de=ye&&ye.$$typeof;switch(de){case h:case C:case L:case Y:case d:return de;default:return xe}}case o:return xe}}}var p=v,G=g,ge=h,Fe=d,Be=e,Ue=C,We=a,Me=L,re=Y,ie=o,ce=l,De=n,je=x,Se=!1;function $e(y){return Se||(Se=!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.")),Ee(y)||j(y)===v}function Ee(y){return j(y)===g}function Ne(y){return j(y)===h}function Le(y){return j(y)===d}function Qe(y){return typeof y=="object"&&y!==null&&y.$$typeof===e}function He(y){return j(y)===C}function Ge(y){return j(y)===a}function Pe(y){return j(y)===L}function Ie(y){return j(y)===Y}function fe(y){return j(y)===o}function Ce(y){return j(y)===l}function me(y){return j(y)===n}function Je(y){return j(y)===x}w.AsyncMode=p,w.ConcurrentMode=G,w.ContextConsumer=ge,w.ContextProvider=Fe,w.Element=Be,w.ForwardRef=Ue,w.Fragment=We,w.Lazy=Me,w.Memo=re,w.Portal=ie,w.Profiler=ce,w.StrictMode=De,w.Suspense=je,w.isAsyncMode=$e,w.isConcurrentMode=Ee,w.isContextConsumer=Ne,w.isContextProvider=Le,w.isElement=Qe,w.isForwardRef=He,w.isFragment=Ge,w.isLazy=Pe,w.isMemo=Ie,w.isPortal=fe,w.isProfiler=Ce,w.isStrictMode=me,w.isSuspense=Je,w.isValidElementType=Q,w.typeOf=j})()),w}var Ft;function Ar(){return Ft||(Ft=1,process.env.NODE_ENV==="production"?Ve.exports=_r():Ve.exports=kr()),Ve.exports}var rt,Bt;function Fr(){if(Bt)return rt;Bt=1;var t=Ar(),e={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={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},n={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};l[t.ForwardRef]=a,l[t.Memo]=n;function d(L){return t.isMemo(L)?n:l[L.$$typeof]||e}var h=Object.defineProperty,v=Object.getOwnPropertyNames,g=Object.getOwnPropertySymbols,C=Object.getOwnPropertyDescriptor,x=Object.getPrototypeOf,W=Object.prototype;function Y(L,X,ae){if(typeof X!="string"){if(W){var H=x(X);H&&H!==W&&Y(L,H,ae)}var B=v(X);g&&(B=B.concat(g(X)));for(var Q=d(L),j=d(X),p=0;p<B.length;++p){var G=B[p];if(!o[G]&&!(ae&&ae[G])&&!(j&&j[G])&&!(Q&&Q[G])){var ge=C(X,G);try{h(L,G,ge)}catch{}}}}return L}return rt=Y,rt}Fr();var Br=!0;function Mr(t,e,o){var a="";return o.split(" ").forEach(function(n){t[n]!==void 0?e.push(t[n]+";"):n&&(a+=n+" ")}),a}var $t=function(e,o,a){var n=e.key+"-"+o.name;(a===!1||Br===!1)&&e.registered[n]===void 0&&(e.registered[n]=o.styles)},Dr=function(e,o,a){$t(e,o,a);var n=e.key+"-"+o.name;if(e.inserted[o.name]===void 0){var l=o;do e.insert(o===l?"."+n:"",l,e.sheet,!0),l=l.next;while(l!==void 0)}};function jr(t){for(var e=0,o,a=0,n=t.length;n>=4;++a,n-=4)o=t.charCodeAt(a)&255|(t.charCodeAt(++a)&255)<<8|(t.charCodeAt(++a)&255)<<16|(t.charCodeAt(++a)&255)<<24,o=(o&65535)*1540483477+((o>>>16)*59797<<16),o^=o>>>24,e=(o&65535)*1540483477+((o>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(n){case 3:e^=(t.charCodeAt(a+2)&255)<<16;case 2:e^=(t.charCodeAt(a+1)&255)<<8;case 1:e^=t.charCodeAt(a)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}var $r={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 Nr(t){var e=Object.create(null);return function(o){return e[o]===void 0&&(e[o]=t(o)),e[o]}}var Lr=/[A-Z]|^ms/g,Qr=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Nt=function(e){return e.charCodeAt(1)===45},Mt=function(e){return e!=null&&typeof e!="boolean"},ot=Nr(function(t){return Nt(t)?t:t.replace(Lr,"-$&").toLowerCase()}),Dt=function(e,o){switch(e){case"animation":case"animationName":if(typeof o=="string")return o.replace(Qr,function(a,n,l){return oe={name:n,styles:l,next:oe},n})}return $r[e]!==1&&!Nt(e)&&typeof o=="number"&&o!==0?o+"px":o};function _e(t,e,o){if(o==null)return"";var a=o;if(a.__emotion_styles!==void 0)return a;switch(typeof o){case"boolean":return"";case"object":{var n=o;if(n.anim===1)return oe={name:n.name,styles:n.styles,next:oe},n.name;var l=o;if(l.styles!==void 0){var d=l.next;if(d!==void 0)for(;d!==void 0;)oe={name:d.name,styles:d.styles,next:oe},d=d.next;var h=l.styles+";";return h}return zr(t,e,o)}case"function":{if(t!==void 0){var v=oe,g=o(t);return oe=v,_e(t,e,g)}break}}var C=o;return C}function zr(t,e,o){var a="";if(Array.isArray(o))for(var n=0;n<o.length;n++)a+=_e(t,e,o[n])+";";else for(var l in o){var d=o[l];if(typeof d!="object"){var h=d;Mt(h)&&(a+=ot(l)+":"+Dt(l,h)+";")}else if(Array.isArray(d)&&typeof d[0]=="string"&&e==null)for(var v=0;v<d.length;v++)Mt(d[v])&&(a+=ot(l)+":"+Dt(l,d[v])+";");else{var g=_e(t,e,d);switch(l){case"animation":case"animationName":{a+=ot(l)+":"+g+";";break}default:a+=l+"{"+g+"}"}}}return a}var jt=/label:\s*([^\s;{]+)\s*(;|$)/g,oe;function Yr(t,e,o){if(t.length===1&&typeof t[0]=="object"&&t[0]!==null&&t[0].styles!==void 0)return t[0];var a=!0,n="";oe=void 0;var l=t[0];if(l==null||l.raw===void 0)a=!1,n+=_e(o,e,l);else{var d=l;n+=d[0]}for(var h=1;h<t.length;h++)if(n+=_e(o,e,t[h]),a){var v=l;n+=v[h]}jt.lastIndex=0;for(var g="",C;(C=jt.exec(n))!==null;)g+="-"+C[1];var x=jr(n)+g;return{name:x,styles:n,next:oe}}var Vr=function(e){return e()},qr=se.useInsertionEffect?se.useInsertionEffect:!1,Ur=qr||Vr,Lt=se.createContext(typeof HTMLElement<"u"?Pr({key:"css"}):null);Lt.Provider;var Wr=function(e){return m.forwardRef(function(o,a){var n=m.useContext(Lt);return e(o,n,a)})},Hr=se.createContext({}),qe={}.hasOwnProperty,it="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Qt=function(e,o){var a={};for(var n in o)qe.call(o,n)&&(a[n]=o[n]);return a[it]=e,a},Gr=function(e){var o=e.cache,a=e.serialized,n=e.isStringTag;return $t(o,a,n),Ur(function(){return Dr(o,a,n)}),null},Jr=Wr(function(t,e,o){var a=t.css;typeof a=="string"&&e.registered[a]!==void 0&&(a=e.registered[a]);var n=t[it],l=[a],d="";typeof t.className=="string"?d=Mr(e.registered,l,t.className):t.className!=null&&(d=t.className+" ");var h=Yr(l,void 0,se.useContext(Hr));d+=e.key+"-"+h.name;var v={};for(var g in t)qe.call(t,g)&&g!=="css"&&g!==it&&(v[g]=t[g]);return v.className=d,o&&(v.ref=o),se.createElement(se.Fragment,null,se.createElement(Gr,{cache:e,serialized:h,isStringTag:typeof n=="string"}),se.createElement(n,v))}),zt=Jr,dt=Oe.Fragment,i=function(e,o,a){return qe.call(o,"css")?Oe.jsx(zt,Qt(e,o),a):Oe.jsx(e,o,a)},V=function(e,o,a){return qe.call(o,"css")?Oe.jsxs(zt,Qt(e,o),a):Oe.jsxs(e,o,a)};const Kr=({components:t=[],children:e})=>i(dt,{children:t.reduceRight((o,a)=>i(a,{children:o}),e)}),pt={playQueue:"PlayQueueStore",bottomBar:"BottomBarStore",playlistList:"PlaylistListStore"},ft=m.createContext(void 0),ke=()=>m.useContext(ft),nt=new Ir({coerceTypes:!0});function Yt(t,e){let o;if(o=nt.getSchema(e),o===void 0&&(nt.addSchema(t,e),o=nt.getSchema(e)),o===void 0||o.schema!==t)throw new Error(`Invalid schema. Expected: '${JSON.stringify(t)}', but got '${JSON.stringify(o?.schema)}'.`);return o}const Xr={type:"object",properties:{url:{type:"string"},type:{type:"string"},videoId:{type:"string"},title:{type:"string"}},required:["url","type","videoId","title"]};var M=(t=>(t.Off="Off",t.All="All",t.One="One",t))(M||{});const Zr={type:"object",properties:{version:{type:"string",nullable:!0},repeat:{type:"string",enum:Object.values(M),nullable:!0},shuffle:{type:"boolean",nullable:!0},items:{type:"array",nullable:!0,items:Xr},currentIndex:{type:"integer",nullable:!0}}};var eo=Object.defineProperty,to=Object.getOwnPropertyDescriptor,N=(t,e,o,a)=>{for(var n=a>1?void 0:a?to(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&eo(e,o,n),n};const D=class st{constructor(e,o){this.playQueue=e,this.dto=o,s.makeObservable(this),this.id=st.nextId++}static nextId=1;id;isSelected=!1;static fromDto(e,o){return new st(e,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.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(){this.playQueue.setCurrentItem(this)}remove(){return this.playQueue.removeItems([this])}async playFirst(){await this.playQueue.playFirst([this.clone()])}async playNext(){await this.playQueue.playNext([this.clone()])}async addToPlayQueue(){await this.playQueue.addItems([this.clone()])}moveToTop(){this.playQueue.moveItem(this,0)}moveToBottom(){this.playQueue.moveItem(this,this.playQueue.items.length-1)}removeToTop(){return this.playQueue.removeItemsAbove(this)}removeOthers(){return this.playQueue.removeOtherItems(this)}};N([s.observable],D.prototype,"isSelected",2);N([s.computed],D.prototype,"isCurrent",1);N([s.computed],D.prototype,"index",1);N([s.computed],D.prototype,"isFirst",1);N([s.computed],D.prototype,"isLast",1);N([s.computed],D.prototype,"canMoveToTop",1);N([s.computed],D.prototype,"canMoveToBottom",1);N([s.computed],D.prototype,"canRemoveToTop",1);N([s.computed],D.prototype,"canRemoveOthers",1);N([s.action.bound],D.prototype,"unselect",1);N([s.action.bound],D.prototype,"select",1);N([s.action.bound],D.prototype,"toggleSelected",1);N([s.action.bound],D.prototype,"play",1);N([s.action.bound],D.prototype,"remove",1);N([s.action.bound],D.prototype,"playFirst",1);N([s.action.bound],D.prototype,"playNext",1);N([s.action.bound],D.prototype,"addToPlayQueue",1);N([s.action.bound],D.prototype,"moveToTop",1);N([s.action.bound],D.prototype,"moveToBottom",1);N([s.action.bound],D.prototype,"removeToTop",1);N([s.action.bound],D.prototype,"removeOthers",1);let ro=D;var oo=Object.defineProperty,no=Object.getOwnPropertyDescriptor,S=(t,e,o,a)=>{for(var n=a>1?void 0:a?no(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&oo(e,o,n),n};class Vt{constructor(e){this.playQueue=e,s.makeObservable(this)}get state(){return{version:"1.0",items:this.playQueue.items.map(e=>e.dto),currentIndex:this.playQueue.currentIndex}}set state(e){this.playQueue.items=e.items?.map(o=>this.playQueue.createItemFromDto(o))??[],this.playQueue.currentIndex=e.currentIndex}validateState(e){return Yt(Zr,"PlayQueueDto")(e)}}S([s.computed.struct],Vt.prototype,"state",1);class E{localStorageState;items=[];currentId;constructor(){s.makeObservable(this),this.localStorageState=new Vt(this)}createItemFromDto(e){return ro.fromDto(this,{url:e.url,type:e.type,videoId:e.videoId,title:e.title})}get isEmpty(){return this.items.length===0}get canClear(){return!this.isEmpty}get currentItem(){return this.items.find(e=>e.id===this.currentId)}get canPlay(){return this.currentItem!==void 0}get canPause(){return this.currentItem!==void 0}get hasMultipleItems(){return this.items.length>1}get currentIndex(){return this.currentId!==void 0?this.items.findIndex(e=>e.id===this.currentId):void 0}set currentIndex(e){this.currentId=e!==void 0?this.items.at(e)?.id:void 0}get hasPreviousItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex>0}get hasNextItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex<this.items.length-1}get isLastItem(){return this.currentIndex!==void 0&&this.currentIndex===this.items.length-1}get selectedItems(){return this.items.filter(e=>e.isSelected)}get allItemsSelected(){return this.selectedItems.length===this.items.length}get hasSelectedItems(){return this.selectedItems.length>0}get selectedItemsOrAllItems(){return this.hasSelectedItems?this.selectedItems:this.items}get canAddSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}get canPlaySelectedItemsNext(){return!this.isEmpty&&this.hasSelectedItems}get canRemoveSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}setItems(e){this.items=e}clear(){this.currentIndex=void 0,this.items=[]}unselectAll(){for(const e of this.items)e.unselect()}selectAll(){for(const e of this.items)e.select()}setCurrentItem(e){this.currentId=e?.id}setNextItems(e){this.currentIndex!==void 0&&this.items.splice(this.currentIndex+1,0,...e)}clearAndSetItems(e){this.clear(),this.setCurrentItem(e[0]),this.setNextItems(e)}async playNext(e){if(this.isEmpty){this.clearAndSetItems(e);return}this.setNextItems(e)}async playSelectedItemsNext(){await this.playNext(this.selectedItemsOrAllItems.map(e=>e.clone())),this.unselectAll()}async addItems(e){if(this.isEmpty){this.clearAndSetItems(e);return}this.items.push(...e)}async addSelectedItems(){await this.addItems(this.selectedItemsOrAllItems.map(e=>e.clone())),this.unselectAll()}async playFirst(e){if(this.isEmpty){this.clearAndSetItems(e);return}const{currentIndex:o}=this;o!==void 0&&(this.items.splice(o,0,...e),this.currentIndex=o)}moveItem(e,o){const a=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(o,0,a)}async goToFirst(){this.currentIndex!==void 0&&(this.currentIndex=0)}async removeItems(e){const{currentItem:o}=this;at.pull(this.items,...e.filter(l=>l!==o));const{currentIndex:a,isLastItem:n}=this;at.pull(this.items,e.find(l=>l===o)),this.currentItem!==o&&(n?await this.goToFirst():this.currentIndex=a)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){const o=e.id;return this.removeItems(this.items.filter(a=>a.id!==o))}async removeItemsAbove(e){const o=this.items.indexOf(e);return this.removeItems(this.items.filter((a,n)=>n<o))}async previous(){this.currentIndex!==void 0&&this.hasPreviousItem&&this.currentIndex--}async next(){this.currentIndex!==void 0&&this.hasNextItem&&this.currentIndex++}addItemFromDto(e){const o=this.createItemFromDto(e);return this.addItems([o])}}S([s.observable],E.prototype,"items",2);S([s.observable],E.prototype,"currentId",2);S([s.computed],E.prototype,"isEmpty",1);S([s.computed],E.prototype,"canClear",1);S([s.computed],E.prototype,"currentItem",1);S([s.computed],E.prototype,"canPlay",1);S([s.computed],E.prototype,"canPause",1);S([s.computed],E.prototype,"hasMultipleItems",1);S([s.computed],E.prototype,"currentIndex",1);S([s.computed],E.prototype,"hasPreviousItem",1);S([s.computed],E.prototype,"hasNextItem",1);S([s.computed],E.prototype,"isLastItem",1);S([s.computed],E.prototype,"selectedItems",1);S([s.computed],E.prototype,"allItemsSelected",1);S([s.computed],E.prototype,"hasSelectedItems",1);S([s.computed],E.prototype,"selectedItemsOrAllItems",1);S([s.computed],E.prototype,"canAddSelectedItems",1);S([s.computed],E.prototype,"canPlaySelectedItemsNext",1);S([s.computed],E.prototype,"canRemoveSelectedItems",1);S([s.action.bound],E.prototype,"setItems",1);S([s.action.bound],E.prototype,"clear",1);S([s.action.bound],E.prototype,"unselectAll",1);S([s.action.bound],E.prototype,"selectAll",1);S([s.action.bound],E.prototype,"setCurrentItem",1);S([s.action.bound],E.prototype,"setNextItems",1);S([s.action.bound],E.prototype,"clearAndSetItems",1);S([s.action.bound],E.prototype,"playNext",1);S([s.action.bound],E.prototype,"playSelectedItemsNext",1);S([s.action.bound],E.prototype,"addItems",1);S([s.action.bound],E.prototype,"addSelectedItems",1);S([s.action.bound],E.prototype,"playFirst",1);S([s.action.bound],E.prototype,"moveItem",1);S([s.action.bound],E.prototype,"goToFirst",1);S([s.action.bound],E.prototype,"removeItems",1);S([s.action.bound],E.prototype,"removeSelectedItems",1);S([s.action.bound],E.prototype,"removeOtherItems",1);S([s.action.bound],E.prototype,"removeItemsAbove",1);S([s.action.bound],E.prototype,"previous",1);S([s.action.bound],E.prototype,"next",1);S([s.action.bound],E.prototype,"addItemFromDto",1);const ao=({children:t})=>{const[e]=m.useState(()=>new E);ut.useLocalStorageState(pt.playQueue,e.localStorageState);const o=le.useNostalgicDiva();return m.useEffect(()=>s.reaction(()=>e.currentItem,async(a,n)=>{a===void 0||n===void 0||a.type===n.type&&a.videoId===n.videoId&&await o.setCurrentTime(0)}),[e,o]),i(ft.Provider,{value:e,children:t})},qt=m.createContext(void 0),Ut=()=>m.useContext(qt);var io=Object.defineProperty,so=Object.getOwnPropertyDescriptor,ee=(t,e,o,a)=>{for(var n=a>1?void 0:a?so(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&io(e,o,n),n};class K{controller=le.nullPlayerController;playing=!1;percent=0;seeking=!1;constructor(){s.makeObservable(this)}setPlaying(e){this.playing=e}setPercent(e){this.percent=e}setSeeking(e){this.seeking=e}onControllerChange(e){this.controller=e}onPlay(){this.playing=!0}onPause(){this.playing=!1}onEnded(){this.playing=!1}onTimeUpdate({percent:e}){e!==void 0&&(this.seeking||(this.percent=e))}}ee([s.observable],K.prototype,"controller",2);ee([s.observable],K.prototype,"playing",2);ee([s.observable],K.prototype,"percent",2);ee([s.observable],K.prototype,"seeking",2);ee([s.action.bound],K.prototype,"setPlaying",1);ee([s.action.bound],K.prototype,"setPercent",1);ee([s.action.bound],K.prototype,"setSeeking",1);ee([s.action.bound],K.prototype,"onControllerChange",1);ee([s.action.bound],K.prototype,"onPlay",1);ee([s.action.bound],K.prototype,"onPause",1);ee([s.action.bound],K.prototype,"onEnded",1);ee([s.action.bound],K.prototype,"onTimeUpdate",1);const lo=({children:t})=>{const[e]=m.useState(()=>new K);return i(qt.Provider,{value:e,children:t})},Wt=m.createContext(void 0),q=()=>m.useContext(Wt);var uo=Object.defineProperty,co=Object.getOwnPropertyDescriptor,_=(t,e,o,a)=>{for(var n=a>1?void 0:a?co(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&uo(e,o,n),n};const po={type:"object",properties:{repeat:{type:"string",enum:Object.values(M),nullable:!0},shuffle:{type:"boolean",nullable:!0}}};class Ht{constructor(e){this.bottomBar=e,s.makeObservable(this)}get state(){return{repeat:this.bottomBar.repeat,shuffle:this.bottomBar.shuffle}}set state(e){this.bottomBar.repeat=e.repeat??M.Off,this.bottomBar.shuffle=e.shuffle??!1}validateState(e){return Yt(po,"BottomBarLocalStorageState")(e)}}_([s.computed.struct],Ht.prototype,"state",1);class k{constructor(e,o){this.player=e,this.playQueue=o,s.makeObservable(this),this.localStorageState=new Ht(this)}localStorageState;repeat=M.Off;shuffle=!1;get controller(){return this.player.controller}get playing(){return this.player.playing}get percent(){return this.player.percent}get canSeek(){return!this.playQueue.isEmpty&&this.controller.supports("setCurrentTime")}get currentItem(){return this.playQueue.currentItem}get canToggleRepeat(){return!0}get canToggleShuffle(){return!1}get canPlay(){return this.playQueue.canPlay&&this.controller.supports("play")}get canPause(){return this.playQueue.canPause&&this.controller.supports("pause")}get canPrevious(){return!this.playQueue.isEmpty}get canNext(){return this.playQueue.hasNextItem}get canSkipBack10(){return this.canSeek}get canSkipForward30(){return this.canSeek}get canRemoveFromPlayQueue(){return!this.playQueue.isEmpty}setPercent(e){this.player.setPercent(e)}setSeeking(e){this.player.setSeeking(e)}toggleRepeat(){switch(this.repeat){case M.Off:this.repeat=M.All;break;case M.All:this.repeat=M.One;break;case M.One:this.repeat=M.Off;break}}toggleShuffle(){this.shuffle=!this.shuffle}play(){return this.controller.play()}pause(){return this.controller.pause()}async previous(){if(this.playQueue.hasPreviousItem){const e=await this.controller.getCurrentTime();e===void 0||e<5?await this.playQueue.previous():await this.controller.setCurrentTime(0)}else await this.controller.setCurrentTime(0)}next(){return this.playQueue.next()}async skipBack10(){const e=await this.controller.getCurrentTime();e!==void 0&&await this.controller.setCurrentTime(e-10)}async skipForward30(){const e=await this.controller.getCurrentTime();e!==void 0&&await this.controller.setCurrentTime(e+30)}async removeFromPlayQueue(){this.currentItem!==void 0&&await this.playQueue.removeItems([this.currentItem])}}_([s.observable],k.prototype,"repeat",2);_([s.observable],k.prototype,"shuffle",2);_([s.computed],k.prototype,"controller",1);_([s.computed],k.prototype,"playing",1);_([s.computed],k.prototype,"percent",1);_([s.computed],k.prototype,"canSeek",1);_([s.computed],k.prototype,"currentItem",1);_([s.computed],k.prototype,"canToggleRepeat",1);_([s.computed],k.prototype,"canToggleShuffle",1);_([s.computed],k.prototype,"canPlay",1);_([s.computed],k.prototype,"canPause",1);_([s.computed],k.prototype,"canPrevious",1);_([s.computed],k.prototype,"canNext",1);_([s.computed],k.prototype,"canSkipBack10",1);_([s.computed],k.prototype,"canSkipForward30",1);_([s.computed],k.prototype,"canRemoveFromPlayQueue",1);_([s.action.bound],k.prototype,"setPercent",1);_([s.action.bound],k.prototype,"setSeeking",1);_([s.action.bound],k.prototype,"toggleRepeat",1);_([s.action.bound],k.prototype,"toggleShuffle",1);_([s.action.bound],k.prototype,"play",1);_([s.action.bound],k.prototype,"pause",1);_([s.action.bound],k.prototype,"previous",1);_([s.action.bound],k.prototype,"next",1);_([s.action.bound],k.prototype,"skipBack10",1);_([s.action.bound],k.prototype,"skipForward30",1);_([s.action.bound],k.prototype,"removeFromPlayQueue",1);const fo=({children:t})=>{const e=Ut(),o=ke(),[a]=m.useState(()=>new k(e,o));return ut.useLocalStorageState(pt.bottomBar,a.localStorageState),i(Wt.Provider,{value:a,children:t})},Gt=m.createContext(void 0),mo=()=>m.useContext(Gt);var yo=Object.defineProperty,vo=Object.getOwnPropertyDescriptor,ne=(t,e,o,a)=>{for(var n=a>1?void 0:a?vo(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&yo(e,o,n),n};class te{constructor(e,o,a){this.player=e,this.playQueue=o,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 M.One:await this.controller.setCurrentTime(0);break;case M.Off:case M.All:if(this.playQueue.isLastItem)switch(this.bottomBar.repeat){case M.Off:this.player.onEnded();break;case M.All:this.playQueue.hasMultipleItems?await this.playQueue.goToFirst():await this.controller.setCurrentTime(0);break}else await this.playQueue.next();break}}onTimeUpdate(e){this.player.onTimeUpdate(e)}onControllerChange(e){this.player.onControllerChange(e)}}ne([s.observable],te.prototype,"interacted",2);ne([s.computed],te.prototype,"controller",1);ne([s.computed],te.prototype,"currentItem",1);ne([s.action.bound],te.prototype,"interact",1);ne([s.action.bound],te.prototype,"onLoaded",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);ne([s.action.bound],te.prototype,"onControllerChange",1);const ho=({children:t})=>{const e=Ut(),o=ke(),a=q(),[n]=m.useState(()=>new te(e,o,a));return i(Gt.Provider,{value:n,children:t})},bo=m.createContext(void 0);var go=Object.defineProperty,So=Object.getOwnPropertyDescriptor,ue=(t,e,o,a)=>{for(var n=a>1?void 0:a?So(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&go(e,o,n),n};class Jt{constructor(e){this.playlistList=e,s.makeObservable(this)}get state(){return{items:this.playlistList.items.map(e=>({id:e.id,name:e.name}))}}set state(e){this.playlistList.items=e.items?.map(o=>new be(this.playlistList,o.id,o.name))??[]}validateState(e){return!0}}ue([s.computed.struct],Jt.prototype,"state",1);class be{constructor(e,o,a){this.playlistList=e,s.makeObservable(this),this.id=o,this.name=a}id;name;async rename(e){this.name=e}remove(){return this.playlistList.removeItem(this)}}ue([s.observable],be.prototype,"id",2);ue([s.observable],be.prototype,"name",2);ue([s.action.bound],be.prototype,"rename",1);ue([s.action.bound],be.prototype,"remove",1);class Ae{localStorageState;items=[];constructor(){s.makeObservable(this),this.localStorageState=new Jt(this)}createItem(e){return new be(this,crypto.randomUUID(),e)}setItems(e){this.items=e}async addItem(e){this.items.push(e)}async removeItem(e){at.pull(this.items,e)}}ue([s.observable],Ae.prototype,"items",2);ue([s.action.bound],Ae.prototype,"setItems",1);ue([s.action.bound],Ae.prototype,"addItem",1);ue([s.action.bound],Ae.prototype,"removeItem",1);const Eo=({children:t})=>{const[e]=m.useState(()=>new Ae);return ut.useLocalStorageState(pt.playlistList,e.localStorageState),i(bo.Provider,{value:e,children:t})},Po=({children:t,nostalgicDivaProps:e})=>i(le.NostalgicDivaProvider,{...e,children:i(Kr,{components:[lo,ao,fo,ho,Eo],children:t})});function Io(t){return t!==null&&typeof t=="object"&&"title"in t&&typeof t.title=="string"}const Co=({onCancel:t,onSave:e})=>{const o=u.useGeneratedHtmlId({prefix:"modalForm"}),[a,n]=m.useState(""),[l,d]=m.useState(""),[h,v]=m.useState(!1);return V(u.EuiModal,{onClose:t,initialFocus:"[name=url]",children:[i(u.EuiModalHeader,{children:i(u.EuiModalHeaderTitle,{children:"Add video"})}),i(u.EuiModalBody,{children:V(u.EuiForm,{id:o,component:"form",onSubmit:async g=>{g.preventDefault();try{v(!0),await e({url:a,title:l})}finally{v(!1)}},children:[i(u.EuiFormRow,{label:"URL",children:i(u.EuiFieldText,{name:"url",value:a,onChange:g=>n(g.target.value)})}),i(u.EuiFormRow,{label:"Title",children:i(u.EuiFieldText,{name:"title",value:l,onChange:g=>d(g.target.value)})})]})}),V(u.EuiModalFooter,{children:[i(u.EuiButtonEmpty,{onClick:t,children:"Cancel"}),i(u.EuiButton,{type:"submit",form:o,fill:!0,disabled:a.trim().length===0,isLoading:h,children:"Add video"})]})]})},Kt=m.memo(({onSave:t})=>{const[e,o]=m.useState(!1),a=m.useCallback(async n=>{const l=le.findVideoService(n.url);if(l===void 0)return;const d=l.extractVideoId(n.url);if(d===void 0)return;const v=await(await fetch(`https://noembed.com/embed?url=${encodeURIComponent(n.url)}`)).json();await t({url:n.url,type:l.type,videoId:d,title:n.title||(Io(v)?v.title:d)}),o(!1)},[t]);return V(dt,{children:[i(u.EuiButton,{onClick:()=>o(!0),iconType:O.AddRegular,color:"primary",children:"Add video"}),e&&i(Co,{onCancel:()=>o(!1),onSave:a})]})}),xo=F.observer(({playQueue:t})=>i(u.EuiButton,{iconType:O.AddRegular,onClick:t.addSelectedItems,disabled:!t.canAddSelectedItems,children:"Add to play queue"})),To=F.observer(({playQueue:t})=>{const{euiTheme:e}=u.useEuiTheme();return V(u.EuiFlexGroup,{alignItems:"center",gutterSize:"m",style:{position:"sticky",top:48,zIndex:998,background:e.colors.backgroundBasePlain},children:[i(u.EuiFlexItem,{grow:!1,children:i(u.EuiButton,{disabled:!t.canPlaySelectedItemsNext,onClick:t.playSelectedItemsNext,children:"Play next"})}),i(u.EuiFlexItem,{grow:!1,children:i(xo,{playQueue:t})}),i(u.EuiFlexItem,{grow:!1,children:i(u.EuiButton,{iconType:O.DismissRegular,onClick:t.removeSelectedItems,disabled:!t.canRemoveSelectedItems,children:"Remove"})}),i(u.EuiFlexItem,{grow:!1,children:i(u.EuiButton,{iconType:O.DeleteRegular,onClick:t.clear,disabled:!t.canClear,children:"Clear"})}),i(u.EuiFlexItem,{grow:!0}),i(u.EuiFlexItem,{grow:!1,children:i(Kt,{onSave:t.addItemFromDto})})]})}),Xt={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"},Ro=F.observer(({playQueue:t})=>{const{euiTheme:e}=u.useEuiTheme();return V(u.EuiTableHeader,{style:{position:"sticky",top:112,zIndex:998,background:e.colors.backgroundBasePlain},children:[i(u.EuiTableHeaderCellCheckbox,{children:i(u.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:o=>{o.target.checked?t.selectAll():t.unselectAll()}})}),i(u.EuiTableHeaderCell,{width:24}),i(u.EuiTableHeaderCell,{children:"Title"}),i(u.EuiTableHeaderCell,{})]})}),wo=m.memo(({item:t,closePopover:e})=>{const o=m.useCallback(({name:n,icon:l,disabled:d,onClick:h})=>({name:n,icon:l,disabled:d,onClick:async v=>{e(),h(v)}}),[e]),a=m.useMemo(()=>[{id:0,items:[o({name:"Play first",icon:i(u.EuiIcon,{type:""}),onClick:t.playFirst}),o({name:"Play next",icon:i(u.EuiIcon,{type:""}),onClick:t.playNext}),o({name:"Add to play queue",icon:i(u.EuiIcon,{type:O.AddRegular}),onClick:t.addToPlayQueue}),{isSeparator:!0},o({name:"Move to the top",icon:i(u.EuiIcon,{type:O.ArrowUploadRegular}),onClick:t.moveToTop,disabled:!t.canMoveToTop}),o({name:"Move to the bottom",icon:i(u.EuiIcon,{type:O.ArrowDownloadRegular}),onClick:t.moveToBottom,disabled:!t.canMoveToBottom}),{isSeparator:!0},o({name:"Remove to the top",icon:i(u.EuiIcon,{type:""}),onClick:t.removeToTop,disabled:!t.canRemoveToTop}),o({name:"Remove others",icon:i(u.EuiIcon,{type:""}),onClick:t.removeOthers,disabled:!t.canRemoveOthers})]}],[o,t]);return i(u.EuiContextMenu,{initialPanelId:0,panels:a})}),Oo=m.memo(({item:t})=>{const[e,o]=m.useState(!1),a=m.useCallback(()=>o(!e),[e]),n=m.useCallback(()=>o(!1),[]);return i(u.EuiPopover,{button:i(u.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:O.MoreHorizontalFilled,size:"s",color:"text",onClick:a}),isOpen:e,closePopover:n,panelPaddingSize:"none",anchorPosition:"leftCenter",children:i(wo,{item:t,closePopover:n})})}),_o=F.observer(({item:t})=>{const e=le.useNostalgicDiva();return V(u.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[i(u.EuiButton,{iconType:O.PlayRegular,size:"s",onClick:async()=>{t.isCurrent?await e.setCurrentTime(0):t.play()},children:"Play"}),i(u.EuiButton,{iconType:O.DismissRegular,size:"s",onClick:t.remove,children:"Remove"}),i(Oo,{item:t})]})}),ko=F.observer(({item:t})=>V(u.EuiTableRow,{isSelected:t.isCurrent,children:[i(u.EuiTableRowCellCheckbox,{children:i(u.EuiCheckbox,{id:t.id.toString(),checked:t.isSelected,onChange:t.toggleSelected})}),i(u.EuiTableRowCell,{textOnly:!1,children:i("img",{src:Xt[t.type],width:16,height:16,alt:t.type})}),i(u.EuiTableRowCell,{children:i(u.EuiLink,{href:t.url,target:"_blank",external:!0,children:t.title})}),i(_o,{item:t})]})),Ao=F.observer(({playQueue:t})=>i(Cr.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>i(ko,{item:e},e.id))})),Fo=F.observer(({playQueue:t})=>V(u.EuiTable,{children:[i(Ro,{playQueue:t}),i(Ao,{playQueue:t})]})),Zt=F.observer(({playQueue:t})=>{const{euiTheme:e}=u.useEuiTheme();return V(u.EuiPageTemplate.Section,{children:[i(To,{playQueue:t}),i(u.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:e.colors.backgroundBasePlain}}),t.isEmpty?i(u.EuiEmptyPrompt,{title:i("h2",{children:"We couldn't find any videos"}),body:i("p",{children:"Your video library doesn't contain any video content."}),actions:i(Kt,{onSave:t.addItemFromDto})}):i(Fo,{playQueue:t})]})}),Bo=({breadcrumbs:t,tabs:e,...o})=>{const a=xr.useRouter();return i(u.EuiPageTemplate.Header,{...o,breadcrumbs:t?.map(({linkProps:n,...l})=>({...l,href:n===void 0?void 0:a.buildLocation(n).href,onClick:n===void 0?void 0:async d=>{d.preventDefault(),await a.navigate(n)}})),tabs:e?.map(({linkProps:n,...l})=>({...l,href:n===void 0?void 0:a.buildLocation(n).href,onClick:n===void 0?void 0:async d=>{d.preventDefault(),await a.navigate(n)}}))})},Mo=()=>{const t=ke();return V(dt,{children:[i(Bo,{pageTitle:"Play queue",rightSideItems:[]}),i(Zt,{playQueue:t})]})},Do=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:`Shuffle: ${t.shuffle?"On":"Off"}`,"aria-label":`Shuffle: ${t.shuffle?"On":"Off"}`,iconType:t.shuffle?O.ArrowShuffleFilled:O.ArrowShuffleOffFilled,size:"s",iconSize:"l",onClick:t.toggleShuffle,disabled:!t.canToggleShuffle})}),jo=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Previous","aria-label":"Previous",iconType:O.PreviousFilled,size:"s",iconSize:"l",onClick:t.previous,disabled:!t.canPrevious})}),$o=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Skip back 10 seconds","aria-label":"Skip back 10 seconds",iconType:O.SkipBack10Regular,size:"s",iconSize:"l",onClick:t.skipBack10,disabled:!t.canSkipBack10})}),No=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Pause","aria-label":"Pause",iconType:O.PauseFilled,size:"s",iconSize:"l",onClick:t.pause,disabled:!t.canPause})}),Lo=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Play","aria-label":"Play",iconType:O.PlayFilled,size:"s",iconSize:"l",onClick:t.play,disabled:!t.canPlay})}),Qo=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Skip forward 30 seconds","aria-label":"Skip forward 30 seconds",iconType:O.SkipForward30Regular,size:"s",iconSize:"l",onClick:t.skipForward30,disabled:!t.canSkipForward30})}),zo=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Next","aria-label":"Next",iconType:O.NextFilled,size:"s",iconSize:"l",onClick:t.next,disabled:!t.canNext})}),Yo={[M.Off]:O.ArrowRepeatAllOffFilled,[M.All]:O.ArrowRepeatAllFilled,[M.One]:O.ArrowRepeat1Filled},Vo=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:`Repeat: ${t.repeat===M.All?"All":t.repeat===M.One?"One":"Off"}`,"aria-label":`Repeat: ${t.repeat===M.All?"All":t.repeat===M.One?"One":"Off"}`,iconType:Yo[t.repeat],size:"s",iconSize:"l",onClick:t.toggleRepeat,disabled:!t.canToggleRepeat})}),qo=F.observer(()=>{const t=q();return V(u.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[i(Do,{}),i(jo,{}),i($o,{}),t.playing?i(No,{}):i(Lo,{}),i(Qo,{}),i(zo,{}),i(Vo,{})]})}),Uo=m.memo(({item:t,closePopover:e})=>{const o=m.useCallback(({name:n,icon:l,onClick:d})=>({name:n,icon:l,onClick:async h=>{e(),d(h)}}),[e]),a=m.useMemo(()=>[{id:0,items:[o({name:"Open in new tab",icon:i(u.EuiIcon,{type:O.OpenRegular}),onClick:async()=>{window.open(t.dto.url,"_blank")}}),o({name:"Copy link address",icon:i(u.EuiIcon,{type:""}),onClick:async()=>{await navigator.clipboard.writeText(t.dto.url)}}),o({name:"Copy link text",icon:i(u.EuiIcon,{type:""}),onClick:async()=>{await navigator.clipboard.writeText(t.dto.title)}})]}],[o,t]);return i(u.EuiContextMenu,{initialPanelId:0,panels:a})}),Wo=m.memo(({item:t})=>{const[e,o]=m.useState(!1),a=m.useCallback(()=>o(!e),[e]),n=m.useCallback(()=>o(!1),[]);return i(u.EuiPopover,{button:i(u.EuiButtonEmpty,{iconType:Xt[t.type],size:"s",onClick:a,children:t.title}),isOpen:e,closePopover:n,panelPaddingSize:"none",anchorPosition:"upLeft",children:i(Uo,{item:t,closePopover:n})})}),Ho=F.observer(()=>{const t=q();return i(u.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexStart",alignItems:"center",children:t.currentItem&&i(Wo,{item:t.currentItem})})}),Go=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Mute","aria-label":"Mute",iconType:O.Speaker2Regular,size:"s",iconSize:"l",disabled:!t.controller.supports("setMuted")})}),Jo=F.observer(({button:t,isOpen:e,closePopover:o})=>{const a=q(),[n,l]=m.useState("0"),d=le.useNostalgicDiva();m.useLayoutEffect(()=>{e&&d.getVolume().then(v=>{v!==void 0&&l(Math.floor(v*100).toString())})},[e,d]);const h=m.useCallback(async v=>{l(v.currentTarget.value),await d.setVolume(Number(v.currentTarget.value)/100)},[d]);return i(u.EuiPopover,{button:t,isOpen:e,closePopover:o,anchorPosition:"upRight",children:i(u.EuiFormRow,{children:V(u.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[i(Go,{}),i(u.EuiRange,{min:0,max:100,step:1,value:n,onChange:h,css:{blockSize:32},disabled:!a.controller.supports("setVolume")})]})})})}),Ko=F.observer(()=>{const t=q(),[e,o]=m.useState(!1),a=()=>o(!e);return i(Jo,{button:i(u.EuiButtonIcon,{title:"Volume","aria-label":"Volume",iconType:O.Speaker2Regular,size:"s",iconSize:"l",onClick:a,disabled:!t.controller.supports("getVolume")}),isOpen:e,closePopover:()=>o(!1)})}),Xo=({onClickPlayQueueButton:t})=>i(u.EuiButtonIcon,{title:"Play queue","aria-label":"Play queue",iconType:O.NavigationPlayRegular,size:"s",iconSize:"l",onClick:t}),Zo=F.observer(({closePopover:t})=>{const e=q(),o=le.useNostalgicDiva(),a=m.useCallback(async()=>{await e.skipBack10(),t()},[e,t]),n=m.useCallback(async()=>{await e.skipForward30(),t()},[e,t]),l=m.useCallback(async x=>{await o.setPlaybackRate(x),t()},[o,t]),d=m.useCallback(async()=>{await e.removeFromPlayQueue(),t()},[e,t]),[h,v]=m.useState(),g=m.useCallback(async()=>{await e.controller.getPlaybackRate().then(x=>v(x))},[e]),C=m.useMemo(()=>[{id:0,items:[{name:"Speed",icon:i(u.EuiIcon,{type:O.TopSpeedRegular}),panel:1,onClick:g,disabled:!e.controller.supports("getPlaybackRate")},{name:"Skip back 10 seconds",icon:i(u.EuiIcon,{type:O.SkipBack10Regular}),onClick:a,disabled:!e.canSkipBack10},{name:"Skip forward 30 seconds",icon:i(u.EuiIcon,{type:O.SkipForward30Regular}),onClick:n,disabled:!e.canSkipForward30},{isSeparator:!0},{name:"Remove from play queue",icon:i(u.EuiIcon,{type:O.DismissRegular}),onClick:d,disabled:!e.canRemoveFromPlayQueue}]},{id:1,title:"Speed",items:[.25,.5,.75,1,1.25,1.5,1.75,2].map(x=>({name:x.toString(),onClick:()=>l(x),icon:x===h?"check":"empty",disabled:!e.controller.supports("setPlaybackRate")}))}],[e,g,a,n,d,l,h]);return i(u.EuiContextMenu,{initialPanelId:0,panels:C})}),en=m.memo(({button:t,isOpen:e,closePopover:o})=>i(u.EuiPopover,{button:t,isOpen:e,closePopover:o,panelPaddingSize:"none",anchorPosition:"upRight",children:i(Zo,{closePopover:o})})),tn=m.memo(()=>{const[t,e]=m.useState(!1),o=()=>e(!t);return i(en,{button:i(u.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:O.MoreHorizontalFilled,size:"s",iconSize:"l",onClick:o}),isOpen:t,closePopover:()=>e(!1)})}),rn=m.memo(({onClickPlayQueueButton:t})=>V(u.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexEnd",alignItems:"center",children:[i(Ko,{}),t&&i(Xo,{onClickPlayQueueButton:t}),i(tn,{})]})),on=F.observer(()=>{const t=q(),e=le.useNostalgicDiva(),o=m.useCallback(l=>{const d=Number(l.currentTarget.value)/100;t.setPercent(d)},[t]),a=m.useCallback(l=>{l.button===0&&t.setSeeking(!0)},[t]),n=m.useCallback(async l=>{if(l.button===0){const d=Number(l.currentTarget.value)/100;t.setSeeking(!1);const h=await e.getDuration();h!==void 0&&await e.setCurrentTime(h*d)}},[t,e]);return i(u.EuiRange,{min:0,max:100,step:1e-7,value:t.percent*100,onChange:o,onMouseDown:a,onMouseUp:n,fullWidth:!0,showRange:!0,css:{blockSize:32},disabled:!t.canSeek})}),nn=F.observer(({onClickPlayQueueButton:t})=>i(u.EuiBottomBar,{paddingSize:"s",children:V(u.EuiFlexGroup,{direction:"column",gutterSize:"none",children:[i(u.EuiFlexItem,{children:i(on,{})}),i(u.EuiFlexItem,{children:V(u.EuiFlexGroup,{responsive:!1,children:[i(u.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:i(Ho,{})}),i(u.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:i(qo,{})}),i(u.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:i(rn,{onClickPlayQueueButton:t})})]})})]})})),lt={width:400,height:225},an=F.observer(()=>{const t=mo(),e=m.useMemo(()=>({onLoaded:t.onLoaded,onPlay:t.onPlay,onPause:t.onPause,onEnded:t.onEnded,onTimeUpdate:t.onTimeUpdate}),[t]);return m.useLayoutEffect(()=>(window.addEventListener("click",t.interact,{once:!0}),()=>{window.removeEventListener("click",t.interact)}),[t]),i("div",{css:{position:"fixed",right:0,bottom:ct,width:lt.width,height:lt.height,zIndex:998,backgroundColor:"rgb(39, 39, 39)",display:"flex",flexDirection:"column"},children:i("div",{css:{flexGrow:1,backgroundColor:"black"},children:t.currentItem&&i(le.NostalgicDiva,{src:t.currentItem.url,options:e,onControllerChange:t.onControllerChange})})})}),sn=F.observer(({children:t})=>{const e=ke();return V(u.EuiPageTemplate,{panelled:!0,style:{minBlockSize:`max(460px, 100vh - ${ct}px)`},children:[t,!e.isEmpty&&i(u.EuiSpacer,{style:{blockSize:lt.height}})]})});exports.BottomBar=nn;exports.HydrangeanDivaProvider=Po;exports.MediaPlayerLayout=sn;exports.MiniPlayer=an;exports.PlayQueueContext=ft;exports.PlayQueuePage=Mo;exports.PlayQueueSection=Zt;exports.RepeatMode=M;exports.bottomBarHeight=ct;exports.usePlayQueue=ke;
14
+ <%s key={someKey} {...props} />`,tt,pe,Sr,pe),Tt[pe+tt]=!0}}return r===a?yr(z):mr(z),z}}function vr(r,c,f){return Rt(r,c,f,!0)}function hr(r,c,f){return Rt(r,c,f,!1)}var br=hr,gr=vr;we.Fragment=a,we.jsx=br,we.jsxs=gr})()),we}var _t;function Or(){return _t||(_t=1,process.env.NODE_ENV==="production"?Ye.exports=Rr():Ye.exports=wr()),Ye.exports}var Oe=Or(),Ve={exports:{}},R={};var kt;function _r(){if(kt)return R;kt=1;var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,o=t?Symbol.for("react.portal"):60106,a=t?Symbol.for("react.fragment"):60107,n=t?Symbol.for("react.strict_mode"):60108,l=t?Symbol.for("react.profiler"):60114,d=t?Symbol.for("react.provider"):60109,h=t?Symbol.for("react.context"):60110,v=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,C=t?Symbol.for("react.forward_ref"):60112,x=t?Symbol.for("react.suspense"):60113,W=t?Symbol.for("react.suspense_list"):60120,Y=t?Symbol.for("react.memo"):60115,L=t?Symbol.for("react.lazy"):60116,X=t?Symbol.for("react.block"):60121,ae=t?Symbol.for("react.fundamental"):60117,H=t?Symbol.for("react.responder"):60118,B=t?Symbol.for("react.scope"):60119;function Q(p){if(typeof p=="object"&&p!==null){var G=p.$$typeof;switch(G){case e:switch(p=p.type,p){case v:case g:case a:case l:case n:case x:return p;default:switch(p=p&&p.$$typeof,p){case h:case C:case L:case Y:case d:return p;default:return G}}case o:return G}}}function j(p){return Q(p)===g}return R.AsyncMode=v,R.ConcurrentMode=g,R.ContextConsumer=h,R.ContextProvider=d,R.Element=e,R.ForwardRef=C,R.Fragment=a,R.Lazy=L,R.Memo=Y,R.Portal=o,R.Profiler=l,R.StrictMode=n,R.Suspense=x,R.isAsyncMode=function(p){return j(p)||Q(p)===v},R.isConcurrentMode=j,R.isContextConsumer=function(p){return Q(p)===h},R.isContextProvider=function(p){return Q(p)===d},R.isElement=function(p){return typeof p=="object"&&p!==null&&p.$$typeof===e},R.isForwardRef=function(p){return Q(p)===C},R.isFragment=function(p){return Q(p)===a},R.isLazy=function(p){return Q(p)===L},R.isMemo=function(p){return Q(p)===Y},R.isPortal=function(p){return Q(p)===o},R.isProfiler=function(p){return Q(p)===l},R.isStrictMode=function(p){return Q(p)===n},R.isSuspense=function(p){return Q(p)===x},R.isValidElementType=function(p){return typeof p=="string"||typeof p=="function"||p===a||p===g||p===l||p===n||p===x||p===W||typeof p=="object"&&p!==null&&(p.$$typeof===L||p.$$typeof===Y||p.$$typeof===d||p.$$typeof===h||p.$$typeof===C||p.$$typeof===ae||p.$$typeof===H||p.$$typeof===B||p.$$typeof===X)},R.typeOf=Q,R}var w={};var At;function kr(){return At||(At=1,process.env.NODE_ENV!=="production"&&(function(){var t=typeof Symbol=="function"&&Symbol.for,e=t?Symbol.for("react.element"):60103,o=t?Symbol.for("react.portal"):60106,a=t?Symbol.for("react.fragment"):60107,n=t?Symbol.for("react.strict_mode"):60108,l=t?Symbol.for("react.profiler"):60114,d=t?Symbol.for("react.provider"):60109,h=t?Symbol.for("react.context"):60110,v=t?Symbol.for("react.async_mode"):60111,g=t?Symbol.for("react.concurrent_mode"):60111,C=t?Symbol.for("react.forward_ref"):60112,x=t?Symbol.for("react.suspense"):60113,W=t?Symbol.for("react.suspense_list"):60120,Y=t?Symbol.for("react.memo"):60115,L=t?Symbol.for("react.lazy"):60116,X=t?Symbol.for("react.block"):60121,ae=t?Symbol.for("react.fundamental"):60117,H=t?Symbol.for("react.responder"):60118,B=t?Symbol.for("react.scope"):60119;function Q(y){return typeof y=="string"||typeof y=="function"||y===a||y===g||y===l||y===n||y===x||y===W||typeof y=="object"&&y!==null&&(y.$$typeof===L||y.$$typeof===Y||y.$$typeof===d||y.$$typeof===h||y.$$typeof===C||y.$$typeof===ae||y.$$typeof===H||y.$$typeof===B||y.$$typeof===X)}function j(y){if(typeof y=="object"&&y!==null){var xe=y.$$typeof;switch(xe){case e:var ye=y.type;switch(ye){case v:case g:case a:case l:case n:case x:return ye;default:var de=ye&&ye.$$typeof;switch(de){case h:case C:case L:case Y:case d:return de;default:return xe}}case o:return xe}}}var p=v,G=g,ge=h,Fe=d,Be=e,Ue=C,We=a,Me=L,re=Y,ie=o,ce=l,De=n,je=x,Se=!1;function $e(y){return Se||(Se=!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.")),Ee(y)||j(y)===v}function Ee(y){return j(y)===g}function Ne(y){return j(y)===h}function Le(y){return j(y)===d}function Qe(y){return typeof y=="object"&&y!==null&&y.$$typeof===e}function He(y){return j(y)===C}function Ge(y){return j(y)===a}function Pe(y){return j(y)===L}function Ie(y){return j(y)===Y}function fe(y){return j(y)===o}function Ce(y){return j(y)===l}function me(y){return j(y)===n}function Je(y){return j(y)===x}w.AsyncMode=p,w.ConcurrentMode=G,w.ContextConsumer=ge,w.ContextProvider=Fe,w.Element=Be,w.ForwardRef=Ue,w.Fragment=We,w.Lazy=Me,w.Memo=re,w.Portal=ie,w.Profiler=ce,w.StrictMode=De,w.Suspense=je,w.isAsyncMode=$e,w.isConcurrentMode=Ee,w.isContextConsumer=Ne,w.isContextProvider=Le,w.isElement=Qe,w.isForwardRef=He,w.isFragment=Ge,w.isLazy=Pe,w.isMemo=Ie,w.isPortal=fe,w.isProfiler=Ce,w.isStrictMode=me,w.isSuspense=Je,w.isValidElementType=Q,w.typeOf=j})()),w}var Ft;function Ar(){return Ft||(Ft=1,process.env.NODE_ENV==="production"?Ve.exports=_r():Ve.exports=kr()),Ve.exports}var rt,Bt;function Fr(){if(Bt)return rt;Bt=1;var t=Ar(),e={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={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},n={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};l[t.ForwardRef]=a,l[t.Memo]=n;function d(L){return t.isMemo(L)?n:l[L.$$typeof]||e}var h=Object.defineProperty,v=Object.getOwnPropertyNames,g=Object.getOwnPropertySymbols,C=Object.getOwnPropertyDescriptor,x=Object.getPrototypeOf,W=Object.prototype;function Y(L,X,ae){if(typeof X!="string"){if(W){var H=x(X);H&&H!==W&&Y(L,H,ae)}var B=v(X);g&&(B=B.concat(g(X)));for(var Q=d(L),j=d(X),p=0;p<B.length;++p){var G=B[p];if(!o[G]&&!(ae&&ae[G])&&!(j&&j[G])&&!(Q&&Q[G])){var ge=C(X,G);try{h(L,G,ge)}catch{}}}}return L}return rt=Y,rt}Fr();var Br=!0;function Mr(t,e,o){var a="";return o.split(" ").forEach(function(n){t[n]!==void 0?e.push(t[n]+";"):n&&(a+=n+" ")}),a}var $t=function(e,o,a){var n=e.key+"-"+o.name;(a===!1||Br===!1)&&e.registered[n]===void 0&&(e.registered[n]=o.styles)},Dr=function(e,o,a){$t(e,o,a);var n=e.key+"-"+o.name;if(e.inserted[o.name]===void 0){var l=o;do e.insert(o===l?"."+n:"",l,e.sheet,!0),l=l.next;while(l!==void 0)}};function jr(t){for(var e=0,o,a=0,n=t.length;n>=4;++a,n-=4)o=t.charCodeAt(a)&255|(t.charCodeAt(++a)&255)<<8|(t.charCodeAt(++a)&255)<<16|(t.charCodeAt(++a)&255)<<24,o=(o&65535)*1540483477+((o>>>16)*59797<<16),o^=o>>>24,e=(o&65535)*1540483477+((o>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(n){case 3:e^=(t.charCodeAt(a+2)&255)<<16;case 2:e^=(t.charCodeAt(a+1)&255)<<8;case 1:e^=t.charCodeAt(a)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}var $r={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 Nr(t){var e=Object.create(null);return function(o){return e[o]===void 0&&(e[o]=t(o)),e[o]}}var Lr=/[A-Z]|^ms/g,Qr=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Nt=function(e){return e.charCodeAt(1)===45},Mt=function(e){return e!=null&&typeof e!="boolean"},ot=Nr(function(t){return Nt(t)?t:t.replace(Lr,"-$&").toLowerCase()}),Dt=function(e,o){switch(e){case"animation":case"animationName":if(typeof o=="string")return o.replace(Qr,function(a,n,l){return oe={name:n,styles:l,next:oe},n})}return $r[e]!==1&&!Nt(e)&&typeof o=="number"&&o!==0?o+"px":o};function _e(t,e,o){if(o==null)return"";var a=o;if(a.__emotion_styles!==void 0)return a;switch(typeof o){case"boolean":return"";case"object":{var n=o;if(n.anim===1)return oe={name:n.name,styles:n.styles,next:oe},n.name;var l=o;if(l.styles!==void 0){var d=l.next;if(d!==void 0)for(;d!==void 0;)oe={name:d.name,styles:d.styles,next:oe},d=d.next;var h=l.styles+";";return h}return zr(t,e,o)}case"function":{if(t!==void 0){var v=oe,g=o(t);return oe=v,_e(t,e,g)}break}}var C=o;return C}function zr(t,e,o){var a="";if(Array.isArray(o))for(var n=0;n<o.length;n++)a+=_e(t,e,o[n])+";";else for(var l in o){var d=o[l];if(typeof d!="object"){var h=d;Mt(h)&&(a+=ot(l)+":"+Dt(l,h)+";")}else if(Array.isArray(d)&&typeof d[0]=="string"&&e==null)for(var v=0;v<d.length;v++)Mt(d[v])&&(a+=ot(l)+":"+Dt(l,d[v])+";");else{var g=_e(t,e,d);switch(l){case"animation":case"animationName":{a+=ot(l)+":"+g+";";break}default:a+=l+"{"+g+"}"}}}return a}var jt=/label:\s*([^\s;{]+)\s*(;|$)/g,oe;function Yr(t,e,o){if(t.length===1&&typeof t[0]=="object"&&t[0]!==null&&t[0].styles!==void 0)return t[0];var a=!0,n="";oe=void 0;var l=t[0];if(l==null||l.raw===void 0)a=!1,n+=_e(o,e,l);else{var d=l;n+=d[0]}for(var h=1;h<t.length;h++)if(n+=_e(o,e,t[h]),a){var v=l;n+=v[h]}jt.lastIndex=0;for(var g="",C;(C=jt.exec(n))!==null;)g+="-"+C[1];var x=jr(n)+g;return{name:x,styles:n,next:oe}}var Vr=function(e){return e()},qr=se.useInsertionEffect?se.useInsertionEffect:!1,Ur=qr||Vr,Lt=se.createContext(typeof HTMLElement<"u"?Pr({key:"css"}):null);Lt.Provider;var Wr=function(e){return m.forwardRef(function(o,a){var n=m.useContext(Lt);return e(o,n,a)})},Hr=se.createContext({}),qe={}.hasOwnProperty,it="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Qt=function(e,o){var a={};for(var n in o)qe.call(o,n)&&(a[n]=o[n]);return a[it]=e,a},Gr=function(e){var o=e.cache,a=e.serialized,n=e.isStringTag;return $t(o,a,n),Ur(function(){return Dr(o,a,n)}),null},Jr=Wr(function(t,e,o){var a=t.css;typeof a=="string"&&e.registered[a]!==void 0&&(a=e.registered[a]);var n=t[it],l=[a],d="";typeof t.className=="string"?d=Mr(e.registered,l,t.className):t.className!=null&&(d=t.className+" ");var h=Yr(l,void 0,se.useContext(Hr));d+=e.key+"-"+h.name;var v={};for(var g in t)qe.call(t,g)&&g!=="css"&&g!==it&&(v[g]=t[g]);return v.className=d,o&&(v.ref=o),se.createElement(se.Fragment,null,se.createElement(Gr,{cache:e,serialized:h,isStringTag:typeof n=="string"}),se.createElement(n,v))}),zt=Jr,dt=Oe.Fragment,i=function(e,o,a){return qe.call(o,"css")?Oe.jsx(zt,Qt(e,o),a):Oe.jsx(e,o,a)},V=function(e,o,a){return qe.call(o,"css")?Oe.jsxs(zt,Qt(e,o),a):Oe.jsxs(e,o,a)};const Kr=({components:t=[],children:e})=>i(dt,{children:t.reduceRight((o,a)=>i(a,{children:o}),e)}),pt={playQueue:"PlayQueueStore",bottomBar:"BottomBarStore",playlistList:"PlaylistListStore"},ft=m.createContext(void 0),ke=()=>m.useContext(ft),nt=new Ir({coerceTypes:!0});function Yt(t,e){let o;if(o=nt.getSchema(e),o===void 0&&(nt.addSchema(t,e),o=nt.getSchema(e)),o===void 0||o.schema!==t)throw new Error(`Invalid schema. Expected: '${JSON.stringify(t)}', but got '${JSON.stringify(o?.schema)}'.`);return o}const Xr={type:"object",properties:{url:{type:"string"},type:{type:"string"},videoId:{type:"string"},title:{type:"string"}},required:["url","type","videoId","title"]};var M=(t=>(t.Off="Off",t.All="All",t.One="One",t))(M||{});const Zr={type:"object",properties:{version:{type:"string",nullable:!0},repeat:{type:"string",enum:Object.values(M),nullable:!0},shuffle:{type:"boolean",nullable:!0},items:{type:"array",nullable:!0,items:Xr},currentIndex:{type:"integer",nullable:!0}}};var eo=Object.defineProperty,to=Object.getOwnPropertyDescriptor,N=(t,e,o,a)=>{for(var n=a>1?void 0:a?to(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&eo(e,o,n),n};const D=class st{constructor(e,o){this.playQueue=e,this.dto=o,s.makeObservable(this),this.id=st.nextId++}static nextId=1;id;isSelected=!1;static fromDto(e,o){return new st(e,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.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)}};N([s.observable],D.prototype,"isSelected",2);N([s.computed],D.prototype,"isCurrent",1);N([s.computed],D.prototype,"index",1);N([s.computed],D.prototype,"isFirst",1);N([s.computed],D.prototype,"isLast",1);N([s.computed],D.prototype,"canMoveToTop",1);N([s.computed],D.prototype,"canMoveToBottom",1);N([s.computed],D.prototype,"canRemoveToTop",1);N([s.computed],D.prototype,"canRemoveOthers",1);N([s.action.bound],D.prototype,"unselect",1);N([s.action.bound],D.prototype,"select",1);N([s.action.bound],D.prototype,"toggleSelected",1);N([s.action.bound],D.prototype,"play",1);N([s.action.bound],D.prototype,"remove",1);N([s.action.bound],D.prototype,"playFirst",1);N([s.action.bound],D.prototype,"playNext",1);N([s.action.bound],D.prototype,"addToPlayQueue",1);N([s.action.bound],D.prototype,"moveToTop",1);N([s.action.bound],D.prototype,"moveToBottom",1);N([s.action.bound],D.prototype,"removeToTop",1);N([s.action.bound],D.prototype,"removeOthers",1);let ro=D;var oo=Object.defineProperty,no=Object.getOwnPropertyDescriptor,S=(t,e,o,a)=>{for(var n=a>1?void 0:a?no(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&oo(e,o,n),n};class Vt{constructor(e){this.playQueue=e,s.makeObservable(this)}get state(){return{version:"1.0",items:this.playQueue.items.map(e=>e.dto),currentIndex:this.playQueue.currentIndex}}set state(e){this.playQueue.items=e.items?.map(o=>this.playQueue.createItemFromDto(o))??[],this.playQueue.currentIndex=e.currentIndex}validateState(e){return Yt(Zr,"PlayQueueDto")(e)}}S([s.computed.struct],Vt.prototype,"state",1);class E{localStorageState;items=[];currentId;constructor(){s.makeObservable(this),this.localStorageState=new Vt(this)}createItemFromDto(e){return ro.fromDto(this,{url:e.url,type:e.type,videoId:e.videoId,title:e.title})}get isEmpty(){return this.items.length===0}get canClear(){return!this.isEmpty}get currentItem(){return this.items.find(e=>e.id===this.currentId)}get canPlay(){return this.currentItem!==void 0}get canPause(){return this.currentItem!==void 0}get hasMultipleItems(){return this.items.length>1}get currentIndex(){return this.currentId!==void 0?this.items.findIndex(e=>e.id===this.currentId):void 0}set currentIndex(e){this.currentId=e!==void 0?this.items.at(e)?.id:void 0}get hasPreviousItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex>0}get hasNextItem(){return this.hasMultipleItems&&this.currentIndex!==void 0&&this.currentIndex<this.items.length-1}get isLastItem(){return this.currentIndex!==void 0&&this.currentIndex===this.items.length-1}get selectedItems(){return this.items.filter(e=>e.isSelected)}get allItemsSelected(){return this.selectedItems.length===this.items.length}get hasSelectedItems(){return this.selectedItems.length>0}get selectedItemsOrAllItems(){return this.hasSelectedItems?this.selectedItems:this.items}get canAddSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}get canPlaySelectedItemsNext(){return!this.isEmpty&&this.hasSelectedItems}get canRemoveSelectedItems(){return!this.isEmpty&&this.hasSelectedItems}setItems(e){this.items=e}clear(){this.currentIndex=void 0,this.items=[]}unselectAll(){for(const e of this.items)e.unselect()}selectAll(){for(const e of this.items)e.select()}setCurrentItem(e){this.currentId=e?.id}setNextItems(e){this.currentIndex!==void 0&&this.items.splice(this.currentIndex+1,0,...e)}clearAndSetItems(e){this.clear(),this.setCurrentItem(e[0]),this.setNextItems(e)}async playNext(e){if(this.isEmpty){this.clearAndSetItems(e);return}this.setNextItems(e)}async playSelectedItemsNext(){await this.playNext(this.selectedItemsOrAllItems.map(e=>e.clone())),this.unselectAll()}async addItems(e){if(this.isEmpty){this.clearAndSetItems(e);return}this.items.push(...e)}async addSelectedItems(){await this.addItems(this.selectedItemsOrAllItems.map(e=>e.clone())),this.unselectAll()}async playFirst(e){if(this.isEmpty){this.clearAndSetItems(e);return}const{currentIndex:o}=this;o!==void 0&&(this.items.splice(o,0,...e),this.currentIndex=o)}moveItem(e,o){const a=this.items.splice(this.items.indexOf(e),1)[0];this.items.splice(o,0,a)}async goToFirst(){this.currentIndex!==void 0&&(this.currentIndex=0)}async removeItems(e){const{currentItem:o}=this;at.pull(this.items,...e.filter(l=>l!==o));const{currentIndex:a,isLastItem:n}=this;at.pull(this.items,e.find(l=>l===o)),this.currentItem!==o&&(n?await this.goToFirst():this.currentIndex=a)}async removeSelectedItems(){await this.removeItems(this.selectedItemsOrAllItems),this.unselectAll()}async removeOtherItems(e){const o=e.id;return this.removeItems(this.items.filter(a=>a.id!==o))}async removeItemsAbove(e){const o=this.items.indexOf(e);return this.removeItems(this.items.filter((a,n)=>n<o))}async previous(){this.currentIndex!==void 0&&this.hasPreviousItem&&this.currentIndex--}async next(){this.currentIndex!==void 0&&this.hasNextItem&&this.currentIndex++}addItemFromDto(e){const o=this.createItemFromDto(e);return this.addItems([o])}}S([s.observable],E.prototype,"items",2);S([s.observable],E.prototype,"currentId",2);S([s.computed],E.prototype,"isEmpty",1);S([s.computed],E.prototype,"canClear",1);S([s.computed],E.prototype,"currentItem",1);S([s.computed],E.prototype,"canPlay",1);S([s.computed],E.prototype,"canPause",1);S([s.computed],E.prototype,"hasMultipleItems",1);S([s.computed],E.prototype,"currentIndex",1);S([s.computed],E.prototype,"hasPreviousItem",1);S([s.computed],E.prototype,"hasNextItem",1);S([s.computed],E.prototype,"isLastItem",1);S([s.computed],E.prototype,"selectedItems",1);S([s.computed],E.prototype,"allItemsSelected",1);S([s.computed],E.prototype,"hasSelectedItems",1);S([s.computed],E.prototype,"selectedItemsOrAllItems",1);S([s.computed],E.prototype,"canAddSelectedItems",1);S([s.computed],E.prototype,"canPlaySelectedItemsNext",1);S([s.computed],E.prototype,"canRemoveSelectedItems",1);S([s.action.bound],E.prototype,"setItems",1);S([s.action.bound],E.prototype,"clear",1);S([s.action.bound],E.prototype,"unselectAll",1);S([s.action.bound],E.prototype,"selectAll",1);S([s.action.bound],E.prototype,"setCurrentItem",1);S([s.action.bound],E.prototype,"setNextItems",1);S([s.action.bound],E.prototype,"clearAndSetItems",1);S([s.action.bound],E.prototype,"playNext",1);S([s.action.bound],E.prototype,"playSelectedItemsNext",1);S([s.action.bound],E.prototype,"addItems",1);S([s.action.bound],E.prototype,"addSelectedItems",1);S([s.action.bound],E.prototype,"playFirst",1);S([s.action.bound],E.prototype,"moveItem",1);S([s.action.bound],E.prototype,"goToFirst",1);S([s.action.bound],E.prototype,"removeItems",1);S([s.action.bound],E.prototype,"removeSelectedItems",1);S([s.action.bound],E.prototype,"removeOtherItems",1);S([s.action.bound],E.prototype,"removeItemsAbove",1);S([s.action.bound],E.prototype,"previous",1);S([s.action.bound],E.prototype,"next",1);S([s.action.bound],E.prototype,"addItemFromDto",1);const ao=({children:t})=>{const[e]=m.useState(()=>new E);ut.useLocalStorageState(pt.playQueue,e.localStorageState);const o=le.useNostalgicDiva();return m.useEffect(()=>s.reaction(()=>e.currentItem,async(a,n)=>{a===void 0||n===void 0||a.type===n.type&&a.videoId===n.videoId&&await o.setCurrentTime(0)}),[e,o]),i(ft.Provider,{value:e,children:t})},qt=m.createContext(void 0),Ut=()=>m.useContext(qt);var io=Object.defineProperty,so=Object.getOwnPropertyDescriptor,ee=(t,e,o,a)=>{for(var n=a>1?void 0:a?so(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&io(e,o,n),n};class K{controller=le.nullPlayerController;playing=!1;percent=0;seeking=!1;constructor(){s.makeObservable(this)}setPlaying(e){this.playing=e}setPercent(e){this.percent=e}setSeeking(e){this.seeking=e}onControllerChange(e){this.controller=e}onPlay(){this.playing=!0}onPause(){this.playing=!1}onEnded(){this.playing=!1}onTimeUpdate({percent:e}){e!==void 0&&(this.seeking||(this.percent=e))}}ee([s.observable],K.prototype,"controller",2);ee([s.observable],K.prototype,"playing",2);ee([s.observable],K.prototype,"percent",2);ee([s.observable],K.prototype,"seeking",2);ee([s.action.bound],K.prototype,"setPlaying",1);ee([s.action.bound],K.prototype,"setPercent",1);ee([s.action.bound],K.prototype,"setSeeking",1);ee([s.action.bound],K.prototype,"onControllerChange",1);ee([s.action.bound],K.prototype,"onPlay",1);ee([s.action.bound],K.prototype,"onPause",1);ee([s.action.bound],K.prototype,"onEnded",1);ee([s.action.bound],K.prototype,"onTimeUpdate",1);const lo=({children:t})=>{const[e]=m.useState(()=>new K);return i(qt.Provider,{value:e,children:t})},Wt=m.createContext(void 0),q=()=>m.useContext(Wt);var uo=Object.defineProperty,co=Object.getOwnPropertyDescriptor,_=(t,e,o,a)=>{for(var n=a>1?void 0:a?co(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&uo(e,o,n),n};const po={type:"object",properties:{repeat:{type:"string",enum:Object.values(M),nullable:!0},shuffle:{type:"boolean",nullable:!0}}};class Ht{constructor(e){this.bottomBar=e,s.makeObservable(this)}get state(){return{repeat:this.bottomBar.repeat,shuffle:this.bottomBar.shuffle}}set state(e){this.bottomBar.repeat=e.repeat??M.Off,this.bottomBar.shuffle=e.shuffle??!1}validateState(e){return Yt(po,"BottomBarLocalStorageState")(e)}}_([s.computed.struct],Ht.prototype,"state",1);class k{constructor(e,o){this.player=e,this.playQueue=o,s.makeObservable(this),this.localStorageState=new Ht(this)}localStorageState;repeat=M.Off;shuffle=!1;get controller(){return this.player.controller}get playing(){return this.player.playing}get percent(){return this.player.percent}get canSeek(){return!this.playQueue.isEmpty&&this.controller.supports("setCurrentTime")}get currentItem(){return this.playQueue.currentItem}get canToggleRepeat(){return!0}get canToggleShuffle(){return!1}get canPlay(){return this.playQueue.canPlay&&this.controller.supports("play")}get canPause(){return this.playQueue.canPause&&this.controller.supports("pause")}get canPrevious(){return!this.playQueue.isEmpty}get canNext(){return this.playQueue.hasNextItem}get canSkipBack10(){return this.canSeek}get canSkipForward30(){return this.canSeek}get canRemoveFromPlayQueue(){return!this.playQueue.isEmpty}setPercent(e){this.player.setPercent(e)}setSeeking(e){this.player.setSeeking(e)}toggleRepeat(){switch(this.repeat){case M.Off:this.repeat=M.All;break;case M.All:this.repeat=M.One;break;case M.One:this.repeat=M.Off;break}}toggleShuffle(){this.shuffle=!this.shuffle}play(){return this.controller.play()}pause(){return this.controller.pause()}async previous(){if(this.playQueue.hasPreviousItem){const e=await this.controller.getCurrentTime();e===void 0||e<5?await this.playQueue.previous():await this.controller.setCurrentTime(0)}else await this.controller.setCurrentTime(0)}next(){return this.playQueue.next()}async skipBack10(){const e=await this.controller.getCurrentTime();e!==void 0&&await this.controller.setCurrentTime(e-10)}async skipForward30(){const e=await this.controller.getCurrentTime();e!==void 0&&await this.controller.setCurrentTime(e+30)}async removeFromPlayQueue(){this.currentItem!==void 0&&await this.playQueue.removeItems([this.currentItem])}}_([s.observable],k.prototype,"repeat",2);_([s.observable],k.prototype,"shuffle",2);_([s.computed],k.prototype,"controller",1);_([s.computed],k.prototype,"playing",1);_([s.computed],k.prototype,"percent",1);_([s.computed],k.prototype,"canSeek",1);_([s.computed],k.prototype,"currentItem",1);_([s.computed],k.prototype,"canToggleRepeat",1);_([s.computed],k.prototype,"canToggleShuffle",1);_([s.computed],k.prototype,"canPlay",1);_([s.computed],k.prototype,"canPause",1);_([s.computed],k.prototype,"canPrevious",1);_([s.computed],k.prototype,"canNext",1);_([s.computed],k.prototype,"canSkipBack10",1);_([s.computed],k.prototype,"canSkipForward30",1);_([s.computed],k.prototype,"canRemoveFromPlayQueue",1);_([s.action.bound],k.prototype,"setPercent",1);_([s.action.bound],k.prototype,"setSeeking",1);_([s.action.bound],k.prototype,"toggleRepeat",1);_([s.action.bound],k.prototype,"toggleShuffle",1);_([s.action.bound],k.prototype,"play",1);_([s.action.bound],k.prototype,"pause",1);_([s.action.bound],k.prototype,"previous",1);_([s.action.bound],k.prototype,"next",1);_([s.action.bound],k.prototype,"skipBack10",1);_([s.action.bound],k.prototype,"skipForward30",1);_([s.action.bound],k.prototype,"removeFromPlayQueue",1);const fo=({children:t})=>{const e=Ut(),o=ke(),[a]=m.useState(()=>new k(e,o));return ut.useLocalStorageState(pt.bottomBar,a.localStorageState),i(Wt.Provider,{value:a,children:t})},Gt=m.createContext(void 0),mo=()=>m.useContext(Gt);var yo=Object.defineProperty,vo=Object.getOwnPropertyDescriptor,ne=(t,e,o,a)=>{for(var n=a>1?void 0:a?vo(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&yo(e,o,n),n};class te{constructor(e,o,a){this.player=e,this.playQueue=o,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 M.One:await this.controller.setCurrentTime(0);break;case M.Off:case M.All:if(this.playQueue.isLastItem)switch(this.bottomBar.repeat){case M.Off:this.player.onEnded();break;case M.All:this.playQueue.hasMultipleItems?await this.playQueue.goToFirst():await this.controller.setCurrentTime(0);break}else await this.playQueue.next();break}}onTimeUpdate(e){this.player.onTimeUpdate(e)}onControllerChange(e){this.player.onControllerChange(e)}}ne([s.observable],te.prototype,"interacted",2);ne([s.computed],te.prototype,"controller",1);ne([s.computed],te.prototype,"currentItem",1);ne([s.action.bound],te.prototype,"interact",1);ne([s.action.bound],te.prototype,"onLoaded",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);ne([s.action.bound],te.prototype,"onControllerChange",1);const ho=({children:t})=>{const e=Ut(),o=ke(),a=q(),[n]=m.useState(()=>new te(e,o,a));return i(Gt.Provider,{value:n,children:t})},bo=m.createContext(void 0);var go=Object.defineProperty,So=Object.getOwnPropertyDescriptor,ue=(t,e,o,a)=>{for(var n=a>1?void 0:a?So(e,o):e,l=t.length-1,d;l>=0;l--)(d=t[l])&&(n=(a?d(e,o,n):d(n))||n);return a&&n&&go(e,o,n),n};class Jt{constructor(e){this.playlistList=e,s.makeObservable(this)}get state(){return{items:this.playlistList.items.map(e=>({id:e.id,name:e.name}))}}set state(e){this.playlistList.items=e.items?.map(o=>new be(this.playlistList,o.id,o.name))??[]}validateState(e){return!0}}ue([s.computed.struct],Jt.prototype,"state",1);class be{constructor(e,o,a){this.playlistList=e,s.makeObservable(this),this.id=o,this.name=a}id;name;async rename(e){this.name=e}remove(){return this.playlistList.removeItem(this)}}ue([s.observable],be.prototype,"id",2);ue([s.observable],be.prototype,"name",2);ue([s.action.bound],be.prototype,"rename",1);ue([s.action.bound],be.prototype,"remove",1);class Ae{localStorageState;items=[];constructor(){s.makeObservable(this),this.localStorageState=new Jt(this)}createItem(e){return new be(this,crypto.randomUUID(),e)}setItems(e){this.items=e}async addItem(e){this.items.push(e)}async removeItem(e){at.pull(this.items,e)}}ue([s.observable],Ae.prototype,"items",2);ue([s.action.bound],Ae.prototype,"setItems",1);ue([s.action.bound],Ae.prototype,"addItem",1);ue([s.action.bound],Ae.prototype,"removeItem",1);const Eo=({children:t})=>{const[e]=m.useState(()=>new Ae);return ut.useLocalStorageState(pt.playlistList,e.localStorageState),i(bo.Provider,{value:e,children:t})},Po=({children:t,nostalgicDivaProps:e})=>i(le.NostalgicDivaProvider,{...e,children:i(Kr,{components:[lo,ao,fo,ho,Eo],children:t})});function Io(t){return t!==null&&typeof t=="object"&&"title"in t&&typeof t.title=="string"}const Co=({onCancel:t,onSave:e})=>{const o=u.useGeneratedHtmlId({prefix:"modalForm"}),[a,n]=m.useState(""),[l,d]=m.useState(""),[h,v]=m.useState(!1);return V(u.EuiModal,{onClose:t,initialFocus:"[name=url]",children:[i(u.EuiModalHeader,{children:i(u.EuiModalHeaderTitle,{children:"Add video"})}),i(u.EuiModalBody,{children:V(u.EuiForm,{id:o,component:"form",onSubmit:async g=>{g.preventDefault();try{v(!0),await e({url:a,title:l})}finally{v(!1)}},children:[i(u.EuiFormRow,{label:"URL",children:i(u.EuiFieldText,{name:"url",value:a,onChange:g=>n(g.target.value)})}),i(u.EuiFormRow,{label:"Title",children:i(u.EuiFieldText,{name:"title",value:l,onChange:g=>d(g.target.value)})})]})}),V(u.EuiModalFooter,{children:[i(u.EuiButtonEmpty,{onClick:t,children:"Cancel"}),i(u.EuiButton,{type:"submit",form:o,fill:!0,disabled:a.trim().length===0,isLoading:h,children:"Add video"})]})]})},Kt=m.memo(({onSave:t})=>{const[e,o]=m.useState(!1),a=m.useCallback(async n=>{const l=le.findVideoService(n.url);if(l===void 0)return;const d=l.extractVideoId(n.url);if(d===void 0)return;const v=await(await fetch(`https://noembed.com/embed?url=${encodeURIComponent(n.url)}`)).json();await t({url:n.url,type:l.type,videoId:d,title:n.title||(Io(v)?v.title:d)}),o(!1)},[t]);return V(dt,{children:[i(u.EuiButton,{onClick:()=>o(!0),iconType:O.AddRegular,color:"primary",children:"Add video"}),e&&i(Co,{onCancel:()=>o(!1),onSave:a})]})}),xo=F.observer(({playQueue:t})=>i(u.EuiButton,{iconType:O.AddRegular,onClick:t.addSelectedItems,disabled:!t.canAddSelectedItems,children:"Add to play queue"})),To=F.observer(({playQueue:t})=>{const{euiTheme:e}=u.useEuiTheme();return V(u.EuiFlexGroup,{alignItems:"center",gutterSize:"m",style:{position:"sticky",top:48,zIndex:998,background:e.colors.backgroundBasePlain},children:[i(u.EuiFlexItem,{grow:!1,children:i(u.EuiButton,{disabled:!t.canPlaySelectedItemsNext,onClick:t.playSelectedItemsNext,children:"Play next"})}),i(u.EuiFlexItem,{grow:!1,children:i(xo,{playQueue:t})}),i(u.EuiFlexItem,{grow:!1,children:i(u.EuiButton,{iconType:O.DismissRegular,onClick:t.removeSelectedItems,disabled:!t.canRemoveSelectedItems,children:"Remove"})}),i(u.EuiFlexItem,{grow:!1,children:i(u.EuiButton,{iconType:O.DeleteRegular,onClick:t.clear,disabled:!t.canClear,children:"Clear"})}),i(u.EuiFlexItem,{grow:!0}),i(u.EuiFlexItem,{grow:!1,children:i(Kt,{onSave:t.addItemFromDto})})]})}),Xt={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"},Ro=F.observer(({playQueue:t})=>{const{euiTheme:e}=u.useEuiTheme();return V(u.EuiTableHeader,{style:{position:"sticky",top:112,zIndex:998,background:e.colors.backgroundBasePlain},children:[i(u.EuiTableHeaderCellCheckbox,{children:i(u.EuiCheckbox,{id:"",checked:t.allItemsSelected,onChange:o=>{o.target.checked?t.selectAll():t.unselectAll()}})}),i(u.EuiTableHeaderCell,{width:24}),i(u.EuiTableHeaderCell,{children:"Title"}),i(u.EuiTableHeaderCell,{})]})}),wo=m.memo(({item:t,closePopover:e})=>{const o=m.useCallback(({name:n,icon:l,disabled:d,onClick:h})=>({name:n,icon:l,disabled:d,onClick:async v=>{e(),h(v)}}),[e]),a=m.useMemo(()=>[{id:0,items:[o({name:"Play first",icon:i(u.EuiIcon,{type:""}),onClick:t.playFirst}),o({name:"Play next",icon:i(u.EuiIcon,{type:""}),onClick:t.playNext}),o({name:"Add to play queue",icon:i(u.EuiIcon,{type:O.AddRegular}),onClick:t.addToPlayQueue}),{isSeparator:!0},o({name:"Move to the top",icon:i(u.EuiIcon,{type:O.ArrowUploadRegular}),onClick:t.moveToTop,disabled:!t.canMoveToTop}),o({name:"Move to the bottom",icon:i(u.EuiIcon,{type:O.ArrowDownloadRegular}),onClick:t.moveToBottom,disabled:!t.canMoveToBottom}),{isSeparator:!0},o({name:"Remove to the top",icon:i(u.EuiIcon,{type:""}),onClick:t.removeToTop,disabled:!t.canRemoveToTop}),o({name:"Remove others",icon:i(u.EuiIcon,{type:""}),onClick:t.removeOthers,disabled:!t.canRemoveOthers})]}],[o,t]);return i(u.EuiContextMenu,{initialPanelId:0,panels:a})}),Oo=m.memo(({item:t})=>{const[e,o]=m.useState(!1),a=m.useCallback(()=>o(!e),[e]),n=m.useCallback(()=>o(!1),[]);return i(u.EuiPopover,{button:i(u.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:O.MoreHorizontalFilled,size:"s",color:"text",onClick:a}),isOpen:e,closePopover:n,panelPaddingSize:"none",anchorPosition:"leftCenter",children:i(wo,{item:t,closePopover:n})})}),_o=F.observer(({item:t})=>{const e=le.useNostalgicDiva();return V(u.EuiTableRowCell,{textOnly:!1,hasActions:!0,align:"right",children:[i(u.EuiButton,{iconType:O.PlayRegular,size:"s",onClick:async()=>{t.isCurrent?await e.setCurrentTime(0):t.play()},children:"Play"}),i(u.EuiButton,{iconType:O.DismissRegular,size:"s",onClick:t.remove,children:"Remove"}),i(Oo,{item:t})]})}),ko=F.observer(({item:t})=>V(u.EuiTableRow,{isSelected:t.isCurrent,children:[i(u.EuiTableRowCellCheckbox,{children:i(u.EuiCheckbox,{id:t.id.toString(),checked:t.isSelected,onChange:t.toggleSelected})}),i(u.EuiTableRowCell,{textOnly:!1,children:i("img",{src:Xt[t.type],width:16,height:16,alt:t.type})}),i(u.EuiTableRowCell,{children:i(u.EuiLink,{href:t.url,target:"_blank",external:!0,children:t.title})}),i(_o,{item:t})]})),Ao=F.observer(({playQueue:t})=>i(Cr.ReactSortable,{tag:"tbody",list:t.items,setList:e=>t.setItems(e),children:t.items.map(e=>i(ko,{item:e},e.id))})),Fo=F.observer(({playQueue:t})=>V(u.EuiTable,{children:[i(Ro,{playQueue:t}),i(Ao,{playQueue:t})]})),Zt=F.observer(({playQueue:t})=>{const{euiTheme:e}=u.useEuiTheme();return V(u.EuiPageTemplate.Section,{children:[i(To,{playQueue:t}),i(u.EuiSpacer,{size:"l",style:{position:"sticky",top:88,zIndex:998,background:e.colors.backgroundBasePlain}}),t.isEmpty?i(u.EuiEmptyPrompt,{title:i("h2",{children:"We couldn't find any videos"}),body:i("p",{children:"Your video library doesn't contain any video content."}),actions:i(Kt,{onSave:t.addItemFromDto})}):i(Fo,{playQueue:t})]})}),Bo=({breadcrumbs:t,tabs:e,...o})=>{const a=xr.useRouter();return i(u.EuiPageTemplate.Header,{...o,breadcrumbs:t?.map(({linkProps:n,...l})=>({...l,href:n===void 0?void 0:a.buildLocation(n).href,onClick:n===void 0?void 0:async d=>{d.preventDefault(),await a.navigate(n)}})),tabs:e?.map(({linkProps:n,...l})=>({...l,href:n===void 0?void 0:a.buildLocation(n).href,onClick:n===void 0?void 0:async d=>{d.preventDefault(),await a.navigate(n)}}))})},Mo=()=>{const t=ke();return V(dt,{children:[i(Bo,{pageTitle:"Play queue",rightSideItems:[]}),i(Zt,{playQueue:t})]})},Do=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:`Shuffle: ${t.shuffle?"On":"Off"}`,"aria-label":`Shuffle: ${t.shuffle?"On":"Off"}`,iconType:t.shuffle?O.ArrowShuffleFilled:O.ArrowShuffleOffFilled,size:"s",iconSize:"l",onClick:t.toggleShuffle,disabled:!t.canToggleShuffle})}),jo=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Previous","aria-label":"Previous",iconType:O.PreviousFilled,size:"s",iconSize:"l",onClick:t.previous,disabled:!t.canPrevious})}),$o=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Skip back 10 seconds","aria-label":"Skip back 10 seconds",iconType:O.SkipBack10Regular,size:"s",iconSize:"l",onClick:t.skipBack10,disabled:!t.canSkipBack10})}),No=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Pause","aria-label":"Pause",iconType:O.PauseFilled,size:"s",iconSize:"l",onClick:t.pause,disabled:!t.canPause})}),Lo=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Play","aria-label":"Play",iconType:O.PlayFilled,size:"s",iconSize:"l",onClick:t.play,disabled:!t.canPlay})}),Qo=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Skip forward 30 seconds","aria-label":"Skip forward 30 seconds",iconType:O.SkipForward30Regular,size:"s",iconSize:"l",onClick:t.skipForward30,disabled:!t.canSkipForward30})}),zo=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Next","aria-label":"Next",iconType:O.NextFilled,size:"s",iconSize:"l",onClick:t.next,disabled:!t.canNext})}),Yo={[M.Off]:O.ArrowRepeatAllOffFilled,[M.All]:O.ArrowRepeatAllFilled,[M.One]:O.ArrowRepeat1Filled},Vo=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:`Repeat: ${t.repeat===M.All?"All":t.repeat===M.One?"One":"Off"}`,"aria-label":`Repeat: ${t.repeat===M.All?"All":t.repeat===M.One?"One":"Off"}`,iconType:Yo[t.repeat],size:"s",iconSize:"l",onClick:t.toggleRepeat,disabled:!t.canToggleRepeat})}),qo=F.observer(()=>{const t=q();return V(u.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[i(Do,{}),i(jo,{}),i($o,{}),t.playing?i(No,{}):i(Lo,{}),i(Qo,{}),i(zo,{}),i(Vo,{})]})}),Uo=m.memo(({item:t,closePopover:e})=>{const o=m.useCallback(({name:n,icon:l,onClick:d})=>({name:n,icon:l,onClick:async h=>{e(),d(h)}}),[e]),a=m.useMemo(()=>[{id:0,items:[o({name:"Open in new tab",icon:i(u.EuiIcon,{type:O.OpenRegular}),onClick:async()=>{window.open(t.dto.url,"_blank")}}),o({name:"Copy link address",icon:i(u.EuiIcon,{type:""}),onClick:async()=>{await navigator.clipboard.writeText(t.dto.url)}}),o({name:"Copy link text",icon:i(u.EuiIcon,{type:""}),onClick:async()=>{await navigator.clipboard.writeText(t.dto.title)}})]}],[o,t]);return i(u.EuiContextMenu,{initialPanelId:0,panels:a})}),Wo=m.memo(({item:t})=>{const[e,o]=m.useState(!1),a=m.useCallback(()=>o(!e),[e]),n=m.useCallback(()=>o(!1),[]);return i(u.EuiPopover,{button:i(u.EuiButtonEmpty,{iconType:Xt[t.type],size:"s",onClick:a,children:t.title}),isOpen:e,closePopover:n,panelPaddingSize:"none",anchorPosition:"upLeft",children:i(Uo,{item:t,closePopover:n})})}),Ho=F.observer(()=>{const t=q();return i(u.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexStart",alignItems:"center",children:t.currentItem&&i(Wo,{item:t.currentItem})})}),Go=F.observer(()=>{const t=q();return i(u.EuiButtonIcon,{title:"Mute","aria-label":"Mute",iconType:O.Speaker2Regular,size:"s",iconSize:"l",disabled:!t.controller.supports("setMuted")})}),Jo=F.observer(({button:t,isOpen:e,closePopover:o})=>{const a=q(),[n,l]=m.useState("0"),d=le.useNostalgicDiva();m.useLayoutEffect(()=>{e&&d.getVolume().then(v=>{v!==void 0&&l(Math.floor(v*100).toString())})},[e,d]);const h=m.useCallback(async v=>{l(v.currentTarget.value),await d.setVolume(Number(v.currentTarget.value)/100)},[d]);return i(u.EuiPopover,{button:t,isOpen:e,closePopover:o,anchorPosition:"upRight",children:i(u.EuiFormRow,{children:V(u.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"center",alignItems:"center",children:[i(Go,{}),i(u.EuiRange,{min:0,max:100,step:1,value:n,onChange:h,css:{blockSize:32},disabled:!a.controller.supports("setVolume")})]})})})}),Ko=F.observer(()=>{const t=q(),[e,o]=m.useState(!1),a=()=>o(!e);return i(Jo,{button:i(u.EuiButtonIcon,{title:"Volume","aria-label":"Volume",iconType:O.Speaker2Regular,size:"s",iconSize:"l",onClick:a,disabled:!t.controller.supports("getVolume")}),isOpen:e,closePopover:()=>o(!1)})}),Xo=({onClickPlayQueueButton:t})=>i(u.EuiButtonIcon,{title:"Play queue","aria-label":"Play queue",iconType:O.NavigationPlayRegular,size:"s",iconSize:"l",onClick:t}),Zo=F.observer(({closePopover:t})=>{const e=q(),o=le.useNostalgicDiva(),a=m.useCallback(async()=>{await e.skipBack10(),t()},[e,t]),n=m.useCallback(async()=>{await e.skipForward30(),t()},[e,t]),l=m.useCallback(async x=>{await o.setPlaybackRate(x),t()},[o,t]),d=m.useCallback(async()=>{await e.removeFromPlayQueue(),t()},[e,t]),[h,v]=m.useState(),g=m.useCallback(async()=>{await e.controller.getPlaybackRate().then(x=>v(x))},[e]),C=m.useMemo(()=>[{id:0,items:[{name:"Speed",icon:i(u.EuiIcon,{type:O.TopSpeedRegular}),panel:1,onClick:g,disabled:!e.controller.supports("getPlaybackRate")},{name:"Skip back 10 seconds",icon:i(u.EuiIcon,{type:O.SkipBack10Regular}),onClick:a,disabled:!e.canSkipBack10},{name:"Skip forward 30 seconds",icon:i(u.EuiIcon,{type:O.SkipForward30Regular}),onClick:n,disabled:!e.canSkipForward30},{isSeparator:!0},{name:"Remove from play queue",icon:i(u.EuiIcon,{type:O.DismissRegular}),onClick:d,disabled:!e.canRemoveFromPlayQueue}]},{id:1,title:"Speed",items:[.25,.5,.75,1,1.25,1.5,1.75,2].map(x=>({name:x.toString(),onClick:()=>l(x),icon:x===h?"check":"empty",disabled:!e.controller.supports("setPlaybackRate")}))}],[e,g,a,n,d,l,h]);return i(u.EuiContextMenu,{initialPanelId:0,panels:C})}),en=m.memo(({button:t,isOpen:e,closePopover:o})=>i(u.EuiPopover,{button:t,isOpen:e,closePopover:o,panelPaddingSize:"none",anchorPosition:"upRight",children:i(Zo,{closePopover:o})})),tn=m.memo(()=>{const[t,e]=m.useState(!1),o=()=>e(!t);return i(en,{button:i(u.EuiButtonIcon,{title:"More options","aria-label":"More options",iconType:O.MoreHorizontalFilled,size:"s",iconSize:"l",onClick:o}),isOpen:t,closePopover:()=>e(!1)})}),rn=m.memo(({onClickPlayQueueButton:t})=>V(u.EuiFlexGroup,{responsive:!1,gutterSize:"s",justifyContent:"flexEnd",alignItems:"center",children:[i(Ko,{}),t&&i(Xo,{onClickPlayQueueButton:t}),i(tn,{})]})),on=F.observer(()=>{const t=q(),e=le.useNostalgicDiva(),o=m.useCallback(l=>{const d=Number(l.currentTarget.value)/100;t.setPercent(d)},[t]),a=m.useCallback(l=>{l.button===0&&t.setSeeking(!0)},[t]),n=m.useCallback(async l=>{if(l.button===0){const d=Number(l.currentTarget.value)/100;t.setSeeking(!1);const h=await e.getDuration();h!==void 0&&await e.setCurrentTime(h*d)}},[t,e]);return i(u.EuiRange,{min:0,max:100,step:1e-7,value:t.percent*100,onChange:o,onMouseDown:a,onMouseUp:n,fullWidth:!0,showRange:!0,css:{blockSize:32},disabled:!t.canSeek})}),nn=F.observer(({onClickPlayQueueButton:t})=>i(u.EuiBottomBar,{paddingSize:"s",children:V(u.EuiFlexGroup,{direction:"column",gutterSize:"none",children:[i(u.EuiFlexItem,{children:i(on,{})}),i(u.EuiFlexItem,{children:V(u.EuiFlexGroup,{responsive:!1,children:[i(u.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:i(Ho,{})}),i(u.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:i(qo,{})}),i(u.EuiFlexItem,{css:{width:"calc(100% / 3)"},children:i(rn,{onClickPlayQueueButton:t})})]})})]})})),lt={width:400,height:225},an=F.observer(()=>{const t=mo(),e=m.useMemo(()=>({onLoaded:t.onLoaded,onPlay:t.onPlay,onPause:t.onPause,onEnded:t.onEnded,onTimeUpdate:t.onTimeUpdate}),[t]);return m.useLayoutEffect(()=>(window.addEventListener("click",t.interact,{once:!0}),()=>{window.removeEventListener("click",t.interact)}),[t]),i("div",{css:{position:"fixed",right:0,bottom:ct,width:lt.width,height:lt.height,zIndex:998,backgroundColor:"rgb(39, 39, 39)",display:"flex",flexDirection:"column"},children:i("div",{css:{flexGrow:1,backgroundColor:"black"},children:t.currentItem&&i(le.NostalgicDiva,{src:t.currentItem.url,options:e,onControllerChange:t.onControllerChange})})})}),sn=F.observer(({children:t})=>{const e=ke();return V(u.EuiPageTemplate,{panelled:!0,style:{minBlockSize:`max(460px, 100vh - ${ct}px)`},children:[t,!e.isEmpty&&i(u.EuiSpacer,{style:{blockSize:lt.height}})]})});exports.BottomBar=nn;exports.HydrangeanDivaProvider=Po;exports.MediaPlayerLayout=sn;exports.MiniPlayer=an;exports.PlayQueueContext=ft;exports.PlayQueuePage=Mo;exports.PlayQueueSection=Zt;exports.RepeatMode=M;exports.bottomBarHeight=ct;exports.usePlayQueue=ke;
15
15
  //# sourceMappingURL=index.cjs.js.map