1 line
16 KiB
JavaScript
1 line
16 KiB
JavaScript
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4330,26711,40501,62882,81949,96084],{4330:function(e,t,i){i.r(t),i.d(t,{PlaylistEditor:function(){return k}});var l,n=i(11444),o=i(77612),a=i(23044),r=i(53096),s=i(61364),c=i(22696),d=i.n(c),u=i(71866),v=i(36300),y=i(5898),f=i(67430),h=i(82885),m=i(38783),p=i(75384),b=i(44305),A=i(79754),P=i(8566),S=i(46782),g=i(39738),I=i(38829),C=i(70267),w=(i(10353),i(98959),i(15453),i(63001),function(){return w=Object.assign||function(e){for(var t,i=1,l=arguments.length;i<l;i++)for(var n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},w.apply(this,arguments)});function x(e){var t,i=v.Ay.parentWithClass(this,"dialog");if(i){var n=null===(t=i.querySelector("#selectPlaylistToAddTo"))||void 0===t?void 0:t.value;P.Ay.show(),n?(h.currentSettings.set("playlisteditor-lastplaylistid",n),function(e,t){var i,n=f.tF.getApiClient(l),o=(0,p.C)(n),a=(null===(i=e.querySelector(".fldSelectedItemIds"))||void 0===i?void 0:i.value)||"";return"queue"===t?(g.f.queue({serverId:l,ids:a.split(",")}).catch((function(e){console.error("[PlaylistEditor] failed to add to queue",e)})),e.submitted=!0,A.default.close(e),Promise.resolve()):(0,r.C)(o).addItemToPlaylist({playlistId:t,ids:a.split(","),userId:n.getCurrentUserId()}).then((function(){e.submitted=!0,A.default.close(e)}))}(i,n).catch((function(e){console.error("[PlaylistEditor] Failed to add to playlist %s",n,e),(0,u.A)(y.Ay.translate("PlaylistError.AddFailed"))})).finally(P.Ay.hide)):i.playlistId?function(e){var t,i;if(!e.playlistId)return Promise.reject(new Error("Missing playlist ID"));var n=null===(t=e.querySelector("#txtNewPlaylistName"))||void 0===t?void 0:t.value;if((0,b.z3)(n))return Promise.reject(new Error("Playlist name should not be blank"));var o=f.tF.getApiClient(l),a=(0,p.C)(o);return(0,r.C)(a).updatePlaylist({playlistId:e.playlistId,updatePlaylistDto:{Name:n,IsPublic:null===(i=e.querySelector("#chkPlaylistPublic"))||void 0===i?void 0:i.checked}}).then((function(){e.submitted=!0,A.default.close(e)}))}(i).catch((function(e){console.error("[PlaylistEditor] Failed to update to playlist %s",i.playlistId,e),(0,u.A)(y.Ay.translate("PlaylistError.UpdateFailed"))})).finally(P.Ay.hide):function(e){var t,i,n,o=null===(t=e.querySelector("#txtNewPlaylistName"))||void 0===t?void 0:t.value;if((0,b.z3)(o))return Promise.reject(new Error("Playlist name should not be blank"));var a=f.tF.getApiClient(l),s=(0,p.C)(a),c=(null===(i=e.querySelector(".fldSelectedItemIds"))||void 0===i?void 0:i.value)||void 0;return(0,r.C)(s).createPlaylist({createPlaylistDto:{Name:null!=o?o:"",IsPublic:null===(n=e.querySelector("#chkPlaylistPublic"))||void 0===n?void 0:n.checked,Ids:null==c?void 0:c.split(","),UserId:a.getCurrentUserId()}}).then((function(t){var i;e.submitted=!0,A.default.close(e),i=t.data.Id,C.appRouter.showItem(i,l)}))}(i).catch((function(e){console.error("[PlaylistEditor] Failed to create playlist",e),(0,u.A)(y.Ay.translate("PlaylistError.CreateFailed"))})).finally(P.Ay.hide)}else console.error("[PlaylistEditor] Dialog element is missing!");return e.preventDefault(),!1}function L(e){e.dispatchEvent(new CustomEvent("change",{}))}function E(e,t,i){var c,u,b,A,S;null===(c=e.querySelector("#selectPlaylistToAddTo"))||void 0===c||c.addEventListener("change",(function(){var t,i,l,n;this.value?(null===(t=e.querySelector(".newPlaylistInfo"))||void 0===t||t.classList.add("hide"),null===(i=e.querySelector("#txtNewPlaylistName"))||void 0===i||i.removeAttribute("required")):(null===(l=e.querySelector(".newPlaylistInfo"))||void 0===l||l.classList.remove("hide"),null===(n=e.querySelector("#txtNewPlaylistName"))||void 0===n||n.setAttribute("required","required"))})),null===(u=e.querySelector("form"))||void 0===u||u.addEventListener("submit",x);var C=e.querySelector(".fldSelectedItemIds");if(C&&(C.value=i.join(",")),i.length)null===(b=e.querySelector(".fldSelectPlaylist"))||void 0===b||b.classList.remove("hide"),function(e,t){var i,s,c=t.querySelector("#selectPlaylistToAddTo");if(!c)return Promise.reject(new Error("Playlist <select> element is missing"));P.Ay.show(),null===(i=t.querySelector(".newPlaylistInfo"))||void 0===i||i.classList.add("hide");var u=f.tF.getApiClient(l),v=(0,p.C)(u),b=null===(s=I.X.firstOfType(m.Q.SyncPlay))||void 0===s?void 0:s.instance;return(0,a.n)(v).getItems({userId:u.getCurrentUserId(),includeItemTypes:[n.D.Playlist],sortBy:[o.B.SortName],recursive:!0}).then((function(e){var t=e.data;return Promise.all((t.Items||[]).map((function(e){var t={item:e,permissions:void 0};return e.Id?(0,r.C)(v).getPlaylistUser({playlistId:e.Id,userId:u.getCurrentUserId()}).then((function(e){var i=e.data;return w(w({},t),{permissions:i})})).catch((function(e){return console.info("[PlaylistEditor] Failed to fetch playlist permissions",e),t})):t})))})).then((function(t){var i="";(!1!==e.enableAddToPlayQueue&&g.f.isPlaying()||(null==b?void 0:b.Manager.isSyncPlayEnabled()))&&(i+='<option value="queue">'.concat(y.Ay.translate("AddToPlayQueue"),"</option>")),i+='<option value="">'.concat(y.Ay.translate("OptionNew"),"</option>"),i+=t.map((function(e){var t=e.item,i=e.permissions;return(null==i?void 0:i.CanEdit)?'<option value="'.concat(t.Id,'">').concat(d()(t.Name),"</option>"):""})),c.innerHTML=i;var l=e.defaultValue;l||(l=h.currentSettings.get("playlisteditor-lastplaylistid")||""),c.value="new"===l?"":l,c.value||(c.value=""),L(c)}))}(t,e).catch((function(e){console.error("[PlaylistEditor] failed to populate playlists",e)})).finally(P.Ay.hide);else if(t.id){null===(A=e.querySelector(".fldSelectPlaylist"))||void 0===A||A.classList.add("hide");var E=v.Ay.parentWithClass(e,"dialog");if(!E)return void console.error("[PlaylistEditor] could not find dialog element");var T=f.tF.getApiClient(l),k=(0,p.C)(T);Promise.all([(0,s.P)(k).getItem({itemId:t.id}),(0,r.C)(k).getPlaylist({playlistId:t.id})]).then((function(e){var i=function(e,t){var i="function"==typeof Symbol&&e[Symbol.iterator];if(!i)return e;var l,n,o=i.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(l=o.next()).done;)a.push(l.value)}catch(e){n={error:e}}finally{try{l&&!l.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}return a}(e,2),l=i[0].data,n=i[1].data;E.playlistId=t.id;var o=E.querySelector("#txtNewPlaylistName");o&&(o.value=l.Name||"");var a=E.querySelector("#chkPlaylistPublic");a&&(a.checked=!!n.OpenAccess)})).catch((function(e){console.error("[playlistEditor] failed to get playlist details",e)}))}else{null===(S=e.querySelector(".fldSelectPlaylist"))||void 0===S||S.classList.add("hide");var q=e.querySelector("#selectPlaylistToAddTo");q&&(q.innerHTML="",q.value="",L(q))}}function T(e,t,l){e?Promise.resolve().then(i.bind(i,10838)).then((function(i){var n=l?"on":"off";i.centerFocus[n](e,t)})).catch((function(e){console.error("[PlaylistEditor] failed to load scroll helper",e)})):console.error("[PlaylistEditor] cannot focus null element")}var k=function(){function e(){}return e.prototype.show=function(e){var t,i=e.items||[];l=e.serverId;var n={removeOnClose:!0,scrollY:!1,size:S.A.tv?"fullscreen":"small"},o=A.default.createDialog(n);o.classList.add("formDialog");var a="";return a+='<div class="formDialogHeader">',a+='<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1" title="'.concat(y.Ay.translate("ButtonBack"),'"><span class="material-icons arrow_back" aria-hidden="true"></span></button>'),a+='<h3 class="formDialogHeaderTitle">',i.length?a+=y.Ay.translate("HeaderAddToPlaylist"):e.id?a+=y.Ay.translate("HeaderEditPlaylist"):a+=y.Ay.translate("HeaderNewPlaylist"),a+="</h3>",a+="</div>",a+=function(e,t){var i="";i+='<div class="formDialogContent smoothScrollY" style="padding-top:2em;">',i+='<div class="dialogContentInner dialog-content-centered">',i+='<form style="margin:auto;">',i+='<div class="fldSelectPlaylist selectContainer">';var l=e.length?" autofocus":"";return i+='<select is="emby-select" id="selectPlaylistToAddTo" label="'.concat(y.Ay.translate("LabelPlaylist"),'"').concat(l,"></select>"),i+="</div>",i+='<div class="newPlaylistInfo">',i+='<div class="inputContainer">',l=e.length?"":" autofocus",i+='<input is="emby-input" type="text" id="txtNewPlaylistName" required="required" label="'.concat(y.Ay.translate("LabelName"),'"').concat(l," />"),i+="</div>",i+='\n <div class="checkboxContainer checkboxContainer-withDescription">\n <label>\n <input type="checkbox" is="emby-checkbox" id="chkPlaylistPublic" />\n <span>'.concat(y.Ay.translate("PlaylistPublic"),'</span>\n </label>\n <div class="fieldDescription checkboxFieldDescription">\n ').concat(y.Ay.translate("PlaylistPublicDescription"),"\n </div>\n </div>"),i+="</div>",i+='<div class="formDialogFooter">',i+='<button is="emby-button" type="submit" class="raised btnSubmit block formDialogFooterItem button-submit">'.concat(t.id?y.Ay.translate("Save"):y.Ay.translate("Add"),"</button>"),i+="</div>",i+='<input type="hidden" class="fldSelectedItemIds" />',i+="</form>",(i+="</div>")+"</div>"}(i,e),o.innerHTML=a,E(o,e,i),null===(t=o.querySelector(".btnCancel"))||void 0===t||t.addEventListener("click",(function(){A.default.close(o)})),S.A.tv&&T(o.querySelector(".formDialogContent"),!1,!0),A.default.open(o).then((function(){return S.A.tv&&T(o.querySelector(".formDialogContent"),!1,!1),o.submitted?Promise.resolve():Promise.reject(new Error)}))},e}();t.default=k},62882:function(e,t,i){i.r(t),i.d(t,{show:function(){return u}});var l=i(22696),n=i.n(l),o=i(79754),a=i(46782),r=i(5898),s=i(36300),c=(i(10353),function(e){var t="function"==typeof Symbol&&Symbol.iterator,i=t&&e[t],l=0;if(i)return i.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&l>=e.length&&(e=void 0),{value:e&&e[l++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")});function d(e,t,l){Promise.resolve().then(i.bind(i,10838)).then((function(i){var n=l?"on":"off";i.centerFocus[n](e,t)})).catch((function(e){console.warn("Error in centerFocus",e)}))}function u(e){var t,i,l,u={removeOnClose:!0,enableHistory:e.enableHistory,scrollY:!1};a.A.tv?(u.size="fullscreen",l=!0,u.autoFocus=!0):(u.modal=!1,u.entryAnimation=e.entryAnimation,u.exitAnimation=e.exitAnimation,u.entryAnimationDuration=e.entryAnimationDuration||140,u.exitAnimationDuration=e.exitAnimationDuration||100,u.autoFocus=!1);var v=o.default.createDialog(u);l?v.classList.add("actionsheet-fullscreen"):v.classList.add("actionsheet-not-fullscreen"),v.classList.add("actionSheet"),e.dialogClass&&v.classList.add(e.dialogClass);var y="",f=a.A.tv?"scrollY smoothScrollY hiddenScrollY":"scrollY",h="";e.items.length>20&&(h+="min-width:"+(s.Ay.getWindowSize().innerWidth>=300?240:200)+"px;");var m,p=!1,b=[];try{for(var A=c(e.items),P=A.next();!P.done;P=A.next())(m=(w=P.value).icon||(w.selected?"check":null))&&(p=!0),b.push(m||"")}catch(e){t={error:e}}finally{try{P&&!P.done&&(i=A.return)&&i.call(A)}finally{if(t)throw t.error}}a.A.tv&&(y+='<button is="paper-icon-button-light" class="btnCloseActionSheet hide-mouse-idle-tv" tabindex="-1" title="'.concat(r.Ay.translate("ButtonBack"),'">\n <span class="material-icons arrow_back" aria-hidden="true"></span>\n </button>'));var S=e.title&&!p;S||a.A.tv?y+='<div class="actionSheetContent actionSheetContent-centered">':y+='<div class="actionSheetContent">',e.title&&(y+='<h1 class="actionSheetTitle">'+n()(e.title)+"</h1>"),e.text&&(y+='<p class="actionSheetText">'+n()(e.text)+"</p>");var g="actionSheetScroller";a.A.tv&&(g+=" actionSheetScroller-tv focuscontainer-x focuscontainer-y"),y+='<div class="'+g+" "+f+'" style="'+h+'">';var I="listItem listItem-button actionSheetMenuItem";(e.border||e.shaded)&&(I+=" listItem-border"),e.menuItemClass&&(I+=" "+e.menuItemClass),a.A.tv&&(I+=" listItem-focusscale"),a.A.mobile&&(I+=" actionsheet-xlargeFont");for(var C=0;C<e.items.length;C++){var w;(w=e.items[C]).divider?y+='<div class="actionsheetDivider"></div>':(y+="<button"+(w.selected&&a.A.tv?" autoFocus":"")+' is="emby-button" type="button" class="'+I+'" data-id="'+(null==w.id||""===w.id?w.value:w.id)+'">',(m=b[C])?y+='<span class="actionsheetMenuItemIcon listItemIcon listItemIcon-transparent material-icons '.concat(m,'" aria-hidden="true"></span>'):p&&!S&&(y+='<span class="actionsheetMenuItemIcon listItemIcon listItemIcon-transparent material-icons check" aria-hidden="true" style="visibility:hidden;"></span>'),y+='<div class="listItemBody actionsheetListItemBody">',y+='<div class="listItemBodyText actionSheetItemText">',y+=n()(w.name||w.textContent||w.innerText),y+="</div>",w.secondaryText&&(y+='<div class="listItemBodyText secondary">'.concat(n()(w.secondaryText),"</div>")),y+="</div>",w.asideText&&(y+='<div class="listItemAside actionSheetItemAsideText">'.concat(n()(w.asideText),"</div>")),y+="</button>")}if(e.showCancel&&(y+='<div class="buttons">',y+='<button is="emby-button" type="button" class="btnCloseActionSheet">'.concat(r.Ay.translate("ButtonCancel"),"</button>"),y+="</div>"),y+="</div>",v.innerHTML=y,a.A.tv){var x=v.querySelector(".actionSheetScroller");x&&d(x,!1,!0)}var L=v.querySelector(".btnCloseActionSheet");L&&L.addEventListener("click",(function(){o.default.close(v)}));var E,T=null;return e.timeout&&(E=setTimeout((function(){o.default.close(v)}),e.timeout)),new Promise((function(t,i){var l=!1;v.addEventListener("click",(function(i){var n=s.Ay.parentWithClass(i.target,"actionSheetMenuItem");n&&(T=n.getAttribute("data-id"),e.resolveOnClick&&(Array.isArray(e.resolveOnClick)?-1!==e.resolveOnClick.indexOf(T)&&(t(T),l=!0):(t(T),l=!0)),o.default.close(v))})),v.addEventListener("close",(function(){if(a.A.tv){var n=v.querySelector(".actionSheetScroller");n&&d(n,!1,!1)}E&&(clearTimeout(E),E=void 0),l||(null!=T?(e.callback&&e.callback(T),t(T)):i(new Error("ActionSheet closed without resolving")))})),o.default.open(v).catch((function(e){console.warn("DialogHelper.open error",e)}));var n=e.positionTo&&"fullscreen"!==u.size?function(e,t,i){var l=s.Ay.getWindowSize(),n=l.innerHeight,o=l.innerWidth,a=function(e){var t,i,l=[];if(!document)return l;try{for(var n=c(e),o=n.next();!o.done;o=n.next()){var a=o.value.getBoundingClientRect();l.push({top:a.top,left:a.left,width:a.width,height:a.height})}}catch(e){t={error:e}}finally{try{o&&!o.done&&(i=n.return)&&i.call(n)}finally{if(t)throw t.error}}return l}([e])[0];"top"!==t.positionY&&(a.top+=(a.height||0)/2),a.left+=(a.width||0)/2;var r=i.offsetHeight||300,d=i.offsetWidth||160;a.top-=r/2,a.left-=d/2;var u=a.left+d-o,v=a.top+r-n;return u>0&&(a.left-=u+20),v>0&&(a.top-=v+20),a.top+=t.offsetTop||0,a.left+=t.offsetLeft||0,a.top=Math.max(a.top,10),a.left=Math.max(a.left,10),a}(e.positionTo,e,v):null;n&&(v.style.position="fixed",v.style.margin="0",v.style.left=n.left+"px",v.style.top=n.top+"px")}))}t.default={show:u}},63001:function(e,t,i){var l=i(46782),n=i(34789),o=i(62882),a=(i(69177),Object.create(HTMLSelectElement.prototype));function r(){return!(n.A.edgeUwp||n.A.xboxOne||n.A.tizen||n.A.orsay||n.A.web0s||!n.A.tv&&l.A.tv)}function s(e){var t=c(e),i=t?t.textContent||t.innerText:null;o.default.show({items:e.options,positionTo:e,title:i}).then((function(t){!function(e,t){e.value=t}(e,t),function(e){var t=new Event("change",{bubbles:!1,cancelable:!0});e.dispatchEvent(t)}(e)}))}function c(e){for(var t=e.previousSibling;t&&"LABEL"!==t.tagName;)t=t.previousSibling;return t}function d(){var e=c(this);e&&e.classList.add("selectLabelFocused")}function u(){var e=c(this);e&&e.classList.remove("selectLabelFocused")}function v(e){e.button||r()||(e.preventDefault(),s(this))}function y(e){13!==e.keyCode&&195!==e.keyCode||r()||(e.preventDefault(),s(this))}var f=0;a.createdCallback=function(){this.id||(this.id="embyselect"+f,f++),this.classList.add("emby-select-withcolor"),l.A.tv&&this.classList.add("emby-select-focusscale"),this.addEventListener("mousedown",v),this.addEventListener("keydown",y),this.addEventListener("focus",d),this.addEventListener("blur",u)},a.attachedCallback=function(){var e;if(!this.classList.contains("emby-select")){this.classList.add("emby-select");var t,i=this.ownerDocument.createElement("label");i.innerText=this.getAttribute("label")||"",i.classList.add("selectLabel"),i.htmlFor=this.id,null===(e=this.parentNode)||void 0===e||e.insertBefore(i,this),this.classList.contains("emby-select-withcolor")&&(null===(t=this.parentNode)||void 0===t||t.insertAdjacentHTML("beforeend",'<div class="selectArrowContainer"><div style="visibility:hidden;display:none;">0</div><span class="selectArrow material-icons keyboard_arrow_down" aria-hidden="true"></span></div>'))}},a.setLabel=function(e){var t;(null===(t=this.parentNode)||void 0===t?void 0:t.querySelector("label")).innerText=e},document.registerElement("emby-select",{prototype:a,extends:"select"})}}]); |