define(["exports","./../emby-apiclient/connectionmanager.js","./../dom.js","./../common/globalize.js","./../layoutmanager.js","./../common/itemmanager/itemmanager.js","./../common/imagehelper.js","./../dialoghelper/dialoghelper.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../approuter.js","./../focusmanager.js","./../listview/listview.js","./../shortcuts.js","./../common/textencoding.js"],function(_exports,_connectionmanager,_dom,_globalize,_layoutmanager,_itemmanager,_imagehelper,_dialoghelper,_embyButton,_embyScroller,_embyItemscontainer,_approuter,_focusmanager,_listview,_shortcuts,_textencoding){function onCancelClick(e){_dialoghelper.default.close(this.closest(".actionSheet"))}function getTextLinkButton(item){var href=_approuter.default.getRouteUrl(item);return''+_textencoding.default.htmlEncode(item.Name)+""}function autoFocusInternal(dlg,options){var focused=_focusmanager.default.autoFocus(dlg.querySelector(".itemsContainer"),options);focused||null!=options&&options.skipIfNotEnabled&&!_focusmanager.default.isAutoFocusEnabled()||_focusmanager.default.autoFocus(dlg,options)}function onItemsContainerUpgraded(){return this.querySelector(".itemsContainer").resume({refresh:!0})}function refreshItemsContainer(){var itemsContainer=this.querySelector(".itemsContainer");return itemsContainer.resume?onItemsContainerUpgraded.call(this):function(instance,itemsContainer){return new Promise(function(resolve,reject){_dom.default.addEventListener(itemsContainer,"upgraded",function(){onItemsContainerUpgraded.call(instance).then(resolve,reject)},{once:!0})})}(this,itemsContainer)}function getListViewItemFromInputItem(option,options){var isSelected,item={Name:option.Name||option.name||option.textContent||option.innerText,ServerId:option.ServerId||null,MediaType:option.MediaType||null,IsFolder:option.IsFolder,Type:option.Type,Overview:option.Overview,PrimaryImageAspectRatio:option.PrimaryImageAspectRatio,RunTimeTicks:option.RunTimeTicks,IndexNumber:option.IndexNumber,IndexNumberEnd:option.IndexNumberEnd,SupportsResume:option.SupportsResume,ParentIndexNumber:option.ParentIndexNumber,ProductionYear:option.ProductionYear,PremiereDate:option.PremiereDate,SeriesName:option.SeriesName,NameSubtitle:option.nameSubtitle,Artists:option.Artists,ArtistItems:option.ArtistItems,AlbumArtists:option.AlbumArtists,Composers:option.Composers,AlbumArtist:option.AlbumArtist,Album:option.Album,AlbumId:option.AlbumId,SeriesId:option.SeriesId,SeasonId:option.SeasonId,SeasonName:option.SeasonName,ImageTags:option.ImageTags,BackdropImageTags:option.BackdropImageTags,PrimaryImageTag:option.PrimaryImageTag,AlbumPrimaryImageTag:option.AlbumPrimaryImageTag,SeriesPrimaryImageTag:option.SeriesPrimaryImageTag,ParentThumbItemId:option.ParentThumbItemId,ParentThumbImageTag:option.ParentThumbImageTag,ParentLogoItemId:option.ParentLogoItemId,ParentLogoImageTag:option.ParentLogoImageTag,ParentBackdropItemId:option.ParentBackdropItemId,ParentBackdropImageTags:option.ParentBackdropImageTags,ImageUrl:option.ImageUrl,hasDivider:option.dividerAfter,CanReorder:option.CanReorder},selectedValuesIncludesId=(options.nameProperty&&null!=option[options.nameProperty]&&(item.Name=option[options.nameProperty]),options.getItemId?item.Id=options.getItemId(option):null!=option.Id?item.Id=option.Id:null!=option.id&&""!==option.id?item.Id=option.id:null!=option.value?item.Id=option.value:item.Id=option.Name||option.name,null!=item.Id&&options.selectedValuesClone.includes(item.Id));return options.multiple?(isSelected=options.emptyValueSetEqualsAll&&!options.selectedValuesClone.length||selectedValuesIncludesId,item.Selected=isSelected):item.Selected=option.selected||option.Selected||selectedValuesIncludesId,item.Icon=option.icon||option.Icon||(options.useIconForSelection&&item.Selected&&options.hasItemSelectionState?"":null),item.iconClass=option.iconClass,item.asideText=option.asideText,item.asideIcon=option.asideIcon||(options.useAsideIconForSelection&&item.Selected&&options.hasItemSelectionState?"":null),item.executeActionOnClick=option.executeActionOnClick,item.ShortOverview=options.getItemSecondaryText?options.getItemSecondaryText(option):option.secondaryText||option.title||option.ShortOverview,item.originalItem=option,item}function getItemsFn(options){return function(query){if(query=query||{},options.getItems)return function(options,query){return options.getItems(query).then(function(result){for(var items=result.Items.slice(0),i=0,length=items.length;iquery.Limit&&(items.length=Math.min(items.length,query.Limit)),Promise.resolve({Items:items,TotalRecordCount:totalRecordCount})}}function onItemsChecked(options){for(var items=options.items,checked=options.checked,i=0,length=items.length;i':useVirtualScroller&&(forceAutoFocus+='');(!options.title||options.hasItemIcon||options.hasItemImage||options.hasItemSelectionState)&&!isFullscreen||dlg.classList.add("actionsheet-centered");for(var selectNoneText,enablePaddingInline,previewHtml="",previewHtml=(options.item&&(previewHtml=function(options,item){var html="",apiClient=(html+='
',_connectionmanager.default.getApiClient(item)),imageUrl=(imageUrlInfo=_imagehelper.default.getImageUrl(item,apiClient,{height:60,width:200})).imgUrl,imgClass="",round="MusicArtist"===item.Type,html=imageUrl?(imageUrlInfo=imageUrlInfo.aspect||1,imgClass=(imgClass+=" actionsheetItemPreviewImage-bg")+" actionsheetItemPreviewImage-bg-"+(shape=_imagehelper.default.getShapeFromAspect(imageUrlInfo)),round&&"square"===shape&&(imgClass+=" actionsheetItemPreviewImage-round"),html+('
'):(imgClass+=" actionsheetItemPreviewImage-iconcontainer",round&&(imgClass+=" actionsheetItemPreviewImage-round"),(html=html+('
')+_itemmanager.default.getDefaultIcon(item)+"
"),lines=(html+='
',[]),shape=(item.SeriesName?item.SeriesId?lines.push(getTextLinkButton({Type:"Series",Id:item.SeriesId,Name:item.SeriesName,IsFolder:!0,ServerId:item.ServerId})):lines.push(_textencoding.default.htmlEncode(item.SeriesName||"")):"Program"===item.Type&&lines.push(_textencoding.default.htmlEncode(item.Name||"")),_textencoding.default.htmlEncode(_itemmanager.default.getDisplayName(item,{})||"")),imageUrlInfo='
'+shape+"
",round=("Audio"!==item.MediaType||_layoutmanager.default.tv||!1===options.linkToItem||(imageUrlInfo+=''),lines.push(imageUrlInfo),"Server"===item.Type&&apiClient&&apiClient.serverVersion()&&lines.push(apiClient.serverVersion()),"User"===item.Type&&options.showServerName&&(imageUrl=apiClient.serverName())&&lines.push(_textencoding.default.htmlEncode(imageUrl)),item.IsFolder&&item.AlbumArtists&&item.AlbumArtists.length?lines.push(getTextLinkButton({Type:"MusicArtist",Id:item.AlbumArtists[0].Id,Name:item.AlbumArtists[0].Name,ServerId:item.ServerId})):item.ArtistItems&&item.ArtistItems.length?lines.push(getTextLinkButton({Type:"MusicArtist",Id:item.ArtistItems[0].Id,Name:item.ArtistItems[0].Name,ServerId:item.ServerId})):item.AlbumArtists&&item.AlbumArtists.length&&lines.push(getTextLinkButton({Type:"MusicArtist",Id:item.AlbumArtists[0].Id,Name:item.AlbumArtists[0].Name,ServerId:item.ServerId})),[]);item.Album&&item.AlbumId?round.push(getTextLinkButton({Type:"Photo"===item.MediaType?"PhotoAlbum":"MusicAlbum",Id:item.AlbumId,Name:item.Album,ServerId:item.ServerId})):item.Album&&round.push('
'+_textencoding.default.htmlEncode(item.Album)+"
"),item.ProductionYear&&"Episode"!==item.Type&&"Audio"!==item.Type&&round.push('
'+item.ProductionYear+"
"),round.length&&lines.push(round.join(""));for(var i=0,length=Math.min(lines.length,3);i')+lines[i]+"
":(html+='
')+lines[i]+"
";return html=html+"
"+""}(options,options.item)),forceAutoFocus+=previewHtml,options.title&&(previewHtml="actionSheetTitle",options.hideTitleWhenNotFullscreen&&!isFullscreen&&(previewHtml+=" actionSheetTitle-hideNonFullscreen"),forceAutoFocus=isFullscreen?(forceAutoFocus+='

')+options.title+"

":(forceAutoFocus+='

')+options.title+"

"),options.text&&(forceAutoFocus=(forceAutoFocus+='

')+options.text+"

"),"actionSheetScroller focuscontainer-x"),scrollSliderClass=" actionsheetScrollSlider scrollSlider flex flex-direction-column itemsContainer",dialogOptions=(isFullscreen?(previewHtml+=" actionSheetScroller-fullscreen",useVirtualScroller&&(previewHtml+=" actionSheetScroller-fullscreen-virtual")):(useVirtualScroller&&(previewHtml+=" flex-grow"),options.title&&!options.hideTitleWhenNotFullscreen&&(enablePaddingTop=!1)),dialogOptions&&(previewHtml+=" actionSheetScroller-focusscale",enablePaddingTop=enablePaddingBottom=!0),(options.title||options.text)&&(previewHtml+=" actionSheetScroller-withheader"),enablePaddingInline&&(previewHtml+=" actionSheetScroller-padding-inline"),enablePaddingTop&&(scrollSliderClass+=" actionSheetScroller-padding-top"),(enablePaddingBottom=isFullscreen||options.multiple&&!useVirtualScroller||!1!==options.highlight?enablePaddingBottom:!0)&&(scrollSliderClass+=" actionSheetScroller-padding-bottom"),options.multiple&&(scrollSliderClass+=" actionsheet-scrollSlider-multiple"),""),btnCloseActionSheets=(useVirtualScroller&&(dialogOptions+=' data-virtualscrolllayout="vertical-grid"'),forceAutoFocus=(forceAutoFocus=forceAutoFocus+('
')+('
"))+"
"+"
",options.bottomText&&(forceAutoFocus=(forceAutoFocus+='
')+options.bottomText+"
"),options.multiple&&useVirtualScroller&&(forceAutoFocus+='
',enablePaddingInline="btnActionSheetSelectNone",options.selectAllOnSelectNone?(selectNoneText=_globalize.default.translate("SelectAll"),enablePaddingInline+=" dlg-close"):selectNoneText=_globalize.default.translate("SelectNone"),forceAutoFocus=forceAutoFocus+'
"),dlg.innerHTML=forceAutoFocus,dlg.querySelectorAll(".btnCloseActionSheet")),_i=0,_length=btnCloseActionSheets.length;_i<_length;_i++)btnCloseActionSheets[_i].addEventListener("click",onCancelClick);return new Promise(function(resolve,reject){var _dlg$querySelector,selectedItem,isResolved,hasSelectionChanged;function getResolveResult(){return options.multiple?hasSelectionChanged?options.selectedValuesClone:null:options.resolveWithSelectedItem?(null==selectedItem?void 0:selectedItem.originalItem)||selectedItem:null==selectedItem?void 0:selectedItem.Id}options.selectedValuesClone=(options.selectedValues||[]).slice(0);var itemsContainer=dlg.querySelector(".itemsContainer");function onValueChange(refreshItems){hasSelectionChanged=!0,options.onChange&&options.onChange(getResolveResult()),options.refreshItemsOnChange&&!1!==refreshItems&&(itemsContainer.scrollToIndex(0,{},itemsContainer.contains(document.activeElement)),itemsContainer.refreshItems())}itemsContainer.addEventListener("action-null",function(e){var resolveResult;options.multiple||(e=e.detail.item,e=(null==(selectedItem=e)?void 0:selectedItem.originalItem)||selectedItem,resolveResult=options.resolveWithSelectedItem?e:null==selectedItem?void 0:selectedItem.Id,!e.executeActionOnClick&&(!options.resolveOnClick||options.resolveOnClick.indexOf&&-1===options.resolveOnClick.indexOf(null==selectedItem?void 0:selectedItem.Id))||(resolve(resolveResult),isResolved=!0),_dialoghelper.default.close(dlg))}),itemsContainer.fetchData=getItemsFn(options),itemsContainer.getListOptions=getListOptions.bind(options),null!=(_dlg$querySelector=dlg.querySelector(".btnActionSheetSelectNone"))&&_dlg$querySelector.addEventListener("click",function(){options.selectedValuesClone=[],this.classList.contains("dlg-close")?(onValueChange(!1),_dialoghelper.default.close(dlg)):onValueChange()}),itemsContainer.addEventListener("change",function(e){hasSelectionChanged=!0;var arr,value,e=e.target.closest("input"),itemValue=_shortcuts.default.getItemFromChildNode(e,null,this).Id;arr=options.selectedValuesClone,value=itemValue,-1<(value=arr.indexOf(value))&&arr.splice(value,1),e.checked&&options.selectedValuesClone.push(itemValue),onValueChange()}),itemsContainer.addEventListener("itemdrop",function(e){e.preventDefault();var e=e.detail,item=e.items[0],item=options.selectedValuesClone.indexOf(item.Id);-1===item||e.newIndex>=options.selectedValuesClone.length||(options.selectedValuesClone=function(arr,old_index,new_index){if(new_index>=arr.length)throw new Error("out of bounds");return arr.splice(new_index,0,arr.splice(old_index,1)[0]),arr}(options.selectedValuesClone,item,e.newIndex),onValueChange())}),itemsContainer.afterRefresh=function(){itemsContainer.virtualScroller||callUpdateElement(itemsContainer,options)};var openingPromise=new Promise(function(resolve,reject){dlg.addEventListener("open",resolve)}),openedPromise=new Promise(function(resolve,reject){dlg.addEventListener("opened",resolve)}),closePromise=_dialoghelper.default.open(dlg);(useVirtualScroller?Promise.resolve():refreshItemsContainer.call(dlg)).then(function(){var timeout,refreshPromise;return dlg.dialogOptions.setDialogSize=!0,_dialoghelper.default.positionDialog(dlg),options.timeout&&(timeout=setTimeout(function(){_dialoghelper.default.close(dlg)},options.timeout)),useVirtualScroller&&(refreshPromise=refreshItemsContainer.call(dlg)),openingPromise.then(function(){_dialoghelper.default.positionDialog(dlg)}),openedPromise.then(function(){return(refreshPromise||Promise.resolve()).then(function(){var skipIfNotEnabled;this.classList.contains("dlg-autofocus")&&(skipIfNotEnabled=!this.classList.contains("dlg-autofocus-force"),autoFocusInternal(this,{skipIfNotEnabled:skipIfNotEnabled}))}.bind(dlg)),itemsContainer.virtualScroller&&itemsContainer.virtualScroller.onResized(),closePromise.then(function(){var resolveResult;if(instance.dlg=null,timeout&&(clearTimeout(timeout),timeout=null),!isResolved)return null!=(resolveResult=getResolveResult())?(options.callback&&options.callback(resolveResult),resolveResult):Promise.reject()})})}).then(resolve,reject)})},ActionSheet.prototype.refreshItems=function(){var _this$dlg=null==(_this$dlg=this.dlg)?void 0:_this$dlg.querySelector(".itemsContainer");_this$dlg&&_this$dlg.refreshItems()},ActionSheet.prototype.isShowing=function(){return null!=this.dlg},ActionSheet.prototype.autoFocus=function(options){console.log("focusing actionsheet"),autoFocusInternal(this.dlg,options)},ActionSheet.prototype.close=function(){var dlg=this.dlg;dlg&&_dialoghelper.default.close(dlg)},ActionSheet.prototype.destroy=function(){var _this$dlg2=null==(_this$dlg2=this.dlg)?void 0:_this$dlg2.querySelector(".itemsContainer");_this$dlg2&&_this$dlg2.pause(),this.dlg=null};_exports.default={show:function(options){var actionSheet=new ActionSheet;return actionSheet.show(options).then(function(result){return actionSheet.destroy(),Promise.resolve(result)},function(result){return actionSheet.destroy(),Promise.reject(result)})},constructor:ActionSheet}});