403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/ilovecveti.ru/bitrix/js/ui/mail/sender-editor/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/ilovecveti.ru/bitrix/js/ui/mail/sender-editor/dist/sender-editor.bundle.js.map
{"version":3,"file":"sender-editor.bundle.js","sources":["../src/smtp-editor.js","../src/alias-editor.js"],"sourcesContent":["import { Loc, Tag, Dom, ready, ajax, Type, Event } from 'main.core';\nimport { Layout } from 'ui.sidepanel.layout';\nimport { LayoutForm } from 'ui.layout-form';\nimport './css/style.css';\nimport 'ui.hint';\nimport 'ui.alerts';\nimport { SaveButton } from \"ui.buttons\";\nimport { AliasEditor } from './alias-editor';\n\ntype SenderData = {\n\tname: string,\n\tisPublic: boolean;\n\temail: string,\n\tserver: string,\n\tport: number,\n\tprotocol: string,\n\tlogin: string,\n\tlimit: null | number,\n};\n\ntype Options = {\n\tsenderId?: number,\n\tsetSenderCallback?: Function,\n\taddSenderCallback?: Function,\n\tonClose?: Function,\n};\n\nconst SidePanel = BX.SidePanel;\nconst emailRegularEx = /\\S+@\\S+\\.\\S+/;\nconst deleteMessage = 'mail-mailbox-config-delete';\nconst senderType = 'sender';\n\nexport class SmtpEditor\n{\n\tconstructor(options: Options)\n\t{\n\t\tif (options)\n\t\t{\n\t\t\tif (options.senderId && Type.isInteger(options.senderId) && options.senderId > 0)\n\t\t\t{\n\t\t\t\tthis.title = Loc.getMessage('UI_MAIL_SMTP_SLIDER_EDIT_TITLE');\n\t\t\t\tthis.senderId = options.senderId;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.title = Loc.getMessage('UI_MAIL_SMTP_SLIDER_ADD_TITLE');\n\t\t\t}\n\n\t\t\tthis.setSender = options.setSenderCallback ?? null;\n\t\t\tthis.addSender = options.addSenderCallback ?? null;\n\t\t}\n\t\tthis.onCloseAction = options.onClose ?? null;\n\n\t\tthis.#createContentContainer();\n\t\tthis.#prepareNecessaryFields();\n\t}\n\n\tstatic openSlider(options: Options): void {\n\t\tconst instance = new SmtpEditor(options);\n\t\tSidePanel.Instance.open('smtpSender', {\n\t\t\twidth: 760,\n\t\t\tcacheable: false,\n\t\t\tcontentCallback: () => {\n\t\t\t\treturn instance.getContentCallback();\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\tonLoad: () => {\n\t\t\t\t\tready(() => {\n\t\t\t\t\t\tnew LayoutForm({ container: instance.limitSection });\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tgetContentCallback(): Layout\n\t{\n\t\treturn Layout.createContent({\n\t\t\textensions: [\n\t\t\t\t'ui.mail.sender-editor',\n\t\t\t],\n\t\t\ttitle: this.title,\n\t\t\tdesign: {\n\t\t\t\tsection: false,\n\t\t\t\tmargin: false,\n\t\t\t},\n\t\t\tcontent: () => {\n\t\t\t\tif (this.senderId > 0)\n\t\t\t\t{\n\t\t\t\t\treturn this.loadSender(this.senderId);\n\t\t\t\t}\n\n\t\t\t\treturn ajax.runAction('main.api.mail.sender.getDefaultSenderName')\n\t\t\t\t\t.then((response) => {\n\t\t\t\t\t\tthis.#setUserName(response.data);\n\n\t\t\t\t\t\treturn this.getContentContainer();\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\treturn this.getContentContainer();\n\t\t\t\t\t})\n\t\t\t\t;\n\t\t\t},\n\t\t\tbuttons: ({ cancelButton, Button }) => {\n\t\t\t\tconst buttonArray = [];\n\t\t\t\tconst saveButton = new SaveButton({\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.#save(saveButton);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tbuttonArray.push(saveButton);\n\n\t\t\t\tif (this.senderId > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.disconnectButton = new Button({\n\t\t\t\t\t\ttext: Loc.getMessage('UI_MAIL_SMTP_SLIDER_DISCONNECT_BUTTON'),\n\t\t\t\t\t\tcolor: BX.UI.Button.Color.DANGER,\n\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\tthis.#showDisconnectDialog();\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tbuttonArray.push(this.disconnectButton);\n\t\t\t\t}\n\t\t\t\tbuttonArray.push(cancelButton);\n\n\t\t\t\treturn buttonArray;\n\t\t\t},\n\t\t});\n\t}\n\n\tloadSender(senderId: number): Promise\n\t{\n\t\treturn ajax.runAction(\n\t\t\t'main.api.mail.sender.getSenderData',\n\t\t\t{\n\t\t\t\tdata: { senderId },\n\t\t\t},\n\t\t).then((response) => {\n\t\t\tthis.#setFieldData(response.data);\n\n\t\t\treturn this.getContentContainer();\n\t\t}).catch(() => {\n\t\t\treturn this.getContentContainer();\n\t\t});\n\t}\n\n\t#setFieldData(senderData: SenderData): void\n\t{\n\t\tthis.nameField.value = senderData.name;\n\t\tthis.accessField.checked = senderData.isPublic;\n\t\tthis.emailField.value = senderData.email;\n\t\tthis.serverField.value = senderData.server;\n\t\tthis.portField.value = senderData.port;\n\t\tthis.loginField.value = senderData.login;\n\t\tif (senderData.protocol === 'smtps')\n\t\t{\n\t\t\tthis.sslField.checked = true;\n\t\t}\n\n\t\tif (Type.isNumber(senderData.limit) && senderData.limit > 0)\n\t\t{\n\t\t\tthis.senderLimitCheckbox.checked = true;\n\t\t\tthis.senderLimitField.value = senderData.limit;\n\t\t}\n\t}\n\n\t#showDisconnectDialog(): void\n\t{\n\t\ttop.BX.UI.Dialogs.MessageBox.show({\n\t\t\tmessage: Loc.getMessage('UI_MAIL_SMTP_SLIDER_DISCONNECT_MESSAGE'),\n\t\t\tmodal: true,\n\t\t\tbuttons: BX.UI.Dialogs.MessageBoxButtons.OK_CANCEL,\n\t\t\tonOk: (messageBox) => {\n\t\t\t\tthis.#disconnect();\n\t\t\t\tmessageBox.close();\n\t\t\t},\n\t\t\tonCancel: (messageBox) => {\n\t\t\t\tmessageBox.close();\n\t\t\t},\n\t\t});\n\t}\n\n\t#save(button: SaveButton): void\n\t{\n\t\tthis.#clearInvalidFields();\n\t\tif (this.#hasInvalidFields())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tthis.#hideAlertNode();\n\t\tbutton.setClocking();\n\t\tthis.#saveSender()\n\t\t\t.then((response) => {\n\t\t\t\tconst data = response.data;\n\t\t\t\tif (this.setSender)\n\t\t\t\t{\n\t\t\t\t\tthis.setSender(data.senderId, data.name, this.email);\n\t\t\t\t}\n\n\t\t\t\tif (this.addSender)\n\t\t\t\t{\n\t\t\t\t\tconst mailbox = [];\n\t\t\t\t\tmailbox.name = data.name;\n\t\t\t\t\tmailbox.email = this.email;\n\t\t\t\t\tthis.addSender(mailbox);\n\t\t\t\t}\n\n\t\t\t\tBX.SidePanel.Instance.getTopSlider().close();\n\t\t\t\tif (!this.senderId && !this.addSender)\n\t\t\t\t{\n\t\t\t\t\tAliasEditor.openSlider({\n\t\t\t\t\t\tsenderId: data.senderId,\n\t\t\t\t\t\temail: this.email,\n\t\t\t\t\t\tsetSenderCallback: this.setSender,\n\t\t\t\t\t\tonClose: this.onCloseAction,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((response) => {\n\t\t\t\tthis.#showAlertNode(response.errors[0].message);\n\t\t\t\tbutton.setClocking(false);\n\t\t\t})\n\t\t;\n\t}\n\n\t#disconnect(): void\n\t{\n\t\tDom.addClass(this.disconnectButton, 'ui-btn-wait');\n\t\tajax.runAction(\n\t\t\t'main.api.mail.sender.deleteSender',\n\t\t\t{\n\t\t\t\tdata: {\n\t\t\t\t\tsenderId: this.senderId,\n\t\t\t\t},\n\t\t\t},\n\t\t).then(() => {\n\t\t\tDom.removeClass(this.disconnectButton, 'ui-btn-wait');\n\t\t\tSidePanel.Instance.getTopSlider().close();\n\t\t\ttop.BX.SidePanel.Instance.postMessage(\n\t\t\t\twindow,\n\t\t\t\tdeleteMessage,\n\t\t\t\t{\n\t\t\t\t\tid: this.senderId,\n\t\t\t\t\ttype: senderType,\n\t\t\t\t},\n\t\t\t);\n\t\t}).catch(() => {\n\t\t\tDom.removeClass(this.disconnectButton, 'ui-btn-wait');\n\t\t});\n\t}\n\n\t#saveSender(): Promise\n\t{\n\t\tthis.email = this.emailField.value;\n\n\t\tconst data = {\n\t\t\tid: this.senderId ?? null,\n\t\t\tname: this.nameField.value,\n\t\t\temail: this.email,\n\t\t\tsmtp: {},\n\t\t\tpublic: this.accessField.checked ? 'Y' : 'N',\n\t\t};\n\n\t\tdata.smtp = {\n\t\t\tserver: this.serverField.value,\n\t\t\tport: this.portField.value,\n\t\t\tssl: this.sslField.checked ? this.sslField.value : '',\n\t\t\tlogin: this.loginField.value,\n\t\t\tpassword: this.passwordField.value,\n\t\t\tlimit: this.senderLimitCheckbox.checked ? this.senderLimitField.value : null,\n\t\t};\n\n\t\treturn ajax.runAction('main.api.mail.sender.submitSender', {\n\t\t\tdata: { data },\n\t\t}).then((response) => {\n\t\t\treturn response;\n\t\t});\n\t}\n\n\t#createContentContainer(): void\n\t{\n\t\tthis.#createAlertNode();\n\t\tthis.#createSenderSection();\n\t\tthis.#createSmtpServerSection();\n\t\tthis.#createLimitSection();\n\n\t\tthis.contentContainer = Tag.render`\n\t\t\t<div class=\"ui-form\">\n\t\t\t\t${this.alertNode}\n\t\t\t\t${this.senderSection}\n\t\t\t\t${this.smtpServerSection}\n\t\t\t\t${this.limitSection}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetContentContainer(): HTMLElement\n\t{\n\t\treturn this.contentContainer;\n\t}\n\n\t#createAlertNode(): void\n\t{\n\t\tthis.alertNode = Tag.render`\n\t\t\t<div class=\"ui-alert ui-alert-danger ui-alert-icon-warning\" style=\"display: none\">\n\t\t\t\t<span class=\"ui-alert-message\"></span>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#createSenderSection(): void\n\t{\n\t\tconst { root, nameField, accessField } = Tag.render`\n\t\t\t<div class=\"ui-slider-section\">\n\t\t\t\t<div class=\"ui-slider-content-box\">\n\t\t\t\t\t<div class=\"ui-slider-heading-4\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_SENDER_MAIN_SECTION_TITLE')}</div>\n\t\t\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t\t\t<div class=\"ui-ctl-top smtp-sender-name\">\n\t\t\t\t\t\t\t<div class=\"ui-form-label\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_SENDER_NAME')}</div>\n\t\t\t\t\t\t\t<span data-hint=\"${Loc.getMessage('UI_MAIL_SMTP_SLIDER_NAME_HINT')}\"></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"ui-form-row-inline ui-ctl-w100\">\n\t\t\t\t\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-w100\">\n\t\t\t\t\t\t\t\t\t<input type=\"text\" data-name=\"name\" value=\"\" class=\"ui-ctl-element\" ref=\"nameField\">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t\t\t\t\t<label class=\"ui-ctl ui-ctl-checkbox\">\n\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" class=\"ui-ctl-element\" data-name=\"access\" ref=\"accessField\">\n\t\t\t\t\t\t\t\t\t<div class=\"ui-ctl-label-text\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_SENDER_AVAILABLE_TOGGLE')}</div>\n\t\t\t\t\t\t\t\t\t<span data-hint=\"${Loc.getMessage('UI_MAIL_SMTP_SLIDER_SENDER_AVAILABLE_TOGGLE_HINT')}\"></span>\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t\tthis.senderSection = root;\n\t\tthis.nameField = nameField;\n\t\tthis.accessField = accessField;\n\n\t\tthis.hintInstence = top.BX.UI.Hint?.createInstance();\n\t\tthis.hintInstence.init(this.senderSection);\n\t}\n\n\t#createSmtpServerSection(): void\n\t{\n\t\tthis.#createSmtpEmailRow();\n\t\tthis.#createSmtpServerRow();\n\t\tthis.#createSmtpPortAndSafeConnectionRow();\n\t\tthis.#createSmtpLoginRow();\n\t\tthis.#createSmtpPasswordRow();\n\n\t\tthis.smtpServerSection = Tag.render`\n\t\t\t<div class=\"ui-slider-section\">\n\t\t\t\t<div class=\"ui-slider-content-box\">\n\t\t\t\t\t<div class=\"ui-slider-heading-4\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_SMTP_SECTION_TITLE')}</div>\n\t\t\t\t\t${this.smtpEmailRow}\n\t\t\t\t\t${this.smtpServerRow}\n\t\t\t\t\t${this.smtpPortAndSafeConnectionRow}\n\t\t\t\t\t${this.smtpLoginRow}\n\t\t\t\t\t${this.smtpPasswordRow}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#createSmtpEmailRow(): void\n\t{\n\t\tconst { root, emailField } = Tag.render`\n\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t<div class=\"ui-ctl-top\">\n\t\t\t\t\t<div class=\"ui-form-label\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_EMAIL')}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-w100\">\n\t\t\t\t\t<input type=\"email\" name=\"email\" class=\"ui-ctl-element\" data-name=\"email\" placeholder=\"info@example.com\" ref=\"emailField\">\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tthis.smtpEmailRow = root;\n\t\tthis.emailField = emailField;\n\t}\n\n\t#createSmtpServerRow(): void\n\t{\n\t\tconst { root, serverField } = Tag.render`\n\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t<div class=\"ui-ctl-top\">\n\t\t\t\t\t<div class=\"ui-form-label\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_SERVER')}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-w100\">\n\t\t\t\t\t<input type=\"text\" name=\"server\" class=\"ui-ctl-element\" data-name=\"server\" placeholder=\"smtp.example.com\" ref=\"serverField\">\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tthis.smtpServerRow = root;\n\t\tthis.serverField = serverField;\n\t}\n\n\t#createSmtpPortAndSafeConnectionRow(): void\n\t{\n\t\tconst { root, portField, sslField } = Tag.render`\n\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t<div class=\"ui-ctl-top\">\n\t\t\t\t\t<div class=\"ui-form-label\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_PORT')}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui-form-row-inline\" style=\"margin-bottom: 0\">\n\t\t\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-w100\">\n\t\t\t\t\t\t<input type=\"text\" \n\t\t\t\t\t\t\tclass=\"ui-ctl-element\" \n\t\t\t\t\t\t\tdata-name=\"port\" \n\t\t\t\t\t\t\tplaceholder=\"555\"\n\t\t\t\t\t\t\tref=\"portField\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t\t\t<label class=\"ui-ctl ui-ctl-checkbox\">\n\t\t\t\t\t\t\t<input type=\"checkbox\" class=\"ui-ctl-element\" value=\"Y\" data-name=\"ssl\" ref=\"sslField\">\n\t\t\t\t\t\t\t<div class=\"ui-ctl-label-text\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_SSL')}</div>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tthis.smtpPortAndSafeConnectionRow = root;\n\t\tthis.portField = portField;\n\t\tthis.sslField = sslField;\n\t}\n\n\t#createSmtpLoginRow(): void\n\t{\n\t\tconst { root, loginField } = Tag.render`\n\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t<div class=\"ui-ctl-top\">\n\t\t\t\t\t<div class=\"ui-form-label\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_LOGIN')}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-w100\">\n\t\t\t\t\t<input type=\"text\" class=\"ui-ctl-element\" data-name=\"login\" ref=\"loginField\">\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tthis.smtpLoginRow = root;\n\t\tthis.loginField = loginField;\n\t\tEvent.bind(this.emailField, 'input', () => {\n\t\t\tthis.loginField.value = this.emailField.value;\n\t\t});\n\t}\n\n\t#createSmtpPasswordRow(): void\n\t{\n\t\tconst { root, passwordField } = Tag.render`\n\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t<div class=\"ui-ctl-top\">\n\t\t\t\t\t<div class=\"ui-form-label\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_PASSWORD')}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-w100\">\n\t\t\t\t\t<input type=\"password\" class=\"ui-ctl-element\" data-name=\"password\" ref=\"passwordField\">\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tthis.smtpPasswordRow = root;\n\t\tthis.passwordField = passwordField;\n\t}\n\n\t#createLimitSection(): void\n\t{\n\t\tconst { root, senderLimitCheckbox, senderLimitField } = Tag.render`\n\t\t\t<div class=\"ui-slider-section\">\n\t\t\t\t<div class=\"ui-slider-content-box\">\n\t\t\t\t\t<div class=\"ui-slider-heading-4\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_SENDER_LIMIT_SECTION_TITLE')}</div>\n\t\t\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t\t\t<div class=\"ui-form-label\" data-form-row-hidden=\"\">\n\t\t\t\t\t\t\t<label class=\"ui-ctl ui-ctl-checkbox smtp-editor-limit-checkbox\">\n\t\t\t\t\t\t\t\t<input type=\"checkbox\" class=\"ui-ctl-element\" data-name=\"hasLimit\" ref=\"senderLimitCheckbox\">\n\t\t\t\t\t\t\t\t<div class=\"ui-ctl-label-text\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_SENDER_LIMIT_SETTINGS')}</div>\n\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"ui-form-row-hidden\">\n\t\t\t\t\t\t\t<div class=\"ui-form-row\">\n\t\t\t\t\t\t\t\t<div class=\"ui-ctl-top\">\n\t\t\t\t\t\t\t\t\t<div class=\"ui-form-label\">${Loc.getMessage('UI_MAIL_SMTP_SLIDER_SENDER_LIMIT_TITLE')}</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-w25\">\n\t\t\t\t\t\t\t\t\t<input type=\"number\" class=\"ui-ctl-element\" data-name=\"limit\" value=\"250\" min=\"0\" ref=\"senderLimitField\">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tthis.limitSection = root;\n\t\tthis.senderLimitCheckbox = senderLimitCheckbox;\n\t\tthis.senderLimitField = senderLimitField;\n\t}\n\n\t#showAlertNode(message: string = null): void\n\t{\n\t\tif (message)\n\t\t{\n\t\t\tconst spanNode = this.alertNode.querySelector('span');\n\t\t\tspanNode.textContent = message;\n\t\t}\n\n\t\tDom.style(this.alertNode, 'display', 'block');\n\t}\n\n\t#hideAlertNode(): void\n\t{\n\t\tDom.style(this.alertNode, 'display', 'none');\n\t}\n\n\t#prepareNecessaryFields(): void\n\t{\n\t\tthis.requiredFields = [\n\t\t\t{ row: this.smtpEmailRow, input: this.emailField, type: 'email' },\n\t\t\t{ row: this.smtpServerRow, input: this.serverField, type: 'server' },\n\t\t\t{ row: this.smtpPortAndSafeConnectionRow, input: this.portField, type: 'port' },\n\t\t\t{ row: this.smtpLoginRow, input: this.loginField, type: 'login' },\n\t\t];\n\n\t\tif (!this.senderId)\n\t\t{\n\t\t\tthis.requiredFields.push({\n\t\t\t\trow: this.smtpPasswordRow,\n\t\t\t\tinput: this.passwordField,\n\t\t\t\ttype: 'pass',\n\t\t\t});\n\t\t}\n\t}\n\n\t#hasInvalidFields(): boolean\n\t{\n\t\tlet count = 0;\n\t\tthis.requiredFields.forEach((field) => {\n\t\t\tif (!this.#isInvalidField(field.type, field.input.value))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcount++;\n\t\t\tDom.addClass(field.row, 'ui-ctl-warning');\n\t\t\tconst errorMessage = this.#getErrorMessage(field.type, field.input.value);\n\t\t\tconst invalidField = Tag.render`\n\t\t\t\t<div class=\"ui-mail-field-error-message ui-ctl-bottom\">${errorMessage}</div>\n\t\t\t`;\n\t\t\tDom.append(invalidField, field.row);\n\n\t\t\tif (this.topEmptyNode)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.topEmptyNode = field.row;\n\t\t\tthis.topEmptyNode.scrollIntoView();\n\t\t});\n\n\t\treturn count > 0;\n\t}\n\n\t#clearInvalidFields(): void\n\t{\n\t\tif (!this.requiredFields)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.requiredFields.forEach((field) => {\n\t\t\tDom.removeClass(field.row, 'ui-ctl-warning');\n\t\t\tconst errorMessageFiled = field.row.querySelector('.ui-mail-field-error-message');\n\t\t\tif (Type.isDomNode(errorMessageFiled))\n\t\t\t{\n\t\t\t\tDom.remove(errorMessageFiled);\n\t\t\t}\n\t\t});\n\t\tthis.topEmptyNode = null;\n\t\tthis.invalidFieldNode?.remove();\n\t}\n\n\t#isInvalidField(type: string, input: string | number): boolean\n\t{\n\t\tif (input.length === 0)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tif (type === 'port'\n\t\t\t&& (\n\t\t\t\t!Number.isInteger(Number(input))\n\t\t\t\t|| input < 0\n\t\t\t\t|| input > 65535\n\t\t\t)\n\t\t)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\treturn type === 'email' && !emailRegularEx.test(input);\n\t}\n\n\t#getErrorMessage(type: string, input: string | number): string\n\t{\n\t\tswitch (type)\n\t\t{\n\t\t\tcase 'email':\n\t\t\t\tif (Type.isString(input) && input.length > 0)\n\t\t\t\t{\n\t\t\t\t\treturn Loc.getMessage('UI_MAIL_SMTP_SLIDER_INVALID_EMAIL');\n\t\t\t\t}\n\n\t\t\t\treturn Loc.getMessage('UI_MAIL_SMTP_SLIDER_EMPTY_EMAIL');\n\t\t\tcase 'server':\n\t\t\t\treturn Loc.getMessage('UI_MAIL_SMTP_SLIDER_EMPTY_SERVER');\n\t\t\tcase 'port':\n\t\t\t\treturn Loc.getMessage('UI_MAIL_SMTP_SLIDER_INVALID_PORT');\n\t\t\tcase 'login':\n\t\t\t\treturn Loc.getMessage('UI_MAIL_SMTP_SLIDER_EMPTY_LOGIN');\n\t\t\tdefault:\n\t\t\t\treturn Loc.getMessage('UI_MAIL_SMTP_SLIDER_EMPTY_PASSWORD');\n\t\t}\n\t}\n\n\t#setUserName(name: string)\n\t{\n\t\tthis.nameField.value = name;\n\t}\n}\n","import { Layout } from 'ui.sidepanel.layout';\nimport { ajax, Dom, Event, Loc, Tag, Text } from 'main.core';\nimport { SmtpEditor } from './smtp-editor';\nimport { Button } from 'ui.buttons';\nimport './css/style.css';\nimport 'ui.forms';\nimport 'ui.layout-form';\nimport 'ui.sidepanel-content';\nimport 'ui.entity-selector';\nimport 'ui.icon-set.actions';\nimport 'ui.icon-set.main';\n\ntype Sender = {\n\tid: number,\n\tname: string,\n\tuserId: number | null,\n\tisOwner: boolean,\n\ttype: string,\n\tmailboxId: number | null,\n\tcanEdit: boolean,\n\teditHref: string | null,\n\tavatar: string | null,\n\tuserUrl: string | null,\n}\n\ntype Options = {\n\tsenderId: number,\n\temail: string,\n\tsetSenderCallback?: Function,\n\tupdateSenderList?: () => void,\n}\n\nconst mailboxType = 'mailbox';\nconst senderType = 'sender';\nconst mailboxSenderType = 'mailboxSender';\nconst aliasType = 'alias';\nconst successSubmitMessage = 'mail-mailbox-config-success';\nconst deleteMessage = 'mail-mailbox-config-delete';\nconst aliasSliderUrl = 'mailAliasSlider';\n\nexport class AliasEditor\n{\n\twasSenderUpdated: boolean = false;\n\taliasCounter: number = 0;\n\t#senderNameNodes: Map = new Map();\n\tconstructor(options: Options)\n\t{\n\t\tthis.senderId = Number(options.senderId);\n\t\tthis.email = options.email;\n\t\tthis.setSender = options.setSenderCallback;\n\t\tthis.updateSenderList = options.updateSenderList;\n\t\tthis.#createContentContainer();\n\t\tthis.#createToolbarButtons();\n\t}\n\n\tstatic openSlider(options: Options): void\n\t{\n\t\tconst instance = new AliasEditor(options);\n\t\tconst onSliderMessage = function(event) {\n\t\t\tconst [sliderEvent] = event.getData();\n\t\t\tif (!sliderEvent)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst eventMessage = sliderEvent.getEventId();\n\t\t\tconst data = sliderEvent.getData();\n\t\t\tconst mailboxId = Number(sliderEvent.data.id);\n\t\t\tconst slider = BX.SidePanel.Instance.getSlider(aliasSliderUrl);\n\t\t\tif (eventMessage === successSubmitMessage)\n\t\t\t{\n\t\t\t\tinstance.wasSenderUpdated = true;\n\t\t\t\tinstance.updateMainSenderName(mailboxId);\n\n\t\t\t\tif (slider)\n\t\t\t\t{\n\t\t\t\t\tslider.close();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (eventMessage === deleteMessage)\n\t\t\t{\n\t\t\t\tinstance.wasSenderUpdated = true;\n\t\t\t\tif (instance.id === Number(mailboxId))\n\t\t\t\t{\n\t\t\t\t\tinstance.setSender();\n\t\t\t\t}\n\n\t\t\t\tif (slider)\n\t\t\t\t{\n\t\t\t\t\tslider.close();\n\t\t\t\t}\n\n\t\t\t\tif (data && data.type !== senderType)\n\t\t\t\t{\n\t\t\t\t\tBX.SidePanel.Instance.postMessage(window, sliderEvent.getEventId(), sliderEvent.getData);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tBX.SidePanel.Instance.open(aliasSliderUrl, {\n\t\t\twidth: 800,\n\t\t\tcacheable: false,\n\t\t\tcontentCallback: () => {\n\t\t\t\treturn Layout.createContent({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t'ui.mail.sender-editor',\n\t\t\t\t\t],\n\t\t\t\t\ttitle: options.email,\n\t\t\t\t\tdesign: {\n\t\t\t\t\t\tsection: false,\n\t\t\t\t\t\tmargin: false,\n\t\t\t\t\t},\n\t\t\t\t\tcontent(): Promise\n\t\t\t\t\t{\n\t\t\t\t\t\treturn instance.loadSliderContent();\n\t\t\t\t\t},\n\t\t\t\t\ttoolbar(): Array\n\t\t\t\t\t{\n\t\t\t\t\t\treturn instance.getToolbarButtons();\n\t\t\t\t\t},\n\t\t\t\t\tbuttons: () => {},\n\t\t\t\t});\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\tonClose: () => {\n\t\t\t\t\ttop.BX.Event.EventEmitter.unsubscribe('SidePanel.Slider:onMessage', onSliderMessage);\n\t\t\t\t\tif (instance.updateSenderList && instance.wasSenderUpdated)\n\t\t\t\t\t{\n\t\t\t\t\t\tinstance.updateSenderList();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\ttop.BX.Event.EventEmitter.subscribe('SidePanel.Slider:onMessage', onSliderMessage);\n\t}\n\n\tgetContentContainer(): HTMLElement\n\t{\n\t\treturn this.contentContainer;\n\t}\n\n\tgetToolbarButtons(): Array\n\t{\n\t\tconst buttons = [];\n\n\t\tif (this.settingsButton)\n\t\t{\n\t\t\tbuttons.push(this.settingsButton);\n\t\t}\n\n\t\treturn buttons;\n\t}\n\n\tloadSliderContent(): Promise\n\t{\n\t\treturn BX.ajax.runAction(\n\t\t\t'main.api.mail.sender.getSenderTransitionalData',\n\t\t\t{\n\t\t\t\tdata: { senderId: this.senderId },\n\t\t\t},\n\t\t).then((response) => {\n\t\t\tconst data = response.data;\n\t\t\tconst senders = data.senders ?? null;\n\t\t\tthis.id = Number(data.id);\n\t\t\tthis.email = data.email;\n\t\t\tthis.#addSenders(senders);\n\n\t\t\tconst type = data.type || null;\n\t\t\tswitch (type)\n\t\t\t{\n\t\t\t\tcase mailboxType:\n\t\t\t\t\tthis.settingsButton.bindEvent('click', () => {\n\t\t\t\t\t\tthis.#openMailboxSettings(data.href);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase senderType:\n\t\t\t\t\tthis.settingsButton.bindEvent('click', () => {\n\t\t\t\t\t\tthis.#openSmtpSettings(data.id);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.settingsButton.setDisabled();\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn this.getContentContainer();\n\t\t}).catch(() => {\n\t\t\tthis.settingsButton.setDisabled();\n\n\t\t\treturn this.getContentContainer();\n\t\t});\n\t}\n\n\t#createContentContainer(): void\n\t{\n\t\tthis.senderList = Tag.render`\n\t\t\t<div class=\"mail-sender-list\"></div>\n\t\t`;\n\n\t\tthis.#createAddSenderContainer();\n\n\t\tthis.contentContainer = Tag.render`\n\t\t\t<div class=\"ui-form\">\n\t\t\t\t<div class=\"ui-slider-section\">\n\t\t\t\t\t<div class=\"ui-slider-content-box\" style=\"margin-bottom: 0\">\n\t\t\t\t\t\t<div class=\"ui-slider-heading-4 sender-list-header\">${Text.encode(Loc.getMessage('UI_MAIL_ALIAS_SLIDER_EMAIL_TITLE'))}</div>\n\t\t\t\t\t\t${this.senderList}\n\t\t\t\t\t\t${this.addSenderContainer}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#createAddSenderContainer(): void\n\t{\n\t\tthis.senderInput = Tag.render`\n\t\t\t<input type=\"text\" class=\"ui-ctl-element\" data-name=\"aliasName\" placeholder=\"${Text.encode(Loc.getMessage('UI_MAIL_ALIAS_SLIDER_ADD_INPUT_PLACEHOLDER'))}\">\n\t\t`;\n\t\tthis.senderInputContainer = Tag.render`\n\t\t\t<div class=\"add-sender-input-container\" hidden>\n\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-default-light ui-ctl-sm ui-ctl-w100\">\n\t\t\t\t\t${this.senderInput}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tDom.append(\n\t\t\tthis.#renderSubmitButton(\n\t\t\t\t() => {\n\t\t\t\t\treturn this.#addAliasPromise();\n\t\t\t\t},\n\t\t\t\tthis.senderInput,\n\t\t\t),\n\t\t\tthis.senderInputContainer,\n\t\t);\n\t\tDom.append(\n\t\t\tthis.#renderCancelButton(() => {\n\t\t\t\tDom.hide(this.senderInputContainer);\n\t\t\t\tDom.show(this.senderAddButton);\n\t\t\t\tthis.senderInput.value = null;\n\t\t\t}),\n\t\t\tthis.senderInputContainer,\n\t\t);\n\n\t\tthis.senderAddButton = Tag.render`\n\t\t\t<div class=\"add-sender-button\">${Text.encode(Loc.getMessage('UI_MAIL_ALIAS_SLIDER_ADD_BUTTON'))}</div>\n\t\t`;\n\t\tEvent.bind(this.senderAddButton, 'click', () => {\n\t\t\tDom.hide(this.senderAddButton);\n\t\t\tDom.show(this.senderInputContainer);\n\t\t\tthis.senderInput.focus();\n\t\t});\n\n\t\tthis.addSenderContainer = Tag.render`\n\t\t\t<div class=\"add-sender-container\">\n\t\t\t\t${this.senderInputContainer}\n\t\t\t\t${this.senderAddButton}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#addAliasPromise(): Promise\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tconst hideInputContainer = () => {\n\t\t\t\tDom.hide(this.senderInputContainer);\n\t\t\t\tDom.show(this.senderAddButton);\n\t\t\t\tthis.senderInput.value = null;\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tif (this.senderInput.value.trim().length === 0)\n\t\t\t{\n\t\t\t\thideInputContainer();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.#hasNameInvalidCharacters(this.senderInput.value.trim()))\n\t\t\t{\n\t\t\t\tresolve();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst name = this.senderInput.value;\n\t\t\tajax.runAction(\n\t\t\t\t'main.api.mail.sender.addAlias',\n\t\t\t\t{\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tname,\n\t\t\t\t\t\temail: this.email,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t).then((response) => {\n\t\t\t\tconst data = response.data;\n\t\t\t\tconst newSenderId = data.senderId;\n\t\t\t\tif (this.setSender && data.senderId)\n\t\t\t\t{\n\t\t\t\t\tthis.setSender(data.senderId, name, this.email);\n\t\t\t\t}\n\t\t\t\tthis.wasSenderUpdated = true;\n\t\t\t\tthis.senderId = newSenderId;\n\t\t\t\tconst senderNode = this.#renderSenderItem({\n\t\t\t\t\tid: newSenderId,\n\t\t\t\t\tname,\n\t\t\t\t\tisOwner: true,\n\t\t\t\t\ttype: aliasType,\n\t\t\t\t\tcanEdit: true,\n\t\t\t\t\tuserUrl: data.userUrl ?? null,\n\t\t\t\t\tavatar: data.avatar ?? null,\n\t\t\t\t});\n\t\t\t\tDom.append(senderNode, this.senderList);\n\t\t\t\tthis.aliasCounter++;\n\t\t\t\thideInputContainer();\n\t\t\t}).catch(() => {\n\t\t\t\thideInputContainer();\n\t\t\t});\n\t\t});\n\t}\n\n\t#createToolbarButtons(): void\n\t{\n\t\tthis.settingsButton = new Button({\n\t\t\ttext: Loc.getMessage('UI_MAIL_ALIAS_SLIDER_MAIL_SETTINGS_BUTTON'),\n\t\t\ticon: Button.Icon.SETTING,\n\t\t\tcolor: Button.Color.LIGHT_BORDER,\n\t\t});\n\t}\n\n\t#renderSenderItem(sender: Sender): HTMLElement\n\t{\n\t\tconst itemContainer = Tag.render`<div class=\"sender-list-item\"></div>`;\n\t\tconst {\n\t\t\troot: nameContainer,\n\t\t\ttextNode: nameTextContainer,\n\t\t} = this.#renderSenderNameContainer(sender.name);\n\t\tlet handleShowEditInput = null;\n\n\t\tif (sender.canEdit)\n\t\t{\n\t\t\tconst {\n\t\t\t\tnameEditContainer,\n\t\t\t\teditInput: nameEditInput,\n\t\t\t} = this.#renderSenderEditNode(sender, nameTextContainer);\n\t\t\tDom.append(nameEditContainer, nameContainer);\n\t\t\thandleShowEditInput = () => {\n\t\t\t\tnameEditInput.value = nameContainer.innerText;\n\t\t\t\tDom.hide(nameTextContainer);\n\t\t\t\tDom.show(nameEditContainer);\n\t\t\t\tnameEditInput.focus();\n\t\t\t};\n\n\t\t\tEvent.bind(nameTextContainer, 'click', handleShowEditInput);\n\t\t}\n\t\tDom.append(nameContainer, itemContainer);\n\t\tDom.append(this.#renderSenderExtraInfoContainer(sender), itemContainer);\n\t\tDom.append(this.#renderSenderAuthorContainer(sender, itemContainer), itemContainer);\n\t\tDom.append(this.#renderSenderEditContainer(sender, itemContainer, handleShowEditInput), itemContainer);\n\n\t\tif (this.#isMainSender(sender))\n\t\t{\n\t\t\tthis.mainSenderNameNode = nameContainer.querySelector('.sender-item-name-text-container');\n\t\t}\n\n\t\tthis.#senderNameNodes.set(sender.id, nameTextContainer);\n\n\t\treturn itemContainer;\n\t}\n\n\t#renderSenderNameContainer(senderName: string): { root: HTMLElement, textNode: HTMLElement}\n\t{\n\t\tconst { root, textNode } = Tag.render`\n\t\t\t<div class=\"sender-item-name-container\">\n\t\t\t\t<div class=\"sender-item-name-text-container\" ref=\"textNode\">\n\t\t\t\t\t${Text.encode(senderName)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\treturn { root, textNode };\n\t}\n\n\t#renderSenderEditNode(\n\t\tsender: Sender,\n\t\tnameTextContainer: HTMLElement,\n\t): {nameEditContainer: HTMLElement, editInput: HTMLElement}\n\t{\n\t\tconst textContainer = nameTextContainer;\n\t\tconst { root, editInput } = Tag.render`\n\t\t\t<div class=\"edit-sender-container-content\" ref=\"editContent\">\n\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-default-light ui-ctl-sm ui-ctl-w100\">\n\t\t\t\t\t<input type=\"text\" class=\"ui-ctl-element\" ref=\"editInput\" placeholder=\"${Loc.getMessage('UI_MAIL_ALIAS_SLIDER_ADD_INPUT_PLACEHOLDER')}\">\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tconst nameEditContainer = root;\n\n\t\tconst submitPromise = () => {\n\t\t\treturn new Promise((resolve) => {\n\t\t\t\tconst hideEditContainer = () => {\n\t\t\t\t\teditInput.value = nameTextContainer.innerText;\n\t\t\t\t\tDom.hide(nameEditContainer);\n\t\t\t\t\tDom.show(textContainer);\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tif (editInput.value.length === 0 || editInput.value === nameTextContainer.innerText)\n\t\t\t\t{\n\t\t\t\t\thideEditContainer();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (this.#hasNameInvalidCharacters(editInput.value))\n\t\t\t\t{\n\t\t\t\t\tresolve();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst senderNewName = editInput.value;\n\n\t\t\t\tajax.runAction(\n\t\t\t\t\t'main.api.mail.sender.updateSenderName',\n\t\t\t\t\t{\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tsenderId: sender.id,\n\t\t\t\t\t\t\tname: senderNewName,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t).then(() => {\n\t\t\t\t\ttextContainer.innerText = senderNewName;\n\t\t\t\t\tif (this.setSender)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.setSender(sender.id, senderNewName, this.email);\n\t\t\t\t\t}\n\t\t\t\t\tthis.wasSenderUpdated = true;\n\t\t\t\t\thideEditContainer();\n\t\t\t\t}).catch(() => {\n\t\t\t\t\thideEditContainer();\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\tDom.append(this.#renderSubmitButton(submitPromise, editInput), root);\n\n\t\tconst cancelHandler = () => {\n\t\t\tDom.hide(nameEditContainer);\n\t\t\tDom.show(textContainer);\n\t\t\teditInput.value = null;\n\t\t};\n\t\tDom.append(this.#renderCancelButton(cancelHandler), root);\n\t\tDom.hide(root);\n\n\t\treturn { nameEditContainer, editInput };\n\t}\n\n\t#renderSenderExtraInfoContainer(sender: Sender): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"sender-item-type-container\">${Text.encode(this.#getExtraInfoText(sender))}</div>\n\t\t`;\n\t}\n\n\t#getExtraInfoText(sender: Sender): string\n\t{\n\t\tif (this.#isMainSender(sender))\n\t\t{\n\t\t\treturn Loc.getMessage('UI_MAIL_ALIAS_EDITOR_CURRENT_SENDER_NAME');\n\t\t}\n\n\t\tif ([senderType, mailboxSenderType].includes(sender.type))\n\t\t{\n\t\t\treturn Loc.getMessage('UI_MAIL_ALIAS_EDITOR_ANOTHER_SENDER_NAME');\n\t\t}\n\n\t\tif (sender.type === aliasType && sender.isOwner)\n\t\t{\n\t\t\treturn Loc.getMessage('UI_MAIL_ALIAS_EDITOR_ADDITIONAL_SENDER_NAME');\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#renderSenderEditContainer(sender: Sender, senderNode: HTMLElement, handleShowInput: null | () => void): HTMLElement\n\t{\n\t\tconst senderEditContainer = Tag.render`\n\t\t\t<div class=\"sender-item-edit-container\"></div>\n\t\t`;\n\n\t\tif (!sender.canEdit && !sender.isOwner)\n\t\t{\n\t\t\treturn senderEditContainer;\n\t\t}\n\n\t\tconst senderNameEditButton = Tag.render`\n\t\t\t<div class=\"sender-item-btn ui-btn ui-btn-xs ui-icon-set --pencil-50\"></div>\n\t\t`;\n\t\tDom.append(senderNameEditButton, senderEditContainer);\n\n\t\tif (handleShowInput)\n\t\t{\n\t\t\tEvent.bind(senderNameEditButton, 'click', handleShowInput);\n\t\t}\n\n\t\tif (sender.type === aliasType)\n\t\t{\n\t\t\tDom.append(this.#renderDeleteButton(sender.id, senderNode), senderEditContainer);\n\n\t\t\treturn senderEditContainer;\n\t\t}\n\n\t\tDom.append(this.#renderSettingsButton(sender.type, sender.id, sender.editHref), senderEditContainer);\n\n\t\treturn senderEditContainer;\n\t}\n\n\t#renderSenderAuthorContainer(sender: Sender, senderNode: HTMLElement): HTMLElement\n\t{\n\t\tconst authorEditContainer = Tag.render`\n\t\t\t<div class=\"sender-item-author-container\"></div>\n\t\t`;\n\n\t\tif (sender.userUrl)\n\t\t{\n\t\t\tDom.append(this.#renderUserInfoNode(sender.userUrl, sender.avatar ?? null), authorEditContainer);\n\t\t}\n\n\t\treturn authorEditContainer;\n\t}\n\n\t#renderUserInfoNode(userUrl: string, avatar: string | null): HTMLElement\n\t{\n\t\tconst { root, userAvatarContainer } = Tag.render`\n\t\t\t<div class=\"sender-item-owner-info\">\n\t\t\t\t${Loc.getMessage('UI_MAIL_ALIAS_EDITOR_ANOTHER_USER_SENDER_NAME')}\n\t\t\t\t<a href=\"${Text.encode(userUrl)}\" class=\"ui-icon ui-icon-common-user sender-item-owner-avatar\" ref=\"userAvatarContainer\"></a> \n\t\t\t</div>\n\t\t`;\n\t\tlet avatarIcon = '';\n\t\tif (avatar)\n\t\t{\n\t\t\tavatarIcon = Tag.render`<i style=\"background-image: url('${Text.encode(avatar)}')\"></i>`;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tavatarIcon = Tag.render`<div class=\"sender-item-owner-avatar-icon ui-icon-set --person\"></div>`;\n\t\t}\n\t\tDom.append(avatarIcon, userAvatarContainer);\n\n\t\treturn root;\n\t}\n\n\t#renderDeleteButton(senderId: number, senderNode: HTMLElement): HTMLElement\n\t{\n\t\tconst deleteButton = Tag.render`\n\t\t\t<div class=\"sender-item-btn ui-btn ui-btn-xs ui-icon-set --trash-bin\" style=\"margin: 0\"></div>\n\t\t`;\n\n\t\tEvent.bind(deleteButton, 'click', () => {\n\t\t\tDom.removeClass(deleteButton, ['ui-icon-set', '--trash-bin']);\n\t\t\tDom.addClass(deleteButton, ['ui-btn-light', 'ui ui-btn-wait']);\n\t\t\tajax.runAction(\n\t\t\t\t'main.api.mail.sender.deleteSender',\n\t\t\t\t{\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tsenderId,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t).then(() => {\n\t\t\t\tsenderNode.remove();\n\t\t\t\tthis.wasSenderUpdated = true;\n\t\t\t\tif (Number(senderId) === this.senderId)\n\t\t\t\t{\n\t\t\t\t\tthis.setSender();\n\t\t\t\t}\n\t\t\t\tthis.#senderNameNodes.delete(senderId);\n\t\t\t\tthis.aliasCounter--;\n\t\t\t\tthis.#checkAliasCounter();\n\t\t\t}).catch(() => {\n\t\t\t\tDom.removeClass(deleteButton, 'ui-btn-wait');\n\t\t\t});\n\t\t});\n\n\t\treturn deleteButton;\n\t}\n\n\t#renderSettingsButton(type: string, senderId: number | string, editHref: string | null): HTMLElement\n\t{\n\t\tconst editButton = Tag.render`\n\t\t\t<div class=\"sender-item-btn ui-btn ui-btn-xs ui-icon-set --settings-1\" style=\"margin: 0\"></div>\n\t\t`;\n\n\t\tif (type === mailboxSenderType)\n\t\t{\n\t\t\tEvent.bind(editButton, 'click', () => {\n\t\t\t\tthis.#openMailboxSettings(editHref);\n\t\t\t});\n\n\t\t\treturn editButton;\n\t\t}\n\n\t\tEvent.bind(editButton, 'click', () => {\n\t\t\tthis.#openSmtpSettings(senderId);\n\t\t});\n\n\t\treturn editButton;\n\t}\n\n\t#renderSubmitButton(submitPromise: Promise, targetElement: HTMLInputElement): HTMLElement\n\t{\n\t\tconst submitButton = Tag.render`\n\t\t\t<div class=\"ui-btn ui-btn-xs ui-btn-primary ui-btn-icon-done\" style=\"margin: 0\"></div>\n\t\t`;\n\t\tEvent.bind(submitButton, 'click', () => {\n\t\t\tDom.addClass(submitButton, 'ui ui-btn-wait');\n\t\t\tsubmitPromise()\n\t\t\t\t.then(() => {\n\t\t\t\t\tDom.removeClass(submitButton, 'ui-btn-wait');\n\t\t\t\t})\n\t\t\t\t.catch(() => {})\n\t\t\t;\n\t\t});\n\t\tEvent.bind(targetElement, 'keypress', (event: KeyboardEvent) => {\n\t\t\tif (event.key === 'Enter')\n\t\t\t{\n\t\t\t\tsubmitButton.click();\n\t\t\t}\n\t\t});\n\n\t\treturn submitButton;\n\t}\n\n\t#renderCancelButton(cancelHandler: () => void): HTMLElement\n\t{\n\t\tconst cancelButton = Tag.render`\n\t\t\t<div class=\"sender-item-btn ui-btn ui-btn-xs ui-icon-set --cross-45\" style=\"margin: 0\"></div>\n\t\t`;\n\n\t\tEvent.bind(cancelButton, 'click', cancelHandler);\n\n\t\treturn cancelButton;\n\t}\n\n\t#addSenders(senders: Sender[] | null): void\n\t{\n\t\tif (!senders)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tsenders.sort((a, b) => a.id - b.id);\n\t\tsenders.forEach((sender: Sender) => {\n\t\t\tif (!this.id)\n\t\t\t{\n\t\t\t\tif (sender.type === senderType)\n\t\t\t\t{\n\t\t\t\t\tthis.id = sender.id;\n\t\t\t\t}\n\n\t\t\t\tif (sender.type === mailboxSenderType)\n\t\t\t\t{\n\t\t\t\t\tthis.id = sender.mailboxId;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst senderNode = this.#renderSenderItem(sender);\n\t\t\tif (this.#isMainSender(sender))\n\t\t\t{\n\t\t\t\tDom.prepend(senderNode, this.senderList);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.append(senderNode, this.senderList);\n\t\t\t}\n\t\t\tthis.aliasCounter++;\n\t\t});\n\t}\n\n\t#openSmtpSettings(senderId: number | string): void\n\t{\n\t\tSmtpEditor.openSlider({\n\t\t\tsenderId: Number(senderId),\n\t\t\tsetSenderCallback: (id: number | string, name: string, email: string) => {\n\t\t\t\tif (this.#senderNameNodes.has(id))\n\t\t\t\t{\n\t\t\t\t\tthis.#senderNameNodes.get(id).innerText = name;\n\t\t\t\t}\n\t\t\t\tthis.setSender(id, name, email);\n\t\t\t\tthis.wasSenderUpdated = true;\n\t\t\t},\n\t\t});\n\t}\n\n\t#openMailboxSettings(href: string): void\n\t{\n\t\tBX.SidePanel.Instance.open(href);\n\t}\n\n\t#hasNameInvalidCharacters(name: string): boolean\n\t{\n\t\t// regex checks for characters other than letters of the alphabet, numbers, spaces\n\t\t// and special characters (\"-\", \".\", \"'\", \"(\", \")\", \",\")\n\t\tconst regexForInvalidCharacters = /[^\\p{L}\\p{N}\\p{Zs}\\-.'(),]+/ug;\n\n\t\tif (regexForInvalidCharacters.test(name))\n\t\t{\n\t\t\ttop.BX.UI.Notification.Center.notify({\n\t\t\t\tcontent: Text.encode(Loc.getMessage('UI_MAIL_ALIAS_EDITOR_INVALID_SYMBOLS_NOTIFICATION')),\n\t\t\t});\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tupdateMainSenderName(mailboxId: number): void\n\t{\n\t\treturn BX.ajax.runAction(\n\t\t\t'main.api.mail.sender.getSenderByMailboxId',\n\t\t\t{\n\t\t\t\tdata: { mailboxId },\n\t\t\t},\n\t\t)\n\t\t\t.then((response) => {\n\t\t\t\tconst name = response.data?.name;\n\t\t\t\tif (!name || !this.mainSenderNameNode)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.mainSenderNameNode.innerText = name;\n\t\t\t})\n\t\t\t.catch(() => {})\n\t\t;\n\t}\n\n\t#checkAliasCounter(): void\n\t{\n\t\tif (this.aliasCounter === 0)\n\t\t{\n\t\t\tconst slider = BX.SidePanel.Instance.getSlider(aliasSliderUrl);\n\t\t\tif (slider)\n\t\t\t{\n\t\t\t\tslider.close();\n\t\t\t}\n\t\t}\n\t}\n\n\t#isMainSender(sender: Sender): boolean\n\t{\n\t\treturn (sender.type === senderType && this.id === Number(sender.id))\n\t\t\t|| ((sender.type === mailboxSenderType) && this.id === Number(sender.mailboxId))\n\t\t;\n\t}\n}\n"],"names":["SidePanel","BX","emailRegularEx","deleteMessage","senderType","SmtpEditor","constructor","options","senderId","Type","isInteger","title","Loc","getMessage","setSender","setSenderCallback","addSender","addSenderCallback","onCloseAction","onClose","openSlider","instance","Instance","open","width","cacheable","contentCallback","getContentCallback","events","onLoad","ready","LayoutForm","container","limitSection","Layout","createContent","extensions","design","section","margin","content","loadSender","ajax","runAction","then","response","data","getContentContainer","catch","buttons","cancelButton","Button","buttonArray","saveButton","SaveButton","onclick","push","disconnectButton","text","color","UI","Color","DANGER","contentContainer","senderData","nameField","value","name","accessField","checked","isPublic","emailField","email","serverField","server","portField","port","loginField","login","protocol","sslField","isNumber","limit","senderLimitCheckbox","senderLimitField","top","Dialogs","MessageBox","show","message","modal","MessageBoxButtons","OK_CANCEL","onOk","messageBox","close","onCancel","button","setClocking","mailbox","getTopSlider","AliasEditor","errors","Dom","addClass","removeClass","postMessage","window","id","type","smtp","public","ssl","password","passwordField","Tag","render","alertNode","senderSection","smtpServerSection","root","hintInstence","Hint","createInstance","init","smtpEmailRow","smtpServerRow","smtpPortAndSafeConnectionRow","smtpLoginRow","smtpPasswordRow","Event","bind","spanNode","querySelector","textContent","style","requiredFields","row","input","count","forEach","field","errorMessage","invalidField","append","topEmptyNode","scrollIntoView","errorMessageFiled","isDomNode","remove","invalidFieldNode","length","Number","test","isString","mailboxType","mailboxSenderType","aliasType","successSubmitMessage","aliasSliderUrl","wasSenderUpdated","aliasCounter","Map","updateSenderList","onSliderMessage","event","sliderEvent","getData","eventMessage","getEventId","mailboxId","slider","getSlider","updateMainSenderName","loadSliderContent","toolbar","getToolbarButtons","EventEmitter","unsubscribe","subscribe","settingsButton","senders","bindEvent","href","setDisabled","mainSenderNameNode","innerText","senderList","Text","encode","addSenderContainer","senderInput","senderInputContainer","hide","senderAddButton","focus","Promise","resolve","hideInputContainer","trim","newSenderId","senderNode","isOwner","canEdit","userUrl","avatar","icon","Icon","SETTING","LIGHT_BORDER","sender","itemContainer","nameContainer","textNode","nameTextContainer","handleShowEditInput","nameEditContainer","editInput","nameEditInput","set","senderName","textContainer","submitPromise","hideEditContainer","senderNewName","cancelHandler","includes","handleShowInput","senderEditContainer","senderNameEditButton","editHref","authorEditContainer","userAvatarContainer","avatarIcon","deleteButton","delete","editButton","targetElement","submitButton","key","click","sort","a","b","prepend","has","get","regexForInvalidCharacters","Notification","Center","notify"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit