define(["exports","./../approuter.js","./../dom.js","./../focusmanager.js","./../common/inputmanager.js","./../browser.js","./../emby-apiclient/events.js"],function(_exports,_approuter,_dom,_focusmanager,_inputmanager,_browser,_events){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var globalOnOpenCallback,uiDependencies=["css!modules/dialoghelper/dialoghelper.css"],appMode=globalThis.appMode,allowHistory=_browser.default.tv&&"standalone"===(appMode||"standalone");uiDependencies.length&&require(uiDependencies);var AnimationSupported=CSS.supports("animation-name","a")&&_dom.default.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){var 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&&closeDialog(dlg)}function onDialogClick(e){var link=e.target.closest("a");link&&link.href&&!link.getAttribute("target")&&(e.preventDefault(),e.stopPropagation(),close(this),this.hrefOnClose=link)}function onNavigate(e){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":case"end":case"settings":case"guide":case"recordedtv":case"favorites":case"channelup":case"channeldown":e.preventDefault();break;case"back":isHistoryEnabled(dlg)||(e.preventDefault(),e.stopPropagation(),closeDialog(dlg));break;case"forward":e.preventDefault(),e.stopPropagation()}}_dom.default.addEventListener(dlg,"close",function(){(elemForEvents=dlg.dialogContainer)&&dlg.boundDocumentMouseDown&&(_dom.default.removeEventListener(elemForEvents,window.PointerEvent?"pointerdown":"mousedown",dlg.boundDocumentMouseDown,{passive:!0}),dlg.boundDocumentMouseDown=null),elemForEvents&&dlg.boundDocumentClick&&(_dom.default.removeEventListener(elemForEvents,"click",dlg.boundDocumentClick,{passive:!0}),dlg.boundDocumentClick=null),_dom.default.removeEventListener(dlg,"click",onDialogClick,{capture:!0}),_inputmanager.default.off(dlg,onInputCommand),_events.default.off(_approuter.default,"navigate",onNavigate),window.removeEventListener("popstate",onHashChange),dlg.classList.remove("opened"),removeScrollLockOnClose&&getScrollingElement().classList.remove("withDialogOpen"),!1!==(null==(elemForEvents=dlg.dialogOptions)?void 0:elemForEvents.refocus)&&activeElement&&_focusmanager.default.focus(activeElement);var elemForEvents=dlg.dialogContainer;"false"!==dlg.getAttribute("data-removeonclose")?elemForEvents?(function(dlg){var onAnimationFinish,backdrop=dlg.dialogContainer;backdrop&&(onAnimationFinish=function(){tryRemoveElement(backdrop)},enableAnimation(dlg)?(backdrop.classList.remove("dialogBackdropOpened"),setTimeout(onAnimationFinish,300)):onAnimationFinish())}(dlg),dlg.dialogContainer=null):tryRemoveElement(dlg):elemForEvents&&elemForEvents.classList.remove("dialogBackdropOpened"),setTimeout(function(){dlg.hrefOnClose&&(dlg.hrefOnClose.click(),dlg.hrefOnClose=null),resolve({element:dlg})},1)},{once:!0}),function(dlg){var transparentBackground=dlg.getAttribute("data-transparentbackground"),blurBackground=dlg.getAttribute("data-blurbackground")&&_dom.default.allowBackdropFilter();transparentBackground&&!blurBackground||(dlg.dialogContainer.classList.add("dialogBackdrop"),transparentBackground&&dlg.dialogContainer.classList.add("dialogBackdrop-nomouse"),blurBackground&&dlg.dialogContainer.classList.add("dialogBackdrop-blur"),dlg.dialogContainer.offsetWidth,dlg.dialogContainer.classList.add("dialogBackdropOpened"));setTimeout(function(){this.boundDocumentMouseDown||(this.boundDocumentMouseDown=function(e){this.pointerDownTarget=e.target}.bind(this));var elemForEvents=this.dialogContainer;elemForEvents&&(_dom.default.addEventListener(elemForEvents,window.PointerEvent?"pointerdown":"mousedown",this.boundDocumentMouseDown,{passive:!0}),this.boundDocumentClick||(this.boundDocumentClick=function(e){var dlg=this,e=e.target;if(!(dlg.pointerDownTarget&&dlg.pointerDownTarget!==dlg.dialogContainer||e!==dlg.dialogContainer&&dlg.contains(e))){if(dlg.queryCloseHandler&&!dlg.queryCloseHandler(dlg))return;close(dlg)}dlg.pointerDownTarget=null}.bind(this)),_dom.default.addEventListener(elemForEvents,"click",this.boundDocumentClick,{passive:!0}))}.bind(dlg),100)}(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("withDialogOpen")||(scrollingElement.classList.add("withDialogOpen"),removeScrollLockOnClose=!0),function(dlg){enableAnimation(dlg)?_dom.default.addEventListener(dlg,"animationend",onOpenAnimationFinish,{passive:!0}):onOpenAnimationFinish.call(dlg,{target:dlg,currentTarget:dlg})}(dlg),isHistoryEnabled(dlg)&&(_approuter.default.pushState({dialogId:hash},"Dialog","#"+hash),window.addEventListener("popstate",onHashChange)),_inputmanager.default.on(dlg,onInputCommand),_events.default.on(_approuter.default,"navigate",onNavigate),_dom.default.addEventListener(dlg,"click",onDialogClick,{capture:!0}),positionDialog(dlg)}function onOpenAnimationFinish(e){e.target===e.currentTarget&&(_dom.default.removeEventListener(this,"animationend",onOpenAnimationFinish,{passive:!0}),"false"!==this.getAttribute("data-focusscope")&&_focusmanager.default.pushScope(this),this.dispatchEvent(new CustomEvent("opened",{bubbles:!1,cancelable:!1})),"true"===this.getAttribute("data-autofocus"))&&_focusmanager.default.autoFocus(this,{skipIfNotEnabled:!0})}function isHistoryEnabled(dlg){return"true"===dlg.getAttribute("data-history")}function getPosition(options,dlg){elem=options.positionTo;var elem=document?{top:(elem=elem.getBoundingClientRect()).top,left:elem.left,width:elem.width,height:elem.height}:null,positionX=options.positionX,height=("rtl"===document.dir&&("right"===positionX?positionX="left":"left"===positionX&&(positionX="right")),"bottom"===options.positionY?elem.top+=elem.height||0:"top"!==options.positionY&&"above"!==options.positionY&&(elem.top+=(elem.height||0)/2),dlg.offsetHeight||300),dlg=dlg.offsetWidth||160;return"right"===positionX?elem.left+=elem.width||0:"left"===positionX?elem.left-=Math.max(elem.width||0,dlg):"match"!==positionX&&(elem.left+=(elem.width||0)/2,elem.left-=dlg/2),null!=options.positionClientX&&(elem.left=options.positionClientX,elem.top=options.positionClientY,"right"!==positionX)&&("left"===positionX?elem.left-=dlg:"match"!==positionX&&(elem.left-=dlg/2)),"above"===options.positionY?elem.top-=height:"bottom"!==options.positionY&&"center"!==options.positionY&&"top"!==options.positionY&&(elem.top-=height/2),elem.top+=options.offsetTop||0,elem.left+=options.offsetLeft||0,!1!==options.preventOverflow&&(options=(positionX=_dom.default.getWindowSize()).innerHeight,positionX=positionX.innerWidth,dlg=elem.left+dlg-positionX,positionX=elem.top+height-options,0