import connectionManager from"./../emby-apiclient/connectionmanager.js";import globalize from"./../common/globalize.js";import layoutManager from"./../layoutmanager.js";import loading from"./../loading/loading.js";import dialogHelper from"./../dialoghelper/dialoghelper.js";import cardBuilder from"./../cardbuilder/cardbuilder.js";import focusManager from"./../focusmanager.js";import"./../mediainfo/mediainfo.js";import"./../emby-elements/emby-button/emby-button.js";import"./../emby-elements/emby-select/emby-select.js";import"./../emby-elements/emby-scroller/emby-scroller.js";import"./../emby-elements/emby-toggle/emby-toggle.js";import"./../emby-elements/emby-itemscontainer/emby-itemscontainer.js";import"./../emby-elements/emby-button/paper-icon-button-light.js";import"./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js";function ImageDownloader(){}function getEditorHtml(options){var html="";return(html+='
')+'
'+'
'+'
'+'
'+('"+"
"+'
'+('"+"
"+'"+"
"+'
'+"
"+"
"+"
"+"
"}function autoFocus(){var dlg=this.dlg;loading.hide(),focusManager.autoFocus(dlg,{skipIfNotEnabled:!0})}function onDialogClosed(){var result=this.result;return this.cleanup(),loading.hide(),result?Promise.resolve():Promise.reject()}function onCardAction(e){var options=this.options,e=e.detail.item,mediaItem=options.item,downloadOptions={itemId:mediaItem.Id},options=(downloadOptions.Type=e.Type,null!=options.imageIndex&&(downloadOptions.ImageIndex=options.imageIndex),downloadOptions.ImageUrl=e.Url,downloadOptions.ProviderName=e.ProviderName,loading.show(),connectionManager.getApiClient(mediaItem));let instance=this;options.downloadRemoteImage(downloadOptions).then(function(){instance.result=!0,instance.closeDialog()})}function getDisplayUrl(url,apiClient){return apiClient.getUrl("Images/Remote",{api_key:apiClient.accessToken(),imageUrl:url})}function normalizeImage(image){var options=this.options,options=connectionManager.getApiClient(options.item);return image.Name=image.ProviderName,image.ImageUrl=getDisplayUrl(image.ThumbnailUrl||image.Url,options),image.OriginalImageUrl=getDisplayUrl(image.Url,options),image}function normalizeResult(result){var providersHtml=result.Providers.map(function(p){return'"}),selectImageProvider=this.dlg.querySelector(".selectImageProvider");return selectImageProvider.innerHTML='"+providersHtml,selectImageProvider.value=this.options.imageProvider||"",result.Items=result.Images,result.Images=null,result.Items.forEach(normalizeImage.bind(this)),result}function onItemsContainerUpgraded(){loading.show(),this.itemsContainer.resume({refresh:!0}).then(autoFocus.bind(this))}function onOpened(){let instance=this;this.itemsContainer.waitForCustomElementUpgrade().then(function(){onItemsContainerUpgraded.call(instance)})}function onImageTypeChange(e){this.options.imageType=e.target.value,this.options.imageProvider=null,loading.show(),this.itemsContainer.refreshItems().then(loading.hide.bind(loading))}function onImageProviderChange(e){this.options.imageProvider=e.target.value,loading.show(),this.itemsContainer.refreshItems().then(loading.hide.bind(loading))}function onAllLanguagesChange(e){this.options.allLanguages=e.target.checked,loading.show(),this.itemsContainer.refreshItems().then(loading.hide.bind(loading))}require(["formDialogStyle","material-icons"]),ImageDownloader.prototype.getItems=function(query){var options=this.options,item=options.item;return connectionManager.getApiClient(item).getAvailableRemoteImages(Object.assign({Type:options.imageType||"Primary",IncludeAllLanguages:options.allLanguages,ProviderName:options.imageProvider,itemId:item.Id},query)).then(normalizeResult.bind(this))},ImageDownloader.prototype.getCardOptions=function(items){var options=this.options,imageType=options.imageType,currentItemType=options.item.Type,options=options.item.MediaType;let shape="auto";return{shape:shape="Backdrop"===imageType||"Thumb"===imageType||"Art"===imageType||"Logo"===imageType||"LogoLight"===imageType||"LogoLightColor"===imageType?"backdrop":"Banner"===imageType?"banner":"Disc"===imageType?"square":"Episode"===currentItemType?"backdrop":"MusicAlbum"===currentItemType||"MusicArtist"===currentItemType||"Audio"===options?"square":"portrait",fields:["Name","DownloadableImageInfo"],coverImage:"Logo"!==imageType,overlayPlayButton:!1,multiSelect:!1,contextMenu:!1,hoverDownloadButton:!0,action:"custom",textLinks:!1,lazy:2,previewImageButton:!0,draggable:!1}},ImageDownloader.prototype.getListOptions=function(items){return{renderer:cardBuilder,options:this.getCardOptions(items),virtualScrollLayout:"vertical-grid"}},ImageDownloader.prototype.show=function(options){var dialogOptions={removeOnClose:!0,scrollY:!1,autoFocus:!1},dialogOptions=(layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="fullscreen-border",dialogHelper.createDialog(dialogOptions)),html=(dialogOptions.classList.add("formDialog"),""),html=(html=(html=(html=(html=(html+='
')+''+'

')+globalize.translate("HeaderSearchForImages"))+"

"+"
")+getEditorHtml(options),dialogOptions.innerHTML=html,options.imageType||dialogOptions.querySelector(".fldSelectImageType").classList.remove("hide"),this.dlg=dialogOptions,this.options=options,dialogOptions.querySelector(".selectBrowsableImageType")),options=(html.value=options.imageType||"Primary",html.addEventListener("change",onImageTypeChange.bind(this)),dialogOptions.querySelector(".selectImageProvider").addEventListener("change",onImageProviderChange.bind(this)),dialogOptions.querySelector(".chkAllLanguages").addEventListener("change",onAllLanguagesChange.bind(this)),dialogOptions.querySelector(".itemsContainer")),html=(options.addEventListener("action-null",onCardAction.bind(this)),options.fetchData=this.getItems.bind(this),options.getListOptions=this.getListOptions.bind(this),this.itemsContainer=options,dialogOptions.addEventListener("opened",onOpened.bind(this)),onDialogClosed.bind(this));return dialogHelper.open(dialogOptions).then(html,html)},ImageDownloader.prototype.closeDialog=function(){var dlg=this.dlg;dlg&&dialogHelper.close(dlg)},ImageDownloader.prototype.cleanup=function(){this.options=null,this.dlg=null,this.itemsContainer=null};export default ImageDownloader;