Files
Futontime_UI/modules/profilepinprompt/profilepinprompt.js
2026-02-09 10:48:21 +01:00

1 line
7.5 KiB
JavaScript

define(["exports","./../layoutmanager.js","./../common/globalize.js","./../common/textencoding.js","./../dialoghelper/dialoghelper.js","./../focusmanager.js","./../dom.js","./../alphapicker/alphapicker.js","./../cardbuilder/cardbuilder.js","./../input/keyboard.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js"],function(_exports,_layoutmanager,_globalize,_textencoding,_dialoghelper,_focusmanager,_dom,_alphapicker,_cardbuilder,_keyboard,_embyButton,_embyInput,_embyScroller,_paperIconButtonLight,_embyDialogclosebutton){function initUserImage(instance){var itemsContainer=instance.dlg.querySelector(".profilePinImageContainer");itemsContainer.fetchData=function(){var item=this.options.user,items=[];return item&&items.push(item),Promise.resolve({Items:items,TotalRecordCount:items.length})}.bind(instance),itemsContainer.getListOptions=function(items){return{renderer:_cardbuilder.default,options:{overlayText:!0,fields:[],action:"none",multiSelect:!1,contextMenu:!1,ratingButton:!1,playedButton:!1,defaultIcon:!0,typeIndicator:!1,playedIndicator:!1,syncIndicator:!1,timerIndicator:!1,randomDefaultBackground:!1,staticElement:!0,enableUserData:!1,draggable:!1,moreButton:!1,programIndicators:!1,keepImageAnimation:!0,cardClass:"profilePinImageCard",cardBoxClass:"profilePinImageCardBox",round:!0,playQueueIndicator:!1},virtualScrollLayout:"vertical-grid"}}}function moveFocusToTextInput(txt){_focusmanager.default.focus(txt,{}),txt.select()}function onFormKeyDown(e){var input=e.target.closest(".txtProfilePinInput");input&&"Backspace"===_keyboard.default.normalizeKeyFromEvent(e)&&""===input.value&&(e=input.closest("form").querySelectorAll(".txtProfilePinInput"),0<(input=Array.prototype.indexOf.call(e,input)))&&moveFocusToTextInput(e[input-1])}function onFormInput(e){var form,inputs,index,e=e.target.closest(".txtProfilePinInput");e&&(1<e.value.length&&(e.value=e.value.slice(0,1)),inputs=(form=e.closest("form")).querySelectorAll(".txtProfilePinInput"),index=Array.prototype.indexOf.call(inputs,e),""!==e.value)&&(index<inputs.length-1?_layoutmanager.default.tv||moveFocusToTextInput(inputs[index+1]):form.requestSubmit())}function dispatchInput(txt){txt.dispatchEvent(new CustomEvent("input",{bubbles:!0}))}function initAlphaPicker(alphaPickerElement,instance){instance.alphaPicker=new _alphapicker.default({element:alphaPickerElement,mode:"keyboard",type:"numeric"}),alphaPickerElement.addEventListener("alphavalueclicked",function(e){var value=e.detail.value,txtFields=this.dlg.querySelectorAll(".txtProfilePinInput");if("backspace"===value){for(var i=txtFields.length-1;0<=i;i--)if(""!==txtFields[i].value){txtFields[i].value="",dispatchInput(txtFields[i]);break}}else for(var _i=0,length=txtFields.length;_i<length;_i++)if(""===txtFields[_i].value){txtFields[_i].value=value,dispatchInput(txtFields[_i]);break}}.bind(instance))}function getError(name,message){message=new Error(message);return message.name=name,message}function onDialogKeyDown(e){var target=e.target;if(!target.closest("input")){e=_keyboard.default.normalizeKeyFromEvent(e);if(e){var value=parseInt(e);if(null!=value&&!isNaN(value))for(var txtFields=target.closest("form").querySelectorAll(".txtProfilePinInput"),i=0,length=txtFields.length;i<length;i++){var field=txtFields[i];if(!field.value){field.value=value,!function(field){setTimeout(function(){dispatchInput(field)},10)}(field);break}}}}}function showDialog(instance,options,template){var dialogOptions={removeOnClose:!0,scrollY:!1,autoFocus:!0},dialogOptions=(_layoutmanager.default.tv&&(dialogOptions.size="fullscreen"),_dialoghelper.default.createDialog(dialogOptions));if(dialogOptions.classList.add("formDialog"),dialogOptions.innerHTML=_globalize.default.translateHtml(template),dialogOptions.querySelector(".pinMustBe").innerHTML=_globalize.default.translate("YourPinMustBe",4),_layoutmanager.default.tv){for(var txtFields=dialogOptions.querySelectorAll(".txtProfilePinInput"),i=0,length=txtFields.length;i<length;i++)txtFields[i].setAttribute("readonly","readonly");for(var _i2=0,_length=txtFields.length;_i2<_length;_i2++)txtFields[_i2].setAttribute("virtualkeyboardpolicy","manual"),txtFields[_i2].setAttribute("inputmode","none"),txtFields[_i2].setAttribute("tabindex","-1");template=dialogOptions.querySelector(".alphaPicker");dialogOptions.querySelector(".alphaPicker").classList.remove("hide"),initAlphaPicker(template,instance)}else dialogOptions.querySelector(".profilePinScroller").classList.add("profilePinScroller-autoabsolute");dialogOptions.querySelector(".profilePinPromptInputContainer").addEventListener("input",onFormInput),dialogOptions.querySelector(".profilePinPromptInputContainer").addEventListener("keydown",onFormKeyDown),_dom.default.addEventListener(dialogOptions,"click",function(e){var dlg=this.dlg,btnCloseWithResult=e.target.closest(".btnCloseWithResult");btnCloseWithResult&&btnCloseWithResult.href&&!btnCloseWithResult.getAttribute("target")&&(e.stopPropagation(),e.preventDefault(),this.pinResult=btnCloseWithResult.getAttribute("data-result"),_dialoghelper.default.close(dlg))}.bind(instance),{capture:!0}),dialogOptions.querySelector("form").addEventListener("submit",function(e){e.preventDefault(),e.stopPropagation();var dlg=this.dlg,e=this.getCurrentPinValue()===this.options.user.Configuration.ProfilePin,inputContainer=dlg.querySelector(".profilePinPromptInputContainer");inputContainer.classList.remove("profilePinPromptInputContainer-invalid"),inputContainer.offsetWidth,e?(this.pinResult="validated",dlg.querySelector(".invalidHeader").classList.add("hide"),dlg.querySelector(".mainHeader").classList.remove("hide"),setTimeout(function(){_dialoghelper.default.close(dlg)},100)):(inputContainer.classList.add("profilePinPromptInputContainer-invalid"),this.pinResult=null,dlg.querySelector(".mainHeader").classList.add("hide"),dlg.querySelector(".invalidHeader").classList.remove("hide"))}.bind(instance)),(instance.dlg=dialogOptions).querySelector(".username").innerHTML=_textencoding.default.htmlEncode(options.user.Name),initUserImage(instance);template=dialogOptions.querySelector(".profilePinImageContainer");return template.waitForCustomElementUpgrade().then(function(){this.resume({refresh:!0})}.bind(template)),dialogOptions.addEventListener("keydown",onDialogKeyDown.bind(instance)),_dialoghelper.default.open(dialogOptions).then(function(){var pinResult=instance.pinResult;return instance.destroy(),"validated"===pinResult?Promise.resolve():pinResult?Promise.reject(getError(pinResult,"AbortError")):Promise.reject(getError("AbortError","AbortError"))})}function PinPrompt(){}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle","material-icons","css!modules/profilepinprompt/profilepinprompt.css"]),PinPrompt.prototype.getCurrentPinValue=function(){for(var value="",txtFields=this.dlg.querySelectorAll(".txtProfilePinInput"),i=0,length=txtFields.length;i<length;i++){var val=txtFields[i].value;if(""===val)break;value+=val}return value},PinPrompt.prototype.show=function(options){var instance=this;return instance.options=options,require(["text!modules/profilepinprompt/profilepinprompt.template.html"]).then(function(responses){responses=responses[0];return showDialog(instance,options,responses)})},PinPrompt.prototype.destroy=function(){var alphaPicker=this.alphaPicker;alphaPicker&&alphaPicker.destroy(),this.alphaPicker=null,this.dlg=null,this.pinValidated=null,this.options=null};_exports.default=PinPrompt});