var __runInitializers=this&&this.__runInitializers||function(thisArg,initializers,value){for(var useValue=arguments.length>2,i=0;i=0;i--){var context={};for(var p in contextIn)context[p]="access"===p?{}:contextIn[p];for(var p in contextIn.access)context.access[p]=contextIn.access[p];context.addInitializer=function(f){if(done)throw new TypeError("Cannot add initializers after decoration has completed");extraInitializers.push(accept(f||null))};var result=(0,decorators[i])("accessor"===kind?{get:descriptor.get,set:descriptor.set}:descriptor[key],context);if("accessor"===kind){if(void 0===result)continue;if(null===result||"object"!=typeof result)throw new TypeError("Object expected");(_=accept(result.get))&&(descriptor.get=_),(_=accept(result.set))&&(descriptor.set=_),(_=accept(result.init))&&initializers.unshift(_)}else(_=accept(result))&&("field"===kind?initializers.unshift(_):descriptor[key]=_)}target&&Object.defineProperty(target,contextIn.name,descriptor),done=!0};import{Callback}from"Beckhoff.TwinCAT.HMI.Framework/index.esm.js";import{UserManagementPopup}from"./UserManagementPopup.js";let SwitchUserPopup=(()=>{var _a,_b,_c,_d;let ___onUserCombobox_decorators,___onConfirm_decorators,___onCancel_decorators,___onDomainSelectionChanged_decorators,_classSuper=UserManagementPopup,_instanceExtraInitializers=[];return class extends _classSuper{static{const _metadata="function"==typeof Symbol&&Symbol.metadata?Object.create(_classSuper[Symbol.metadata]??null):void 0;___onUserCombobox_decorators=[(_a=TcHmi).CallbackMethod.bind(_a)],___onConfirm_decorators=[(_b=TcHmi).CallbackMethod.bind(_b)],___onCancel_decorators=[(_c=TcHmi).CallbackMethod.bind(_c)],___onDomainSelectionChanged_decorators=[(_d=TcHmi).CallbackMethod.bind(_d)],__esDecorate(this,null,___onUserCombobox_decorators,{kind:"method",name:"__onUserCombobox",static:!1,private:!1,access:{has:obj=>"__onUserCombobox"in obj,get:obj=>obj.__onUserCombobox},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onConfirm_decorators,{kind:"method",name:"__onConfirm",static:!1,private:!1,access:{has:obj=>"__onConfirm"in obj,get:obj=>obj.__onConfirm},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onCancel_decorators,{kind:"method",name:"__onCancel",static:!1,private:!1,access:{has:obj=>"__onCancel"in obj,get:obj=>obj.__onCancel},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onDomainSelectionChanged_decorators,{kind:"method",name:"__onDomainSelectionChanged",static:!1,private:!1,access:{has:obj=>"__onDomainSelectionChanged"in obj,get:obj=>obj.__onDomainSelectionChanged},metadata:_metadata},null,_instanceExtraInitializers),_metadata&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:_metadata})}constructor(parentControl){super(parentControl),this.__elementDomain=document.createElement("div"),this.__elementDomain.classList.add("TcHmi_Controls_Beckhoff_TcHmiUserManagement-popup-content"),this.__elementDomainHeader=document.createElement("h2"),this.__elementDomain.append(this.__elementDomainHeader),this.__elementUsername=document.createElement("div"),this.__elementUsername.classList.add("TcHmi_Controls_Beckhoff_TcHmiUserManagement-popup-content"),this.__elementUsernameHeader=document.createElement("h2"),this.__elementUsername.append(this.__elementUsernameHeader),this.__elementPassword=document.createElement("div"),this.__elementPassword.classList.add("TcHmi_Controls_Beckhoff_TcHmiUserManagement-popup-content"),this.__elementPasswordHeader=document.createElement("h2"),this.__elementPassword.append(this.__elementPasswordHeader),this.__elementContent.append(this.__elementDomain,this.__elementUsername,this.__elementPassword);const switchButton=TcHmi.ControlFactory.createEx("TcHmi.Controls.Beckhoff.TcHmiButton",`${this.__name}.switchButton`,{"data-tchmi-height":30,"data-tchmi-width-mode":"Content","data-tchmi-min-width":60,"data-tchmi-text-padding":{left:7,right:7,top:6,bottom:6},"data-tchmi-is-enabled":!0,"data-tchmi-ignore-escape-sequences":!0,"data-tchmi-text":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiUserManagement::PopupButton_Switch%/l%","data-tchmi-tooltip":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiUserManagement::PopupButton_Switch%/l%"},this.__parentControl),cancelButton=TcHmi.ControlFactory.createEx("TcHmi.Controls.Beckhoff.TcHmiButton",`${this.__name}.cancelButton`,{"data-tchmi-height":30,"data-tchmi-width-mode":"Content","data-tchmi-min-width":60,"data-tchmi-text-padding":{left:7,right:7,top:6,bottom:6},"data-tchmi-ignore-escape-sequences":!0,"data-tchmi-text":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiUserManagement::PopupButton_Cancel%/l%","data-tchmi-tooltip":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiUserManagement::PopupButton_Cancel%/l%"},this.__parentControl),usernameInput=TcHmi.ControlFactory.createEx("TcHmi.Controls.Beckhoff.TcHmiInput",`${this.__name}.usernameInput`,{"data-tchmi-placeholder":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiUserManagement::PopupPlaceholder_EnterYourUserName%/l%"},this.__parentControl),passwordInput=TcHmi.ControlFactory.createEx("TcHmi.Controls.Beckhoff.TcHmiPasswordInput",`${this.__name}.passwordInput`,{"data-tchmi-placeholder":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiUserManagement::PopupPlaceholder_Password%/l%"},this.__parentControl),userCombobox=TcHmi.ControlFactory.createEx("TcHmi.Controls.Beckhoff.TcHmiCombobox",`${this.__name}.userCombobox`,{"data-tchmi-combobox-text":"%l%Control::TcHmi.Controls.Beckhoff.TcHmiUserManagement::PopupPlaceholder_SelectAUser%/l%","data-tchmi-drop-down-font-size":this.__textFontSize,"data-tchmi-drop-down-font-size-unit":this.__textFontSizeUnit},this.__parentControl),domainCombobox=TcHmi.ControlFactory.createEx("TcHmi.Controls.Beckhoff.TcHmiCombobox",`${this.__name}.domainCombobox`,{"data-tchmi-drop-down-font-size":this.__textFontSize,"data-tchmi-drop-down-font-size-unit":this.__textFontSizeUnit},this.__parentControl);if(!(switchButton&&cancelButton&&usernameInput&&passwordInput&&userCombobox&&domainCombobox))throw new Error("Could not create controls for EditUserPopup.");this.__switchButton=switchButton;const switchButtonElement=this.__switchButton.getElement()[0];switchButtonElement.classList.add("confirmbutton"),this.__elementFooter.append(switchButtonElement),this.__cancelButton=cancelButton;const cancelButtonElement=this.__cancelButton.getElement()[0];cancelButtonElement.classList.add("cancelbutton"),this.__elementFooter.append(cancelButtonElement),this.__userCombobox=userCombobox,this.__usernameInput=usernameInput,this.__passwordInput=passwordInput,this.__elementPassword.append(this.__passwordInput.getElement()[0]),this.__domainCombobox=domainCombobox,this.__elementDomain.append(this.__domainCombobox.getElement()[0]),this.__destroyers.push(TcHmi.EventProvider.register(this.__switchButton.getId()+".onPressed",this.__onConfirm),TcHmi.EventProvider.register(this.__cancelButton.getId()+".onPressed",this.__onCancel),TcHmi.EventProvider.register(this.__userCombobox.getId()+".onSelectionChanged",this.__onUserCombobox),TcHmi.EventProvider.register(this.__domainCombobox.getId()+".onSelectionChanged",this.__onDomainSelectionChanged)),this.__updateUserSelection()}__elementDomain=__runInitializers(this,_instanceExtraInitializers);__elementDomainHeader;__elementUsername;__elementUsernameHeader;__elementPassword;__elementPasswordHeader;__switchButton;__cancelButton;__userCombobox;__usernameInput;__passwordInput;__domainCombobox;__selectedUserName;__userSelectType="Input";__advanced=!1;__advancedChangeCallbacks=new Callback.Collection;onAdvancedChanged=this.__advancedChangeCallbacks.getManipulators();__localizedTexts=null;show(){super.show(),this.__updateDomains()}destroy(){super.destroy()}__performPromptAction(toPerform){this.__onHideManager.trigger()}__updateDomains(){TcHmi.Server.readSymbol("ListDomains",data=>{const domainList=data.response?.commands?.[0].readValue;if(data.error===TcHmi.Errors.NONE&&domainList){const domains=[];for(let[domainName,domain]of Object.entries(domainList))domain?.authExtension&&domains.push(domainName);if(domains.length<1)this.__elementDomain.classList.add("not-displayed"),this.__selectedDomain=TcHmi.Server.getCurrentUserConfig().defaultAuthExtension;else if(1===domains.length)this.__selectedDomain=domains[0],this.__elementDomain.classList.add("not-displayed");else{let defaultDomain=TcHmi.Server.getCurrentUserConfig().defaultAuthExtension;if(this.__domainCombobox){this.__elementDomain.classList.remove("not-displayed"),this.__domainCombobox.setSrcData(domains);let index=domains.findIndex(x=>x===defaultDomain)??0;this.__domainCombobox.setSelectedIndex(index)}}}this.__updateUserSelection()})}__updateUserSelection(){this.__isShowing&&TcHmi.Server.readSymbol("UserSelectType",data=>{data.error!==TcHmi.Errors.NONE||0!==data.results?.[0].value?this.__showSelectionInput():this.__showSelectionCombobox()})}__showSelectionCombobox(){this.__userSelectType="Combobox",this.__usernameInput.getElement()[0].remove(),this.__elementUsername.append(this.__userCombobox.getElement()[0]),this.__updateComboboxData()}__showSelectionInput(){this.__userSelectType="Input",this.__userCombobox.getElement()[0].remove(),this.__elementUsername.append(this.__usernameInput.getElement()[0]),this.__switchButton.setIsEnabled(!0)}__updateComboboxData(){let currentSelection=this.__userCombobox.getSelectedValue();TcHmi.Server.UserManagement.listUsernamesEx({domain:this.__selectedDomain},null,data=>{if(data.error===TcHmi.Errors.NONE){if(data.userList){let userList=data.userList.sort();const currentUserConfigurations=TcHmi.Server.getCurrentUserConfig();userList=userList.filter(user=>"__SystemGuest"!==user&&"__SystemUser"!==user&&user!==currentUserConfigurations.name),this.__userCombobox&&this.__userCombobox.setSrcData(userList)}}else this.__showSelectionInput();let srcData=this.__userCombobox.getSrcData();if(srcData&&srcData.length>0&¤tSelection){let index=srcData.indexOf(currentSelection);-1!==index?this.__userCombobox.setSelectedIndex(index):this.__userCombobox.setSelectedIndex(null)}else this.__userCombobox.setSelectedIndex(null)})}__onUserCombobox(){this.__updatePopupControls()}__updatePopupControls(){this.__userCombobox&&(this.__selectedUserName=this.__userCombobox.getSelectedValue(),this.__selectedUserName?this.__switchButton.setIsEnabled(!0):this.__switchButton.setIsEnabled(!1))}__onConfirm(){if(this.__usernameInput&&"Input"===this.__userSelectType&&(this.__selectedUserName=this.__usernameInput.getText()),!this.__selectedUserName||""===this.__selectedUserName)return this.__feedbackPrompt||(this.__feedbackPrompt=this.__createFeedbackPrompt()),this.__feedbackPrompt.setTexts({headerText:this.__localizedTexts?.feedbackPromptHeadlineFailed,contentText:this.__localizedTexts?.feedbackPromptUsername}),void this.__feedbackPrompt.prompt();let password=this.__passwordInput.getText();if(!password||""===password)return this.__feedbackPrompt||(this.__feedbackPrompt=this.__createFeedbackPrompt()),this.__feedbackPrompt.setTexts({headerText:this.__localizedTexts?.feedbackPromptHeadlineFailed,contentText:this.__localizedTexts?.feedbackPromptPassword}),void this.__feedbackPrompt.prompt();TcHmi.Server.loginEx2((this.__selectedDomain?this.__selectedDomain+"::":"")+this.__selectedUserName,password,!0,!1,null,data=>{if(data.error===TcHmi.Errors.NONE)this.__updateUserSelection(),this.__feedbackPrompt||(this.__feedbackPrompt=this.__createFeedbackPrompt()),this.__feedbackPrompt.setTexts({headerText:this.__localizedTexts?.feedbackPromptHeadlineSuccess,contentText:{symbolExpression:"object"==typeof this.__localizedTexts?.feedbackPromptUserSwitched?this.__localizedTexts?.feedbackPromptUserSwitched.symbolExpression:this.__localizedTexts?.feedbackPromptUserSwitched??"",formatValues:[this.__selectedUserName]}}),this.__feedbackPrompt.prompt();else{let error=data.error,message="";data.details?.errors?.[0]&&(data.details.errors[0].code&&(error=data.details.errors[0].code),data.details.errors[0].message&&(message=" ("+data.details.errors[0].message+")")),TcHmi.Log.error("login failed "+TcHmi.Log.buildMessage(data.details)),this.__feedbackPrompt||(this.__feedbackPrompt=this.__createFeedbackPrompt()),this.__feedbackPrompt.setTexts({headerText:this.__localizedTexts?.feedbackPromptHeadlineFailed,contentText:{symbolExpression:"object"==typeof this.__localizedTexts?.feedbackPromptUserNotSwitched?this.__localizedTexts?.feedbackPromptUserNotSwitched.symbolExpression:this.__localizedTexts?.feedbackPromptUserNotSwitched??"",formatValues:[error,message]}}),this.__feedbackPrompt.prompt()}})}setAdvanced(advanced){advanced!==this.__advanced&&(this.__advanced=advanced)}__onCancel(){this.hide()}__onDomainSelectionChanged(){this.__selectedDomain=this.__domainCombobox.getSelectedValue()??TcHmi.Server.getCurrentUserConfig().defaultAuthExtension,this.__updateUserSelection()}__updateFontSizes(){super.__updateFontSizes(),this.__userCombobox.setDropDownFontSize(this.__dropDownFontSize),this.__userCombobox.setDropDownFontSizeUnit(this.__dropDownFontSizeUnit),this.__domainCombobox.setDropDownFontSize(this.__dropDownFontSize),this.__domainCombobox.setDropDownFontSizeUnit(this.__dropDownFontSizeUnit),"px"===this.__dropDownFontSizeUnit&&this.__dropDownFontSize?(this.__userCombobox.setDataHeight(1.5*this.__dropDownFontSize),this.__domainCombobox.setDataHeight(1.5*this.__dropDownFontSize),this.__userCombobox.setHeight(this.__dropDownFontSize+10),this.__domainCombobox.setHeight(this.__dropDownFontSize+10)):(this.__userCombobox.setDataHeight(null),this.__userCombobox.setHeight(null),this.__domainCombobox.setDataHeight(null),this.__domainCombobox.setHeight(null))}setTexts(texts){super.setTexts(texts),this.__applyTextToElement("domainHeaderText",texts.domainHeaderText,this.__elementDomainHeader),this.__applyTextToElement("usernameHeaderText",texts.usernameHeaderText,this.__elementUsernameHeader),this.__applyTextToElement("passwordHeaderText",texts.passwordHeaderText,this.__elementPasswordHeader),this.__applyTextToControl("switchButtonText",texts.switchButton?.text,this.__switchButton,"Text"),this.__applyTextToControl("switchButtonTooltip",texts.switchButton?.tooltip,this.__switchButton,"Tooltip"),this.__applyTextToControl("cancelButtonText",texts.cancelButton?.text,this.__cancelButton,"Text"),this.__applyTextToControl("cancelButtonTooltip",texts.cancelButton?.tooltip,this.__cancelButton,"Tooltip"),this.__applyTextToControl("usernameInputPlaceholder",texts.usernameInputPlaceholder,this.__usernameInput,"Placeholder"),this.__applyTextToControl("passwordInputPlaceholder",texts.passwordInputPlaceholder,this.__passwordInput,"Placeholder"),this.__applyTextToControl("userComboboxPlaceholder",texts.userComboboxPlaceholder,this.__userCombobox,"ComboboxText")}}})();export{SwitchUserPopup};