define(["exports","./../../browser.js","./../../dom.js","./../../layoutmanager.js","./../../emby-apiclient/connectionmanager.js","./../../loading/loading.js","./../../imageloader/imageloader.js","./../../virtual-scroller/virtual-scroller.js","./../../shortcuts.js","./../../common/inputmanager.js","./../../focusmanager.js","./../../common/itemsrefresher.js","./../../formhelper.js","./../../common/itemmanager/itemmanager.js"],function(_exports,_browser,_dom,_layoutmanager,_connectionmanager,_loading,_imageloader,_virtualScroller,_shortcuts,_inputmanager,_focusmanager,_itemsrefresher,_formhelper,_itemmanager){var MultiSelect,nativeContextMenuEventSupported,morphdom,touchTarget;function onClick(e){var multiSelect=this.multiSelect;multiSelect&&!1===multiSelect.onContainerClick.call(this,e)||_shortcuts.default.onClick.call(this,e)}function onChange(e){_shortcuts.default.onClick.call(this,e)}function onContextMenu(e){!this._touchEventsBound||(detail=e.detail)&&detail.customEvent||(this._touchEventsBound=null,nativeContextMenuEventSupported=!0,_dom.default.removeEventListener(this,"touchstart",onTouchStart,{passive:!0}),_dom.default.removeEventListener(this,"touchend",onTouchEnd,{}),_dom.default.removeEventListener(this,"touchcancel",onTouchEnd,{}),_dom.default.removeEventListener(this,"touchmove",onTouchMove,{passive:!0}));var detail=e.target,detail=this.getContextMenuElementFromChildNode(detail);if(detail&&(!this.classList.contains("multi-select-active")&&_inputmanager.default.trigger("menu",{sourceElement:detail,originalEvent:e})))return e.preventDefault(),!1}function onInit(){this.hasInit||(this.hasInit=!0,this.classList.add("itemsContainer"),this.refreshMonitor)||(this.refreshMonitor=new _itemsrefresher.default({itemIds:[],itemsContainer:this}))}function getTouches(e){return e.changedTouches||e.targetTouches||e.touches}function clearTouchStartTimeout(elem){elem.touchStartTimeout&&(clearTimeout(elem.touchStartTimeout),elem.touchStartTimeout=null,elem.touchStartTimeoutTime=null)}function clearTouchTarget(container){touchTarget&&(touchTarget=null,_dom.default.removeEventListener(container,"touchmove",onTouchMove,{passive:!0}))}function onTouchStart(e){var e=getTouches(e)[0];clearTouchTarget(this),this.touchStartX=0,this.touchStartY=0,e&&(this.touchStartX=e.clientX,this.touchStartY=e.clientY,e=e.target)&&(e=e.closest(this.getItemSelector()))&&(clearTouchStartTimeout(this),_dom.default.addEventListener(this,"touchmove",onTouchMove,{passive:!0}),touchTarget=e,this.touchStartTimeout=setTimeout(onTouchStartTimerFired,650),this.touchStartTimeoutTime=Date.now())}function onTouchMove(e){var touchEndX;touchTarget&&(e=(e=getTouches(e)[0])?(touchEndX=e.clientX||0,e=e.clientY||0,touchEndX=Math.abs(touchEndX-(this.touchStartX||0)),Math.abs(e-(this.touchStartY||0))):touchEndX=100,5<=touchEndX||5<=e)&&(clearTouchStartTimeout(this),clearTouchTarget(this))}function onTouchEnd(e){var time;getTouches(e)[0]&&(time=this.touchStartTimeoutTime)&&600<=(time=Date.now()-time)&&e.preventDefault(),clearTouchStartTimeout(this),clearTouchTarget(this)}function onTouchStartTimerFired(){var itemElement=touchTarget;itemElement&&(_focusmanager.default.focus(itemElement,{preventScroll:!0}),itemElement.dispatchEvent(new CustomEvent("contextmenu",{bubbles:!0,cancelable:!0,detail:{customEvent:!0}})))}function onDroppedOntoFullTarget(itemsContainer,draggedElement,dropTarget,item){var dropTarget=_shortcuts.default.getItemFromChildNode(dropTarget,null,itemsContainer),itemsContainer=dropTarget.Type,droppedItemId=dropTarget.Id,droppedItemServerId=dropTarget.ServerId;droppedItemId&&droppedItemServerId&&(dropTarget=_connectionmanager.default.getApiClient(dropTarget),"Playlist"!==itemsContainer&&"BoxSet"!==itemsContainer||function(apiClient,list,ids){_loading.default.show();var apiName="BoxSet"===list.Type?"Collections":"Playlists",apiName=apiClient.getUrl(apiName+"/"+list.Id+"/Items",{Ids:ids,userId:apiClient.getCurrentUserId()});apiClient.ajax({type:"POST",url:apiName}).then(function(){_loading.default.hide()})}(dropTarget,{Id:droppedItemId,ServerId:droppedItemServerId,Type:itemsContainer},[item.Id]))}function onReorderedTo(itemsContainer,item,draggedElement,currentIndex,dropTarget,directionUp){var newIndex;if(draggedElement.classList.contains("virtualScrollItem")?(newIndex=itemsContainer.indexOfElement(dropTarget),directionUp||newIndex++,currentIndex"+listItemOptions.templateInnerHTML+"",itemParts.fetchItems=this.fetchData.bind(this),this.virtualScroller=itemParts,instance=this,parentContainer.renderer,_layoutmanager.default.tv,instance.virtualScroller&&instance.virtualScroller.classList.add("virtual-scroller-overflowvisible"),itemParts.updateElement=this.updateVirtualElement.bind(this),itemParts.onRecycleElement=this.onRecycleElement,itemParts.addClasses(),isNewVirtualScroller)||itemParts.resetAll(),this.items=null,this.onRefreshing&&this.onRefreshing(result),itemParts.setItemSource(items,result.TotalRecordCount),sectionSeeAllButton=50):(this._hasOtherInnerHtml=null,this.classList.remove("virtualItemsContainer"),this.currentListOptions=parentContainer,this.onRefreshing&&this.onRefreshing(result),parentContainer?(parentContainer.options.horizontal=null,parentContainer.options.isVirtualList=null,this.innerHTML=parentContainer.renderer.getItemsHtml(items,parentContainer.options)):this.innerHTML=this.getItemsHtml(items),this.virtualScroller&&this.virtualScroller.disconnectedCallback(),this.virtualScroller=null,this.items=items,listItemOptions&&!1===listItemOptions.image||_imageloader.default.lazyChildren(this)),this.enableContextMenu(listItemOptions&&listItemOptions.contextMenu),this.enableMultiSelect(listItemOptions&&listItemOptions.multiSelect),(sectionSeeAllButton?function(delay){return new Promise(function(resolve,reject){setTimeout(resolve,delay)})}(sectionSeeAllButton):Promise.resolve()).then(function(){hasActiveElement&&(null!=scrollPosition?this.closest(".emby-scroller").scrollToPosition({position:scrollPosition,behavior:"instant"}):function(itemsContainer,focusId,focusIndex){if(console.log("setFocus: focusId: "+focusId+", focusIndex: "+focusIndex),focusId){focusId=itemsContainer.indexOfItemId(focusId);if(-1!==focusId)return console.log("setFocus: found item at index "+focusId),itemsContainer.scrollToIndex(focusId,{},!0)}if(null!=focusIndex&&(focusIndex=parseInt(focusIndex),0<=(focusIndex=Math.min(focusIndex,itemsContainer.getItems().length-1))))return itemsContainer.scrollToIndex(focusIndex,{},!0);focusId={skipIfNotEnabled:!0};console.log("setFocus: auto-focusing into itemsContainer"),_focusmanager.default.autoFocus(itemsContainer,focusId)||(focusIndex=itemsContainer.closest(".view"))&&(null!=(itemsContainer=focusIndex.controller)&&itemsContainer.autoFocus?focusIndex.controller.autoFocus(focusId):_focusmanager.default.autoFocus(focusIndex,focusId))}(this,focusId,focusIndex));var dataItemIds=this.getAttribute("data-monitorids");this.mergeRefreshOptions({refreshIntervalMs:parseInt(this.getAttribute("data-refreshinterval")||"0"),enableUserData:listItemOptions&&listItemOptions.enableUserData,refreshOnItemUpdated:this.refreshOnItemUpdated,parentId:this.getAttribute("data-parentid")||null,itemIds:dataItemIds?dataItemIds.split(","):[]}),this.afterRefresh&&this.afterRefresh(result)}.bind(this))}function getClosest(node,selector){return node.closest?node.closest(selector):(node=node.parentNode)?getClosest(node,selector):null}function onItemDragStart(e){e.dataTransfer.effectAllowed="copy";var itemsContainer,e=getClosest(e.target,'[draggable="true"]');e&&(e.classList.add("dragging"),itemsContainer=e.closest(".itemsContainer"),window.CurrentDragInfo={element:e,elementIndex:itemsContainer.indexOfElement(e),item:_shortcuts.default.getItemFromChildNode(e,null,itemsContainer)},e.classList.contains("ordered-drop-target-y"))&&document.documentElement.classList.add("drag-reorder-y-active","drag-active")}function onItemDragEnd(e){var draggableElement=getClosest(e.target,'[draggable="true"]');draggableElement&&draggableElement.classList.remove("dragging"),e.preventDefault(),window.CurrentDragInfo=null,document.documentElement.classList.remove("drag-reorder-y-active","drag-active")}function supportsAddingToCollection(item){var user=_connectionmanager.default.getApiClient(item).getCurrentUserCached();return user&&_itemmanager.default.canAddToCollection(item,user)}function onItemDragEnter(e){var elem=getClosest(e.target,".drop-target");if(!elem||!elem.classList.contains("full-drop-target"))return onItemDragOver.call(this,e);var listType,data=window.CurrentDragInfo,data=data?data.item:null;data&&("Playlist"===(listType=_shortcuts.default.getItemFromChildNode(elem).Type)&&_itemmanager.default.canAddToPlaylist(data)||"BoxSet"===listType&&supportsAddingToCollection(data))&&(e.preventDefault(),elem.classList.add("dragging-over"))}function onItemDragOver(e){var listType,data=window.CurrentDragInfo,draggingElement=data?data.element:null,elem=getClosest(e.target,".drop-target");elem&&(elem.classList.contains("full-drop-target")?(data=data?data.item:null)&&("Playlist"===(listType=_shortcuts.default.getItemFromChildNode(elem).Type)&&_itemmanager.default.canAddToPlaylist(data)||"BoxSet"===listType&&supportsAddingToCollection(data))&&(e.preventDefault(),e.dataTransfer.dropEffect="copy",elem.classList.add("dragging-over")):elem.classList.contains("ordered-drop-target-x")&&draggingElement.classList.contains("ordered-drop-target-x")?(e.preventDefault(),e.dataTransfer.dropEffect="copy",listType=elem.classList,data=(data=elem.getBoundingClientRect()).x+data.width/2,e.clientX<=data?(listType.remove("dragging-over-right"),listType.add("dragging-over","dragging-over-left")):(listType.remove("dragging-over-left"),listType.add("dragging-over","dragging-over-right"))):elem.classList.contains("ordered-drop-target-y")&&draggingElement.classList.contains("ordered-drop-target-y")&&(e.preventDefault(),e.dataTransfer.dropEffect="copy",data=elem.classList,draggingElement=(listType=elem.getBoundingClientRect()).y+listType.height/2,e.clientY<=draggingElement?(data.remove("dragging-over-bottom"),data.add("dragging-over","dragging-over-top")):(data.remove("dragging-over-top"),data.add("dragging-over","dragging-over-bottom"))))}function onItemDragLeave(e){var elem,listType,data=window.CurrentDragInfo,data=data?data.item:null;data&&(elem=getClosest(e.target,".drop-target"))&&(elem.classList.contains("full-drop-target")?("Playlist"===(listType=_shortcuts.default.getItemFromChildNode(elem).Type)&&_itemmanager.default.canAddToPlaylist(data)||"BoxSet"===listType&&supportsAddingToCollection(data))&&(e.preventDefault(),elem.classList.remove("dragging-over")):elem.classList.contains("ordered-drop-target-x")?(e.preventDefault(),elem.classList.remove("dragging-over","dragging-over-left","dragging-over-right")):elem.classList.contains("ordered-drop-target-y")&&(e.preventDefault(),elem.classList.remove("dragging-over","dragging-over-top","dragging-over-bottom")))}function onItemDrop(e){e.preventDefault();var dragInfo=window.CurrentDragInfo,draggedElement=dragInfo.element,draggedElementIndex=dragInfo.elementIndex,dragInfo=dragInfo.item,elem=getClosest(e.target,".drop-target");elem&&(elem.classList.remove("dragging-over","dragging-over-top","dragging-over-bottom","dragging-over-left","dragging-over-right"),elem.classList.contains("full-drop-target")?onDroppedOntoFullTarget(elem.closest(".itemsContainer"),0,elem,dragInfo):elem.classList.contains("ordered-drop-target-x")?function(e,itemsContainer,item,draggedElement,draggedElementIndex,dropTarget){var directionLeft,rect=(rect=dropTarget.getBoundingClientRect()).x+rect.width/2;onReorderedTo(itemsContainer,item,draggedElement,draggedElementIndex,dropTarget,directionLeft=e.clientX<=rect?!0:directionLeft)}(e,elem.closest(".itemsContainer"),dragInfo,draggedElement,draggedElementIndex,elem):elem.classList.contains("ordered-drop-target-y")&&function(e,itemsContainer,item,draggedElement,draggedElementIndex,dropTarget){var directionUp,rect=(rect=dropTarget.getBoundingClientRect()).y+rect.height/2;onReorderedTo(itemsContainer,item,draggedElement,draggedElementIndex,dropTarget,directionUp=e.clientY<=rect?!0:directionUp)}(e,elem.closest(".itemsContainer"),dragInfo,draggedElement,draggedElementIndex,elem))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/emby-elements/emby-itemscontainer/emby-itemscontainer.css"]);var EmbyItemsContainer=function(_VirtualScroller){babelHelpers.inherits(EmbyItemsContainer,_VirtualScroller);var _super=_createSuper(EmbyItemsContainer);function EmbyItemsContainer(){babelHelpers.classCallCheck(this,EmbyItemsContainer);var _this,self=_this=_super.call(this);return onInit.call(self),_this.paused=!0,babelHelpers.possibleConstructorReturn(_this,self)}return babelHelpers.createClass(EmbyItemsContainer,[{key:"connectedCallback",value:function(){_virtualScroller.default.prototype.connectedCallback.apply(this,arguments),onInit.call(this),this.addEventListener("click",onClick),_layoutmanager.default.tv?this.classList.add("itemsContainer-tv"):(this.addEventListener("dragstart",onItemDragStart),this.addEventListener("dragend",onItemDragEnd),this.addEventListener("dragenter",onItemDragEnter),this.addEventListener("dragover",onItemDragOver),this.addEventListener("dragleave",onItemDragLeave),this.addEventListener("drop",onItemDrop)),this.hasAttribute("data-domdiff")&&(this._enableDomDiff=!0,morphdom||require(["morphdom"]).then(function(responses){morphdom=responses[0]})),_shortcuts.default.on(this,{click:!1}),!_layoutmanager.default.tv&&"ontouchstart"in document&&require(["dragDropTouch"]),this.hasAttribute("data-contextmenu")&&this.enableContextMenu(!0),this.hasAttribute("data-multiselect")&&this.enableMultiSelect(!0),this.dispatchEvent(new CustomEvent("upgraded",{cancelable:!1}))}},{key:"getEventsToMonitor",value:function(){var monitor=this.getAttribute("data-monitor");return monitor?monitor.split(","):[]}},{key:"disconnectedCallback",value:function(){var refreshMonitor=this.refreshMonitor;refreshMonitor&&(refreshMonitor.destroy(),this.refreshMonitor=null),_virtualScroller.default.prototype.disconnectedCallback.apply(this,arguments),abortRequests(this),this.enableMultiSelect(!1),this.removeEventListener("click",onClick),this.removeEventListener("change",onChange),this.removeEventListener("contextmenu",onContextMenu,!0),_shortcuts.default.off(this,{click:!1}),this.fetchData=null,this.getItemsHtml=null,this.parentContainer=null,this.virtualScroller=null,this.currentListOptions=null,this.itemParts=null,this.items=null,this._touchEventsBound=null,this._contextMenuEventsBound=!0}},{key:"updateVirtualElement",value:function(child,item,index){for(var listOptions=this.currentListOptions,listItemOptions=listOptions.options,listOptions=listOptions.renderer,allItemParts=this.itemParts,allItemParts=allItemParts[index]||(allItemParts[index]=listOptions.getItemParts(item,index,listItemOptions)),attributes=allItemParts.attributes,i=0,length=attributes.length;i