| Server IP : 93.86.61.54 / Your IP : 216.73.216.206 Web Server : Apache/2.4.62 (Ubuntu) System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64 User : www-data ( 33) PHP Version : 8.4.22 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/projects/nextcloud/apps/mail/js/ |
Upload File : |
{"version":3,"sources":["webpack:///./src/components/Navigation.vue?26d6","webpack:///./src/components/EditorSettings.vue?31d4","webpack:///src/components/EditorSettings.vue","webpack:///./src/components/EditorSettings.vue?566d","webpack:///./src/components/EditorSettings.vue","webpack:///./src/components/EditorSettings.vue?7719","webpack:///./src/components/MailboxInlinePicker.vue?3b22","webpack:///src/components/MailboxInlinePicker.vue","webpack:///./src/components/MailboxInlinePicker.vue?69ce","webpack:///src/components/AccountDefaultsSettings.vue","webpack:///./src/components/AccountDefaultsSettings.vue?3950","webpack:///./src/components/MailboxInlinePicker.vue","webpack:///./src/components/MailboxInlinePicker.vue?fc37","webpack:///./src/components/AccountDefaultsSettings.vue?7c98","webpack:///./src/components/AccountDefaultsSettings.vue","webpack:///./src/components/AccountDefaultsSettings.vue?d192","webpack:///./src/components/SignatureSettings.vue?26a8","webpack:///src/components/SignatureSettings.vue","webpack:///./src/components/SignatureSettings.vue?e220","webpack:///./src/components/SignatureSettings.vue?d22e","webpack:///./src/components/SignatureSettings.vue","webpack:///./src/components/SignatureSettings.vue?7942","webpack:///src/components/AliasSettings.vue","webpack:///./src/components/AliasSettings.vue?ee40","webpack:///./src/components/AliasSettings.vue?09f6","webpack:///./src/components/AliasSettings.vue","webpack:///./src/components/AliasSettings.vue?7d1f","webpack:///src/components/TrustedSenders.vue","webpack:///./src/components/TrustedSenders.vue?67be","webpack:///./src/components/TrustedSenders.vue","webpack:///./src/components/TrustedSenders.vue?d742","webpack:///src/components/SieveAccountForm.vue","webpack:///./src/components/SieveAccountForm.vue?f3c5","webpack:///./src/components/SieveAccountForm.vue?dc6f","webpack:///./src/components/SieveAccountForm.vue","webpack:///./src/components/SieveAccountForm.vue?c619","webpack:///src/components/SieveFilterForm.vue","webpack:///./src/components/SieveFilterForm.vue?174c","webpack:///./src/components/SieveFilterForm.vue?5a6b","webpack:///src/components/AccountSettings.vue","webpack:///./src/components/AccountSettings.vue?9cfe","webpack:///./src/components/SieveFilterForm.vue","webpack:///./src/components/SieveFilterForm.vue?e3a3","webpack:///./src/components/AccountSettings.vue?f38b","webpack:///./src/components/AccountSettings.vue","webpack:///./src/components/AccountSettings.vue?31a6","webpack:///src/components/NavigationAccount.vue","webpack:///./src/components/NavigationAccount.vue?6cd9","webpack:///./src/components/NavigationAccount.vue","webpack:///./src/components/NavigationAccount.vue?ec1c","webpack:///src/components/NavigationAccountExpandCollapse.vue","webpack:///./src/components/NavigationAccountExpandCollapse.vue?f1fb","webpack:///./src/components/NavigationAccountExpandCollapse.vue?ee58","webpack:///./src/components/NavigationAccountExpandCollapse.vue","webpack:///./src/components/NavigationAccountExpandCollapse.vue?54bd","webpack:///src/components/MoveMailboxModal.vue","webpack:///./src/components/MoveMailboxModal.vue?2f3d","webpack:///./src/components/MoveMailboxModal.vue","webpack:///./src/components/MoveMailboxModal.vue?466e","webpack:///./src/directives/drag-and-drop/droppable-mailbox/droppable-mailbox.js","webpack:///./src/directives/drag-and-drop/droppable-mailbox/index.js","webpack:///src/components/NavigationMailbox.vue","webpack:///./src/components/NavigationMailbox.vue?211d","webpack:///./src/components/NavigationMailbox.vue","webpack:///./src/components/NavigationMailbox.vue?56d4","webpack:///./src/views/KeyboardShortcuts.vue?b818","webpack:///src/views/KeyboardShortcuts.vue","webpack:///./src/views/KeyboardShortcuts.vue?50ca","webpack:///./src/components/AppSettingsMenu.vue?2b54","webpack:///src/components/AppSettingsMenu.vue","webpack:///./src/views/KeyboardShortcuts.vue","webpack:///./src/views/KeyboardShortcuts.vue?811d","webpack:///./src/components/AppSettingsMenu.vue?487b","webpack:///./src/components/AppSettingsMenu.vue","webpack:///./src/components/AppSettingsMenu.vue?a58f","webpack:///./src/components/Navigation.vue?b567","webpack:///src/components/Navigation.vue","webpack:///./src/components/Navigation.vue","webpack:///./src/components/AccountForm.vue?9e0e","webpack:///src/components/AccountForm.vue","webpack:///./src/components/AccountForm.vue?8735","webpack:///./src/components/AccountForm.vue?2f8d","webpack:///./src/components/AccountForm.vue?bc5a","webpack:///./src/components/AccountForm.vue","webpack:///./src/components/MailboxPicker.vue?62c0","webpack:///./src/components/MailboxPicker.vue?c284","webpack:///src/components/MailboxPicker.vue","webpack:///./src/components/MailboxPicker.vue?e2f6","webpack:///./src/components/MailboxPicker.vue","webpack:///./src/components/TextEditor.vue?3785","webpack:///src/components/TextEditor.vue","webpack:///./src/components/TextEditor.vue?6a9a","webpack:///./src/components/TextEditor.vue?138c","webpack:///./src/components/TextEditor.vue","webpack:///./src/components/MailboxPicker.vue?22f1","webpack:///./node_modules/@ckeditor/ckeditor5-build-balloon/build/translations lazy-once ^\\.\\/.*$ prefetchOrder: 0 preloadOrder: 0 namespace object","webpack:///./src/components/TextEditor.vue?9d1a","webpack:///./src/components/AccountForm.vue?9344","webpack:///./src/components/AccountForm.vue?74f8","webpack:///./src/components/EditorSettings.vue?f3fc","webpack:///./src/components/MailboxInlinePicker.vue?7192","webpack:///./src/components/AccountDefaultsSettings.vue?077b","webpack:///./src/components/SignatureSettings.vue?4e07","webpack:///./src/components/SignatureSettings.vue?d35a","webpack:///./src/components/AliasSettings.vue?ef30","webpack:///./src/components/SieveAccountForm.vue?5f30","webpack:///./src/components/SieveFilterForm.vue?97d3","webpack:///./src/components/AccountSettings.vue?dd1f","webpack:///./src/components/NavigationAccountExpandCollapse.vue?7991","webpack:///./src/views/KeyboardShortcuts.vue?c196","webpack:///./src/components/AppSettingsMenu.vue?9291","webpack:///./src/util/text.js","webpack:///./src/directives/drag-and-drop/util/dragEventBus.js","webpack:///./src/i18n/MailboxTranslator.js","webpack:///./src/util/AccountColor.js","webpack:///./src/service/TrustedSenderService.js"],"names":["options","locals","_vm","this","_h","$createElement","_c","_self","directives","name","rawName","value","expression","staticClass","attrs","domProps","_q","mode","on","$event","_v","class","primary","_s","t","ref","mailboxes","disabled","model","callback","$$v","selected","account","saving","draftsMailbox","sentMailbox","trashMailbox","bus","signature","loading","saveSignature","deleteSignature","_e","_l","curAlias","key","id","alias","deleteAlias","target","composing","$set","addMode","enabledAddMode","saveAlias","sender","email","senderType","type","removeSender","sortedSenders","length","sieveConfig","sieveEnabled","sieveSslMode","useImapCredentials","_t","errorMessage","submitButtonText","preventDefault","onSubmit","active","modifiers","saveActiveScript","showSettings","displayName","provisioned","handleClick","accountId","onSave","iconError","menuOpen","emailAddress","firstMailboxRoute","onMenuToggle","scopedSlots","_u","fn","isUnified","quotaText","showAccountSettings","toggleAccountSettings","showSubscribedOnly","savingShowOnlySubscribed","changeShowSubscribedOnly","editing","openCreateMailbox","stopPropagation","createMailbox","isFirst","changeAccountOrderUp","isLast","changeAccountOrderDown","removeAccount","proxy","bulletColor","slot","title","toggleCollapse","destMailboxId","moving","mailbox","onMove","onClose","instance","DroppableMailbox","el","componentInstance","registerListeners","bind","setInitialAttributes","draggableInfo","setStatus","dragEventBus","$on","onDragStart","onDragEnd","firstChild","addEventListener","onDragOver","onDragLeave","onDrop","$off","removeEventListener","status","setAttribute","canBeDropped","isSameAccount","isValidDropTarget","event","mailboxId","dataTransfer","dropEffect","envelopesBeingDragged","JSON","parse","getData","$emit","envelopes","processedEnvelopes","map","envelope","processDroppedItem","parseInt","envelopeId","processed","Promise","all","logger","error","movedEnvelopes","item","document","querySelector","store","dispatch","removeAttribute","DroppableMailboxDirective","binding","vnode","context","componentUpdated","update","databaseId","genId","icon","to","showSubMailboxes","specialRole","statsText","loadingMarkAsRead","markAsRead","top","renameLabel","hasSubMailboxes","openRenameInput","mailboxName","renameMailbox","onOpenMoveModal","debug","clearingCache","clearCache","isSubscribed","changeSubscription","changeFolderSubscription","notVirtual","notInbox","syncInBackground","changingSyncInBackground","changeSyncInBackground","deleteMailbox","unread","onCloseMoveModal","subMailbox","optOutSettingsText","useDataCollection","onToggleCollectData","useExternalAvatars","onToggleExternalAvatars","replySettingsText","useBottomReplies","onToggleButtonReplies","registerProtocolHandler","showKeyboardShortcuts","toggleKeyboardShortcuts","closeKeyboardShortcuts","group","isCollapsible","collapsed","isCollapsed","onNewMessage","component","useUrlFragment","defaultTabHash","settingsPage","onModeChanged","autoConfig","manualConfig","imapSslMode","onImapSslModeChange","smtpSslMode","onSmtpSslModeChange","onClickHome","box","index","onClickCrumb","getMailboxTitle","filteredMailboxes","onClickMailbox","getMailboxIcon","allowRoot","selectedMailboxId","onSelect","labelSelectLoading","labelSelect","config","editor","onInput","onEditorReady","text","___CSS_LOADER_EXPORT___","push","module","i","webpackAsyncContext","req","webpackAsyncContextResolve","then","__webpack_require__","e","o","Error","code","keys","Object","resolve","exports","Text","format","other","wrap","curry","plain","html","detect","str","includes","isFormat","toPlain","withBlockBreaks","replace","converted","fromString","noLinkBrackets","ignoreHref","ignoreImage","wordwrap","blockquote","element","children","paragraph","toHtml","Vue","translate","specialUse","isPriorityInbox","translateSpecial","console","calculateAccountColor","hashed","md5","hsl","conv","hex","fixedHsl","Math","round","trustSender","trustFlag","url","generateUrl","axios","put","delete","fetchTrustedSenders","get","response","data"],"mappings":"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","file":"mail.1.e58643906e0c70ad74ff.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppNavigation',{scopedSlots:_vm._u([{key:\"list\",fn:function(){return [_c('ul',{attrs:{\"id\":\"accounts-list\"}},[_vm._l((_vm.menu),function(group){return [(group.account)?_c('NavigationAccount',{key:group.account.id,attrs:{\"account\":group.account,\"first-mailbox\":group.mailboxes[0],\"is-first\":_vm.isFirst(group.account),\"is-last\":_vm.isLast(group.account)}}):_vm._e(),_vm._v(\" \"),_vm._l((group.mailboxes),function(item){return [_c('NavigationMailbox',{directives:[{name:\"show\",rawName:\"v-show\",value:(\n\t\t\t\t\t\t\t!group.isCollapsible ||\n\t\t\t\t\t\t\t\t!group.account.collapsed ||\n\t\t\t\t\t\t\t\t!_vm.isCollapsed(group.account, item)\n\t\t\t\t\t\t),expression:\"\\n\\t\\t\\t\\t\\t\\t\\t!group.isCollapsible ||\\n\\t\\t\\t\\t\\t\\t\\t\\t!group.account.collapsed ||\\n\\t\\t\\t\\t\\t\\t\\t\\t!isCollapsed(group.account, item)\\n\\t\\t\\t\\t\\t\\t\"}],key:'mailbox-' + item.databaseId,attrs:{\"account\":group.account,\"mailbox\":item}}),_vm._v(\" \"),(!group.account.isUnified && item.specialRole === 'inbox')?_c('NavigationMailbox',{key:item.databaseId + '-starred',attrs:{\"account\":group.account,\"mailbox\":item,\"filter\":\"starred\"}}):_vm._e()]}),_vm._v(\" \"),(!group.account.isUnified && group.isCollapsible)?_c('NavigationAccountExpandCollapse',{key:'collapse-' + group.account.id,attrs:{\"account\":group.account}}):_vm._e(),_vm._v(\" \"),_c('AppNavigationSpacer',{key:'spacer-' + group.account.id})]})],2)]},proxy:true},{key:\"footer\",fn:function(){return [_c('AppNavigationSettings',{attrs:{\"title\":_vm.t('mail', 'Settings')}},[_c('AppSettingsMenu')],1)]},proxy:true}])},[_c('AppNavigationNew',{attrs:{\"text\":_vm.t('mail', 'New message'),\"button-id\":\"mail_new_message\",\"button-class\":\"icon-add\",\"role\":\"complementary\"},on:{\"click\":_vm.onNewMessage}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorSettings.vue?vue&type=script&lang=js&\"","<!--\n - @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n\n<template>\n\t<div>\n\t\t<p>\n\t\t\t<input id=\"plaintext\"\n\t\t\t\tv-model=\"mode\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\tclass=\"radio\"\n\t\t\t\tvalue=\"plaintext\">\n\t\t\t<label :class=\"{primary: mode === 'plaintext'}\" for=\"plaintext\">\n\t\t\t\t{{ t('mail', 'Plain text') }}\n\t\t\t</label>\n\t\t\t<input id=\"richtext\"\n\t\t\t\tv-model=\"mode\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\tclass=\"radio\"\n\t\t\t\tvalue=\"richtext\">\n\t\t\t<label :class=\"{primary: mode === 'richtext'}\" for=\"richtext\">\n\t\t\t\t{{ t('mail', 'Rich text') }}\n\t\t\t</label>\n\t\t</p>\n\t</div>\n</template>\n\n<script>\nimport Logger from '../logger'\n\nexport default {\n\tname: 'EditorSettings',\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tmode: this.account.editorMode,\n\t\t}\n\t},\n\twatch: {\n\t\tmode(val, oldVal) {\n\t\t\tthis.$store\n\t\t\t\t.dispatch('patchAccount', {\n\t\t\t\t\taccount: this.account,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\teditorMode: val,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tLogger.info('editor mode updated')\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tLogger.error('could not update editor mode', { error })\n\t\t\t\t\tthis.editorMode = oldVal\n\t\t\t\t\tthrow error\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\nlabel {\n\tpadding-right: 12px;\n}\n</style>\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorSettings.vue?vue&type=style&index=0&id=7db23f84&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./EditorSettings.vue?vue&type=template&id=7db23f84&scoped=true&\"\nimport script from \"./EditorSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditorSettings.vue?vue&type=style&index=0&id=7db23f84&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7db23f84\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.mode),expression:\"mode\"}],staticClass:\"radio\",attrs:{\"id\":\"plaintext\",\"type\":\"radio\",\"value\":\"plaintext\"},domProps:{\"checked\":_vm._q(_vm.mode,\"plaintext\")},on:{\"change\":function($event){_vm.mode=\"plaintext\"}}}),_vm._v(\" \"),_c('label',{class:{primary: _vm.mode === 'plaintext'},attrs:{\"for\":\"plaintext\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Plain text'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.mode),expression:\"mode\"}],staticClass:\"radio\",attrs:{\"id\":\"richtext\",\"type\":\"radio\",\"value\":\"richtext\"},domProps:{\"checked\":_vm._q(_vm.mode,\"richtext\")},on:{\"change\":function($event){_vm.mode=\"richtext\"}}}),_vm._v(\" \"),_c('label',{class:{primary: _vm.mode === 'richtext'},attrs:{\"for\":\"richtext\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Rich text'))+\"\\n\\t\\t\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MailboxInlinePicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MailboxInlinePicker.vue?vue&type=script&lang=js&\"","<template>\n\t<Treeselect\n\t\tref=\"Treeselect\"\n\t\tv-model=\"selected\"\n\t\t:options=\"mailboxes\"\n\t\t:multiple=\"false\"\n\t\t:clearable=\"false\"\n\t\t:disabled=\"disabled\" />\n</template>\n<script>\nimport Treeselect from '@riophae/vue-treeselect'\nimport '@riophae/vue-treeselect/dist/vue-treeselect.css'\n\nexport default {\n\tname: 'MailboxInlinePicker',\n\tcomponents: {\n\t\tTreeselect,\n\t},\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tvalue: {\n\t\t\ttype: Number,\n\t\t\trequired: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tselected: this.value,\n\t\t}\n\t},\n\tcomputed: {\n\t\tmailboxes() {\n\t\t\treturn this.getMailboxes()\n\t\t},\n\t},\n\twatch: {\n\t\tselected(val) {\n\t\t\tif (val !== this.value) {\n\t\t\t\tthis.$emit('input', val)\n\t\t\t\tthis.selected = val\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\tgetMailboxes(mailboxId) {\n\t\t\tlet mailboxes = []\n\t\t\tif (!mailboxId) {\n\t\t\t\tmailboxes = this.$store.getters.getMailboxes(this.account.accountId)\n\t\t\t} else {\n\t\t\t\tmailboxes = this.$store.getters.getSubMailboxes(mailboxId)\n\t\t\t}\n\t\t\treturn mailboxes.map((mailbox) => {\n\t\t\t\t return {\n\t\t\t\t\tid: mailbox.databaseId,\n\t\t\t\t\tlabel: mailbox.displayName,\n\t\t\t\t\tchildren: mailbox.mailboxes.length > 0 ? this.getMailboxes(mailbox.databaseId) : '',\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n<style>\n.vue-treeselect__control {\n\tpadding: 0;\n\tborder: 0;\n\twidth: 250px;\n}\n.vue-treeselect__control-arrow-container {\n\tdisplay: none;\n}\n.vue-treeselect--searchable .vue-treeselect__input-container {\n\tpadding-left: 0;\n}\ninput.vue-treeselect__input {\n\tmargin: 0;\n\tpadding: 0;\n}\n</style>\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MailboxInlinePicker.vue?vue&type=style&index=0&lang=css&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","<!--\n - @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n\n<template>\n\t<div>\n\t\t<p>\n\t\t\t{{ t('mail', 'Drafts are saved in:') }}\n\t\t</p>\n\t\t<MailboxInlinePicker v-model=\"draftsMailbox\" :account=\"account\" :disabled=\"saving\" />\n\n\t\t<p>\n\t\t\t{{ t('mail', 'Sent messages are saved in:') }}\n\t\t</p>\n\n\t\t<MailboxInlinePicker v-model=\"sentMailbox\" :account=\"account\" :disabled=\"saving\" />\n\t\t<p>\n\t\t\t{{ t('mail', 'Deleted messages are moved in:') }}\n\t\t</p>\n\n\t\t<MailboxInlinePicker v-model=\"trashMailbox\" :account=\"account\" :disabled=\"saving\" />\n\t</div>\n</template>\n\n<script>\nimport logger from '../logger'\nimport MailboxInlinePicker from './MailboxInlinePicker'\n\nexport default {\n\tname: 'AccountDefaultsSettings',\n\tcomponents: {\n\t\tMailboxInlinePicker,\n\t},\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsaving: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tdraftsMailbox: {\n\t\t\tget() {\n\t\t\t\tconst mb = this.$store.getters.getMailbox(this.account.draftsMailboxId)\n\t\t\t\tif (!mb) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\treturn mb.databaseId\n\t\t\t},\n\t\t\tasync set(draftsMailboxId) {\n\t\t\t\tlogger.debug('setting drafts mailbox to ' + draftsMailboxId)\n\t\t\t\tthis.saving = true\n\t\t\t\ttry {\n\t\t\t\t\tawait this.$store.dispatch('patchAccount', {\n\t\t\t\t\t\taccount: this.account,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tdraftsMailboxId,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error('could not set drafts mailbox', {\n\t\t\t\t\t\terror,\n\t\t\t\t\t})\n\t\t\t\t} finally {\n\t\t\t\t\tthis.saving = false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tsentMailbox: {\n\t\t\tget() {\n\t\t\t\tconst mb = this.$store.getters.getMailbox(this.account.sentMailboxId)\n\t\t\t\tif (!mb) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\treturn mb.databaseId\n\t\t\t},\n\t\t\tasync set(sentMailboxId) {\n\t\t\t\tlogger.debug('setting sent mailbox to ' + sentMailboxId)\n\t\t\t\tthis.saving = true\n\t\t\t\ttry {\n\t\t\t\t\tawait this.$store.dispatch('patchAccount', {\n\t\t\t\t\t\taccount: this.account,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tsentMailboxId,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error('could not set sent mailbox', {\n\t\t\t\t\t\terror,\n\t\t\t\t\t})\n\t\t\t\t} finally {\n\t\t\t\t\tthis.saving = false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\ttrashMailbox: {\n\t\t\tget() {\n\t\t\t\tconst mb = this.$store.getters.getMailbox(this.account.trashMailboxId)\n\t\t\t\tif (!mb) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\treturn mb.databaseId\n\t\t\t},\n\t\t\tasync set(trashMailboxId) {\n\t\t\t\tlogger.debug('setting trash mailbox to ' + trashMailboxId)\n\t\t\t\tthis.saving = true\n\t\t\t\ttry {\n\t\t\t\t\tawait this.$store.dispatch('patchAccount', {\n\t\t\t\t\t\taccount: this.account,\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\ttrashMailboxId,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error('could not set trash mailbox', {\n\t\t\t\t\t\terror,\n\t\t\t\t\t})\n\t\t\t\t} finally {\n\t\t\t\t\tthis.saving = false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.button.icon-rename {\n\tbackground-color: transparent;\n\tborder: none;\n\topacity: 0.3;\n\n\t&:hover,\n\t&:focus {\n\t\topacity: 1;\n\t}\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountDefaultsSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountDefaultsSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MailboxInlinePicker.vue?vue&type=template&id=56f2a52c&\"\nimport script from \"./MailboxInlinePicker.vue?vue&type=script&lang=js&\"\nexport * from \"./MailboxInlinePicker.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MailboxInlinePicker.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Treeselect',{ref:\"Treeselect\",attrs:{\"options\":_vm.mailboxes,\"multiple\":false,\"clearable\":false,\"disabled\":_vm.disabled},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountDefaultsSettings.vue?vue&type=style&index=0&id=3a6599f7&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./AccountDefaultsSettings.vue?vue&type=template&id=3a6599f7&scoped=true&\"\nimport script from \"./AccountDefaultsSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountDefaultsSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AccountDefaultsSettings.vue?vue&type=style&index=0&id=3a6599f7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a6599f7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('mail', 'Drafts are saved in:'))+\"\\n\\t\")]),_vm._v(\" \"),_c('MailboxInlinePicker',{attrs:{\"account\":_vm.account,\"disabled\":_vm.saving},model:{value:(_vm.draftsMailbox),callback:function ($$v) {_vm.draftsMailbox=$$v},expression:\"draftsMailbox\"}}),_vm._v(\" \"),_c('p',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('mail', 'Sent messages are saved in:'))+\"\\n\\t\")]),_vm._v(\" \"),_c('MailboxInlinePicker',{attrs:{\"account\":_vm.account,\"disabled\":_vm.saving},model:{value:(_vm.sentMailbox),callback:function ($$v) {_vm.sentMailbox=$$v},expression:\"sentMailbox\"}}),_vm._v(\" \"),_c('p',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('mail', 'Deleted messages are moved in:'))+\"\\n\\t\")]),_vm._v(\" \"),_c('MailboxInlinePicker',{attrs:{\"account\":_vm.account,\"disabled\":_vm.saving},model:{value:(_vm.trashMailbox),callback:function ($$v) {_vm.trashMailbox=$$v},expression:\"trashMailbox\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignatureSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignatureSettings.vue?vue&type=script&lang=js&\"","<!--\n - @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n\n<template>\n\t<div class=\"section\">\n\t\t<TextEditor v-model=\"signature\"\n\t\t\t:html=\"true\"\n\t\t\t:placeholder=\"t('mail', 'Signature …')\"\n\t\t\t:bus=\"bus\" />\n\t\t<button\n\t\t\tclass=\"primary\"\n\t\t\t:class=\"loading ? 'icon-loading-small-dark' : 'icon-checkmark-white'\"\n\t\t\t:disabled=\"loading\"\n\t\t\t@click=\"saveSignature\">\n\t\t\t{{ t('mail', 'Save signature') }}\n\t\t</button>\n\t\t<button v-if=\"signature\" class=\"button-text\" @click=\"deleteSignature\">\n\t\t\t{{ t('mail', 'Delete') }}\n\t\t</button>\n\t</div>\n</template>\n\n<script>\nimport logger from '../logger'\nimport TextEditor from './TextEditor'\nimport { detect, toHtml } from '../util/text'\nimport Vue from 'vue'\n\nexport default {\n\tname: 'SignatureSettings',\n\tcomponents: {\n\t\tTextEditor,\n\t},\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: false,\n\t\t\tbus: new Vue(),\n\t\t}\n\t},\n\tcreated() {\n\t\tthis.signature = this.account.signature ? toHtml(detect(this.account.signature)).value : ''\n\t},\n\tmethods: {\n\t\tdeleteSignature() {\n\t\t\tthis.loading = true\n\n\t\t\tthis.$store\n\t\t\t\t.dispatch('updateAccountSignature', { account: this.account, signature: null })\n\t\t\t\t.then(() => {\n\t\t\t\t\tlogger.info('signature deleted')\n\t\t\t\t\tthis.signature = ''\n\t\t\t\t\tthis.loading = false\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tlogger.error('could not delete account signature', { error })\n\t\t\t\t\tthrow error\n\t\t\t\t})\n\t\t},\n\t\tsaveSignature() {\n\t\t\tthis.loading = true\n\n\t\t\tthis.$store\n\t\t\t\t.dispatch('updateAccountSignature', { account: this.account, signature: this.signature })\n\t\t\t\t.then(() => {\n\t\t\t\t\tlogger.info('signature updated')\n\t\t\t\t\tthis.loading = false\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tlogger.error('could not update account signature', { error })\n\t\t\t\t\tthrow error\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.ck.ck-editor__editable_inline {\n\twidth: 330px;\n\tmax-width: 78vw;\n\theight: 100px;\n\tborder-radius: var(--border-radius) !important;\n\tborder: 1px solid var(--color-border) !important;\n\tbox-shadow: none !important;\n}\n\n.primary {\n\tpadding-left: 26px;\n\tbackground-position: 6px;\n\tcolor: var(--color-main-background);\n\n\t&:after {\n\t\tleft: 14px;\n\t}\n}\n\n.button-text {\n\tbackground-color: transparent;\n\tborder: none;\n\tcolor: var(--color-text-maxcontrast);\n\tfont-weight: normal;\n\n\t&:hover,\n\t&:focus {\n\t\tcolor: var(--color-main-text);\n\t}\n}\n.section {\n\tdisplay: block;\n\tpadding: 0;\n\tmargin-bottom: 23px;\n}\n</style>\n<style>\n.ck-balloon-panel {\n\tz-index: 10000 !important;\n}\n</style>\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignatureSettings.vue?vue&type=style&index=0&id=25a86580&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignatureSettings.vue?vue&type=style&index=1&lang=css&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./SignatureSettings.vue?vue&type=template&id=25a86580&scoped=true&\"\nimport script from \"./SignatureSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./SignatureSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SignatureSettings.vue?vue&type=style&index=0&id=25a86580&lang=scss&scoped=true&\"\nimport style1 from \"./SignatureSettings.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25a86580\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"section\"},[_c('TextEditor',{attrs:{\"html\":true,\"placeholder\":_vm.t('mail', 'Signature …'),\"bus\":_vm.bus},model:{value:(_vm.signature),callback:function ($$v) {_vm.signature=$$v},expression:\"signature\"}}),_vm._v(\" \"),_c('button',{staticClass:\"primary\",class:_vm.loading ? 'icon-loading-small-dark' : 'icon-checkmark-white',attrs:{\"disabled\":_vm.loading},on:{\"click\":_vm.saveSignature}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('mail', 'Save signature'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.signature)?_c('button',{staticClass:\"button-text\",on:{\"click\":_vm.deleteSignature}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('mail', 'Delete'))+\"\\n\\t\")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright 2020 Patrick Bender <patrick@bender-it-services.de>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n\n<template>\n\t<div>\n\t\t<ul class=\"aliases-list\">\n\t\t\t<li v-for=\"curAlias in aliases\" :key=\"curAlias.id\">\n\t\t\t\t<strong>{{ curAlias.name }}</strong> <{{ curAlias.alias }}>\n\n\t\t\t\t<button class=\"icon-delete\" @click=\"deleteAlias(curAlias)\" />\n\t\t\t</li>\n\t\t</ul>\n\n\t\t<div>\n\t\t\t<input\n\t\t\t\tv-if=\"addMode\"\n\t\t\t\tid=\"alias-name\"\n\t\t\t\tv-model=\"alias.aliasName\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t:placeholder=\"t('mail', 'Name')\"\n\t\t\t\t:disabled=\"loading\">\n\n\t\t\t<input\n\t\t\t\tv-if=\"addMode\"\n\t\t\t\tid=\"alias\"\n\t\t\t\tref=\"email\"\n\t\t\t\tv-model=\"alias.alias\"\n\t\t\t\ttype=\"email\"\n\t\t\t\t:placeholder=\"t('mail', 'Mail Address')\"\n\t\t\t\t:disabled=\"loading\">\n\t\t</div>\n\n\t\t<div>\n\t\t\t<button v-if=\"!addMode\" class=\"primary icon-add\" @click=\"enabledAddMode\">\n\t\t\t\t{{ t('mail', 'Add alias') }}\n\t\t\t</button>\n\n\t\t\t<button\n\t\t\t\tv-if=\"addMode\"\n\t\t\t\tclass=\"primary\"\n\t\t\t\t:class=\"loading ? 'icon-loading-small-dark' : 'icon-checkmark-white'\"\n\t\t\t\t:disabled=\"loading\"\n\t\t\t\t@click=\"saveAlias\">\n\t\t\t\t{{ t('mail', 'Save') }}\n\t\t\t</button>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport logger from '../logger'\nimport Vue from 'vue'\n\nexport default {\n\tname: 'AliasSettings',\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\taddMode: false,\n\t\t\tloading: false,\n\t\t\talias: { aliasName: this.account.name, alias: '' },\n\t\t}\n\t},\n\tcomputed: {\n\t\taliases() {\n\t\t\treturn this.account.aliases\n\t\t},\n\t},\n\tmethods: {\n\t\tenabledAddMode() {\n\t\t\tthis.addMode = true\n\t\t\tVue.nextTick(this.focusEmailField)\n\t\t},\n\t\tfocusEmailField() {\n\t\t\tthis.$refs.email.focus()\n\t\t},\n\t\tasync deleteAlias(alias) {\n\t\t\tthis.loading = true\n\t\t\tawait this.$store.dispatch('deleteAlias', { account: this.account, aliasToDelete: alias })\n\t\t\tlogger.info('alias deleted')\n\t\t\tthis.loading = false\n\t\t},\n\t\tasync saveAlias() {\n\t\t\tthis.loading = true\n\t\t\tawait this.$store.dispatch('createAlias', { account: this.account, aliasToAdd: this.alias })\n\t\t\tlogger.info('alias added')\n\t\t\tthis.alias = { aliasName: this.account.name, alias: '' }\n\t\t\tthis.loading = false\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.primary {\n\tpadding-left: 26px;\n\tbackground-position: 6px;\n\tcolor: var(--color-main-background);\n\n\t&:after {\n\t\tleft: 14px;\n\t}\n}\ninput {\n\twidth: 195px;\n}\n.aliases-list {\n\tmargin: 0.5rem 0rem;\n}\n.icon-delete {\n\tvertical-align: bottom;\n\tbackground-image: var(--icon-delete-000);\n\tbackground-color: var(--color-main-background);\n\tborder: none;\n\topacity: 0.7;\n\t&:hover,\n\t&:focus {\n\t\topacity: 1;\n\t}\n}\n.icon-add {\n\tbackground-image: var(--icon-add-fff);\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AliasSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AliasSettings.vue?vue&type=script&lang=js&\"","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AliasSettings.vue?vue&type=style&index=0&id=2c8c77c6&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./AliasSettings.vue?vue&type=template&id=2c8c77c6&scoped=true&\"\nimport script from \"./AliasSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./AliasSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AliasSettings.vue?vue&type=style&index=0&id=2c8c77c6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c8c77c6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('ul',{staticClass:\"aliases-list\"},_vm._l((_vm.aliases),function(curAlias){return _c('li',{key:curAlias.id},[_c('strong',[_vm._v(_vm._s(curAlias.name))]),_vm._v(\" <\"+_vm._s(curAlias.alias)+\">\\n\\n\\t\\t\\t\"),_c('button',{staticClass:\"icon-delete\",on:{\"click\":function($event){return _vm.deleteAlias(curAlias)}}})])}),0),_vm._v(\" \"),_c('div',[(_vm.addMode)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.alias.aliasName),expression:\"alias.aliasName\"}],attrs:{\"id\":\"alias-name\",\"type\":\"text\",\"placeholder\":_vm.t('mail', 'Name'),\"disabled\":_vm.loading},domProps:{\"value\":(_vm.alias.aliasName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.alias, \"aliasName\", $event.target.value)}}}):_vm._e(),_vm._v(\" \"),(_vm.addMode)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.alias.alias),expression:\"alias.alias\"}],ref:\"email\",attrs:{\"id\":\"alias\",\"type\":\"email\",\"placeholder\":_vm.t('mail', 'Mail Address'),\"disabled\":_vm.loading},domProps:{\"value\":(_vm.alias.alias)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.alias, \"alias\", $event.target.value)}}}):_vm._e()]),_vm._v(\" \"),_c('div',[(!_vm.addMode)?_c('button',{staticClass:\"primary icon-add\",on:{\"click\":_vm.enabledAddMode}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Add alias'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.addMode)?_c('button',{staticClass:\"primary\",class:_vm.loading ? 'icon-loading-small-dark' : 'icon-checkmark-white',attrs:{\"disabled\":_vm.loading},on:{\"click\":_vm.saveAlias}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Save'))+\"\\n\\t\\t\")]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright 2020 Greta Doci <gretadoci@gmail.com>\n -\n - @author 2020 Greta Doci <gretadoci@gmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n\n<template>\n\t<div>\n\t\t<div v-for=\"sender in sortedSenders\"\n\t\t\t:key=\"sender.email\">\n\t\t\t{{ sender.email }}\n\t\t\t{{ senderType(sender.type) }}\n\t\t\t<button class=\"button\"\n\t\t\t\t@click=\"removeSender(sender)\">\n\t\t\t\t{{ t('mail','Remove') }}\n\t\t\t</button>\n\t\t</div>\n\t\t<span v-if=\"!sortedSenders.length\"> {{ t('mail', 'No senders are trusted at the moment.') }}</span>\n\t</div>\n</template>\n\n<script>\n\nimport { fetchTrustedSenders, trustSender } from '../service/TrustedSenderService'\nimport prop from 'lodash/fp/prop'\nimport sortBy from 'lodash/fp/sortBy'\nimport logger from '../logger'\nimport { showError } from '@nextcloud/dialogs'\n\nconst sortByEmail = sortBy(prop('email'))\n\nexport default {\n\tname: 'TrustedSenders',\n\n\tdata() {\n\t\treturn {\n\t\t\tlist: [],\n\t\t}\n\t},\n\tcomputed: {\n\t\tsortedSenders() {\n\t\t\treturn sortByEmail(this.list)\n\t\t},\n\t},\n\tasync mounted() {\n\t\tthis.list = await fetchTrustedSenders()\n\t},\n\tmethods: {\n\t\tasync removeSender(sender) {\n\t\t\t// Remove the item immediately\n\t\t\tthis.list = this.list.filter(s => s.id !== sender.id)\n\t\t\ttry {\n\t\t\t\tawait trustSender(\n\t\t\t\t\tsender.email,\n\t\t\t\t\tsender.type,\n\t\t\t\t\tfalse\n\t\t\t\t)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(`Could not remove trusted sender ${sender.email}`, {\n\t\t\t\t\terror,\n\t\t\t\t})\n\t\t\t\tshowError(t('mail', 'Could not remove trusted sender {sender}', {\n\t\t\t\t\tsender: sender.email,\n\t\t\t\t}))\n\t\t\t\t// Put the sender back\n\t\t\t\tthis.list.push(sender)\n\t\t\t}\n\t\t},\n\t\tsenderType(type) {\n\t\t\tswitch (type) {\n\t\t\tcase 'individual':\n\t\t\t\treturn t('mail', 'individual')\n\t\t\tcase 'domain':\n\t\t\t\treturn t('mail', 'domain')\n\t\t\t}\n\t\t\treturn type\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TrustedSenders.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TrustedSenders.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TrustedSenders.vue?vue&type=template&id=e41e0a8c&scoped=true&\"\nimport script from \"./TrustedSenders.vue?vue&type=script&lang=js&\"\nexport * from \"./TrustedSenders.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e41e0a8c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._l((_vm.sortedSenders),function(sender){return _c('div',{key:sender.email},[_vm._v(\"\\n\\t\\t\"+_vm._s(sender.email)+\"\\n\\t\\t\"+_vm._s(_vm.senderType(sender.type))+\"\\n\\t\\t\"),_c('button',{staticClass:\"button\",on:{\"click\":function($event){return _vm.removeSender(sender)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail','Remove'))+\"\\n\\t\\t\")])])}),_vm._v(\" \"),(!_vm.sortedSenders.length)?_c('span',[_vm._v(\" \"+_vm._s(_vm.t('mail', 'No senders are trusted at the moment.')))]):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<form id=\"sieve-form\">\n\t\t<p>\n\t\t\t<input\n\t\t\t\tid=\"sieve-disabled\"\n\t\t\t\tv-model=\"sieveConfig.sieveEnabled\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\tclass=\"radio\"\n\t\t\t\tname=\"sieve-active\"\n\t\t\t\t:value=\"false\">\n\t\t\t<label\n\t\t\t\t:class=\"{primary: !sieveConfig.sieveEnabled}\"\n\t\t\t\tfor=\"sieve-disabled\">\n\t\t\t\t{{ t('mail', 'Disabled') }}\n\t\t\t</label>\n\t\t\t<input\n\t\t\t\tid=\"sieve-enabled\"\n\t\t\t\tv-model=\"sieveConfig.sieveEnabled\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\tclass=\"radio\"\n\t\t\t\tname=\"sieve-active\"\n\t\t\t\t:value=\"true\">\n\t\t\t<label\n\t\t\t\t:class=\"{primary: sieveConfig.sieveEnabled}\"\n\t\t\t\tfor=\"sieve-enabled\">\n\t\t\t\t{{ t('mail', 'Enabled') }}\n\t\t\t</label>\n\t\t</p>\n\t\t<template v-if=\"sieveConfig.sieveEnabled\">\n\t\t\t<label for=\"sieve-host\">{{ t('mail', 'Sieve Host') }}</label>\n\t\t\t<input\n\t\t\t\tid=\"sieve-host\"\n\t\t\t\tv-model=\"sieveConfig.sieveHost\"\n\t\t\t\ttype=\"text\"\n\t\t\t\trequired>\n\t\t\t<h4>{{ t('mail', 'Sieve Security') }}</h4>\n\t\t\t<div class=\"flex-row\">\n\t\t\t\t<input\n\t\t\t\t\tid=\"sieve-sec-none\"\n\t\t\t\t\tv-model=\"sieveConfig.sieveSslMode\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"sieve-sec\"\n\t\t\t\t\tvalue=\"none\">\n\t\t\t\t<label\n\t\t\t\t\tclass=\"button\"\n\t\t\t\t\tfor=\"sieve-sec-none\"\n\t\t\t\t\t:class=\"{primary: sieveConfig.sieveSslMode === 'none'}\">{{\n\t\t\t\t\t\tt('mail', 'None')\n\t\t\t\t\t}}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"sieve-sec-ssl\"\n\t\t\t\t\tv-model=\"sieveConfig.sieveSslMode\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"sieve-sec\"\n\t\t\t\t\tvalue=\"ssl\">\n\t\t\t\t<label\n\t\t\t\t\tclass=\"button\"\n\t\t\t\t\tfor=\"sieve-sec-ssl\"\n\t\t\t\t\t:class=\"{primary: sieveConfig.sieveSslMode === 'ssl'}\">\n\t\t\t\t\t{{ t('mail', 'SSL/TLS') }}\n\t\t\t\t</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"sieve-sec-tls\"\n\t\t\t\t\tv-model=\"sieveConfig.sieveSslMode\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"sieve-sec\"\n\t\t\t\t\tvalue=\"tls\">\n\t\t\t\t<label\n\t\t\t\t\tclass=\"button\"\n\t\t\t\t\tfor=\"sieve-sec-tls\"\n\t\t\t\t\t:class=\"{primary: sieveConfig.sieveSslMode === 'tls'}\">\n\t\t\t\t\t{{ t('mail', 'STARTTLS') }}\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t\t<label for=\"sieve-port\">{{ t('mail', 'Sieve Port') }}</label>\n\t\t\t<input\n\t\t\t\tid=\"sieve-port\"\n\t\t\t\tv-model=\"sieveConfig.sievePort\"\n\t\t\t\ttype=\"text\"\n\t\t\t\trequired>\n\t\t\t<h4>{{ t('mail', 'Sieve Credentials') }}</h4>\n\t\t\t<p>\n\t\t\t\t<input\n\t\t\t\t\tid=\"sieve-credentials-imap\"\n\t\t\t\t\tv-model=\"useImapCredentials\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tclass=\"radio\"\n\t\t\t\t\t:value=\"true\">\n\t\t\t\t<label\n\t\t\t\t\t:class=\"{primary: useImapCredentials}\"\n\t\t\t\t\tfor=\"sieve-credentials-imap\">\n\t\t\t\t\t{{ t('mail', 'IMAP Credentials') }}\n\t\t\t\t</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"sieve-credentials-custom\"\n\t\t\t\t\tv-model=\"useImapCredentials\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tclass=\"radio\"\n\t\t\t\t\t:value=\"false\">\n\t\t\t\t<label\n\t\t\t\t\t:class=\"{primary: !useImapCredentials}\"\n\t\t\t\t\tfor=\"sieve-credentials-custom\">\n\t\t\t\t\t{{ t('mail', 'Custom') }}\n\t\t\t\t</label>\n\t\t\t</p>\n\t\t\t<template v-if=\"!useImapCredentials\">\n\t\t\t\t<label for=\"sieve-user\">{{ t('mail', 'Sieve User') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"sieve-user\"\n\t\t\t\t\tv-model=\"sieveConfig.sieveUser\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\trequired>\n\t\t\t\t<label for=\"sieve-password\">{{\n\t\t\t\t\tt('mail', 'Sieve Password')\n\t\t\t\t}}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"sieve-password\"\n\t\t\t\t\tv-model=\"sieveConfig.sievePassword\"\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\trequired>\n\t\t\t</template>\n\t\t</template>\n\t\t<slot name=\"feedback\" />\n\t\t<p v-if=\"errorMessage\">\n\t\t\t{{ t('mail', 'Oh Snap!') }}\n\t\t\t{{ errorMessage }}\n\t\t</p>\n\t\t<input type=\"submit\"\n\t\t\tclass=\"primary\"\n\t\t\t:disabled=\"loading\"\n\t\t\t:value=\"submitButtonText\"\n\t\t\t@click.prevent=\"onSubmit\">\n\t</form>\n</template>\n\n<script>\nexport default {\n\tname: 'SieveAccountForm',\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsieveConfig: {\n\t\t\t\tsieveEnabled: this.account.sieveEnabled,\n\t\t\t\tsieveHost: this.account.sieveHost || this.account.imapHost,\n\t\t\t\tsievePort: this.account.sievePort || 4190,\n\t\t\t\tsieveUser: this.account.sieveUser || '',\n\t\t\t\tsievePassword: '',\n\t\t\t\tsieveSslMode: this.account.sieveSslMode || 'tls',\n\t\t\t},\n\t\t\tloading: false,\n\t\t\tuseImapCredentials: !this.account.sieveUser,\n\t\t\terrorMessage: '',\n\t\t\tsubmitButtonText: t('mail', 'Save sieve settings'),\n\t\t}\n\t},\n\tmethods: {\n\t\tasync onSubmit() {\n\t\t\tthis.loading = true\n\t\t\tthis.errorMessage = ''\n\n\t\t\t// empty user and password => use imap credentials\n\t\t\tif (this.sieveConfig.sieveUser === '' && this.sieveConfig.sievePassword === '') {\n\t\t\t\tthis.useImapCredentials = true\n\t\t\t}\n\n\t\t\t// clear user and password if imap credentials are used\n\t\t\tif (this.useImapCredentials) {\n\t\t\t\tthis.sieveConfig.sieveUser = ''\n\t\t\t\tthis.sieveConfig.sievePassword = ''\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('updateSieveAccount', {\n\t\t\t\t\taccount: this.account,\n\t\t\t\t\tdata: this.sieveConfig,\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tthis.errorMessage = error.message\n\t\t\t}\n\n\t\t\tthis.loading = false\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\nform {\n\twidth: 250px\n}\n\nlabel {\n\tdisplay: inline-block;\n}\n\ninput {\n\twidth: 100%;\n}\n\n.flex-row {\n\tdisplay: flex;\n}\n\nlabel.button {\n\ttext-align: center;\n\tflex-grow: 1;\n}\n\nlabel.error {\n\tcolor: red;\n}\n\ninput[type='radio'] {\n\tdisplay: none;\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SieveAccountForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SieveAccountForm.vue?vue&type=script&lang=js&\"","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SieveAccountForm.vue?vue&type=style&index=0&id=8b1dc5a0&scoped=true&lang=css&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./SieveAccountForm.vue?vue&type=template&id=8b1dc5a0&scoped=true&\"\nimport script from \"./SieveAccountForm.vue?vue&type=script&lang=js&\"\nexport * from \"./SieveAccountForm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SieveAccountForm.vue?vue&type=style&index=0&id=8b1dc5a0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8b1dc5a0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{attrs:{\"id\":\"sieve-form\"}},[_c('p',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sieveConfig.sieveEnabled),expression:\"sieveConfig.sieveEnabled\"}],staticClass:\"radio\",attrs:{\"id\":\"sieve-disabled\",\"type\":\"radio\",\"name\":\"sieve-active\"},domProps:{\"value\":false,\"checked\":_vm._q(_vm.sieveConfig.sieveEnabled,false)},on:{\"change\":function($event){return _vm.$set(_vm.sieveConfig, \"sieveEnabled\", false)}}}),_vm._v(\" \"),_c('label',{class:{primary: !_vm.sieveConfig.sieveEnabled},attrs:{\"for\":\"sieve-disabled\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Disabled'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sieveConfig.sieveEnabled),expression:\"sieveConfig.sieveEnabled\"}],staticClass:\"radio\",attrs:{\"id\":\"sieve-enabled\",\"type\":\"radio\",\"name\":\"sieve-active\"},domProps:{\"value\":true,\"checked\":_vm._q(_vm.sieveConfig.sieveEnabled,true)},on:{\"change\":function($event){return _vm.$set(_vm.sieveConfig, \"sieveEnabled\", true)}}}),_vm._v(\" \"),_c('label',{class:{primary: _vm.sieveConfig.sieveEnabled},attrs:{\"for\":\"sieve-enabled\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Enabled'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),(_vm.sieveConfig.sieveEnabled)?[_c('label',{attrs:{\"for\":\"sieve-host\"}},[_vm._v(_vm._s(_vm.t('mail', 'Sieve Host')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sieveConfig.sieveHost),expression:\"sieveConfig.sieveHost\"}],attrs:{\"id\":\"sieve-host\",\"type\":\"text\",\"required\":\"\"},domProps:{\"value\":(_vm.sieveConfig.sieveHost)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.sieveConfig, \"sieveHost\", $event.target.value)}}}),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.t('mail', 'Sieve Security')))]),_vm._v(\" \"),_c('div',{staticClass:\"flex-row\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sieveConfig.sieveSslMode),expression:\"sieveConfig.sieveSslMode\"}],attrs:{\"id\":\"sieve-sec-none\",\"type\":\"radio\",\"name\":\"sieve-sec\",\"value\":\"none\"},domProps:{\"checked\":_vm._q(_vm.sieveConfig.sieveSslMode,\"none\")},on:{\"change\":function($event){return _vm.$set(_vm.sieveConfig, \"sieveSslMode\", \"none\")}}}),_vm._v(\" \"),_c('label',{staticClass:\"button\",class:{primary: _vm.sieveConfig.sieveSslMode === 'none'},attrs:{\"for\":\"sieve-sec-none\"}},[_vm._v(_vm._s(_vm.t('mail', 'None')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sieveConfig.sieveSslMode),expression:\"sieveConfig.sieveSslMode\"}],attrs:{\"id\":\"sieve-sec-ssl\",\"type\":\"radio\",\"name\":\"sieve-sec\",\"value\":\"ssl\"},domProps:{\"checked\":_vm._q(_vm.sieveConfig.sieveSslMode,\"ssl\")},on:{\"change\":function($event){return _vm.$set(_vm.sieveConfig, \"sieveSslMode\", \"ssl\")}}}),_vm._v(\" \"),_c('label',{staticClass:\"button\",class:{primary: _vm.sieveConfig.sieveSslMode === 'ssl'},attrs:{\"for\":\"sieve-sec-ssl\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'SSL/TLS'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sieveConfig.sieveSslMode),expression:\"sieveConfig.sieveSslMode\"}],attrs:{\"id\":\"sieve-sec-tls\",\"type\":\"radio\",\"name\":\"sieve-sec\",\"value\":\"tls\"},domProps:{\"checked\":_vm._q(_vm.sieveConfig.sieveSslMode,\"tls\")},on:{\"change\":function($event){return _vm.$set(_vm.sieveConfig, \"sieveSslMode\", \"tls\")}}}),_vm._v(\" \"),_c('label',{staticClass:\"button\",class:{primary: _vm.sieveConfig.sieveSslMode === 'tls'},attrs:{\"for\":\"sieve-sec-tls\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'STARTTLS'))+\"\\n\\t\\t\\t\")])]),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"sieve-port\"}},[_vm._v(_vm._s(_vm.t('mail', 'Sieve Port')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sieveConfig.sievePort),expression:\"sieveConfig.sievePort\"}],attrs:{\"id\":\"sieve-port\",\"type\":\"text\",\"required\":\"\"},domProps:{\"value\":(_vm.sieveConfig.sievePort)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.sieveConfig, \"sievePort\", $event.target.value)}}}),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.t('mail', 'Sieve Credentials')))]),_vm._v(\" \"),_c('p',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.useImapCredentials),expression:\"useImapCredentials\"}],staticClass:\"radio\",attrs:{\"id\":\"sieve-credentials-imap\",\"type\":\"radio\"},domProps:{\"value\":true,\"checked\":_vm._q(_vm.useImapCredentials,true)},on:{\"change\":function($event){_vm.useImapCredentials=true}}}),_vm._v(\" \"),_c('label',{class:{primary: _vm.useImapCredentials},attrs:{\"for\":\"sieve-credentials-imap\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'IMAP Credentials'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.useImapCredentials),expression:\"useImapCredentials\"}],staticClass:\"radio\",attrs:{\"id\":\"sieve-credentials-custom\",\"type\":\"radio\"},domProps:{\"value\":false,\"checked\":_vm._q(_vm.useImapCredentials,false)},on:{\"change\":function($event){_vm.useImapCredentials=false}}}),_vm._v(\" \"),_c('label',{class:{primary: !_vm.useImapCredentials},attrs:{\"for\":\"sieve-credentials-custom\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Custom'))+\"\\n\\t\\t\\t\")])]),_vm._v(\" \"),(!_vm.useImapCredentials)?[_c('label',{attrs:{\"for\":\"sieve-user\"}},[_vm._v(_vm._s(_vm.t('mail', 'Sieve User')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sieveConfig.sieveUser),expression:\"sieveConfig.sieveUser\"}],attrs:{\"id\":\"sieve-user\",\"type\":\"text\",\"required\":\"\"},domProps:{\"value\":(_vm.sieveConfig.sieveUser)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.sieveConfig, \"sieveUser\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"sieve-password\"}},[_vm._v(_vm._s(_vm.t('mail', 'Sieve Password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sieveConfig.sievePassword),expression:\"sieveConfig.sievePassword\"}],attrs:{\"id\":\"sieve-password\",\"type\":\"password\",\"required\":\"\"},domProps:{\"value\":(_vm.sieveConfig.sievePassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.sieveConfig, \"sievePassword\", $event.target.value)}}})]:_vm._e()]:_vm._e(),_vm._v(\" \"),_vm._t(\"feedback\"),_vm._v(\" \"),(_vm.errorMessage)?_c('p',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('mail', 'Oh Snap!'))+\"\\n\\t\\t\"+_vm._s(_vm.errorMessage)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('input',{staticClass:\"primary\",attrs:{\"type\":\"submit\",\"disabled\":_vm.loading},domProps:{\"value\":_vm.submitButtonText},on:{\"click\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div class=\"section\">\n\t\t<textarea\n\t\t\tid=\"sieve-text-area\"\n\t\t\tv-model=\"active.script\"\n\t\t\tv-shortkey.avoid\n\t\t\trows=\"20\"\n\t\t\t:disabled=\"loading\" />\n\t\t<p v-if=\"errorMessage\">\n\t\t\t{{ t('mail', 'Oh Snap!') }}\n\t\t\t{{ errorMessage }}\n\t\t</p>\n\t\t<button\n\t\t\tclass=\"primary\"\n\t\t\t:class=\"loading ? 'icon-loading-small-dark' : 'icon-checkmark-white'\"\n\t\t\t:disabled=\"loading\"\n\t\t\t@click=\"saveActiveScript\">\n\t\t\t{{ t('mail', 'Save sieve script') }}\n\t\t</button>\n\t</div>\n</template>\n\n<script>\nimport { getActiveScript, updateActiveScript } from '../service/SieveService'\n\nexport default {\n\tname: 'SieveFilterForm',\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tactive: {},\n\t\t\tloading: false,\n\t\t\terrorMessage: '',\n\t\t}\n\t},\n\tasync mounted() {\n\t\tthis.active = await getActiveScript(this.account.id)\n\t},\n\tmethods: {\n\t\tasync saveActiveScript() {\n\t\t\tthis.loading = true\n\t\t\tthis.errorMessage = ''\n\n\t\t\ttry {\n\t\t\t\tawait updateActiveScript(this.account.id, this.active)\n\t\t\t} catch (error) {\n\t\t\t\tthis.errorMessage = error.message\n\t\t\t}\n\n\t\t\tthis.loading = false\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.section {\n\tdisplay: block;\n\tpadding: 0;\n\tmargin-bottom: 23px;\n}\n\ntextarea {\n\twidth: 100%;\n}\n\n.primary {\n\tpadding-left: 26px;\n\tbackground-position: 6px;\n\tcolor: var(--color-main-background);\n\n\t&:after {\n\t\t left: 14px;\n\t }\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SieveFilterForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SieveFilterForm.vue?vue&type=script&lang=js&\"","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SieveFilterForm.vue?vue&type=style&index=0&id=568aaba6&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","<!--\n - @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n - @copyright 2020 Greta Doci <gretadoci@gmail.com>\n -\n - @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n - @author 2020 Greta Doci <gretadoci@gmail.com>\n -\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n\n<template>\n\t<AppSettingsDialog\n\t\t:open.sync=\"showSettings\"\n\t\t:show-navigation=\"true\">\n\t\t<AppSettingsSection\n\t\t\t:title=\"t('mail', 'Account settings')\">\n\t\t\t<strong>{{ displayName }}</strong> <{{ email }}>\n\t\t\t<a\n\t\t\t\tv-if=\"!account.provisioned\"\n\t\t\t\tclass=\"button icon-rename\"\n\t\t\t\t:title=\"t('mail', 'Change name')\"\n\t\t\t\t@click=\"handleClick\" />\n\t\t\t<AliasSettings v-if=\"!account.provisioned\" :account=\"account\" />\n\t\t</AppSettingsSection>\n\t\t<AppSettingsSection :title=\"t('mail', 'Signature')\">\n\t\t\t<p class=\"settings-hint\">\n\t\t\t\t{{ t('mail', 'A signature is added to the text of new messages and replies.') }}\n\t\t\t</p>\n\t\t\t<SignatureSettings :account=\"account\" />\n\t\t</AppSettingsSection>\n\t\t<AppSettingsSection :title=\"t('mail', 'Writing mode')\">\n\t\t\t<p class=\"settings-hint\">\n\t\t\t\t{{ t('mail', 'Preferred writing mode for new messages and replies.') }}\n\t\t\t</p>\n\t\t\t<EditorSettings :account=\"account\" />\n\t\t</AppSettingsSection>\n\t\t<AppSettingsSection :title=\" t('mail', 'Default folders')\">\n\t\t\t<p class=\"settings-hint\">\n\t\t\t\t{{\n\t\t\t\t\tt('mail', 'The folders to use for drafts, sent messages and deleted messages.')\n\t\t\t\t}}\n\t\t\t</p>\n\t\t\t<AccountDefaultsSettings :account=\"account\" />\n\t\t</AppSettingsSection>\n\t\t<AppSettingsSection v-if=\"account && !account.provisioned\" :title=\"t('mail', 'Mail server')\">\n\t\t\t<div id=\"mail-settings\">\n\t\t\t\t<AccountForm\n\t\t\t\t\t:key=\"account.accountId\"\n\t\t\t\t\tref=\"accountForm\"\n\t\t\t\t\t:display-name=\"displayName\"\n\t\t\t\t\t:email=\"email\"\n\t\t\t\t\t:save=\"onSave\"\n\t\t\t\t\t:account=\"account\" />\n\t\t\t</div>\n\t\t</AppSettingsSection>\n\t\t<AppSettingsSection v-if=\"account && !account.provisioned\" :title=\"t('mail', 'Sieve filter server')\">\n\t\t\t<div id=\"sieve-settings\">\n\t\t\t\t<SieveAccountForm\n\t\t\t\t\t:key=\"account.accountId\"\n\t\t\t\t\tref=\"sieveAccountForm\"\n\t\t\t\t\t:account=\"account\" />\n\t\t\t</div>\n\t\t</AppSettingsSection>\n\t\t<AppSettingsSection v-if=\"account && account.sieveEnabled\" :title=\"t('mail', 'Sieve filter rules')\">\n\t\t\t<div id=\"sieve-filter\">\n\t\t\t\t<SieveFilterForm\n\t\t\t\t\t:key=\"account.accountId\"\n\t\t\t\t\tref=\"sieveFilterForm\"\n\t\t\t\t\t:account=\"account\" />\n\t\t\t</div>\n\t\t</AppSettingsSection>\n\t\t<AppSettingsSection :title=\"t('mail', 'Trusted senders')\">\n\t\t\t<TrustedSenders />\n\t\t</AppSettingsSection>\n\t</AppSettingsDialog>\n</template>\n\n<script>\nimport AccountForm from '../components/AccountForm'\nimport EditorSettings from '../components/EditorSettings'\nimport AccountDefaultsSettings from '../components/AccountDefaultsSettings'\nimport Logger from '../logger'\nimport SignatureSettings from '../components/SignatureSettings'\nimport AliasSettings from '../components/AliasSettings'\nimport AppSettingsDialog from '@nextcloud/vue/dist/Components/AppSettingsDialog'\nimport AppSettingsSection from '@nextcloud/vue/dist/Components/AppSettingsSection'\nimport TrustedSenders from './TrustedSenders'\nimport SieveAccountForm from './SieveAccountForm'\nimport SieveFilterForm from './SieveFilterForm'\nexport default {\n\tname: 'AccountSettings',\n\tcomponents: {\n\t\tSieveAccountForm,\n\t\tSieveFilterForm,\n\t\tTrustedSenders,\n\t\tAccountForm,\n\t\tAliasSettings,\n\t\tEditorSettings,\n\t\tSignatureSettings,\n\t\tAppSettingsDialog,\n\t\tAppSettingsSection,\n\t\tAccountDefaultsSettings,\n\t},\n\tprops: {\n\t\taccount: {\n\t\t\trequired: true,\n\t\t\ttype: Object,\n\t\t},\n\t\topen: {\n\t\t\trequired: true,\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowSettings: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tmenu() {\n\t\t\treturn this.buildMenu()\n\t\t},\n\t\tdisplayName() {\n\t\t\treturn this.account.name\n\t\t},\n\t\temail() {\n\t\t\treturn this.account.emailAddress\n\t\t},\n\t},\n\twatch: {\n\t\tshowSettings(value) {\n\t\t\tif (!value) {\n\t\t\t\tthis.$emit('update:open', value)\n\t\t\t}\n\t\t},\n\t\topen(value) {\n\t\t\tif (value) {\n\t\t\t\tthis.showSettings = true\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\tonSave(data) {\n\t\t\tLogger.log('saving data', { data })\n\t\t\treturn this.$store\n\t\t\t\t.dispatch('updateAccount', {\n\t\t\t\t\t...data,\n\t\t\t\t\taccountId: this.account.id,\n\t\t\t\t})\n\t\t\t\t.then((account) => account)\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tLogger.error('account update failed:', { error })\n\t\t\t\t\tthrow error\n\t\t\t\t})\n\t\t},\n\t\thandleClick() {\n\t\t\tthis.$refs.accountForm.$el.scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t})\n\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n::v-deep .modal-container {\n\tdisplay: block;\n\toverflow: scroll;\n\ttransition: transform 300ms ease;\n\tborder-radius: var(--border-radius-large);\n\tbox-shadow: 0 0 40px rgba(0,0,0,0.2);\n\tpadding: 30px 70px 20px;\n}\n.button.icon-rename {\n\tbackground-image: var(--icon-rename-000);\n\tbackground-color: var(--color-main-background);\n\tborder: none;\n\topacity: 0.7;\n\t&:hover,\n\t&:focus {\n\t\topacity: 1;\n\t}\n}\n.settings-hint {\n\tmargin-top: -12px;\n\tmargin-bottom: 6px;\n\tcolor: var(--color-text-maxcontrast);\n}\nh2 {\n\tfont-weight: bold;\n\tfont-size: 20px;\n\tmargin-bottom: 12px;\n\tmargin-left: -30px;\n\tline-height: 30px;\n\tcolor: var(--color-text-light);\n}\n.app-settings-section {\nmargin-bottom: 45px;\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SieveFilterForm.vue?vue&type=template&id=568aaba6&scoped=true&\"\nimport script from \"./SieveFilterForm.vue?vue&type=script&lang=js&\"\nexport * from \"./SieveFilterForm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SieveFilterForm.vue?vue&type=style&index=0&id=568aaba6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"568aaba6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"section\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.active.script),expression:\"active.script\"},{name:\"shortkey\",rawName:\"v-shortkey.avoid\",modifiers:{\"avoid\":true}}],attrs:{\"id\":\"sieve-text-area\",\"rows\":\"20\",\"disabled\":_vm.loading},domProps:{\"value\":(_vm.active.script)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.active, \"script\", $event.target.value)}}}),_vm._v(\" \"),(_vm.errorMessage)?_c('p',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('mail', 'Oh Snap!'))+\"\\n\\t\\t\"+_vm._s(_vm.errorMessage)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"primary\",class:_vm.loading ? 'icon-loading-small-dark' : 'icon-checkmark-white',attrs:{\"disabled\":_vm.loading},on:{\"click\":_vm.saveActiveScript}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('mail', 'Save sieve script'))+\"\\n\\t\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountSettings.vue?vue&type=style&index=0&id=4aa4f25a&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./AccountSettings.vue?vue&type=template&id=4aa4f25a&scoped=true&\"\nimport script from \"./AccountSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AccountSettings.vue?vue&type=style&index=0&id=4aa4f25a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4aa4f25a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppSettingsDialog',{attrs:{\"open\":_vm.showSettings,\"show-navigation\":true},on:{\"update:open\":function($event){_vm.showSettings=$event}}},[_c('AppSettingsSection',{attrs:{\"title\":_vm.t('mail', 'Account settings')}},[_c('strong',[_vm._v(_vm._s(_vm.displayName))]),_vm._v(\" <\"+_vm._s(_vm.email)+\">\\n\\t\\t\"),(!_vm.account.provisioned)?_c('a',{staticClass:\"button icon-rename\",attrs:{\"title\":_vm.t('mail', 'Change name')},on:{\"click\":_vm.handleClick}}):_vm._e(),_vm._v(\" \"),(!_vm.account.provisioned)?_c('AliasSettings',{attrs:{\"account\":_vm.account}}):_vm._e()],1),_vm._v(\" \"),_c('AppSettingsSection',{attrs:{\"title\":_vm.t('mail', 'Signature')}},[_c('p',{staticClass:\"settings-hint\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'A signature is added to the text of new messages and replies.'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('SignatureSettings',{attrs:{\"account\":_vm.account}})],1),_vm._v(\" \"),_c('AppSettingsSection',{attrs:{\"title\":_vm.t('mail', 'Writing mode')}},[_c('p',{staticClass:\"settings-hint\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Preferred writing mode for new messages and replies.'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('EditorSettings',{attrs:{\"account\":_vm.account}})],1),_vm._v(\" \"),_c('AppSettingsSection',{attrs:{\"title\":_vm.t('mail', 'Default folders')}},[_c('p',{staticClass:\"settings-hint\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'The folders to use for drafts, sent messages and deleted messages.'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('AccountDefaultsSettings',{attrs:{\"account\":_vm.account}})],1),_vm._v(\" \"),(_vm.account && !_vm.account.provisioned)?_c('AppSettingsSection',{attrs:{\"title\":_vm.t('mail', 'Mail server')}},[_c('div',{attrs:{\"id\":\"mail-settings\"}},[_c('AccountForm',{key:_vm.account.accountId,ref:\"accountForm\",attrs:{\"display-name\":_vm.displayName,\"email\":_vm.email,\"save\":_vm.onSave,\"account\":_vm.account}})],1)]):_vm._e(),_vm._v(\" \"),(_vm.account && !_vm.account.provisioned)?_c('AppSettingsSection',{attrs:{\"title\":_vm.t('mail', 'Sieve filter server')}},[_c('div',{attrs:{\"id\":\"sieve-settings\"}},[_c('SieveAccountForm',{key:_vm.account.accountId,ref:\"sieveAccountForm\",attrs:{\"account\":_vm.account}})],1)]):_vm._e(),_vm._v(\" \"),(_vm.account && _vm.account.sieveEnabled)?_c('AppSettingsSection',{attrs:{\"title\":_vm.t('mail', 'Sieve filter rules')}},[_c('div',{attrs:{\"id\":\"sieve-filter\"}},[_c('SieveFilterForm',{key:_vm.account.accountId,ref:\"sieveFilterForm\",attrs:{\"account\":_vm.account}})],1)]):_vm._e(),_vm._v(\" \"),_c('AppSettingsSection',{attrs:{\"title\":_vm.t('mail', 'Trusted senders')}},[_c('TrustedSenders')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n\n<template>\n\t<AppNavigationItem\n\t\tv-if=\"visible\"\n\t\t:id=\"id\"\n\t\t:key=\"id\"\n\t\t:icon=\"iconError\"\n\t\t:menu-open.sync=\"menuOpen\"\n\t\t:title=\"account.emailAddress\"\n\t\t:to=\"firstMailboxRoute\"\n\t\t:exact=\"true\"\n\t\t@update:menuOpen=\"onMenuToggle\">\n\t\t<!-- Color dot -->\n\t\t<AppNavigationIconBullet v-if=\"bulletColor\" slot=\"icon\" :color=\"bulletColor\" />\n\n\t\t<!-- Actions -->\n\t\t<template #actions>\n\t\t\t<ActionText v-if=\"!account.isUnified\" icon=\"icon-info\" :title=\"t('mail', 'Quota')\">\n\t\t\t\t{{ quotaText }}\n\t\t\t</ActionText>\n\t\t\t<ActionButton icon=\"icon-settings\"\n\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t@click=\"showAccountSettings\"\n\t\t\t\t@shortkey=\"toggleAccountSettings\">\n\t\t\t\t{{ t('mail', 'Account settings') }}\n\t\t\t</ActionButton>\n\t\t\t<ActionCheckbox\n\t\t\t\t:checked=\"account.showSubscribedOnly\"\n\t\t\t\t:disabled=\"savingShowOnlySubscribed\"\n\t\t\t\t@update:checked=\"changeShowSubscribedOnly\">\n\t\t\t\t{{ t('mail', 'Show only subscribed mailboxes') }}\n\t\t\t</ActionCheckbox>\n\t\t\t<ActionButton v-if=\"!editing\" icon=\"icon-folder\" @click=\"openCreateMailbox\">\n\t\t\t\t{{ t('mail', 'Add mailbox') }}\n\t\t\t</ActionButton>\n\t\t\t<ActionInput v-if=\"editing\" icon=\"icon-folder\" @submit.prevent.stop=\"createMailbox\" />\n\t\t\t<ActionText v-if=\"showSaving\" icon=\"icon-loading-small\">\n\t\t\t\t{{ t('mail', 'Saving') }}\n\t\t\t</ActionText>\n\t\t\t<ActionButton v-if=\"!isFirst\" icon=\"icon-triangle-n\" @click=\"changeAccountOrderUp\">\n\t\t\t\t{{ t('mail', 'Move up') }}\n\t\t\t</ActionButton>\n\t\t\t<ActionButton v-if=\"!isLast\" icon=\"icon-triangle-s\" @click=\"changeAccountOrderDown\">\n\t\t\t\t{{ t('mail', 'Move down') }}\n\t\t\t</ActionButton>\n\t\t\t<ActionButton v-if=\"!account.provisioned\" icon=\"icon-delete\" @click=\"removeAccount\">\n\t\t\t\t{{ t('mail', 'Remove account') }}\n\t\t\t</ActionButton>\n\t\t</template>\n\t\t<template #extra>\n\t\t\t<AccountSettings :open.sync=\"showSettings\" :account=\"account\" />\n\t\t</template>\n\t</AppNavigationItem>\n</template>\n\n<script>\nimport AppNavigationItem from '@nextcloud/vue/dist/Components/AppNavigationItem'\nimport AppNavigationIconBullet from '@nextcloud/vue/dist/Components/AppNavigationIconBullet'\nimport ActionButton from '@nextcloud/vue/dist/Components/ActionButton'\nimport ActionCheckbox from '@nextcloud/vue/dist/Components/ActionCheckbox'\nimport ActionInput from '@nextcloud/vue/dist/Components/ActionInput'\nimport ActionText from '@nextcloud/vue/dist/Components/ActionText'\nimport { formatFileSize } from '@nextcloud/files'\nimport { generateUrl } from '@nextcloud/router'\n\nimport { calculateAccountColor } from '../util/AccountColor'\nimport logger from '../logger'\nimport { fetchQuota } from '../service/AccountService'\nimport AccountSettings from './AccountSettings'\n\nexport default {\n\tname: 'NavigationAccount',\n\tcomponents: {\n\t\tAppNavigationItem,\n\t\tAppNavigationIconBullet,\n\t\tActionButton,\n\t\tActionCheckbox,\n\t\tActionInput,\n\t\tActionText,\n\t\tAccountSettings,\n\t},\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tfirstMailbox: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => undefined,\n\t\t},\n\t\tisFirst: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisLast: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tmenuOpen: false,\n\t\t\tloading: {\n\t\t\t\tdelete: false,\n\t\t\t},\n\t\t\tsavingShowOnlySubscribed: false,\n\t\t\tquota: undefined,\n\t\t\tediting: false,\n\t\t\tshowSaving: false,\n\t\t\tshowSettings: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tvisible() {\n\t\t\treturn this.account.isUnified !== true && this.account.visible !== false\n\t\t},\n\t\tfirstMailboxRoute() {\n\t\t\tif (this.firstMailbox) {\n\t\t\t\treturn {\n\t\t\t\t\tname: 'mailbox',\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tmailboxId: this.firstMailbox.databaseId,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t},\n\t\tid() {\n\t\t\treturn 'account-' + this.account.id\n\t\t},\n\t\tbulletColor() {\n\t\t\treturn this.account.error ? undefined : calculateAccountColor(this.account.emailAddress)\n\t\t},\n\t\ticonError() {\n\t\t\treturn this.account.error ? 'icon-error' : undefined\n\t\t},\n\t\tquotaText() {\n\t\t\tif (this.quota === undefined) {\n\t\t\t\treturn t('mail', 'Loading …')\n\t\t\t}\n\t\t\tif (this.quota === false) {\n\t\t\t\treturn t('mail', 'Not supported by the server')\n\t\t\t}\n\n\t\t\treturn t('mail', '{usage} of {limit} used', {\n\t\t\t\tusage: formatFileSize(this.quota.usage),\n\t\t\t\tlimit: formatFileSize(this.quota.limit),\n\t\t\t})\n\t\t},\n\t},\n\tmethods: {\n\t\tcreateMailbox(e) {\n\t\t\tthis.editing = true\n\t\t\tconst name = e.target.elements[1].value\n\t\t\tlogger.info('creating mailbox ' + name)\n\t\t\tthis.menuOpen = false\n\t\t\tthis.$store\n\t\t\t\t.dispatch('createMailbox', { account: this.account, name })\n\t\t\t\t.then(() => logger.info(`mailbox ${name} created`))\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tlogger.error('could not create mailbox', { error })\n\t\t\t\t\tthrow error\n\t\t\t\t})\n\t\t\tthis.editing = false\n\t\t\tthis.showSaving = false\n\t\t},\n\t\topenCreateMailbox() {\n\t\t\tthis.editing = true\n\t\t\tthis.showSaving = false\n\t\t},\n\t\tremoveAccount() {\n\t\t\tconst id = this.account.id\n\t\t\tlogger.info('delete account', { account: this.account })\n\t\t\t// eslint-disable-next-line\n\t\t\tconst dialogueText = t('mail', 'The account for {email} and cached email data will be removed from Nextcloud, but not from your email provider.', { email: this.account.emailAddress });\n\t\t\tOC.dialogs.confirmDestructive(\n\t\t\t\tdialogueText,\n\t\t\t\tt('mail', 'Remove account {email}', { email: this.account.emailAddress }),\n\t\t\t\t{\n\t\t\t\t\ttype: OC.dialogs.YES_NO_BUTTONS,\n\t\t\t\t\tconfirm: t('mail', 'Remove {email}', { email: this.account.emailAddress }),\n\t\t\t\t\tconfirmClasses: 'error',\n\t\t\t\t\tcancel: t('mail', 'Cancel'),\n\t\t\t\t},\n\t\t\t\t(result) => {\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\treturn this.$store\n\t\t\t\t\t\t\t.dispatch('deleteAccount', this.account)\n\t\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\t\tthis.loading.delete = true\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\t\tlogger.info(`account ${id} deleted, redirecting …`)\n\n\t\t\t\t\t\t\t\t// TODO: update store and handle this more efficiently\n\t\t\t\t\t\t\t\tlocation.href = generateUrl('/apps/mail')\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch((error) => logger.error('could not delete account', { error }))\n\t\t\t\t\t}\n\t\t\t\t\tthis.loading.delete = false\n\t\t\t\t}\n\t\t\t)\n\t\t},\n\t\tchangeAccountOrderUp() {\n\t\t\tthis.$store\n\t\t\t\t.dispatch('moveAccount', { account: this.account, up: true })\n\t\t\t\t.catch((error) => logger.error('could not move account up', { error }))\n\t\t},\n\t\tchangeAccountOrderDown() {\n\t\t\tthis.$store\n\t\t\t\t.dispatch('moveAccount', { account: this.account })\n\t\t\t\t.catch((error) => logger.error('could not move account down', { error }))\n\t\t},\n\t\tchangeShowSubscribedOnly(onlySubscribed) {\n\t\t\tthis.savingShowOnlySubscribed = true\n\t\t\tthis.$store\n\t\t\t\t.dispatch('patchAccount', {\n\t\t\t\t\taccount: this.account,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tshowSubscribedOnly: onlySubscribed,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.savingShowOnlySubscribed = false\n\t\t\t\t\tlogger.info('show only subscribed mailboxes updated to ' + onlySubscribed)\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tlogger.error('could not update subscription mode', { error })\n\t\t\t\t\tthis.savingShowOnlySubscribed = false\n\t\t\t\t\tthrow error\n\t\t\t\t})\n\t\t},\n\t\tonMenuToggle(open) {\n\t\t\tif (open) {\n\t\t\t\tconsole.debug('accounts menu opened, fetching quota')\n\t\t\t\tthis.fetchQuota()\n\t\t\t}\n\t\t},\n\t\tasync fetchQuota() {\n\t\t\tconst quota = await fetchQuota(this.account.id)\n\t\t\tconsole.debug('quota fetched', {\n\t\t\t\tquota,\n\t\t\t})\n\n\t\t\tif (quota === undefined) {\n\t\t\t\t// Server does not support this\n\t\t\t\tthis.quota = false\n\t\t\t} else {\n\t\t\t\tthis.quota = quota\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Toggles the account settings overview\n\t\t */\n\t\ttoggleAccountSettings() {\n\t\t\tthis.displayAccountSettings = !this.displayAccountSettings\n\t\t},\n\t\t/**\n\t\t * Shows the account settings\n\t\t */\n\t\tshowAccountSettings() {\n\t\t\tthis.showSettings = true\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationAccount.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationAccount.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NavigationAccount.vue?vue&type=template&id=9a4a3bf0&\"\nimport script from \"./NavigationAccount.vue?vue&type=script&lang=js&\"\nexport * from \"./NavigationAccount.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('AppNavigationItem',{key:_vm.id,attrs:{\"id\":_vm.id,\"icon\":_vm.iconError,\"menu-open\":_vm.menuOpen,\"title\":_vm.account.emailAddress,\"to\":_vm.firstMailboxRoute,\"exact\":true},on:{\"update:menuOpen\":[function($event){_vm.menuOpen=$event},_vm.onMenuToggle],\"update:menu-open\":function($event){_vm.menuOpen=$event}},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(!_vm.account.isUnified)?_c('ActionText',{attrs:{\"icon\":\"icon-info\",\"title\":_vm.t('mail', 'Quota')}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.quotaText)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('ActionButton',{attrs:{\"icon\":\"icon-settings\",\"close-after-click\":true},on:{\"click\":_vm.showAccountSettings,\"shortkey\":_vm.toggleAccountSettings}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Account settings'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('ActionCheckbox',{attrs:{\"checked\":_vm.account.showSubscribedOnly,\"disabled\":_vm.savingShowOnlySubscribed},on:{\"update:checked\":_vm.changeShowSubscribedOnly}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Show only subscribed mailboxes'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(!_vm.editing)?_c('ActionButton',{attrs:{\"icon\":\"icon-folder\"},on:{\"click\":_vm.openCreateMailbox}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Add mailbox'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.editing)?_c('ActionInput',{attrs:{\"icon\":\"icon-folder\"},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.createMailbox($event)}}}):_vm._e(),_vm._v(\" \"),(_vm.showSaving)?_c('ActionText',{attrs:{\"icon\":\"icon-loading-small\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Saving'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isFirst)?_c('ActionButton',{attrs:{\"icon\":\"icon-triangle-n\"},on:{\"click\":_vm.changeAccountOrderUp}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Move up'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.isLast)?_c('ActionButton',{attrs:{\"icon\":\"icon-triangle-s\"},on:{\"click\":_vm.changeAccountOrderDown}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Move down'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.account.provisioned)?_c('ActionButton',{attrs:{\"icon\":\"icon-delete\"},on:{\"click\":_vm.removeAccount}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Remove account'))+\"\\n\\t\\t\")]):_vm._e()]},proxy:true},{key:\"extra\",fn:function(){return [_c('AccountSettings',{attrs:{\"open\":_vm.showSettings,\"account\":_vm.account},on:{\"update:open\":function($event){_vm.showSettings=$event}}})]},proxy:true}],null,false,4058185783)},[(_vm.bulletColor)?_c('AppNavigationIconBullet',{attrs:{\"slot\":\"icon\",\"color\":_vm.bulletColor},slot:\"icon\"}):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n\n<template>\n\t<AppNavigationItem :title=\"title\" @click=\"toggleCollapse\" />\n</template>\n\n<script>\nimport AppNavigationItem from '@nextcloud/vue/dist/Components/AppNavigationItem'\nimport logger from '../logger'\n\nexport default {\n\tname: 'NavigationAccountExpandCollapse',\n\tcomponents: {\n\t\tAppNavigationItem,\n\t},\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\tid() {\n\t\t\treturn 'collapse-' + this.account.id\n\t\t},\n\t\ttitle() {\n\t\t\tif (this.account.collapsed && this.account.showSubscribedOnly) {\n\t\t\t\treturn t('mail', 'Show all subscribed mailboxes')\n\t\t\t} else if (this.account.collapsed && !this.account.showSubscribedOnly) {\n\t\t\t\treturn t('mail', 'Show all mailboxes')\n\t\t\t}\n\t\t\treturn t('mail', 'Collapse mailboxes')\n\t\t},\n\t},\n\tmethods: {\n\t\tasync toggleCollapse() {\n\t\t\tlogger.debug('toggling collapsed mailboxes for account ' + this.account.id)\n\t\t\ttry {\n\t\t\t\tawait this.$store.commit('toggleAccountCollapsed', this.account.id)\n\t\t\t\tawait this.$store\n\t\t\t\t\t.dispatch('setAccountSetting', {\n\t\t\t\t\t\taccountId: this.account.id,\n\t\t\t\t\t\tkey: 'collapsed',\n\t\t\t\t\t\tvalue: this.account.collapsed,\n\t\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('could not update account settings', {\n\t\t\t\t\terror,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n::v-deep .app-navigation-entry__title {\n\tcolor: var(--color-text-maxcontrast);\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationAccountExpandCollapse.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationAccountExpandCollapse.vue?vue&type=script&lang=js&\"","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationAccountExpandCollapse.vue?vue&type=style&index=0&id=2d33cadc&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./NavigationAccountExpandCollapse.vue?vue&type=template&id=2d33cadc&scoped=true&\"\nimport script from \"./NavigationAccountExpandCollapse.vue?vue&type=script&lang=js&\"\nexport * from \"./NavigationAccountExpandCollapse.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NavigationAccountExpandCollapse.vue?vue&type=style&index=0&id=2d33cadc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d33cadc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('AppNavigationItem',{attrs:{\"title\":_vm.title},on:{\"click\":_vm.toggleCollapse}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<MailboxPicker :account=\"account\"\n\t\t:selected.sync=\"destMailboxId\"\n\t\t:loading=\"moving\"\n\t\t:picked-mailbox=\"mailbox\"\n\t\t:allow-root=\"true\"\n\t\t:label-select=\"t('mail', 'Move')\"\n\t\t:label-select-loading=\"t('mail', 'Moving')\"\n\t\t@select=\"onMove\"\n\t\t@close=\"onClose\" />\n</template>\n\n<script>\nimport logger from '../logger'\nimport MailboxPicker from './MailboxPicker'\n\nexport default {\n\tname: 'MoveMailboxModal',\n\tcomponents: {\n\t\tMailboxPicker,\n\t},\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tmailbox: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tmoving: false,\n\t\t\tdestMailboxId: undefined,\n\t\t}\n\t},\n\tmethods: {\n\t\tonClose() {\n\t\t\tthis.$emit('close')\n\t\t},\n\t\tasync onMove() {\n\t\t\tthis.moving = true\n\t\t\tif (this.mailbox.id !== this.destMailboxId) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!this.destMailboxId) {\n\t\t\t\t\t\tconst newName = this.mailbox.displayName\n\t\t\t\t\t\tawait this.$store.dispatch('renameMailbox', {\n\t\t\t\t\t\t\taccount: this.account,\n\t\t\t\t\t\t\tmailbox: this.mailbox,\n\t\t\t\t\t\t\tnewName,\n\t\t\t\t\t\t})\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst destMailbox = this.$store.getters.getMailbox(this.destMailboxId)\n\t\t\t\t\t\tconst newName = destMailbox.name + this.mailbox.delimiter + this.mailbox.name\n\t\t\t\t\t\tawait this.$store.dispatch('renameMailbox', {\n\t\t\t\t\t\t\taccount: this.account,\n\t\t\t\t\t\t\tmailbox: this.mailbox,\n\t\t\t\t\t\t\tnewName,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error('could not move mailbox', {\n\t\t\t\t\t\terror,\n\t\t\t\t\t})\n\t\t\t\t} finally {\n\t\t\t\t\tthis.moving = false\n\t\t\t\t\tthis.$emit('close')\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tgenId(mailbox) {\n\t\t\treturn 'mailbox-' + mailbox.databaseId\n\t\t },\n\t},\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MoveMailboxModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MoveMailboxModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MoveMailboxModal.vue?vue&type=template&id=6df74cd6&\"\nimport script from \"./MoveMailboxModal.vue?vue&type=script&lang=js&\"\nexport * from \"./MoveMailboxModal.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MailboxPicker',{attrs:{\"account\":_vm.account,\"selected\":_vm.destMailboxId,\"loading\":_vm.moving,\"picked-mailbox\":_vm.mailbox,\"allow-root\":true,\"label-select\":_vm.t('mail', 'Move'),\"label-select-loading\":_vm.t('mail', 'Moving')},on:{\"update:selected\":function($event){_vm.destMailboxId=$event},\"select\":_vm.onMove,\"close\":_vm.onClose}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import store from '../../../store'\nimport logger from '../../../logger'\nimport dragEventBus from '../util/dragEventBus'\n\nexport class DroppableMailbox {\n\n\tconstructor(el, componentInstance, options) {\n\t\tthis.el = el\n\t\tthis.options = options\n\t\tthis.registerListeners.bind(this)(el)\n\t\tthis.setInitialAttributes()\n\t}\n\n\tsetInitialAttributes() {\n\t\tthis.draggableInfo = {}\n\t\tthis.setStatus('enabled')\n\t}\n\n\tupdate(el, instance) {\n\t\tthis.setInitialAttributes()\n\t\tthis.options = instance.options\n\t}\n\n\tregisterListeners(el) {\n\t\tdragEventBus.$on('dragStart', this.onDragStart.bind(this))\n\t\tdragEventBus.$on('dragEnd', this.onDragEnd.bind(this))\n\n\t\t// event listeners need to be attached to the first child element\n\t\t// (a button or an anchor tag) instead of the root el, because there\n\t\t// can be sub-mailboxes within the root element of the directive\n\t\tel.firstChild.addEventListener('dragover', this.onDragOver.bind(this))\n\t\tel.firstChild.addEventListener('dragleave', this.onDragLeave.bind(this))\n\t\tel.firstChild.addEventListener('drop', this.onDrop.bind(this))\n\t}\n\n\tremoveListeners(el) {\n\t\tdragEventBus.$off('dragStart', this.onDragStart)\n\t\tdragEventBus.$off('dragEnd', this.onDragEnd)\n\n\t\tel.firstChild.removeEventListener('dragover', this.onDragOver)\n\t\tel.firstChild.removeEventListener('dragleave', this.onDragLeave)\n\t\tel.firstChild.removeEventListener('drop', this.onDrop)\n\t}\n\n\tsetStatus(status) {\n\t\tthis.el.setAttribute('droppable-mailbox', status)\n\t}\n\n\tonDragStart(draggableInfo) {\n\t\tthis.draggableInfo = draggableInfo\n\n\t\tif (!this.canBeDropped()) {\n\t\t\tthis.setStatus('disabled')\n\t\t}\n\t}\n\n\tcanBeDropped() {\n\t\treturn this.isSameAccount() && this.options.isValidDropTarget\n\t}\n\n\tisSameAccount() {\n\t\treturn this.draggableInfo.accountId === this.options.accountId\n\t}\n\n\tonDragEnd() {\n\t\tthis.setInitialAttributes()\n\t}\n\n\tonDragOver(event) {\n\t\tevent.preventDefault()\n\n\t\t// Prevent dropping into current folder\n\t\tif (this.draggableInfo.mailboxId === this.options.mailboxId) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.options.isValidDropTarget) {\n\t\t\tthis.setStatus('dragover')\n\t\t}\n\n\t\tevent.dataTransfer.dropEffect = 'move'\n\t}\n\n\tonDragLeave(event) {\n\t\tevent.preventDefault()\n\t\tthis.setStatus('enabled')\n\t}\n\n\tasync onDrop(event) {\n\t\tevent.preventDefault()\n\n\t\t// Prevent dropping into current folder\n\t\tif (this.draggableInfo.mailboxId === this.options.mailboxId) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.setInitialAttributes()\n\t\tconst envelopesBeingDragged = JSON.parse(event.dataTransfer.getData('text'))\n\t\tdragEventBus.$emit('envelopesDropped', { envelopes: envelopesBeingDragged })\n\n\t\ttry {\n\t\t\tconst processedEnvelopes = envelopesBeingDragged.map(async envelope => {\n\t\t\t\tconst processed = await this.processDroppedItem(parseInt(envelope.envelopeId))\n\t\t\t\treturn processed\n\t\t\t})\n\t\t\tawait Promise.all(processedEnvelopes)\n\t\t} catch (error) {\n\t\t\tlogger.error('could not process dropped messages', error)\n\t\t} finally {\n\t\t\tdragEventBus.$emit('envelopesMoved', {\n\t\t\t\tmailboxId: this.options.mailboxId,\n\t\t\t\tmovedEnvelopes: envelopesBeingDragged,\n\t\t\t})\n\t\t}\n\t}\n\n\tasync processDroppedItem(envelopeId) {\n\t\tconst item = document.querySelector(`[data-envelope-id=\"${envelopeId}\"]`)\n\t\titem.setAttribute('draggable-envelope', 'pending')\n\n\t\ttry {\n\t\t\tawait store.dispatch('moveMessage', {\n\t\t\t\tid: envelopeId,\n\t\t\t\tdestMailboxId: this.options.mailboxId,\n\t\t\t})\n\t\t} catch (error) {\n\t\t\titem.removeAttribute('draggable-envelope')\n\t\t\tlogger.error('could not move messages', error)\n\t\t}\n\t}\n\n}\n","import { DroppableMailbox } from './droppable-mailbox'\n\nlet instance\n\nexport const DroppableMailboxDirective = {\n\tbind(el, binding, vnode) {\n\t\tinstance = new DroppableMailbox(el, vnode.context, binding.value)\n\t},\n\tcomponentUpdated(el, binding) {\n\t\tinstance.options = binding.value\n\t\tinstance.update(el, instance)\n\t},\n}\n\nexport default DroppableMailbox\n","<!--\n - @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n\n<template>\n\t<AppNavigationItem\n\t\tv-if=\"visible\"\n\t\t:id=\"genId(mailbox)\"\n\t\t:key=\"genId(mailbox)\"\n\t\tv-droppable-mailbox=\"{\n\t\t\tmailboxId: mailbox.databaseId,\n\t\t\taccountId: mailbox.accountId,\n\t\t\tisValidDropTarget,\n\t\t}\"\n\t\t:allow-collapse=\"true\"\n\t\t:menu-open.sync=\"menuOpen\"\n\t\t:force-menu=\"true\"\n\t\t:icon=\"icon\"\n\t\t:title=\"title\"\n\t\t:to=\"to\"\n\t\t:open.sync=\"showSubMailboxes\"\n\t\t@update:menuOpen=\"onMenuToggle\">\n\t\t<!-- actions -->\n\t\t<template slot=\"actions\">\n\t\t\t<template>\n\t\t\t\t<ActionText\n\t\t\t\t\tv-if=\"!account.isUnified && mailbox.specialRole !== 'flagged'\"\n\t\t\t\t\ticon=\"icon-info\"\n\t\t\t\t\t:title=\"mailbox.name\">\n\t\t\t\t\t{{ statsText }}\n\t\t\t\t</ActionText>\n\n\t\t\t\t<ActionButton\n\t\t\t\t\tv-if=\"mailbox.specialRole !== 'flagged' && !account.isUnified\"\n\t\t\t\t\ticon=\"icon-mail\"\n\t\t\t\t\t:title=\"t('mail', 'Mark all as read')\"\n\t\t\t\t\t:disabled=\"loadingMarkAsRead\"\n\t\t\t\t\t@click=\"markAsRead\">\n\t\t\t\t\t{{ t('mail', 'Mark all messages of this mailbox as read') }}\n\t\t\t\t</ActionButton>\n\t\t\t\t<ActionButton\n\t\t\t\t\tv-if=\"!editing && top && !account.isUnified && mailbox.specialRole !== 'flagged'\"\n\t\t\t\t\ticon=\"icon-folder\"\n\t\t\t\t\t@click=\"openCreateMailbox\">\n\t\t\t\t\t{{ t('mail', 'Add submailbox') }}\n\t\t\t\t</ActionButton>\n\t\t\t\t<ActionInput v-if=\"editing\" icon=\"icon-folder\" @submit.prevent.stop=\"createMailbox\" />\n\t\t\t\t<ActionButton\n\t\t\t\t\tv-if=\"renameLabel && !hasSubMailboxes && !account.isUnified\"\n\t\t\t\t\ticon=\"icon-rename\"\n\t\t\t\t\t@click.prevent.stop=\"openRenameInput\">\n\t\t\t\t\t{{ t('mail', 'Edit name') }}\n\t\t\t\t</ActionButton>\n\t\t\t\t<ActionInput\n\t\t\t\t\tv-if=\"renameInput\"\n\t\t\t\t\ticon=\"icon-rename\"\n\t\t\t\t\t:value.sync=\"mailboxName\"\n\t\t\t\t\t@submit.prevent.stop=\"renameMailbox\" />\n\t\t\t\t<ActionText v-if=\"showSaving\" icon=\"icon-loading-small\">\n\t\t\t\t\t{{ t('mail', 'Saving') }}\n\t\t\t\t</ActionText>\n\t\t\t\t<ActionButton v-if=\"!account.isUnified && !mailbox.specialRole && !hasSubMailboxes\"\n\t\t\t\t\t:id=\"genId(mailbox)\"\n\t\t\t\t\ticon=\"icon-external\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t@click.prevent=\"onOpenMoveModal\">\n\t\t\t\t\t{{ t('mail', 'Move') }}\n\t\t\t\t</ActionButton>\n\t\t\t\t<ActionButton\n\t\t\t\t\tv-if=\"debug && !account.isUnified && mailbox.specialRole !== 'flagged'\"\n\t\t\t\t\ticon=\"icon-settings\"\n\t\t\t\t\t:title=\"t('mail', 'Clear cache')\"\n\t\t\t\t\t:disabled=\"clearingCache\"\n\t\t\t\t\t@click=\"clearCache\">\n\t\t\t\t\t{{ t('mail', 'Clear locally cached data, in case there are issues with synchronization.') }}\n\t\t\t\t</ActionButton>\n\n\t\t\t\t<ActionCheckbox\n\t\t\t\t\tv-if=\"notVirtual\"\n\t\t\t\t\t:checked=\"isSubscribed\"\n\t\t\t\t\t:disabled=\"changeSubscription\"\n\t\t\t\t\t@update:checked=\"changeFolderSubscription\">\n\t\t\t\t\t{{ t('mail', 'Subscribed') }}\n\t\t\t\t</ActionCheckbox>\n\n\t\t\t\t<ActionCheckbox\n\t\t\t\t\tv-if=\"notVirtual && notInbox\"\n\t\t\t\t\t:checked=\"mailbox.syncInBackground\"\n\t\t\t\t\t:disabled=\"changingSyncInBackground\"\n\t\t\t\t\t@update:checked=\"changeSyncInBackground\">\n\t\t\t\t\t{{ t('mail', 'Sync in background') }}\n\t\t\t\t</ActionCheckbox>\n\n\t\t\t\t<ActionButton v-if=\"!account.isUnified && !mailbox.specialRole && !hasSubMailboxes\" icon=\"icon-delete\" @click=\"deleteMailbox\">\n\t\t\t\t\t{{ t('mail', 'Delete mailbox') }}\n\t\t\t\t</ActionButton>\n\t\t\t</template>\n\t\t</template>\n\t\t<AppNavigationCounter v-if=\"mailbox.unread\" slot=\"counter\">\n\t\t\t{{ mailbox.unread }}\n\t\t</AppNavigationCounter>\n\t\t<template slot=\"extra\">\n\t\t\t<MoveMailboxModal v-if=\"showMoveModal\"\n\t\t\t\t:account=\"account\"\n\t\t\t\t:mailbox=\"mailbox\"\n\t\t\t\t@close=\"onCloseMoveModal\" />\n\t\t</template>\n\t\t<!-- submailboxes -->\n\t\t<NavigationMailbox\n\t\t\tv-for=\"subMailbox in subMailboxes\"\n\t\t\t:key=\"genId(subMailbox)\"\n\t\t\t:account=\"account\"\n\t\t\t:mailbox=\"subMailbox\"\n\t\t\t:top=\"false\" />\n\t</AppNavigationItem>\n</template>\n\n<script>\nimport AppNavigationItem from '@nextcloud/vue/dist/Components/AppNavigationItem'\nimport AppNavigationCounter from '@nextcloud/vue/dist/Components/AppNavigationCounter'\nimport ActionButton from '@nextcloud/vue/dist/Components/ActionButton'\nimport ActionCheckbox from '@nextcloud/vue/dist/Components/ActionCheckbox'\nimport ActionInput from '@nextcloud/vue/dist/Components/ActionInput'\nimport ActionText from '@nextcloud/vue/dist/Components/ActionText'\nimport MoveMailboxModal from './MoveMailboxModal'\n\nimport { clearCache } from '../service/MessageService'\nimport { getMailboxStatus } from '../service/MailboxService'\nimport logger from '../logger'\nimport { translatePlural as n } from '@nextcloud/l10n'\nimport { translate as translateMailboxName } from '../i18n/MailboxTranslator'\nimport { showInfo } from '@nextcloud/dialogs'\nimport { DroppableMailboxDirective as droppableMailbox } from '../directives/drag-and-drop/droppable-mailbox'\nimport dragEventBus from '../directives/drag-and-drop/util/dragEventBus'\n\nexport default {\n\tname: 'NavigationMailbox',\n\tcomponents: {\n\t\tAppNavigationItem,\n\t\tAppNavigationCounter,\n\t\tActionText,\n\t\tActionButton,\n\t\tActionCheckbox,\n\t\tActionInput,\n\t\tMoveMailboxModal,\n\t},\n\tdirectives: {\n\t\tdroppableMailbox,\n\t},\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tmailbox: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\ttop: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tfilter: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tdebug: window?.OC?.debug || false,\n\t\t\tmailboxStats: undefined,\n\t\t\tloadingMarkAsRead: false,\n\t\t\tclearingCache: false,\n\t\t\tshowSaving: false,\n\t\t\tchangeSubscription: false,\n\t\t\tchangingSyncInBackground: false,\n\t\t\tediting: false,\n\t\t\tshowSubMailboxes: false,\n\t\t\tmenuOpen: false,\n\t\t\trenameLabel: true,\n\t\t\trenameInput: false,\n\t\t\tmailboxName: this.mailbox.displayName,\n\t\t\tshowMoveModal: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tvisible() {\n\t\t\treturn (\n\t\t\t\t(this.account.showSubscribedOnly === false\n\t\t\t\t|| (this.mailbox.attributes && this.mailbox.attributes.includes('\\\\subscribed'))) && this.isUnifiedButOnlyInbox\n\t\t\t)\n\t\t},\n\t\tnotInbox() {\n\t\t\treturn this.mailbox.name.toLowerCase() !== 'inbox'\n\t\t},\n\t\tnotVirtual() {\n\t\t\treturn !this.account.isUnified && this.mailbox.specialRole !== 'flagged'\n\t\t},\n\t\ttitle() {\n\t\t\tif (this.filter === 'starred') {\n\t\t\t\t// Little hack to trick the translation logic into a different path\n\t\t\t\treturn translateMailboxName({\n\t\t\t\t\t...this.mailbox,\n\t\t\t\t\tspecialUse: ['flagged'],\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn translateMailboxName(this.mailbox)\n\t\t},\n\t\ticon() {\n\t\t\tif (this.filter === 'starred') {\n\t\t\t\treturn 'icon-flagged'\n\t\t\t} else if (this.mailbox.isPriorityInbox) {\n\t\t\t\treturn 'icon-important'\n\t\t\t}\n\t\t\treturn this.mailbox.specialRole ? 'icon-' + this.mailbox.specialRole : 'icon-folder'\n\t\t},\n\t\tto() {\n\t\t\treturn {\n\t\t\t\tname: 'mailbox',\n\t\t\t\tparams: {\n\t\t\t\t\tmailboxId: this.mailbox.databaseId,\n\t\t\t\t\tfilter: this.filter ? this.filter : undefined,\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t\thasSubMailboxes() {\n\t\t\treturn this.subMailboxes.length > 0\n\t\t},\n\t\tsubMailboxes() {\n\t\t\treturn this.$store.getters.getSubMailboxes(this.mailbox.databaseId)\n\t\t},\n\t\tstatsText() {\n\t\t\tif (this.mailboxStats && 'total' in this.mailboxStats && 'unread' in this.mailboxStats) {\n\t\t\t\tif (this.mailboxStats.unread === 0) {\n\t\t\t\t\treturn n('mail', '{total} message', '{total} messages', this.mailboxStats.total, {\n\t\t\t\t\t\ttotal: this.mailboxStats.total,\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\treturn n(\n\t\t\t\t\t\t'mail',\n\t\t\t\t\t\t'{unread} unread of {total}',\n\t\t\t\t\t\t'{unread} unread of {total}',\n\t\t\t\t\t\tthis.mailboxStats.unread,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttotal: this.mailboxStats.total,\n\t\t\t\t\t\t\tunread: this.mailboxStats.unread,\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn t('mail', 'Loading …')\n\t\t},\n\t\tisSubscribed() {\n\t\t\treturn this.mailbox.attributes && this.mailbox.attributes.includes('\\\\subscribed')\n\t\t},\n\t\tisDroppableSpecialMailbox() {\n\t\t\tif (this.filter === 'starred') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn ![\n\t\t\t\tthis.account.draftsMailboxId,\n\t\t\t\tthis.account.sentMailboxId,\n\t\t\t].includes(this.mailbox.databaseId)\n\t\t},\n\t\tisActive() {\n\t\t\treturn this.$route.params.mailboxId === this.mailbox.databaseId\n\t\t},\n\t\tisValidDropTarget() {\n\t\t\tif (this.isActive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.isDroppableSpecialMailbox || (!this.mailbox.specialRole && !this.account.isUnified)\n\t\t},\n\t\tisUnifiedButOnlyInbox() {\n\t\t\tif (!this.mailbox.isUnified) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn this.mailbox.specialUse.includes('inbox') && this.$store.getters.accounts.length > 2\n\t\t},\n\t},\n\tmounted() {\n\t\tdragEventBus.$on('dragStart', this.onDragStart)\n\t\tdragEventBus.$on('dragEnd', this.onDragEnd)\n\t\tdragEventBus.$on('envelopesMoved', this.onEnvelopesMoved)\n\t},\n\tbeforeDestroy() {\n\t\tdragEventBus.$off('dragStart', this.onDragStart)\n\t\tdragEventBus.$off('dragEnd', this.onDragEnd)\n\t\tdragEventBus.$off('envelopesMoved', this.onEnvelopesMoved)\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Generate unique key id for a specific mailbox\n\t\t * @param {Object} mailbox the mailbox to gen id for\n\t\t * @returns {string}\n\t\t */\n\t\tgenId(mailbox) {\n\t\t\treturn 'mailbox-' + mailbox.databaseId\n\t\t},\n\n\t\t/**\n\t\t * On menu toggle, fetch stats\n\t\t * @param {boolean} open menu opened state\n\t\t */\n\t\tonMenuToggle(open) {\n\t\t\tif (open) {\n\t\t\t\tthis.fetchMailboxStats()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Fetch mailbox unread/read stats\n\t\t */\n\t\tasync fetchMailboxStats() {\n\t\t\tthis.mailboxStats = null\n\t\t\tif (this.account.isUnified || this.mailbox.specialRole === 'flagged') {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst stats = await getMailboxStatus(this.mailbox.databaseId)\n\t\t\t\tlogger.debug(`loaded mailbox stats for ${this.mailbox.databaseId}`, { stats })\n\t\t\t\tthis.mailboxStats = stats\n\t\t\t} catch (error) {\n\t\t\t\tthis.mailboxStats = { error: true }\n\t\t\t\tlogger.error(`could not load mailbox stats for ${this.mailbox.databaseId}`, error)\n\t\t\t}\n\t\t},\n\n\t\tasync createMailbox(e) {\n\t\t\tthis.editing = true\n\t\t\tconst name = e.target.elements[1].value\n\t\t\tconst withPrefix = this.mailbox.name + this.mailbox.delimiter + name\n\t\t\tlogger.info(`creating mailbox ${withPrefix} as submailbox of ${this.mailbox.databaseId}`)\n\t\t\tthis.menuOpen = false\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('createMailbox', {\n\t\t\t\t\taccount: this.account,\n\t\t\t\t\tname: withPrefix,\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(`could not create mailbox ${withPrefix}`, { error })\n\t\t\t\tthrow error\n\t\t\t} finally {\n\t\t\t\tthis.editing = false\n\t\t\t\tthis.showSaving = false\n\t\t\t}\n\t\t\tlogger.info(`mailbox ${withPrefix} created`)\n\t\t\tthis.showSubMailboxes = true\n\t\t},\n\t\topenCreateMailbox() {\n\t\t\tthis.editing = true\n\t\t\tthis.showSaving = false\n\t\t},\n\t\tmarkAsRead() {\n\t\t\tthis.loadingMarkAsRead = true\n\n\t\t\tthis.$store\n\t\t\t\t.dispatch('markMailboxRead', {\n\t\t\t\t\taccountId: this.account.id,\n\t\t\t\t\tmailboxId: this.mailbox.databaseId,\n\t\t\t\t})\n\t\t\t\t.then(() => logger.info(`mailbox ${this.mailbox.databaseId} marked as read`))\n\t\t\t\t.catch((error) => logger.error(`could not mark mailbox ${this.mailbox.databaseId} as read`, { error }))\n\t\t\t\t.then(() => (this.loadingMarkAsRead = false))\n\t\t},\n\t\tasync changeFolderSubscription(subscribed) {\n\t\t\ttry {\n\t\t\t\tthis.changeSubscription = true\n\n\t\t\t\tawait this.$store.dispatch('changeMailboxSubscription', {\n\t\t\t\t\tmailbox: this.mailbox,\n\t\t\t\t\tsubscribed,\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(`could not update subscription of mailbox ${this.mailbox.databaseId}`, { error })\n\t\t\t\tthrow error\n\t\t\t} finally {\n\t\t\t\tthis.changeSubscription = false\n\t\t\t}\n\t\t},\n\t\tasync changeSyncInBackground(syncInBackground) {\n\t\t\ttry {\n\t\t\t\tthis.changingSyncInBackground = true\n\n\t\t\t\tawait this.$store.dispatch('patchMailbox', {\n\t\t\t\t\tmailbox: this.mailbox,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tsyncInBackground,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(`could not update background sync flag of mailbox ${this.mailbox.databaseId}`, { error })\n\t\t\t\tthrow error\n\t\t\t} finally {\n\t\t\t\tthis.changingSyncInBackground = false\n\t\t\t}\n\t\t},\n\t\tasync clearCache() {\n\t\t\ttry {\n\t\t\t\tthis.clearingCache = true\n\t\t\t\tlogger.debug('clearing message cache', {\n\t\t\t\t\taccountId: this.account.id,\n\t\t\t\t\tmailboxId: this.mailbox.databaseId,\n\t\t\t\t})\n\n\t\t\t\tawait clearCache(this.account.id, this.mailbox.databaseId)\n\n\t\t\t\t// TODO: there might be a nicer way to handle this\n\t\t\t\twindow.location.reload(false)\n\t\t\t} finally {\n\t\t\t\tthis.clearCache = false\n\t\t\t}\n\t\t},\n\t\tdeleteMailbox() {\n\t\t\tconst id = this.mailbox.databaseId\n\t\t\tlogger.info('delete mailbox', { mailbox: this.mailbox })\n\t\t\tOC.dialogs.confirmDestructive(\n\t\t\t\tt('mail', 'The mailbox and all messages in it will be deleted.'),\n\t\t\t\tt('mail', 'Delete mailbox'),\n\t\t\t\t{\n\t\t\t\t\ttype: OC.dialogs.YES_NO_BUTTONS,\n\t\t\t\t\tconfirm: t('mail', 'Delete mailbox {name}', { name: this.mailbox.displayName }),\n\t\t\t\t\tconfirmClasses: 'error',\n\t\t\t\t\tcancel: t('mail', 'Cancel'),\n\t\t\t\t},\n\t\t\t\t(result) => {\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\treturn this.$store\n\t\t\t\t\t\t\t.dispatch('deleteMailbox', { mailbox: this.mailbox })\n\t\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\t\tlogger.info(`mailbox ${id} deleted`)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch((error) => logger.error('could not delete mailbox', { error }))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t},\n\t\tasync renameMailbox() {\n\t\t\tthis.renameInput = false\n\t\t\tthis.showSaving = false\n\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('renameMailbox', {\n\t\t\t\t\taccount: this.account,\n\t\t\t\t\tmailbox: this.mailbox,\n\t\t\t\t\tnewName: this.mailboxName,\n\t\t\t\t})\n\t\t\t\tthis.renameLabel = true\n\t\t\t\tthis.renameInput = false\n\t\t\t\tthis.showSaving = false\n\t\t\t} catch (error) {\n\t\t\t\tshowInfo(t('mail', 'An error occurred, unable to rename the mailbox.'))\n\t\t\t\tconsole.error(error)\n\t\t\t\tthis.renameLabel = false\n\t\t\t\tthis.renameInput = false\n\t\t\t\tthis.showSaving = true\n\t\t\t}\n\t\t},\n\t\topenRenameInput() {\n\t\t\t// Hide label and show input\n\t\t\tthis.renameLabel = false\n\t\t\tthis.renameInput = true\n\t\t\tthis.showSaving = false\n\t\t},\n\t\tonOpenMoveModal() {\n\t\t\tthis.showMoveModal = true\n\t\t},\n\t\tonCloseMoveModal() {\n\t\t\tthis.showMoveModal = false\n\t\t},\n\t\tonDragStart({ accountId }) {\n\t\t\tif (accountId !== this.mailbox.accountId) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.$store.commit('expandAccount', accountId)\n\t\t\tthis.showSubMailboxes = true\n\t\t},\n\t\tonDragEnd({ accountId }) {\n\t\t\tif (accountId !== this.mailbox.accountId) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.showSubMailboxes = false\n\t\t},\n\t\tonEnvelopesMoved({ mailboxId, movedEnvelopes }) {\n\t\t\tif (this.mailbox.databaseId !== mailboxId) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst openedMessageHasBeenMoved = movedEnvelopes.find((movedEnvelope) => {\n\t\t\t\treturn movedEnvelope.envelopeId === this.$route.params.threadId\n\t\t\t})\n\t\t\t// navigate to the mailbox root\n\t\t\t// if the currently displayed message has been moved\n\t\t\tif (this.$route.name === 'message' && openedMessageHasBeenMoved) {\n\t\t\t\tthis.$router.push({\n\t\t\t\t\tname: 'mailbox',\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tmailboxId: this.$route.params.mailboxId,\n\t\t\t\t\t\tfilter: this.$route.params?.filter,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationMailbox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationMailbox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NavigationMailbox.vue?vue&type=template&id=626680ce&\"\nimport script from \"./NavigationMailbox.vue?vue&type=script&lang=js&\"\nexport * from \"./NavigationMailbox.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('AppNavigationItem',{directives:[{name:\"droppable-mailbox\",rawName:\"v-droppable-mailbox\",value:({\n\t\tmailboxId: _vm.mailbox.databaseId,\n\t\taccountId: _vm.mailbox.accountId,\n\t\tisValidDropTarget: _vm.isValidDropTarget,\n\t}),expression:\"{\\n\\t\\tmailboxId: mailbox.databaseId,\\n\\t\\taccountId: mailbox.accountId,\\n\\t\\tisValidDropTarget,\\n\\t}\"}],key:_vm.genId(_vm.mailbox),attrs:{\"id\":_vm.genId(_vm.mailbox),\"allow-collapse\":true,\"menu-open\":_vm.menuOpen,\"force-menu\":true,\"icon\":_vm.icon,\"title\":_vm.title,\"to\":_vm.to,\"open\":_vm.showSubMailboxes},on:{\"update:menuOpen\":[function($event){_vm.menuOpen=$event},_vm.onMenuToggle],\"update:menu-open\":function($event){_vm.menuOpen=$event},\"update:open\":function($event){_vm.showSubMailboxes=$event}}},[_c('template',{slot:\"actions\"},[[(!_vm.account.isUnified && _vm.mailbox.specialRole !== 'flagged')?_c('ActionText',{attrs:{\"icon\":\"icon-info\",\"title\":_vm.mailbox.name}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.statsText)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.mailbox.specialRole !== 'flagged' && !_vm.account.isUnified)?_c('ActionButton',{attrs:{\"icon\":\"icon-mail\",\"title\":_vm.t('mail', 'Mark all as read'),\"disabled\":_vm.loadingMarkAsRead},on:{\"click\":_vm.markAsRead}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Mark all messages of this mailbox as read'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.editing && _vm.top && !_vm.account.isUnified && _vm.mailbox.specialRole !== 'flagged')?_c('ActionButton',{attrs:{\"icon\":\"icon-folder\"},on:{\"click\":_vm.openCreateMailbox}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Add submailbox'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.editing)?_c('ActionInput',{attrs:{\"icon\":\"icon-folder\"},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.createMailbox($event)}}}):_vm._e(),_vm._v(\" \"),(_vm.renameLabel && !_vm.hasSubMailboxes && !_vm.account.isUnified)?_c('ActionButton',{attrs:{\"icon\":\"icon-rename\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openRenameInput($event)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Edit name'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.renameInput)?_c('ActionInput',{attrs:{\"icon\":\"icon-rename\",\"value\":_vm.mailboxName},on:{\"update:value\":function($event){_vm.mailboxName=$event},\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.renameMailbox($event)}}}):_vm._e(),_vm._v(\" \"),(_vm.showSaving)?_c('ActionText',{attrs:{\"icon\":\"icon-loading-small\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Saving'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.account.isUnified && !_vm.mailbox.specialRole && !_vm.hasSubMailboxes)?_c('ActionButton',{attrs:{\"id\":_vm.genId(_vm.mailbox),\"icon\":\"icon-external\",\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();return _vm.onOpenMoveModal($event)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Move'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.debug && !_vm.account.isUnified && _vm.mailbox.specialRole !== 'flagged')?_c('ActionButton',{attrs:{\"icon\":\"icon-settings\",\"title\":_vm.t('mail', 'Clear cache'),\"disabled\":_vm.clearingCache},on:{\"click\":_vm.clearCache}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Clear locally cached data, in case there are issues with synchronization.'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.notVirtual)?_c('ActionCheckbox',{attrs:{\"checked\":_vm.isSubscribed,\"disabled\":_vm.changeSubscription},on:{\"update:checked\":_vm.changeFolderSubscription}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Subscribed'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.notVirtual && _vm.notInbox)?_c('ActionCheckbox',{attrs:{\"checked\":_vm.mailbox.syncInBackground,\"disabled\":_vm.changingSyncInBackground},on:{\"update:checked\":_vm.changeSyncInBackground}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Sync in background'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(!_vm.account.isUnified && !_vm.mailbox.specialRole && !_vm.hasSubMailboxes)?_c('ActionButton',{attrs:{\"icon\":\"icon-delete\"},on:{\"click\":_vm.deleteMailbox}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Delete mailbox'))+\"\\n\\t\\t\\t\")]):_vm._e()]],2),_vm._v(\" \"),(_vm.mailbox.unread)?_c('AppNavigationCounter',{attrs:{\"slot\":\"counter\"},slot:\"counter\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.mailbox.unread)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('template',{slot:\"extra\"},[(_vm.showMoveModal)?_c('MoveMailboxModal',{attrs:{\"account\":_vm.account,\"mailbox\":_vm.mailbox},on:{\"close\":_vm.onCloseMoveModal}}):_vm._e()],1),_vm._v(\" \"),_vm._l((_vm.subMailboxes),function(subMailbox){return _c('NavigationMailbox',{key:_vm.genId(subMailbox),attrs:{\"account\":_vm.account,\"mailbox\":subMailbox,\"top\":false}})})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyboardShortcuts.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyboardShortcuts.vue?vue&type=script&lang=js&\"","<template>\n\t<Modal\n\t\tsize=\"large\"\n\t\t:title=\"t('mail', 'Keyboard shortcut')\"\n\t\t@close=\"$emit('close')\">\n\t\t<h2>{{ t('mail', 'Keyboard shortcuts') }}</h2>\n\n\t\t<p>{{ t('mail', 'Speed up your Mail experience with these quick shortcuts.') }}</p>\n\n\t\t<dl>\n\t\t\t<div>\n\t\t\t\t<dt><kbd>C</kbd></dt>\n\t\t\t\t<dd>{{ t('mail', 'Compose new message') }}</dd>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<dt><kbd>←</kbd></dt>\n\t\t\t\t<dd>{{ t('mail', 'Newer message') }}</dd>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<dt><kbd>→</kbd></dt>\n\t\t\t\t<dd>{{ t('mail', 'Older message') }}</dd>\n\t\t\t</div>\n\n\t\t\t<div>\n\t\t\t\t<dt><kbd>S</kbd></dt>\n\t\t\t\t<dd>{{ t('mail', 'Toggle star') }}</dd>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<dt><kbd>U</kbd></dt>\n\t\t\t\t<dd>{{ t('mail', 'Toggle unread') }}</dd>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<dt><kbd>Del</kbd></dt>\n\t\t\t\t<dd>{{ t('mail', 'Delete') }}</dd>\n\t\t\t</div>\n\n\t\t\t<div>\n\t\t\t\t<dt><kbd>Ctrl</kbd> + <kbd>F</kbd></dt>\n\t\t\t\t<dd>{{ t('mail', 'Search') }}</dd>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<dt><kbd>Ctrl</kbd> + <kbd>Enter</kbd></dt>\n\t\t\t\t<dd>{{ t('mail', 'Send') }}</dd>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<dt><kbd>R</kbd></dt>\n\t\t\t\t<dd>{{ t('mail', 'Refresh') }}</dd>\n\t\t\t</div>\n\t\t</dl>\n\t</Modal>\n</template>\n\n<script>\nimport Modal from '@nextcloud/vue/dist/Components/Modal'\n\nexport default {\n\tname: 'KeyboardShortcuts',\n\tcomponents: {\n\t\tModal,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n::v-deep .modal-wrapper .modal-container {\n\tdisplay: block;\n\toverflow: scroll;\n\ttransition: transform 300ms ease;\n\tborder-radius: var(--border-radius-large);\n\tbox-shadow: 0 0 40px rgba(0,0,0,0.2);\n\tpadding: 30px 40px 20px;\n}\ndt {\n\twidth: auto;\n\ttext-align: left;\n}\n\n</style>\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KeyboardShortcuts.vue?vue&type=style&index=0&id=17460ac4&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSettingsMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSettingsMenu.vue?vue&type=script&lang=js&\"","<template>\n\t<div>\n\t\t<router-link to=\"/setup\" class=\"icon-add-white app-settings-button button primary new-button\">\n\t\t\t{{ t('mail', 'Add mail account') }}\n\t\t</router-link>\n\n\t\t<p v-if=\"loadingOptOutSettings\" class=\"app-settings\">\n\t\t\t<span class=\"icon-loading-small\" />\n\t\t\t{{ optOutSettingsText }}\n\t\t</p>\n\t\t<p v-else class=\"app-settings\">\n\t\t\t<input\n\t\t\t\tid=\"data-collection-toggle\"\n\t\t\t\tclass=\"checkbox\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\t:checked=\"useDataCollection\"\n\t\t\t\t@change=\"onToggleCollectData\">\n\t\t\t<label for=\"data-collection-toggle\">{{ optOutSettingsText }}</label>\n\t\t</p>\n\n\t\t<p v-if=\"loadingAvatarSettings\" class=\"app-settings avatar-settings\">\n\t\t\t<span class=\"icon-loading-small\" />\n\t\t\t{{ t('mail', 'Use Gravatar and favicon avatars') }}\n\t\t</p>\n\t\t<p v-else class=\"app-settings\">\n\t\t\t<input\n\t\t\t\tid=\"gravatar-enabled\"\n\t\t\t\tclass=\"checkbox\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\t:checked=\"useExternalAvatars\"\n\t\t\t\t@change=\"onToggleExternalAvatars\">\n\t\t\t<label for=\"gravatar-enabled\">{{ t('mail', 'Use Gravatar and favicon avatars') }}</label>\n\t\t</p>\n\n\t\t<p v-if=\"loadingAvatarSettings\" class=\"app-settings reply-settings\">\n\t\t\t<span class=\"icon-loading-small\" />\n\t\t\t{{ replySettingsText }}\n\t\t</p>\n\t\t<p v-else class=\"app-settings\">\n\t\t\t<input\n\t\t\t\tid=\"bottom-reply-enabled\"\n\t\t\t\tclass=\"checkbox\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\t:checked=\"useBottomReplies\"\n\t\t\t\t@change=\"onToggleButtonReplies\">\n\t\t\t<label for=\"bottom-reply-enabled\">{{ replySettingsText }}</label>\n\t\t</p>\n\n\t\t<p>\n\t\t\t<button class=\"icon-mail app-settings-button\" @click=\"registerProtocolHandler\">\n\t\t\t\t{{ t('mail', 'Register as application for mail links') }}\n\t\t\t</button>\n\t\t</p>\n\n\t\t<button\n\t\t\tclass=\"icon-details app-settings-button\"\n\t\t\t@click.prevent.stop=\"showKeyboardShortcuts\"\n\t\t\t@shortkey=\"toggleKeyboardShortcuts\">\n\t\t\t{{ t('mail', 'Show keyboard shortcuts') }}\n\t\t</button>\n\t\t<KeyboardShortcuts v-if=\"displayKeyboardShortcuts\" @close=\"closeKeyboardShortcuts\" />\n\t</div>\n</template>\n\n<script>\nimport Logger from '../logger'\nimport { generateUrl } from '@nextcloud/router'\nimport KeyboardShortcuts from '../views/KeyboardShortcuts'\n\nexport default {\n\tname: 'AppSettingsMenu',\n\tcomponents: {\n\t\tKeyboardShortcuts,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloadingAvatarSettings: false,\n\t\t\t// eslint-disable-next-line\n\t\t\toptOutSettingsText: t('mail', 'Allow the app to collect data about your interactions. Based on this data, the app will adapt to your preferences. The data will only be stored locally.'),\n\t\t\tloadingOptOutSettings: false,\n\t\t\t// eslint-disable-next-line\n\t\t\treplySettingsText: t('mail', 'Put my text to the bottom of a reply instead of on top of it.'),\n\t\t\tloadingReplySettings: false,\n\t\t\tdisplayKeyboardShortcuts: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tuseBottomReplies() {\n\t\t\treturn this.$store.getters.getPreference('reply-mode', 'top') === 'bottom'\n\t\t},\n\t\tuseExternalAvatars() {\n\t\t\treturn this.$store.getters.getPreference('external-avatars', 'true') === 'true'\n\t\t},\n\t\tuseDataCollection() {\n\t\t\treturn this.$store.getters.getPreference('collect-data', 'true') === 'true'\n\t\t},\n\t},\n\tmethods: {\n\t\tonToggleButtonReplies(e) {\n\t\t\tthis.loadingReplySettings = true\n\n\t\t\tthis.$store\n\t\t\t\t.dispatch('savePreference', {\n\t\t\t\t\tkey: 'reply-mode',\n\t\t\t\t\tvalue: e.target.checked ? 'bottom' : 'top',\n\t\t\t\t})\n\t\t\t\t.catch((error) => Logger.error('could not save preferences', { error }))\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loadingReplySettings = false\n\t\t\t\t})\n\t\t},\n\t\tonToggleExternalAvatars(e) {\n\t\t\tthis.loadingAvatarSettings = true\n\n\t\t\tthis.$store\n\t\t\t\t.dispatch('savePreference', {\n\t\t\t\t\tkey: 'external-avatars',\n\t\t\t\t\tvalue: e.target.checked ? 'true' : 'false',\n\t\t\t\t})\n\t\t\t\t.catch((error) => Logger.error('could not save preferences', { error }))\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loadingAvatarSettings = false\n\t\t\t\t})\n\t\t},\n\t\tonToggleCollectData(e) {\n\t\t\tthis.loadingOptOutSettings = true\n\n\t\t\tthis.$store\n\t\t\t\t.dispatch('savePreference', {\n\t\t\t\t\tkey: 'collect-data',\n\t\t\t\t\tvalue: e.target.checked ? 'true' : 'false',\n\t\t\t\t})\n\t\t\t\t.catch((error) => Logger.error('could not save preferences', { error }))\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loadingOptOutSettings = false\n\t\t\t\t})\n\t\t},\n\t\tregisterProtocolHandler() {\n\t\t\tif (window.navigator.registerProtocolHandler) {\n\t\t\t\tconst url\n\t\t\t\t\t= window.location.protocol + '//' + window.location.host + generateUrl('apps/mail/compose?uri=%s')\n\t\t\t\ttry {\n\t\t\t\t\twindow.navigator.registerProtocolHandler('mailto', url, OC.theme.name + ' Mail')\n\t\t\t\t} catch (err) {\n\t\t\t\t\tLogger.error('could not register protocol handler', { err })\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Show the keyboard shortcuts overview\n\t\t */\n\t\tshowKeyboardShortcuts() {\n\t\t\tthis.displayKeyboardShortcuts = true\n\t\t},\n\t\t/**\n\t\t * Hide the keyboard shortcuts overview\n\t\t */\n\t\tcloseKeyboardShortcuts() {\n\t\t\tthis.displayKeyboardShortcuts = false\n\t\t},\n\t\t/**\n\t\t * Toggles the keyboard shortcuts overview\n\t\t */\n\t\ttoggleKeyboardShortcuts() {\n\t\t\tthis.displayKeyboardShortcuts = !this.displayKeyboardShortcuts\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\np.app-settings span.icon-loading-small {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n\tpadding: 5px 0;\n}\np.app-settings {\n\tpadding: 10px 0;\n}\n.app-settings-button {\n\tdisplay: block;\n\n\tpadding-left: 34px;\n\tbackground-position: 10px center;\n\ttext-align: left;\n}\n.app-settings-button.button.primary.new-button {\n\tcolor: var(--color-main-background);\n}\n.app-settings-link {\n\ttext-decoration: underline;\n}\n</style>\n","import { render, staticRenderFns } from \"./KeyboardShortcuts.vue?vue&type=template&id=17460ac4&scoped=true&\"\nimport script from \"./KeyboardShortcuts.vue?vue&type=script&lang=js&\"\nexport * from \"./KeyboardShortcuts.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KeyboardShortcuts.vue?vue&type=style&index=0&id=17460ac4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"17460ac4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',{attrs:{\"size\":\"large\",\"title\":_vm.t('mail', 'Keyboard shortcut')},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('h2',[_vm._v(_vm._s(_vm.t('mail', 'Keyboard shortcuts')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.t('mail', 'Speed up your Mail experience with these quick shortcuts.')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',[_c('kbd',[_vm._v(\"C\")])]),_vm._v(\" \"),_c('dd',[_vm._v(_vm._s(_vm.t('mail', 'Compose new message')))])]),_vm._v(\" \"),_c('div',[_c('dt',[_c('kbd',[_vm._v(\"←\")])]),_vm._v(\" \"),_c('dd',[_vm._v(_vm._s(_vm.t('mail', 'Newer message')))])]),_vm._v(\" \"),_c('div',[_c('dt',[_c('kbd',[_vm._v(\"→\")])]),_vm._v(\" \"),_c('dd',[_vm._v(_vm._s(_vm.t('mail', 'Older message')))])]),_vm._v(\" \"),_c('div',[_c('dt',[_c('kbd',[_vm._v(\"S\")])]),_vm._v(\" \"),_c('dd',[_vm._v(_vm._s(_vm.t('mail', 'Toggle star')))])]),_vm._v(\" \"),_c('div',[_c('dt',[_c('kbd',[_vm._v(\"U\")])]),_vm._v(\" \"),_c('dd',[_vm._v(_vm._s(_vm.t('mail', 'Toggle unread')))])]),_vm._v(\" \"),_c('div',[_c('dt',[_c('kbd',[_vm._v(\"Del\")])]),_vm._v(\" \"),_c('dd',[_vm._v(_vm._s(_vm.t('mail', 'Delete')))])]),_vm._v(\" \"),_c('div',[_c('dt',[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"F\")])]),_vm._v(\" \"),_c('dd',[_vm._v(_vm._s(_vm.t('mail', 'Search')))])]),_vm._v(\" \"),_c('div',[_c('dt',[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"Enter\")])]),_vm._v(\" \"),_c('dd',[_vm._v(_vm._s(_vm.t('mail', 'Send')))])]),_vm._v(\" \"),_c('div',[_c('dt',[_c('kbd',[_vm._v(\"R\")])]),_vm._v(\" \"),_c('dd',[_vm._v(_vm._s(_vm.t('mail', 'Refresh')))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSettingsMenu.vue?vue&type=style&index=0&id=20887712&scoped=true&lang=css&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./AppSettingsMenu.vue?vue&type=template&id=20887712&scoped=true&\"\nimport script from \"./AppSettingsMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./AppSettingsMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppSettingsMenu.vue?vue&type=style&index=0&id=20887712&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20887712\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('router-link',{staticClass:\"icon-add-white app-settings-button button primary new-button\",attrs:{\"to\":\"/setup\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('mail', 'Add mail account'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.loadingOptOutSettings)?_c('p',{staticClass:\"app-settings\"},[_c('span',{staticClass:\"icon-loading-small\"}),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.optOutSettingsText)+\"\\n\\t\")]):_c('p',{staticClass:\"app-settings\"},[_c('input',{staticClass:\"checkbox\",attrs:{\"id\":\"data-collection-toggle\",\"type\":\"checkbox\"},domProps:{\"checked\":_vm.useDataCollection},on:{\"change\":_vm.onToggleCollectData}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"data-collection-toggle\"}},[_vm._v(_vm._s(_vm.optOutSettingsText))])]),_vm._v(\" \"),(_vm.loadingAvatarSettings)?_c('p',{staticClass:\"app-settings avatar-settings\"},[_c('span',{staticClass:\"icon-loading-small\"}),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('mail', 'Use Gravatar and favicon avatars'))+\"\\n\\t\")]):_c('p',{staticClass:\"app-settings\"},[_c('input',{staticClass:\"checkbox\",attrs:{\"id\":\"gravatar-enabled\",\"type\":\"checkbox\"},domProps:{\"checked\":_vm.useExternalAvatars},on:{\"change\":_vm.onToggleExternalAvatars}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"gravatar-enabled\"}},[_vm._v(_vm._s(_vm.t('mail', 'Use Gravatar and favicon avatars')))])]),_vm._v(\" \"),(_vm.loadingAvatarSettings)?_c('p',{staticClass:\"app-settings reply-settings\"},[_c('span',{staticClass:\"icon-loading-small\"}),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.replySettingsText)+\"\\n\\t\")]):_c('p',{staticClass:\"app-settings\"},[_c('input',{staticClass:\"checkbox\",attrs:{\"id\":\"bottom-reply-enabled\",\"type\":\"checkbox\"},domProps:{\"checked\":_vm.useBottomReplies},on:{\"change\":_vm.onToggleButtonReplies}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"bottom-reply-enabled\"}},[_vm._v(_vm._s(_vm.replySettingsText))])]),_vm._v(\" \"),_c('p',[_c('button',{staticClass:\"icon-mail app-settings-button\",on:{\"click\":_vm.registerProtocolHandler}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Register as application for mail links'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('button',{staticClass:\"icon-details app-settings-button\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.showKeyboardShortcuts($event)},\"shortkey\":_vm.toggleKeyboardShortcuts}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('mail', 'Show keyboard shortcuts'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.displayKeyboardShortcuts)?_c('KeyboardShortcuts',{on:{\"close\":_vm.closeKeyboardShortcuts}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=js&\"","<!--\n - @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n\n<template>\n\t<AppNavigation>\n\t\t<AppNavigationNew\n\t\t\t:text=\"t('mail', 'New message')\"\n\t\t\tbutton-id=\"mail_new_message\"\n\t\t\tbutton-class=\"icon-add\"\n\t\t\trole=\"complementary\"\n\t\t\t@click=\"onNewMessage\" />\n\t\t<template #list>\n\t\t\t<ul id=\"accounts-list\">\n\t\t\t\t<template v-for=\"group in menu\">\n\t\t\t\t\t<NavigationAccount\n\t\t\t\t\t\tv-if=\"group.account\"\n\t\t\t\t\t\t:key=\"group.account.id\"\n\t\t\t\t\t\t:account=\"group.account\"\n\t\t\t\t\t\t:first-mailbox=\"group.mailboxes[0]\"\n\t\t\t\t\t\t:is-first=\"isFirst(group.account)\"\n\t\t\t\t\t\t:is-last=\"isLast(group.account)\" />\n\t\t\t\t\t<template v-for=\"item in group.mailboxes\">\n\t\t\t\t\t\t<NavigationMailbox\n\t\t\t\t\t\t\tv-show=\"\n\t\t\t\t\t\t\t\t!group.isCollapsible ||\n\t\t\t\t\t\t\t\t\t!group.account.collapsed ||\n\t\t\t\t\t\t\t\t\t!isCollapsed(group.account, item)\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\t:key=\"'mailbox-' + item.databaseId\"\n\t\t\t\t\t\t\t:account=\"group.account\"\n\t\t\t\t\t\t\t:mailbox=\"item\" />\n\t\t\t\t\t\t<NavigationMailbox\n\t\t\t\t\t\t\tv-if=\"!group.account.isUnified && item.specialRole === 'inbox'\"\n\t\t\t\t\t\t\t:key=\"item.databaseId + '-starred'\"\n\t\t\t\t\t\t\t:account=\"group.account\"\n\t\t\t\t\t\t\t:mailbox=\"item\"\n\t\t\t\t\t\t\tfilter=\"starred\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<NavigationAccountExpandCollapse\n\t\t\t\t\t\tv-if=\"!group.account.isUnified && group.isCollapsible\"\n\t\t\t\t\t\t:key=\"'collapse-' + group.account.id\"\n\t\t\t\t\t\t:account=\"group.account\" />\n\t\t\t\t\t<AppNavigationSpacer :key=\"'spacer-' + group.account.id\" />\n\t\t\t\t</template>\n\t\t\t</ul>\n\t\t</template>\n\t\t<template #footer>\n\t\t\t<AppNavigationSettings :title=\"t('mail', 'Settings')\">\n\t\t\t\t<AppSettingsMenu />\n\t\t\t</AppNavigationSettings>\n\t\t</template>\n\t</AppNavigation>\n</template>\n\n<script>\nimport AppNavigation from '@nextcloud/vue/dist/Components/AppNavigation'\nimport AppNavigationNew from '@nextcloud/vue/dist/Components/AppNavigationNew'\nimport AppNavigationSettings\n\tfrom '@nextcloud/vue/dist/Components/AppNavigationSettings'\nimport AppNavigationSpacer\n\tfrom '@nextcloud/vue/dist/Components/AppNavigationSpacer'\n\nimport logger from '../logger'\nimport NavigationAccount from './NavigationAccount'\nimport NavigationAccountExpandCollapse from './NavigationAccountExpandCollapse'\nimport NavigationMailbox from './NavigationMailbox'\n\nimport AppSettingsMenu from '../components/AppSettingsMenu'\n\nexport default {\n\tname: 'Navigation',\n\tcomponents: {\n\t\tAppNavigation,\n\t\tAppNavigationNew,\n\t\tAppNavigationSettings,\n\t\tAppNavigationSpacer,\n\t\tAppSettingsMenu,\n\t\tNavigationAccount,\n\t\tNavigationAccountExpandCollapse,\n\t\tNavigationMailbox,\n\t},\n\tcomputed: {\n\t\tmenu() {\n\t\t\treturn this.$store.getters.accounts.map((account) => {\n\t\t\t\tconst mailboxes = this.$store.getters.getMailboxes(account.id)\n\t\t\t\tconst nonSpecialRoleMailboxes = mailboxes.filter(\n\t\t\t\t\t(mailbox) => this.isCollapsed(account, mailbox)\n\t\t\t\t)\n\t\t\t\tconst isCollapsible = nonSpecialRoleMailboxes.length > 1\n\n\t\t\t\treturn {\n\t\t\t\t\tid: account.id,\n\t\t\t\t\taccount,\n\t\t\t\t\tmailboxes,\n\t\t\t\t\tisCollapsible,\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t},\n\tmethods: {\n\t\tisCollapsed(account, mailbox) {\n\t\t\tif (mailbox.specialRole === 'inbox') {\n\t\t\t\t// INBOX is always visible\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (mailbox.databaseId === account.draftsMailboxId\n\t\t\t\t|| mailbox.databaseId === account.sentMailboxId\n\t\t\t\t|| mailbox.databaseId === account.trashMailboxId) {\n\t\t\t\t// Special folders are always visible\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t},\n\t\tonNewMessage() {\n\t\t\tconst accountId = this.$route.params.accountId || this.$store.getters.accounts[0].id\n\n\t\t\tconst mailboxId = this.$route.params.mailboxId || this.$store.getters.getMailboxes(accountId)[0]?.databaseId\n\t\t\tif (\n\t\t\t\tthis.$router.currentRoute.name === 'message'\n\t\t\t\t&& this.$router.currentRoute.params.threadId === 'new'\n\t\t\t) {\n\t\t\t\t// If we already show the composer, navigating to it would be pointless (and doesn't work)\n\t\t\t\t// instead trigger an event to reset the composer\n\t\t\t\tthis.$root.$emit('newMessage')\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.$router\n\t\t\t\t.push({\n\t\t\t\t\tname: 'message',\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tmailboxId,\n\t\t\t\t\t\tfilter: this.$route.params.filter ? this.$route.params.filter : undefined,\n\t\t\t\t\t\tthreadId: 'new',\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.catch((err) => {\n\t\t\t\t\tlogger.error(err)\n\t\t\t\t})\n\t\t},\n\t\tisFirst(account) {\n\t\t\tconst accounts = this.$store.getters.accounts\n\t\t\treturn account === accounts[1]\n\t\t},\n\t\tisLast(account) {\n\t\t\tconst accounts = this.$store.getters.accounts\n\t\t\treturn account === accounts[accounts.length - 1]\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n</style>\n","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=74496258&scoped=true&\"\nimport script from \"./Navigation.vue?vue&type=script&lang=js&\"\nexport * from \"./Navigation.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74496258\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{attrs:{\"id\":\"account-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('Tabs',{attrs:{\"options\":{useUrlFragment: false, defaultTabHash: _vm.settingsPage ? 'manual' : 'auto'},\"cache-lifetime\":\"0\"},on:{\"changed\":_vm.onModeChanged}},[_c('Tab',{key:\"auto\",attrs:{\"id\":\"auto\",\"name\":_vm.t('mail', 'Auto')}},[_c('label',{attrs:{\"for\":\"auto-name\"}},[_vm._v(_vm._s(_vm.t('mail', 'Name')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.autoConfig.accountName),expression:\"autoConfig.accountName\"}],attrs:{\"id\":\"auto-name\",\"type\":\"text\",\"placeholder\":_vm.t('mail', 'Name'),\"disabled\":_vm.loading,\"autofocus\":\"\"},domProps:{\"value\":(_vm.autoConfig.accountName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.autoConfig, \"accountName\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"auto-address\"}},[_vm._v(_vm._s(_vm.t('mail', 'Mail Address')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.autoConfig.emailAddress),expression:\"autoConfig.emailAddress\"}],attrs:{\"id\":\"auto-address\",\"type\":\"email\",\"placeholder\":_vm.t('mail', 'Mail Address'),\"disabled\":_vm.loading,\"required\":\"\"},domProps:{\"value\":(_vm.autoConfig.emailAddress)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.autoConfig, \"emailAddress\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"auto-password\"}},[_vm._v(_vm._s(_vm.t('mail', 'Password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.autoConfig.password),expression:\"autoConfig.password\"}],attrs:{\"id\":\"auto-password\",\"type\":\"password\",\"placeholder\":_vm.t('mail', 'Password'),\"disabled\":_vm.loading,\"required\":\"\"},domProps:{\"value\":(_vm.autoConfig.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.autoConfig, \"password\", $event.target.value)}}})]),_vm._v(\" \"),_c('Tab',{key:\"manual\",attrs:{\"id\":\"manual\",\"name\":_vm.t('mail', 'Manual')}},[_c('label',{attrs:{\"for\":\"man-name\"}},[_vm._v(_vm._s(_vm.t('mail', 'Name')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.accountName),expression:\"manualConfig.accountName\"}],attrs:{\"id\":\"man-name\",\"type\":\"text\",\"placeholder\":_vm.t('mail', 'Name'),\"disabled\":_vm.loading},domProps:{\"value\":(_vm.manualConfig.accountName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.manualConfig, \"accountName\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"man-address\"}},[_vm._v(_vm._s(_vm.t('mail', 'Mail Address')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.emailAddress),expression:\"manualConfig.emailAddress\"}],attrs:{\"id\":\"man-address\",\"type\":\"email\",\"placeholder\":_vm.t('mail', 'Mail Address'),\"disabled\":_vm.loading,\"required\":\"\"},domProps:{\"value\":(_vm.manualConfig.emailAddress)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.manualConfig, \"emailAddress\", $event.target.value)}}}),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('mail', 'IMAP Settings')))]),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"man-imap-host\"}},[_vm._v(_vm._s(_vm.t('mail', 'IMAP Host')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.imapHost),expression:\"manualConfig.imapHost\"}],attrs:{\"id\":\"man-imap-host\",\"type\":\"text\",\"placeholder\":_vm.t('mail', 'IMAP Host'),\"disabled\":_vm.loading,\"required\":\"\"},domProps:{\"value\":(_vm.manualConfig.imapHost)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.manualConfig, \"imapHost\", $event.target.value)}}}),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.t('mail', 'IMAP Security')))]),_vm._v(\" \"),_c('div',{staticClass:\"flex-row\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.imapSslMode),expression:\"manualConfig.imapSslMode\"}],attrs:{\"id\":\"man-imap-sec-none\",\"type\":\"radio\",\"name\":\"man-imap-sec\",\"disabled\":_vm.loading,\"value\":\"none\"},domProps:{\"checked\":_vm._q(_vm.manualConfig.imapSslMode,\"none\")},on:{\"change\":[function($event){return _vm.$set(_vm.manualConfig, \"imapSslMode\", \"none\")},_vm.onImapSslModeChange]}}),_vm._v(\" \"),_c('label',{staticClass:\"button\",class:{primary: _vm.manualConfig.imapSslMode === 'none'},attrs:{\"for\":\"man-imap-sec-none\"}},[_vm._v(_vm._s(_vm.t('mail', 'None')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.imapSslMode),expression:\"manualConfig.imapSslMode\"}],attrs:{\"id\":\"man-imap-sec-ssl\",\"type\":\"radio\",\"name\":\"man-imap-sec\",\"disabled\":_vm.loading,\"value\":\"ssl\"},domProps:{\"checked\":_vm._q(_vm.manualConfig.imapSslMode,\"ssl\")},on:{\"change\":[function($event){return _vm.$set(_vm.manualConfig, \"imapSslMode\", \"ssl\")},_vm.onImapSslModeChange]}}),_vm._v(\" \"),_c('label',{staticClass:\"button\",class:{primary: _vm.manualConfig.imapSslMode === 'ssl'},attrs:{\"for\":\"man-imap-sec-ssl\"}},[_vm._v(_vm._s(_vm.t('mail', 'SSL/TLS')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.imapSslMode),expression:\"manualConfig.imapSslMode\"}],attrs:{\"id\":\"man-imap-sec-tls\",\"type\":\"radio\",\"name\":\"man-imap-sec\",\"disabled\":_vm.loading,\"value\":\"tls\"},domProps:{\"checked\":_vm._q(_vm.manualConfig.imapSslMode,\"tls\")},on:{\"change\":[function($event){return _vm.$set(_vm.manualConfig, \"imapSslMode\", \"tls\")},_vm.onImapSslModeChange]}}),_vm._v(\" \"),_c('label',{staticClass:\"button\",class:{primary: _vm.manualConfig.imapSslMode === 'tls'},attrs:{\"for\":\"man-imap-sec-tls\"}},[_vm._v(_vm._s(_vm.t('mail', 'STARTTLS')))])]),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"man-imap-port\"}},[_vm._v(_vm._s(_vm.t('mail', 'IMAP Port')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.imapPort),expression:\"manualConfig.imapPort\"}],attrs:{\"id\":\"man-imap-port\",\"type\":\"number\",\"placeholder\":_vm.t('mail', 'IMAP Port'),\"disabled\":_vm.loading,\"required\":\"\"},domProps:{\"value\":(_vm.manualConfig.imapPort)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.manualConfig, \"imapPort\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"man-imap-user\"}},[_vm._v(_vm._s(_vm.t('mail', 'IMAP User')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.imapUser),expression:\"manualConfig.imapUser\"}],attrs:{\"id\":\"man-imap-user\",\"type\":\"text\",\"placeholder\":_vm.t('mail', 'IMAP User'),\"disabled\":_vm.loading,\"required\":\"\"},domProps:{\"value\":(_vm.manualConfig.imapUser)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.manualConfig, \"imapUser\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"man-imap-password\"}},[_vm._v(_vm._s(_vm.t('mail', 'IMAP Password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.imapPassword),expression:\"manualConfig.imapPassword\"}],attrs:{\"id\":\"man-imap-password\",\"type\":\"password\",\"placeholder\":_vm.t('mail', 'IMAP Password'),\"disabled\":_vm.loading,\"required\":\"\"},domProps:{\"value\":(_vm.manualConfig.imapPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.manualConfig, \"imapPassword\", $event.target.value)}}}),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('mail', 'SMTP Settings')))]),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"man-smtp-host\"}},[_vm._v(_vm._s(_vm.t('mail', 'SMTP Host')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.smtpHost),expression:\"manualConfig.smtpHost\"}],ref:\"smtpHost\",attrs:{\"id\":\"man-smtp-host\",\"type\":\"text\",\"name\":\"smtp-host\",\"placeholder\":_vm.t('mail', 'SMTP Host'),\"disabled\":_vm.loading,\"required\":\"\"},domProps:{\"value\":(_vm.manualConfig.smtpHost)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.manualConfig, \"smtpHost\", $event.target.value)}}}),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.t('mail', 'SMTP Security')))]),_vm._v(\" \"),_c('div',{staticClass:\"flex-row\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.smtpSslMode),expression:\"manualConfig.smtpSslMode\"}],attrs:{\"id\":\"man-smtp-sec-none\",\"type\":\"radio\",\"name\":\"man-smtp-sec\",\"disabled\":_vm.loading,\"value\":\"none\"},domProps:{\"checked\":_vm._q(_vm.manualConfig.smtpSslMode,\"none\")},on:{\"change\":[function($event){return _vm.$set(_vm.manualConfig, \"smtpSslMode\", \"none\")},_vm.onSmtpSslModeChange]}}),_vm._v(\" \"),_c('label',{staticClass:\"button\",class:{primary: _vm.manualConfig.smtpSslMode === 'none'},attrs:{\"for\":\"man-smtp-sec-none\"}},[_vm._v(_vm._s(_vm.t('mail', 'None')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.smtpSslMode),expression:\"manualConfig.smtpSslMode\"}],attrs:{\"id\":\"man-smtp-sec-ssl\",\"type\":\"radio\",\"name\":\"man-smtp-sec\",\"disabled\":_vm.loading,\"value\":\"ssl\"},domProps:{\"checked\":_vm._q(_vm.manualConfig.smtpSslMode,\"ssl\")},on:{\"change\":[function($event){return _vm.$set(_vm.manualConfig, \"smtpSslMode\", \"ssl\")},_vm.onSmtpSslModeChange]}}),_vm._v(\" \"),_c('label',{staticClass:\"button\",class:{primary: _vm.manualConfig.smtpSslMode === 'ssl'},attrs:{\"for\":\"man-smtp-sec-ssl\"}},[_vm._v(_vm._s(_vm.t('mail', 'SSL/TLS')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.smtpSslMode),expression:\"manualConfig.smtpSslMode\"}],attrs:{\"id\":\"man-smtp-sec-tls\",\"type\":\"radio\",\"name\":\"man-smtp-sec\",\"disabled\":_vm.loading,\"value\":\"tls\"},domProps:{\"checked\":_vm._q(_vm.manualConfig.smtpSslMode,\"tls\")},on:{\"change\":[function($event){return _vm.$set(_vm.manualConfig, \"smtpSslMode\", \"tls\")},_vm.onSmtpSslModeChange]}}),_vm._v(\" \"),_c('label',{staticClass:\"button\",class:{primary: _vm.manualConfig.smtpSslMode === 'tls'},attrs:{\"for\":\"man-smtp-sec-tls\"}},[_vm._v(_vm._s(_vm.t('mail', 'STARTTLS')))])]),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"man-smtp-port\"}},[_vm._v(_vm._s(_vm.t('mail', 'SMTP Port')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.smtpPort),expression:\"manualConfig.smtpPort\"}],attrs:{\"id\":\"man-smtp-port\",\"type\":\"number\",\"placeholder\":_vm.t('mail', 'SMTP Port'),\"disabled\":_vm.loading,\"required\":\"\"},domProps:{\"value\":(_vm.manualConfig.smtpPort)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.manualConfig, \"smtpPort\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"man-smtp-user\"}},[_vm._v(_vm._s(_vm.t('mail', 'SMTP User')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.smtpUser),expression:\"manualConfig.smtpUser\"}],attrs:{\"id\":\"man-smtp-user\",\"type\":\"text\",\"placeholder\":_vm.t('mail', 'SMTP User'),\"disabled\":_vm.loading,\"required\":\"\"},domProps:{\"value\":(_vm.manualConfig.smtpUser)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.manualConfig, \"smtpUser\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"man-smtp-password\"}},[_vm._v(_vm._s(_vm.t('mail', 'SMTP Password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.manualConfig.smtpPassword),expression:\"manualConfig.smtpPassword\"}],attrs:{\"id\":\"man-smtp-password\",\"type\":\"password\",\"placeholder\":_vm.t('mail', 'SMTP Password'),\"disabled\":_vm.loading,\"required\":\"\"},domProps:{\"value\":(_vm.manualConfig.smtpPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.manualConfig, \"smtpPassword\", $event.target.value)}}})])],1),_vm._v(\" \"),_vm._t(\"feedback\"),_vm._v(\" \"),_c('input',{staticClass:\"primary\",attrs:{\"type\":\"submit\",\"disabled\":_vm.loading},domProps:{\"value\":_vm.submitButtonText},on:{\"click\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<form id=\"account-form\" @submit.prevent=\"onSubmit\">\n\t\t<Tabs\n\t\t\t:options=\"{useUrlFragment: false, defaultTabHash: settingsPage ? 'manual' : 'auto'}\"\n\t\t\tcache-lifetime=\"0\"\n\t\t\t@changed=\"onModeChanged\">\n\t\t\t<Tab id=\"auto\" key=\"auto\" :name=\"t('mail', 'Auto')\">\n\t\t\t\t<label for=\"auto-name\">{{ t('mail', 'Name') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"auto-name\"\n\t\t\t\t\tv-model=\"autoConfig.accountName\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t:placeholder=\"t('mail', 'Name')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\tautofocus>\n\t\t\t\t<label for=\"auto-address\">{{ t('mail', 'Mail Address') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"auto-address\"\n\t\t\t\t\tv-model=\"autoConfig.emailAddress\"\n\t\t\t\t\ttype=\"email\"\n\t\t\t\t\t:placeholder=\"t('mail', 'Mail Address')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\trequired>\n\t\t\t\t<label for=\"auto-password\">{{ t('mail', 'Password') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"auto-password\"\n\t\t\t\t\tv-model=\"autoConfig.password\"\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t:placeholder=\"t('mail', 'Password')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\trequired>\n\t\t\t</Tab>\n\t\t\t<Tab id=\"manual\" key=\"manual\" :name=\"t('mail', 'Manual')\">\n\t\t\t\t<label for=\"man-name\">{{ t('mail', 'Name') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"man-name\"\n\t\t\t\t\tv-model=\"manualConfig.accountName\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t:placeholder=\"t('mail', 'Name')\"\n\t\t\t\t\t:disabled=\"loading\">\n\t\t\t\t<label for=\"man-address\">{{ t('mail', 'Mail Address') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"man-address\"\n\t\t\t\t\tv-model=\"manualConfig.emailAddress\"\n\t\t\t\t\ttype=\"email\"\n\t\t\t\t\t:placeholder=\"t('mail', 'Mail Address')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\trequired>\n\n\t\t\t\t<h3>{{ t('mail', 'IMAP Settings') }}</h3>\n\t\t\t\t<label for=\"man-imap-host\">{{ t('mail', 'IMAP Host') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"man-imap-host\"\n\t\t\t\t\tv-model=\"manualConfig.imapHost\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t:placeholder=\"t('mail', 'IMAP Host')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\trequired>\n\t\t\t\t<h4>{{ t('mail', 'IMAP Security') }}</h4>\n\t\t\t\t<div class=\"flex-row\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tid=\"man-imap-sec-none\"\n\t\t\t\t\t\tv-model=\"manualConfig.imapSslMode\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tname=\"man-imap-sec\"\n\t\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\t\tvalue=\"none\"\n\t\t\t\t\t\t@change=\"onImapSslModeChange\">\n\t\t\t\t\t<label\n\t\t\t\t\t\tclass=\"button\"\n\t\t\t\t\t\tfor=\"man-imap-sec-none\"\n\t\t\t\t\t\t:class=\"{primary: manualConfig.imapSslMode === 'none'}\">{{ t('mail', 'None') }}</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\tid=\"man-imap-sec-ssl\"\n\t\t\t\t\t\tv-model=\"manualConfig.imapSslMode\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tname=\"man-imap-sec\"\n\t\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\t\tvalue=\"ssl\"\n\t\t\t\t\t\t@change=\"onImapSslModeChange\">\n\t\t\t\t\t<label\n\t\t\t\t\t\tclass=\"button\"\n\t\t\t\t\t\tfor=\"man-imap-sec-ssl\"\n\t\t\t\t\t\t:class=\"{primary: manualConfig.imapSslMode === 'ssl'}\">{{ t('mail', 'SSL/TLS') }}</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\tid=\"man-imap-sec-tls\"\n\t\t\t\t\t\tv-model=\"manualConfig.imapSslMode\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tname=\"man-imap-sec\"\n\t\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\t\tvalue=\"tls\"\n\t\t\t\t\t\t@change=\"onImapSslModeChange\">\n\t\t\t\t\t<label\n\t\t\t\t\t\tclass=\"button\"\n\t\t\t\t\t\tfor=\"man-imap-sec-tls\"\n\t\t\t\t\t\t:class=\"{primary: manualConfig.imapSslMode === 'tls'}\">{{ t('mail', 'STARTTLS') }}</label>\n\t\t\t\t</div>\n\t\t\t\t<label for=\"man-imap-port\">{{ t('mail', 'IMAP Port') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"man-imap-port\"\n\t\t\t\t\tv-model=\"manualConfig.imapPort\"\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t:placeholder=\"t('mail', 'IMAP Port')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\trequired>\n\t\t\t\t<label for=\"man-imap-user\">{{ t('mail', 'IMAP User') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"man-imap-user\"\n\t\t\t\t\tv-model=\"manualConfig.imapUser\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t:placeholder=\"t('mail', 'IMAP User')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\trequired>\n\t\t\t\t<label for=\"man-imap-password\">{{ t('mail', 'IMAP Password') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"man-imap-password\"\n\t\t\t\t\tv-model=\"manualConfig.imapPassword\"\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t:placeholder=\"t('mail', 'IMAP Password')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\trequired>\n\n\t\t\t\t<h3>{{ t('mail', 'SMTP Settings') }}</h3>\n\t\t\t\t<label for=\"man-smtp-host\">{{ t('mail', 'SMTP Host') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"man-smtp-host\"\n\t\t\t\t\tref=\"smtpHost\"\n\t\t\t\t\tv-model=\"manualConfig.smtpHost\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tname=\"smtp-host\"\n\t\t\t\t\t:placeholder=\"t('mail', 'SMTP Host')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\trequired>\n\t\t\t\t<h4>{{ t('mail', 'SMTP Security') }}</h4>\n\t\t\t\t<div class=\"flex-row\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tid=\"man-smtp-sec-none\"\n\t\t\t\t\t\tv-model=\"manualConfig.smtpSslMode\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tname=\"man-smtp-sec\"\n\t\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\t\tvalue=\"none\"\n\t\t\t\t\t\t@change=\"onSmtpSslModeChange\">\n\t\t\t\t\t<label\n\t\t\t\t\t\tclass=\"button\"\n\t\t\t\t\t\tfor=\"man-smtp-sec-none\"\n\t\t\t\t\t\t:class=\"{primary: manualConfig.smtpSslMode === 'none'}\">{{ t('mail', 'None') }}</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\tid=\"man-smtp-sec-ssl\"\n\t\t\t\t\t\tv-model=\"manualConfig.smtpSslMode\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tname=\"man-smtp-sec\"\n\t\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\t\tvalue=\"ssl\"\n\t\t\t\t\t\t@change=\"onSmtpSslModeChange\">\n\t\t\t\t\t<label\n\t\t\t\t\t\tclass=\"button\"\n\t\t\t\t\t\tfor=\"man-smtp-sec-ssl\"\n\t\t\t\t\t\t:class=\"{primary: manualConfig.smtpSslMode === 'ssl'}\">{{ t('mail', 'SSL/TLS') }}</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\tid=\"man-smtp-sec-tls\"\n\t\t\t\t\t\tv-model=\"manualConfig.smtpSslMode\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tname=\"man-smtp-sec\"\n\t\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\t\tvalue=\"tls\"\n\t\t\t\t\t\t@change=\"onSmtpSslModeChange\">\n\t\t\t\t\t<label\n\t\t\t\t\t\tclass=\"button\"\n\t\t\t\t\t\tfor=\"man-smtp-sec-tls\"\n\t\t\t\t\t\t:class=\"{primary: manualConfig.smtpSslMode === 'tls'}\">{{ t('mail', 'STARTTLS') }}</label>\n\t\t\t\t</div>\n\t\t\t\t<label for=\"man-smtp-port\">{{ t('mail', 'SMTP Port') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"man-smtp-port\"\n\t\t\t\t\tv-model=\"manualConfig.smtpPort\"\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t:placeholder=\"t('mail', 'SMTP Port')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\trequired>\n\t\t\t\t<label for=\"man-smtp-user\">{{ t('mail', 'SMTP User') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"man-smtp-user\"\n\t\t\t\t\tv-model=\"manualConfig.smtpUser\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t:placeholder=\"t('mail', 'SMTP User')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\trequired>\n\t\t\t\t<label for=\"man-smtp-password\">{{ t('mail', 'SMTP Password') }}</label>\n\t\t\t\t<input\n\t\t\t\t\tid=\"man-smtp-password\"\n\t\t\t\t\tv-model=\"manualConfig.smtpPassword\"\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t:placeholder=\"t('mail', 'SMTP Password')\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\trequired>\n\t\t\t</Tab>\n\t\t</Tabs>\n\t\t<slot name=\"feedback\" />\n\t\t<input type=\"submit\"\n\t\t\tclass=\"primary\"\n\t\t\t:disabled=\"loading\"\n\t\t\t:value=\"submitButtonText\"\n\t\t\t@click.prevent=\"onSubmit\">\n\t</form>\n</template>\n\n<script>\nimport { Tab, Tabs } from 'vue-tabs-component'\n\nimport logger from '../logger'\n\nexport default {\n\tname: 'AccountForm',\n\tcomponents: {\n\t\tTab,\n\t\tTabs,\n\t},\n\tprops: {\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\temail: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tsave: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t\tdefault: () => undefined,\n\t\t},\n\t},\n\tdata() {\n\t\tconst fromAccountOr = (prop, def) => {\n\t\t\tif (this.account !== undefined) {\n\t\t\t\treturn this.account[prop]\n\t\t\t} else {\n\t\t\t\treturn def\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tloading: false,\n\t\t\tmode: 'auto',\n\t\t\tautoConfig: {\n\t\t\t\taccountName: this.displayName,\n\t\t\t\temailAddress: this.email,\n\t\t\t\tpassword: '',\n\t\t\t},\n\t\t\tmanualConfig: {\n\t\t\t\taccountName: '',\n\t\t\t\temailAddress: '',\n\t\t\t\timapHost: fromAccountOr('imapHost', ''),\n\t\t\t\timapPort: fromAccountOr('imapPort', 993),\n\t\t\t\timapSslMode: fromAccountOr('imapSslMode', 'ssl'),\n\t\t\t\timapUser: fromAccountOr('imapUser', ''),\n\t\t\t\timapPassword: '',\n\t\t\t\tsmtpHost: fromAccountOr('smtpHost', ''),\n\t\t\t\tsmtpPort: fromAccountOr('smtpPort', 587),\n\t\t\t\tsmtpSslMode: fromAccountOr('smtpSslMode', 'tls'),\n\t\t\t\tsmtpUser: fromAccountOr('smtpUser', ''),\n\t\t\t\tsmtpPassword: '',\n\t\t\t},\n\t\t\tsubmitButtonText: this.account ? t('mail', 'Save') : t('mail', 'Connect'),\n\t\t}\n\t},\n\tcomputed: {\n\t\tsettingsPage() {\n\t\t\treturn this.account !== undefined\n\t\t},\n\t},\n\tmethods: {\n\t\tonModeChanged(e) {\n\t\t\tthis.mode = e.tab.id\n\n\t\t\tif (this.mode === 'manual') {\n\t\t\t\tif (this.manualConfig.accountName === '') {\n\t\t\t\t\tthis.manualConfig.accountName = this.autoConfig.accountName\n\t\t\t\t}\n\t\t\t\tif (this.manualConfig.emailAddress === '') {\n\t\t\t\t\tthis.manualConfig.emailAddress = this.autoConfig.emailAddress\n\t\t\t\t}\n\n\t\t\t\t// IMAP\n\t\t\t\tif (this.manualConfig.imapUser === '') {\n\t\t\t\t\tthis.manualConfig.imapUser = this.autoConfig.emailAddress\n\t\t\t\t}\n\t\t\t\tif (this.manualConfig.imapPassword === '') {\n\t\t\t\t\tthis.manualConfig.imapPassword = this.autoConfig.password\n\t\t\t\t}\n\n\t\t\t\t// SMTP\n\t\t\t\tif (this.manualConfig.smtpUser === '') {\n\t\t\t\t\tthis.manualConfig.smtpUser = this.autoConfig.emailAddress\n\t\t\t\t}\n\t\t\t\tif (this.manualConfig.smtpPassword === '') {\n\t\t\t\t\tthis.manualConfig.smtpPassword = this.autoConfig.password\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonImapSslModeChange() {\n\t\t\tswitch (this.manualConfig.imapSslMode) {\n\t\t\tcase 'none':\n\t\t\tcase 'tls':\n\t\t\t\tthis.manualConfig.imapPort = 143\n\t\t\t\tbreak\n\t\t\tcase 'ssl':\n\t\t\t\tthis.manualConfig.imapPort = 993\n\t\t\t\tbreak\n\t\t\t}\n\t\t},\n\t\tonSmtpSslModeChange() {\n\t\t\tswitch (this.manualConfig.smtpSslMode) {\n\t\t\tcase 'none':\n\t\t\tcase 'tls':\n\t\t\t\tthis.manualConfig.smtpPort = 587\n\t\t\t\tbreak\n\t\t\tcase 'ssl':\n\t\t\t\tthis.manualConfig.smtpPort = 465\n\t\t\t\tbreak\n\t\t\t}\n\t\t},\n\t\tsaveChanges() {\n\t\t\tif (this.mode === 'auto') {\n\t\t\t\treturn this.save({\n\t\t\t\t\tautoDetect: true,\n\t\t\t\t\t...this.autoConfig,\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\treturn this.save({\n\t\t\t\t\tautoDetect: false,\n\t\t\t\t\t...this.manualConfig,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tonSubmit(event) {\n\t\t\tconsole.debug('account form submitted', { event })\n\n\t\t\tthis.loading = true\n\n\t\t\tthis.saveChanges()\n\t\t\t\t.catch((error) => logger.error('could not save account details', { error }))\n\t\t\t\t.then(() => (this.loading = false))\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n::v-deep .tabs-component-tabs {\n\tdisplay: flex;\n}\n\n::v-deep .tabs-component-tab {\n\tflex-grow: 1;\n\ttext-align: center;\n\tcolor: var(--color-text-lighter);\n\tmargin-bottom: 10px;\n}\n\n::v-deep .tabs-component-tab.is-active {\n\tborder-bottom: 1px solid black;\n\tfont-weight: bold;\n}\n\n.tabs-component-panels {\n\tpadding-top: 20px;\n}\n\n.tabs-component-panels label {\n\ttext-align: left;\n\twidth: 100%;\n\tdisplay: inline-block;\n}\n\n.tabs-component-panels input,\n.tabs-component-panels select {\n\tmargin-bottom: 10px;\n}\n</style>\n\n<style scoped>\nh4 {\n\ttext-align: left;\n}\n\n.flex-row {\n\tdisplay: flex;\n}\n\nlabel.button {\n\tdisplay: inline-block;\n\ttext-align: center;\n\tflex-grow: 1;\n}\nlabel.primary {\n\tcolor: var(--color-main-background);\n}\ninput.primary {\n\tcolor: var(--color-main-background);\n}\n\ninput[type='radio'] {\n\tdisplay: none;\n}\n\ninput[type='radio'][disabled] + label {\n\tcursor: default;\n\topacity: 0.5;\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountForm.vue?vue&type=script&lang=js&\"","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountForm.vue?vue&type=style&index=0&id=2bf4e148&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountForm.vue?vue&type=style&index=1&id=2bf4e148&scoped=true&lang=css&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./AccountForm.vue?vue&type=template&id=2bf4e148&scoped=true&\"\nimport script from \"./AccountForm.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountForm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AccountForm.vue?vue&type=style&index=0&id=2bf4e148&lang=scss&scoped=true&\"\nimport style1 from \"./AccountForm.vue?vue&type=style&index=1&id=2bf4e148&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2bf4e148\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',{on:{\"close\":_vm.onClose}},[_c('div',{ref:\"content\",staticClass:\"modal-content\"},[_c('h2',{staticClass:\"oc-dialog-title\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('mail', 'Choose target mailbox'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"crumbs\"},[_c('div',{staticClass:\"level icon-breadcrumb\"},[_c('a',{staticClass:\"icon-home\",on:{\"click\":function($event){$event.preventDefault();return _vm.onClickHome($event)}}})]),_vm._v(\" \"),_vm._l((_vm.mailboxCrumbs),function(box,index){return _c('div',{key:box.databaseId,staticClass:\"level icon-breadcrumb\"},[_c('a',{on:{\"click\":function($event){$event.preventDefault();return _vm.onClickCrumb(index)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.getMailboxTitle(box))+\"\\n\\t\\t\\t\\t\")])])})],2),_vm._v(\" \"),_c('div',{staticClass:\"mailbox-list\"},[(_vm.filteredMailboxes.length > 0)?_c('ul',_vm._l((_vm.filteredMailboxes),function(box){return _c('li',{key:box.databaseId,on:{\"click\":function($event){$event.preventDefault();return _vm.onClickMailbox(box)}}},[_c('div',{class:['mailbox-icon', _vm.getMailboxIcon(box)]}),_vm._v(\" \"),_c('div',{staticClass:\"mailbox-title\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.getMailboxTitle(box))+\"\\n\\t\\t\\t\\t\\t\")])])}),0):_c('div',{staticClass:\"empty\"},[_c('div',{staticClass:\"empty-icon icon-folder\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.t('mail', 'No more submailboxes in here')))])])]),_vm._v(\" \"),_c('div',{staticClass:\"buttons\"},[_c('button',{staticClass:\"primary\",attrs:{\"disabled\":_vm.loading || (!_vm.allowRoot && !_vm.selectedMailboxId)},on:{\"click\":_vm.onSelect}},[(_vm.loading)?_c('span',{staticClass:\"icon-loading-small spinner\"}):_vm._e(),_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.loading ? _vm.labelSelectLoading : _vm.labelSelect)+\"\\n\\t\\t\\t\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MailboxPicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MailboxPicker.vue?vue&type=script&lang=js&\"","<template>\n\t<Modal @close=\"onClose\">\n\t\t<div ref=\"content\" class=\"modal-content\">\n\t\t\t<h2 class=\"oc-dialog-title\">\n\t\t\t\t{{ t('mail', 'Choose target mailbox') }}\n\t\t\t</h2>\n\t\t\t<span class=\"crumbs\">\n\t\t\t\t<div class=\"level icon-breadcrumb\">\n\t\t\t\t\t<a class=\"icon-home\" @click.prevent=\"onClickHome\" />\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(box, index) in mailboxCrumbs\"\n\t\t\t\t\t:key=\"box.databaseId\"\n\t\t\t\t\tclass=\"level icon-breadcrumb\">\n\t\t\t\t\t<a @click.prevent=\"onClickCrumb(index)\">\n\t\t\t\t\t\t{{ getMailboxTitle(box) }}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t</span>\n\t\t\t<div class=\"mailbox-list\">\n\t\t\t\t<ul v-if=\"filteredMailboxes.length > 0\">\n\t\t\t\t\t<li\n\t\t\t\t\t\tv-for=\"box in filteredMailboxes \"\n\t\t\t\t\t\t:key=\"box.databaseId\"\n\t\t\t\t\t\t@click.prevent=\"onClickMailbox(box)\">\n\t\t\t\t\t\t<div :class=\"['mailbox-icon', getMailboxIcon(box)]\" />\n\t\t\t\t\t\t<div class=\"mailbox-title\">\n\t\t\t\t\t\t\t{{ getMailboxTitle(box) }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t\t<div v-else class=\"empty\">\n\t\t\t\t\t<div class=\"empty-icon icon-folder\" />\n\t\t\t\t\t<h2>{{ t('mail', 'No more submailboxes in here') }}</h2>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"buttons\">\n\t\t\t\t<button class=\"primary\" :disabled=\"loading || (!allowRoot && !selectedMailboxId)\" @click=\"onSelect\">\n\t\t\t\t\t<span v-if=\"loading\" class=\"icon-loading-small spinner\" />\n\t\t\t\t\t{{ loading ? labelSelectLoading : labelSelect }}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t</Modal>\n</template>\n<script>\nimport Modal from '@nextcloud/vue/dist/Components/Modal'\n\nimport { translate as t } from '@nextcloud/l10n'\nimport { translate as translateMailboxName } from '../i18n/MailboxTranslator'\n\nexport default {\n\tname: 'MailboxPicker',\n\tcomponents: {\n\t\tModal,\n\t},\n\tprops: {\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tselected: {\n\t\t\ttype: Number,\n\t\t\trequired: false,\n\t\t\tdefault: undefined,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false,\n\t\t},\n\t\tlabelSelect: {\n\t\t\ttype: String,\n\t\t\tdefault: t('mail', 'Choose'),\n\t\t},\n\t\tlabelSelectLoading: {\n\t\t\ttype: String,\n\t\t\tdefault: t('mail', 'Choose'),\n\t\t},\n\t\tpickedMailbox: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t\tdefault: () => undefined,\n\t\t},\n\t\tallowRoot: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tselectedMailboxId: undefined,\n\t\t\tmailboxCrumbs: [],\n\t\t}\n\t},\n\tcomputed: {\n\t\tmailboxes() {\n\t\t\tif (!this.selectedMailboxId) {\n\t\t\t\treturn this.$store.getters.getMailboxes(this.account.accountId)\n\t\t\t} else {\n\t\t\t\treturn this.$store.getters.getSubMailboxes(this.selectedMailboxId)\n\t\t\t}\n\t\t},\n\t\tfilteredMailboxes() {\n\t\t\tif (this.pickedMailbox) {\n\t\t\t\treturn this.mailboxes.filter(mailbox => mailbox.databaseId !== this.pickedMailbox.databaseId)\n\t\t\t}\n\t\t\treturn this.mailboxes\n\t\t},\n\t},\n\tmethods: {\n\t\tgetMailboxIcon(mailbox) {\n\t\t\treturn mailbox.specialRole ? 'icon-' + mailbox.specialRole : 'icon-folder'\n\t\t},\n\t\tgetMailboxTitle(mailbox) {\n\t\t\treturn translateMailboxName(mailbox)\n\t\t},\n\t\tonClickHome() {\n\t\t\tthis.selectedMailboxId = undefined\n\t\t\tthis.$emit('update:selected', undefined)\n\t\t\tthis.mailboxCrumbs = []\n\t\t},\n\t\tonClickCrumb(index) {\n\t\t\tthis.selectedMailboxId = this.mailboxCrumbs[index].databaseId\n\t\t\tthis.$emit('update:selected', this.selectedMailboxId)\n\t\t\tthis.mailboxCrumbs = this.mailboxCrumbs.slice(0, index + 1)\n\t\t},\n\t\tonClickMailbox(mailbox) {\n\t\t\tthis.selectedMailboxId = mailbox.databaseId\n\t\t\tthis.$emit('update:selected', this.selectedMailboxId)\n\t\t\tthis.mailboxCrumbs.push(mailbox)\n\t\t},\n\t\tonSelect() {\n\t\t\tthis.$emit('select', this.selectedMailboxId)\n\t\t},\n\t\tonClose() {\n\t\t\tthis.$emit('close')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n::v-deep .modal-container {\n\twidth: calc(100vw - 120px) !important;\n\theight: calc(100vh - 120px) !important;\n\tmax-width: 600px !important;\n\tmax-height: 500px !important;\n}\n\n.modal-content {\n\tdisplay: flex;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\tflex-direction: column;\n\tpadding: 15px;\n}\n\n.crumbs {\n\tdisplay: inline-flex;\n\tpadding-left: 12px;\n\tpadding-right: 0px;\n\tflex-wrap: wrap;\n\n\t.level {\n\t\tdisplay: inline-flex;\n\t\theight: 44px;\n\t\tmin-width: 0px;\n\t\tflex: 0 0 auto;\n\t\torder: 1;\n\t\tpadding-right: 7px;\n\t\tbackground-position: right center;\n\t\tbackground-size: auto 24px;\n\t}\n\n\ta {\n\t\tposition: relative;\n\t\tpadding: 12px;\n\t\topacity: 0.5;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\tflex: 0 0 auto;\n\t\tmin-width: 0px;\n\t\tmax-width: 200px;\n\n\t\t&:hover {\n\t\t\topacity: 0.7;\n\t\t}\n\t}\n\n\ta.icon-home {\n\t\twidth: 0px;\n\t\tbackground-position: left center;\n\t}\n}\n\n.mailbox-list {\n\tdisplay: inline-block;\n\twidth: 100%;\n\theight: 100%;\n\toverflow-y: auto;\n\tflex: 1;\n\n\tli {\n\t\tdisplay: flex;\n\t\tcursor: pointer;\n\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\n\t\t&:not(:last-child) {\n\t\t\tborder-bottom: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t.empty {\n\t\twidth: 100%;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\ttext-align: center;\n\t\tmargin-top: 80px;\n\t}\n\n\t.empty-icon {\n\t\topacity: 0.4;\n\t\tbackground-size: 64px;\n\t\theight: 64px;\n\t\twidth: 64px;\n\t\tmargin: 0 auto 15px;\n\t}\n\n\t.mailbox-icon {\n\t\twidth: 24px;\n\t\theight: 24px;\n\t\tpadding: 14px;\n\t\topacity: 0.9;\n\t\tbackground-size: 24px;\n\t}\n\n\t.mailbox-title {\n\t\tpadding: 14px 14px 14px 0;\n\t\tflex: 1;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n.buttons {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tpadding-top: 10px;\n\n\t.spinner {\n\t\tmargin-right: 5px;\n\t}\n}\n</style>\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MailboxPicker.vue?vue&type=style&index=0&id=84d66076&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./MailboxPicker.vue?vue&type=template&id=84d66076&scoped=true&\"\nimport script from \"./MailboxPicker.vue?vue&type=script&lang=js&\"\nexport * from \"./MailboxPicker.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MailboxPicker.vue?vue&type=style&index=0&id=84d66076&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"84d66076\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.ready)?_c('ckeditor',{attrs:{\"config\":_vm.config,\"editor\":_vm.editor},on:{\"input\":_vm.onInput,\"ready\":_vm.onEditorReady},model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -->\n\n<template>\n\t<ckeditor\n\t\tv-if=\"ready\"\n\t\tv-model=\"text\"\n\t\t:config=\"config\"\n\t\t:editor=\"editor\"\n\t\t@input=\"onInput\"\n\t\t@ready=\"onEditorReady\" />\n</template>\n\n<script>\nimport CKEditor from '@ckeditor/ckeditor5-vue2'\nimport AlignmentPlugin from '@ckeditor/ckeditor5-alignment/src/alignment'\nimport Editor from '@ckeditor/ckeditor5-editor-balloon/src/ballooneditor'\nimport EssentialsPlugin from '@ckeditor/ckeditor5-essentials/src/essentials'\nimport BlockQuotePlugin from '@ckeditor/ckeditor5-block-quote/src/blockquote'\nimport BoldPlugin from '@ckeditor/ckeditor5-basic-styles/src/bold'\nimport HeadingPlugin from '@ckeditor/ckeditor5-heading/src/heading'\nimport ItalicPlugin from '@ckeditor/ckeditor5-basic-styles/src/italic'\nimport LinkPlugin from '@ckeditor/ckeditor5-link/src/link'\nimport ListStyle from '@ckeditor/ckeditor5-list/src/liststyle'\nimport ParagraphPlugin from '@ckeditor/ckeditor5-paragraph/src/paragraph'\n\nimport { getLanguage } from '@nextcloud/l10n'\nimport DOMPurify from 'dompurify'\n\nimport logger from '../logger'\n\nexport default {\n\tname: 'TextEditor',\n\tcomponents: {\n\t\tckeditor: CKEditor.component,\n\t},\n\tprops: {\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\thtml: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tfocus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tbus: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\tconst plugins = [EssentialsPlugin, ParagraphPlugin]\n\t\tconst toolbar = ['undo', 'redo']\n\n\t\tif (this.html) {\n\t\t\tplugins.push(...[HeadingPlugin, AlignmentPlugin, BoldPlugin, ItalicPlugin, BlockQuotePlugin, LinkPlugin, ListStyle])\n\t\t\ttoolbar.unshift(...['heading', 'alignment', 'bold', 'italic', 'bulletedList', 'numberedList', 'blockquote', 'link'])\n\t\t}\n\n\t\treturn {\n\t\t\ttext: '',\n\t\t\tready: false,\n\t\t\teditor: Editor,\n\t\t\tconfig: {\n\t\t\t\tplaceholder: this.placeholder,\n\t\t\t\tplugins,\n\t\t\t\ttoolbar: {\n\t\t\t\t\titems: toolbar,\n\t\t\t\t},\n\t\t\t\tlanguage: 'en',\n\t\t\t},\n\t\t}\n\t},\n\tcomputed: {\n\t\tsanitizedValue() {\n\t\t\treturn DOMPurify.sanitize(this.value, {\n\t\t\t\tFORBID_TAGS: ['style'],\n\t\t\t})\n\t\t},\n\t},\n\twatch: {\n\t\tsanitizedValue(newVal) {\n\t\t\t// needed for reset in composer\n\t\t\tthis.text = newVal\n\t\t},\n\t},\n\tbeforeMount() {\n\t\tthis.loadEditorTranslations(getLanguage())\n\t},\n\tmethods: {\n\t\tasync loadEditorTranslations(language) {\n\t\t\tif (language === 'en') {\n\t\t\t\t// The default, nothing to fetch\n\t\t\t\treturn this.showEditor('en')\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tlogger.debug(`loading ${language} translations for CKEditor`)\n\t\t\t\tawait import(\n\t\t\t\t\t/* webpackMode: \"lazy-once\" */\n\t\t\t\t\t/* webpackPrefetch: true */\n\t\t\t\t\t/* webpackPreload: true */\n\t\t\t\t\t`@ckeditor/ckeditor5-build-balloon/build/translations/${language}`\n\t\t\t\t)\n\t\t\t\tthis.showEditor(language)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(`could not find CKEditor translations for \"${language}\"`, { error })\n\t\t\t\tthis.showEditor('en')\n\t\t\t}\n\t\t},\n\t\tshowEditor(language) {\n\t\t\tlogger.debug(`using \"${language}\" as CKEditor language`)\n\t\t\tthis.config.language = language\n\n\t\t\tthis.ready = true\n\t\t},\n\t\tonEditorReady(editor) {\n\t\t\tconst schema = editor.model.schema\n\n\t\t\tlogger.debug('CKEditor editor is ready', { editor, schema })\n\n\t\t\tthis.editorInstance = editor\n\n\t\t\t// Set 0 pixel margin to all <p> elements\n\t\t\teditor.conversion.for('downcast').add((dispatcher) => {\n\t\t\t\tdispatcher.on(\n\t\t\t\t\t'insert:paragraph',\n\t\t\t\t\t(evt, data, conversionApi) => {\n\t\t\t\t\t\tconst viewWriter = conversionApi.writer\n\t\t\t\t\t\tviewWriter.setStyle('margin', '0', conversionApi.mapper.toViewElement(data.item))\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpriority: 'low',\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t})\n\n\t\t\tschema.on(\n\t\t\t\t'checkChild',\n\t\t\t\t(evt, args) => {\n\t\t\t\t\tconst context = args[0]\n\n\t\t\t\t\tif (context.endsWith('blockQuote')) {\n\t\t\t\t\t\t// Prevent next listeners from being called.\n\t\t\t\t\t\tevt.stop()\n\t\t\t\t\t\t// Set the checkChild()'s return value.\n\t\t\t\t\t\tevt.return = true\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpriority: 'highest',\n\t\t\t\t}\n\t\t\t)\n\t\t\tif (this.focus) {\n\t\t\t\tlogger.debug('focusing TextEditor')\n\t\t\t\teditor.editing.view.focus()\n\t\t\t}\n\n\t\t\t// Set value as late as possible, so the custom schema listener is used\n\t\t\t// for the initial editor model\n\t\t\tthis.text = this.sanitizedValue\n\n\t\t\tlogger.debug(`setting TextEditor contents to <${this.text}>`)\n\n\t\t\tthis.bus.$on('appendToBodyAtCursor', this.appendToBodyAtCursor)\n\t\t},\n\t\tonInput() {\n\t\t\tlogger.debug(`TextEditor input changed to <${this.text}>`)\n\t\t\tthis.$emit('input', this.text)\n\t\t},\n\t\tappendToBodyAtCursor(toAppend) {\n\t\t\t// https://ckeditor.com/docs/ckeditor5/latest/builds/guides/faq.html#where-are-the-editorinserthtml-and-editorinserttext-methods-how-to-insert-some-content\n\t\t\tconst viewFragment = this.editorInstance.data.processor.toView(toAppend)\n\t\t\tconst modelFragment = this.editorInstance.data.toModel(viewFragment)\n\t\t\tthis.editorInstance.model.insertContent(modelFragment)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n::v-deep a {\n\tcolor: #07d;\n}\n::v-deep p {\n\tcursor: text;\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextEditor.vue?vue&type=script&lang=js&\"","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextEditor.vue?vue&type=style&index=0&id=733e6248&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./TextEditor.vue?vue&type=template&id=733e6248&scoped=true&\"\nimport script from \"./TextEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./TextEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TextEditor.vue?vue&type=style&index=0&id=733e6248&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"733e6248\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-84d66076] .modal-container{width:calc(100vw - 120px) !important;height:calc(100vh - 120px) !important;max-width:600px !important;max-height:500px !important}.modal-content[data-v-84d66076]{display:flex;box-sizing:border-box;width:100%;height:100%;flex-direction:column;padding:15px}.crumbs[data-v-84d66076]{display:inline-flex;padding-left:12px;padding-right:0px;flex-wrap:wrap}.crumbs .level[data-v-84d66076]{display:inline-flex;height:44px;min-width:0px;flex:0 0 auto;order:1;padding-right:7px;background-position:right center;background-size:auto 24px}.crumbs a[data-v-84d66076]{position:relative;padding:12px;opacity:.5;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:0 0 auto;min-width:0px;max-width:200px}.crumbs a[data-v-84d66076]:hover{opacity:.7}.crumbs a.icon-home[data-v-84d66076]{width:0px;background-position:left center}.mailbox-list[data-v-84d66076]{display:inline-block;width:100%;height:100%;overflow-y:auto;flex:1}.mailbox-list li[data-v-84d66076]{display:flex;cursor:pointer}.mailbox-list li[data-v-84d66076]:hover{background-color:var(--color-background-hover)}.mailbox-list li[data-v-84d66076]:not(:last-child){border-bottom:1px solid var(--color-border)}.mailbox-list .empty[data-v-84d66076]{width:100%;color:var(--color-text-maxcontrast);text-align:center;margin-top:80px}.mailbox-list .empty-icon[data-v-84d66076]{opacity:.4;background-size:64px;height:64px;width:64px;margin:0 auto 15px}.mailbox-list .mailbox-icon[data-v-84d66076]{width:24px;height:24px;padding:14px;opacity:.9;background-size:24px}.mailbox-list .mailbox-title[data-v-84d66076]{padding:14px 14px 14px 0;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.buttons[data-v-84d66076]{display:flex;justify-content:flex-end;padding-top:10px}.buttons .spinner[data-v-84d66076]{margin-right:5px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/MailboxPicker.vue\"],\"names\":[],\"mappings\":\"AA+IA,mCACC,oCAAA,CACA,qCAAA,CACA,0BAAA,CACA,2BAAA,CAGD,gCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,qBAAA,CACA,YAAA,CAGD,yBACC,mBAAA,CACA,iBAAA,CACA,iBAAA,CACA,cAAA,CAEA,gCACC,mBAAA,CACA,WAAA,CACA,aAAA,CACA,aAAA,CACA,OAAA,CACA,iBAAA,CACA,gCAAA,CACA,yBAAA,CAGD,2BACC,iBAAA,CACA,YAAA,CACA,UAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CACA,aAAA,CACA,aAAA,CACA,eAAA,CAEA,iCACC,UAAA,CAIF,qCACC,SAAA,CACA,+BAAA,CAIF,+BACC,oBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,MAAA,CAEA,kCACC,YAAA,CACA,cAAA,CAEA,wCACC,8CAAA,CAGD,mDACC,2CAAA,CAIF,sCACC,UAAA,CACA,mCAAA,CACA,iBAAA,CACA,eAAA,CAGD,2CACC,UAAA,CACA,oBAAA,CACA,WAAA,CACA,UAAA,CACA,kBAAA,CAGD,6CACC,UAAA,CACA,WAAA,CACA,YAAA,CACA,UAAA,CACA,oBAAA,CAGD,8CACC,wBAAA,CACA,MAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CAIF,0BACC,YAAA,CACA,wBAAA,CACA,gBAAA,CAEA,mCACC,gBAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n::v-deep .modal-container {\\n\\twidth: calc(100vw - 120px) !important;\\n\\theight: calc(100vh - 120px) !important;\\n\\tmax-width: 600px !important;\\n\\tmax-height: 500px !important;\\n}\\n\\n.modal-content {\\n\\tdisplay: flex;\\n\\tbox-sizing: border-box;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tflex-direction: column;\\n\\tpadding: 15px;\\n}\\n\\n.crumbs {\\n\\tdisplay: inline-flex;\\n\\tpadding-left: 12px;\\n\\tpadding-right: 0px;\\n\\tflex-wrap: wrap;\\n\\n\\t.level {\\n\\t\\tdisplay: inline-flex;\\n\\t\\theight: 44px;\\n\\t\\tmin-width: 0px;\\n\\t\\tflex: 0 0 auto;\\n\\t\\torder: 1;\\n\\t\\tpadding-right: 7px;\\n\\t\\tbackground-position: right center;\\n\\t\\tbackground-size: auto 24px;\\n\\t}\\n\\n\\ta {\\n\\t\\tposition: relative;\\n\\t\\tpadding: 12px;\\n\\t\\topacity: 0.5;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\tflex: 0 0 auto;\\n\\t\\tmin-width: 0px;\\n\\t\\tmax-width: 200px;\\n\\n\\t\\t&:hover {\\n\\t\\t\\topacity: 0.7;\\n\\t\\t}\\n\\t}\\n\\n\\ta.icon-home {\\n\\t\\twidth: 0px;\\n\\t\\tbackground-position: left center;\\n\\t}\\n}\\n\\n.mailbox-list {\\n\\tdisplay: inline-block;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\toverflow-y: auto;\\n\\tflex: 1;\\n\\n\\tli {\\n\\t\\tdisplay: flex;\\n\\t\\tcursor: pointer;\\n\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\n\\t\\t&:not(:last-child) {\\n\\t\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t.empty {\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\ttext-align: center;\\n\\t\\tmargin-top: 80px;\\n\\t}\\n\\n\\t.empty-icon {\\n\\t\\topacity: 0.4;\\n\\t\\tbackground-size: 64px;\\n\\t\\theight: 64px;\\n\\t\\twidth: 64px;\\n\\t\\tmargin: 0 auto 15px;\\n\\t}\\n\\n\\t.mailbox-icon {\\n\\t\\twidth: 24px;\\n\\t\\theight: 24px;\\n\\t\\tpadding: 14px;\\n\\t\\topacity: 0.9;\\n\\t\\tbackground-size: 24px;\\n\\t}\\n\\n\\t.mailbox-title {\\n\\t\\tpadding: 14px 14px 14px 0;\\n\\t\\tflex: 1;\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\\n.buttons {\\n\\tdisplay: flex;\\n\\tjustify-content: flex-end;\\n\\tpadding-top: 10px;\\n\\n\\t.spinner {\\n\\t\\tmargin-right: 5px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af\": 984,\n\t\"./af.js\": 984,\n\t\"./ar\": 985,\n\t\"./ar.js\": 985,\n\t\"./ast\": 986,\n\t\"./ast.js\": 986,\n\t\"./az\": 987,\n\t\"./az.js\": 987,\n\t\"./bg\": 988,\n\t\"./bg.js\": 988,\n\t\"./ca\": 989,\n\t\"./ca.js\": 989,\n\t\"./cs\": 990,\n\t\"./cs.js\": 990,\n\t\"./da\": 991,\n\t\"./da.js\": 991,\n\t\"./de\": 993,\n\t\"./de-ch\": 992,\n\t\"./de-ch.js\": 992,\n\t\"./de.js\": 993,\n\t\"./el\": 994,\n\t\"./el.js\": 994,\n\t\"./en-au\": 995,\n\t\"./en-au.js\": 995,\n\t\"./en-gb\": 996,\n\t\"./en-gb.js\": 996,\n\t\"./eo\": 997,\n\t\"./eo.js\": 997,\n\t\"./es\": 998,\n\t\"./es.js\": 998,\n\t\"./et\": 999,\n\t\"./et.js\": 999,\n\t\"./eu\": 1000,\n\t\"./eu.js\": 1000,\n\t\"./fa\": 1001,\n\t\"./fa.js\": 1001,\n\t\"./fi\": 1002,\n\t\"./fi.js\": 1002,\n\t\"./fr\": 1003,\n\t\"./fr.js\": 1003,\n\t\"./gl\": 1004,\n\t\"./gl.js\": 1004,\n\t\"./gu\": 1005,\n\t\"./gu.js\": 1005,\n\t\"./he\": 1006,\n\t\"./he.js\": 1006,\n\t\"./hi\": 1007,\n\t\"./hi.js\": 1007,\n\t\"./hr\": 1008,\n\t\"./hr.js\": 1008,\n\t\"./hu\": 1009,\n\t\"./hu.js\": 1009,\n\t\"./id\": 1010,\n\t\"./id.js\": 1010,\n\t\"./it\": 1011,\n\t\"./it.js\": 1011,\n\t\"./ja\": 1012,\n\t\"./ja.js\": 1012,\n\t\"./km\": 1013,\n\t\"./km.js\": 1013,\n\t\"./kn\": 1014,\n\t\"./kn.js\": 1014,\n\t\"./ko\": 1015,\n\t\"./ko.js\": 1015,\n\t\"./ku\": 1016,\n\t\"./ku.js\": 1016,\n\t\"./lt\": 1017,\n\t\"./lt.js\": 1017,\n\t\"./lv\": 1018,\n\t\"./lv.js\": 1018,\n\t\"./ms\": 1019,\n\t\"./ms.js\": 1019,\n\t\"./nb\": 1020,\n\t\"./nb.js\": 1020,\n\t\"./ne\": 1021,\n\t\"./ne.js\": 1021,\n\t\"./nl\": 1022,\n\t\"./nl.js\": 1022,\n\t\"./no\": 1023,\n\t\"./no.js\": 1023,\n\t\"./oc\": 1024,\n\t\"./oc.js\": 1024,\n\t\"./pl\": 1025,\n\t\"./pl.js\": 1025,\n\t\"./pt\": 1027,\n\t\"./pt-br\": 1026,\n\t\"./pt-br.js\": 1026,\n\t\"./pt.js\": 1027,\n\t\"./ro\": 1028,\n\t\"./ro.js\": 1028,\n\t\"./ru\": 1029,\n\t\"./ru.js\": 1029,\n\t\"./si\": 1030,\n\t\"./si.js\": 1030,\n\t\"./sk\": 1031,\n\t\"./sk.js\": 1031,\n\t\"./sl\": 1032,\n\t\"./sl.js\": 1032,\n\t\"./sq\": 1033,\n\t\"./sq.js\": 1033,\n\t\"./sr\": 1035,\n\t\"./sr-latn\": 1034,\n\t\"./sr-latn.js\": 1034,\n\t\"./sr.js\": 1035,\n\t\"./sv\": 1036,\n\t\"./sv.js\": 1036,\n\t\"./th\": 1037,\n\t\"./th.js\": 1037,\n\t\"./tk\": 1038,\n\t\"./tk.js\": 1038,\n\t\"./tr\": 1039,\n\t\"./tr.js\": 1039,\n\t\"./tt\": 1040,\n\t\"./tt.js\": 1040,\n\t\"./ug\": 1041,\n\t\"./ug.js\": 1041,\n\t\"./uk\": 1042,\n\t\"./uk.js\": 1042,\n\t\"./vi\": 1043,\n\t\"./vi.js\": 1043,\n\t\"./zh\": 1045,\n\t\"./zh-cn\": 1044,\n\t\"./zh-cn.js\": 1044,\n\t\"./zh.js\": 1045\n};\n\n\nfunction webpackAsyncContext(req) {\n\treturn webpackAsyncContextResolve(req).then(function(id) {\n\t\treturn __webpack_require__.t(id, 7);;\n\t});\n}\nfunction webpackAsyncContextResolve(req) {\n\treturn __webpack_require__.e(/* lazy-once context */ 8).then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\t\treturn map[req];\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.resolve = webpackAsyncContextResolve;\nwebpackAsyncContext.id = 1269;\nmodule.exports = webpackAsyncContext;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-733e6248] a{color:#07d}[data-v-733e6248] p{cursor:text}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/TextEditor.vue\"],\"names\":[],\"mappings\":\"AA+MA,oBACC,UAAA,CAED,oBACC,WAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n::v-deep a {\\n\\tcolor: #07d;\\n}\\n::v-deep p {\\n\\tcursor: text;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-2bf4e148] .tabs-component-tabs{display:flex}[data-v-2bf4e148] .tabs-component-tab{flex-grow:1;text-align:center;color:var(--color-text-lighter);margin-bottom:10px}[data-v-2bf4e148] .tabs-component-tab.is-active{border-bottom:1px solid #000;font-weight:bold}.tabs-component-panels[data-v-2bf4e148]{padding-top:20px}.tabs-component-panels label[data-v-2bf4e148]{text-align:left;width:100%;display:inline-block}.tabs-component-panels input[data-v-2bf4e148],.tabs-component-panels select[data-v-2bf4e148]{margin-bottom:10px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/AccountForm.vue\"],\"names\":[],\"mappings\":\"AAkWA,uCACC,YAAA,CAGD,sCACC,WAAA,CACA,iBAAA,CACA,+BAAA,CACA,kBAAA,CAGD,gDACC,4BAAA,CACA,gBAAA,CAGD,wCACC,gBAAA,CAGD,8CACC,eAAA,CACA,UAAA,CACA,oBAAA,CAGD,6FAEC,kBAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n::v-deep .tabs-component-tabs {\\n\\tdisplay: flex;\\n}\\n\\n::v-deep .tabs-component-tab {\\n\\tflex-grow: 1;\\n\\ttext-align: center;\\n\\tcolor: var(--color-text-lighter);\\n\\tmargin-bottom: 10px;\\n}\\n\\n::v-deep .tabs-component-tab.is-active {\\n\\tborder-bottom: 1px solid black;\\n\\tfont-weight: bold;\\n}\\n\\n.tabs-component-panels {\\n\\tpadding-top: 20px;\\n}\\n\\n.tabs-component-panels label {\\n\\ttext-align: left;\\n\\twidth: 100%;\\n\\tdisplay: inline-block;\\n}\\n\\n.tabs-component-panels input,\\n.tabs-component-panels select {\\n\\tmargin-bottom: 10px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\nh4[data-v-2bf4e148] {\\n\\ttext-align: left;\\n}\\n.flex-row[data-v-2bf4e148] {\\n\\tdisplay: flex;\\n}\\nlabel.button[data-v-2bf4e148] {\\n\\tdisplay: inline-block;\\n\\ttext-align: center;\\n\\tflex-grow: 1;\\n}\\nlabel.primary[data-v-2bf4e148] {\\n\\tcolor: var(--color-main-background);\\n}\\ninput.primary[data-v-2bf4e148] {\\n\\tcolor: var(--color-main-background);\\n}\\ninput[type='radio'][data-v-2bf4e148] {\\n\\tdisplay: none;\\n}\\ninput[type='radio'][disabled] + label[data-v-2bf4e148] {\\n\\tcursor: default;\\n\\topacity: 0.5;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/AccountForm.vue\"],\"names\":[],\"mappings\":\";AAmYA;CACA,gBAAA;AACA;AAEA;CACA,aAAA;AACA;AAEA;CACA,qBAAA;CACA,kBAAA;CACA,YAAA;AACA;AACA;CACA,mCAAA;AACA;AACA;CACA,mCAAA;AACA;AAEA;CACA,aAAA;AACA;AAEA;CACA,eAAA;CACA,YAAA;AACA\",\"sourcesContent\":[\"<template>\\n\\t<form id=\\\"account-form\\\" @submit.prevent=\\\"onSubmit\\\">\\n\\t\\t<Tabs\\n\\t\\t\\t:options=\\\"{useUrlFragment: false, defaultTabHash: settingsPage ? 'manual' : 'auto'}\\\"\\n\\t\\t\\tcache-lifetime=\\\"0\\\"\\n\\t\\t\\t@changed=\\\"onModeChanged\\\">\\n\\t\\t\\t<Tab id=\\\"auto\\\" key=\\\"auto\\\" :name=\\\"t('mail', 'Auto')\\\">\\n\\t\\t\\t\\t<label for=\\\"auto-name\\\">{{ t('mail', 'Name') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"auto-name\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"autoConfig.accountName\\\"\\n\\t\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'Name')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\tautofocus>\\n\\t\\t\\t\\t<label for=\\\"auto-address\\\">{{ t('mail', 'Mail Address') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"auto-address\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"autoConfig.emailAddress\\\"\\n\\t\\t\\t\\t\\ttype=\\\"email\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'Mail Address')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<label for=\\\"auto-password\\\">{{ t('mail', 'Password') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"auto-password\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"autoConfig.password\\\"\\n\\t\\t\\t\\t\\ttype=\\\"password\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'Password')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t</Tab>\\n\\t\\t\\t<Tab id=\\\"manual\\\" key=\\\"manual\\\" :name=\\\"t('mail', 'Manual')\\\">\\n\\t\\t\\t\\t<label for=\\\"man-name\\\">{{ t('mail', 'Name') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"man-name\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"manualConfig.accountName\\\"\\n\\t\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'Name')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\">\\n\\t\\t\\t\\t<label for=\\\"man-address\\\">{{ t('mail', 'Mail Address') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"man-address\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"manualConfig.emailAddress\\\"\\n\\t\\t\\t\\t\\ttype=\\\"email\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'Mail Address')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\n\\t\\t\\t\\t<h3>{{ t('mail', 'IMAP Settings') }}</h3>\\n\\t\\t\\t\\t<label for=\\\"man-imap-host\\\">{{ t('mail', 'IMAP Host') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"man-imap-host\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"manualConfig.imapHost\\\"\\n\\t\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'IMAP Host')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<h4>{{ t('mail', 'IMAP Security') }}</h4>\\n\\t\\t\\t\\t<div class=\\\"flex-row\\\">\\n\\t\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\t\\tid=\\\"man-imap-sec-none\\\"\\n\\t\\t\\t\\t\\t\\tv-model=\\\"manualConfig.imapSslMode\\\"\\n\\t\\t\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\t\\t\\tname=\\\"man-imap-sec\\\"\\n\\t\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\t\\tvalue=\\\"none\\\"\\n\\t\\t\\t\\t\\t\\t@change=\\\"onImapSslModeChange\\\">\\n\\t\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\t\\tclass=\\\"button\\\"\\n\\t\\t\\t\\t\\t\\tfor=\\\"man-imap-sec-none\\\"\\n\\t\\t\\t\\t\\t\\t:class=\\\"{primary: manualConfig.imapSslMode === 'none'}\\\">{{ t('mail', 'None') }}</label>\\n\\t\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\t\\tid=\\\"man-imap-sec-ssl\\\"\\n\\t\\t\\t\\t\\t\\tv-model=\\\"manualConfig.imapSslMode\\\"\\n\\t\\t\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\t\\t\\tname=\\\"man-imap-sec\\\"\\n\\t\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\t\\tvalue=\\\"ssl\\\"\\n\\t\\t\\t\\t\\t\\t@change=\\\"onImapSslModeChange\\\">\\n\\t\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\t\\tclass=\\\"button\\\"\\n\\t\\t\\t\\t\\t\\tfor=\\\"man-imap-sec-ssl\\\"\\n\\t\\t\\t\\t\\t\\t:class=\\\"{primary: manualConfig.imapSslMode === 'ssl'}\\\">{{ t('mail', 'SSL/TLS') }}</label>\\n\\t\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\t\\tid=\\\"man-imap-sec-tls\\\"\\n\\t\\t\\t\\t\\t\\tv-model=\\\"manualConfig.imapSslMode\\\"\\n\\t\\t\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\t\\t\\tname=\\\"man-imap-sec\\\"\\n\\t\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\t\\tvalue=\\\"tls\\\"\\n\\t\\t\\t\\t\\t\\t@change=\\\"onImapSslModeChange\\\">\\n\\t\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\t\\tclass=\\\"button\\\"\\n\\t\\t\\t\\t\\t\\tfor=\\\"man-imap-sec-tls\\\"\\n\\t\\t\\t\\t\\t\\t:class=\\\"{primary: manualConfig.imapSslMode === 'tls'}\\\">{{ t('mail', 'STARTTLS') }}</label>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<label for=\\\"man-imap-port\\\">{{ t('mail', 'IMAP Port') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"man-imap-port\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"manualConfig.imapPort\\\"\\n\\t\\t\\t\\t\\ttype=\\\"number\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'IMAP Port')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<label for=\\\"man-imap-user\\\">{{ t('mail', 'IMAP User') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"man-imap-user\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"manualConfig.imapUser\\\"\\n\\t\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'IMAP User')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<label for=\\\"man-imap-password\\\">{{ t('mail', 'IMAP Password') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"man-imap-password\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"manualConfig.imapPassword\\\"\\n\\t\\t\\t\\t\\ttype=\\\"password\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'IMAP Password')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\n\\t\\t\\t\\t<h3>{{ t('mail', 'SMTP Settings') }}</h3>\\n\\t\\t\\t\\t<label for=\\\"man-smtp-host\\\">{{ t('mail', 'SMTP Host') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"man-smtp-host\\\"\\n\\t\\t\\t\\t\\tref=\\\"smtpHost\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"manualConfig.smtpHost\\\"\\n\\t\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\t\\tname=\\\"smtp-host\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'SMTP Host')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<h4>{{ t('mail', 'SMTP Security') }}</h4>\\n\\t\\t\\t\\t<div class=\\\"flex-row\\\">\\n\\t\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\t\\tid=\\\"man-smtp-sec-none\\\"\\n\\t\\t\\t\\t\\t\\tv-model=\\\"manualConfig.smtpSslMode\\\"\\n\\t\\t\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\t\\t\\tname=\\\"man-smtp-sec\\\"\\n\\t\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\t\\tvalue=\\\"none\\\"\\n\\t\\t\\t\\t\\t\\t@change=\\\"onSmtpSslModeChange\\\">\\n\\t\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\t\\tclass=\\\"button\\\"\\n\\t\\t\\t\\t\\t\\tfor=\\\"man-smtp-sec-none\\\"\\n\\t\\t\\t\\t\\t\\t:class=\\\"{primary: manualConfig.smtpSslMode === 'none'}\\\">{{ t('mail', 'None') }}</label>\\n\\t\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\t\\tid=\\\"man-smtp-sec-ssl\\\"\\n\\t\\t\\t\\t\\t\\tv-model=\\\"manualConfig.smtpSslMode\\\"\\n\\t\\t\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\t\\t\\tname=\\\"man-smtp-sec\\\"\\n\\t\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\t\\tvalue=\\\"ssl\\\"\\n\\t\\t\\t\\t\\t\\t@change=\\\"onSmtpSslModeChange\\\">\\n\\t\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\t\\tclass=\\\"button\\\"\\n\\t\\t\\t\\t\\t\\tfor=\\\"man-smtp-sec-ssl\\\"\\n\\t\\t\\t\\t\\t\\t:class=\\\"{primary: manualConfig.smtpSslMode === 'ssl'}\\\">{{ t('mail', 'SSL/TLS') }}</label>\\n\\t\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\t\\tid=\\\"man-smtp-sec-tls\\\"\\n\\t\\t\\t\\t\\t\\tv-model=\\\"manualConfig.smtpSslMode\\\"\\n\\t\\t\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\t\\t\\tname=\\\"man-smtp-sec\\\"\\n\\t\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\t\\tvalue=\\\"tls\\\"\\n\\t\\t\\t\\t\\t\\t@change=\\\"onSmtpSslModeChange\\\">\\n\\t\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\t\\tclass=\\\"button\\\"\\n\\t\\t\\t\\t\\t\\tfor=\\\"man-smtp-sec-tls\\\"\\n\\t\\t\\t\\t\\t\\t:class=\\\"{primary: manualConfig.smtpSslMode === 'tls'}\\\">{{ t('mail', 'STARTTLS') }}</label>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t<label for=\\\"man-smtp-port\\\">{{ t('mail', 'SMTP Port') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"man-smtp-port\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"manualConfig.smtpPort\\\"\\n\\t\\t\\t\\t\\ttype=\\\"number\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'SMTP Port')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<label for=\\\"man-smtp-user\\\">{{ t('mail', 'SMTP User') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"man-smtp-user\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"manualConfig.smtpUser\\\"\\n\\t\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'SMTP User')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<label for=\\\"man-smtp-password\\\">{{ t('mail', 'SMTP Password') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"man-smtp-password\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"manualConfig.smtpPassword\\\"\\n\\t\\t\\t\\t\\ttype=\\\"password\\\"\\n\\t\\t\\t\\t\\t:placeholder=\\\"t('mail', 'SMTP Password')\\\"\\n\\t\\t\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t</Tab>\\n\\t\\t</Tabs>\\n\\t\\t<slot name=\\\"feedback\\\" />\\n\\t\\t<input type=\\\"submit\\\"\\n\\t\\t\\tclass=\\\"primary\\\"\\n\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t:value=\\\"submitButtonText\\\"\\n\\t\\t\\t@click.prevent=\\\"onSubmit\\\">\\n\\t</form>\\n</template>\\n\\n<script>\\nimport { Tab, Tabs } from 'vue-tabs-component'\\n\\nimport logger from '../logger'\\n\\nexport default {\\n\\tname: 'AccountForm',\\n\\tcomponents: {\\n\\t\\tTab,\\n\\t\\tTabs,\\n\\t},\\n\\tprops: {\\n\\t\\tdisplayName: {\\n\\t\\t\\ttype: String,\\n\\t\\t\\tdefault: '',\\n\\t\\t},\\n\\t\\temail: {\\n\\t\\t\\ttype: String,\\n\\t\\t\\tdefault: '',\\n\\t\\t},\\n\\t\\tsave: {\\n\\t\\t\\ttype: Function,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t\\taccount: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: false,\\n\\t\\t\\tdefault: () => undefined,\\n\\t\\t},\\n\\t},\\n\\tdata() {\\n\\t\\tconst fromAccountOr = (prop, def) => {\\n\\t\\t\\tif (this.account !== undefined) {\\n\\t\\t\\t\\treturn this.account[prop]\\n\\t\\t\\t} else {\\n\\t\\t\\t\\treturn def\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\treturn {\\n\\t\\t\\tloading: false,\\n\\t\\t\\tmode: 'auto',\\n\\t\\t\\tautoConfig: {\\n\\t\\t\\t\\taccountName: this.displayName,\\n\\t\\t\\t\\temailAddress: this.email,\\n\\t\\t\\t\\tpassword: '',\\n\\t\\t\\t},\\n\\t\\t\\tmanualConfig: {\\n\\t\\t\\t\\taccountName: '',\\n\\t\\t\\t\\temailAddress: '',\\n\\t\\t\\t\\timapHost: fromAccountOr('imapHost', ''),\\n\\t\\t\\t\\timapPort: fromAccountOr('imapPort', 993),\\n\\t\\t\\t\\timapSslMode: fromAccountOr('imapSslMode', 'ssl'),\\n\\t\\t\\t\\timapUser: fromAccountOr('imapUser', ''),\\n\\t\\t\\t\\timapPassword: '',\\n\\t\\t\\t\\tsmtpHost: fromAccountOr('smtpHost', ''),\\n\\t\\t\\t\\tsmtpPort: fromAccountOr('smtpPort', 587),\\n\\t\\t\\t\\tsmtpSslMode: fromAccountOr('smtpSslMode', 'tls'),\\n\\t\\t\\t\\tsmtpUser: fromAccountOr('smtpUser', ''),\\n\\t\\t\\t\\tsmtpPassword: '',\\n\\t\\t\\t},\\n\\t\\t\\tsubmitButtonText: this.account ? t('mail', 'Save') : t('mail', 'Connect'),\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\tsettingsPage() {\\n\\t\\t\\treturn this.account !== undefined\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\tonModeChanged(e) {\\n\\t\\t\\tthis.mode = e.tab.id\\n\\n\\t\\t\\tif (this.mode === 'manual') {\\n\\t\\t\\t\\tif (this.manualConfig.accountName === '') {\\n\\t\\t\\t\\t\\tthis.manualConfig.accountName = this.autoConfig.accountName\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tif (this.manualConfig.emailAddress === '') {\\n\\t\\t\\t\\t\\tthis.manualConfig.emailAddress = this.autoConfig.emailAddress\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// IMAP\\n\\t\\t\\t\\tif (this.manualConfig.imapUser === '') {\\n\\t\\t\\t\\t\\tthis.manualConfig.imapUser = this.autoConfig.emailAddress\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tif (this.manualConfig.imapPassword === '') {\\n\\t\\t\\t\\t\\tthis.manualConfig.imapPassword = this.autoConfig.password\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// SMTP\\n\\t\\t\\t\\tif (this.manualConfig.smtpUser === '') {\\n\\t\\t\\t\\t\\tthis.manualConfig.smtpUser = this.autoConfig.emailAddress\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\tif (this.manualConfig.smtpPassword === '') {\\n\\t\\t\\t\\t\\tthis.manualConfig.smtpPassword = this.autoConfig.password\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tonImapSslModeChange() {\\n\\t\\t\\tswitch (this.manualConfig.imapSslMode) {\\n\\t\\t\\tcase 'none':\\n\\t\\t\\tcase 'tls':\\n\\t\\t\\t\\tthis.manualConfig.imapPort = 143\\n\\t\\t\\t\\tbreak\\n\\t\\t\\tcase 'ssl':\\n\\t\\t\\t\\tthis.manualConfig.imapPort = 993\\n\\t\\t\\t\\tbreak\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tonSmtpSslModeChange() {\\n\\t\\t\\tswitch (this.manualConfig.smtpSslMode) {\\n\\t\\t\\tcase 'none':\\n\\t\\t\\tcase 'tls':\\n\\t\\t\\t\\tthis.manualConfig.smtpPort = 587\\n\\t\\t\\t\\tbreak\\n\\t\\t\\tcase 'ssl':\\n\\t\\t\\t\\tthis.manualConfig.smtpPort = 465\\n\\t\\t\\t\\tbreak\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tsaveChanges() {\\n\\t\\t\\tif (this.mode === 'auto') {\\n\\t\\t\\t\\treturn this.save({\\n\\t\\t\\t\\t\\tautoDetect: true,\\n\\t\\t\\t\\t\\t...this.autoConfig,\\n\\t\\t\\t\\t})\\n\\t\\t\\t} else {\\n\\t\\t\\t\\treturn this.save({\\n\\t\\t\\t\\t\\tautoDetect: false,\\n\\t\\t\\t\\t\\t...this.manualConfig,\\n\\t\\t\\t\\t})\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tonSubmit(event) {\\n\\t\\t\\tconsole.debug('account form submitted', { event })\\n\\n\\t\\t\\tthis.loading = true\\n\\n\\t\\t\\tthis.saveChanges()\\n\\t\\t\\t\\t.catch((error) => logger.error('could not save account details', { error }))\\n\\t\\t\\t\\t.then(() => (this.loading = false))\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n\\n<style lang=\\\"scss\\\" scoped>\\n::v-deep .tabs-component-tabs {\\n\\tdisplay: flex;\\n}\\n\\n::v-deep .tabs-component-tab {\\n\\tflex-grow: 1;\\n\\ttext-align: center;\\n\\tcolor: var(--color-text-lighter);\\n\\tmargin-bottom: 10px;\\n}\\n\\n::v-deep .tabs-component-tab.is-active {\\n\\tborder-bottom: 1px solid black;\\n\\tfont-weight: bold;\\n}\\n\\n.tabs-component-panels {\\n\\tpadding-top: 20px;\\n}\\n\\n.tabs-component-panels label {\\n\\ttext-align: left;\\n\\twidth: 100%;\\n\\tdisplay: inline-block;\\n}\\n\\n.tabs-component-panels input,\\n.tabs-component-panels select {\\n\\tmargin-bottom: 10px;\\n}\\n</style>\\n\\n<style scoped>\\nh4 {\\n\\ttext-align: left;\\n}\\n\\n.flex-row {\\n\\tdisplay: flex;\\n}\\n\\nlabel.button {\\n\\tdisplay: inline-block;\\n\\ttext-align: center;\\n\\tflex-grow: 1;\\n}\\nlabel.primary {\\n\\tcolor: var(--color-main-background);\\n}\\ninput.primary {\\n\\tcolor: var(--color-main-background);\\n}\\n\\ninput[type='radio'] {\\n\\tdisplay: none;\\n}\\n\\ninput[type='radio'][disabled] + label {\\n\\tcursor: default;\\n\\topacity: 0.5;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"label[data-v-7db23f84]{padding-right:12px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/EditorSettings.vue\"],\"names\":[],\"mappings\":\"AAoFA,uBACC,kBAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nlabel {\\n\\tpadding-right: 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.vue-treeselect__control {\\n\\tpadding: 0;\\n\\tborder: 0;\\n\\twidth: 250px;\\n}\\n.vue-treeselect__control-arrow-container {\\n\\tdisplay: none;\\n}\\n.vue-treeselect--searchable .vue-treeselect__input-container {\\n\\tpadding-left: 0;\\n}\\ninput.vue-treeselect__input {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/MailboxInlinePicker.vue\"],\"names\":[],\"mappings\":\";AAsEA;CACA,UAAA;CACA,SAAA;CACA,YAAA;AACA;AACA;CACA,aAAA;AACA;AACA;CACA,eAAA;AACA;AACA;CACA,SAAA;CACA,UAAA;AACA\",\"sourcesContent\":[\"<template>\\n\\t<Treeselect\\n\\t\\tref=\\\"Treeselect\\\"\\n\\t\\tv-model=\\\"selected\\\"\\n\\t\\t:options=\\\"mailboxes\\\"\\n\\t\\t:multiple=\\\"false\\\"\\n\\t\\t:clearable=\\\"false\\\"\\n\\t\\t:disabled=\\\"disabled\\\" />\\n</template>\\n<script>\\nimport Treeselect from '@riophae/vue-treeselect'\\nimport '@riophae/vue-treeselect/dist/vue-treeselect.css'\\n\\nexport default {\\n\\tname: 'MailboxInlinePicker',\\n\\tcomponents: {\\n\\t\\tTreeselect,\\n\\t},\\n\\tprops: {\\n\\t\\taccount: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t\\tdisabled: {\\n\\t\\t\\ttype: Boolean,\\n\\t\\t\\tdefault: false,\\n\\t\\t},\\n\\t\\tvalue: {\\n\\t\\t\\ttype: Number,\\n\\t\\t\\trequired: false,\\n\\t\\t},\\n\\t},\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tselected: this.value,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\tmailboxes() {\\n\\t\\t\\treturn this.getMailboxes()\\n\\t\\t},\\n\\t},\\n\\twatch: {\\n\\t\\tselected(val) {\\n\\t\\t\\tif (val !== this.value) {\\n\\t\\t\\t\\tthis.$emit('input', val)\\n\\t\\t\\t\\tthis.selected = val\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\tgetMailboxes(mailboxId) {\\n\\t\\t\\tlet mailboxes = []\\n\\t\\t\\tif (!mailboxId) {\\n\\t\\t\\t\\tmailboxes = this.$store.getters.getMailboxes(this.account.accountId)\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tmailboxes = this.$store.getters.getSubMailboxes(mailboxId)\\n\\t\\t\\t}\\n\\t\\t\\treturn mailboxes.map((mailbox) => {\\n\\t\\t\\t\\t return {\\n\\t\\t\\t\\t\\tid: mailbox.databaseId,\\n\\t\\t\\t\\t\\tlabel: mailbox.displayName,\\n\\t\\t\\t\\t\\tchildren: mailbox.mailboxes.length > 0 ? this.getMailboxes(mailbox.databaseId) : '',\\n\\t\\t\\t\\t}\\n\\t\\t\\t})\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n<style>\\n.vue-treeselect__control {\\n\\tpadding: 0;\\n\\tborder: 0;\\n\\twidth: 250px;\\n}\\n.vue-treeselect__control-arrow-container {\\n\\tdisplay: none;\\n}\\n.vue-treeselect--searchable .vue-treeselect__input-container {\\n\\tpadding-left: 0;\\n}\\ninput.vue-treeselect__input {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".button.icon-rename[data-v-3a6599f7]{background-color:transparent;border:none;opacity:.3}.button.icon-rename[data-v-3a6599f7]:hover,.button.icon-rename[data-v-3a6599f7]:focus{opacity:1}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/AccountDefaultsSettings.vue\"],\"names\":[],\"mappings\":\"AAoJA,qCACC,4BAAA,CACA,WAAA,CACA,UAAA,CAEA,sFAEC,SAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.button.icon-rename {\\n\\tbackground-color: transparent;\\n\\tborder: none;\\n\\topacity: 0.3;\\n\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable_inline[data-v-25a86580]{width:330px;max-width:78vw;height:100px;border-radius:var(--border-radius) !important;border:1px solid var(--color-border) !important;box-shadow:none !important}.primary[data-v-25a86580]{padding-left:26px;background-position:6px;color:var(--color-main-background)}.primary[data-v-25a86580]:after{left:14px}.button-text[data-v-25a86580]{background-color:transparent;border:none;color:var(--color-text-maxcontrast);font-weight:normal}.button-text[data-v-25a86580]:hover,.button-text[data-v-25a86580]:focus{color:var(--color-main-text)}.section[data-v-25a86580]{display:block;padding:0;margin-bottom:23px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/SignatureSettings.vue\"],\"names\":[],\"mappings\":\"AAsGA,gDACC,WAAA,CACA,cAAA,CACA,YAAA,CACA,6CAAA,CACA,+CAAA,CACA,0BAAA,CAGD,0BACC,iBAAA,CACA,uBAAA,CACA,kCAAA,CAEA,gCACC,SAAA,CAIF,8BACC,4BAAA,CACA,WAAA,CACA,mCAAA,CACA,kBAAA,CAEA,wEAEC,4BAAA,CAGF,0BACC,aAAA,CACA,SAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.ck.ck-editor__editable_inline {\\n\\twidth: 330px;\\n\\tmax-width: 78vw;\\n\\theight: 100px;\\n\\tborder-radius: var(--border-radius) !important;\\n\\tborder: 1px solid var(--color-border) !important;\\n\\tbox-shadow: none !important;\\n}\\n\\n.primary {\\n\\tpadding-left: 26px;\\n\\tbackground-position: 6px;\\n\\tcolor: var(--color-main-background);\\n\\n\\t&:after {\\n\\t\\tleft: 14px;\\n\\t}\\n}\\n\\n.button-text {\\n\\tbackground-color: transparent;\\n\\tborder: none;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tfont-weight: normal;\\n\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n}\\n.section {\\n\\tdisplay: block;\\n\\tpadding: 0;\\n\\tmargin-bottom: 23px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.ck-balloon-panel {\\n\\tz-index: 10000 !important;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/SignatureSettings.vue\"],\"names\":[],\"mappings\":\";AA2IA;CACA,yBAAA;AACA\",\"sourcesContent\":[\"<!--\\n - @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\\n -\\n - @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -->\\n\\n<template>\\n\\t<div class=\\\"section\\\">\\n\\t\\t<TextEditor v-model=\\\"signature\\\"\\n\\t\\t\\t:html=\\\"true\\\"\\n\\t\\t\\t:placeholder=\\\"t('mail', 'Signature …')\\\"\\n\\t\\t\\t:bus=\\\"bus\\\" />\\n\\t\\t<button\\n\\t\\t\\tclass=\\\"primary\\\"\\n\\t\\t\\t:class=\\\"loading ? 'icon-loading-small-dark' : 'icon-checkmark-white'\\\"\\n\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t@click=\\\"saveSignature\\\">\\n\\t\\t\\t{{ t('mail', 'Save signature') }}\\n\\t\\t</button>\\n\\t\\t<button v-if=\\\"signature\\\" class=\\\"button-text\\\" @click=\\\"deleteSignature\\\">\\n\\t\\t\\t{{ t('mail', 'Delete') }}\\n\\t\\t</button>\\n\\t</div>\\n</template>\\n\\n<script>\\nimport logger from '../logger'\\nimport TextEditor from './TextEditor'\\nimport { detect, toHtml } from '../util/text'\\nimport Vue from 'vue'\\n\\nexport default {\\n\\tname: 'SignatureSettings',\\n\\tcomponents: {\\n\\t\\tTextEditor,\\n\\t},\\n\\tprops: {\\n\\t\\taccount: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t},\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tloading: false,\\n\\t\\t\\tbus: new Vue(),\\n\\t\\t}\\n\\t},\\n\\tcreated() {\\n\\t\\tthis.signature = this.account.signature ? toHtml(detect(this.account.signature)).value : ''\\n\\t},\\n\\tmethods: {\\n\\t\\tdeleteSignature() {\\n\\t\\t\\tthis.loading = true\\n\\n\\t\\t\\tthis.$store\\n\\t\\t\\t\\t.dispatch('updateAccountSignature', { account: this.account, signature: null })\\n\\t\\t\\t\\t.then(() => {\\n\\t\\t\\t\\t\\tlogger.info('signature deleted')\\n\\t\\t\\t\\t\\tthis.signature = ''\\n\\t\\t\\t\\t\\tthis.loading = false\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.catch((error) => {\\n\\t\\t\\t\\t\\tlogger.error('could not delete account signature', { error })\\n\\t\\t\\t\\t\\tthrow error\\n\\t\\t\\t\\t})\\n\\t\\t},\\n\\t\\tsaveSignature() {\\n\\t\\t\\tthis.loading = true\\n\\n\\t\\t\\tthis.$store\\n\\t\\t\\t\\t.dispatch('updateAccountSignature', { account: this.account, signature: this.signature })\\n\\t\\t\\t\\t.then(() => {\\n\\t\\t\\t\\t\\tlogger.info('signature updated')\\n\\t\\t\\t\\t\\tthis.loading = false\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.catch((error) => {\\n\\t\\t\\t\\t\\tlogger.error('could not update account signature', { error })\\n\\t\\t\\t\\t\\tthrow error\\n\\t\\t\\t\\t})\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n\\n<style lang=\\\"scss\\\" scoped>\\n\\n.ck.ck-editor__editable_inline {\\n\\twidth: 330px;\\n\\tmax-width: 78vw;\\n\\theight: 100px;\\n\\tborder-radius: var(--border-radius) !important;\\n\\tborder: 1px solid var(--color-border) !important;\\n\\tbox-shadow: none !important;\\n}\\n\\n.primary {\\n\\tpadding-left: 26px;\\n\\tbackground-position: 6px;\\n\\tcolor: var(--color-main-background);\\n\\n\\t&:after {\\n\\t\\tleft: 14px;\\n\\t}\\n}\\n\\n.button-text {\\n\\tbackground-color: transparent;\\n\\tborder: none;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tfont-weight: normal;\\n\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tcolor: var(--color-main-text);\\n\\t}\\n}\\n.section {\\n\\tdisplay: block;\\n\\tpadding: 0;\\n\\tmargin-bottom: 23px;\\n}\\n</style>\\n<style>\\n.ck-balloon-panel {\\n\\tz-index: 10000 !important;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".primary[data-v-2c8c77c6]{padding-left:26px;background-position:6px;color:var(--color-main-background)}.primary[data-v-2c8c77c6]:after{left:14px}input[data-v-2c8c77c6]{width:195px}.aliases-list[data-v-2c8c77c6]{margin:.5rem 0rem}.icon-delete[data-v-2c8c77c6]{vertical-align:bottom;background-image:var(--icon-delete-000);background-color:var(--color-main-background);border:none;opacity:.7}.icon-delete[data-v-2c8c77c6]:hover,.icon-delete[data-v-2c8c77c6]:focus{opacity:1}.icon-add[data-v-2c8c77c6]{background-image:var(--icon-add-fff)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/AliasSettings.vue\"],\"names\":[],\"mappings\":\"AAmHA,0BACC,iBAAA,CACA,uBAAA,CACA,kCAAA,CAEA,gCACC,SAAA,CAGF,uBACC,WAAA,CAED,+BACC,iBAAA,CAED,8BACC,qBAAA,CACA,uCAAA,CACA,6CAAA,CACA,WAAA,CACA,UAAA,CACA,wEAEC,SAAA,CAGF,2BACC,oCAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.primary {\\n\\tpadding-left: 26px;\\n\\tbackground-position: 6px;\\n\\tcolor: var(--color-main-background);\\n\\n\\t&:after {\\n\\t\\tleft: 14px;\\n\\t}\\n}\\ninput {\\n\\twidth: 195px;\\n}\\n.aliases-list {\\n\\tmargin: 0.5rem 0rem;\\n}\\n.icon-delete {\\n\\tvertical-align: bottom;\\n\\tbackground-image: var(--icon-delete-000);\\n\\tbackground-color: var(--color-main-background);\\n\\tborder: none;\\n\\topacity: 0.7;\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n.icon-add {\\n\\tbackground-image: var(--icon-add-fff);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\nform[data-v-8b1dc5a0] {\\n\\twidth: 250px\\n}\\nlabel[data-v-8b1dc5a0] {\\n\\tdisplay: inline-block;\\n}\\ninput[data-v-8b1dc5a0] {\\n\\twidth: 100%;\\n}\\n.flex-row[data-v-8b1dc5a0] {\\n\\tdisplay: flex;\\n}\\nlabel.button[data-v-8b1dc5a0] {\\n\\ttext-align: center;\\n\\tflex-grow: 1;\\n}\\nlabel.error[data-v-8b1dc5a0] {\\n\\tcolor: red;\\n}\\ninput[type='radio'][data-v-8b1dc5a0] {\\n\\tdisplay: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/SieveAccountForm.vue\"],\"names\":[],\"mappings\":\";AAgMA;CACA;AACA;AAEA;CACA,qBAAA;AACA;AAEA;CACA,WAAA;AACA;AAEA;CACA,aAAA;AACA;AAEA;CACA,kBAAA;CACA,YAAA;AACA;AAEA;CACA,UAAA;AACA;AAEA;CACA,aAAA;AACA\",\"sourcesContent\":[\"<template>\\n\\t<form id=\\\"sieve-form\\\">\\n\\t\\t<p>\\n\\t\\t\\t<input\\n\\t\\t\\t\\tid=\\\"sieve-disabled\\\"\\n\\t\\t\\t\\tv-model=\\\"sieveConfig.sieveEnabled\\\"\\n\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\tclass=\\\"radio\\\"\\n\\t\\t\\t\\tname=\\\"sieve-active\\\"\\n\\t\\t\\t\\t:value=\\\"false\\\">\\n\\t\\t\\t<label\\n\\t\\t\\t\\t:class=\\\"{primary: !sieveConfig.sieveEnabled}\\\"\\n\\t\\t\\t\\tfor=\\\"sieve-disabled\\\">\\n\\t\\t\\t\\t{{ t('mail', 'Disabled') }}\\n\\t\\t\\t</label>\\n\\t\\t\\t<input\\n\\t\\t\\t\\tid=\\\"sieve-enabled\\\"\\n\\t\\t\\t\\tv-model=\\\"sieveConfig.sieveEnabled\\\"\\n\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\tclass=\\\"radio\\\"\\n\\t\\t\\t\\tname=\\\"sieve-active\\\"\\n\\t\\t\\t\\t:value=\\\"true\\\">\\n\\t\\t\\t<label\\n\\t\\t\\t\\t:class=\\\"{primary: sieveConfig.sieveEnabled}\\\"\\n\\t\\t\\t\\tfor=\\\"sieve-enabled\\\">\\n\\t\\t\\t\\t{{ t('mail', 'Enabled') }}\\n\\t\\t\\t</label>\\n\\t\\t</p>\\n\\t\\t<template v-if=\\\"sieveConfig.sieveEnabled\\\">\\n\\t\\t\\t<label for=\\\"sieve-host\\\">{{ t('mail', 'Sieve Host') }}</label>\\n\\t\\t\\t<input\\n\\t\\t\\t\\tid=\\\"sieve-host\\\"\\n\\t\\t\\t\\tv-model=\\\"sieveConfig.sieveHost\\\"\\n\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\trequired>\\n\\t\\t\\t<h4>{{ t('mail', 'Sieve Security') }}</h4>\\n\\t\\t\\t<div class=\\\"flex-row\\\">\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"sieve-sec-none\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"sieveConfig.sieveSslMode\\\"\\n\\t\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\t\\tname=\\\"sieve-sec\\\"\\n\\t\\t\\t\\t\\tvalue=\\\"none\\\">\\n\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\tclass=\\\"button\\\"\\n\\t\\t\\t\\t\\tfor=\\\"sieve-sec-none\\\"\\n\\t\\t\\t\\t\\t:class=\\\"{primary: sieveConfig.sieveSslMode === 'none'}\\\">{{\\n\\t\\t\\t\\t\\t\\tt('mail', 'None')\\n\\t\\t\\t\\t\\t}}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"sieve-sec-ssl\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"sieveConfig.sieveSslMode\\\"\\n\\t\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\t\\tname=\\\"sieve-sec\\\"\\n\\t\\t\\t\\t\\tvalue=\\\"ssl\\\">\\n\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\tclass=\\\"button\\\"\\n\\t\\t\\t\\t\\tfor=\\\"sieve-sec-ssl\\\"\\n\\t\\t\\t\\t\\t:class=\\\"{primary: sieveConfig.sieveSslMode === 'ssl'}\\\">\\n\\t\\t\\t\\t\\t{{ t('mail', 'SSL/TLS') }}\\n\\t\\t\\t\\t</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"sieve-sec-tls\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"sieveConfig.sieveSslMode\\\"\\n\\t\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\t\\tname=\\\"sieve-sec\\\"\\n\\t\\t\\t\\t\\tvalue=\\\"tls\\\">\\n\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\tclass=\\\"button\\\"\\n\\t\\t\\t\\t\\tfor=\\\"sieve-sec-tls\\\"\\n\\t\\t\\t\\t\\t:class=\\\"{primary: sieveConfig.sieveSslMode === 'tls'}\\\">\\n\\t\\t\\t\\t\\t{{ t('mail', 'STARTTLS') }}\\n\\t\\t\\t\\t</label>\\n\\t\\t\\t</div>\\n\\t\\t\\t<label for=\\\"sieve-port\\\">{{ t('mail', 'Sieve Port') }}</label>\\n\\t\\t\\t<input\\n\\t\\t\\t\\tid=\\\"sieve-port\\\"\\n\\t\\t\\t\\tv-model=\\\"sieveConfig.sievePort\\\"\\n\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\trequired>\\n\\t\\t\\t<h4>{{ t('mail', 'Sieve Credentials') }}</h4>\\n\\t\\t\\t<p>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"sieve-credentials-imap\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"useImapCredentials\\\"\\n\\t\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\t\\tclass=\\\"radio\\\"\\n\\t\\t\\t\\t\\t:value=\\\"true\\\">\\n\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\t:class=\\\"{primary: useImapCredentials}\\\"\\n\\t\\t\\t\\t\\tfor=\\\"sieve-credentials-imap\\\">\\n\\t\\t\\t\\t\\t{{ t('mail', 'IMAP Credentials') }}\\n\\t\\t\\t\\t</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"sieve-credentials-custom\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"useImapCredentials\\\"\\n\\t\\t\\t\\t\\ttype=\\\"radio\\\"\\n\\t\\t\\t\\t\\tclass=\\\"radio\\\"\\n\\t\\t\\t\\t\\t:value=\\\"false\\\">\\n\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\t:class=\\\"{primary: !useImapCredentials}\\\"\\n\\t\\t\\t\\t\\tfor=\\\"sieve-credentials-custom\\\">\\n\\t\\t\\t\\t\\t{{ t('mail', 'Custom') }}\\n\\t\\t\\t\\t</label>\\n\\t\\t\\t</p>\\n\\t\\t\\t<template v-if=\\\"!useImapCredentials\\\">\\n\\t\\t\\t\\t<label for=\\\"sieve-user\\\">{{ t('mail', 'Sieve User') }}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"sieve-user\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"sieveConfig.sieveUser\\\"\\n\\t\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<label for=\\\"sieve-password\\\">{{\\n\\t\\t\\t\\t\\tt('mail', 'Sieve Password')\\n\\t\\t\\t\\t}}</label>\\n\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\tid=\\\"sieve-password\\\"\\n\\t\\t\\t\\t\\tv-model=\\\"sieveConfig.sievePassword\\\"\\n\\t\\t\\t\\t\\ttype=\\\"password\\\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t</template>\\n\\t\\t</template>\\n\\t\\t<slot name=\\\"feedback\\\" />\\n\\t\\t<p v-if=\\\"errorMessage\\\">\\n\\t\\t\\t{{ t('mail', 'Oh Snap!') }}\\n\\t\\t\\t{{ errorMessage }}\\n\\t\\t</p>\\n\\t\\t<input type=\\\"submit\\\"\\n\\t\\t\\tclass=\\\"primary\\\"\\n\\t\\t\\t:disabled=\\\"loading\\\"\\n\\t\\t\\t:value=\\\"submitButtonText\\\"\\n\\t\\t\\t@click.prevent=\\\"onSubmit\\\">\\n\\t</form>\\n</template>\\n\\n<script>\\nexport default {\\n\\tname: 'SieveAccountForm',\\n\\tprops: {\\n\\t\\taccount: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t},\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tsieveConfig: {\\n\\t\\t\\t\\tsieveEnabled: this.account.sieveEnabled,\\n\\t\\t\\t\\tsieveHost: this.account.sieveHost || this.account.imapHost,\\n\\t\\t\\t\\tsievePort: this.account.sievePort || 4190,\\n\\t\\t\\t\\tsieveUser: this.account.sieveUser || '',\\n\\t\\t\\t\\tsievePassword: '',\\n\\t\\t\\t\\tsieveSslMode: this.account.sieveSslMode || 'tls',\\n\\t\\t\\t},\\n\\t\\t\\tloading: false,\\n\\t\\t\\tuseImapCredentials: !this.account.sieveUser,\\n\\t\\t\\terrorMessage: '',\\n\\t\\t\\tsubmitButtonText: t('mail', 'Save sieve settings'),\\n\\t\\t}\\n\\t},\\n\\tmethods: {\\n\\t\\tasync onSubmit() {\\n\\t\\t\\tthis.loading = true\\n\\t\\t\\tthis.errorMessage = ''\\n\\n\\t\\t\\t// empty user and password => use imap credentials\\n\\t\\t\\tif (this.sieveConfig.sieveUser === '' && this.sieveConfig.sievePassword === '') {\\n\\t\\t\\t\\tthis.useImapCredentials = true\\n\\t\\t\\t}\\n\\n\\t\\t\\t// clear user and password if imap credentials are used\\n\\t\\t\\tif (this.useImapCredentials) {\\n\\t\\t\\t\\tthis.sieveConfig.sieveUser = ''\\n\\t\\t\\t\\tthis.sieveConfig.sievePassword = ''\\n\\t\\t\\t}\\n\\n\\t\\t\\ttry {\\n\\t\\t\\t\\tawait this.$store.dispatch('updateSieveAccount', {\\n\\t\\t\\t\\t\\taccount: this.account,\\n\\t\\t\\t\\t\\tdata: this.sieveConfig,\\n\\t\\t\\t\\t})\\n\\t\\t\\t} catch (error) {\\n\\t\\t\\t\\tthis.errorMessage = error.message\\n\\t\\t\\t}\\n\\n\\t\\t\\tthis.loading = false\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n\\n<style scoped>\\nform {\\n\\twidth: 250px\\n}\\n\\nlabel {\\n\\tdisplay: inline-block;\\n}\\n\\ninput {\\n\\twidth: 100%;\\n}\\n\\n.flex-row {\\n\\tdisplay: flex;\\n}\\n\\nlabel.button {\\n\\ttext-align: center;\\n\\tflex-grow: 1;\\n}\\n\\nlabel.error {\\n\\tcolor: red;\\n}\\n\\ninput[type='radio'] {\\n\\tdisplay: none;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".section[data-v-568aaba6]{display:block;padding:0;margin-bottom:23px}textarea[data-v-568aaba6]{width:100%}.primary[data-v-568aaba6]{padding-left:26px;background-position:6px;color:var(--color-main-background)}.primary[data-v-568aaba6]:after{left:14px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/SieveFilterForm.vue\"],\"names\":[],\"mappings\":\"AA6DA,0BACC,aAAA,CACA,SAAA,CACA,kBAAA,CAGD,0BACC,UAAA,CAGD,0BACC,iBAAA,CACA,uBAAA,CACA,kCAAA,CAEA,gCACE,SAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.section {\\n\\tdisplay: block;\\n\\tpadding: 0;\\n\\tmargin-bottom: 23px;\\n}\\n\\ntextarea {\\n\\twidth: 100%;\\n}\\n\\n.primary {\\n\\tpadding-left: 26px;\\n\\tbackground-position: 6px;\\n\\tcolor: var(--color-main-background);\\n\\n\\t&:after {\\n\\t\\t left: 14px;\\n\\t }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-4aa4f25a] .modal-container{display:block;overflow:scroll;transition:transform 300ms ease;border-radius:var(--border-radius-large);box-shadow:0 0 40px rgba(0,0,0,.2);padding:30px 70px 20px}.button.icon-rename[data-v-4aa4f25a]{background-image:var(--icon-rename-000);background-color:var(--color-main-background);border:none;opacity:.7}.button.icon-rename[data-v-4aa4f25a]:hover,.button.icon-rename[data-v-4aa4f25a]:focus{opacity:1}.settings-hint[data-v-4aa4f25a]{margin-top:-12px;margin-bottom:6px;color:var(--color-text-maxcontrast)}h2[data-v-4aa4f25a]{font-weight:bold;font-size:20px;margin-bottom:12px;margin-left:-30px;line-height:30px;color:var(--color-text-light)}.app-settings-section[data-v-4aa4f25a]{margin-bottom:45px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/AccountSettings.vue\"],\"names\":[],\"mappings\":\"AAoLA,mCACC,aAAA,CACA,eAAA,CACA,+BAAA,CACA,wCAAA,CACA,kCAAA,CACA,sBAAA,CAED,qCACC,uCAAA,CACA,6CAAA,CACA,WAAA,CACA,UAAA,CACA,sFAEC,SAAA,CAGF,gCACC,gBAAA,CACA,iBAAA,CACA,mCAAA,CAED,oBACC,gBAAA,CACA,cAAA,CACA,kBAAA,CACA,iBAAA,CACA,gBAAA,CACA,6BAAA,CAED,uCACA,kBAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n::v-deep .modal-container {\\n\\tdisplay: block;\\n\\toverflow: scroll;\\n\\ttransition: transform 300ms ease;\\n\\tborder-radius: var(--border-radius-large);\\n\\tbox-shadow: 0 0 40px rgba(0,0,0,0.2);\\n\\tpadding: 30px 70px 20px;\\n}\\n.button.icon-rename {\\n\\tbackground-image: var(--icon-rename-000);\\n\\tbackground-color: var(--color-main-background);\\n\\tborder: none;\\n\\topacity: 0.7;\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n.settings-hint {\\n\\tmargin-top: -12px;\\n\\tmargin-bottom: 6px;\\n\\tcolor: var(--color-text-maxcontrast);\\n}\\nh2 {\\n\\tfont-weight: bold;\\n\\tfont-size: 20px;\\n\\tmargin-bottom: 12px;\\n\\tmargin-left: -30px;\\n\\tline-height: 30px;\\n\\tcolor: var(--color-text-light);\\n}\\n.app-settings-section {\\nmargin-bottom: 45px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-2d33cadc] .app-navigation-entry__title{color:var(--color-text-maxcontrast)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/NavigationAccountExpandCollapse.vue\"],\"names\":[],\"mappings\":\"AA2EA,+CACC,mCAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n::v-deep .app-navigation-entry__title {\\n\\tcolor: var(--color-text-maxcontrast);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"[data-v-17460ac4] .modal-wrapper .modal-container{display:block;overflow:scroll;transition:transform 300ms ease;border-radius:var(--border-radius-large);box-shadow:0 0 40px rgba(0,0,0,.2);padding:30px 40px 20px}dt[data-v-17460ac4]{width:auto;text-align:left}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/KeyboardShortcuts.vue\"],\"names\":[],\"mappings\":\"AAgEA,kDACC,aAAA,CACA,eAAA,CACA,+BAAA,CACA,wCAAA,CACA,kCAAA,CACA,sBAAA,CAED,oBACC,UAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n::v-deep .modal-wrapper .modal-container {\\n\\tdisplay: block;\\n\\toverflow: scroll;\\n\\ttransition: transform 300ms ease;\\n\\tborder-radius: var(--border-radius-large);\\n\\tbox-shadow: 0 0 40px rgba(0,0,0,0.2);\\n\\tpadding: 30px 40px 20px;\\n}\\ndt {\\n\\twidth: auto;\\n\\ttext-align: left;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\np.app-settings span.icon-loading-small[data-v-20887712] {\\n\\tdisplay: inline-block;\\n\\tvertical-align: middle;\\n\\tpadding: 5px 0;\\n}\\np.app-settings[data-v-20887712] {\\n\\tpadding: 10px 0;\\n}\\n.app-settings-button[data-v-20887712] {\\n\\tdisplay: block;\\n\\n\\tpadding-left: 34px;\\n\\tbackground-position: 10px center;\\n\\ttext-align: left;\\n}\\n.app-settings-button.button.primary.new-button[data-v-20887712] {\\n\\tcolor: var(--color-main-background);\\n}\\n.app-settings-link[data-v-20887712] {\\n\\ttext-decoration: underline;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/AppSettingsMenu.vue\"],\"names\":[],\"mappings\":\";AA2KA;CACA,qBAAA;CACA,sBAAA;CACA,cAAA;AACA;AACA;CACA,eAAA;AACA;AACA;CACA,cAAA;;CAEA,kBAAA;CACA,gCAAA;CACA,gBAAA;AACA;AACA;CACA,mCAAA;AACA;AACA;CACA,0BAAA;AACA\",\"sourcesContent\":[\"<template>\\n\\t<div>\\n\\t\\t<router-link to=\\\"/setup\\\" class=\\\"icon-add-white app-settings-button button primary new-button\\\">\\n\\t\\t\\t{{ t('mail', 'Add mail account') }}\\n\\t\\t</router-link>\\n\\n\\t\\t<p v-if=\\\"loadingOptOutSettings\\\" class=\\\"app-settings\\\">\\n\\t\\t\\t<span class=\\\"icon-loading-small\\\" />\\n\\t\\t\\t{{ optOutSettingsText }}\\n\\t\\t</p>\\n\\t\\t<p v-else class=\\\"app-settings\\\">\\n\\t\\t\\t<input\\n\\t\\t\\t\\tid=\\\"data-collection-toggle\\\"\\n\\t\\t\\t\\tclass=\\\"checkbox\\\"\\n\\t\\t\\t\\ttype=\\\"checkbox\\\"\\n\\t\\t\\t\\t:checked=\\\"useDataCollection\\\"\\n\\t\\t\\t\\t@change=\\\"onToggleCollectData\\\">\\n\\t\\t\\t<label for=\\\"data-collection-toggle\\\">{{ optOutSettingsText }}</label>\\n\\t\\t</p>\\n\\n\\t\\t<p v-if=\\\"loadingAvatarSettings\\\" class=\\\"app-settings avatar-settings\\\">\\n\\t\\t\\t<span class=\\\"icon-loading-small\\\" />\\n\\t\\t\\t{{ t('mail', 'Use Gravatar and favicon avatars') }}\\n\\t\\t</p>\\n\\t\\t<p v-else class=\\\"app-settings\\\">\\n\\t\\t\\t<input\\n\\t\\t\\t\\tid=\\\"gravatar-enabled\\\"\\n\\t\\t\\t\\tclass=\\\"checkbox\\\"\\n\\t\\t\\t\\ttype=\\\"checkbox\\\"\\n\\t\\t\\t\\t:checked=\\\"useExternalAvatars\\\"\\n\\t\\t\\t\\t@change=\\\"onToggleExternalAvatars\\\">\\n\\t\\t\\t<label for=\\\"gravatar-enabled\\\">{{ t('mail', 'Use Gravatar and favicon avatars') }}</label>\\n\\t\\t</p>\\n\\n\\t\\t<p v-if=\\\"loadingAvatarSettings\\\" class=\\\"app-settings reply-settings\\\">\\n\\t\\t\\t<span class=\\\"icon-loading-small\\\" />\\n\\t\\t\\t{{ replySettingsText }}\\n\\t\\t</p>\\n\\t\\t<p v-else class=\\\"app-settings\\\">\\n\\t\\t\\t<input\\n\\t\\t\\t\\tid=\\\"bottom-reply-enabled\\\"\\n\\t\\t\\t\\tclass=\\\"checkbox\\\"\\n\\t\\t\\t\\ttype=\\\"checkbox\\\"\\n\\t\\t\\t\\t:checked=\\\"useBottomReplies\\\"\\n\\t\\t\\t\\t@change=\\\"onToggleButtonReplies\\\">\\n\\t\\t\\t<label for=\\\"bottom-reply-enabled\\\">{{ replySettingsText }}</label>\\n\\t\\t</p>\\n\\n\\t\\t<p>\\n\\t\\t\\t<button class=\\\"icon-mail app-settings-button\\\" @click=\\\"registerProtocolHandler\\\">\\n\\t\\t\\t\\t{{ t('mail', 'Register as application for mail links') }}\\n\\t\\t\\t</button>\\n\\t\\t</p>\\n\\n\\t\\t<button\\n\\t\\t\\tclass=\\\"icon-details app-settings-button\\\"\\n\\t\\t\\t@click.prevent.stop=\\\"showKeyboardShortcuts\\\"\\n\\t\\t\\t@shortkey=\\\"toggleKeyboardShortcuts\\\">\\n\\t\\t\\t{{ t('mail', 'Show keyboard shortcuts') }}\\n\\t\\t</button>\\n\\t\\t<KeyboardShortcuts v-if=\\\"displayKeyboardShortcuts\\\" @close=\\\"closeKeyboardShortcuts\\\" />\\n\\t</div>\\n</template>\\n\\n<script>\\nimport Logger from '../logger'\\nimport { generateUrl } from '@nextcloud/router'\\nimport KeyboardShortcuts from '../views/KeyboardShortcuts'\\n\\nexport default {\\n\\tname: 'AppSettingsMenu',\\n\\tcomponents: {\\n\\t\\tKeyboardShortcuts,\\n\\t},\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tloadingAvatarSettings: false,\\n\\t\\t\\t// eslint-disable-next-line\\n\\t\\t\\toptOutSettingsText: t('mail', 'Allow the app to collect data about your interactions. Based on this data, the app will adapt to your preferences. The data will only be stored locally.'),\\n\\t\\t\\tloadingOptOutSettings: false,\\n\\t\\t\\t// eslint-disable-next-line\\n\\t\\t\\treplySettingsText: t('mail', 'Put my text to the bottom of a reply instead of on top of it.'),\\n\\t\\t\\tloadingReplySettings: false,\\n\\t\\t\\tdisplayKeyboardShortcuts: false,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\tuseBottomReplies() {\\n\\t\\t\\treturn this.$store.getters.getPreference('reply-mode', 'top') === 'bottom'\\n\\t\\t},\\n\\t\\tuseExternalAvatars() {\\n\\t\\t\\treturn this.$store.getters.getPreference('external-avatars', 'true') === 'true'\\n\\t\\t},\\n\\t\\tuseDataCollection() {\\n\\t\\t\\treturn this.$store.getters.getPreference('collect-data', 'true') === 'true'\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\tonToggleButtonReplies(e) {\\n\\t\\t\\tthis.loadingReplySettings = true\\n\\n\\t\\t\\tthis.$store\\n\\t\\t\\t\\t.dispatch('savePreference', {\\n\\t\\t\\t\\t\\tkey: 'reply-mode',\\n\\t\\t\\t\\t\\tvalue: e.target.checked ? 'bottom' : 'top',\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.catch((error) => Logger.error('could not save preferences', { error }))\\n\\t\\t\\t\\t.then(() => {\\n\\t\\t\\t\\t\\tthis.loadingReplySettings = false\\n\\t\\t\\t\\t})\\n\\t\\t},\\n\\t\\tonToggleExternalAvatars(e) {\\n\\t\\t\\tthis.loadingAvatarSettings = true\\n\\n\\t\\t\\tthis.$store\\n\\t\\t\\t\\t.dispatch('savePreference', {\\n\\t\\t\\t\\t\\tkey: 'external-avatars',\\n\\t\\t\\t\\t\\tvalue: e.target.checked ? 'true' : 'false',\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.catch((error) => Logger.error('could not save preferences', { error }))\\n\\t\\t\\t\\t.then(() => {\\n\\t\\t\\t\\t\\tthis.loadingAvatarSettings = false\\n\\t\\t\\t\\t})\\n\\t\\t},\\n\\t\\tonToggleCollectData(e) {\\n\\t\\t\\tthis.loadingOptOutSettings = true\\n\\n\\t\\t\\tthis.$store\\n\\t\\t\\t\\t.dispatch('savePreference', {\\n\\t\\t\\t\\t\\tkey: 'collect-data',\\n\\t\\t\\t\\t\\tvalue: e.target.checked ? 'true' : 'false',\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.catch((error) => Logger.error('could not save preferences', { error }))\\n\\t\\t\\t\\t.then(() => {\\n\\t\\t\\t\\t\\tthis.loadingOptOutSettings = false\\n\\t\\t\\t\\t})\\n\\t\\t},\\n\\t\\tregisterProtocolHandler() {\\n\\t\\t\\tif (window.navigator.registerProtocolHandler) {\\n\\t\\t\\t\\tconst url\\n\\t\\t\\t\\t\\t= window.location.protocol + '//' + window.location.host + generateUrl('apps/mail/compose?uri=%s')\\n\\t\\t\\t\\ttry {\\n\\t\\t\\t\\t\\twindow.navigator.registerProtocolHandler('mailto', url, OC.theme.name + ' Mail')\\n\\t\\t\\t\\t} catch (err) {\\n\\t\\t\\t\\t\\tLogger.error('could not register protocol handler', { err })\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\t/**\\n\\t\\t * Show the keyboard shortcuts overview\\n\\t\\t */\\n\\t\\tshowKeyboardShortcuts() {\\n\\t\\t\\tthis.displayKeyboardShortcuts = true\\n\\t\\t},\\n\\t\\t/**\\n\\t\\t * Hide the keyboard shortcuts overview\\n\\t\\t */\\n\\t\\tcloseKeyboardShortcuts() {\\n\\t\\t\\tthis.displayKeyboardShortcuts = false\\n\\t\\t},\\n\\t\\t/**\\n\\t\\t * Toggles the keyboard shortcuts overview\\n\\t\\t */\\n\\t\\ttoggleKeyboardShortcuts() {\\n\\t\\t\\tthis.displayKeyboardShortcuts = !this.displayKeyboardShortcuts\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n\\n<style scoped>\\np.app-settings span.icon-loading-small {\\n\\tdisplay: inline-block;\\n\\tvertical-align: middle;\\n\\tpadding: 5px 0;\\n}\\np.app-settings {\\n\\tpadding: 10px 0;\\n}\\n.app-settings-button {\\n\\tdisplay: block;\\n\\n\\tpadding-left: 34px;\\n\\tbackground-position: 10px center;\\n\\ttext-align: left;\\n}\\n.app-settings-button.button.primary.new-button {\\n\\tcolor: var(--color-main-background);\\n}\\n.app-settings-link {\\n\\ttext-decoration: underline;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { curry } from 'ramda'\nimport { fromString } from 'html-to-text'\n\n/**\n * @type {Text}\n */\nclass Text {\n\n\tconstructor(format, value) {\n\t\tthis.format = format\n\t\tthis.value = value\n\t}\n\n\t/**\n\t * @param {Text} other other\n\t * @returns {Text}\n\t */\n\tappend(other) {\n\t\tif (this.format !== other.format) {\n\t\t\tthrow new Error(\"can't append two different formats\")\n\t\t}\n\n\t\treturn new Text(this.format, this.value + other.value)\n\t}\n\n}\n\n/**\n * @param {string} format\n * @param {string} value\n *\n * @return {object}\n */\nconst wrap = curry((format, value) => {\n\treturn new Text(format, value)\n})\n\n/**\n * @param {string} value\n * @return {Text}\n */\nexport const plain = wrap('plain')\n\n/**\n * @function\n * @param {string} value\n * @return {Text}\n */\nexport const html = wrap('html')\n\nexport const detect = (str) => {\n\tif (!str.includes('>')) {\n\t\treturn plain(str)\n\t} else {\n\t\treturn html(str)\n\t}\n}\n\n/**\n * @function\n * @param {string} format\n * @param {Text} text\n */\nconst isFormat = curry((format, text) => {\n\treturn text.format === format\n})\n\n/**\n * @function\n * @param {Text} text\n * @return {bool}\n */\nexport const isPlain = isFormat('plain')\n\n/**\n * @function\n * @param {Text} text\n * @return {bool}\n */\nexport const isHtml = isFormat('html')\n\n/**\n * @param {Text} text text\n * @returns {Text}\n */\nexport const toPlain = (text) => {\n\tif (text.format === 'plain') {\n\t\treturn text\n\t}\n\tconst withBlockBreaks = text.value.replace(/<\\/div>/gi, '</div><br>')\n\n\tconst converted = fromString(withBlockBreaks, {\n\t\tnoLinkBrackets: true,\n\t\tignoreHref: true,\n\t\tignoreImage: true,\n\t\twordwrap: false,\n\t\tformat: {\n\t\t\tblockquote(element, fn, options) {\n\t\t\t\treturn fn(element.children, options)\n\t\t\t\t\t.replace(/\\n\\n\\n/g, '\\n\\n') // remove triple line breaks\n\t\t\t\t\t.replace(/^/gm, '> ') // add > quotation to each line\n\t\t\t},\n\t\t\tparagraph(element, fn, options) {\n\t\t\t\treturn fn(element.children, options) + '\\n\\n'\n\t\t\t},\n\t\t},\n\t})\n\n\treturn plain(\n\t\tconverted\n\t\t\t.replace(/\\n\\n\\n/g, '\\n\\n') // remove triple line breaks\n\t\t\t.replace(/^[\\n\\r]+/g, '') // trim line breaks at beginning and end\n\t\t\t.replace(/ $/gm, '') // trim white space at end of each line\n\t)\n}\n\n/**\n * @param {Text} text text\n * @returns {Text}\n */\nexport const toHtml = (text) => {\n\tif (text.format === 'html') {\n\t\treturn text\n\t}\n\tif (text.format === 'plain') {\n\t\treturn html(text.value.replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, '$1<br>$2'))\n\t}\n\n\tthrow new Error(`Unknown format ${text.format}`)\n}\n","import Vue from 'vue'\nconst dragEventBus = new Vue()\nexport default dragEventBus\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\nconst translateSpecial = (mailbox) => {\n\tif (mailbox.specialUse.includes('all')) {\n\t\t// TRANSLATORS: translated mail box name\n\t\treturn t('mail', 'All')\n\t}\n\tif (mailbox.specialUse.includes('archive')) {\n\t\t// TRANSLATORS: translated mail box name\n\t\treturn t('mail', 'Archive')\n\t}\n\tif (mailbox.specialUse.includes('drafts')) {\n\t\t// TRANSLATORS: translated mail box name\n\t\treturn t('mail', 'Drafts')\n\t}\n\tif (mailbox.specialUse.includes('flagged')) {\n\t\t// TRANSLATORS: translated mail box name\n\t\treturn t('mail', 'Favorites')\n\t}\n\tif (mailbox.specialUse.includes('inbox')) {\n\t\tif (mailbox.isPriorityInbox) {\n\t\t\t// TRANSLATORS: translated mail box name\n\t\t\treturn t('mail', 'Priority inbox')\n\t\t} else if (mailbox.isUnified) {\n\t\t\t// TRANSLATORS: translated mail box name\n\t\t\treturn t('mail', 'All inboxes')\n\t\t} else {\n\t\t\t// TRANSLATORS: translated mail box name\n\t\t\treturn t('mail', 'Inbox')\n\t\t}\n\t}\n\tif (mailbox.specialUse.includes('junk')) {\n\t\t// TRANSLATORS: translated mail box name\n\t\treturn t('mail', 'Junk')\n\t}\n\tif (mailbox.specialUse.includes('sent')) {\n\t\t// TRANSLATORS: translated mail box name\n\t\treturn t('mail', 'Sent')\n\t}\n\tif (mailbox.specialUse.includes('trash')) {\n\t\t// TRANSLATORS: translated mail box name\n\t\treturn t('mail', 'Trash')\n\t}\n\tthrow new Error(`unknown special use ${mailbox.specialUse}`)\n}\n\nexport const translate = (mailbox) => {\n\tif (mailbox.specialUse.length > 0) {\n\t\ttry {\n\t\t\treturn translateSpecial(mailbox)\n\t\t} catch (e) {\n\t\t\tconsole.error('could not translate special mailbox', e)\n\t\t}\n\t}\n\treturn mailbox.displayName\n}\n","/**\n * @copyright 2018 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2018 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport md5 from 'md5'\nimport conv from 'color-convert'\n\nexport const calculateAccountColor = (name) => {\n\tconst hashed = md5(name)\n\tconst hsl = conv.hex.hsl(hashed)\n\tconst fixedHsl = [Math.round(hsl[0] / 40) * 40, hsl[1], hsl[2]]\n\n\treturn '#' + conv.hsl.hex(fixedHsl)\n}\n","import { generateUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\n\nexport async function trustSender(email, type, trustFlag) {\n\tconst url = generateUrl('/apps/mail/api/trustedsenders/{email}?type={type}', {\n\t\temail,\n\t\ttype,\n\t})\n\n\tif (trustFlag) {\n\t\tawait axios.put(url)\n\t} else {\n\t\tawait axios.delete(url)\n\t}\n}\nexport async function fetchTrustedSenders() {\n\tconst url = generateUrl('/apps/mail/api/trustedsenders')\n\tconst response = await axios.get(url)\n\treturn response.data.data\n}\n"],"sourceRoot":""}