EmbyCrackedClient/web/modules/dialoghelper/dialoghelper.js

1 line
17 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import appRouter from"./../approuter.js";import dom from"./../dom.js";import focusManager from"./../focusmanager.js";import inputManager from"./../common/inputmanager.js";import browser from"./../browser.js";import events from"./../emby-apiclient/events.js";import layoutManager from"./../layoutmanager.js";import Gesture from"./../gesture/gesture.js";import skinViewManager from"./../skinviewmanager.js";let uiDependencies=["css!modules/dialoghelper/dialoghelper.css"],appMode=globalThis.appMode,supportsTranslate=CSS.supports("translate","40px 100px"),allowHistory=browser.tv&&"standalone"===(appMode||"standalone");function loadDependencies(){var deps=uiDependencies;deps.length&&require(deps)}loadDependencies();let globalOnOpenCallback,SupportsCssAnimations=CSS.supports("animation-name","a"),AnimationSupported=SupportsCssAnimations&&dom.supportsEventListenerOnce();function enableAnimation(dlg){return!(!AnimationSupported||dlg&&dlg.classList.contains("dialog-noanimation"))}function tryRemoveElement(elem){try{elem.remove()}catch(err){console.log("Error removing dialog element: "+err)}}function getScrollingElement(){return document.scrollingElement||document.documentElement}function DialogHashHandler(dlg,hash,resolve){let originalUrl=window.location.href,activeElement=document.activeElement,removeScrollLockOnClose=!1;function onHashChange(e){var isBack=originalUrl===window.location.href;!isBack&&isOpened(dlg)||window.removeEventListener("popstate",onHashChange),isBack&&hideDialog(dlg)}function onNavigate(e){dlg._closedForNavigation=!0,close(dlg)}function onInputCommand(e){var command=e.detail.command;switch(console.log("dialogHelper input command: "+command),command){case"left":case"right":case"up":case"down":case"pageup":case"pagedown":case"select":e.stopPropagation();break;case"home":blockInputCommandNavigation(dlg)&&e.preventDefault();break;case"end":case"settings":case"guide":case"recordedtv":case"favorites":case"channelup":case"channeldown":e.preventDefault();break;case"back":e.preventDefault(),e.stopPropagation(),requestClose(dlg);break;case"forward":e.preventDefault(),e.stopPropagation()}}function afterClosed(){resolve({element:dlg})}dom.addEventListener(dlg,"preclosing",function(){var elemForEvents=dlg.dialogContainer;elemForEvents&&dlg.boundDocumentMouseDown&&(dom.removeEventListener(elemForEvents,window.PointerEvent?"pointerdown":"mousedown",dlg.boundDocumentMouseDown,{passive:!0}),dlg.boundDocumentMouseDown=null),elemForEvents&&dlg.boundDocumentClick&&(dom.removeEventListener(elemForEvents,"click",dlg.boundDocumentClick,{passive:!0}),dlg.boundDocumentClick=null),inputManager.off(dlg,onInputCommand),events.off(appRouter,"navigate",onNavigate),window.removeEventListener("popstate",onHashChange)},{once:!0}),dom.addEventListener(dlg,"close",function(){(elemForEvents=dlg.dialogContainer)&&dlg.boundDocumentMouseDown&&(dom.removeEventListener(elemForEvents,window.PointerEvent?"pointerdown":"mousedown",dlg.boundDocumentMouseDown,{passive:!0}),dlg.boundDocumentMouseDown=null),elemForEvents&&dlg.boundDocumentClick&&(dom.removeEventListener(elemForEvents,"click",dlg.boundDocumentClick,{passive:!0}),dlg.boundDocumentClick=null),inputManager.off(dlg,onInputCommand),events.off(appRouter,"navigate",onNavigate),window.removeEventListener("popstate",onHashChange),dlg.classList.remove("opened"),removeScrollLockOnClose&&getScrollingElement().classList.remove("withDialogOpen"),!1!==dlg.dialogOptions?.refocus&&activeElement&&focusManager.focus(activeElement);var elemForEvents=dlg.dialogContainer;"false"!==dlg.getAttribute("data-removeonclose")?elemForEvents?(removeBackdrop(dlg),dlg.dialogContainer=null):tryRemoveElement(dlg):elemForEvents&&elemForEvents.classList.remove("dialogBackdropOpened"),isHistoryEnabled(dlg)?setTimeout(afterClosed,1):afterClosed()},{once:!0}),addBackdropOverlay(dlg),dlg.classList.remove("hide"),dlg.classList.add("opened"),dlg.dispatchEvent(new CustomEvent("open",{bubbles:!1,cancelable:!1}));var scrollingElement=getScrollingElement();"true"!==dlg.getAttribute("data-lockscroll")||scrollingElement.classList.contains(