1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4330,26711],{4330:function(e,t,l){l.r(t),l.d(t,{PlaylistEditor:function(){return T}});var i,n=l(11444),a=l(77612),r=l(23044),o=l(53096),s=l(61364),c=l(22696),d=l.n(c),u=l(71866),y=l(36300),v=l(5898),f=l(67430),p=l(82885),h=l(38783),m=l(75384),b=l(44305),P=l(79754),A=l(8566),g=l(46782),I=l(39738),S=l(38829),C=l(70267),w=(l(10353),l(98959),l(15453),l(63001),function(){return w=Object.assign||function(e){for(var t,l=1,i=arguments.length;l<i;l++)for(var n in t=arguments[l])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},w.apply(this,arguments)});function E(e){var t,l=y.Ay.parentWithClass(this,"dialog");if(l){var n=null===(t=l.querySelector("#selectPlaylistToAddTo"))||void 0===t?void 0:t.value;A.Ay.show(),n?(p.currentSettings.set("playlisteditor-lastplaylistid",n),function(e,t){var l,n=f.tF.getApiClient(i),a=(0,m.C)(n),r=(null===(l=e.querySelector(".fldSelectedItemIds"))||void 0===l?void 0:l.value)||"";return"queue"===t?(I.f.queue({serverId:i,ids:r.split(",")}).catch((function(e){console.error("[PlaylistEditor] failed to add to queue",e)})),e.submitted=!0,P.default.close(e),Promise.resolve()):(0,o.C)(a).addItemToPlaylist({playlistId:t,ids:r.split(","),userId:n.getCurrentUserId()}).then((function(){e.submitted=!0,P.default.close(e)}))}(l,n).catch((function(e){console.error("[PlaylistEditor] Failed to add to playlist %s",n,e),(0,u.A)(v.Ay.translate("PlaylistError.AddFailed"))})).finally(A.Ay.hide)):l.playlistId?function(e){var t,l;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 a=f.tF.getApiClient(i),r=(0,m.C)(a);return(0,o.C)(r).updatePlaylist({playlistId:e.playlistId,updatePlaylistDto:{Name:n,IsPublic:null===(l=e.querySelector("#chkPlaylistPublic"))||void 0===l?void 0:l.checked}}).then((function(){e.submitted=!0,P.default.close(e)}))}(l).catch((function(e){console.error("[PlaylistEditor] Failed to update to playlist %s",l.playlistId,e),(0,u.A)(v.Ay.translate("PlaylistError.UpdateFailed"))})).finally(A.Ay.hide):function(e){var t,l,n,a=null===(t=e.querySelector("#txtNewPlaylistName"))||void 0===t?void 0:t.value;if((0,b.z3)(a))return Promise.reject(new Error("Playlist name should not be blank"));var r=f.tF.getApiClient(i),s=(0,m.C)(r),c=(null===(l=e.querySelector(".fldSelectedItemIds"))||void 0===l?void 0:l.value)||void 0;return(0,o.C)(s).createPlaylist({createPlaylistDto:{Name:null!=a?a:"",IsPublic:null===(n=e.querySelector("#chkPlaylistPublic"))||void 0===n?void 0:n.checked,Ids:null==c?void 0:c.split(","),UserId:r.getCurrentUserId()}}).then((function(t){var l;e.submitted=!0,P.default.close(e),l=t.data.Id,C.appRouter.showItem(l,i)}))}(l).catch((function(e){console.error("[PlaylistEditor] Failed to create playlist",e),(0,u.A)(v.Ay.translate("PlaylistError.CreateFailed"))})).finally(A.Ay.hide)}else console.error("[PlaylistEditor] Dialog element is missing!");return e.preventDefault(),!1}function q(e){e.dispatchEvent(new CustomEvent("change",{}))}function L(e,t,l){var c,u,b,P,g;null===(c=e.querySelector("#selectPlaylistToAddTo"))||void 0===c||c.addEventListener("change",(function(){var t,l,i,n;this.value?(null===(t=e.querySelector(".newPlaylistInfo"))||void 0===t||t.classList.add("hide"),null===(l=e.querySelector("#txtNewPlaylistName"))||void 0===l||l.removeAttribute("required")):(null===(i=e.querySelector(".newPlaylistInfo"))||void 0===i||i.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",E);var C=e.querySelector(".fldSelectedItemIds");if(C&&(C.value=l.join(",")),l.length)null===(b=e.querySelector(".fldSelectPlaylist"))||void 0===b||b.classList.remove("hide"),function(e,t){var l,s,c=t.querySelector("#selectPlaylistToAddTo");if(!c)return Promise.reject(new Error("Playlist <select> element is missing"));A.Ay.show(),null===(l=t.querySelector(".newPlaylistInfo"))||void 0===l||l.classList.add("hide");var u=f.tF.getApiClient(i),y=(0,m.C)(u),b=null===(s=S.X.firstOfType(h.Q.SyncPlay))||void 0===s?void 0:s.instance;return(0,r.n)(y).getItems({userId:u.getCurrentUserId(),includeItemTypes:[n.D.Playlist],sortBy:[a.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,o.C)(y).getPlaylistUser({playlistId:e.Id,userId:u.getCurrentUserId()}).then((function(e){var l=e.data;return w(w({},t),{permissions:l})})).catch((function(e){return console.info("[PlaylistEditor] Failed to fetch playlist permissions",e),t})):t})))})).then((function(t){var l="";(!1!==e.enableAddToPlayQueue&&I.f.isPlaying()||(null==b?void 0:b.Manager.isSyncPlayEnabled()))&&(l+='<option value="queue">'.concat(v.Ay.translate("AddToPlayQueue"),"</option>")),l+='<option value="">'.concat(v.Ay.translate("OptionNew"),"</option>"),l+=t.map((function(e){var t=e.item,l=e.permissions;return(null==l?void 0:l.CanEdit)?'<option value="'.concat(t.Id,'">').concat(d()(t.Name),"</option>"):""})),c.innerHTML=l;var i=e.defaultValue;i||(i=p.currentSettings.get("playlisteditor-lastplaylistid")||""),c.value="new"===i?"":i,c.value||(c.value=""),q(c)}))}(t,e).catch((function(e){console.error("[PlaylistEditor] failed to populate playlists",e)})).finally(A.Ay.hide);else if(t.id){null===(P=e.querySelector(".fldSelectPlaylist"))||void 0===P||P.classList.add("hide");var L=y.Ay.parentWithClass(e,"dialog");if(!L)return void console.error("[PlaylistEditor] could not find dialog element");var k=f.tF.getApiClient(i),T=(0,m.C)(k);Promise.all([(0,s.P)(T).getItem({itemId:t.id}),(0,o.C)(T).getPlaylist({playlistId:t.id})]).then((function(e){var l=function(e,t){var l="function"==typeof Symbol&&e[Symbol.iterator];if(!l)return e;var i,n,a=l.call(e),r=[];try{for(;(void 0===t||t-- >0)&&!(i=a.next()).done;)r.push(i.value)}catch(e){n={error:e}}finally{try{i&&!i.done&&(l=a.return)&&l.call(a)}finally{if(n)throw n.error}}return r}(e,2),i=l[0].data,n=l[1].data;L.playlistId=t.id;var a=L.querySelector("#txtNewPlaylistName");a&&(a.value=i.Name||"");var r=L.querySelector("#chkPlaylistPublic");r&&(r.checked=!!n.OpenAccess)})).catch((function(e){console.error("[playlistEditor] failed to get playlist details",e)}))}else{null===(g=e.querySelector(".fldSelectPlaylist"))||void 0===g||g.classList.add("hide");var N=e.querySelector("#selectPlaylistToAddTo");N&&(N.innerHTML="",N.value="",q(N))}}function k(e,t,i){e?Promise.resolve().then(l.bind(l,10838)).then((function(l){var n=i?"on":"off";l.centerFocus[n](e,t)})).catch((function(e){console.error("[PlaylistEditor] failed to load scroll helper",e)})):console.error("[PlaylistEditor] cannot focus null element")}var T=function(){function e(){}return e.prototype.show=function(e){var t,l=e.items||[];i=e.serverId;var n={removeOnClose:!0,scrollY:!1,size:g.A.tv?"fullscreen":"small"},a=P.default.createDialog(n);a.classList.add("formDialog");var r="";return r+='<div class="formDialogHeader">',r+='<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1" title="'.concat(v.Ay.translate("ButtonBack"),'"><span class="material-icons arrow_back" aria-hidden="true"></span></button>'),r+='<h3 class="formDialogHeaderTitle">',l.length?r+=v.Ay.translate("HeaderAddToPlaylist"):e.id?r+=v.Ay.translate("HeaderEditPlaylist"):r+=v.Ay.translate("HeaderNewPlaylist"),r+="</h3>",r+="</div>",r+=function(e,t){var l="";l+='<div class="formDialogContent smoothScrollY" style="padding-top:2em;">',l+='<div class="dialogContentInner dialog-content-centered">',l+='<form style="margin:auto;">',l+='<div class="fldSelectPlaylist selectContainer">';var i=e.length?" autofocus":"";return l+='<select is="emby-select" id="selectPlaylistToAddTo" label="'.concat(v.Ay.translate("LabelPlaylist"),'"').concat(i,"></select>"),l+="</div>",l+='<div class="newPlaylistInfo">',l+='<div class="inputContainer">',i=e.length?"":" autofocus",l+='<input is="emby-input" type="text" id="txtNewPlaylistName" required="required" label="'.concat(v.Ay.translate("LabelName"),'"').concat(i," />"),l+="</div>",l+='\n <div class="checkboxContainer checkboxContainer-withDescription">\n <label>\n <input type="checkbox" is="emby-checkbox" id="chkPlaylistPublic" />\n <span>'.concat(v.Ay.translate("PlaylistPublic"),'</span>\n </label>\n <div class="fieldDescription checkboxFieldDescription">\n ').concat(v.Ay.translate("PlaylistPublicDescription"),"\n </div>\n </div>"),l+="</div>",l+='<div class="formDialogFooter">',l+='<button is="emby-button" type="submit" class="raised btnSubmit block formDialogFooterItem button-submit">'.concat(t.id?v.Ay.translate("Save"):v.Ay.translate("Add"),"</button>"),l+="</div>",l+='<input type="hidden" class="fldSelectedItemIds" />',l+="</form>",(l+="</div>")+"</div>"}(l,e),a.innerHTML=r,L(a,e,l),null===(t=a.querySelector(".btnCancel"))||void 0===t||t.addEventListener("click",(function(){P.default.close(a)})),g.A.tv&&k(a.querySelector(".formDialogContent"),!1,!0),P.default.open(a).then((function(){return g.A.tv&&k(a.querySelector(".formDialogContent"),!1,!1),a.submitted?Promise.resolve():Promise.reject(new Error)}))},e}();t.default=T},63001:function(e,t,l){var i=l(46782),n=l(34789),a=l(62882),r=(l(69177),Object.create(HTMLSelectElement.prototype));function o(){return!(n.A.edgeUwp||n.A.xboxOne||n.A.tizen||n.A.orsay||n.A.web0s||!n.A.tv&&i.A.tv)}function s(e){var t=c(e),l=t?t.textContent||t.innerText:null;a.default.show({items:e.options,positionTo:e,title:l}).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 y(e){e.button||o()||(e.preventDefault(),s(this))}function v(e){13!==e.keyCode&&195!==e.keyCode||o()||(e.preventDefault(),s(this))}var f=0;r.createdCallback=function(){this.id||(this.id="embyselect"+f,f++),this.classList.add("emby-select-withcolor"),i.A.tv&&this.classList.add("emby-select-focusscale"),this.addEventListener("mousedown",y),this.addEventListener("keydown",v),this.addEventListener("focus",d),this.addEventListener("blur",u)},r.attachedCallback=function(){var e;if(!this.classList.contains("emby-select")){this.classList.add("emby-select");var t,l=this.ownerDocument.createElement("label");l.innerText=this.getAttribute("label")||"",l.classList.add("selectLabel"),l.htmlFor=this.id,null===(e=this.parentNode)||void 0===e||e.insertBefore(l,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>'))}},r.setLabel=function(e){var t;(null===(t=this.parentNode)||void 0===t?void 0:t.querySelector("label")).innerText=e},document.registerElement("emby-select",{prototype:r,extends:"select"})}}]); |