import globalize from"./../../modules/common/globalize.js";import layoutManager from"./../../modules/layoutmanager.js";import loading from"./../../modules/loading/loading.js";import dialogHelper from"./../../modules/dialoghelper/dialoghelper.js";import libraryoptionseditor from"./../libraryoptionseditor/libraryoptionseditor.js";import listView from"./../../modules/listview/listview.js";import"./../../modules/emby-elements/emby-scroller/emby-scroller.js";import"./../../modules/emby-elements/emby-button/emby-button.js";import"./../../modules/emby-elements/emby-button/paper-icon-button-light.js";import"./../../modules/emby-elements/emby-input/emby-input.js";import"./../../modules/emby-elements/emby-select/emby-select.js";import"./../../modules/emby-elements/emby-checkbox/emby-checkbox.js";import"./../../modules/emby-elements/emby-toggle/emby-toggle.js";import"./../../modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js";import"./../../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js";require(["flexStyles","formDialogStyle"]);let currentResolve,hasChanges,currentOptions,pathInfos=[];function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function onSubmit(e){if(e.preventDefault(),e.stopPropagation(),0===pathInfos.length)showAlert({text:globalize.translate("PleaseAddAtLeastOneFolder"),type:"error"});else{let form=this,dlg=form.closest(".dialog");form.querySelector(".button-submit").setAttribute("disabled","disabled");e=form.querySelector(".txtValue").value;let type=form.querySelector(".selectCollectionType").value;"mixed"===type&&(type=null);var libraryOptions=libraryoptionseditor.getLibraryOptions(dlg.querySelector(".libraryOptions"));libraryOptions.PathInfos=pathInfos,libraryOptions.ContentType=type,ApiClient.addVirtualFolder(e,type,currentOptions.refresh,libraryOptions).then(function(){hasChanges=!0,dialogHelper.close(dlg)},function(){form.querySelector(".button-submit").removeAttribute("disabled"),showAlert(globalize.translate("ErrorAddingMediaPathToVirtualFolder"))})}return!1}function getCollectionTypeOptionsHtml(collectionTypeOptions){return collectionTypeOptions.filter(function(i){return!1!==i.isSelectable}).map(function(i){return'"}).join("")}function initEditor(page,collectionTypeOptions){var selectCollectionType=page.querySelector(".selectCollectionType");selectCollectionType.innerHTML=getCollectionTypeOptionsHtml(collectionTypeOptions),selectCollectionType.value="",selectCollectionType.addEventListener("change",function(){let value=this.value;var dlg=this.closest(".dialog"),index=(libraryoptionseditor.setContentType(dlg.querySelector(".libraryOptions"),"mixed"===value?"":value),value?dlg.querySelector(".libraryOptions").classList.remove("hide"):dlg.querySelector(".libraryOptions").classList.add("hide"),this.selectedIndex);-1!==index&&(index=this.options[index].innerHTML.replace("*","").replace("&","&"),dlg.querySelector(".txtValue").value=index,index=collectionTypeOptions.filter(function(i){return i.value===value})[0],dlg.querySelector(".collectionTypeFieldDescription").innerHTML=index.message||"")}),page.querySelector(".btnAddFolder").addEventListener("click",onAddButtonClick),page.querySelector("form").addEventListener("submit",onSubmit),page.querySelector(".chkAdvanced").addEventListener("change",onToggleAdvancedChange)}function onToggleAdvancedChange(){var dlg=this.closest(".dlg-librarycreator");libraryoptionseditor.setAdvancedVisible(dlg.querySelector(".libraryOptions"),this.checked)}function onAddButtonClick(){let dlg=this.closest(".dlg-librarycreator");Emby.importModule("./modules/directorybrowser/directorybrowser.js").then(function(directoryBrowser){let picker=new directoryBrowser;picker.show({enableNetworkSharePath:!0,enableLoginCredentials:!0,callback:function(path,networkSharePath,username,password){path&&addMediaLocation(dlg,path,networkSharePath,username,password),picker.close()}})})}function renderPaths(page){let folderList=page.querySelector(".folderList");return folderList.waitForCustomElementUpgrade().then(function(){folderList.resume({refresh:!0})})}function addMediaLocation(page,path,networkSharePath,username,password){let pathLower=path.toLowerCase();0===pathInfos.filter(function(p){return p.Path.toLowerCase()===pathLower}).length&&(path={Path:path},networkSharePath&&(path.NetworkPath=networkSharePath),username&&(path.Username=username),password&&(path.Password=password),pathInfos.push(path),renderPaths(page))}function getFolderItems(){var items=pathInfos.map(function(i,index){return{Type:"GenericListItem",Name:i.Path,CanDelete:!0,Icon:"folder",DeleteType:"remove",ShortOverview:i.NetworkPath,OriginalItem:i}});return Promise.resolve({Items:items,TotalRecordCount:items.length})}function deleteFolder(options){let items=options.items.map(function(i){return i.OriginalItem});return pathInfos=pathInfos.filter(function(p){return!items.includes(p)}),Promise.resolve()}function getFolderListOptions(items){return{renderer:listView,options:{moreButton:!1,defaultBackground:!1,action:layoutManager.tv?"menu":"none",buttonCommands:["delete"],fields:["Name","ShortOverview"],draggable:!1,dragReorder:!1,roundImage:!0,image:!1,multiSelect:!1,commandActions:{deleteItems:deleteFolder.bind(this)}}}}function onDialogClosed(){loading.hide(),currentResolve(hasChanges)}function triggerChange(select){select.dispatchEvent(new CustomEvent("change",{bubbles:!0}))}function initLibraryOptions(dlg){libraryoptionseditor.embed(dlg.querySelector(".libraryOptions")).then(function(){triggerChange(dlg.querySelector(".selectCollectionType")),onToggleAdvancedChange.call(dlg.querySelector(".chkAdvanced"))})}function editor(){this.show=function(options){return new Promise(function(resolve,reject){currentOptions=options,currentResolve=resolve,hasChanges=!1;resolve=new XMLHttpRequest;resolve.open("GET","components/medialibrarycreator/medialibrarycreator.template.html",!0),resolve.onload=function(e){var template=this.response,dlg=dialogHelper.createDialog({size:layoutManager.tv?"fullscreen":"medium-tall",modal:!1,removeOnClose:!0,scrollY:!1}),template=(dlg.classList.add("ui-body-a"),dlg.classList.add("background-theme-a"),dlg.classList.add("dlg-librarycreator"),dlg.classList.add("formDialog"),dlg.innerHTML=globalize.translateDocument(template),initEditor(dlg,options.collectionTypeOptions),dlg.addEventListener("close",onDialogClosed),dlg.querySelector(".folderList"));template.fetchData=getFolderItems.bind(dlg),template.getListOptions=getFolderListOptions.bind(dlg),dialogHelper.open(dlg),pathInfos=[],renderPaths(dlg),initLibraryOptions(dlg)},resolve.send()})}}export default editor;