EmbyCrackedClient/web/modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js

1 line
31 KiB
JavaScript
Raw Normal View History

2025-06-25 11:46:04 +08:00
import browser from"./../../browser.js";import dom from"./../../dom.js";import layoutManager from"./../../layoutmanager.js";import connectionManager from"./../../emby-apiclient/connectionmanager.js";import lazyImageLoader from"./../../lazyloader/lazyimageloader.js";import VirtualScroller from"./../../virtual-scroller/virtual-scroller.js";import itemShortcuts from"./../../shortcuts.js";import inputManager from"./../../common/inputmanager.js";import focusManager from"./../../focusmanager.js";import ItemsRefresher from"./../../common/itemsrefresher.js";import itemManager from"./../../common/itemmanager/itemmanager.js";import commandProcessor from"./../../commandprocessor.js";import formHelper from"./../../common/responsehelper.js";import"./../../customelementupgrade.js";function loadMultiSelect(){return Emby.importModule("./modules/multiselect/multiselect.js")}require(["css!modules/emby-elements/emby-itemscontainer/emby-itemscontainer.css"]);let RequiresDragEventsPolyfill=!0,dragEventsPolyfillLoaded,MultiSelect,nativeContextMenuEventSupported,morphdom,headerElement=document.querySelector(".skinHeader"),appFooter;function onClick(e){var multiSelect=this.multiSelect;multiSelect&&!1===multiSelect.onContainerClick.call(this,e)||itemShortcuts.onClick.call(this,e)}function onChange(e){itemShortcuts.onClick.call(this,e)}function onContextMenu(e){!this._touchEventsBound||(detail=e.detail)&&detail.customEvent||(this._touchEventsBound=null,nativeContextMenuEventSupported=!0,dom.removeEventListener(this,"touchstart",onTouchStart,{passive:!0}),dom.removeEventListener(this,"touchend",onTouchEnd,{}),dom.removeEventListener(this,"touchcancel",onTouchEnd,{}),dom.removeEventListener(this,"touchmove",onTouchMove,{passive:!0}));var detail=e.target,itemElement=this.getContextMenuElementFromChildNode(detail);if(itemElement)if(detail.closest(".dragHandle"))e.preventDefault();else if(!this.classList.contains("multi-select-active")&&(tryVibrate(),inputManager.trigger("menu",{sourceElement:itemElement,originalEvent:e})))return e.preventDefault(),!1}function getShortcutOptions(){return{click:!1}}function onInit(){this.hasInit||(this.hasInit=!0,this.classList.add("itemsContainer"),this.refreshMonitor)||(this.refreshMonitor=new ItemsRefresher({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)}let touchTarget;function clearTouchTarget(container){var target=touchTarget;target&&(touchTarget=null,target.classList.remove("itemElement-activetouch"),dom.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.addEventListener(this,"touchmove",onTouchMove,{passive:!0}),(touchTarget=e).classList.add("itemElement-activetouch"),this.touchStartTimeout=setTimeout(onTouchStartTimerFired,650),this.touchStartTimeoutTime=Date.now())}function onTouchMove(e){if(touchTarget){var touchEndX,e=getTouches(e)[0];let deltaX,deltaY;deltaY=e?(touchEndX=e.clientX||0,e=e.clientY||0,deltaX=Math.abs(touchEndX-(this.touchStartX||0)),Math.abs(e-(this.touchStartY||0))):deltaX=100,(5<=deltaX||5<=deltaY)&&(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.focus(itemElement,{preventScroll:!0}),itemElement.dispatchEvent(new CustomEvent("contextmenu",{bubbles:!0,cancelable:!0,detail:{customEvent:!0}})))}function bindContextMenuEvents(element){element._contextMenuEventsBound||(element._contextMenuEventsBound=!0,element.addEventListener("conte