modoboa 2.5.1__py3-none-any.whl → 2.6.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. modoboa/admin/api/v2/serializers.py +6 -1
  2. modoboa/admin/api/v2/tests.py +16 -0
  3. modoboa/admin/api/v2/viewsets.py +11 -1
  4. modoboa/admin/app_settings.py +39 -0
  5. modoboa/admin/lib.py +8 -3
  6. modoboa/admin/models/alias.py +22 -0
  7. modoboa/admin/models/domain.py +1 -1
  8. modoboa/admin/models/mixins.py +3 -1
  9. modoboa/admin/tests/test_alias_targets.py +68 -0
  10. modoboa/admin/tests/test_mx.py +12 -12
  11. modoboa/autoconfig/__init__.py +0 -0
  12. modoboa/autoconfig/apps.py +6 -0
  13. modoboa/autoconfig/templates/autoconfig/autoconfig.xml +24 -0
  14. modoboa/autoconfig/templates/autoconfig/autodiscover.xml +27 -0
  15. modoboa/autoconfig/tests.py +38 -0
  16. modoboa/autoconfig/urls.py +21 -0
  17. modoboa/autoconfig/views.py +109 -0
  18. modoboa/autoreply/api/v2/tests.py +4 -4
  19. modoboa/autoreply/models.py +2 -2
  20. modoboa/calendars/tests.py +8 -8
  21. modoboa/contacts/tests.py +5 -7
  22. modoboa/core/commands/templates/settings.py.tpl +25 -2
  23. modoboa/core/models.py +1 -1
  24. modoboa/core/tests/test_ldap.py +2 -0
  25. modoboa/core/views/auth.py +27 -8
  26. modoboa/frontend_dist/assets/{AccountAliasForm-C0oHHyZL.js → AccountAliasForm-CqtTlaTr.js} +1 -1
  27. modoboa/frontend_dist/assets/{AccountEditView-lgSJ2Se8.js → AccountEditView-vbG3aNZy.js} +1 -1
  28. modoboa/frontend_dist/assets/AccountLayout-Dr0kIVYn.js +1 -0
  29. modoboa/frontend_dist/assets/{AccountPasswordSubForm-YsaE_cDx.js → AccountPasswordSubForm-KRg2Sc3j.js} +1 -1
  30. modoboa/frontend_dist/assets/{AccountView-1jfKFDwb.js → AccountView-ojD2hYFN.js} +1 -1
  31. modoboa/frontend_dist/assets/{AddressBook-CwN64Zls.js → AddressBook-UKBKm1mQ.js} +1 -1
  32. modoboa/frontend_dist/assets/AdminLayout-Dj4_-niL.js +1 -0
  33. modoboa/frontend_dist/assets/AlarmsView-CdHVE0Hh.js +1 -0
  34. modoboa/frontend_dist/assets/AlarmsView-Dal0VD8U.css +1 -0
  35. modoboa/frontend_dist/assets/AliasEditView-CYDSiX8l.css +1 -0
  36. modoboa/frontend_dist/assets/AliasEditView-DmAxOjKB.js +1 -0
  37. modoboa/frontend_dist/assets/AliasRecipientForm-BrTdirrM.js +1 -0
  38. modoboa/frontend_dist/assets/{AliasView-DMzA10eD.js → AliasView-Sr8AZcUK.js} +1 -1
  39. modoboa/frontend_dist/assets/{AuditTrailView-5dnGX5El.js → AuditTrailView-B0U4QZw5.js} +1 -1
  40. modoboa/frontend_dist/assets/{CalendarView-DZONeDA9.js → CalendarView-5ZhvN1XU.js} +1 -1
  41. modoboa/frontend_dist/assets/{ChoiceField-DnwXRkht.js → ChoiceField-APLYjZCH.js} +1 -1
  42. modoboa/frontend_dist/assets/{ComposeEmailForm-kghmfNuE.js → ComposeEmailForm-DkLwcddN.js} +1 -1
  43. modoboa/frontend_dist/assets/ComposeEmailView-Du9di9mX.js +1 -0
  44. modoboa/frontend_dist/assets/ConfirmDialog-CnWM982L.js +1 -0
  45. modoboa/frontend_dist/assets/ConnectedLayout-CiKHST8t.js +1 -0
  46. modoboa/frontend_dist/assets/{CreationForm-CW4lxnPg.js → CreationForm-BDQpHM1l.js} +1 -1
  47. modoboa/frontend_dist/assets/DashboardView-nIp1bBh1.js +1 -0
  48. modoboa/frontend_dist/assets/{DomainAdminList-C3jcDDc3.js → DomainAdminList-CzY3elnc.js} +1 -1
  49. modoboa/frontend_dist/assets/{DomainEditView-ph8AaElX.js → DomainEditView-B_vQgqL-.js} +1 -1
  50. modoboa/frontend_dist/assets/{DomainTransportForm-NCz6Bl-h.js → DomainTransportForm-HOsP56gy.js} +1 -1
  51. modoboa/frontend_dist/assets/{DomainView-BgMSSuU-.js → DomainView-CPDvROg8.js} +3 -3
  52. modoboa/frontend_dist/assets/DomainsView-WlF6IHNs.css +1 -0
  53. modoboa/frontend_dist/assets/DomainsView-haCsU12U.js +1 -0
  54. modoboa/frontend_dist/assets/{EmailField-DeqDPm5j.js → EmailField-Cjy8TitF.js} +1 -1
  55. modoboa/frontend_dist/assets/{EmailView-DczVhVO0.js → EmailView-dnVoHho7.js} +1 -1
  56. modoboa/frontend_dist/assets/EmptyLayout-Deh2_dQt.js +1 -0
  57. modoboa/frontend_dist/assets/{FiltersView-nJj_gSCx.js → FiltersView-Csn8N70V.js} +1 -1
  58. modoboa/frontend_dist/assets/ForwardEmailView-CUBLqaN5.js +1 -0
  59. modoboa/frontend_dist/assets/{HtmlEditor-BWRdelVw.js → HtmlEditor-CXZVsQx7.js} +1 -1
  60. modoboa/frontend_dist/assets/IdentitiesView-Cl2lbfkM.css +1 -0
  61. modoboa/frontend_dist/assets/IdentitiesView-lIu0dkk7.js +1 -0
  62. modoboa/frontend_dist/assets/{InformationView-BBWKSX8D.js → InformationView-DQqhhU9V.js} +1 -1
  63. modoboa/frontend_dist/assets/{LoadingData-G57nJ_JV.js → LoadingData-fbGWs7ji.js} +1 -1
  64. modoboa/frontend_dist/assets/LoginCallbackView-3Hv94z-r.js +1 -0
  65. modoboa/frontend_dist/assets/{LoginView-CqCCXYLo.js → LoginView-BUbinhV5.js} +1 -1
  66. modoboa/frontend_dist/assets/MailboxView-CYPFkxfT.js +1 -0
  67. modoboa/frontend_dist/assets/{MenuItems-BqIZW5av.js → MenuItems-Dg2GGDq6.js} +1 -1
  68. modoboa/frontend_dist/assets/{MessageView-D_6tx_gd.js → MessageView-Dz7CnObf.js} +1 -1
  69. modoboa/frontend_dist/assets/{MessagesView-BH7JIR03.js → MessagesView-BJAKsy9_.js} +1 -1
  70. modoboa/frontend_dist/assets/{MigrationsView-Cv_So9T-.js → MigrationsView-6k4E9C53.js} +1 -1
  71. modoboa/frontend_dist/assets/ParametersForm-Bfv6vx6R.js +1 -0
  72. modoboa/frontend_dist/assets/ParametersForm-t6-3GMDS.css +1 -0
  73. modoboa/frontend_dist/assets/ParametersView-BOIkKJtp.js +1 -0
  74. modoboa/frontend_dist/assets/ParametersView-BcyDgfqX.css +1 -0
  75. modoboa/frontend_dist/assets/ParametersView-BnQQOUOX.js +1 -0
  76. modoboa/frontend_dist/assets/{ProviderEditView-zh7CY832.js → ProviderEditView-DIc_KMp4.js} +1 -1
  77. modoboa/frontend_dist/assets/{ProviderGeneralForm-BQU7t3ma.js → ProviderGeneralForm-VpYAY2D4.js} +1 -1
  78. modoboa/frontend_dist/assets/{ProvidersView-CoF_ZkZA.js → ProvidersView-CgNIFDfD.js} +1 -1
  79. modoboa/frontend_dist/assets/QuarantineLayout-aTeFWNaK.js +1 -0
  80. modoboa/frontend_dist/assets/{QuarantineView-DNvpoycb.js → QuarantineView-n30IFBjf.js} +1 -1
  81. modoboa/frontend_dist/assets/ReplyEmailView-To3fx256.js +1 -0
  82. modoboa/frontend_dist/assets/ResourcesForm-Dy_SbQPT.js +1 -0
  83. modoboa/frontend_dist/assets/SelfServiceLayout-CsOvD1_L.js +1 -0
  84. modoboa/frontend_dist/assets/{SettingsView-gQiJ2NVb.js → SettingsView-oiWlLNP2.js} +2 -2
  85. modoboa/frontend_dist/assets/{StatisticsView-DYalet_q.js → StatisticsView-CTON4fgZ.js} +1 -1
  86. modoboa/frontend_dist/assets/{TimeSerieChart-BZ2htbFk.js → TimeSerieChart-DR0-ujj7.js} +1 -1
  87. modoboa/frontend_dist/assets/{TimeSerieChart-CxiwMzE8.css → TimeSerieChart-Dn6Wznn8.css} +1 -1
  88. modoboa/frontend_dist/assets/UserLayout-BBz6nSHf.js +1 -0
  89. modoboa/frontend_dist/assets/{VAlert-4r6LxKtg.js → VAlert-BWUQvs3i.js} +1 -1
  90. modoboa/frontend_dist/assets/{VApp-CX_C7AUN.js → VApp-1CFpPM0s.js} +1 -1
  91. modoboa/frontend_dist/assets/{VAutocomplete-DNKmBvyZ.js → VAutocomplete-vTx-9foZ.js} +1 -1
  92. modoboa/frontend_dist/assets/{VAvatar-DbuoZWmf.js → VAvatar-Wz1UmZ2b.js} +1 -1
  93. modoboa/frontend_dist/assets/{VBadge-Bv2nvUmC.js → VBadge-C08Ii4Nb.js} +1 -1
  94. modoboa/frontend_dist/assets/{VCard-DzjUT5OP.js → VCard-BrQzTMsm.js} +1 -1
  95. modoboa/frontend_dist/assets/{VCheckbox-dr7UFjl4.js → VCheckbox-IdHLHDAe.js} +1 -1
  96. modoboa/frontend_dist/assets/{VCheckboxBtn-CpFdBnTv.js → VCheckboxBtn-BMf4a9DP.js} +1 -1
  97. modoboa/frontend_dist/assets/{VChip-CaQvfmkw.js → VChip-B1E7xQW1.js} +1 -1
  98. modoboa/frontend_dist/assets/VColorPicker-CuNM9hII.js +1 -0
  99. modoboa/frontend_dist/assets/{VContainer-74Dnn8Ux.js → VContainer-f9kXL-37.js} +1 -1
  100. modoboa/frontend_dist/assets/{VDataTable-CL7yHvG7.js → VDataTable-CVJjOdhF.js} +1 -1
  101. modoboa/frontend_dist/assets/{VDataTableServer-BqvNcIdw.js → VDataTableServer-BSZUbic1.js} +1 -1
  102. modoboa/frontend_dist/assets/{VDataTableVirtual--KsOP8i6.js → VDataTableVirtual-Ceu9uaGm.js} +1 -1
  103. modoboa/frontend_dist/assets/{VDialog-DmTGCGR0.js → VDialog-BF9xR7BQ.js} +1 -1
  104. modoboa/frontend_dist/assets/{VExpansionPanels-B7sSTCwd.js → VExpansionPanels-Rq8tzNGV.js} +1 -1
  105. modoboa/frontend_dist/assets/{VFileInput-SULIc6F3.js → VFileInput-CXyx9q4a.js} +1 -1
  106. modoboa/frontend_dist/assets/{VForm-DsRLc-sa.js → VForm-RVvaatfV.js} +1 -1
  107. modoboa/frontend_dist/assets/{VInput-DVKUObZe.js → VInput-ssnfbpwr.js} +1 -1
  108. modoboa/frontend_dist/assets/{VMenu-nv0XOgg0.js → VMenu-BPG7b7dT.js} +1 -1
  109. modoboa/frontend_dist/assets/{VPicker-DnDSWJHJ.js → VPicker-Cv_7ON7Q.js} +1 -1
  110. modoboa/frontend_dist/assets/{VProgressCircular-qK6p5X_Y.js → VProgressCircular-Bdwj7JuI.js} +1 -1
  111. modoboa/frontend_dist/assets/{VRadioGroup-CbiPLy0t.js → VRadioGroup-BdEZyWNi.js} +1 -1
  112. modoboa/frontend_dist/assets/{VRow-DJ0NB63-.js → VRow-DGPh2Qmm.js} +1 -1
  113. modoboa/frontend_dist/assets/{VSelect-CxCFMHyF.js → VSelect-CzmrBwOO.js} +1 -1
  114. modoboa/frontend_dist/assets/{VSelectionControl-C-6A4us5.js → VSelectionControl-BIXXUgD4.js} +1 -1
  115. modoboa/frontend_dist/assets/{VSheet-DI6SxLnG.js → VSheet-C07oo1bg.js} +1 -1
  116. modoboa/frontend_dist/assets/VSpacer-Pa16wvUF.js +1 -0
  117. modoboa/frontend_dist/assets/{VSwitch-DPnjPQuU.js → VSwitch-C8Eq78Y3.js} +1 -1
  118. modoboa/frontend_dist/assets/{VTable-ldTxgQPW.js → VTable-C08Q6ok2.js} +1 -1
  119. modoboa/frontend_dist/assets/{VTabs-aS8WSL9I.js → VTabs-CaqxP8RF.js} +1 -1
  120. modoboa/frontend_dist/assets/{VTextField-DKbr4H5w.js → VTextField-BBIziqiv.js} +1 -1
  121. modoboa/frontend_dist/assets/{VTextarea-BttkFsM4.js → VTextarea-PURjBZRs.js} +1 -1
  122. modoboa/frontend_dist/assets/{VToolbar-BxX3W2kR.js → VToolbar-CILwTR5O.js} +1 -1
  123. modoboa/frontend_dist/assets/VWindowItem-l3wU5Kto.js +1 -0
  124. modoboa/frontend_dist/assets/WebmailLayout-uF8MMy0l.js +1 -0
  125. modoboa/frontend_dist/assets/{accounts-CC2F0a0c.js → accounts-DkNidbb0.js} +1 -1
  126. modoboa/frontend_dist/assets/{admin-CHCHFGI6.js → admin-C5XWZaxP.js} +1 -1
  127. modoboa/frontend_dist/assets/{aliases-C9bUD4Ws.js → aliases-eOyMwyZV.js} +1 -1
  128. modoboa/frontend_dist/assets/{amavis-DCVJxuui.js → amavis-BOgLfXLH.js} +1 -1
  129. modoboa/frontend_dist/assets/{amavis-BhzV4rgf.js → amavis-w7390k8i.js} +1 -1
  130. modoboa/frontend_dist/assets/{contacts-Dxz6eWpf.js → contacts-Ch-bKxJM.js} +1 -1
  131. modoboa/frontend_dist/assets/domains-DEEhRTFJ.js +1 -0
  132. modoboa/frontend_dist/assets/{domains.store-BLKRipG8.js → domains.store-BhRRATEd.js} +1 -1
  133. modoboa/frontend_dist/assets/{filter-rmxrcjKk.js → filter-CfvL3jIf.js} +1 -1
  134. modoboa/frontend_dist/assets/{forwardRefs-CpzzjgpX.js → forwardRefs-GE5Osi9V.js} +1 -1
  135. modoboa/frontend_dist/assets/{global.store-DndbMXYb.js → global.store-CxPrtY0_.js} +1 -1
  136. modoboa/frontend_dist/assets/importExport-C1_milrO.js +1 -0
  137. modoboa/frontend_dist/assets/index-D9OmnhdE.js +982 -0
  138. modoboa/frontend_dist/assets/{layout-DbjDe3Wl.js → layout-CuwY6Rle.js} +1 -1
  139. modoboa/frontend_dist/assets/{layout.store-Vq5mvIp7.js → layout.store-uEYOXtgD.js} +1 -1
  140. modoboa/frontend_dist/assets/{logos-Bvcy0usu.js → logos-BOVDV-my.js} +1 -1
  141. modoboa/frontend_dist/assets/{logs-BuItINky.js → logs-DT7l7Npx.js} +1 -1
  142. modoboa/frontend_dist/assets/{parameters-C8IYEP7q.js → parameters-DlTg3gyZ.js} +1 -1
  143. modoboa/frontend_dist/assets/{parameters.store-1cwSP2JP.js → parameters.store-eTs-B-pe.js} +1 -1
  144. modoboa/frontend_dist/assets/{permissions-DQjAcO9S.js → permissions-B-P8ks2E.js} +1 -1
  145. modoboa/frontend_dist/assets/{ssrBoot-BxIQ9ccA.js → ssrBoot-DaeAGyhc.js} +1 -1
  146. modoboa/frontend_dist/assets/{tag-3cfI1_f7.js → tag-jImTUiWx.js} +1 -1
  147. modoboa/frontend_dist/assets/theme-tqh89n3L.js +1 -0
  148. modoboa/frontend_dist/assets/transports-BnIcB3M9.js +1 -0
  149. modoboa/frontend_dist/assets/{webmail-B2IUjaxM.js → webmail-Dqo8FjAw.js} +1 -1
  150. modoboa/frontend_dist/index.html +1 -1
  151. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  152. modoboa/locale/ja_JP/LC_MESSAGES/django.po +1 -1
  153. modoboa/relaydomains/tests.py +1 -1
  154. modoboa/static/css/offline.css +7 -20
  155. modoboa/templates/registration/base.html +18 -0
  156. modoboa/templates/registration/login.html +1 -1
  157. modoboa/urls.py +1 -5
  158. {modoboa-2.5.1.dist-info → modoboa-2.6.1.dist-info}/METADATA +9 -9
  159. {modoboa-2.5.1.dist-info → modoboa-2.6.1.dist-info}/RECORD +164 -156
  160. {modoboa-2.5.1.dist-info → modoboa-2.6.1.dist-info}/licenses/LICENSE +1 -1
  161. modoboa/core/api/v1/tests.py +0 -26
  162. modoboa/frontend_dist/assets/AccountLayout-U386K8zy.js +0 -1
  163. modoboa/frontend_dist/assets/AdminLayout-Cxm1lggg.js +0 -1
  164. modoboa/frontend_dist/assets/AlarmsView-9yKGbmkC.css +0 -1
  165. modoboa/frontend_dist/assets/AlarmsView-Bcjsicac.js +0 -1
  166. modoboa/frontend_dist/assets/AliasEditView-Cx9410JP.css +0 -1
  167. modoboa/frontend_dist/assets/AliasEditView-k3rVt1tG.js +0 -1
  168. modoboa/frontend_dist/assets/AliasRecipientForm-IehUzKok.js +0 -1
  169. modoboa/frontend_dist/assets/ComposeEmailView-DLv3wk1k.js +0 -1
  170. modoboa/frontend_dist/assets/ConfirmDialog-CcPrCKuI.js +0 -1
  171. modoboa/frontend_dist/assets/ConnectedLayout-CWlBK7Hf.js +0 -1
  172. modoboa/frontend_dist/assets/DashboardView-DXVZMbMo.js +0 -1
  173. modoboa/frontend_dist/assets/DomainsView-CEEU9btK.js +0 -1
  174. modoboa/frontend_dist/assets/DomainsView-DZ-ss9bI.css +0 -1
  175. modoboa/frontend_dist/assets/EmptyLayout-BXgcfMLH.js +0 -1
  176. modoboa/frontend_dist/assets/ForwardEmailView-Bgv3JQb6.js +0 -1
  177. modoboa/frontend_dist/assets/IdentitiesView-DPrrRMS5.css +0 -1
  178. modoboa/frontend_dist/assets/IdentitiesView-Dld9IloZ.js +0 -1
  179. modoboa/frontend_dist/assets/LoginCallbackView-DjyE2SG_.js +0 -1
  180. modoboa/frontend_dist/assets/MailboxView-DRrs9eLO.js +0 -1
  181. modoboa/frontend_dist/assets/ParametersForm-3qXttTuQ.js +0 -1
  182. modoboa/frontend_dist/assets/ParametersForm-Dk-qwlRm.css +0 -1
  183. modoboa/frontend_dist/assets/ParametersView-3Ns04cpQ.js +0 -1
  184. modoboa/frontend_dist/assets/ParametersView-B5B5Dt6K.js +0 -1
  185. modoboa/frontend_dist/assets/ParametersView-DaKFNERg.css +0 -1
  186. modoboa/frontend_dist/assets/QuarantineLayout-CYBsrbJM.js +0 -1
  187. modoboa/frontend_dist/assets/ReplyEmailView-D1XTcglu.js +0 -1
  188. modoboa/frontend_dist/assets/ResourcesForm-BW8rUGgZ.js +0 -1
  189. modoboa/frontend_dist/assets/SelfServiceLayout-DfDHiYeX.js +0 -1
  190. modoboa/frontend_dist/assets/UserLayout-zUtHi-z-.js +0 -1
  191. modoboa/frontend_dist/assets/VColorPicker-ByGpCW5O.js +0 -1
  192. modoboa/frontend_dist/assets/VSpacer-CoJVmx8k.js +0 -1
  193. modoboa/frontend_dist/assets/VWindowItem-Cvqvdegd.js +0 -1
  194. modoboa/frontend_dist/assets/WebmailLayout-BT2k6U7q.js +0 -1
  195. modoboa/frontend_dist/assets/domains-C2cornvL.js +0 -1
  196. modoboa/frontend_dist/assets/importExport-C3uqrcok.js +0 -1
  197. modoboa/frontend_dist/assets/index-LhNzkzAh.js +0 -984
  198. modoboa/frontend_dist/assets/transports-D4Jk4-AP.js +0 -1
  199. {modoboa-2.5.1.data → modoboa-2.6.1.data}/scripts/modoboa-admin.py +0 -0
  200. {modoboa-2.5.1.dist-info → modoboa-2.6.1.dist-info}/WHEEL +0 -0
  201. {modoboa-2.5.1.dist-info → modoboa-2.6.1.dist-info}/entry_points.txt +0 -0
  202. {modoboa-2.5.1.dist-info → modoboa-2.6.1.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- import{a as r,b as n,V as i}from"./forwardRefs-CpzzjgpX.js";import{c as u}from"./VAvatar-DbuoZWmf.js";import{c,o as a,w as t,l as m,F as p,s as d,a as l,k as f,t as k}from"./index-LhNzkzAh.js";const C={__name:"MenuItems",props:{items:{type:Object,default:()=>{}},obj:{type:Object,default:()=>{}}},setup(o){return(_,V)=>(a(),c(i,{density:"compact"},{default:t(()=>[(a(!0),m(p,null,d(o.items,(e,s)=>(a(),c(r,{key:s,value:e,onClick:b=>e.onClick(o.obj)},{prepend:t(()=>[l(u,{color:e.color,icon:e.icon},null,8,["color","icon"])]),default:t(()=>[l(n,null,{default:t(()=>[f(k(e.label),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1}))}};export{C as _};
1
+ import{a as r,b as n,V as i}from"./forwardRefs-GE5Osi9V.js";import{c as u}from"./VAvatar-Wz1UmZ2b.js";import{c,o as a,w as t,l as m,F as p,s as d,a as l,k as f,t as k}from"./index-D9OmnhdE.js";const C={__name:"MenuItems",props:{items:{type:Object,default:()=>{}},obj:{type:Object,default:()=>{}}},setup(o){return(_,V)=>(a(),c(i,{density:"compact"},{default:t(()=>[(a(!0),m(p,null,d(o.items,(e,s)=>(a(),c(r,{key:s,value:e,onClick:b=>e.onClick(o.obj)},{prepend:t(()=>[l(u,{color:e.color,icon:e.icon},null,8,["color","icon"])]),default:t(()=>[l(n,null,{default:t(()=>[f(k(e.label),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1}))}};export{C as _};
@@ -1 +1 @@
1
- import{b as j,u as P,n as W,g as p,h as x,B as J,j as A,l as f,e as M,a as s,t as _,f as u,c as y,m as b,w as n,F as R,s as B,q as K,o as i,k as H,i as E}from"./index-LhNzkzAh.js";import{u as O}from"./amavis-DCVJxuui.js";import{_ as X}from"./ConfirmDialog-CcPrCKuI.js";import{a as h}from"./amavis-BhzV4rgf.js";import{V as Y}from"./VToolbar-BxX3W2kR.js";import{V as Z}from"./VAlert-4r6LxKtg.js";import{V as k,c as ee}from"./VAvatar-DbuoZWmf.js";import{V as ae}from"./VMenu-nv0XOgg0.js";import{V as te,a as N}from"./forwardRefs-CpzzjgpX.js";import{a as z,V as se}from"./VRow-DJ0NB63-.js";import{a as le,V as re}from"./VRadioGroup-CbiPLy0t.js";import"./permissions-DQjAcO9S.js";import"./parameters-C8IYEP7q.js";import"./VCard-DzjUT5OP.js";import"./tag-3cfI1_f7.js";import"./VSpacer-CoJVmx8k.js";/* empty css */import"./VDialog-DmTGCGR0.js";import"./VProgressCircular-qK6p5X_Y.js";import"./ssrBoot-BxIQ9ccA.js";import"./VSelectionControl-C-6A4us5.js";import"./VInput-DVKUObZe.js";const ie={class:"text-h5 ml-4"},ne={class:"bg-white rounded-lg pa-4 position-relative mt-6 h-100"},oe={key:0},ue={key:1},me={class:"pa-4 bg-grey-lighten-3 rounded"},ce=["innerHTML"],Ne={__name:"MessageView",async setup(de){let o,V;const e=J(),C=K(),{$gettext:t}=j(),q=P(),{displayNotification:w}=W(),m=p(null),v=p(null),L=p(null),r=p(!1),c=p(null),U=x(()=>m.value?m.value:c.value.headers),d=x(()=>{var a;return((a=e.query)==null?void 0:a.secret_id)!==void 0});if(d.value)p(!1);else{const{manualLearningEnabled:a}=([o,V]=A(()=>O()),o=await o,V(),o)}const D=()=>{C.go(-1)},T=async()=>{if(m.value){m.value=null;return}r.value=!0;try{const a=await h.getMessageHeaders(e.params.mailid,e.params.rcpt,e.query.secret_id);m.value=a.data.headers}finally{r.value=!1}},F=async()=>{r.value=!0;const a={rcpt:e.params.rcpt,mailid:e.params.mailid};d.value&&(a.secret_id=e.query.secret_id);try{(await h.releaseMessage(e.params.mailid,a)).data.status==="pending"?w({msg:t("Release request sent")}):w({msg:t("Message released")})}finally{r.value=!1}},I=async()=>{r.value=!0;const a={rcpt:e.params.rcpt,mailid:e.params.mailid};d.value&&(a.secret_id=e.query.secret_id);try{await h.deleteMessage(e.params.mailid,a),w({msg:t("Message deleted")}),d.value||C.push({name:"QuarantineView"})}finally{r.value=!1}},S=async(a,g)=>{manualLearningEnabled.value&&q.authUser.role!==E.USER&&(v.value=q.authUser.role===E.SUPER_ADMIN?"global":"domain",await L.value.open(t("Learning database"),t("Which database should be used for this learning:"),{width:600,noconfirm:!0})),r.value=!0;const l={type:a,selection:[{rcpt:e.params.rcpt,mailid:e.params.mailid}]};v.value&&(l.database=v.value);try{await h.markMessageSelection(l),w({msg:g})}finally{r.value=!1}},G=async()=>{await S("spam",t("Message marked as spam"))},Q=async()=>{await S("ham",t("Message marked as non-spam"))},$=([o,V]=A(()=>h.getMessageContent(e.params.mailid,e.params.rcpt,e.query.secret_id)),o=await o,V(),o);return c.value=$.data,(a,g)=>(i(),f("div",null,[M("div",ie,_(u(t)("Quarantined message")),1),M("div",ne,[s(Y,{color:"white"},{default:n(()=>[d.value?b("",!0):(i(),y(k,{key:0,icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:D})),s(k,{class:"ml-2",color:"success",variant:"tonal",icon:"mdi-check",size:"small",title:u(t)("Release message"),loading:r.value,onClick:F},null,8,["title","loading"]),s(k,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",title:u(t)("Delete message"),loading:r.value,onClick:I},null,8,["title","loading"]),d.value?b("",!0):(i(),f(R,{key:1},[a.manualLearningEnabled?(i(),y(k,{key:0,class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:n(()=>[s(ee,{icon:"mdi-cog"}),s(ae,{activator:"parent"},{default:n(()=>[s(te,{density:"compact"},{default:n(()=>[s(N,{title:u(t)("Mark as spam"),onClick:G},null,8,["title"]),s(N,{title:u(t)("Mark as non-spam"),onClick:Q},null,8,["title"])]),_:1})]),_:1})]),_:1})):b("",!0)],64)),s(k,{class:"ml-2",variant:"tonal",size:"small",loading:r.value,onClick:T},{default:n(()=>[m.value?(i(),f("span",ue,_(u(t)("Hide full headers")),1)):(i(),f("span",oe,_(u(t)("View full headers")),1))]),_:1},8,["loading"])]),_:1}),c.value.qtype?(i(),y(Z,{key:0,title:c.value.qtype,text:c.value.qreason,type:"error",variant:"tonal",class:"mb-4",density:"compact"},null,8,["title","text"])):b("",!0),M("div",me,[(i(!0),f(R,null,B(U.value,l=>(i(),y(se,{key:l.name,"no-gutters":""},{default:n(()=>[s(z,{cols:"2",class:"font-weight-bold"},{default:n(()=>[H(_(l.name),1)]),_:2},1024),s(z,{cols:"10"},{default:n(()=>[H(_(l.value),1)]),_:2},1024)]),_:2},1024))),128))]),M("div",{class:"mt-4",innerHTML:c.value.body},null,8,ce)]),s(u(X),{ref_key:"learningRecipientRef",ref:L},{default:n(()=>[s(le,{modelValue:v.value,"onUpdate:modelValue":g[0]||(g[0]=l=>v.value=l),class:"mt-4","hide-details":""},{default:n(()=>[(i(!0),f(R,null,B(a.learningRecipients,l=>(i(),y(re,{key:l.value,value:l.value,label:l.title},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1},512)]))}};export{Ne as default};
1
+ import{b as j,u as P,n as W,h as p,i as x,B as J,g as A,l as f,e as M,a as s,t as _,f as u,c as y,m as b,w as n,F as R,s as B,q as K,o as i,k as H,j as E}from"./index-D9OmnhdE.js";import{u as O}from"./amavis-BOgLfXLH.js";import{_ as X}from"./ConfirmDialog-CnWM982L.js";import{a as h}from"./amavis-w7390k8i.js";import{V as Y}from"./VToolbar-CILwTR5O.js";import{V as Z}from"./VAlert-BWUQvs3i.js";import{V as k,c as ee}from"./VAvatar-Wz1UmZ2b.js";import{V as ae}from"./VMenu-BPG7b7dT.js";import{V as te,a as N}from"./forwardRefs-GE5Osi9V.js";import{a as z,V as se}from"./VRow-DGPh2Qmm.js";import{a as le,V as re}from"./VRadioGroup-BdEZyWNi.js";import"./permissions-B-P8ks2E.js";import"./parameters-DlTg3gyZ.js";import"./VCard-BrQzTMsm.js";import"./tag-jImTUiWx.js";import"./VSpacer-Pa16wvUF.js";/* empty css */import"./VDialog-BF9xR7BQ.js";import"./VProgressCircular-Bdwj7JuI.js";import"./ssrBoot-DaeAGyhc.js";import"./VSelectionControl-BIXXUgD4.js";import"./VInput-ssnfbpwr.js";const ie={class:"text-h5 ml-4"},ne={class:"bg-white rounded-lg pa-4 position-relative mt-6 h-100"},oe={key:0},ue={key:1},me={class:"pa-4 bg-grey-lighten-3 rounded"},ce=["innerHTML"],Ne={__name:"MessageView",async setup(de){let o,V;const e=J(),C=K(),{$gettext:t}=j(),q=P(),{displayNotification:w}=W(),m=p(null),v=p(null),L=p(null),r=p(!1),c=p(null),U=x(()=>m.value?m.value:c.value.headers),d=x(()=>{var a;return((a=e.query)==null?void 0:a.secret_id)!==void 0});if(d.value)p(!1);else{const{manualLearningEnabled:a}=([o,V]=A(()=>O()),o=await o,V(),o)}const D=()=>{C.go(-1)},T=async()=>{if(m.value){m.value=null;return}r.value=!0;try{const a=await h.getMessageHeaders(e.params.mailid,e.params.rcpt,e.query.secret_id);m.value=a.data.headers}finally{r.value=!1}},F=async()=>{r.value=!0;const a={rcpt:e.params.rcpt,mailid:e.params.mailid};d.value&&(a.secret_id=e.query.secret_id);try{(await h.releaseMessage(e.params.mailid,a)).data.status==="pending"?w({msg:t("Release request sent")}):w({msg:t("Message released")})}finally{r.value=!1}},I=async()=>{r.value=!0;const a={rcpt:e.params.rcpt,mailid:e.params.mailid};d.value&&(a.secret_id=e.query.secret_id);try{await h.deleteMessage(e.params.mailid,a),w({msg:t("Message deleted")}),d.value||C.push({name:"QuarantineView"})}finally{r.value=!1}},S=async(a,g)=>{manualLearningEnabled.value&&q.authUser.role!==E.USER&&(v.value=q.authUser.role===E.SUPER_ADMIN?"global":"domain",await L.value.open(t("Learning database"),t("Which database should be used for this learning:"),{width:600,noconfirm:!0})),r.value=!0;const l={type:a,selection:[{rcpt:e.params.rcpt,mailid:e.params.mailid}]};v.value&&(l.database=v.value);try{await h.markMessageSelection(l),w({msg:g})}finally{r.value=!1}},G=async()=>{await S("spam",t("Message marked as spam"))},Q=async()=>{await S("ham",t("Message marked as non-spam"))},$=([o,V]=A(()=>h.getMessageContent(e.params.mailid,e.params.rcpt,e.query.secret_id)),o=await o,V(),o);return c.value=$.data,(a,g)=>(i(),f("div",null,[M("div",ie,_(u(t)("Quarantined message")),1),M("div",ne,[s(Y,{color:"white"},{default:n(()=>[d.value?b("",!0):(i(),y(k,{key:0,icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:D})),s(k,{class:"ml-2",color:"success",variant:"tonal",icon:"mdi-check",size:"small",title:u(t)("Release message"),loading:r.value,onClick:F},null,8,["title","loading"]),s(k,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",title:u(t)("Delete message"),loading:r.value,onClick:I},null,8,["title","loading"]),d.value?b("",!0):(i(),f(R,{key:1},[a.manualLearningEnabled?(i(),y(k,{key:0,class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:n(()=>[s(ee,{icon:"mdi-cog"}),s(ae,{activator:"parent"},{default:n(()=>[s(te,{density:"compact"},{default:n(()=>[s(N,{title:u(t)("Mark as spam"),onClick:G},null,8,["title"]),s(N,{title:u(t)("Mark as non-spam"),onClick:Q},null,8,["title"])]),_:1})]),_:1})]),_:1})):b("",!0)],64)),s(k,{class:"ml-2",variant:"tonal",size:"small",loading:r.value,onClick:T},{default:n(()=>[m.value?(i(),f("span",ue,_(u(t)("Hide full headers")),1)):(i(),f("span",oe,_(u(t)("View full headers")),1))]),_:1},8,["loading"])]),_:1}),c.value.qtype?(i(),y(Z,{key:0,title:c.value.qtype,text:c.value.qreason,type:"error",variant:"tonal",class:"mb-4",density:"compact"},null,8,["title","text"])):b("",!0),M("div",me,[(i(!0),f(R,null,B(U.value,l=>(i(),y(se,{key:l.name,"no-gutters":""},{default:n(()=>[s(z,{cols:"2",class:"font-weight-bold"},{default:n(()=>[H(_(l.name),1)]),_:2},1024),s(z,{cols:"10"},{default:n(()=>[H(_(l.value),1)]),_:2},1024)]),_:2},1024))),128))]),M("div",{class:"mt-4",innerHTML:c.value.body},null,8,ce)]),s(u(X),{ref_key:"learningRecipientRef",ref:L},{default:n(()=>[s(le,{modelValue:v.value,"onUpdate:modelValue":g[0]||(g[0]=l=>v.value=l),class:"mt-4","hide-details":""},{default:n(()=>[(i(!0),f(R,null,B(a.learningRecipients,l=>(i(),y(re,{key:l.value,value:l.value,label:l.title},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1},512)]))}};export{Ne as default};
@@ -1 +1 @@
1
- import{b as T,g as l,c as b,w as a,a as s,e as M,t as m,k as _,f as h,o as v,_ as $,l as D,F}from"./index-LhNzkzAh.js";import{l as S}from"./logs-BuItINky.js";import{d as N}from"./index-DuzUMVLM.js";import{V,a as B}from"./VToolbar-BxX3W2kR.js";import{V as C}from"./VTextField-DKbr4H5w.js";import{V as I}from"./VDataTableServer-BqvNcIdw.js";import{a as P}from"./VCard-DzjUT5OP.js";import"./tag-3cfI1_f7.js";import"./VAvatar-DbuoZWmf.js";import"./VProgressCircular-qK6p5X_Y.js";import"./VInput-DVKUObZe.js";import"./forwardRefs-CpzzjgpX.js";import"./ssrBoot-BxIQ9ccA.js";import"./VDataTable-CL7yHvG7.js";import"./VSelect-CxCFMHyF.js";import"./VMenu-nv0XOgg0.js";import"./VCheckboxBtn-CpFdBnTv.js";import"./VSelectionControl-C-6A4us5.js";import"./VChip-CaQvfmkw.js";import"./VTable-ldTxgQPW.js";import"./filter-rmxrcjKk.js";const U=["title"],q={__name:"MessageList",setup(k){const{$gettext:t}=T(),p=[{title:t("Queue ID"),key:"queue_id"},{title:t("Date"),key:"date",width:"20%"},{title:t("Status"),key:"status"},{title:t("To"),key:"rcpt"},{title:t("From"),key:"sender"}],w=[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"}],c=l(!0),d=l([]),i=l(""),u=l(0);function n({page:o,itemsPerPage:r,sortBy:e,search:x}){let f;e.length&&(f=(e[0].order==="desc"?"-":"")+e[0].key);const y={ordering:f,page:o,page_size:r,search:x};c.value=!0,S.getMessages(y).then(g=>{d.value=g.data.results,u.value=g.data.count,c.value=!1})}return n=N(n,500),(o,r)=>(v(),b(P,{class:"mt-6"},{default:a(()=>[s(I,{headers:p,items:d.value,search:i.value,class:"elevation-0","items-length":u.value,"items-per-page-options":w,"onUpdate:options":n},{top:a(()=>[s(V,{flat:"",color:"white"},{default:a(()=>[s(C,{modelValue:i.value,"onUpdate:modelValue":r[0]||(r[0]=e=>i.value=e),"prepend-inner-icon":"mdi-magnify",placeholder:h(t)("Search"),variant:"outlined","hide-details":"",density:"compact",class:"flex-grow-0 w-33"},null,8,["modelValue","placeholder"])]),_:1})]),"item.date":a(({item:e})=>[_(m(o.$date(e.date)),1)]),"item.sender":a(({item:e})=>[M("span",{title:e.sender},m(o.$truncate(e.sender,50)),9,U)]),_:2},1032,["items","search","items-length"])]),_:1}))}},z={__name:"MessagesView",setup(k){return(t,p)=>(v(),D(F,null,[s(V,{flat:""},{default:a(()=>[s(B,null,{default:a(()=>[_(m(t.$gettext("Message history")),1)]),_:1})]),_:1}),s(h(q))],64))}},le=$(z,[["__scopeId","data-v-9c91b6c8"]]);export{le as default};
1
+ import{b as T,h as l,c as b,w as a,a as s,e as M,t as m,k as g,f as h,o as v,_ as $,l as D,F}from"./index-D9OmnhdE.js";import{l as S}from"./logs-DT7l7Npx.js";import{d as N}from"./index-DuzUMVLM.js";import{V,a as B}from"./VToolbar-CILwTR5O.js";import{V as C}from"./VTextField-BBIziqiv.js";import{V as I}from"./VDataTableServer-BSZUbic1.js";import{a as P}from"./VCard-BrQzTMsm.js";import"./tag-jImTUiWx.js";import"./VAvatar-Wz1UmZ2b.js";import"./VProgressCircular-Bdwj7JuI.js";import"./VInput-ssnfbpwr.js";import"./forwardRefs-GE5Osi9V.js";import"./ssrBoot-DaeAGyhc.js";import"./VDataTable-CVJjOdhF.js";import"./VSelect-CzmrBwOO.js";import"./VMenu-BPG7b7dT.js";import"./VCheckboxBtn-BMf4a9DP.js";import"./VSelectionControl-BIXXUgD4.js";import"./VChip-B1E7xQW1.js";import"./VTable-C08Q6ok2.js";import"./filter-CfvL3jIf.js";const U=["title"],q={__name:"MessageList",setup(k){const{$gettext:t}=T(),p=[{title:t("Queue ID"),key:"queue_id"},{title:t("Date"),key:"date",width:"20%"},{title:t("Status"),key:"status"},{title:t("To"),key:"rcpt"},{title:t("From"),key:"sender"}],w=[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"}],c=l(!0),d=l([]),i=l(""),u=l(0);function n({page:o,itemsPerPage:r,sortBy:e,search:x}){let f;e.length&&(f=(e[0].order==="desc"?"-":"")+e[0].key);const y={ordering:f,page:o,page_size:r,search:x};c.value=!0,S.getMessages(y).then(_=>{d.value=_.data.results,u.value=_.data.count,c.value=!1})}return n=N(n,500),(o,r)=>(v(),b(P,{class:"mt-6"},{default:a(()=>[s(I,{headers:p,items:d.value,search:i.value,class:"elevation-0","items-length":u.value,"items-per-page-options":w,"onUpdate:options":n},{top:a(()=>[s(V,{flat:"",color:"white"},{default:a(()=>[s(C,{modelValue:i.value,"onUpdate:modelValue":r[0]||(r[0]=e=>i.value=e),"prepend-inner-icon":"mdi-magnify",placeholder:h(t)("Search"),variant:"outlined","hide-details":"",density:"compact",class:"flex-grow-0 w-33"},null,8,["modelValue","placeholder"])]),_:1})]),"item.date":a(({item:e})=>[g(m(o.$date(e.date)),1)]),"item.sender":a(({item:e})=>[M("span",{title:e.sender},m(o.$truncate(e.sender,50)),9,U)]),_:2},1032,["items","search","items-length"])]),_:1}))}},z={__name:"MessagesView",setup(k){return(t,p)=>(v(),D(F,null,[s(V,{flat:""},{default:a(()=>[s(B,null,{default:a(()=>[g(m(t.$gettext("Message history")),1)]),_:1})]),_:1}),s(h(q))],64))}},le=$(z,[["__scopeId","data-v-9c91b6c8"]]);export{le as default};
@@ -1 +1 @@
1
- import{C as c,b as y,n as U,g as s,r as j,c as z,o as C,w as o,a as t,f as g,v as $,k as v,t as _,_ as I,l as L}from"./index-LhNzkzAh.js";import{_ as P}from"./MenuItems-BqIZW5av.js";import{V as q}from"./VDataTable-CL7yHvG7.js";import{V as k}from"./VMenu-nv0XOgg0.js";import{V as p}from"./VAvatar-DbuoZWmf.js";import{V as T,a as E}from"./VToolbar-BxX3W2kR.js";import{V as F}from"./forwardRefs-CpzzjgpX.js";import{V as B}from"./VSpacer-CoJVmx8k.js";import{V as G}from"./VTextField-DKbr4H5w.js";import{a as O}from"./VCard-DzjUT5OP.js";import"./tag-3cfI1_f7.js";import"./VProgressCircular-qK6p5X_Y.js";import"./VSelect-CxCFMHyF.js";import"./VInput-DVKUObZe.js";import"./VCheckboxBtn-CpFdBnTv.js";import"./VSelectionControl-C-6A4us5.js";import"./VChip-CaQvfmkw.js";import"./VTable-ldTxgQPW.js";import"./filter-rmxrcjKk.js";import"./ssrBoot-BxIQ9ccA.js";/* empty css */const f="migrations",w={getMigrations(r){return c.get(`/${f}/`,{params:r})},getMigration(r,i){return c.get(`/${f}/${r}/`,i)},deleteMigration(r){return c.delete(`/${f}/${r}/`)}},H={__name:"MigrationsList",setup(r){const{$gettext:i}=y(),V=U(),n=s([]),S=[{title:i("Provider"),value:"provider.name"},{title:i("Old account"),value:"username"},{title:i("New account"),value:"mailbox"},{title:i("Actions"),value:"actions",sortable:!1,align:"right"}],x=s([]),u=s(!1),m=s(""),M=s({}),b=s(0);function A(l){w.deleteMigration(l.id).then(()=>{V.displayNotification({msg:i("Migration deleted")}),n.value=n.value.filter(a=>a.id!==l.id)})}function h(l){u.value=!0;let a={};w.getMigrations(a).then(d=>{n.value=d.data,b.value=n.value.length}).finally(()=>u.value=!1)}function D(){const l=[];return l.push({label:i("Delete"),icon:"mdi-delete-outline",onClick:A(),color:"red"}),l}return h(),(l,a)=>{const d=j("router-link");return C(),z(O,{class:"mt-6"},{default:o(()=>[t(q,{modelValue:x.value,"onUpdate:modelValue":a[2]||(a[2]=e=>x.value=e),options:M.value,"onUpdate:options":a[3]||(a[3]=e=>M.value=e),headers:S,items:n.value,search:m.value,"server-items-length":b.value,loading:u.value,"show-select":""},{top:o(()=>[t(T,{color:"white",flat:""},{default:o(()=>[t(k,{location:"bottom"},{activator:o(({props:e})=>[t(p,$(e,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:o(()=>[v(_(g(i)("Actions")),1)]),_:2},1040)]),default:o(()=>[t(F,{density:"compact"})]),_:1}),t(p,{variant:"text",icon:"mdi-reload",onClick:a[0]||(a[0]=e=>h())}),t(B),t(G,{modelValue:m.value,"onUpdate:modelValue":a[1]||(a[1]=e=>m.value=e),"prepend-inner-icon":"mdi-magnify",placeholder:"Search",filled:"",variant:"outlined",density:"compact","hide-details":""},null,8,["modelValue"])]),_:1})]),"item.mailbox":o(({item:e})=>[t(d,{to:{name:"AccountDetail",params:{id:e.mailbox.user}}},{default:o(()=>[v(_(e.mailbox.full_address),1)]),_:2},1032,["to"])]),"item.actions":o(({item:e})=>[t(k,{"offset-y":""},{activator:o(({props:N})=>[t(p,$({icon:"mdi-dots-horizontal"},N),null,16)]),default:o(()=>[t(g(P),{items:D(),object:e},null,8,["items","object"])]),_:2},1024)]),_:2},1032,["modelValue","options","items","search","server-items-length","loading"])]),_:1})}}},J={__name:"MigrationsView",setup(r){const{$gettext:i}=y();return(V,n)=>(C(),L("div",null,[t(T,{flat:""},{default:o(()=>[t(E,null,{default:o(()=>[v(_(g(i)("Migrations")),1)]),_:1}),t(B)]),_:1}),t(H)]))}},ft=I(J,[["__scopeId","data-v-5f22702f"]]);export{ft as default};
1
+ import{C as c,b as y,n as U,h as s,r as j,c as z,o as C,w as o,a as t,f as g,v as $,k as v,t as _,_ as I,l as L}from"./index-D9OmnhdE.js";import{_ as P}from"./MenuItems-Dg2GGDq6.js";import{V as q}from"./VDataTable-CVJjOdhF.js";import{V as k}from"./VMenu-BPG7b7dT.js";import{V as p}from"./VAvatar-Wz1UmZ2b.js";import{V as T,a as E}from"./VToolbar-CILwTR5O.js";import{V as F}from"./forwardRefs-GE5Osi9V.js";import{V as B}from"./VSpacer-Pa16wvUF.js";import{V as G}from"./VTextField-BBIziqiv.js";import{a as O}from"./VCard-BrQzTMsm.js";import"./tag-jImTUiWx.js";import"./VProgressCircular-Bdwj7JuI.js";import"./VSelect-CzmrBwOO.js";import"./VInput-ssnfbpwr.js";import"./VCheckboxBtn-BMf4a9DP.js";import"./VSelectionControl-BIXXUgD4.js";import"./VChip-B1E7xQW1.js";import"./VTable-C08Q6ok2.js";import"./filter-CfvL3jIf.js";import"./ssrBoot-DaeAGyhc.js";/* empty css */const f="migrations",w={getMigrations(r){return c.get(`/${f}/`,{params:r})},getMigration(r,i){return c.get(`/${f}/${r}/`,i)},deleteMigration(r){return c.delete(`/${f}/${r}/`)}},H={__name:"MigrationsList",setup(r){const{$gettext:i}=y(),V=U(),n=s([]),S=[{title:i("Provider"),value:"provider.name"},{title:i("Old account"),value:"username"},{title:i("New account"),value:"mailbox"},{title:i("Actions"),value:"actions",sortable:!1,align:"right"}],x=s([]),u=s(!1),m=s(""),h=s({}),M=s(0);function A(l){w.deleteMigration(l.id).then(()=>{V.displayNotification({msg:i("Migration deleted")}),n.value=n.value.filter(a=>a.id!==l.id)})}function b(l){u.value=!0;let a={};w.getMigrations(a).then(d=>{n.value=d.data,M.value=n.value.length}).finally(()=>u.value=!1)}function D(){const l=[];return l.push({label:i("Delete"),icon:"mdi-delete-outline",onClick:A(),color:"red"}),l}return b(),(l,a)=>{const d=j("router-link");return C(),z(O,{class:"mt-6"},{default:o(()=>[t(q,{modelValue:x.value,"onUpdate:modelValue":a[2]||(a[2]=e=>x.value=e),options:h.value,"onUpdate:options":a[3]||(a[3]=e=>h.value=e),headers:S,items:n.value,search:m.value,"server-items-length":M.value,loading:u.value,"show-select":""},{top:o(()=>[t(T,{color:"white",flat:""},{default:o(()=>[t(k,{location:"bottom"},{activator:o(({props:e})=>[t(p,$(e,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:o(()=>[v(_(g(i)("Actions")),1)]),_:2},1040)]),default:o(()=>[t(F,{density:"compact"})]),_:1}),t(p,{variant:"text",icon:"mdi-reload",onClick:a[0]||(a[0]=e=>b())}),t(B),t(G,{modelValue:m.value,"onUpdate:modelValue":a[1]||(a[1]=e=>m.value=e),"prepend-inner-icon":"mdi-magnify",placeholder:"Search",filled:"",variant:"outlined",density:"compact","hide-details":""},null,8,["modelValue"])]),_:1})]),"item.mailbox":o(({item:e})=>[t(d,{to:{name:"AccountDetail",params:{id:e.mailbox.user}}},{default:o(()=>[v(_(e.mailbox.full_address),1)]),_:2},1032,["to"])]),"item.actions":o(({item:e})=>[t(k,{"offset-y":""},{activator:o(({props:N})=>[t(p,$({icon:"mdi-dots-horizontal"},N),null,16)]),default:o(()=>[t(g(P),{items:D(),object:e},null,8,["items","object"])]),_:2},1024)]),_:2},1032,["modelValue","options","items","search","server-items-length","loading"])]),_:1})}}},J={__name:"MigrationsView",setup(r){const{$gettext:i}=y();return(V,n)=>(C(),L("div",null,[t(T,{flat:""},{default:o(()=>[t(E,null,{default:o(()=>[v(_(g(i)("Migrations")),1)]),_:1}),t(B)]),_:1}),t(H)]))}},ft=I(J,[["__scopeId","data-v-5f22702f"]]);export{ft as default};
@@ -0,0 +1 @@
1
+ import{_ as P,b as B,n as S,i as E,h as p,z as w,l as u,a as c,w as d,F as V,s as y,o as a,c as i,y as N,k as I,t as h,m as z,e as j,f as L}from"./index-D9OmnhdE.js";import{_ as O}from"./HtmlEditor-CXZVsQx7.js";import{V as W,a as $,b as A,c as D}from"./VTabs-CaqxP8RF.js";import{V as G}from"./VAvatar-Wz1UmZ2b.js";import{V as H}from"./VContainer-f9kXL-37.js";import{a as M,V as q}from"./VCard-BrQzTMsm.js";import{V as J}from"./VSwitch-C8Eq78Y3.js";import{V as K}from"./VSelect-CzmrBwOO.js";import{V as Q}from"./VTextarea-PURjBZRs.js";import{V as R}from"./VColorPicker-CuNM9hII.js";import{V as X}from"./VTextField-BBIziqiv.js";const Y={key:0},Z={class:"m-label"},ee={__name:"ParametersForm",props:{app:{type:String,default:""},structure:{type:Array,default:null},values:{type:Object,default:null},saveFunction:{type:Function,default:null}},emits:["success"],setup(x,{emit:F}){const m=x,U=F,{$gettext:g}=B(),{displayNotification:_}=S(),b=E(()=>m.structure.filter(s=>k(s))),f=p(0),r=p({}),l=p({}),v=p([]);w(()=>m.values,s=>{s&&(l.value={...s})}),w(l,()=>{v.value=[]});function k(s){if(s.display==="")return!0;let n=!0;return s.display.split("&").forEach(o=>{let[e,t]=o.split("=");(t==="true"||t==="false")&&(t=t==="true"),n&=l.value[e]===t}),n}function C(s){return s.filter(n=>k(n))}async function T(){r.value={},v.value=[];try{await m.saveFunction(m.app,l.value),_({msg:g("Parameters updated")}),U("success",l.value)}catch(s){_({msg:g("Could not save parameters"),type:"error"}),r.value=s.response.data,Object.keys(r.value).forEach(n=>{for(let o=0;o<m.structure.length;o++)m.structure[o].parameters.filter(t=>t.name===n).length>0&&v.value.push(o)})}}return(s,n)=>(a(),u(V,null,[c(W,{modelValue:f.value,"onUpdate:modelValue":n[0]||(n[0]=o=>f.value=o),"bg-color":"white"},{default:d(()=>[(a(!0),u(V,null,y(b.value,(o,e)=>(a(),i(A,{key:e,color:"primary",class:N(v.value.includes(e)?"error_tab":"")},{default:d(()=>[I(h(o.label),1)]),_:2},1032,["class"]))),128))]),_:1},8,["modelValue"]),c($,{modelValue:f.value,"onUpdate:modelValue":n[1]||(n[1]=o=>f.value=o)},{default:d(()=>[(a(!0),u(V,null,y(b.value,o=>(a(),i(D,{key:o.label},{default:d(()=>[c(H,{fluid:"",class:"pa-0"},{default:d(()=>[c(M,null,{default:d(()=>[c(q,null,{default:d(()=>[(a(!0),u(V,null,y(C(o.parameters),e=>(a(),u("div",{key:e.name,class:"my-4"},[e.widget==="SeparatorField"?(a(),u("h2",Y,h(e.label),1)):e.widget==="BooleanField"?(a(),u(V,{key:1},[e.widget==="BooleanField"?(a(),i(J,{key:0,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,label:e.label,hint:e.help_text,error:r.value[e.name]!==void 0,color:"primary",density:"compact","error-messages":r.value[e.name],"persistent-hint":""},null,8,["modelValue","onUpdate:modelValue","label","hint","error","error-messages"])):z("",!0)],64)):(a(),u(V,{key:2},[j("label",Z,h(e.label),1),e.widget==="ChoiceField"?(a(),i(K,{key:0,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,items:e.choices,"item-title":"text",hint:e.help_text,"persistent-hint":"",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","items","hint"])):e.widget==="TextareaField"?(a(),i(Q,{key:1,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],type:e.widget==="PasswordField"?"password":"text",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages","type"])):e.widget==="HTMLField"?(a(),i(L(O),{key:2,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t},null,8,["modelValue","onUpdate:modelValue"])):e.widget==="ColorPicker"?(a(),i(R,{key:3,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,mode:"hexa",hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages"])):(a(),i(X,{key:4,modelValue:l.value[e.name],"onUpdate:modelValue":t=>l.value[e.name]=t,hint:e.help_text,"persistent-hint":"",error:r.value[e.name]!==void 0,"error-messages":r.value[e.name],type:e.widget==="PasswordField"?"password":"text",density:"compact",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","hint","error","error-messages","type"]))],64))]))),128))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,["modelValue"]),c(G,{icon:"mdi-content-save",class:"ma-5",position:"fixed",location:"bottom right",color:"green",size:"large",onClick:T})],64))}},ce=P(ee,[["__scopeId","data-v-c6f18df9"]]);export{ce as P};
@@ -0,0 +1 @@
1
+ .error_tab[data-v-c6f18df9]{color:#ff5252!important}
@@ -0,0 +1 @@
1
+ import{_ as g,b as S,h as o,i as h,z as V,B as P,l as k,a as l,c as w,w as u,f as n,o as c,k as x,t as G}from"./index-D9OmnhdE.js";import{p as r}from"./parameters-DlTg3gyZ.js";import{P as A}from"./ParametersForm-Bfv6vx6R.js";import{V as B,a as T}from"./VToolbar-CILwTR5O.js";import{u as N}from"./global.store-CxPrtY0_.js";import{u as $}from"./parameters.store-eTs-B-pe.js";import"./HtmlEditor-CXZVsQx7.js";import"./VAvatar-Wz1UmZ2b.js";import"./tag-jImTUiWx.js";import"./VProgressCircular-Bdwj7JuI.js";import"./forwardRefs-GE5Osi9V.js";import"./ssrBoot-DaeAGyhc.js";import"./VTabs-CaqxP8RF.js";import"./VWindowItem-l3wU5Kto.js";import"./VChip-B1E7xQW1.js";import"./VMenu-BPG7b7dT.js";import"./VContainer-f9kXL-37.js";/* empty css */import"./VCard-BrQzTMsm.js";import"./VSwitch-C8Eq78Y3.js";import"./VInput-ssnfbpwr.js";import"./VSelectionControl-BIXXUgD4.js";import"./VSelect-CzmrBwOO.js";import"./VTextField-BBIziqiv.js";import"./VCheckboxBtn-BMf4a9DP.js";import"./VTextarea-PURjBZRs.js";import"./VColorPicker-CuNM9hII.js";import"./colors-DoZdCu1D.js";import"./VPicker-Cv_7ON7Q.js";import"./VSheet-C07oo1bg.js";const y={__name:"ParametersView",setup(E){const{$gettext:f}=S(),d=N(),e=P(),_=$(),p=o([]),s=o({}),i=o(""),v=h(()=>f("Settings: "+i.value));function m(t){r.getGlobalApplicationStructure(t).then(a=>{p.value=a.data}),r.getGlobalApplication(t).then(a=>{s.value=a.data.params,i.value=a.data.label})}function b(t){d.fetchNotifications(),e.params.app==="imap_migration"&&(_.imapMigrationEnabled=t.enabled_imapmigration)}return V(e,t=>{m(t.params.app)}),m(e.params.app),(t,a)=>(c(),k("div",null,[l(B,{flat:""},{default:u(()=>[l(T,null,{default:u(()=>[x(G(v.value),1)]),_:1})]),_:1}),(c(),w(n(A),{key:t.$route.params.app,app:t.$route.params.app,structure:p.value,values:s.value,"save-function":n(r).saveGlobalApplication,onSuccess:b},null,8,["app","structure","values","save-function"]))]))}},ut=g(y,[["__scopeId","data-v-53ef9637"]]);export{ut as default};
@@ -0,0 +1 @@
1
+ .v-toolbar[data-v-53ef9637]{background-color:#f7f8fa!important}.error_tab[data-v-53ef9637]{color:#ff5252!important}.v-window__container{width:100%!important}
@@ -0,0 +1 @@
1
+ import{_ as v,b as _,h as r,i as d,z as V,B as h,l as x,a as e,w as u,f as c,o as b,k as g,t as w}from"./index-D9OmnhdE.js";import{P}from"./ParametersForm-Bfv6vx6R.js";import{p as o}from"./parameters-DlTg3gyZ.js";import{V as A,a as T}from"./VToolbar-CILwTR5O.js";import"./HtmlEditor-CXZVsQx7.js";import"./VAvatar-Wz1UmZ2b.js";import"./tag-jImTUiWx.js";import"./VProgressCircular-Bdwj7JuI.js";import"./forwardRefs-GE5Osi9V.js";import"./ssrBoot-DaeAGyhc.js";import"./VTabs-CaqxP8RF.js";import"./VWindowItem-l3wU5Kto.js";import"./VChip-B1E7xQW1.js";import"./VMenu-BPG7b7dT.js";import"./VContainer-f9kXL-37.js";/* empty css */import"./VCard-BrQzTMsm.js";import"./VSwitch-C8Eq78Y3.js";import"./VInput-ssnfbpwr.js";import"./VSelectionControl-BIXXUgD4.js";import"./VSelect-CzmrBwOO.js";import"./VTextField-BBIziqiv.js";import"./VCheckboxBtn-BMf4a9DP.js";import"./VTextarea-PURjBZRs.js";import"./VColorPicker-CuNM9hII.js";import"./colors-DoZdCu1D.js";import"./VPicker-Cv_7ON7Q.js";import"./VSheet-C07oo1bg.js";const k={__name:"ParametersView",setup(B){const{$gettext:n}=_(),p=h(),s=r(""),i=r([]),m=r({}),f=d(()=>n("Settings: "+s.value));function l(t){o.getUserApplicationStructure(t).then(a=>{i.value=a.data}),o.getUserApplication(t).then(a=>{m.value=a.data.params,s.value=a.data.label})}return V(p,t=>{l(t.params.app)}),l(p.params.app),(t,a)=>(b(),x("div",null,[e(A,{flat:""},{default:u(()=>[e(T,null,{default:u(()=>[g(w(f.value),1)]),_:1})]),_:1}),e(c(P),{app:t.$route.params.app,structure:i.value,values:m.value,"save-function":c(o).saveUserApplication},null,8,["app","structure","values","save-function"])]))}},rt=v(k,[["__scopeId","data-v-3e7380ff"]]);export{rt as default};
@@ -1 +1 @@
1
- import{u as R,a as T,_ as U,p as N}from"./ProviderGeneralForm-BQU7t3ma.js";import{b as S,n as j,q as A,g as v,z as G,l as k,o as i,a,e as w,w as e,k as u,t as n,f as d,c as y,F as q,B as z}from"./index-LhNzkzAh.js";import{d as F,V as $}from"./VAvatar-DbuoZWmf.js";import{V as b,c as E,a as B,b as D}from"./VExpansionPanels-B7sSTCwd.js";import{V as g,a as m}from"./VRow-DJ0NB63-.js";import"./domains-C2cornvL.js";import"./VTextField-DKbr4H5w.js";import"./tag-3cfI1_f7.js";import"./VInput-DVKUObZe.js";import"./VProgressCircular-qK6p5X_Y.js";import"./forwardRefs-CpzzjgpX.js";import"./ssrBoot-BxIQ9ccA.js";import"./VAutocomplete-DNKmBvyZ.js";import"./VSelect-CxCFMHyF.js";import"./VMenu-nv0XOgg0.js";import"./VCheckboxBtn-CpFdBnTv.js";import"./VSelectionControl-C-6A4us5.js";import"./VChip-CaQvfmkw.js";import"./filter-rmxrcjKk.js";import"./VForm-DsRLc-sa.js";import"./VSpacer-CoJVmx8k.js";/* empty css */import"./VSwitch-DPnjPQuU.js";const L={key:0},O={key:0},H={class:"mt-4 d-flex justify-end"},I={__name:"ProviderForm",props:{provider:{type:Object,default:null}},setup(P){const x=P,{$gettext:r}=S(),c=j(),_=A(),V=R(),s=v({domains:[]}),h=v(0),p=v(),f=v();G(()=>x.provider,t=>{t&&(s.value={...t},s.value.domains||(s.value.domains=[]))},{immediate:!0});async function C(){if(p.value!==void 0){const{valid:t}=await p.value.vFormRef.validate();if(!t)return}if(f.value!==void 0){const{valid:t}=await f.value.vFormRef.validate();if(!t)return}try{const t={...s.value};t.domains=[];for(const o of s.value.domains)o.new_domain?t.domains.push({name:o.name,new_domain:o.new_domain.pk||o.new_domain.id}):t.domains.push(o);await N.patchProvider(s.value.id,t).then(()=>{c.displayNotification({msg:r("Provider updated")}),V.getProviders(),_.push({name:"ProvidersList"})})}catch(t){p.value&&p.value.$refs.observer.setErrors(t.response.data),f.value&&f.value.$refs.observer.setErrors(t.response.data)}}return(t,o)=>(i(),k(q,null,[a(D,{modelValue:h.value,"onUpdate:modelValue":o[2]||(o[2]=l=>h.value=l)},{default:e(()=>[a(b,null,{default:e(()=>[a(E,null,{default:e(({open:l})=>[a(g,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[u(n(d(r)("General")),1)]),_:1}),a(m,{cols:"8",class:"text-secondary"},{default:e(()=>[a(F,{"leave-absolute":""},{default:e(()=>[l?(i(),k("span",L)):(i(),y(g,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[u(n(d(r)("Name:"))+" "+n(s.value.name),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(B,null,{default:e(()=>[a(T,{ref_key:"generalForm",ref:p,modelValue:s.value,"onUpdate:modelValue":o[0]||(o[0]=l=>s.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(b,null,{default:e(()=>[a(E,null,{default:e(({open:l})=>[a(g,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[u(n(d(r)("Associated domains")),1)]),_:1}),a(m,{cols:"8",class:"text-secondary"},{default:e(()=>[a(F,{"leave-absolute":""},{default:e(()=>[l?(i(),k("span",O)):(i(),y(g,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[s.value.domains.length>0?(i(),y(m,{key:0,cols:"6"},{default:e(()=>[u(n(d(r)("Number of associated domains:"))+" "+n(s.value.domains.length),1)]),_:1})):(i(),y(m,{key:1,cols:"6"},{default:e(()=>[u(n(d(r)("No associated domains")),1)]),_:1}))]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(B,null,{default:e(()=>[a(U,{ref_key:"associatedForm",ref:f,modelValue:s.value.domains,"onUpdate:modelValue":o[1]||(o[1]=l=>s.value.domains=l)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),w("div",H,[a($,{onClick:o[3]||(o[3]=l=>t.$router.go(-1))},{default:e(()=>[u(n(d(r)("Cancel")),1)]),_:1}),a($,{class:"ml-4",color:"primary darken-1",onClick:C},{default:e(()=>[u(n(d(r)("Save")),1)]),_:1})])],64))}},J={class:"text-h4"},_e={__name:"ProviderEditView",setup(P){const{$gettext:x}=S(),r=z(),c=v({});return N.getProvider(r.params.id).then(_=>{c.value=_.data}),(_,V)=>(i(),k("div",null,[w("span",J,n(d(x)("Edit provider")),1),V[0]||(V[0]=w("div",{class:"mt-4"},null,-1)),a(I,{provider:c.value},null,8,["provider"])]))}};export{_e as default};
1
+ import{u as R,a as T,_ as U,p as N}from"./ProviderGeneralForm-VpYAY2D4.js";import{b as S,n as j,q as A,h as v,z as G,l as k,o as i,a,e as w,w as e,k as u,t as n,f as d,c as y,F as q,B as z}from"./index-D9OmnhdE.js";import{d as F,V as $}from"./VAvatar-Wz1UmZ2b.js";import{V as b,c as E,a as B,b as D}from"./VExpansionPanels-Rq8tzNGV.js";import{V as g,a as m}from"./VRow-DGPh2Qmm.js";import"./domains-DEEhRTFJ.js";import"./VTextField-BBIziqiv.js";import"./tag-jImTUiWx.js";import"./VInput-ssnfbpwr.js";import"./VProgressCircular-Bdwj7JuI.js";import"./forwardRefs-GE5Osi9V.js";import"./ssrBoot-DaeAGyhc.js";import"./VAutocomplete-vTx-9foZ.js";import"./VSelect-CzmrBwOO.js";import"./VMenu-BPG7b7dT.js";import"./VCheckboxBtn-BMf4a9DP.js";import"./VSelectionControl-BIXXUgD4.js";import"./VChip-B1E7xQW1.js";import"./filter-CfvL3jIf.js";import"./VForm-RVvaatfV.js";import"./VSpacer-Pa16wvUF.js";/* empty css */import"./VSwitch-C8Eq78Y3.js";const L={key:0},O={key:0},H={class:"mt-4 d-flex justify-end"},I={__name:"ProviderForm",props:{provider:{type:Object,default:null}},setup(P){const x=P,{$gettext:r}=S(),c=j(),_=A(),V=R(),s=v({domains:[]}),h=v(0),p=v(),f=v();G(()=>x.provider,t=>{t&&(s.value={...t},s.value.domains||(s.value.domains=[]))},{immediate:!0});async function C(){if(p.value!==void 0){const{valid:t}=await p.value.vFormRef.validate();if(!t)return}if(f.value!==void 0){const{valid:t}=await f.value.vFormRef.validate();if(!t)return}try{const t={...s.value};t.domains=[];for(const o of s.value.domains)o.new_domain?t.domains.push({name:o.name,new_domain:o.new_domain.pk||o.new_domain.id}):t.domains.push(o);await N.patchProvider(s.value.id,t).then(()=>{c.displayNotification({msg:r("Provider updated")}),V.getProviders(),_.push({name:"ProvidersList"})})}catch(t){p.value&&p.value.$refs.observer.setErrors(t.response.data),f.value&&f.value.$refs.observer.setErrors(t.response.data)}}return(t,o)=>(i(),k(q,null,[a(D,{modelValue:h.value,"onUpdate:modelValue":o[2]||(o[2]=l=>h.value=l)},{default:e(()=>[a(b,null,{default:e(()=>[a(E,null,{default:e(({open:l})=>[a(g,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[u(n(d(r)("General")),1)]),_:1}),a(m,{cols:"8",class:"text-secondary"},{default:e(()=>[a(F,{"leave-absolute":""},{default:e(()=>[l?(i(),k("span",L)):(i(),y(g,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[u(n(d(r)("Name:"))+" "+n(s.value.name),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(B,null,{default:e(()=>[a(T,{ref_key:"generalForm",ref:p,modelValue:s.value,"onUpdate:modelValue":o[0]||(o[0]=l=>s.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(b,null,{default:e(()=>[a(E,null,{default:e(({open:l})=>[a(g,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[u(n(d(r)("Associated domains")),1)]),_:1}),a(m,{cols:"8",class:"text-secondary"},{default:e(()=>[a(F,{"leave-absolute":""},{default:e(()=>[l?(i(),k("span",O)):(i(),y(g,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[s.value.domains.length>0?(i(),y(m,{key:0,cols:"6"},{default:e(()=>[u(n(d(r)("Number of associated domains:"))+" "+n(s.value.domains.length),1)]),_:1})):(i(),y(m,{key:1,cols:"6"},{default:e(()=>[u(n(d(r)("No associated domains")),1)]),_:1}))]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(B,null,{default:e(()=>[a(U,{ref_key:"associatedForm",ref:f,modelValue:s.value.domains,"onUpdate:modelValue":o[1]||(o[1]=l=>s.value.domains=l)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),w("div",H,[a($,{onClick:o[3]||(o[3]=l=>t.$router.go(-1))},{default:e(()=>[u(n(d(r)("Cancel")),1)]),_:1}),a($,{class:"ml-4",color:"primary darken-1",onClick:C},{default:e(()=>[u(n(d(r)("Save")),1)]),_:1})])],64))}},J={class:"text-h4"},_e={__name:"ProviderEditView",setup(P){const{$gettext:x}=S(),r=z(),c=v({});return N.getProvider(r.params.id).then(_=>{c.value=_.data}),(_,V)=>(i(),k("div",null,[w("span",J,n(d(x)("Edit provider")),1),V[0]||(V[0]=w("div",{class:"mt-4"},null,-1)),a(I,{provider:c.value},null,8,["provider"])]))}};export{_e as default};
@@ -1 +1 @@
1
- import{C as y,E as T,n as q,g as m,G,b as K,z as j,l as b,o as v,a as n,w as d,f as _,F as w,s as E,c as $,k,t as A,h as M,e as I}from"./index-LhNzkzAh.js";import{d as O}from"./domains-C2cornvL.js";import{V as C}from"./VTextField-DKbr4H5w.js";import{V as z}from"./VAutocomplete-DNKmBvyZ.js";import{V as F,r as S}from"./VForm-DsRLc-sa.js";import{V as N,c as x}from"./VAvatar-DbuoZWmf.js";import{V as Y}from"./VSpacer-CoJVmx8k.js";import{V as H}from"./VChip-CaQvfmkw.js";import{V as J}from"./VInput-DVKUObZe.js";import{V as Q}from"./VSwitch-DPnjPQuU.js";const g="email-providers",h={getProviders(a){return y.get(`/${g}/`,{params:a})},getProvider(a){return y.get(`/${g}/${a}/`)},createProvider(a){return y.post(`/${g}/`,a)},updateProvider(a,l){return y.put(`/${g}/${a}/`,l)},patchProvider(a,l){return y.patch(`/${g}/${a}/`,l)},deleteProvider(a){return y.delete(`/${g}/${a}/`)},checkProvider(a){return y.post(`/${g}/check_connection/`,a)},checkAssociatedDomain(a){return y.post(`/${g}/check_associated_domain/`,a)}},de=T("providers",()=>{const a=q(),l=m(!1),i=m({}),{$gettext:o}=G;async function p(){l.value=!1,i.value={}}async function f(){return i.value={},l.value=!1,h.getProviders().then(t=>{for(const e of t.data)i.value[e.id]=e;return t}).finally(()=>l.value=!0)}async function r(t){return l.value=!1,h.createProvider(t).then(e=>(i.value[e.data.id]=e.data,e)).finally(()=>l.value=!0)}async function P(t){return l.value=!1,h.deleteProvider({id:t}).then(e=>(delete i.value[t],a.displayNotification({msg:o("Provider deleted")}),e)).finally(()=>l.value=!0)}return{providersLoaded:l,providers:i,getProviders:f,createProvider:r,deleteProvider:P,$reset:p}}),me={__name:"ProviderAssociatedForm",props:{modelValue:{type:Array,default:null}},emits:["update:modelValue"],setup(a,{expose:l,emit:i}){const{$gettext:o}=K(),p=a,f=i,r=m([]),P=m(),t=m(),e=m({name:"",new_domain:""}),u=m([]);j(()=>p.modelValue,s=>{s&&(r.value=[...s])},{immediate:!0});async function D(){await P.value.validate()&&h.checkAssociatedDomain(e.value).then(c=>{c.status===200&&(r.value.push({name:e.value.name,new_domain:e.value.new_domain}),f("update:modelValue",r.value),e.value={name:"",new_domain:""})})}function R(s){r.value.splice(s,1),f("update:modelValue",r.value)}function L(s){const c=s.keyCode;(c===13||c===9)&&(D(),s.preventDefault())}O.getDomains().then(s=>{u.value=s.data});function U(){return r.value.length===0?o("You need to bind at least one domain to the provider."):!0}return l({vFormRef:t}),(s,c)=>(v(),b(w,null,[n(F,{ref_key:"formRef",ref:P},{default:d(()=>[n(C,{ref:"initialdomainField",modelValue:e.value.name,"onUpdate:modelValue":c[0]||(c[0]=V=>e.value.name=V),placeholder:_(o)("Name of the domain to migrate"),variant:"outlined",density:"compact",onKeydown:L},null,8,["modelValue","placeholder"]),n(z,{modelValue:e.value.new_domain,"onUpdate:modelValue":c[1]||(c[1]=V=>e.value.new_domain=V),label:_(o)("Local domain (optional)"),items:u.value,"item-title":"name","return-object":"",variant:"outlined",density:"compact",clearable:"",onKeydown:L},null,8,["modelValue","label","items"])]),_:1},512),n(N,{icon:"mdi-plus",color:"primary",onClick:D}),n(Y),(v(!0),b(w,null,E(r.value,(V,B)=>(v(),$(H,{key:B,class:"mr-2 mt-2",closable:"","onClick:close":Z=>R(B)},{default:d(()=>[V.new_domain?(v(),b(w,{key:0},[k(A(V.name)+" --> "+A(V.new_domain.name),1)],64)):(v(),b(w,{key:1},[k(A(V.name),1)],64))]),_:2},1032,["onClick:close"]))),128)),n(F,{ref_key:"vFormRef",ref:t},{default:d(()=>[n(J,{rules:[U]},null,8,["rules"])]),_:1},512)],64))}},W={class:"my-7"},X={class:"custom-loader"},ce={__name:"ProviderGeneralForm",props:{modelValue:{type:Object,default:null}},setup(a,{expose:l}){const i=a,o=M(()=>i.modelValue),p=m(0),f=m(!1),r=m();async function P(){if(!await r.value.validate())return;f.value=!0;const e={address:o.value.address,port:o.value.port,secured:o.value.secured};h.checkProvider(e).then(()=>{p.value=1}).catch(u=>{console.log(u),p.value=2}).finally(()=>f.value=!1)}return l({vFormRef:r}),(t,e)=>(v(),$(F,{ref_key:"vFormRef",ref:r},{default:d(()=>[n(C,{modelValue:o.value.name,"onUpdate:modelValue":e[0]||(e[0]=u=>o.value.name=u),label:t.$gettext("Provider name"),variant:"outlined",rules:[_(S).required]},null,8,["modelValue","label","rules"]),n(C,{modelValue:o.value.address,"onUpdate:modelValue":e[1]||(e[1]=u=>o.value.address=u),label:t.$gettext("Address (hostname or IP)"),rules:[_(S).required],variant:"outlined"},null,8,["modelValue","label","rules"]),n(C,{modelValue:o.value.port,"onUpdate:modelValue":e[2]||(e[2]=u=>o.value.port=u),label:t.$gettext("IMAP Port"),type:"number",variant:"outlined",rules:[_(S).required,_(S).portNumber]},null,8,["modelValue","label","rules"]),n(Q,{modelValue:o.value.secured,"onUpdate:modelValue":e[3]||(e[3]=u=>o.value.secured=u),label:t.$gettext("Secured"),color:"primary",hint:t.$gettext("Is the IMAP connection secured using SSL/TLS or StartTLS"),"persistent-hint":""},null,8,["modelValue","label","hint"]),I("div",W,[n(N,{loading:f.value,color:"primary",onClick:P},{loader:d(()=>[I("span",X,[n(x,{light:""},{default:d(()=>e[7]||(e[7]=[k("mdi-cached")])),_:1,__:[7]})])]),default:d(()=>[k(A(t.$gettext("Check connection:"))+" ",1),p.value===0?(v(),$(x,{key:0,color:"blue-grey-darken-2"},{default:d(()=>e[4]||(e[4]=[k(" mdi-help-circle-outline ")])),_:1,__:[4]})):p.value===1?(v(),$(x,{key:1,color:"success"},{default:d(()=>e[5]||(e[5]=[k(" mdi-check-all ")])),_:1,__:[5]})):(v(),$(x,{key:2,color:"warning"},{default:d(()=>e[6]||(e[6]=[k(" mdi-alert-circle-outline ")])),_:1,__:[6]}))]),_:1},8,["loading"])])]),_:1},512))}};export{me as _,ce as a,h as p,de as u};
1
+ import{C as y,E as T,n as q,h as m,G,b as K,z as j,l as b,o as v,a as n,w as d,f as _,F as w,s as E,c as $,k,t as A,i as M,e as I}from"./index-D9OmnhdE.js";import{d as O}from"./domains-DEEhRTFJ.js";import{V as C}from"./VTextField-BBIziqiv.js";import{V as z}from"./VAutocomplete-vTx-9foZ.js";import{V as F,r as S}from"./VForm-RVvaatfV.js";import{V as N,c as x}from"./VAvatar-Wz1UmZ2b.js";import{V as Y}from"./VSpacer-Pa16wvUF.js";import{V as H}from"./VChip-B1E7xQW1.js";import{V as J}from"./VInput-ssnfbpwr.js";import{V as Q}from"./VSwitch-C8Eq78Y3.js";const g="email-providers",h={getProviders(a){return y.get(`/${g}/`,{params:a})},getProvider(a){return y.get(`/${g}/${a}/`)},createProvider(a){return y.post(`/${g}/`,a)},updateProvider(a,l){return y.put(`/${g}/${a}/`,l)},patchProvider(a,l){return y.patch(`/${g}/${a}/`,l)},deleteProvider(a){return y.delete(`/${g}/${a}/`)},checkProvider(a){return y.post(`/${g}/check_connection/`,a)},checkAssociatedDomain(a){return y.post(`/${g}/check_associated_domain/`,a)}},de=T("providers",()=>{const a=q(),l=m(!1),i=m({}),{$gettext:o}=G;async function p(){l.value=!1,i.value={}}async function f(){return i.value={},l.value=!1,h.getProviders().then(t=>{for(const e of t.data)i.value[e.id]=e;return t}).finally(()=>l.value=!0)}async function r(t){return l.value=!1,h.createProvider(t).then(e=>(i.value[e.data.id]=e.data,e)).finally(()=>l.value=!0)}async function P(t){return l.value=!1,h.deleteProvider({id:t}).then(e=>(delete i.value[t],a.displayNotification({msg:o("Provider deleted")}),e)).finally(()=>l.value=!0)}return{providersLoaded:l,providers:i,getProviders:f,createProvider:r,deleteProvider:P,$reset:p}}),me={__name:"ProviderAssociatedForm",props:{modelValue:{type:Array,default:null}},emits:["update:modelValue"],setup(a,{expose:l,emit:i}){const{$gettext:o}=K(),p=a,f=i,r=m([]),P=m(),t=m(),e=m({name:"",new_domain:""}),u=m([]);j(()=>p.modelValue,s=>{s&&(r.value=[...s])},{immediate:!0});async function D(){await P.value.validate()&&h.checkAssociatedDomain(e.value).then(c=>{c.status===200&&(r.value.push({name:e.value.name,new_domain:e.value.new_domain}),f("update:modelValue",r.value),e.value={name:"",new_domain:""})})}function R(s){r.value.splice(s,1),f("update:modelValue",r.value)}function L(s){const c=s.keyCode;(c===13||c===9)&&(D(),s.preventDefault())}O.getDomains().then(s=>{u.value=s.data});function U(){return r.value.length===0?o("You need to bind at least one domain to the provider."):!0}return l({vFormRef:t}),(s,c)=>(v(),b(w,null,[n(F,{ref_key:"formRef",ref:P},{default:d(()=>[n(C,{ref:"initialdomainField",modelValue:e.value.name,"onUpdate:modelValue":c[0]||(c[0]=V=>e.value.name=V),placeholder:_(o)("Name of the domain to migrate"),variant:"outlined",density:"compact",onKeydown:L},null,8,["modelValue","placeholder"]),n(z,{modelValue:e.value.new_domain,"onUpdate:modelValue":c[1]||(c[1]=V=>e.value.new_domain=V),label:_(o)("Local domain (optional)"),items:u.value,"item-title":"name","return-object":"",variant:"outlined",density:"compact",clearable:"",onKeydown:L},null,8,["modelValue","label","items"])]),_:1},512),n(N,{icon:"mdi-plus",color:"primary",onClick:D}),n(Y),(v(!0),b(w,null,E(r.value,(V,B)=>(v(),$(H,{key:B,class:"mr-2 mt-2",closable:"","onClick:close":Z=>R(B)},{default:d(()=>[V.new_domain?(v(),b(w,{key:0},[k(A(V.name)+" --> "+A(V.new_domain.name),1)],64)):(v(),b(w,{key:1},[k(A(V.name),1)],64))]),_:2},1032,["onClick:close"]))),128)),n(F,{ref_key:"vFormRef",ref:t},{default:d(()=>[n(J,{rules:[U]},null,8,["rules"])]),_:1},512)],64))}},W={class:"my-7"},X={class:"custom-loader"},ce={__name:"ProviderGeneralForm",props:{modelValue:{type:Object,default:null}},setup(a,{expose:l}){const i=a,o=M(()=>i.modelValue),p=m(0),f=m(!1),r=m();async function P(){if(!await r.value.validate())return;f.value=!0;const e={address:o.value.address,port:o.value.port,secured:o.value.secured};h.checkProvider(e).then(()=>{p.value=1}).catch(u=>{console.log(u),p.value=2}).finally(()=>f.value=!1)}return l({vFormRef:r}),(t,e)=>(v(),$(F,{ref_key:"vFormRef",ref:r},{default:d(()=>[n(C,{modelValue:o.value.name,"onUpdate:modelValue":e[0]||(e[0]=u=>o.value.name=u),label:t.$gettext("Provider name"),variant:"outlined",rules:[_(S).required]},null,8,["modelValue","label","rules"]),n(C,{modelValue:o.value.address,"onUpdate:modelValue":e[1]||(e[1]=u=>o.value.address=u),label:t.$gettext("Address (hostname or IP)"),rules:[_(S).required],variant:"outlined"},null,8,["modelValue","label","rules"]),n(C,{modelValue:o.value.port,"onUpdate:modelValue":e[2]||(e[2]=u=>o.value.port=u),label:t.$gettext("IMAP Port"),type:"number",variant:"outlined",rules:[_(S).required,_(S).portNumber]},null,8,["modelValue","label","rules"]),n(Q,{modelValue:o.value.secured,"onUpdate:modelValue":e[3]||(e[3]=u=>o.value.secured=u),label:t.$gettext("Secured"),color:"primary",hint:t.$gettext("Is the IMAP connection secured using SSL/TLS or StartTLS"),"persistent-hint":""},null,8,["modelValue","label","hint"]),I("div",W,[n(N,{loading:f.value,color:"primary",onClick:P},{loader:d(()=>[I("span",X,[n(x,{light:""},{default:d(()=>e[7]||(e[7]=[k("mdi-cached")])),_:1,__:[7]})])]),default:d(()=>[k(A(t.$gettext("Check connection:"))+" ",1),p.value===0?(v(),$(x,{key:0,color:"blue-grey-darken-2"},{default:d(()=>e[4]||(e[4]=[k(" mdi-help-circle-outline ")])),_:1,__:[4]})):p.value===1?(v(),$(x,{key:1,color:"success"},{default:d(()=>e[5]||(e[5]=[k(" mdi-check-all ")])),_:1,__:[5]})):(v(),$(x,{key:2,color:"warning"},{default:d(()=>e[6]||(e[6]=[k(" mdi-alert-circle-outline ")])),_:1,__:[6]}))]),_:1},8,["loading"])])]),_:1},512))}};export{me as _,ce as a,h as p,de as u};
@@ -1 +1 @@
1
- import{b as U,n as M,h as A,g as x,c as k,o as u,w as e,a as o,f,v as L,e as q,l as h,s as O,F as B,k as p,t as g,q as W,_ as H}from"./index-LhNzkzAh.js";import{_ as J}from"./CreationForm-CW4lxnPg.js";import{u as z,_ as K,a as Q}from"./ProviderGeneralForm-BQU7t3ma.js";import{_ as X}from"./MenuItems-BqIZW5av.js";import{V as j}from"./VMenu-nv0XOgg0.js";import{V as N,c as E}from"./VAvatar-DbuoZWmf.js";import{V as T}from"./VChip-CaQvfmkw.js";import{V as G,a as Y}from"./VToolbar-BxX3W2kR.js";import{V as Z}from"./forwardRefs-CpzzjgpX.js";import{V as I}from"./VSpacer-CoJVmx8k.js";import{V as ee}from"./VTextField-DKbr4H5w.js";import{V as oe}from"./VDataTable-CL7yHvG7.js";import{a as te}from"./VCard-DzjUT5OP.js";import{V as ae}from"./VDialog-DmTGCGR0.js";import"./ConfirmDialog-CcPrCKuI.js";import"./VRow-DJ0NB63-.js";/* empty css */import"./tag-3cfI1_f7.js";import"./logos-Bvcy0usu.js";import"./VWindowItem-Cvqvdegd.js";import"./ssrBoot-BxIQ9ccA.js";import"./VContainer-74Dnn8Ux.js";import"./VSheet-DI6SxLnG.js";import"./VProgressCircular-qK6p5X_Y.js";import"./domains-C2cornvL.js";import"./VAutocomplete-DNKmBvyZ.js";import"./VSelect-CxCFMHyF.js";import"./VInput-DVKUObZe.js";import"./VCheckboxBtn-CpFdBnTv.js";import"./VSelectionControl-C-6A4us5.js";import"./filter-rmxrcjKk.js";import"./VForm-DsRLc-sa.js";import"./VSwitch-DPnjPQuU.js";import"./VTable-ldTxgQPW.js";const re={__name:"ProviderCreationForm",emits:["close"],setup(D,{emit:s}){const d=s,{$gettext:i}=U(),c=M(),v=z(),F=A(()=>{const n=[];let l=!0;for(const V of a.value.domains){const R=V.new_domain?`${V.name} => ${V.new_domain.name}`:`${V.name} ${i("(the domain will be created locally)")}`;n.push({key:l?i("Associated domain"):"",value:R}),l=!1}return n}),b=A(()=>[{title:i("General"),items:[{key:i("Name"),value:a.value.name},{key:i("Address"),value:a.value.address},{key:i("Port"),value:a.value.port},{key:i("Secured"),value:a.value.secured,type:"yesno"}]},{title:i("Associated domains"),items:F.value}]),P=[{name:"general",title:i("General")},{name:"associated",title:i("Associated domains")}],a=x({domains:[]}),$=x(),C=x(),S={general:$,associated:C};w();function w(){a.value={name:"",address:"",port:993,secured:!0,domains:[]}}function m(){w(),d("close")}function r(n){return S.value[n.name]}function t(n){return console.log(a.value),S[n.name].value.vFormRef}function _(){}function y(){const n={...a.value};n.domains=[];for(const l of a.value.domains)l.new_domain?n.domains.push({name:l.name,new_domain:l.new_domain.pk}):n.domains.push(l);v.createProvider(n).then(()=>{c.displayNotification({msg:i("Provider created")}),m()})}return(n,l)=>(u(),k(f(J),{ref:"form",title:f(i)("New provider"),steps:P,"form-getter":r,"get-v-form-ref":t,"validate-object":_,"summary-sections":b.value,onClose:m,onCreate:y},{"form.general":e(()=>[o(Q,{ref_key:"general",ref:$,modelValue:a.value,"onUpdate:modelValue":l[0]||(l[0]=V=>a.value=V),class:"ml-4"},null,8,["modelValue"])]),"form.associated":e(()=>[o(K,{ref_key:"associated",ref:C,modelValue:a.value.domains,"onUpdate:modelValue":l[1]||(l[1]=V=>a.value.domains=V)},null,8,["modelValue"])]),_:2},1032,["title","summary-sections"]))}},se=["colspan"],ie={__name:"ProvidersList",setup(D){const{$gettext:s}=U(),d=z(),i=W(),c=A(()=>d.providers),v=A(()=>d.providersLoaded),F=[{title:s("Name"),key:"name"},{title:s("Address"),key:"address"},{title:s("Port"),key:"port"},{title:s("Secured"),key:"secured"},{title:s("Associated domains"),key:"domains"},{title:s("Actions"),key:"actions",sortable:!1,align:"right"}],b=x([]),P=x(""),a=x([]);function $(m){d.deleteProvider(m.id)}function C(m){i.push({name:"ProviderEdit",params:{id:m.id}})}function S(){const m=[];return m.push({label:s("Delete"),icon:"mdi-delete-outline",onClick:$,color:"red"}),m.push({label:s("Edit"),icon:"mdi-circle-edit-outline",onClick:C}),m}function w(){d.getProviders()}return v.value||w(),(m,r)=>(u(),k(te,{class:"mt-6"},{default:e(()=>[o(oe,{modelValue:b.value,"onUpdate:modelValue":r[1]||(r[1]=t=>b.value=t),expanded:a.value,"onUpdate:expanded":r[2]||(r[2]=t=>a.value=t),headers:F,items:Object.values(c.value),search:P.value,loading:!v.value,"item-value":"name","single-expand":"","show-select":"","onClick:row":r[3]||(r[3]=(t,_)=>_.expand(!_.isExpanded))},{top:e(()=>[o(G,{color:"white",flat:""},{default:e(()=>[o(j,{location:"bottom"},{activator:e(({props:t})=>[o(N,L(t,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:e(()=>[p(g(f(s)("Actions")),1)]),_:2},1040)]),default:e(()=>[o(Z,{density:"compact"})]),_:1}),o(N,{variant:"text",icon:"mdi-reload",onClick:w}),o(I),o(ee,{modelValue:P.value,"onUpdate:modelValue":r[0]||(r[0]=t=>P.value=t),"prepend-inner-icon":"mdi-magnify",placeholder:f(s)("Search"),"single-line":"",variant:"outlined","hide-details":""},null,8,["modelValue","placeholder"])]),_:1})]),"item.secured":e(({item:t})=>[t.secured===!0?(u(),k(E,{key:0,color:"green"},{default:e(()=>r[4]||(r[4]=[p(" mdi-lock ")])),_:1,__:[4]})):(u(),k(E,{key:1,color:"red"},{default:e(()=>r[5]||(r[5]=[p(" mdi-lock-off ")])),_:1,__:[5]}))]),"item.domains":e(({item:t})=>[t.domains.length>0?(u(),k(T,{key:0},{default:e(()=>[p(g(t.domains.length)+" associated domain(s) ",1)]),_:2},1024)):(u(),k(T,{key:1},{default:e(()=>r[6]||(r[6]=[p(" No associated domain ")])),_:1,__:[6]}))]),"expanded-item":e(({headers:t,item:_})=>[q("td",{colspan:t.length},[(u(!0),h(B,null,O(_.domains,(y,n)=>(u(),k(T,{key:n},{default:e(()=>[y.new_domain?(u(),h(B,{key:0},[p(g(y.name)+" --> "+g(y.new_domain.name),1)],64)):(u(),h(B,{key:1},[p(g(y.name)+" --> "+g(y.name),1)],64))]),_:2},1024))),128))],8,se)]),"item.actions":e(({item:t})=>[o(j,{"offset-y":""},{activator:e(({props:_})=>[o(N,L({icon:"mdi-dots-horizontal",variant:"text"},_),null,16)]),default:e(()=>[o(f(X),{items:S(),obj:t},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["modelValue","expanded","items","search","loading"])]),_:1}))}},ne={__name:"ProvidersView",setup(D){const{$gettext:s}=U(),d=x(!1);return(i,c)=>(u(),h("div",null,[o(G,{flat:""},{default:e(()=>[o(Y,null,{default:e(()=>[p(g(f(s)("Providers")),1)]),_:1}),o(I),o(N,{color:"primary",variant:"flat","prepend-icon":"mdi-plus",onClick:c[0]||(c[0]=v=>d.value=!0)},{default:e(()=>[p(g(f(s)("New")),1)]),_:1})]),_:1}),o(f(ie)),o(ae,{modelValue:d.value,"onUpdate:modelValue":c[2]||(c[2]=v=>d.value=v),fullscreen:"",scrollable:"",transition:"dialog-bottom-transition"},{default:e(()=>[o(f(re),{onClose:c[1]||(c[1]=v=>d.value=!1)})]),_:1},8,["modelValue"])]))}},Re=H(ne,[["__scopeId","data-v-1a3ee9c1"]]);export{Re as default};
1
+ import{b as U,n as M,i as A,h as x,c as k,o as u,w as e,a as o,f,v as L,e as q,l as h,s as O,F as B,k as p,t as y,q as W,_ as H}from"./index-D9OmnhdE.js";import{_ as J}from"./CreationForm-BDQpHM1l.js";import{u as z,_ as K,a as Q}from"./ProviderGeneralForm-VpYAY2D4.js";import{_ as X}from"./MenuItems-Dg2GGDq6.js";import{V as j}from"./VMenu-BPG7b7dT.js";import{V as N,c as E}from"./VAvatar-Wz1UmZ2b.js";import{V as T}from"./VChip-B1E7xQW1.js";import{V as G,a as Y}from"./VToolbar-CILwTR5O.js";import{V as Z}from"./forwardRefs-GE5Osi9V.js";import{V as I}from"./VSpacer-Pa16wvUF.js";import{V as ee}from"./VTextField-BBIziqiv.js";import{V as oe}from"./VDataTable-CVJjOdhF.js";import{a as te}from"./VCard-BrQzTMsm.js";import{V as ae}from"./VDialog-BF9xR7BQ.js";import"./ConfirmDialog-CnWM982L.js";import"./VRow-DGPh2Qmm.js";/* empty css */import"./tag-jImTUiWx.js";import"./logos-BOVDV-my.js";import"./VWindowItem-l3wU5Kto.js";import"./ssrBoot-DaeAGyhc.js";import"./VContainer-f9kXL-37.js";import"./VSheet-C07oo1bg.js";import"./VProgressCircular-Bdwj7JuI.js";import"./domains-DEEhRTFJ.js";import"./VAutocomplete-vTx-9foZ.js";import"./VSelect-CzmrBwOO.js";import"./VInput-ssnfbpwr.js";import"./VCheckboxBtn-BMf4a9DP.js";import"./VSelectionControl-BIXXUgD4.js";import"./filter-CfvL3jIf.js";import"./VForm-RVvaatfV.js";import"./VSwitch-C8Eq78Y3.js";import"./VTable-C08Q6ok2.js";const re={__name:"ProviderCreationForm",emits:["close"],setup(D,{emit:s}){const d=s,{$gettext:i}=U(),c=M(),v=z(),F=A(()=>{const n=[];let l=!0;for(const V of a.value.domains){const R=V.new_domain?`${V.name} => ${V.new_domain.name}`:`${V.name} ${i("(the domain will be created locally)")}`;n.push({key:l?i("Associated domain"):"",value:R}),l=!1}return n}),b=A(()=>[{title:i("General"),items:[{key:i("Name"),value:a.value.name},{key:i("Address"),value:a.value.address},{key:i("Port"),value:a.value.port},{key:i("Secured"),value:a.value.secured,type:"yesno"}]},{title:i("Associated domains"),items:F.value}]),P=[{name:"general",title:i("General")},{name:"associated",title:i("Associated domains")}],a=x({domains:[]}),$=x(),C=x(),S={general:$,associated:C};w();function w(){a.value={name:"",address:"",port:993,secured:!0,domains:[]}}function m(){w(),d("close")}function r(n){return S.value[n.name]}function t(n){return console.log(a.value),S[n.name].value.vFormRef}function _(){}function g(){const n={...a.value};n.domains=[];for(const l of a.value.domains)l.new_domain?n.domains.push({name:l.name,new_domain:l.new_domain.pk}):n.domains.push(l);v.createProvider(n).then(()=>{c.displayNotification({msg:i("Provider created")}),m()})}return(n,l)=>(u(),k(f(J),{ref:"form",title:f(i)("New provider"),steps:P,"form-getter":r,"get-v-form-ref":t,"validate-object":_,"summary-sections":b.value,onClose:m,onCreate:g},{"form.general":e(()=>[o(Q,{ref_key:"general",ref:$,modelValue:a.value,"onUpdate:modelValue":l[0]||(l[0]=V=>a.value=V),class:"ml-4"},null,8,["modelValue"])]),"form.associated":e(()=>[o(K,{ref_key:"associated",ref:C,modelValue:a.value.domains,"onUpdate:modelValue":l[1]||(l[1]=V=>a.value.domains=V)},null,8,["modelValue"])]),_:2},1032,["title","summary-sections"]))}},se=["colspan"],ie={__name:"ProvidersList",setup(D){const{$gettext:s}=U(),d=z(),i=W(),c=A(()=>d.providers),v=A(()=>d.providersLoaded),F=[{title:s("Name"),key:"name"},{title:s("Address"),key:"address"},{title:s("Port"),key:"port"},{title:s("Secured"),key:"secured"},{title:s("Associated domains"),key:"domains"},{title:s("Actions"),key:"actions",sortable:!1,align:"right"}],b=x([]),P=x(""),a=x([]);function $(m){d.deleteProvider(m.id)}function C(m){i.push({name:"ProviderEdit",params:{id:m.id}})}function S(){const m=[];return m.push({label:s("Delete"),icon:"mdi-delete-outline",onClick:$,color:"red"}),m.push({label:s("Edit"),icon:"mdi-circle-edit-outline",onClick:C}),m}function w(){d.getProviders()}return v.value||w(),(m,r)=>(u(),k(te,{class:"mt-6"},{default:e(()=>[o(oe,{modelValue:b.value,"onUpdate:modelValue":r[1]||(r[1]=t=>b.value=t),expanded:a.value,"onUpdate:expanded":r[2]||(r[2]=t=>a.value=t),headers:F,items:Object.values(c.value),search:P.value,loading:!v.value,"item-value":"name","single-expand":"","show-select":"","onClick:row":r[3]||(r[3]=(t,_)=>_.expand(!_.isExpanded))},{top:e(()=>[o(G,{color:"white",flat:""},{default:e(()=>[o(j,{location:"bottom"},{activator:e(({props:t})=>[o(N,L(t,{variant:"flat","append-icon":"mdi-chevron-down",size:"small"}),{default:e(()=>[p(y(f(s)("Actions")),1)]),_:2},1040)]),default:e(()=>[o(Z,{density:"compact"})]),_:1}),o(N,{variant:"text",icon:"mdi-reload",onClick:w}),o(I),o(ee,{modelValue:P.value,"onUpdate:modelValue":r[0]||(r[0]=t=>P.value=t),"prepend-inner-icon":"mdi-magnify",placeholder:f(s)("Search"),"single-line":"",variant:"outlined","hide-details":""},null,8,["modelValue","placeholder"])]),_:1})]),"item.secured":e(({item:t})=>[t.secured===!0?(u(),k(E,{key:0,color:"green"},{default:e(()=>r[4]||(r[4]=[p(" mdi-lock ")])),_:1,__:[4]})):(u(),k(E,{key:1,color:"red"},{default:e(()=>r[5]||(r[5]=[p(" mdi-lock-off ")])),_:1,__:[5]}))]),"item.domains":e(({item:t})=>[t.domains.length>0?(u(),k(T,{key:0},{default:e(()=>[p(y(t.domains.length)+" associated domain(s) ",1)]),_:2},1024)):(u(),k(T,{key:1},{default:e(()=>r[6]||(r[6]=[p(" No associated domain ")])),_:1,__:[6]}))]),"expanded-item":e(({headers:t,item:_})=>[q("td",{colspan:t.length},[(u(!0),h(B,null,O(_.domains,(g,n)=>(u(),k(T,{key:n},{default:e(()=>[g.new_domain?(u(),h(B,{key:0},[p(y(g.name)+" --> "+y(g.new_domain.name),1)],64)):(u(),h(B,{key:1},[p(y(g.name)+" --> "+y(g.name),1)],64))]),_:2},1024))),128))],8,se)]),"item.actions":e(({item:t})=>[o(j,{"offset-y":""},{activator:e(({props:_})=>[o(N,L({icon:"mdi-dots-horizontal",variant:"text"},_),null,16)]),default:e(()=>[o(f(X),{items:S(),obj:t},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["modelValue","expanded","items","search","loading"])]),_:1}))}},ne={__name:"ProvidersView",setup(D){const{$gettext:s}=U(),d=x(!1);return(i,c)=>(u(),h("div",null,[o(G,{flat:""},{default:e(()=>[o(Y,null,{default:e(()=>[p(y(f(s)("Providers")),1)]),_:1}),o(I),o(N,{color:"primary",variant:"flat","prepend-icon":"mdi-plus",onClick:c[0]||(c[0]=v=>d.value=!0)},{default:e(()=>[p(y(f(s)("New")),1)]),_:1})]),_:1}),o(f(ie)),o(ae,{modelValue:d.value,"onUpdate:modelValue":c[2]||(c[2]=v=>d.value=v),fullscreen:"",scrollable:"",transition:"dialog-bottom-transition"},{default:e(()=>[o(f(re),{onClose:c[1]||(c[1]=v=>d.value=!1)})]),_:1},8,["modelValue"])]))}},Re=H(ne,[["__scopeId","data-v-1a3ee9c1"]]);export{Re as default};
@@ -0,0 +1 @@
1
+ import{_ as r}from"./ConnectedLayout-CiKHST8t.js";import{c as o,w as m,o as p,k as i}from"./index-D9OmnhdE.js";import"./theme-tqh89n3L.js";import"./VContainer-f9kXL-37.js";/* empty css */import"./tag-jImTUiWx.js";import"./VApp-1CFpPM0s.js";import"./layout-CuwY6Rle.js";import"./ssrBoot-DaeAGyhc.js";import"./logos-BOVDV-my.js";import"./layout.store-uEYOXtgD.js";import"./VAvatar-Wz1UmZ2b.js";import"./VProgressCircular-Bdwj7JuI.js";import"./forwardRefs-GE5Osi9V.js";import"./VMenu-BPG7b7dT.js";import"./global.store-CxPrtY0_.js";import"./VBadge-C08Ii4Nb.js";import"./VCard-BrQzTMsm.js";import"./VRow-DGPh2Qmm.js";import"./VSheet-C07oo1bg.js";const V={__name:"QuarantineLayout",setup(a){return(e,t)=>(p(),o(r,null,{navbar:m(()=>t[0]||(t[0]=[i(" ")])),_:1}))}};export{V as default};
@@ -1 +1 @@
1
- import{b as me,u as pe,n as fe,j as ve,g as n,z as ye,B as G,c as h,w as o,a as l,k as _,t as c,e as k,m as A,aQ as ge,f as r,v as N,l as Y,s as be,F as he,q as W,i as E,o as m}from"./index-LhNzkzAh.js";import{d as ke}from"./index-DuzUMVLM.js";import{u as _e}from"./amavis-DCVJxuui.js";import{_ as Ve}from"./ConfirmDialog-CcPrCKuI.js";import{a as R}from"./amavis-BhzV4rgf.js";import{c as $,V as M}from"./VAvatar-DbuoZWmf.js";import{V as x}from"./VChip-CaQvfmkw.js";import{V as we}from"./VTextField-DKbr4H5w.js";import{V as I}from"./VMenu-nv0XOgg0.js";import{a as O,V as Se}from"./VCard-DzjUT5OP.js";import{a as K,V as b}from"./VRadioGroup-CbiPLy0t.js";import{V as Ce,a as z}from"./forwardRefs-CpzzjgpX.js";import{V as Re}from"./VSelect-CxCFMHyF.js";import{V as Me}from"./VDataTableServer-BqvNcIdw.js";import"./permissions-DQjAcO9S.js";import"./parameters-C8IYEP7q.js";import"./VToolbar-BxX3W2kR.js";import"./tag-3cfI1_f7.js";import"./VProgressCircular-qK6p5X_Y.js";import"./VSpacer-CoJVmx8k.js";/* empty css */import"./VDialog-DmTGCGR0.js";import"./VInput-DVKUObZe.js";import"./VSelectionControl-C-6A4us5.js";import"./ssrBoot-BxIQ9ccA.js";import"./VCheckboxBtn-CpFdBnTv.js";import"./VDataTable-CL7yHvG7.js";import"./VTable-ldTxgQPW.js";import"./filter-rmxrcjKk.js";const xe={class:"d-flex my-4"},Be={class:"mr-2"},Ue=["title"],Te=["title"],je={__name:"QuarantineList",async setup(J){let p,V;const{$gettext:s}=me(),w=W(),B=G(),P=pe(),{displayNotification:S}=fe(),{manualLearningEnabled:D,learningRecipients:X}=([p,V]=ve(()=>_e()),p=await p,V(),p),U=n(1),T=n(10),f=n(null),Q=n(null),i=n(!1),F=n([]),v=n(""),j=n("both"),u=n([]),y=n([]),H=n(0),C=n("all"),Z=[{color:"",key:"all",label:"All"},{color:"success",key:"C",label:"Clean"},{color:"error",key:"S",label:"Spam"},{color:"warning",key:"Y",label:"Spammy"},{color:"error",key:"V",label:"Virus"},{color:"warning",key:"H",label:"Bad Header"},{color:"warning",key:"M",label:"Bad MIME"},{color:"warning",key:"B",label:"Banned"},{color:"warning",key:"O",label:"Over sized"},{color:"warning",key:"T",label:"MTA error"},{color:"",key:"U",label:"Unchecked"}],ee=[{title:"",key:"type",width:"5%"},{title:"",key:"status",width:"5%"},{title:s("Score"),key:"score"},{title:s("To"),key:"to_address"},{title:s("From"),key:"from_address"},{title:s("Subject"),key:"subject"},{title:s("Date"),key:"datetime"}];ye(()=>B.query.requests,()=>{d()});const ae=({item:a})=>({class:a.style}),te=()=>({class:"clickable"}),le=a=>["S","V"].includes(a)?"error":["Y","H","M","B","O","T"].includes(a)?"warning":a==="C"?"success":"",se=a=>a.status==="R"?"mdi-reply":a.status==="S"?"mdi-thumb-down-outline":a.status==="H"?"mdi-thumb-up-outline":"",oe=a=>a.status==="R"?s("Message released"):a.status==="S"?s("Message marked as spam"):a.status==="H"?s("Message marked as non-spam"):"",re=async({page:a,itemsPerPage:t,sortBy:e})=>{U.value=a,T.value=t,y.value=e,d()},d=ke(async()=>{var t;i.value=!0;const a={page:U.value||1,page_size:T.value||10};y.value&&y.value.length&&(a.ordering=y.value.map(e=>e.order!=="asc"?`-${e.key}`:e.key).join(",")),v.value!==""&&(a.search=v.value,a.criteria=j.value),C.value!=="all"&&(a.msgtype=C.value),((t=B.query)==null?void 0:t.requests)==="1"&&(a.viewrequests=1);try{const e=await R.getQuarantineContent(a);F.value=e.data.results,H.value=e.data.count,u.value=[]}finally{i.value=!1}},500),ne=(a,{item:t})=>{w.push({name:"QuarantineMessageView",params:{mailid:t.mailid,rcpt:t.to_address}})},q=()=>{const a={selection:[]};for(const t of u.value)a.selection.push({rcpt:t.to_address,mailid:t.mailid});return a},ie=async()=>{i.value=!0;const a=q();try{await R.deleteSelection(a),d(),S({msg:s("Selection deleted")})}finally{i.value=!1}},ue=async()=>{i.value=!0;const a=q();try{const t=await R.releaseSelection(a);d(),t.data.status==="pending"?S({msg:s("Release request sent")}):S({msg:s("Selection released")})}finally{i.value=!1}},L=async a=>{D.value&&P.authUser.role!==E.USER&&(f.value=P.authUser.role===E.SUPER_ADMIN?"global":"domain",await Q.value.open(s("Learning database"),s("Which database should be used for this learning:"),{width:600,noconfirm:!0})),i.value=!0;const t=q();t.type=a,f.value&&(t.database=f.value);try{await R.markMessageSelection(t),S({msg:s("Selection is being processed...")}),u.value=[]}finally{i.value=!1}},ce=async()=>{await L("spam")},de=async()=>{await L("ham")};return(a,t)=>(m(),h(O,{class:"mt-6"},{default:o(()=>[l(Me,{modelValue:u.value,"onUpdate:modelValue":t[3]||(t[3]=e=>u.value=e),headers:ee,items:F.value,search:v.value,loading:i.value,"items-length":H.value,page:U.value,"items-per-page":T.value,"item-value":"mailid",elevation:"0","show-select":"","return-object":"",density:"compact","sort-by":y.value,"row-props":ae,"cell-props":te,"onUpdate:options":re,"onClick:row":ne},{top:o(()=>[k("div",xe,[l(we,{modelValue:v.value,"onUpdate:modelValue":t[1]||(t[1]=e=>v.value=e),placeholder:r(s)("Search in messages"),variant:"outlined","single-line":"","hide-details":"",class:"flex-grow-0 w-33 mr-4",clearable:"",density:"compact","onClick:clear":r(d),onKeyup:ge(r(d),["enter"])},{"prepend-inner":o(()=>[l(M,{icon:"",variant:"flat",size:"small"},{default:o(()=>[l($,{icon:"mdi-magnify"}),l(I,{activator:"parent"},{default:o(()=>[l(O,null,{default:o(()=>[l(Se,null,{default:o(()=>[l(K,{modelValue:j.value,"onUpdate:modelValue":t[0]||(t[0]=e=>j.value=e)},{default:o(()=>[l(b,{label:r(s)("From address"),value:"from_addr"},null,8,["label"]),l(b,{label:r(s)("Subject"),value:"subject"},null,8,["label"]),l(b,{label:r(s)("To"),value:"to"},null,8,["label"]),l(b,{label:r(s)("both"),value:"both"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","placeholder","onClick:clear","onKeyup"]),l(M,{class:"ml-2",color:"success",variant:"tonal",icon:"mdi-check",size:"small",disabled:u.value.length===0,title:r(s)("Release selection"),loading:i.value,onClick:ue},null,8,["disabled","title","loading"]),l(M,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",disabled:u.value.length===0,title:r(s)("Delete selection"),loading:i.value,onClick:ie},null,8,["disabled","title","loading"]),r(D)?(m(),h(M,{key:0,class:"ml-2",size:"small",variant:"tonal",icon:"",disabled:u.value.length===0},{default:o(()=>[l($,{icon:"mdi-cog"}),l(I,{activator:"parent"},{default:o(()=>[l(Ce,null,{default:o(()=>[l(z,{title:r(s)("Mark as spam"),onClick:ce},null,8,["title"]),l(z,{title:r(s)("Mark as not spam"),onClick:de},null,8,["title"])]),_:1})]),_:1})]),_:1},8,["disabled"])):A("",!0),l(Re,{modelValue:C.value,"onUpdate:modelValue":[t[2]||(t[2]=e=>C.value=e),r(d)],variant:"outlined",items:Z,class:"ml-2 flex-grow-0",density:"compact","item-title":"label","item-value":"key",chips:"","hide-details":""},{chip:o(({props:e,item:g})=>[k("span",Be,c(r(s)("Display")),1),l(x,N(e,{color:g.raw.color,text:g.raw.label,label:""}),null,16,["color","text"])]),item:o(({props:e,item:g})=>[l(z,N(e,{title:""}),{default:o(()=>[l(x,{color:g.raw.color,label:""},{default:o(()=>[_(c(g.raw.label),1)]),_:2},1032,["color"])]),_:2},1040)]),_:1},8,["modelValue","onUpdate:modelValue"])])]),"item.type":o(({item:e})=>[l(x,{color:le(e.type),size:"small",label:""},{default:o(()=>[_(c(e.type),1)]),_:2},1032,["color"])]),"item.status":o(({item:e})=>[e.status?(m(),h($,{key:0,icon:se(e),title:oe(e),size:"small"},null,8,["icon","title"])):A("",!0)]),"item.from_address":o(({item:e})=>[k("span",{title:e.from_address},c(a.$truncate(e.from_address,30)),9,Ue)]),"item.subject":o(({item:e})=>[k("span",{title:e.subject},c(a.$truncate(e.subject,30)),9,Te)]),"item.datetime":o(({item:e})=>[_(c(a.$date(e.datetime)),1)]),_:2},1032,["modelValue","items","search","loading","items-length","page","items-per-page","sort-by"]),l(r(Ve),{ref_key:"learningRecipientRef",ref:Q},{default:o(()=>[l(K,{modelValue:f.value,"onUpdate:modelValue":t[4]||(t[4]=e=>f.value=e),class:"mt-4","hide-details":""},{default:o(()=>[(m(!0),Y(he,null,be(r(X),e=>(m(),h(b,{key:e.value,value:e.value,label:e.title},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1},512)]),_:1}))}},qe={class:"text-h5 ml-4"},ca={__name:"QuarantineView",setup(J){const p=G(),V=W(),s=()=>{V.replace({name:"QuarantineView"})};return(w,B)=>(m(),Y("div",null,[k("div",qe,[_(c(w.$gettext("Quarantine"))+" ",1),r(p).query.requests==="1"?(m(),h(x,{key:0,color:"primary",variant:"tonal",class:"ml-2",closable:"","onClick:close":s},{default:o(()=>[_(c(w.$gettext("release requests")),1)]),_:1})):A("",!0)]),l(r(je))]))}};export{ca as default};
1
+ import{b as me,u as pe,n as fe,g as ve,h as n,z as ye,B as G,c as h,w as o,a as l,k as _,t as c,e as k,m as A,aQ as ge,f as r,v as N,l as Y,s as be,F as he,q as W,j as E,o as m}from"./index-D9OmnhdE.js";import{d as ke}from"./index-DuzUMVLM.js";import{u as _e}from"./amavis-BOgLfXLH.js";import{_ as Ve}from"./ConfirmDialog-CnWM982L.js";import{a as R}from"./amavis-w7390k8i.js";import{c as $,V as M}from"./VAvatar-Wz1UmZ2b.js";import{V as x}from"./VChip-B1E7xQW1.js";import{V as we}from"./VTextField-BBIziqiv.js";import{V as I}from"./VMenu-BPG7b7dT.js";import{a as O,V as Se}from"./VCard-BrQzTMsm.js";import{a as K,V as b}from"./VRadioGroup-BdEZyWNi.js";import{V as Ce,a as z}from"./forwardRefs-GE5Osi9V.js";import{V as Re}from"./VSelect-CzmrBwOO.js";import{V as Me}from"./VDataTableServer-BSZUbic1.js";import"./permissions-B-P8ks2E.js";import"./parameters-DlTg3gyZ.js";import"./VToolbar-CILwTR5O.js";import"./tag-jImTUiWx.js";import"./VProgressCircular-Bdwj7JuI.js";import"./VSpacer-Pa16wvUF.js";/* empty css */import"./VDialog-BF9xR7BQ.js";import"./VInput-ssnfbpwr.js";import"./VSelectionControl-BIXXUgD4.js";import"./ssrBoot-DaeAGyhc.js";import"./VCheckboxBtn-BMf4a9DP.js";import"./VDataTable-CVJjOdhF.js";import"./VTable-C08Q6ok2.js";import"./filter-CfvL3jIf.js";const xe={class:"d-flex my-4"},Be={class:"mr-2"},Ue=["title"],Te=["title"],je={__name:"QuarantineList",async setup(J){let p,V;const{$gettext:s}=me(),w=W(),B=G(),P=pe(),{displayNotification:S}=fe(),{manualLearningEnabled:D,learningRecipients:X}=([p,V]=ve(()=>_e()),p=await p,V(),p),U=n(1),T=n(10),f=n(null),Q=n(null),i=n(!1),F=n([]),v=n(""),j=n("both"),u=n([]),y=n([]),H=n(0),C=n("all"),Z=[{color:"",key:"all",label:"All"},{color:"success",key:"C",label:"Clean"},{color:"error",key:"S",label:"Spam"},{color:"warning",key:"Y",label:"Spammy"},{color:"error",key:"V",label:"Virus"},{color:"warning",key:"H",label:"Bad Header"},{color:"warning",key:"M",label:"Bad MIME"},{color:"warning",key:"B",label:"Banned"},{color:"warning",key:"O",label:"Over sized"},{color:"warning",key:"T",label:"MTA error"},{color:"",key:"U",label:"Unchecked"}],ee=[{title:"",key:"type",width:"5%"},{title:"",key:"status",width:"5%"},{title:s("Score"),key:"score"},{title:s("To"),key:"to_address"},{title:s("From"),key:"from_address"},{title:s("Subject"),key:"subject"},{title:s("Date"),key:"datetime"}];ye(()=>B.query.requests,()=>{d()});const ae=({item:a})=>({class:a.style}),te=()=>({class:"clickable"}),le=a=>["S","V"].includes(a)?"error":["Y","H","M","B","O","T"].includes(a)?"warning":a==="C"?"success":"",se=a=>a.status==="R"?"mdi-reply":a.status==="S"?"mdi-thumb-down-outline":a.status==="H"?"mdi-thumb-up-outline":"",oe=a=>a.status==="R"?s("Message released"):a.status==="S"?s("Message marked as spam"):a.status==="H"?s("Message marked as non-spam"):"",re=async({page:a,itemsPerPage:t,sortBy:e})=>{U.value=a,T.value=t,y.value=e,d()},d=ke(async()=>{var t;i.value=!0;const a={page:U.value||1,page_size:T.value||10};y.value&&y.value.length&&(a.ordering=y.value.map(e=>e.order!=="asc"?`-${e.key}`:e.key).join(",")),v.value!==""&&(a.search=v.value,a.criteria=j.value),C.value!=="all"&&(a.msgtype=C.value),((t=B.query)==null?void 0:t.requests)==="1"&&(a.viewrequests=1);try{const e=await R.getQuarantineContent(a);F.value=e.data.results,H.value=e.data.count,u.value=[]}finally{i.value=!1}},500),ne=(a,{item:t})=>{w.push({name:"QuarantineMessageView",params:{mailid:t.mailid,rcpt:t.to_address}})},q=()=>{const a={selection:[]};for(const t of u.value)a.selection.push({rcpt:t.to_address,mailid:t.mailid});return a},ie=async()=>{i.value=!0;const a=q();try{await R.deleteSelection(a),d(),S({msg:s("Selection deleted")})}finally{i.value=!1}},ue=async()=>{i.value=!0;const a=q();try{const t=await R.releaseSelection(a);d(),t.data.status==="pending"?S({msg:s("Release request sent")}):S({msg:s("Selection released")})}finally{i.value=!1}},L=async a=>{D.value&&P.authUser.role!==E.USER&&(f.value=P.authUser.role===E.SUPER_ADMIN?"global":"domain",await Q.value.open(s("Learning database"),s("Which database should be used for this learning:"),{width:600,noconfirm:!0})),i.value=!0;const t=q();t.type=a,f.value&&(t.database=f.value);try{await R.markMessageSelection(t),S({msg:s("Selection is being processed...")}),u.value=[]}finally{i.value=!1}},ce=async()=>{await L("spam")},de=async()=>{await L("ham")};return(a,t)=>(m(),h(O,{class:"mt-6"},{default:o(()=>[l(Me,{modelValue:u.value,"onUpdate:modelValue":t[3]||(t[3]=e=>u.value=e),headers:ee,items:F.value,search:v.value,loading:i.value,"items-length":H.value,page:U.value,"items-per-page":T.value,"item-value":"mailid",elevation:"0","show-select":"","return-object":"",density:"compact","sort-by":y.value,"row-props":ae,"cell-props":te,"onUpdate:options":re,"onClick:row":ne},{top:o(()=>[k("div",xe,[l(we,{modelValue:v.value,"onUpdate:modelValue":t[1]||(t[1]=e=>v.value=e),placeholder:r(s)("Search in messages"),variant:"outlined","single-line":"","hide-details":"",class:"flex-grow-0 w-33 mr-4",clearable:"",density:"compact","onClick:clear":r(d),onKeyup:ge(r(d),["enter"])},{"prepend-inner":o(()=>[l(M,{icon:"",variant:"flat",size:"small"},{default:o(()=>[l($,{icon:"mdi-magnify"}),l(I,{activator:"parent"},{default:o(()=>[l(O,null,{default:o(()=>[l(Se,null,{default:o(()=>[l(K,{modelValue:j.value,"onUpdate:modelValue":t[0]||(t[0]=e=>j.value=e)},{default:o(()=>[l(b,{label:r(s)("From address"),value:"from_addr"},null,8,["label"]),l(b,{label:r(s)("Subject"),value:"subject"},null,8,["label"]),l(b,{label:r(s)("To"),value:"to"},null,8,["label"]),l(b,{label:r(s)("both"),value:"both"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue","placeholder","onClick:clear","onKeyup"]),l(M,{class:"ml-2",color:"success",variant:"tonal",icon:"mdi-check",size:"small",disabled:u.value.length===0,title:r(s)("Release selection"),loading:i.value,onClick:ue},null,8,["disabled","title","loading"]),l(M,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",disabled:u.value.length===0,title:r(s)("Delete selection"),loading:i.value,onClick:ie},null,8,["disabled","title","loading"]),r(D)?(m(),h(M,{key:0,class:"ml-2",size:"small",variant:"tonal",icon:"",disabled:u.value.length===0},{default:o(()=>[l($,{icon:"mdi-cog"}),l(I,{activator:"parent"},{default:o(()=>[l(Ce,null,{default:o(()=>[l(z,{title:r(s)("Mark as spam"),onClick:ce},null,8,["title"]),l(z,{title:r(s)("Mark as not spam"),onClick:de},null,8,["title"])]),_:1})]),_:1})]),_:1},8,["disabled"])):A("",!0),l(Re,{modelValue:C.value,"onUpdate:modelValue":[t[2]||(t[2]=e=>C.value=e),r(d)],variant:"outlined",items:Z,class:"ml-2 flex-grow-0",density:"compact","item-title":"label","item-value":"key",chips:"","hide-details":""},{chip:o(({props:e,item:g})=>[k("span",Be,c(r(s)("Display")),1),l(x,N(e,{color:g.raw.color,text:g.raw.label,label:""}),null,16,["color","text"])]),item:o(({props:e,item:g})=>[l(z,N(e,{title:""}),{default:o(()=>[l(x,{color:g.raw.color,label:""},{default:o(()=>[_(c(g.raw.label),1)]),_:2},1032,["color"])]),_:2},1040)]),_:1},8,["modelValue","onUpdate:modelValue"])])]),"item.type":o(({item:e})=>[l(x,{color:le(e.type),size:"small",label:""},{default:o(()=>[_(c(e.type),1)]),_:2},1032,["color"])]),"item.status":o(({item:e})=>[e.status?(m(),h($,{key:0,icon:se(e),title:oe(e),size:"small"},null,8,["icon","title"])):A("",!0)]),"item.from_address":o(({item:e})=>[k("span",{title:e.from_address},c(a.$truncate(e.from_address,30)),9,Ue)]),"item.subject":o(({item:e})=>[k("span",{title:e.subject},c(a.$truncate(e.subject,30)),9,Te)]),"item.datetime":o(({item:e})=>[_(c(a.$date(e.datetime)),1)]),_:2},1032,["modelValue","items","search","loading","items-length","page","items-per-page","sort-by"]),l(r(Ve),{ref_key:"learningRecipientRef",ref:Q},{default:o(()=>[l(K,{modelValue:f.value,"onUpdate:modelValue":t[4]||(t[4]=e=>f.value=e),class:"mt-4","hide-details":""},{default:o(()=>[(m(!0),Y(he,null,be(r(X),e=>(m(),h(b,{key:e.value,value:e.value,label:e.title},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1},512)]),_:1}))}},qe={class:"text-h5 ml-4"},ca={__name:"QuarantineView",setup(J){const p=G(),V=W(),s=()=>{V.replace({name:"QuarantineView"})};return(w,B)=>(m(),Y("div",null,[k("div",qe,[_(c(w.$gettext("Quarantine"))+" ",1),r(p).query.requests==="1"?(m(),h(x,{key:0,color:"primary",variant:"tonal",class:"ml-2",closable:"","onClick:close":s},{default:o(()=>[_(c(w.$gettext("release requests")),1)]),_:1})):A("",!0)]),l(r(je))]))}};export{ca as default};
@@ -0,0 +1 @@
1
+ import{h as e,c as a,f as p,B as l,o as n}from"./index-D9OmnhdE.js";import{_ as s}from"./ComposeEmailForm-DkLwcddN.js";import{a as u}from"./webmail-Dqo8FjAw.js";import"./index-DuzUMVLM.js";import"./VForm-RVvaatfV.js";import"./tag-jImTUiWx.js";import"./VInput-ssnfbpwr.js";import"./VAvatar-Wz1UmZ2b.js";import"./VProgressCircular-Bdwj7JuI.js";import"./forwardRefs-GE5Osi9V.js";import"./ssrBoot-DaeAGyhc.js";import"./VCard-BrQzTMsm.js";import"./VFileInput-CXyx9q4a.js";import"./VTextField-BBIziqiv.js";import"./VChip-B1E7xQW1.js";import"./VTable-C08Q6ok2.js";import"./VSpacer-Pa16wvUF.js";/* empty css */import"./HtmlEditor-CXZVsQx7.js";import"./VTextarea-PURjBZRs.js";import"./contacts-Ch-bKxJM.js";import"./VToolbar-CILwTR5O.js";import"./VRow-DGPh2Qmm.js";import"./VSelect-CzmrBwOO.js";import"./VMenu-BPG7b7dT.js";import"./VCheckboxBtn-BMf4a9DP.js";import"./VSelectionControl-BIXXUgD4.js";import"./filter-CfvL3jIf.js";import"./VDialog-BF9xR7BQ.js";const J={__name:"ReplyEmailView",setup(c){const t=l(),o=e(),r=i=>{o.value="",u.getEmailContent(t.query.mailbox,t.query.mailid,{context:"reply",dformat:i?"html":"plain"}).then(m=>{o.value=m.data})};return r(),(i,m)=>(n(),a(p(s),{"original-email":o.value,"reply-all":p(t).query.all==="true",onOnToggleHtmlMode:r},null,8,["original-email","reply-all"]))}};export{J as default};
@@ -0,0 +1 @@
1
+ import{r as p,V as i}from"./VForm-RVvaatfV.js";import{V as _}from"./VTextField-BBIziqiv.js";import{i as f,h as V,c as v,o as l,w as x,l as o,F as s,s as F,e as y,a as b,t as k,f as h}from"./index-D9OmnhdE.js";const B={class:"m-label"},U={__name:"ResourcesForm",props:{modelValue:{type:Object,default:null}},setup(n,{expose:u}){const m=n,t=f(()=>m.modelValue),r=V();function c(){return t.value.map(a=>({name:a.name,max_value:a.max_value}))}return u({vFormRef:r,getPayload:c}),(a,g)=>(l(),v(i,{ref_key:"vFormRef",ref:r},{default:x(()=>[(l(!0),o(s,null,F(t.value,e=>(l(),o(s,{key:e.name},[y("label",B,k(e.label),1),b(_,{modelValue:e.max_value,"onUpdate:modelValue":d=>e.max_value=d,type:"number",variant:"outlined",dense:"",rules:[h(p).required]},null,8,["modelValue","onUpdate:modelValue","rules"])],64))),128))]),_:1},512))}};export{U as _};
@@ -0,0 +1 @@
1
+ import{_ as p}from"./ConnectedLayout-CiKHST8t.js";import{c as m,w as r,o as i,k as o}from"./index-D9OmnhdE.js";import"./theme-tqh89n3L.js";import"./VContainer-f9kXL-37.js";/* empty css */import"./tag-jImTUiWx.js";import"./VApp-1CFpPM0s.js";import"./layout-CuwY6Rle.js";import"./ssrBoot-DaeAGyhc.js";import"./logos-BOVDV-my.js";import"./layout.store-uEYOXtgD.js";import"./VAvatar-Wz1UmZ2b.js";import"./VProgressCircular-Bdwj7JuI.js";import"./forwardRefs-GE5Osi9V.js";import"./VMenu-BPG7b7dT.js";import"./global.store-CxPrtY0_.js";import"./VBadge-C08Ii4Nb.js";import"./VCard-BrQzTMsm.js";import"./VRow-DGPh2Qmm.js";import"./VSheet-C07oo1bg.js";const V={__name:"SelfServiceLayout",setup(a){return(e,t)=>(i(),m(p,null,{navbar:r(()=>t[0]||(t[0]=[o(" ")])),topbar:r(()=>t[1]||(t[1]=[o(" ")])),_:1}))}};export{V as default};
@@ -1,6 +1,6 @@
1
- import{C as Le,b as J,n as te,u as se,h as Y,g as y,d as ce,z as me,c as x,o as M,w as d,a as i,k as P,t as g,f,p as de,e as E,ae as ge,af as B,$ as Re,F as O,I as ze,J as Be,O as Qe,K as He,T as Ke,a7 as ae,a0 as Ge,ag as Ye,a1 as qe,v as ke,U as We,y as Je,ah as Ae,l as D,m as G,s as Me,ad as H,N as Xe,ai as Ze,_ as je,i as Ee}from"./index-LhNzkzAh.js";import{_ as et}from"./AccountPasswordSubForm-YsaE_cDx.js";import{V as Z,r as j}from"./VForm-DsRLc-sa.js";import{V as Ve,c as Pe,a as Se,b as tt}from"./VExpansionPanels-B7sSTCwd.js";import{V as Q,a as at,m as ot}from"./VTextField-DKbr4H5w.js";import{V as nt}from"./VAutocomplete-DNKmBvyZ.js";import{V as L,c as he}from"./VAvatar-DbuoZWmf.js";import{c as fe,V as q,a as W,b as ye}from"./VCard-DzjUT5OP.js";import{V as ue,a as re}from"./VRow-DJ0NB63-.js";import{V as X}from"./VAlert-4r6LxKtg.js";import{a as lt}from"./VMenu-nv0XOgg0.js";import{V as rt}from"./VProgressCircular-qK6p5X_Y.js";import{a as st,u as it,m as ut}from"./tag-3cfI1_f7.js";import{u as dt,m as ct}from"./VInput-DVKUObZe.js";import{V as Ne}from"./VTable-ldTxgQPW.js";import{V as ft}from"./VSpacer-CoJVmx8k.js";import{V as Fe}from"./VDialog-DmTGCGR0.js";import{V as Te}from"./VTextarea-BttkFsM4.js";import{V as Ie}from"./VCheckbox-dr7UFjl4.js";import{_ as pe}from"./ConfirmDialog-CcPrCKuI.js";import{V as vt}from"./VDataTableVirtual--KsOP8i6.js";import{V as mt,a as ht}from"./VToolbar-BxX3W2kR.js";import{V as pt,a as gt,b as ne,c as le}from"./VTabs-aS8WSL9I.js";import"./accounts-CC2F0a0c.js";import"./VSwitch-DPnjPQuU.js";import"./VSelectionControl-C-6A4us5.js";import"./forwardRefs-CpzzjgpX.js";import"./ssrBoot-BxIQ9ccA.js";import"./VSelect-CxCFMHyF.js";import"./VCheckboxBtn-CpFdBnTv.js";import"./VChip-CaQvfmkw.js";import"./filter-rmxrcjKk.js";/* empty css */import"./VDataTable-CL7yHvG7.js";import"./VWindowItem-Cvqvdegd.js";const yt="languages",_t={getAll(){return Le.get(`/${yt}/`)}},bt={class:"m-label"},wt={class:"m-label"},Ct={class:"m-label"},kt={class:"text-disabled"},At={href:"https://explore.transifex.com/tonio/modoboa/",target:"_blank"},Et={href:"https://github.com/modoboa/modoboa/issues/new/choose",target:"_blank"},Vt={class:"m-label"},Pt={class:"m-label"},St={__name:"ProfileForm",setup(r){const{$gettext:s,available:v}=J(),l=te(),m=se(),p=Y(()=>m.authUser),o=y({}),e=y(),t=y(),a=y({}),n=y([]),u=y(0),c=y(!1),h=y(!1),w=y("");function C(R){o.value={first_name:R.first_name,last_name:R.last_name,language:R.language,phone_number:R.phone_number,secondary_email:R.secondary_email}}async function F(){const{valid:R}=await e.value.validate();R&&(c.value=!0,m.updateAccount(o.value).then(()=>{l.displayNotification({msg:s("Profile updated")}),m.accountLanguage in v||(w.value=s("Language does no exist"))}).finally(()=>c.value=!1))}async function T(){const{valid:R}=await t.value.validate();if(R){h.value=!0;try{await m.updatePassword({password:o.value.password,new_password:o.value.new_password}),l.displayNotification({msg:s("Password updated")}),t.value.reset()}catch(_){_.status===400&&(a.value=_.response.data)}finally{h.value=!1}}}return ce(()=>{C(p.value),_t.getAll().then(R=>{n.value=R.data})}),me(()=>p,R=>{R?C(R):o.value={}}),(R,_)=>(M(),x(tt,{modelValue:u.value,"onUpdate:modelValue":_[6]||(_[6]=k=>u.value=k),flat:""},{default:d(()=>[i(Ve,null,{default:d(()=>[i(Pe,null,{default:d(()=>[P(g(f(s)("General settings")),1)]),_:1}),i(Se,null,{default:d(()=>[i(Z,{ref_key:"profileForm",ref:e,onSubmit:de(F,["prevent"])},{default:d(()=>[E("label",bt,g(f(s)("First name")),1),i(Q,{modelValue:o.value.first_name,"onUpdate:modelValue":_[0]||(_[0]=k=>o.value.first_name=k),variant:"outlined",density:"compact"},null,8,["modelValue"]),E("label",wt,g(f(s)("Last name")),1),i(Q,{modelValue:o.value.last_name,"onUpdate:modelValue":_[1]||(_[1]=k=>o.value.last_name=k),variant:"outlined",density:"compact"},null,8,["modelValue"]),E("label",Ct,[P(g(f(s)("Language"))+" ",1),E("p",kt,[P(g(f(s)("Feel free to improve the translations"))+" ",1),E("a",At,g(f(s)("here")),1),P(" "+g(f(s)("or suggest a new language"))+" ",1),E("a",Et,g(f(s)("there")),1)])]),i(nt,{modelValue:o.value.language,"onUpdate:modelValue":_[2]||(_[2]=k=>o.value.language=k),items:n.value,"item-title":"label","item-value":"code",variant:"outlined",density:"compact","error-messages":w.value},null,8,["modelValue","items","error-messages"]),E("label",Vt,g(f(s)("Phone number")),1),i(Q,{modelValue:o.value.phone_number,"onUpdate:modelValue":_[3]||(_[3]=k=>o.value.phone_number=k),label:f(s)("Phone number"),variant:"outlined",density:"compact"},null,8,["modelValue","label"]),E("label",Pt,g(f(s)("Secondary email")),1),i(Q,{modelValue:o.value.secondary_email,"onUpdate:modelValue":_[4]||(_[4]=k=>o.value.secondary_email=k),variant:"outlined",density:"compact",rules:[f(j).emailOrNull]},null,8,["modelValue","rules"]),i(L,{color:"success",type:"submit",loading:c.value},{default:d(()=>[P(g(f(s)("Update settings")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1}),i(Ve,null,{default:d(()=>[i(Pe,null,{default:d(()=>[P(g(f(s)("Password")),1)]),_:1}),i(Se,null,{default:d(()=>[i(Z,{ref_key:"passwordForm",ref:t,onSubmit:de(T,["prevent"])},{default:d(()=>[i(et,{modelValue:o.value,"onUpdate:modelValue":_[5]||(_[5]=k=>o.value=k),"form-errors":a.value,"with-password-check":""},null,8,["modelValue","form-errors"]),i(L,{color:"success",type:"submit",loading:h.value},{default:d(()=>[P(g(f(s)("Update Password")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1})]),_:1},8,["modelValue"]))}};/*!
1
+ import{C as Le,b as J,n as te,u as se,i as Y,h as y,d as ce,z as me,c as x,o as M,w as d,a as i,k as P,t as g,f,p as de,e as E,ae as ge,af as B,$ as Re,F as O,I as ze,J as Be,O as Qe,K as He,T as Ke,a7 as ae,a0 as Ge,ag as Ye,a1 as qe,v as ke,U as We,y as Je,ah as Ae,l as D,m as G,s as Me,ad as H,N as Xe,ai as Ze,_ as je,j as Ee}from"./index-D9OmnhdE.js";import{_ as et}from"./AccountPasswordSubForm-KRg2Sc3j.js";import{V as Z,r as j}from"./VForm-RVvaatfV.js";import{V as Ve,c as Pe,a as Se,b as tt}from"./VExpansionPanels-Rq8tzNGV.js";import{V as Q,a as at,m as ot}from"./VTextField-BBIziqiv.js";import{V as nt}from"./VAutocomplete-vTx-9foZ.js";import{V as L,c as he}from"./VAvatar-Wz1UmZ2b.js";import{c as fe,V as q,a as W,b as ye}from"./VCard-BrQzTMsm.js";import{V as ue,a as re}from"./VRow-DGPh2Qmm.js";import{V as X}from"./VAlert-BWUQvs3i.js";import{a as lt}from"./VMenu-BPG7b7dT.js";import{V as rt}from"./VProgressCircular-Bdwj7JuI.js";import{a as st,u as it,m as ut}from"./tag-jImTUiWx.js";import{u as dt,m as ct}from"./VInput-ssnfbpwr.js";import{V as Ne}from"./VTable-C08Q6ok2.js";import{V as ft}from"./VSpacer-Pa16wvUF.js";import{V as Fe}from"./VDialog-BF9xR7BQ.js";import{V as Te}from"./VTextarea-PURjBZRs.js";import{V as Ie}from"./VCheckbox-IdHLHDAe.js";import{_ as pe}from"./ConfirmDialog-CnWM982L.js";import{V as vt}from"./VDataTableVirtual-Ceu9uaGm.js";import{V as mt,a as ht}from"./VToolbar-CILwTR5O.js";import{V as pt,a as gt,b as ne,c as le}from"./VTabs-CaqxP8RF.js";import"./accounts-DkNidbb0.js";import"./VSwitch-C8Eq78Y3.js";import"./VSelectionControl-BIXXUgD4.js";import"./forwardRefs-GE5Osi9V.js";import"./ssrBoot-DaeAGyhc.js";import"./VSelect-CzmrBwOO.js";import"./VCheckboxBtn-BMf4a9DP.js";import"./VChip-B1E7xQW1.js";import"./filter-CfvL3jIf.js";/* empty css */import"./VDataTable-CVJjOdhF.js";import"./VWindowItem-l3wU5Kto.js";const yt="languages",_t={getAll(){return Le.get(`/${yt}/`)}},bt={class:"m-label"},wt={class:"m-label"},Ct={class:"m-label"},kt={class:"text-disabled"},At={href:"https://explore.transifex.com/tonio/modoboa/",target:"_blank"},Et={href:"https://github.com/modoboa/modoboa/issues/new/choose",target:"_blank"},Vt={class:"m-label"},Pt={class:"m-label"},St={__name:"ProfileForm",setup(r){const{$gettext:s,available:v}=J(),l=te(),m=se(),p=Y(()=>m.authUser),o=y({}),e=y(),t=y(),a=y({}),n=y([]),u=y(0),c=y(!1),h=y(!1),w=y("");function C(R){o.value={first_name:R.first_name,last_name:R.last_name,language:R.language,phone_number:R.phone_number,secondary_email:R.secondary_email}}async function F(){const{valid:R}=await e.value.validate();R&&(c.value=!0,m.updateAccount(o.value).then(()=>{l.displayNotification({msg:s("Profile updated")}),m.accountLanguage in v||(w.value=s("Language does no exist"))}).finally(()=>c.value=!1))}async function T(){const{valid:R}=await t.value.validate();if(R){h.value=!0;try{await m.updatePassword({password:o.value.password,new_password:o.value.new_password}),l.displayNotification({msg:s("Password updated")}),t.value.reset()}catch(_){_.status===400&&(a.value=_.response.data)}finally{h.value=!1}}}return ce(()=>{C(p.value),_t.getAll().then(R=>{n.value=R.data})}),me(()=>p,R=>{R?C(R):o.value={}}),(R,_)=>(M(),x(tt,{modelValue:u.value,"onUpdate:modelValue":_[6]||(_[6]=k=>u.value=k),flat:""},{default:d(()=>[i(Ve,null,{default:d(()=>[i(Pe,null,{default:d(()=>[P(g(f(s)("General settings")),1)]),_:1}),i(Se,null,{default:d(()=>[i(Z,{ref_key:"profileForm",ref:e,onSubmit:de(F,["prevent"])},{default:d(()=>[E("label",bt,g(f(s)("First name")),1),i(Q,{modelValue:o.value.first_name,"onUpdate:modelValue":_[0]||(_[0]=k=>o.value.first_name=k),variant:"outlined",density:"compact"},null,8,["modelValue"]),E("label",wt,g(f(s)("Last name")),1),i(Q,{modelValue:o.value.last_name,"onUpdate:modelValue":_[1]||(_[1]=k=>o.value.last_name=k),variant:"outlined",density:"compact"},null,8,["modelValue"]),E("label",Ct,[P(g(f(s)("Language"))+" ",1),E("p",kt,[P(g(f(s)("Feel free to improve the translations"))+" ",1),E("a",At,g(f(s)("here")),1),P(" "+g(f(s)("or suggest a new language"))+" ",1),E("a",Et,g(f(s)("there")),1)])]),i(nt,{modelValue:o.value.language,"onUpdate:modelValue":_[2]||(_[2]=k=>o.value.language=k),items:n.value,"item-title":"label","item-value":"code",variant:"outlined",density:"compact","error-messages":w.value},null,8,["modelValue","items","error-messages"]),E("label",Vt,g(f(s)("Phone number")),1),i(Q,{modelValue:o.value.phone_number,"onUpdate:modelValue":_[3]||(_[3]=k=>o.value.phone_number=k),label:f(s)("Phone number"),variant:"outlined",density:"compact"},null,8,["modelValue","label"]),E("label",Pt,g(f(s)("Secondary email")),1),i(Q,{modelValue:o.value.secondary_email,"onUpdate:modelValue":_[4]||(_[4]=k=>o.value.secondary_email=k),variant:"outlined",density:"compact",rules:[f(j).emailOrNull]},null,8,["modelValue","rules"]),i(L,{color:"success",type:"submit",loading:c.value},{default:d(()=>[P(g(f(s)("Update settings")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1}),i(Ve,null,{default:d(()=>[i(Pe,null,{default:d(()=>[P(g(f(s)("Password")),1)]),_:1}),i(Se,null,{default:d(()=>[i(Z,{ref_key:"passwordForm",ref:t,onSubmit:de(T,["prevent"])},{default:d(()=>[i(et,{modelValue:o.value,"onUpdate:modelValue":_[5]||(_[5]=k=>o.value=k),"form-errors":a.value,"with-password-check":""},null,8,["modelValue","form-errors"]),i(L,{color:"success",type:"submit",loading:h.value},{default:d(()=>[P(g(f(s)("Update Password")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1})]),_:1},8,["modelValue"]))}};/*!
2
2
  * qrcode.vue v3.6.0
3
3
  * A Vue.js component to generate QRCode. Both support Vue 2 and Vue 3
4
4
  * © 2017-PRESENT @scopewu(https://github.com/scopewu)
5
5
  * MIT License.
6
- */var K=function(){return K=Object.assign||function(s){for(var v,l=1,m=arguments.length;l<m;l++){v=arguments[l];for(var p in v)Object.prototype.hasOwnProperty.call(v,p)&&(s[p]=v[p])}return s},K.apply(this,arguments)};var ee;(function(r){var s=function(){function o(e,t,a,n){if(this.version=e,this.errorCorrectionLevel=t,this.modules=[],this.isFunction=[],e<o.MIN_VERSION||e>o.MAX_VERSION)throw new RangeError("Version value out of range");if(n<-1||n>7)throw new RangeError("Mask value out of range");this.size=e*4+17;for(var u=[],c=0;c<this.size;c++)u.push(!1);for(var c=0;c<this.size;c++)this.modules.push(u.slice()),this.isFunction.push(u.slice());this.drawFunctionPatterns();var h=this.addEccAndInterleave(a);if(this.drawCodewords(h),n==-1)for(var w=1e9,c=0;c<8;c++){this.applyMask(c),this.drawFormatBits(c);var C=this.getPenaltyScore();C<w&&(n=c,w=C),this.applyMask(c)}m(0<=n&&n<=7),this.mask=n,this.applyMask(n),this.drawFormatBits(n),this.isFunction=[]}return o.encodeText=function(e,t){var a=r.QrSegment.makeSegments(e);return o.encodeSegments(a,t)},o.encodeBinary=function(e,t){var a=r.QrSegment.makeBytes(e);return o.encodeSegments([a],t)},o.encodeSegments=function(e,t,a,n,u,c){if(a===void 0&&(a=1),n===void 0&&(n=40),u===void 0&&(u=-1),c===void 0&&(c=!0),!(o.MIN_VERSION<=a&&a<=n&&n<=o.MAX_VERSION)||u<-1||u>7)throw new RangeError("Invalid value");var h,w;for(h=a;;h++){var C=o.getNumDataCodewords(h,t)*8,F=p.getTotalBits(e,h);if(F<=C){w=F;break}if(h>=n)throw new RangeError("Data too long")}for(var T=0,R=[o.Ecc.MEDIUM,o.Ecc.QUARTILE,o.Ecc.HIGH];T<R.length;T++){var _=R[T];c&&w<=o.getNumDataCodewords(h,_)*8&&(t=_)}for(var k=[],V=0,S=e;V<S.length;V++){var A=S[V];v(A.mode.modeBits,4,k),v(A.numChars,A.mode.numCharCountBits(h),k);for(var b=0,N=A.getData();b<N.length;b++){var U=N[b];k.push(U)}}m(k.length==w);var $=o.getNumDataCodewords(h,t)*8;m(k.length<=$),v(0,Math.min(4,$-k.length),k),v(0,(8-k.length%8)%8,k),m(k.length%8==0);for(var I=236;k.length<$;I^=253)v(I,8,k);for(var z=[];z.length*8<k.length;)z.push(0);return k.forEach(function(ve,ie){return z[ie>>>3]|=ve<<7-(ie&7)}),new o(h,t,z,u)},o.prototype.getModule=function(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]},o.prototype.getModules=function(){return this.modules},o.prototype.drawFunctionPatterns=function(){for(var e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);for(var t=this.getAlignmentPatternPositions(),a=t.length,e=0;e<a;e++)for(var n=0;n<a;n++)e==0&&n==0||e==0&&n==a-1||e==a-1&&n==0||this.drawAlignmentPattern(t[e],t[n]);this.drawFormatBits(0),this.drawVersion()},o.prototype.drawFormatBits=function(e){for(var t=this.errorCorrectionLevel.formatBits<<3|e,a=t,n=0;n<10;n++)a=a<<1^(a>>>9)*1335;var u=(t<<10|a)^21522;m(u>>>15==0);for(var n=0;n<=5;n++)this.setFunctionModule(8,n,l(u,n));this.setFunctionModule(8,7,l(u,6)),this.setFunctionModule(8,8,l(u,7)),this.setFunctionModule(7,8,l(u,8));for(var n=9;n<15;n++)this.setFunctionModule(14-n,8,l(u,n));for(var n=0;n<8;n++)this.setFunctionModule(this.size-1-n,8,l(u,n));for(var n=8;n<15;n++)this.setFunctionModule(8,this.size-15+n,l(u,n));this.setFunctionModule(8,this.size-8,!0)},o.prototype.drawVersion=function(){if(!(this.version<7)){for(var e=this.version,t=0;t<12;t++)e=e<<1^(e>>>11)*7973;var a=this.version<<12|e;m(a>>>18==0);for(var t=0;t<18;t++){var n=l(a,t),u=this.size-11+t%3,c=Math.floor(t/3);this.setFunctionModule(u,c,n),this.setFunctionModule(c,u,n)}}},o.prototype.drawFinderPattern=function(e,t){for(var a=-4;a<=4;a++)for(var n=-4;n<=4;n++){var u=Math.max(Math.abs(n),Math.abs(a)),c=e+n,h=t+a;0<=c&&c<this.size&&0<=h&&h<this.size&&this.setFunctionModule(c,h,u!=2&&u!=4)}},o.prototype.drawAlignmentPattern=function(e,t){for(var a=-2;a<=2;a++)for(var n=-2;n<=2;n++)this.setFunctionModule(e+n,t+a,Math.max(Math.abs(n),Math.abs(a))!=1)},o.prototype.setFunctionModule=function(e,t,a){this.modules[t][e]=a,this.isFunction[t][e]=!0},o.prototype.addEccAndInterleave=function(e){var t=this.version,a=this.errorCorrectionLevel;if(e.length!=o.getNumDataCodewords(t,a))throw new RangeError("Invalid argument");for(var n=o.NUM_ERROR_CORRECTION_BLOCKS[a.ordinal][t],u=o.ECC_CODEWORDS_PER_BLOCK[a.ordinal][t],c=Math.floor(o.getNumRawDataModules(t)/8),h=n-c%n,w=Math.floor(c/n),C=[],F=o.reedSolomonComputeDivisor(u),T=0,R=0;T<n;T++){var _=e.slice(R,R+w-u+(T<h?0:1));R+=_.length;var k=o.reedSolomonComputeRemainder(_,F);T<h&&_.push(0),C.push(_.concat(k))}for(var V=[],S=function(A){C.forEach(function(b,N){(A!=w-u||N>=h)&&V.push(b[A])})},T=0;T<C[0].length;T++)S(T);return m(V.length==c),V},o.prototype.drawCodewords=function(e){if(e.length!=Math.floor(o.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");for(var t=0,a=this.size-1;a>=1;a-=2){a==6&&(a=5);for(var n=0;n<this.size;n++)for(var u=0;u<2;u++){var c=a-u,h=(a+1&2)==0,w=h?this.size-1-n:n;!this.isFunction[w][c]&&t<e.length*8&&(this.modules[w][c]=l(e[t>>>3],7-(t&7)),t++)}}m(t==e.length*8)},o.prototype.applyMask=function(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(var t=0;t<this.size;t++)for(var a=0;a<this.size;a++){var n=void 0;switch(e){case 0:n=(a+t)%2==0;break;case 1:n=t%2==0;break;case 2:n=a%3==0;break;case 3:n=(a+t)%3==0;break;case 4:n=(Math.floor(a/3)+Math.floor(t/2))%2==0;break;case 5:n=a*t%2+a*t%3==0;break;case 6:n=(a*t%2+a*t%3)%2==0;break;case 7:n=((a+t)%2+a*t%3)%2==0;break;default:throw new Error("Unreachable")}!this.isFunction[t][a]&&n&&(this.modules[t][a]=!this.modules[t][a])}},o.prototype.getPenaltyScore=function(){for(var e=0,t=0;t<this.size;t++){for(var a=!1,n=0,u=[0,0,0,0,0,0,0],c=0;c<this.size;c++)this.modules[t][c]==a?(n++,n==5?e+=o.PENALTY_N1:n>5&&e++):(this.finderPenaltyAddHistory(n,u),a||(e+=this.finderPenaltyCountPatterns(u)*o.PENALTY_N3),a=this.modules[t][c],n=1);e+=this.finderPenaltyTerminateAndCount(a,n,u)*o.PENALTY_N3}for(var c=0;c<this.size;c++){for(var a=!1,h=0,u=[0,0,0,0,0,0,0],t=0;t<this.size;t++)this.modules[t][c]==a?(h++,h==5?e+=o.PENALTY_N1:h>5&&e++):(this.finderPenaltyAddHistory(h,u),a||(e+=this.finderPenaltyCountPatterns(u)*o.PENALTY_N3),a=this.modules[t][c],h=1);e+=this.finderPenaltyTerminateAndCount(a,h,u)*o.PENALTY_N3}for(var t=0;t<this.size-1;t++)for(var c=0;c<this.size-1;c++){var w=this.modules[t][c];w==this.modules[t][c+1]&&w==this.modules[t+1][c]&&w==this.modules[t+1][c+1]&&(e+=o.PENALTY_N2)}for(var C=0,F=0,T=this.modules;F<T.length;F++){var R=T[F];C=R.reduce(function(V,S){return V+(S?1:0)},C)}var _=this.size*this.size,k=Math.ceil(Math.abs(C*20-_*10)/_)-1;return m(0<=k&&k<=9),e+=k*o.PENALTY_N4,m(0<=e&&e<=2568888),e},o.prototype.getAlignmentPatternPositions=function(){if(this.version==1)return[];for(var e=Math.floor(this.version/7)+2,t=Math.floor((this.version*8+e*3+5)/(e*4-4))*2,a=[6],n=this.size-7;a.length<e;n-=t)a.splice(1,0,n);return a},o.getNumRawDataModules=function(e){if(e<o.MIN_VERSION||e>o.MAX_VERSION)throw new RangeError("Version number out of range");var t=(16*e+128)*e+64;if(e>=2){var a=Math.floor(e/7)+2;t-=(25*a-10)*a-55,e>=7&&(t-=36)}return m(208<=t&&t<=29648),t},o.getNumDataCodewords=function(e,t){return Math.floor(o.getNumRawDataModules(e)/8)-o.ECC_CODEWORDS_PER_BLOCK[t.ordinal][e]*o.NUM_ERROR_CORRECTION_BLOCKS[t.ordinal][e]},o.reedSolomonComputeDivisor=function(e){if(e<1||e>255)throw new RangeError("Degree out of range");for(var t=[],a=0;a<e-1;a++)t.push(0);t.push(1);for(var n=1,a=0;a<e;a++){for(var u=0;u<t.length;u++)t[u]=o.reedSolomonMultiply(t[u],n),u+1<t.length&&(t[u]^=t[u+1]);n=o.reedSolomonMultiply(n,2)}return t},o.reedSolomonComputeRemainder=function(e,t){for(var a=t.map(function(w){return 0}),n=function(w){var C=w^a.shift();a.push(0),t.forEach(function(F,T){return a[T]^=o.reedSolomonMultiply(F,C)})},u=0,c=e;u<c.length;u++){var h=c[u];n(h)}return a},o.reedSolomonMultiply=function(e,t){if(e>>>8||t>>>8)throw new RangeError("Byte out of range");for(var a=0,n=7;n>=0;n--)a=a<<1^(a>>>7)*285,a^=(t>>>n&1)*e;return m(a>>>8==0),a},o.prototype.finderPenaltyCountPatterns=function(e){var t=e[1];m(t<=this.size*3);var a=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(a&&e[0]>=t*4&&e[6]>=t?1:0)+(a&&e[6]>=t*4&&e[0]>=t?1:0)},o.prototype.finderPenaltyTerminateAndCount=function(e,t,a){return e&&(this.finderPenaltyAddHistory(t,a),t=0),t+=this.size,this.finderPenaltyAddHistory(t,a),this.finderPenaltyCountPatterns(a)},o.prototype.finderPenaltyAddHistory=function(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)},o.MIN_VERSION=1,o.MAX_VERSION=40,o.PENALTY_N1=3,o.PENALTY_N2=3,o.PENALTY_N3=40,o.PENALTY_N4=10,o.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],o.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],o}();r.QrCode=s;function v(o,e,t){if(e<0||e>31||o>>>e)throw new RangeError("Value out of range");for(var a=e-1;a>=0;a--)t.push(o>>>a&1)}function l(o,e){return(o>>>e&1)!=0}function m(o){if(!o)throw new Error("Assertion error")}var p=function(){function o(e,t,a){if(this.mode=e,this.numChars=t,this.bitData=a,t<0)throw new RangeError("Invalid argument");this.bitData=a.slice()}return o.makeBytes=function(e){for(var t=[],a=0,n=e;a<n.length;a++){var u=n[a];v(u,8,t)}return new o(o.Mode.BYTE,e.length,t)},o.makeNumeric=function(e){if(!o.isNumeric(e))throw new RangeError("String contains non-numeric characters");for(var t=[],a=0;a<e.length;){var n=Math.min(e.length-a,3);v(parseInt(e.substring(a,a+n),10),n*3+1,t),a+=n}return new o(o.Mode.NUMERIC,e.length,t)},o.makeAlphanumeric=function(e){if(!o.isAlphanumeric(e))throw new RangeError("String contains unencodable characters in alphanumeric mode");var t=[],a;for(a=0;a+2<=e.length;a+=2){var n=o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a))*45;n+=o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a+1)),v(n,11,t)}return a<e.length&&v(o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a)),6,t),new o(o.Mode.ALPHANUMERIC,e.length,t)},o.makeSegments=function(e){return e==""?[]:o.isNumeric(e)?[o.makeNumeric(e)]:o.isAlphanumeric(e)?[o.makeAlphanumeric(e)]:[o.makeBytes(o.toUtf8ByteArray(e))]},o.makeEci=function(e){var t=[];if(e<0)throw new RangeError("ECI assignment value out of range");if(e<128)v(e,8,t);else if(e<16384)v(2,2,t),v(e,14,t);else if(e<1e6)v(6,3,t),v(e,21,t);else throw new RangeError("ECI assignment value out of range");return new o(o.Mode.ECI,0,t)},o.isNumeric=function(e){return o.NUMERIC_REGEX.test(e)},o.isAlphanumeric=function(e){return o.ALPHANUMERIC_REGEX.test(e)},o.prototype.getData=function(){return this.bitData.slice()},o.getTotalBits=function(e,t){for(var a=0,n=0,u=e;n<u.length;n++){var c=u[n],h=c.mode.numCharCountBits(t);if(c.numChars>=1<<h)return 1/0;a+=4+h+c.bitData.length}return a},o.toUtf8ByteArray=function(e){e=encodeURI(e);for(var t=[],a=0;a<e.length;a++)e.charAt(a)!="%"?t.push(e.charCodeAt(a)):(t.push(parseInt(e.substring(a+1,a+3),16)),a+=2);return t},o.NUMERIC_REGEX=/^[0-9]*$/,o.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,o.ALPHANUMERIC_CHARSET="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:",o}();r.QrSegment=p})(ee||(ee={}));(function(r){(function(s){var v=function(){function l(m,p){this.ordinal=m,this.formatBits=p}return l.LOW=new l(0,1),l.MEDIUM=new l(1,0),l.QUARTILE=new l(2,3),l.HIGH=new l(3,2),l}();s.Ecc=v})(r.QrCode||(r.QrCode={}))})(ee||(ee={}));(function(r){(function(s){var v=function(){function l(m,p){this.modeBits=m,this.numBitsCharCount=p}return l.prototype.numCharCountBits=function(m){return this.numBitsCharCount[Math.floor((m+7)/17)]},l.NUMERIC=new l(1,[10,12,14]),l.ALPHANUMERIC=new l(2,[9,11,13]),l.BYTE=new l(4,[8,16,16]),l.KANJI=new l(8,[8,10,12]),l.ECI=new l(7,[0,0,0]),l}();s.Mode=v})(r.QrSegment||(r.QrSegment={}))})(ee||(ee={}));var oe=ee,_e="L",be={L:oe.QrCode.Ecc.LOW,M:oe.QrCode.Ecc.MEDIUM,Q:oe.QrCode.Ecc.QUARTILE,H:oe.QrCode.Ecc.HIGH},Rt=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}();function we(r){return r in be}function Ue(r,s){s===void 0&&(s=0);var v=[];return r.forEach(function(l,m){var p=null;l.forEach(function(o,e){if(!o&&p!==null){v.push("M".concat(p+s," ").concat(m+s,"h").concat(e-p,"v1H").concat(p+s,"z")),p=null;return}if(e===l.length-1){if(!o)return;p===null?v.push("M".concat(e+s,",").concat(m+s," h1v1H").concat(e+s,"z")):v.push("M".concat(p+s,",").concat(m+s," h").concat(e+1-p,"v1H").concat(p+s,"z"));return}o&&p===null&&(p=e)})}),v.join("")}function $e(r,s,v,l){var m=l.width,p=l.height,o=l.x,e=l.y,t=r.length+v*2,a=Math.floor(s*.1),n=t/s,u=(m||a)*n,c=(p||a)*n,h=o==null?r.length/2-u/2:o*n,w=e==null?r.length/2-c/2:e*n,C=null;if(l.excavate){var F=Math.floor(h),T=Math.floor(w),R=Math.ceil(u+h-F),_=Math.ceil(c+w-T);C={x:F,y:T,w:R,h:_}}return{x:h,y:w,h:c,w:u,excavation:C}}function De(r,s){return r.slice().map(function(v,l){return l<s.y||l>=s.y+s.h?v:v.map(function(m,p){return p<s.x||p>=s.x+s.w?m:!1})})}var Ce={value:{type:String,required:!0,default:""},size:{type:Number,default:100},level:{type:String,default:_e,validator:function(r){return we(r)}},background:{type:String,default:"#fff"},foreground:{type:String,default:"#000"},margin:{type:Number,required:!1,default:0},imageSettings:{type:Object,required:!1,default:function(){return{}}},gradient:{type:Boolean,required:!1,default:!1},gradientType:{type:String,required:!1,default:"linear",validator:function(r){return["linear","radial"].indexOf(r)>-1}},gradientStartColor:{type:String,required:!1,default:"#000"},gradientEndColor:{type:String,required:!1,default:"#fff"}},Mt=K(K({},Ce),{renderAs:{type:String,required:!1,default:"canvas",validator:function(r){return["canvas","svg"].indexOf(r)>-1}}}),Nt=ge({name:"QRCodeSvg",props:Ce,setup:function(r){var s=y(0),v=y(""),l,m=function(){var o=r.value,e=r.level,t=r.margin,a=t>>>0,n=we(e)?e:_e,u=oe.QrCode.encodeText(o,be[n]).getModules();if(s.value=u.length+a*2,r.imageSettings.src){var c=$e(u,r.size,a,r.imageSettings);l={x:c.x+a,y:c.y+a,width:c.w,height:c.h},c.excavation&&(u=De(u,c.excavation))}v.value=Ue(u,a)},p=function(){if(!r.gradient)return null;var o=r.gradientType==="linear"?{x1:"0%",y1:"0%",x2:"100%",y2:"100%"}:{cx:"50%",cy:"50%",r:"50%",fx:"50%",fy:"50%"};return B(r.gradientType==="linear"?"linearGradient":"radialGradient",K({id:"qr-gradient"},o),[B("stop",{offset:"0%",style:{stopColor:r.gradientStartColor}}),B("stop",{offset:"100%",style:{stopColor:r.gradientEndColor}})])};return m(),Re(m),function(){return B("svg",{width:r.size,height:r.size,"shape-rendering":"crispEdges",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(s.value," ").concat(s.value)},[B("defs",{},[p()]),B("rect",{width:"100%",height:"100%",fill:r.background}),B("path",{fill:r.gradient?"url(#qr-gradient)":r.foreground,d:v.value}),r.imageSettings.src&&B("image",K({href:r.imageSettings.src},l))])}}}),Ft=ge({name:"QRCodeCanvas",props:Ce,setup:function(r,s){var v=y(null),l=y(null),m=function(){var o=r.value,e=r.level,t=r.size,a=r.margin,n=r.background,u=r.foreground,c=r.gradient,h=r.gradientType,w=r.gradientStartColor,C=r.gradientEndColor,F=a>>>0,T=we(e)?e:_e,R=v.value;if(R){var _=R.getContext("2d");if(_){var k=oe.QrCode.encodeText(o,be[T]).getModules(),V=k.length+F*2,S=l.value,A={x:0,y:0,width:0,height:0},b=r.imageSettings.src&&S!=null&&S.naturalWidth!==0&&S.naturalHeight!==0;if(b){var N=$e(k,r.size,F,r.imageSettings);A={x:N.x+F,y:N.y+F,width:N.w,height:N.h},N.excavation&&(k=De(k,N.excavation))}var U=window.devicePixelRatio||1,$=t/V*U;if(R.height=R.width=t*U,_.scale($,$),_.fillStyle=n,_.fillRect(0,0,V,V),c){var I=void 0;h==="linear"?I=_.createLinearGradient(0,0,V,V):I=_.createRadialGradient(V/2,V/2,0,V/2,V/2,V/2),I.addColorStop(0,w),I.addColorStop(1,C),_.fillStyle=I}else _.fillStyle=u;Rt?_.fill(new Path2D(Ue(k,F))):k.forEach(function(z,ve){z.forEach(function(ie,Oe){ie&&_.fillRect(Oe+F,ve+F,1,1)})}),b&&_.drawImage(S,A.x,A.y,A.width,A.height)}}};ce(m),Re(m);var p=s.attrs.style;return function(){return B(O,[B("canvas",K(K({},s.attrs),{ref:v,style:K(K({},p),{width:"".concat(r.size,"px"),height:"".concat(r.size,"px")})})),r.imageSettings.src&&B("img",{ref:l,src:r.imageSettings.src,style:{display:"none"},onLoad:m})])}}}),Tt=ge({name:"Qrcode",render:function(){var r=this.$props,s=r.renderAs,v=r.value,l=r.size,m=r.margin,p=r.level,o=r.background,e=r.foreground,t=r.imageSettings,a=r.gradient,n=r.gradientType,u=r.gradientStartColor,c=r.gradientEndColor;return B(s==="svg"?Nt:Ft,{value:v,size:l,margin:m,level:p,background:o,foreground:e,imageSettings:t,gradient:a,gradientType:n,gradientStartColor:u,gradientEndColor:c})},props:Mt});const It=Be({autofocus:Boolean,divider:String,focusAll:Boolean,label:{type:String,default:"$vuetify.input.otp"},length:{type:[Number,String],default:6},modelValue:{type:[Number,String],default:void 0},placeholder:String,type:{type:String,default:"number"},...ut(),...ct(),...We(ot({variant:"outlined"}),["baseColor","bgColor","class","color","disabled","error","loading","rounded","style","theme","variant"])},"VOtpInput"),Ut=ze()({name:"VOtpInput",props:It(),emits:{finish:r=>!0,"update:focused":r=>!0,"update:modelValue":r=>!0},setup(r,s){let{attrs:v,emit:l,slots:m}=s;const{dimensionStyles:p}=st(r),{isFocused:o,focus:e,blur:t}=dt(r),a=Qe(r,"modelValue","",b=>b==null?[]:String(b).split(""),b=>b.join("")),{t:n}=He(),u=Y(()=>Number(r.length)),c=Y(()=>Array(u.value).fill(0)),h=y(-1),w=y(),C=y([]),F=Y(()=>C.value[h.value]);function T(){if(A(F.value.value)){F.value.value="";return}const b=a.value.slice(),N=F.value.value;b[h.value]=N;let U=null;h.value>a.value.length?U=a.value.length+1:h.value+1!==u.value&&(U="next"),a.value=b,U&&Ae(w.value,U)}function R(b){const N=a.value.slice(),U=h.value;let $=null;["ArrowLeft","ArrowRight","Backspace","Delete"].includes(b.key)&&(b.preventDefault(),b.key==="ArrowLeft"?$="prev":b.key==="ArrowRight"?$="next":["Backspace","Delete"].includes(b.key)&&(N[h.value]="",a.value=N,h.value>0&&b.key==="Backspace"?$="prev":requestAnimationFrame(()=>{var I;(I=C.value[U])==null||I.select()})),requestAnimationFrame(()=>{$!=null&&Ae(w.value,$)}))}function _(b,N){var $,I;N.preventDefault(),N.stopPropagation();const U=(($=N==null?void 0:N.clipboardData)==null?void 0:$.getData("Text").trim().slice(0,u.value))??"";A(U)||(a.value=U.split(""),(I=C.value)==null||I[b].blur())}function k(){a.value=[]}function V(b,N){e(),h.value=N}function S(){t(),h.value=-1}function A(b){return r.type==="number"&&/[^0-9]/g.test(b)}return Ke({VField:{color:ae(()=>r.color),bgColor:ae(()=>r.color),baseColor:ae(()=>r.baseColor),disabled:ae(()=>r.disabled),error:ae(()=>r.error),variant:ae(()=>r.variant)}},{scoped:!0}),me(a,b=>{b.length===u.value&&(h.value=u.value-1,l("finish",b.join("")))},{deep:!0}),me(h,b=>{b<0||Ge(()=>{var N;(N=C.value[b])==null||N.select()})}),it(()=>{var U;const[b,N]=Ye(v);return E("div",ke({class:["v-otp-input",{"v-otp-input--divided":!!r.divider},r.class],style:[r.style]},b),[E("div",{ref:w,class:"v-otp-input__content",style:qe([p.value])},[c.value.map(($,I)=>E(O,null,[r.divider&&I!==0&&E("span",{class:"v-otp-input__divider"},[r.divider]),i(at,{focused:o.value&&r.focusAll||h.value===I,key:I},{...m,loader:void 0,default:()=>E("input",{ref:z=>C.value[I]=z,"aria-label":n(r.label,I+1),autofocus:I===0&&r.autofocus,autocomplete:"one-time-code",class:Je(["v-otp-input__field"]),disabled:r.disabled,inputmode:r.type==="number"?"numeric":"text",min:r.type==="number"?0:void 0,maxlength:I===0?u.value:"1",placeholder:r.placeholder,type:r.type==="number"?"text":r.type,value:a.value[I],onInput:T,onFocus:z=>V(z,I),onBlur:S,onKeydown:R,onPaste:z=>_(I,z)},null)})])),E("input",ke({class:"v-otp-input-input",type:"hidden"},N,{value:a.value.join("")}),null),i(lt,{contained:!0,"content-class":"v-otp-input__loader","model-value":!!r.loading,persistent:!0},{default:()=>{var $;return[(($=m.loader)==null?void 0:$.call(m))??i(rt,{color:typeof r.loading=="boolean"?void 0:r.loading,indeterminate:!0,size:"24",width:"2"},null)]}}),(U=m.default)==null?void 0:U.call(m)])])}),{blur:()=>{var b;(b=C.value)==null||b.some(N=>N.blur())},focus:()=>{var b;(b=C.value)==null||b[0].focus()},reset:k,isFocused:o}}}),$t={class:"text-h6"},Dt={class:"m-label"},xt={class:"mt-4"},Ot={class:"m-label"},Lt={class:"mt-5"},zt={tag:"p",class:"my-4"},Bt={__name:"TotpAuthForm",setup(r){const{$gettext:s}=J(),v=te(),l=se(),m=y(),p=y(""),o=y([]),e=y(null),t=y(null),a=y(!1),n=y(!1),u=y(""),c=y([]),h=y([]),w=y(!1),C=Y(()=>l.authUser.totp_enabled);function F(){H.getKeyForTFASetup().then(V=>{e.value=V.data.key,t.value=V.data.url})}function T(){navigator.clipboard.writeText(e.value),a.value=!0}function R(){H.startTFASetup().then(()=>{F()})}function _(){l.finalizeTFASetup(p.value).then(V=>{e.value=null,t.value=null,V.status===200&&(h.value=V.data.tokens),w.value=!0}).catch(V=>{V.response.status===400&&(o.value=V.response.data.pin_code)})}async function k(){if(!await m.value.validate())return;const S={password:u.value};n.value=!0,H.disableTFA(S).then(()=>{l.fetchUser()}).catch(A=>{A.response.status===400?c.value=A.response.data.password:v.displayNotification({msg:s(A.response.data),type:"error"})}).finally(()=>{n.value=!1,m.value.reset()})}return(V,S)=>(M(),D("div",null,[i(W,{flat:""},{default:d(()=>[i(fe,null,{default:d(()=>[E("span",$t,g(f(s)("One-time passwords")),1)]),_:1}),i(q,null,{default:d(()=>[t.value?(M(),x(ue,{key:0},{default:d(()=>[i(re,{cols:"4"},{default:d(()=>[i(ue,{rows:"2"},{default:d(()=>[i(Tt,{value:t.value,size:250,"render-as":"svg",level:"H",class:"qrcode"},null,8,["value"])]),_:1}),i(ue,null,{default:d(()=>[i(L,{color:"primary",class:"key",onClick:T},{default:d(()=>[P(g(f(s)("Click here to copy the key"))+" ",1),a.value?(M(),x(he,{key:0,color:"success"},{default:d(()=>S[2]||(S[2]=[P(" mdi-check-all ")])),_:1,__:[2]})):G("",!0)]),_:1})]),_:1})]),_:1}),i(re,{cols:"6"},{default:d(()=>[i(X,{type:"info",class:"ma-4"},{default:d(()=>[P(g(f(s)("Install a soft token authenticator like FreeOTP or Google Authenticator from your application repository and use that app to scan this QR code.")),1)]),_:1}),E("label",Dt,g(f(s)("Pin code")),1),i(Ut,{modelValue:p.value,"onUpdate:modelValue":S[0]||(S[0]=A=>p.value=A),error:o.value.length!==0},null,8,["modelValue","error"]),i(L,{color:"primary",onClick:_},{default:d(()=>[P(g(f(s)("Register")),1)]),_:1})]),_:1})]),_:1})):w.value?(M(),D(O,{key:1},[i(X,{type:"success"},{default:d(()=>[P(g(f(s)("Congratulations! Two-factor authentication using one-time passwords is now enabled for your account.")),1)]),_:1}),h.value.length?(M(),D(O,{key:0},[E("p",xt,g(f(s)("The following recovery codes can be used one time each to let you regain access to your account, in case you lose your phone for example. Make sure to save them in a safe place, otherwise you won't be able to access your account anymore.")),1),i(Ne,{density:"compact"},{default:d(()=>[E("tbody",null,[(M(!0),D(O,null,Me(h.value,A=>(M(),D("tr",{key:A},[E("td",null,g(A),1)]))),128))])]),_:1})],64)):G("",!0)],64)):C.value?(M(),D(O,{key:2},[i(X,{type:"info",class:"mb-2"},{default:d(()=>[P(g(f(s)("Two-factor authentication using one-time passwords is enabled for your account.")),1)]),_:1}),i(Z,{ref_key:"editTFAForm",ref:m},{default:d(()=>[E("label",Ot,g(f(s)("Password")),1),i(Q,{modelValue:u.value,"onUpdate:modelValue":S[1]||(S[1]=A=>u.value=A),autocomplete:"new-password",type:"password",variant:"outlined",density:"compact",rules:[f(j).required],"error-messages":c.value},null,8,["modelValue","rules","error-messages"]),E("div",Lt,[i(L,{color:"error",class:"mr-2",loading:n.value,onClick:k},{default:d(()=>[P(g(f(s)("Disable 2FA")),1)]),_:1},8,["loading"])])]),_:1},512)],64)):(M(),D(O,{key:3},[E("div",zt,g(f(s)("Two-factor authentication (2FA) using one-time passwords is not yet activated for your account.")),1),i(L,{color:"success",onClick:R},{default:d(()=>[P(g(f(s)("Register authenticator")),1)]),_:1})],64))]),_:1})]),_:1})]))}},Qt={class:"headline"},xe={__name:"RecoveryCodesResetDialog",props:{tokens:{type:Array,default:null}},emits:["close"],setup(r,{emit:s}){const{$gettext:v}=J(),l=s;function m(){l("close")}return(p,o)=>(M(),x(W,null,{default:d(()=>[i(fe,null,{default:d(()=>[E("span",Qt,g(f(v)("New recovery codes")),1)]),_:1}),i(q,null,{default:d(()=>[i(X,{type:"info"},{default:d(()=>[P(g(f(v)("The following recovery codes can be used one time each to let you regain access to your account, in case you lose your phone for example. Make sure to save them in a safe place, otherwise you won't be able to access your account anymore.")),1)]),_:1}),i(Ne,{class:"mt-4",density:"compact"},{default:d(()=>[E("tbody",null,[(M(!0),D(O,null,Me(r.tokens,e=>(M(),D("tr",{key:e},[E("td",null,g(e),1)]))),128))])]),_:1})]),_:1}),i(ye,null,{default:d(()=>[i(ft),i(L,{color:"grey darken-1",text:"",onClick:m},{default:d(()=>[P(g(f(v)("Close")),1)]),_:1})]),_:1})]),_:1}))}},Ht={class:"text-h6"},Kt={class:"m-label"},Gt={class:"mt-5"},Yt={key:1,tag:"p",class:"my-4"},qt={__name:"BackupCodeAuthForm",setup(r){const{$gettext:s}=J(),v=te(),l=se(),m=Y(()=>l.authUser.tfa_enabled),p=y(!1),o=y(),e=y(""),t=y([]),a=y(),n=y(!1);async function u(){if(!await o.value.validate())return;const w={password:e.value};p.value=!0,H.resetRecoveryCodes(w).then(C=>{t.value=C.data.tokens,n.value=!0}).catch(C=>{C.response.status===400?a.value=C.response.data.password:v.displayNotification({msg:s(C.response.data),type:"error"})}).finally(()=>{p.value=!1,o.value.reset()})}function c(){t.value=[],n.value=!1}return(h,w)=>(M(),D("div",null,[i(W,{flat:""},{default:d(()=>[i(fe,null,{default:d(()=>[E("span",Ht,g(f(s)("Backup codes")),1)]),_:1}),i(q,null,{default:d(()=>[m.value?(M(),D(O,{key:0},[i(X,{type:"info",class:"mb-2"},{default:d(()=>[P(g(f(s)("You already have generated backup codes for this account. If you don't remember them or have used them all, you can generate new ones.")),1)]),_:1}),i(Z,{ref_key:"editTFAForm",ref:o},{default:d(()=>[E("label",Kt,g(f(s)("Password")),1),i(Q,{modelValue:e.value,"onUpdate:modelValue":w[0]||(w[0]=C=>e.value=C),autocomplete:"new-password",type:"password",variant:"outlined",density:"compact",rules:[f(j).required],"error-messages":a.value},null,8,["modelValue","rules","error-messages"]),E("div",Gt,[i(L,{loading:p.value,color:"success",onClick:u},{default:d(()=>[P(g(f(s)("Reset recovery codes")),1)]),_:1},8,["loading"])])]),_:1},512)],64)):(M(),D("div",Yt,g(f(s)("No two-factor authentificator is yet set for your account.")),1)),i(Fe,{modelValue:n.value,"onUpdate:modelValue":w[1]||(w[1]=C=>n.value=C),"max-width":"800px",persistent:""},{default:d(()=>[i(f(xe),{tokens:t.value,onClose:c},null,8,["tokens"])]),_:1},8,["modelValue"])]),_:1})]),_:1})]))}},Wt={class:"m-label"},Jt={__name:"ForwardForm",setup(r){const{$gettext:s}=J(),v=te(),l=y({}),m=y(!1);function p(){m.value=!0,H.setForward(l.value).then(()=>{m.value=!1,v.displayNotification({type:"success",msg:s("Forward updated")})})}return H.getForward().then(o=>{l.value=o.data}),(o,e)=>(M(),x(W,{flat:""},{default:d(()=>[i(q,null,{default:d(()=>[E("label",Wt,g(f(s)("Recipient(s)")),1),i(Te,{modelValue:l.value.recipients,"onUpdate:modelValue":e[0]||(e[0]=t=>l.value.recipients=t),hint:f(s)("Indicate one or more recipients separated by a comma (,)"),"persistent-hint":"",rows:"3",variant:"outlined"},null,8,["modelValue","hint"]),i(Ie,{modelValue:l.value.keepcopies,"onUpdate:modelValue":e[1]||(e[1]=t=>l.value.keepcopies=t),label:f(s)("Keep local copies"),hint:f(s)("Forward messages and store copies into your local mailbox"),"persistent-hint":""},null,8,["modelValue","label","hint"])]),_:1}),i(ye,{class:"pa-4"},{default:d(()=>[i(L,{color:"success",variant:"flat",loading:m.value,onClick:p},{default:d(()=>[P(g(f(s)("Update")),1)]),_:1},8,["loading"])]),_:1})]),_:1}))}},Xt={class:"m-label"},Zt={class:"mb-4"},jt={class:"m-label"},ea={class:"mb-4"},ta={class:"m-label"},aa={class:"mb-4"},oa={class:"m-label"},na={__name:"AutoReplyForm",setup(r){const s=te(),{$gettext:v}=J(),l=y({}),m=y(),p=y(!1);async function o(){const{valid:e}=await m.value.validate();e&&(p.value=!0,l.value.fromdate===""&&(l.value.fromdate=null),l.value.untildate===""&&(l.value.untildate=null),H.setARMessage(l.value).then(()=>{s.displayNotification({msg:v("Auto-reply message updated")}),p.value=!1}).catch(()=>{p.value=!1}))}return H.getARMessage().then(e=>{l.value=e.data,l.value.fromdate&&(l.value.fromdate=l.value.fromdate.slice(0,-4)),l.value.untildate&&(l.value.untildate=l.value.untildate.slice(0,-4))}),(e,t)=>(M(),x(W,{flat:""},{default:d(()=>[i(q,null,{default:d(()=>[i(Z,{ref_key:"formRef",ref:m,onSubmit:de(o,["prevent"])},{default:d(()=>[i(Ie,{modelValue:l.value.enabled,"onUpdate:modelValue":t[0]||(t[0]=a=>l.value.enabled=a),label:f(v)("Enabled"),color:"primary","hide-details":"",class:"mb-4"},null,8,["modelValue","label"]),E("label",Xt,g(f(v)("Subject")),1),i(Q,{modelValue:l.value.subject,"onUpdate:modelValue":t[1]||(t[1]=a=>l.value.subject=a),variant:"outlined",density:"compact",rules:[f(j).required]},null,8,["modelValue","rules"]),E("div",Zt,[E("label",jt,g(f(v)("Content")),1),i(Te,{modelValue:l.value.content,"onUpdate:modelValue":t[2]||(t[2]=a=>l.value.content=a),hint:f(v)("The content of your answer. You can use the following variables, which will be automatically replaced by the appropriate value: %(name)s, %(fromdate)s, %(untildate)s"),"persistent-hint":"",variant:"outlined",rows:"3",density:"compact",rules:[f(j).required]},null,8,["modelValue","hint","rules"])]),E("div",ea,[E("label",ta,g(f(v)("From")),1),i(Q,{modelValue:l.value.fromdate,"onUpdate:modelValue":t[3]||(t[3]=a=>l.value.fromdate=a),hint:f(v)("Activate your auto reply from this date"),variant:"outlined","persistent-hint":"",type:"datetime-local",density:"compact"},null,8,["modelValue","hint"])]),E("div",aa,[E("label",oa,g(f(v)("Until")),1),i(Q,{modelValue:l.value.untildate,"onUpdate:modelValue":t[4]||(t[4]=a=>l.value.untildate=a),hint:f(v)("Activate your auto reply until this date"),variant:"outlined","persistent-hint":"",type:"datetime-local",density:"compact"},null,8,["modelValue","hint"])]),i(L,{color:"success",type:"submit",loading:p.value},{default:d(()=>[P(g(f(v)("Update auto-reply")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1}))}},la={class:"m-label"},ra={class:"ml-5 mr-5"},sa=["href"],ia={__name:"APISetupForm",setup(r){const{$gettext:s}=J(),v=te(),l=Xe("$config"),m=Y(()=>l.API_DOC_URL),p=y(!1),o=y(null),e=y();function t(){navigator.clipboard.writeText(o.value),v.displayNotification({msg:s("API token copied to your clipboard"),type:"success"})}function a(){p.value=!0,H.createAPIToken().then(c=>{o.value=c.data.token,v.displayNotification({msg:s("API token created"),type:"success"})}).finally(()=>p.value=!1)}function n(){e.value.open(s("Warning"),s("You are about to delete your API access token"),{color:"error",cancelLabel:s("Cancel"),agreeLabel:s("Proceed")})}async function u(){await H.deleteAPIToken(),v.displayNotification({msg:s("API token deleted"),type:"success"}),o.value=null}return ce(()=>{H.getAPIToken().then(c=>{o.value=c.data.token})}),(c,h)=>(M(),D(O,null,[o.value?(M(),x(W,{key:1,flat:""},{default:d(()=>[i(q,null,{default:d(()=>[E("label",la,g(f(s)("Your API token is:")),1),E("code",ra,g(o.value),1),i(L,{icon:"mdi-clipboard-plus",density:"compact",title:f(s)("Copy token to clipboard"),variant:"text",onClick:h[0]||(h[0]=w=>t())},null,8,["title"]),i(L,{icon:"mdi-delete",density:"compact",color:"error",variant:"text",title:f(s)("Delete token"),onClick:n},null,8,["title"])]),_:1})]),_:1})):(M(),x(W,{key:0,flat:""},{default:d(()=>[i(q,null,{default:d(()=>[P(g(f(s)("Your API token has not been generated yet.")),1)]),_:1}),i(ye,null,{default:d(()=>[i(L,{color:"success",variant:"flat",loading:p.value,onClick:a},{default:d(()=>[P(g(f(s)("Generate")),1)]),_:1},8,["loading"])]),_:1})]),_:1})),i(X,{type:"info",variant:"tonal",border:"start",class:"mt-4"},{default:d(()=>[P(g(f(s)("A documentation of the API is available"))+" ",1),E("a",{href:m.value,target:"_blank"},g(f(s)("here")),9,sa),h[1]||(h[1]=P(". "))]),_:1,__:[1]}),i(pe,{ref_key:"confirm",ref:e,onAgree:u},null,512)],64))}},ua={class:"text-h6"},da={tag:"p",class:"my-4"},ca={__name:"FidoAuthForm",setup(r){const s=se(),v=te(),{$gettext:l}=J(),m=y(),p=y(!1),o=!!(navigator.credentials&&navigator.credentials.create&&navigator.credentials.get&&PublicKeyCredential.parseCreationOptionsFromJSON),e=y(),t=Y(()=>s.fidoCreds),a=[{title:l("Name"),key:"name"},{title:l("Added On"),key:"added_on"},{title:l("Last Used"),key:"last_used"},{title:l("Use count"),key:"use_count"},{title:l("Actions"),key:"actions"}],n=y(),u=y(),c=y(),h=y(""),w=y(),C=y(!1);async function F(){const{valid:V}=await e.value.validate();if(!V)return;p.value=!0;const S=await Ze.beginFidoRegistration();if(S){const A=PublicKeyCredential.parseCreationOptionsFromJSON(S.data.publicKey);navigator.credentials.create({publicKey:A}).then(b=>{const N=b.toJSON();N.name=m.value,s.addFidoCred(N).then(U=>{U.status===200&&(w.value=U.data.tokens,C.value=!0)}),e.value.reset(),p.value=!1}).catch(b=>{console.log(b),e.value.reset(),p.value=!1,v.displayNotification({msg:l("Failed to register the webAuthN device"),type:"error"})})}p.value=!1}function T(){w.value=[],C.value=!1}async function R(V){await n.value.open(l("Warning"),l("Do you really want to delete this WebAuthn device?"),{color:"warning",cancelLabel:l("No"),agreeLabel:l("Yes")})&&s.deleteFidoCreds(V.id)}async function _(){return(await c.value.validate()).valid}async function k(V){if(h.value=V.name,!await u.value.open(l("Edition"),l("Edit your device"),{color:"warning",cancelLabel:l("Cancel"),agreeLabel:l("Save")}))return;const A={name:h.value};await s.editFidoCred(V.id,A)}return ce(()=>{s.getFidoCreds()}),(V,S)=>(M(),D(O,null,[E("div",null,[i(W,{flat:""},{default:d(()=>[i(fe,null,{default:d(()=>[E("span",ua,g(f(l)("WebAuthn")),1)]),_:1}),i(q,null,{default:d(()=>[i(ue,null,{default:d(()=>[t.value.length===0?(M(),x(re,{key:0,cols:"4"},{default:d(()=>[E("div",da,g(f(l)("You don't have any WebAuthN device registered as a second authentication method.")),1)]),_:1})):(M(),x(re,{key:1,cols:"8"},{default:d(()=>[E("h3",null,g(f(l)("Registered Webauthn devices")),1),i(vt,{headers:a,items:t.value,"item-value":"id"},{"item.added_on":d(({item:A})=>[P(g(V.$date(A.added_on)),1)]),"item.last_used":d(({item:A})=>[A.last_used===null?(M(),D(O,{key:0},[P(g(f(l)("Never")),1)],64)):(M(),D(O,{key:1},[P(g(V.$date(A.last_used)),1)],64))]),"item.enabled":d(({item:A})=>[P(g(V.$yesno(A.enabled)),1)]),"item.actions":d(({item:A})=>[i(he,{class:"me-2",size:"small",onClick:b=>k(A)},{default:d(()=>S[3]||(S[3]=[P(" mdi-pencil ")])),_:2,__:[3]},1032,["onClick"]),i(he,{size:"small",onClick:b=>R(A)},{default:d(()=>S[4]||(S[4]=[P(" mdi-delete ")])),_:2,__:[4]},1032,["onClick"])]),_:2},1032,["items"])]),_:1})),i(re,{cols:"4"},{default:d(()=>[o?(M(),D(O,{key:0},[E("h3",null,g(f(l)("Enter a name to register a new webauthn device.")),1),i(Z,{ref_key:"fidoForm",ref:e,onSubmit:de(F,["prevent"])},{default:d(()=>[i(Q,{modelValue:m.value,"onUpdate:modelValue":S[0]||(S[0]=A=>m.value=A),label:f(l)("New device name"),rules:[f(j).required]},null,8,["modelValue","label","rules"]),i(L,{color:"success",type:"submit",loading:p.value},{default:d(()=>[P(g(f(l)("Setup device")),1)]),_:1},8,["loading"])]),_:1},512)],64)):(M(),x(X,{key:1,type:"error"},{default:d(()=>[P(g(f(l)("Your browser does not seem compatible with WebAuthN")),1)]),_:1}))]),_:1})]),_:1})]),_:1})]),_:1})]),i(pe,{ref_key:"confirmDeletion",ref:n},null,512),i(pe,{ref_key:"confirmEdition",ref:u,callback_agree:_},{default:d(()=>[i(Z,{ref_key:"editForm",ref:c},{default:d(()=>[i(Q,{modelValue:h.value,"onUpdate:modelValue":S[1]||(S[1]=A=>h.value=A),label:f(l)("name"),rules:[f(j).required]},null,8,["modelValue","label","rules"])]),_:1},512)]),_:1},512),i(Fe,{modelValue:C.value,"onUpdate:modelValue":S[2]||(S[2]=A=>C.value=A),"max-width":"800px",persistent:""},{default:d(()=>[i(xe,{tokens:w.value,onClose:T},null,8,["tokens"])]),_:1},8,["modelValue"])],64))}},fa={class:"pa-4"},va={__name:"SettingsView",setup(r){const s=se(),v=y();return(l,m)=>(M(),D(O,null,[i(mt,{flat:""},{default:d(()=>[i(ht,null,{default:d(()=>[P(g(l.$gettext("Account settings")),1)]),_:1})]),_:1}),E("div",fa,[i(pt,{modelValue:v.value,"onUpdate:modelValue":m[0]||(m[0]=p=>v.value=p),color:"primary",class:"mb-4"},{default:d(()=>[i(ne,{value:"profile"},{default:d(()=>[P(g(l.$gettext("Profile")),1)]),_:1}),i(ne,{value:"security"},{default:d(()=>[P(g(l.$gettext("Two-factor auth")),1)]),_:1}),f(s).userHasMailbox?(M(),x(ne,{key:0,value:"forward"},{default:d(()=>[P(g(l.$gettext("Forward")),1)]),_:1})):G("",!0),f(s).userHasMailbox?(M(),x(ne,{key:1,value:"autoreply"},{default:d(()=>[P(g(l.$gettext("Auto-reply message")),1)]),_:1})):G("",!0),f(s).authUser.role===f(Ee).SUPER_ADMIN?(M(),x(ne,{key:2,value:"api"},{default:d(()=>[P(g(l.$gettext("API access")),1)]),_:1})):G("",!0)]),_:1},8,["modelValue"]),i(gt,{modelValue:v.value,"onUpdate:modelValue":m[1]||(m[1]=p=>v.value=p)},{default:d(()=>[i(le,{value:"profile"},{default:d(()=>[i(St)]),_:1}),i(le,{value:"security"},{default:d(()=>[i(Bt),i(ca),i(qt)]),_:1}),f(s).userHasMailbox?(M(),x(le,{key:0,value:"forward"},{default:d(()=>[i(Jt)]),_:1})):G("",!0),f(s).userHasMailbox?(M(),x(le,{key:1,value:"autoreply"},{default:d(()=>[i(na)]),_:1})):G("",!0),f(s).authUser.role===f(Ee).SUPER_ADMIN?(M(),x(le,{key:2,value:"api"},{default:d(()=>[i(ia)]),_:1})):G("",!0)]),_:1},8,["modelValue"])])],64))}},Wa=je(va,[["__scopeId","data-v-fc9b36ca"]]);export{Wa as default};
6
+ */var K=function(){return K=Object.assign||function(s){for(var v,l=1,m=arguments.length;l<m;l++){v=arguments[l];for(var p in v)Object.prototype.hasOwnProperty.call(v,p)&&(s[p]=v[p])}return s},K.apply(this,arguments)};var ee;(function(r){var s=function(){function o(e,t,a,n){if(this.version=e,this.errorCorrectionLevel=t,this.modules=[],this.isFunction=[],e<o.MIN_VERSION||e>o.MAX_VERSION)throw new RangeError("Version value out of range");if(n<-1||n>7)throw new RangeError("Mask value out of range");this.size=e*4+17;for(var u=[],c=0;c<this.size;c++)u.push(!1);for(var c=0;c<this.size;c++)this.modules.push(u.slice()),this.isFunction.push(u.slice());this.drawFunctionPatterns();var h=this.addEccAndInterleave(a);if(this.drawCodewords(h),n==-1)for(var w=1e9,c=0;c<8;c++){this.applyMask(c),this.drawFormatBits(c);var C=this.getPenaltyScore();C<w&&(n=c,w=C),this.applyMask(c)}m(0<=n&&n<=7),this.mask=n,this.applyMask(n),this.drawFormatBits(n),this.isFunction=[]}return o.encodeText=function(e,t){var a=r.QrSegment.makeSegments(e);return o.encodeSegments(a,t)},o.encodeBinary=function(e,t){var a=r.QrSegment.makeBytes(e);return o.encodeSegments([a],t)},o.encodeSegments=function(e,t,a,n,u,c){if(a===void 0&&(a=1),n===void 0&&(n=40),u===void 0&&(u=-1),c===void 0&&(c=!0),!(o.MIN_VERSION<=a&&a<=n&&n<=o.MAX_VERSION)||u<-1||u>7)throw new RangeError("Invalid value");var h,w;for(h=a;;h++){var C=o.getNumDataCodewords(h,t)*8,F=p.getTotalBits(e,h);if(F<=C){w=F;break}if(h>=n)throw new RangeError("Data too long")}for(var T=0,R=[o.Ecc.MEDIUM,o.Ecc.QUARTILE,o.Ecc.HIGH];T<R.length;T++){var _=R[T];c&&w<=o.getNumDataCodewords(h,_)*8&&(t=_)}for(var k=[],V=0,S=e;V<S.length;V++){var A=S[V];v(A.mode.modeBits,4,k),v(A.numChars,A.mode.numCharCountBits(h),k);for(var b=0,N=A.getData();b<N.length;b++){var U=N[b];k.push(U)}}m(k.length==w);var $=o.getNumDataCodewords(h,t)*8;m(k.length<=$),v(0,Math.min(4,$-k.length),k),v(0,(8-k.length%8)%8,k),m(k.length%8==0);for(var I=236;k.length<$;I^=253)v(I,8,k);for(var z=[];z.length*8<k.length;)z.push(0);return k.forEach(function(ve,ie){return z[ie>>>3]|=ve<<7-(ie&7)}),new o(h,t,z,u)},o.prototype.getModule=function(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]},o.prototype.getModules=function(){return this.modules},o.prototype.drawFunctionPatterns=function(){for(var e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);for(var t=this.getAlignmentPatternPositions(),a=t.length,e=0;e<a;e++)for(var n=0;n<a;n++)e==0&&n==0||e==0&&n==a-1||e==a-1&&n==0||this.drawAlignmentPattern(t[e],t[n]);this.drawFormatBits(0),this.drawVersion()},o.prototype.drawFormatBits=function(e){for(var t=this.errorCorrectionLevel.formatBits<<3|e,a=t,n=0;n<10;n++)a=a<<1^(a>>>9)*1335;var u=(t<<10|a)^21522;m(u>>>15==0);for(var n=0;n<=5;n++)this.setFunctionModule(8,n,l(u,n));this.setFunctionModule(8,7,l(u,6)),this.setFunctionModule(8,8,l(u,7)),this.setFunctionModule(7,8,l(u,8));for(var n=9;n<15;n++)this.setFunctionModule(14-n,8,l(u,n));for(var n=0;n<8;n++)this.setFunctionModule(this.size-1-n,8,l(u,n));for(var n=8;n<15;n++)this.setFunctionModule(8,this.size-15+n,l(u,n));this.setFunctionModule(8,this.size-8,!0)},o.prototype.drawVersion=function(){if(!(this.version<7)){for(var e=this.version,t=0;t<12;t++)e=e<<1^(e>>>11)*7973;var a=this.version<<12|e;m(a>>>18==0);for(var t=0;t<18;t++){var n=l(a,t),u=this.size-11+t%3,c=Math.floor(t/3);this.setFunctionModule(u,c,n),this.setFunctionModule(c,u,n)}}},o.prototype.drawFinderPattern=function(e,t){for(var a=-4;a<=4;a++)for(var n=-4;n<=4;n++){var u=Math.max(Math.abs(n),Math.abs(a)),c=e+n,h=t+a;0<=c&&c<this.size&&0<=h&&h<this.size&&this.setFunctionModule(c,h,u!=2&&u!=4)}},o.prototype.drawAlignmentPattern=function(e,t){for(var a=-2;a<=2;a++)for(var n=-2;n<=2;n++)this.setFunctionModule(e+n,t+a,Math.max(Math.abs(n),Math.abs(a))!=1)},o.prototype.setFunctionModule=function(e,t,a){this.modules[t][e]=a,this.isFunction[t][e]=!0},o.prototype.addEccAndInterleave=function(e){var t=this.version,a=this.errorCorrectionLevel;if(e.length!=o.getNumDataCodewords(t,a))throw new RangeError("Invalid argument");for(var n=o.NUM_ERROR_CORRECTION_BLOCKS[a.ordinal][t],u=o.ECC_CODEWORDS_PER_BLOCK[a.ordinal][t],c=Math.floor(o.getNumRawDataModules(t)/8),h=n-c%n,w=Math.floor(c/n),C=[],F=o.reedSolomonComputeDivisor(u),T=0,R=0;T<n;T++){var _=e.slice(R,R+w-u+(T<h?0:1));R+=_.length;var k=o.reedSolomonComputeRemainder(_,F);T<h&&_.push(0),C.push(_.concat(k))}for(var V=[],S=function(A){C.forEach(function(b,N){(A!=w-u||N>=h)&&V.push(b[A])})},T=0;T<C[0].length;T++)S(T);return m(V.length==c),V},o.prototype.drawCodewords=function(e){if(e.length!=Math.floor(o.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");for(var t=0,a=this.size-1;a>=1;a-=2){a==6&&(a=5);for(var n=0;n<this.size;n++)for(var u=0;u<2;u++){var c=a-u,h=(a+1&2)==0,w=h?this.size-1-n:n;!this.isFunction[w][c]&&t<e.length*8&&(this.modules[w][c]=l(e[t>>>3],7-(t&7)),t++)}}m(t==e.length*8)},o.prototype.applyMask=function(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(var t=0;t<this.size;t++)for(var a=0;a<this.size;a++){var n=void 0;switch(e){case 0:n=(a+t)%2==0;break;case 1:n=t%2==0;break;case 2:n=a%3==0;break;case 3:n=(a+t)%3==0;break;case 4:n=(Math.floor(a/3)+Math.floor(t/2))%2==0;break;case 5:n=a*t%2+a*t%3==0;break;case 6:n=(a*t%2+a*t%3)%2==0;break;case 7:n=((a+t)%2+a*t%3)%2==0;break;default:throw new Error("Unreachable")}!this.isFunction[t][a]&&n&&(this.modules[t][a]=!this.modules[t][a])}},o.prototype.getPenaltyScore=function(){for(var e=0,t=0;t<this.size;t++){for(var a=!1,n=0,u=[0,0,0,0,0,0,0],c=0;c<this.size;c++)this.modules[t][c]==a?(n++,n==5?e+=o.PENALTY_N1:n>5&&e++):(this.finderPenaltyAddHistory(n,u),a||(e+=this.finderPenaltyCountPatterns(u)*o.PENALTY_N3),a=this.modules[t][c],n=1);e+=this.finderPenaltyTerminateAndCount(a,n,u)*o.PENALTY_N3}for(var c=0;c<this.size;c++){for(var a=!1,h=0,u=[0,0,0,0,0,0,0],t=0;t<this.size;t++)this.modules[t][c]==a?(h++,h==5?e+=o.PENALTY_N1:h>5&&e++):(this.finderPenaltyAddHistory(h,u),a||(e+=this.finderPenaltyCountPatterns(u)*o.PENALTY_N3),a=this.modules[t][c],h=1);e+=this.finderPenaltyTerminateAndCount(a,h,u)*o.PENALTY_N3}for(var t=0;t<this.size-1;t++)for(var c=0;c<this.size-1;c++){var w=this.modules[t][c];w==this.modules[t][c+1]&&w==this.modules[t+1][c]&&w==this.modules[t+1][c+1]&&(e+=o.PENALTY_N2)}for(var C=0,F=0,T=this.modules;F<T.length;F++){var R=T[F];C=R.reduce(function(V,S){return V+(S?1:0)},C)}var _=this.size*this.size,k=Math.ceil(Math.abs(C*20-_*10)/_)-1;return m(0<=k&&k<=9),e+=k*o.PENALTY_N4,m(0<=e&&e<=2568888),e},o.prototype.getAlignmentPatternPositions=function(){if(this.version==1)return[];for(var e=Math.floor(this.version/7)+2,t=Math.floor((this.version*8+e*3+5)/(e*4-4))*2,a=[6],n=this.size-7;a.length<e;n-=t)a.splice(1,0,n);return a},o.getNumRawDataModules=function(e){if(e<o.MIN_VERSION||e>o.MAX_VERSION)throw new RangeError("Version number out of range");var t=(16*e+128)*e+64;if(e>=2){var a=Math.floor(e/7)+2;t-=(25*a-10)*a-55,e>=7&&(t-=36)}return m(208<=t&&t<=29648),t},o.getNumDataCodewords=function(e,t){return Math.floor(o.getNumRawDataModules(e)/8)-o.ECC_CODEWORDS_PER_BLOCK[t.ordinal][e]*o.NUM_ERROR_CORRECTION_BLOCKS[t.ordinal][e]},o.reedSolomonComputeDivisor=function(e){if(e<1||e>255)throw new RangeError("Degree out of range");for(var t=[],a=0;a<e-1;a++)t.push(0);t.push(1);for(var n=1,a=0;a<e;a++){for(var u=0;u<t.length;u++)t[u]=o.reedSolomonMultiply(t[u],n),u+1<t.length&&(t[u]^=t[u+1]);n=o.reedSolomonMultiply(n,2)}return t},o.reedSolomonComputeRemainder=function(e,t){for(var a=t.map(function(w){return 0}),n=function(w){var C=w^a.shift();a.push(0),t.forEach(function(F,T){return a[T]^=o.reedSolomonMultiply(F,C)})},u=0,c=e;u<c.length;u++){var h=c[u];n(h)}return a},o.reedSolomonMultiply=function(e,t){if(e>>>8||t>>>8)throw new RangeError("Byte out of range");for(var a=0,n=7;n>=0;n--)a=a<<1^(a>>>7)*285,a^=(t>>>n&1)*e;return m(a>>>8==0),a},o.prototype.finderPenaltyCountPatterns=function(e){var t=e[1];m(t<=this.size*3);var a=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(a&&e[0]>=t*4&&e[6]>=t?1:0)+(a&&e[6]>=t*4&&e[0]>=t?1:0)},o.prototype.finderPenaltyTerminateAndCount=function(e,t,a){return e&&(this.finderPenaltyAddHistory(t,a),t=0),t+=this.size,this.finderPenaltyAddHistory(t,a),this.finderPenaltyCountPatterns(a)},o.prototype.finderPenaltyAddHistory=function(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)},o.MIN_VERSION=1,o.MAX_VERSION=40,o.PENALTY_N1=3,o.PENALTY_N2=3,o.PENALTY_N3=40,o.PENALTY_N4=10,o.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],o.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],o}();r.QrCode=s;function v(o,e,t){if(e<0||e>31||o>>>e)throw new RangeError("Value out of range");for(var a=e-1;a>=0;a--)t.push(o>>>a&1)}function l(o,e){return(o>>>e&1)!=0}function m(o){if(!o)throw new Error("Assertion error")}var p=function(){function o(e,t,a){if(this.mode=e,this.numChars=t,this.bitData=a,t<0)throw new RangeError("Invalid argument");this.bitData=a.slice()}return o.makeBytes=function(e){for(var t=[],a=0,n=e;a<n.length;a++){var u=n[a];v(u,8,t)}return new o(o.Mode.BYTE,e.length,t)},o.makeNumeric=function(e){if(!o.isNumeric(e))throw new RangeError("String contains non-numeric characters");for(var t=[],a=0;a<e.length;){var n=Math.min(e.length-a,3);v(parseInt(e.substring(a,a+n),10),n*3+1,t),a+=n}return new o(o.Mode.NUMERIC,e.length,t)},o.makeAlphanumeric=function(e){if(!o.isAlphanumeric(e))throw new RangeError("String contains unencodable characters in alphanumeric mode");var t=[],a;for(a=0;a+2<=e.length;a+=2){var n=o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a))*45;n+=o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a+1)),v(n,11,t)}return a<e.length&&v(o.ALPHANUMERIC_CHARSET.indexOf(e.charAt(a)),6,t),new o(o.Mode.ALPHANUMERIC,e.length,t)},o.makeSegments=function(e){return e==""?[]:o.isNumeric(e)?[o.makeNumeric(e)]:o.isAlphanumeric(e)?[o.makeAlphanumeric(e)]:[o.makeBytes(o.toUtf8ByteArray(e))]},o.makeEci=function(e){var t=[];if(e<0)throw new RangeError("ECI assignment value out of range");if(e<128)v(e,8,t);else if(e<16384)v(2,2,t),v(e,14,t);else if(e<1e6)v(6,3,t),v(e,21,t);else throw new RangeError("ECI assignment value out of range");return new o(o.Mode.ECI,0,t)},o.isNumeric=function(e){return o.NUMERIC_REGEX.test(e)},o.isAlphanumeric=function(e){return o.ALPHANUMERIC_REGEX.test(e)},o.prototype.getData=function(){return this.bitData.slice()},o.getTotalBits=function(e,t){for(var a=0,n=0,u=e;n<u.length;n++){var c=u[n],h=c.mode.numCharCountBits(t);if(c.numChars>=1<<h)return 1/0;a+=4+h+c.bitData.length}return a},o.toUtf8ByteArray=function(e){e=encodeURI(e);for(var t=[],a=0;a<e.length;a++)e.charAt(a)!="%"?t.push(e.charCodeAt(a)):(t.push(parseInt(e.substring(a+1,a+3),16)),a+=2);return t},o.NUMERIC_REGEX=/^[0-9]*$/,o.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,o.ALPHANUMERIC_CHARSET="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:",o}();r.QrSegment=p})(ee||(ee={}));(function(r){(function(s){var v=function(){function l(m,p){this.ordinal=m,this.formatBits=p}return l.LOW=new l(0,1),l.MEDIUM=new l(1,0),l.QUARTILE=new l(2,3),l.HIGH=new l(3,2),l}();s.Ecc=v})(r.QrCode||(r.QrCode={}))})(ee||(ee={}));(function(r){(function(s){var v=function(){function l(m,p){this.modeBits=m,this.numBitsCharCount=p}return l.prototype.numCharCountBits=function(m){return this.numBitsCharCount[Math.floor((m+7)/17)]},l.NUMERIC=new l(1,[10,12,14]),l.ALPHANUMERIC=new l(2,[9,11,13]),l.BYTE=new l(4,[8,16,16]),l.KANJI=new l(8,[8,10,12]),l.ECI=new l(7,[0,0,0]),l}();s.Mode=v})(r.QrSegment||(r.QrSegment={}))})(ee||(ee={}));var oe=ee,_e="L",be={L:oe.QrCode.Ecc.LOW,M:oe.QrCode.Ecc.MEDIUM,Q:oe.QrCode.Ecc.QUARTILE,H:oe.QrCode.Ecc.HIGH},Rt=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}();function we(r){return r in be}function Ue(r,s){s===void 0&&(s=0);var v=[];return r.forEach(function(l,m){var p=null;l.forEach(function(o,e){if(!o&&p!==null){v.push("M".concat(p+s," ").concat(m+s,"h").concat(e-p,"v1H").concat(p+s,"z")),p=null;return}if(e===l.length-1){if(!o)return;p===null?v.push("M".concat(e+s,",").concat(m+s," h1v1H").concat(e+s,"z")):v.push("M".concat(p+s,",").concat(m+s," h").concat(e+1-p,"v1H").concat(p+s,"z"));return}o&&p===null&&(p=e)})}),v.join("")}function $e(r,s,v,l){var m=l.width,p=l.height,o=l.x,e=l.y,t=r.length+v*2,a=Math.floor(s*.1),n=t/s,u=(m||a)*n,c=(p||a)*n,h=o==null?r.length/2-u/2:o*n,w=e==null?r.length/2-c/2:e*n,C=null;if(l.excavate){var F=Math.floor(h),T=Math.floor(w),R=Math.ceil(u+h-F),_=Math.ceil(c+w-T);C={x:F,y:T,w:R,h:_}}return{x:h,y:w,h:c,w:u,excavation:C}}function De(r,s){return r.slice().map(function(v,l){return l<s.y||l>=s.y+s.h?v:v.map(function(m,p){return p<s.x||p>=s.x+s.w?m:!1})})}var Ce={value:{type:String,required:!0,default:""},size:{type:Number,default:100},level:{type:String,default:_e,validator:function(r){return we(r)}},background:{type:String,default:"#fff"},foreground:{type:String,default:"#000"},margin:{type:Number,required:!1,default:0},imageSettings:{type:Object,required:!1,default:function(){return{}}},gradient:{type:Boolean,required:!1,default:!1},gradientType:{type:String,required:!1,default:"linear",validator:function(r){return["linear","radial"].indexOf(r)>-1}},gradientStartColor:{type:String,required:!1,default:"#000"},gradientEndColor:{type:String,required:!1,default:"#fff"}},Mt=K(K({},Ce),{renderAs:{type:String,required:!1,default:"canvas",validator:function(r){return["canvas","svg"].indexOf(r)>-1}}}),Nt=ge({name:"QRCodeSvg",props:Ce,setup:function(r){var s=y(0),v=y(""),l,m=function(){var o=r.value,e=r.level,t=r.margin,a=t>>>0,n=we(e)?e:_e,u=oe.QrCode.encodeText(o,be[n]).getModules();if(s.value=u.length+a*2,r.imageSettings.src){var c=$e(u,r.size,a,r.imageSettings);l={x:c.x+a,y:c.y+a,width:c.w,height:c.h},c.excavation&&(u=De(u,c.excavation))}v.value=Ue(u,a)},p=function(){if(!r.gradient)return null;var o=r.gradientType==="linear"?{x1:"0%",y1:"0%",x2:"100%",y2:"100%"}:{cx:"50%",cy:"50%",r:"50%",fx:"50%",fy:"50%"};return B(r.gradientType==="linear"?"linearGradient":"radialGradient",K({id:"qr-gradient"},o),[B("stop",{offset:"0%",style:{stopColor:r.gradientStartColor}}),B("stop",{offset:"100%",style:{stopColor:r.gradientEndColor}})])};return m(),Re(m),function(){return B("svg",{width:r.size,height:r.size,"shape-rendering":"crispEdges",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(s.value," ").concat(s.value)},[B("defs",{},[p()]),B("rect",{width:"100%",height:"100%",fill:r.background}),B("path",{fill:r.gradient?"url(#qr-gradient)":r.foreground,d:v.value}),r.imageSettings.src&&B("image",K({href:r.imageSettings.src},l))])}}}),Ft=ge({name:"QRCodeCanvas",props:Ce,setup:function(r,s){var v=y(null),l=y(null),m=function(){var o=r.value,e=r.level,t=r.size,a=r.margin,n=r.background,u=r.foreground,c=r.gradient,h=r.gradientType,w=r.gradientStartColor,C=r.gradientEndColor,F=a>>>0,T=we(e)?e:_e,R=v.value;if(R){var _=R.getContext("2d");if(_){var k=oe.QrCode.encodeText(o,be[T]).getModules(),V=k.length+F*2,S=l.value,A={x:0,y:0,width:0,height:0},b=r.imageSettings.src&&S!=null&&S.naturalWidth!==0&&S.naturalHeight!==0;if(b){var N=$e(k,r.size,F,r.imageSettings);A={x:N.x+F,y:N.y+F,width:N.w,height:N.h},N.excavation&&(k=De(k,N.excavation))}var U=window.devicePixelRatio||1,$=t/V*U;if(R.height=R.width=t*U,_.scale($,$),_.fillStyle=n,_.fillRect(0,0,V,V),c){var I=void 0;h==="linear"?I=_.createLinearGradient(0,0,V,V):I=_.createRadialGradient(V/2,V/2,0,V/2,V/2,V/2),I.addColorStop(0,w),I.addColorStop(1,C),_.fillStyle=I}else _.fillStyle=u;Rt?_.fill(new Path2D(Ue(k,F))):k.forEach(function(z,ve){z.forEach(function(ie,Oe){ie&&_.fillRect(Oe+F,ve+F,1,1)})}),b&&_.drawImage(S,A.x,A.y,A.width,A.height)}}};ce(m),Re(m);var p=s.attrs.style;return function(){return B(O,[B("canvas",K(K({},s.attrs),{ref:v,style:K(K({},p),{width:"".concat(r.size,"px"),height:"".concat(r.size,"px")})})),r.imageSettings.src&&B("img",{ref:l,src:r.imageSettings.src,style:{display:"none"},onLoad:m})])}}}),Tt=ge({name:"Qrcode",render:function(){var r=this.$props,s=r.renderAs,v=r.value,l=r.size,m=r.margin,p=r.level,o=r.background,e=r.foreground,t=r.imageSettings,a=r.gradient,n=r.gradientType,u=r.gradientStartColor,c=r.gradientEndColor;return B(s==="svg"?Nt:Ft,{value:v,size:l,margin:m,level:p,background:o,foreground:e,imageSettings:t,gradient:a,gradientType:n,gradientStartColor:u,gradientEndColor:c})},props:Mt});const It=Be({autofocus:Boolean,divider:String,focusAll:Boolean,label:{type:String,default:"$vuetify.input.otp"},length:{type:[Number,String],default:6},modelValue:{type:[Number,String],default:void 0},placeholder:String,type:{type:String,default:"number"},...ut(),...ct(),...We(ot({variant:"outlined"}),["baseColor","bgColor","class","color","disabled","error","loading","rounded","style","theme","variant"])},"VOtpInput"),Ut=ze()({name:"VOtpInput",props:It(),emits:{finish:r=>!0,"update:focused":r=>!0,"update:modelValue":r=>!0},setup(r,s){let{attrs:v,emit:l,slots:m}=s;const{dimensionStyles:p}=st(r),{isFocused:o,focus:e,blur:t}=dt(r),a=Qe(r,"modelValue","",b=>b==null?[]:String(b).split(""),b=>b.join("")),{t:n}=He(),u=Y(()=>Number(r.length)),c=Y(()=>Array(u.value).fill(0)),h=y(-1),w=y(),C=y([]),F=Y(()=>C.value[h.value]);function T(){if(A(F.value.value)){F.value.value="";return}const b=a.value.slice(),N=F.value.value;b[h.value]=N;let U=null;h.value>a.value.length?U=a.value.length+1:h.value+1!==u.value&&(U="next"),a.value=b,U&&Ae(w.value,U)}function R(b){const N=a.value.slice(),U=h.value;let $=null;["ArrowLeft","ArrowRight","Backspace","Delete"].includes(b.key)&&(b.preventDefault(),b.key==="ArrowLeft"?$="prev":b.key==="ArrowRight"?$="next":["Backspace","Delete"].includes(b.key)&&(N[h.value]="",a.value=N,h.value>0&&b.key==="Backspace"?$="prev":requestAnimationFrame(()=>{var I;(I=C.value[U])==null||I.select()})),requestAnimationFrame(()=>{$!=null&&Ae(w.value,$)}))}function _(b,N){var $,I;N.preventDefault(),N.stopPropagation();const U=(($=N==null?void 0:N.clipboardData)==null?void 0:$.getData("Text").trim().slice(0,u.value))??"";A(U)||(a.value=U.split(""),(I=C.value)==null||I[b].blur())}function k(){a.value=[]}function V(b,N){e(),h.value=N}function S(){t(),h.value=-1}function A(b){return r.type==="number"&&/[^0-9]/g.test(b)}return Ke({VField:{color:ae(()=>r.color),bgColor:ae(()=>r.color),baseColor:ae(()=>r.baseColor),disabled:ae(()=>r.disabled),error:ae(()=>r.error),variant:ae(()=>r.variant)}},{scoped:!0}),me(a,b=>{b.length===u.value&&(h.value=u.value-1,l("finish",b.join("")))},{deep:!0}),me(h,b=>{b<0||Ge(()=>{var N;(N=C.value[b])==null||N.select()})}),it(()=>{var U;const[b,N]=Ye(v);return E("div",ke({class:["v-otp-input",{"v-otp-input--divided":!!r.divider},r.class],style:[r.style]},b),[E("div",{ref:w,class:"v-otp-input__content",style:qe([p.value])},[c.value.map(($,I)=>E(O,null,[r.divider&&I!==0&&E("span",{class:"v-otp-input__divider"},[r.divider]),i(at,{focused:o.value&&r.focusAll||h.value===I,key:I},{...m,loader:void 0,default:()=>E("input",{ref:z=>C.value[I]=z,"aria-label":n(r.label,I+1),autofocus:I===0&&r.autofocus,autocomplete:"one-time-code",class:Je(["v-otp-input__field"]),disabled:r.disabled,inputmode:r.type==="number"?"numeric":"text",min:r.type==="number"?0:void 0,maxlength:I===0?u.value:"1",placeholder:r.placeholder,type:r.type==="number"?"text":r.type,value:a.value[I],onInput:T,onFocus:z=>V(z,I),onBlur:S,onKeydown:R,onPaste:z=>_(I,z)},null)})])),E("input",ke({class:"v-otp-input-input",type:"hidden"},N,{value:a.value.join("")}),null),i(lt,{contained:!0,"content-class":"v-otp-input__loader","model-value":!!r.loading,persistent:!0},{default:()=>{var $;return[(($=m.loader)==null?void 0:$.call(m))??i(rt,{color:typeof r.loading=="boolean"?void 0:r.loading,indeterminate:!0,size:"24",width:"2"},null)]}}),(U=m.default)==null?void 0:U.call(m)])])}),{blur:()=>{var b;(b=C.value)==null||b.some(N=>N.blur())},focus:()=>{var b;(b=C.value)==null||b[0].focus()},reset:k,isFocused:o}}}),$t={class:"text-h6"},Dt={class:"m-label"},xt={class:"mt-4"},Ot={class:"m-label"},Lt={class:"mt-5"},zt={tag:"p",class:"my-4"},Bt={__name:"TotpAuthForm",setup(r){const{$gettext:s}=J(),v=te(),l=se(),m=y(),p=y(""),o=y([]),e=y(null),t=y(null),a=y(!1),n=y(!1),u=y(""),c=y([]),h=y([]),w=y(!1),C=Y(()=>l.authUser.totp_enabled);function F(){H.getKeyForTFASetup().then(V=>{e.value=V.data.key,t.value=V.data.url})}function T(){navigator.clipboard.writeText(e.value),a.value=!0}function R(){H.startTFASetup().then(()=>{F()})}function _(){l.finalizeTFASetup(p.value).then(V=>{e.value=null,t.value=null,V.status===200&&(h.value=V.data.tokens),w.value=!0}).catch(V=>{V.response.status===400&&(o.value=V.response.data.pin_code)})}async function k(){if(!await m.value.validate())return;const S={password:u.value};n.value=!0,H.disableTFA(S).then(()=>{l.fetchUser()}).catch(A=>{A.response.status===400?c.value=A.response.data.password:v.displayNotification({msg:s(A.response.data),type:"error"})}).finally(()=>{n.value=!1,m.value.reset()})}return(V,S)=>(M(),D("div",null,[i(W,{flat:""},{default:d(()=>[i(fe,null,{default:d(()=>[E("span",$t,g(f(s)("One-time passwords")),1)]),_:1}),i(q,null,{default:d(()=>[t.value?(M(),x(ue,{key:0},{default:d(()=>[i(re,{cols:"4"},{default:d(()=>[i(ue,{rows:"2"},{default:d(()=>[i(Tt,{value:t.value,size:250,"render-as":"svg",level:"H",class:"qrcode"},null,8,["value"])]),_:1}),i(ue,null,{default:d(()=>[i(L,{color:"primary",class:"key",onClick:T},{default:d(()=>[P(g(f(s)("Click here to copy the key"))+" ",1),a.value?(M(),x(he,{key:0,color:"success"},{default:d(()=>S[2]||(S[2]=[P(" mdi-check-all ")])),_:1,__:[2]})):G("",!0)]),_:1})]),_:1})]),_:1}),i(re,{cols:"6"},{default:d(()=>[i(X,{type:"info",class:"ma-4"},{default:d(()=>[P(g(f(s)("Install a soft token authenticator like FreeOTP or Google Authenticator from your application repository and use that app to scan this QR code.")),1)]),_:1}),E("label",Dt,g(f(s)("Pin code")),1),i(Ut,{modelValue:p.value,"onUpdate:modelValue":S[0]||(S[0]=A=>p.value=A),error:o.value.length!==0},null,8,["modelValue","error"]),i(L,{color:"primary",onClick:_},{default:d(()=>[P(g(f(s)("Register")),1)]),_:1})]),_:1})]),_:1})):w.value?(M(),D(O,{key:1},[i(X,{type:"success"},{default:d(()=>[P(g(f(s)("Congratulations! Two-factor authentication using one-time passwords is now enabled for your account.")),1)]),_:1}),h.value.length?(M(),D(O,{key:0},[E("p",xt,g(f(s)("The following recovery codes can be used one time each to let you regain access to your account, in case you lose your phone for example. Make sure to save them in a safe place, otherwise you won't be able to access your account anymore.")),1),i(Ne,{density:"compact"},{default:d(()=>[E("tbody",null,[(M(!0),D(O,null,Me(h.value,A=>(M(),D("tr",{key:A},[E("td",null,g(A),1)]))),128))])]),_:1})],64)):G("",!0)],64)):C.value?(M(),D(O,{key:2},[i(X,{type:"info",class:"mb-2"},{default:d(()=>[P(g(f(s)("Two-factor authentication using one-time passwords is enabled for your account.")),1)]),_:1}),i(Z,{ref_key:"editTFAForm",ref:m},{default:d(()=>[E("label",Ot,g(f(s)("Password")),1),i(Q,{modelValue:u.value,"onUpdate:modelValue":S[1]||(S[1]=A=>u.value=A),autocomplete:"new-password",type:"password",variant:"outlined",density:"compact",rules:[f(j).required],"error-messages":c.value},null,8,["modelValue","rules","error-messages"]),E("div",Lt,[i(L,{color:"error",class:"mr-2",loading:n.value,onClick:k},{default:d(()=>[P(g(f(s)("Disable 2FA")),1)]),_:1},8,["loading"])])]),_:1},512)],64)):(M(),D(O,{key:3},[E("div",zt,g(f(s)("Two-factor authentication (2FA) using one-time passwords is not yet activated for your account.")),1),i(L,{color:"success",onClick:R},{default:d(()=>[P(g(f(s)("Register authenticator")),1)]),_:1})],64))]),_:1})]),_:1})]))}},Qt={class:"headline"},xe={__name:"RecoveryCodesResetDialog",props:{tokens:{type:Array,default:null}},emits:["close"],setup(r,{emit:s}){const{$gettext:v}=J(),l=s;function m(){l("close")}return(p,o)=>(M(),x(W,null,{default:d(()=>[i(fe,null,{default:d(()=>[E("span",Qt,g(f(v)("New recovery codes")),1)]),_:1}),i(q,null,{default:d(()=>[i(X,{type:"info"},{default:d(()=>[P(g(f(v)("The following recovery codes can be used one time each to let you regain access to your account, in case you lose your phone for example. Make sure to save them in a safe place, otherwise you won't be able to access your account anymore.")),1)]),_:1}),i(Ne,{class:"mt-4",density:"compact"},{default:d(()=>[E("tbody",null,[(M(!0),D(O,null,Me(r.tokens,e=>(M(),D("tr",{key:e},[E("td",null,g(e),1)]))),128))])]),_:1})]),_:1}),i(ye,null,{default:d(()=>[i(ft),i(L,{color:"grey darken-1",text:"",onClick:m},{default:d(()=>[P(g(f(v)("Close")),1)]),_:1})]),_:1})]),_:1}))}},Ht={class:"text-h6"},Kt={class:"m-label"},Gt={class:"mt-5"},Yt={key:1,tag:"p",class:"my-4"},qt={__name:"BackupCodeAuthForm",setup(r){const{$gettext:s}=J(),v=te(),l=se(),m=Y(()=>l.authUser.tfa_enabled),p=y(!1),o=y(),e=y(""),t=y([]),a=y(),n=y(!1);async function u(){if(!await o.value.validate())return;const w={password:e.value};p.value=!0,H.resetRecoveryCodes(w).then(C=>{t.value=C.data.tokens,n.value=!0}).catch(C=>{C.response.status===400?a.value=C.response.data.password:v.displayNotification({msg:s(C.response.data),type:"error"})}).finally(()=>{p.value=!1,o.value.reset()})}function c(){t.value=[],n.value=!1}return(h,w)=>(M(),D("div",null,[i(W,{flat:""},{default:d(()=>[i(fe,null,{default:d(()=>[E("span",Ht,g(f(s)("Backup codes")),1)]),_:1}),i(q,null,{default:d(()=>[m.value?(M(),D(O,{key:0},[i(X,{type:"info",class:"mb-2"},{default:d(()=>[P(g(f(s)("You already have generated backup codes for this account. If you don't remember them or have used them all, you can generate new ones.")),1)]),_:1}),i(Z,{ref_key:"editTFAForm",ref:o},{default:d(()=>[E("label",Kt,g(f(s)("Password")),1),i(Q,{modelValue:e.value,"onUpdate:modelValue":w[0]||(w[0]=C=>e.value=C),autocomplete:"new-password",type:"password",variant:"outlined",density:"compact",rules:[f(j).required],"error-messages":a.value},null,8,["modelValue","rules","error-messages"]),E("div",Gt,[i(L,{loading:p.value,color:"success",onClick:u},{default:d(()=>[P(g(f(s)("Reset recovery codes")),1)]),_:1},8,["loading"])])]),_:1},512)],64)):(M(),D("div",Yt,g(f(s)("No two-factor authentificator is yet set for your account.")),1)),i(Fe,{modelValue:n.value,"onUpdate:modelValue":w[1]||(w[1]=C=>n.value=C),"max-width":"800px",persistent:""},{default:d(()=>[i(f(xe),{tokens:t.value,onClose:c},null,8,["tokens"])]),_:1},8,["modelValue"])]),_:1})]),_:1})]))}},Wt={class:"m-label"},Jt={__name:"ForwardForm",setup(r){const{$gettext:s}=J(),v=te(),l=y({}),m=y(!1);async function p(){m.value=!0;try{await H.setForward(l.value),v.displayNotification({type:"success",msg:s("Forward updated")})}finally{m.value=!1}}return H.getForward().then(o=>{l.value=o.data}),(o,e)=>(M(),x(W,{flat:""},{default:d(()=>[i(q,null,{default:d(()=>[E("label",Wt,g(f(s)("Recipient(s)")),1),i(Te,{modelValue:l.value.recipients,"onUpdate:modelValue":e[0]||(e[0]=t=>l.value.recipients=t),hint:f(s)("Indicate one or more recipients separated by a comma (,)"),"persistent-hint":"",rows:"3",variant:"outlined"},null,8,["modelValue","hint"]),i(Ie,{modelValue:l.value.keepcopies,"onUpdate:modelValue":e[1]||(e[1]=t=>l.value.keepcopies=t),label:f(s)("Keep local copies"),hint:f(s)("Forward messages and store copies into your local mailbox"),"persistent-hint":""},null,8,["modelValue","label","hint"])]),_:1}),i(ye,{class:"pa-4"},{default:d(()=>[i(L,{color:"success",variant:"flat",loading:m.value,onClick:p},{default:d(()=>[P(g(f(s)("Update")),1)]),_:1},8,["loading"])]),_:1})]),_:1}))}},Xt={class:"m-label"},Zt={class:"mb-4"},jt={class:"m-label"},ea={class:"mb-4"},ta={class:"m-label"},aa={class:"mb-4"},oa={class:"m-label"},na={__name:"AutoReplyForm",setup(r){const s=te(),{$gettext:v}=J(),l=y({}),m=y(),p=y(!1);async function o(){const{valid:e}=await m.value.validate();e&&(p.value=!0,l.value.fromdate===""&&(l.value.fromdate=null),l.value.untildate===""&&(l.value.untildate=null),H.setARMessage(l.value).then(()=>{s.displayNotification({msg:v("Auto-reply message updated")}),p.value=!1}).catch(()=>{p.value=!1}))}return H.getARMessage().then(e=>{l.value=e.data,l.value.fromdate&&(l.value.fromdate=l.value.fromdate.slice(0,-4)),l.value.untildate&&(l.value.untildate=l.value.untildate.slice(0,-4))}),(e,t)=>(M(),x(W,{flat:""},{default:d(()=>[i(q,null,{default:d(()=>[i(Z,{ref_key:"formRef",ref:m,onSubmit:de(o,["prevent"])},{default:d(()=>[i(Ie,{modelValue:l.value.enabled,"onUpdate:modelValue":t[0]||(t[0]=a=>l.value.enabled=a),label:f(v)("Enabled"),color:"primary","hide-details":"",class:"mb-4"},null,8,["modelValue","label"]),E("label",Xt,g(f(v)("Subject")),1),i(Q,{modelValue:l.value.subject,"onUpdate:modelValue":t[1]||(t[1]=a=>l.value.subject=a),variant:"outlined",density:"compact",rules:[f(j).required]},null,8,["modelValue","rules"]),E("div",Zt,[E("label",jt,g(f(v)("Content")),1),i(Te,{modelValue:l.value.content,"onUpdate:modelValue":t[2]||(t[2]=a=>l.value.content=a),hint:f(v)("The content of your answer. You can use the following variables, which will be automatically replaced by the appropriate value: %(name)s, %(fromdate)s, %(untildate)s"),"persistent-hint":"",variant:"outlined",rows:"3",density:"compact",rules:[f(j).required]},null,8,["modelValue","hint","rules"])]),E("div",ea,[E("label",ta,g(f(v)("From")),1),i(Q,{modelValue:l.value.fromdate,"onUpdate:modelValue":t[3]||(t[3]=a=>l.value.fromdate=a),hint:f(v)("Activate your auto reply from this date"),variant:"outlined","persistent-hint":"",type:"datetime-local",density:"compact"},null,8,["modelValue","hint"])]),E("div",aa,[E("label",oa,g(f(v)("Until")),1),i(Q,{modelValue:l.value.untildate,"onUpdate:modelValue":t[4]||(t[4]=a=>l.value.untildate=a),hint:f(v)("Activate your auto reply until this date"),variant:"outlined","persistent-hint":"",type:"datetime-local",density:"compact"},null,8,["modelValue","hint"])]),i(L,{color:"success",type:"submit",loading:p.value},{default:d(()=>[P(g(f(v)("Update auto-reply")),1)]),_:1},8,["loading"])]),_:1},512)]),_:1})]),_:1}))}},la={class:"m-label"},ra={class:"ml-5 mr-5"},sa=["href"],ia={__name:"APISetupForm",setup(r){const{$gettext:s}=J(),v=te(),l=Xe("$config"),m=Y(()=>l.API_DOC_URL),p=y(!1),o=y(null),e=y();function t(){navigator.clipboard.writeText(o.value),v.displayNotification({msg:s("API token copied to your clipboard"),type:"success"})}function a(){p.value=!0,H.createAPIToken().then(c=>{o.value=c.data.token,v.displayNotification({msg:s("API token created"),type:"success"})}).finally(()=>p.value=!1)}function n(){e.value.open(s("Warning"),s("You are about to delete your API access token"),{color:"error",cancelLabel:s("Cancel"),agreeLabel:s("Proceed")})}async function u(){await H.deleteAPIToken(),v.displayNotification({msg:s("API token deleted"),type:"success"}),o.value=null}return ce(()=>{H.getAPIToken().then(c=>{o.value=c.data.token})}),(c,h)=>(M(),D(O,null,[o.value?(M(),x(W,{key:1,flat:""},{default:d(()=>[i(q,null,{default:d(()=>[E("label",la,g(f(s)("Your API token is:")),1),E("code",ra,g(o.value),1),i(L,{icon:"mdi-clipboard-plus",density:"compact",title:f(s)("Copy token to clipboard"),variant:"text",onClick:h[0]||(h[0]=w=>t())},null,8,["title"]),i(L,{icon:"mdi-delete",density:"compact",color:"error",variant:"text",title:f(s)("Delete token"),onClick:n},null,8,["title"])]),_:1})]),_:1})):(M(),x(W,{key:0,flat:""},{default:d(()=>[i(q,null,{default:d(()=>[P(g(f(s)("Your API token has not been generated yet.")),1)]),_:1}),i(ye,null,{default:d(()=>[i(L,{color:"success",variant:"flat",loading:p.value,onClick:a},{default:d(()=>[P(g(f(s)("Generate")),1)]),_:1},8,["loading"])]),_:1})]),_:1})),i(X,{type:"info",variant:"tonal",border:"start",class:"mt-4"},{default:d(()=>[P(g(f(s)("A documentation of the API is available"))+" ",1),E("a",{href:m.value,target:"_blank"},g(f(s)("here")),9,sa),h[1]||(h[1]=P(". "))]),_:1,__:[1]}),i(pe,{ref_key:"confirm",ref:e,onAgree:u},null,512)],64))}},ua={class:"text-h6"},da={tag:"p",class:"my-4"},ca={__name:"FidoAuthForm",setup(r){const s=se(),v=te(),{$gettext:l}=J(),m=y(),p=y(!1),o=!!(navigator.credentials&&navigator.credentials.create&&navigator.credentials.get&&PublicKeyCredential.parseCreationOptionsFromJSON),e=y(),t=Y(()=>s.fidoCreds),a=[{title:l("Name"),key:"name"},{title:l("Added On"),key:"added_on"},{title:l("Last Used"),key:"last_used"},{title:l("Use count"),key:"use_count"},{title:l("Actions"),key:"actions"}],n=y(),u=y(),c=y(),h=y(""),w=y(),C=y(!1);async function F(){const{valid:V}=await e.value.validate();if(!V)return;p.value=!0;const S=await Ze.beginFidoRegistration();if(S){const A=PublicKeyCredential.parseCreationOptionsFromJSON(S.data.publicKey);navigator.credentials.create({publicKey:A}).then(b=>{const N=b.toJSON();N.name=m.value,s.addFidoCred(N).then(U=>{U.status===200&&(w.value=U.data.tokens,C.value=!0)}),e.value.reset(),p.value=!1}).catch(b=>{console.log(b),e.value.reset(),p.value=!1,v.displayNotification({msg:l("Failed to register the webAuthN device"),type:"error"})})}p.value=!1}function T(){w.value=[],C.value=!1}async function R(V){await n.value.open(l("Warning"),l("Do you really want to delete this WebAuthn device?"),{color:"warning",cancelLabel:l("No"),agreeLabel:l("Yes")})&&s.deleteFidoCreds(V.id)}async function _(){return(await c.value.validate()).valid}async function k(V){if(h.value=V.name,!await u.value.open(l("Edition"),l("Edit your device"),{color:"warning",cancelLabel:l("Cancel"),agreeLabel:l("Save")}))return;const A={name:h.value};await s.editFidoCred(V.id,A)}return ce(()=>{s.getFidoCreds()}),(V,S)=>(M(),D(O,null,[E("div",null,[i(W,{flat:""},{default:d(()=>[i(fe,null,{default:d(()=>[E("span",ua,g(f(l)("WebAuthn")),1)]),_:1}),i(q,null,{default:d(()=>[i(ue,null,{default:d(()=>[t.value.length===0?(M(),x(re,{key:0,cols:"4"},{default:d(()=>[E("div",da,g(f(l)("You don't have any WebAuthN device registered as a second authentication method.")),1)]),_:1})):(M(),x(re,{key:1,cols:"8"},{default:d(()=>[E("h3",null,g(f(l)("Registered Webauthn devices")),1),i(vt,{headers:a,items:t.value,"item-value":"id"},{"item.added_on":d(({item:A})=>[P(g(V.$date(A.added_on)),1)]),"item.last_used":d(({item:A})=>[A.last_used===null?(M(),D(O,{key:0},[P(g(f(l)("Never")),1)],64)):(M(),D(O,{key:1},[P(g(V.$date(A.last_used)),1)],64))]),"item.enabled":d(({item:A})=>[P(g(V.$yesno(A.enabled)),1)]),"item.actions":d(({item:A})=>[i(he,{class:"me-2",size:"small",onClick:b=>k(A)},{default:d(()=>S[3]||(S[3]=[P(" mdi-pencil ")])),_:2,__:[3]},1032,["onClick"]),i(he,{size:"small",onClick:b=>R(A)},{default:d(()=>S[4]||(S[4]=[P(" mdi-delete ")])),_:2,__:[4]},1032,["onClick"])]),_:2},1032,["items"])]),_:1})),i(re,{cols:"4"},{default:d(()=>[o?(M(),D(O,{key:0},[E("h3",null,g(f(l)("Enter a name to register a new webauthn device.")),1),i(Z,{ref_key:"fidoForm",ref:e,onSubmit:de(F,["prevent"])},{default:d(()=>[i(Q,{modelValue:m.value,"onUpdate:modelValue":S[0]||(S[0]=A=>m.value=A),label:f(l)("New device name"),rules:[f(j).required]},null,8,["modelValue","label","rules"]),i(L,{color:"success",type:"submit",loading:p.value},{default:d(()=>[P(g(f(l)("Setup device")),1)]),_:1},8,["loading"])]),_:1},512)],64)):(M(),x(X,{key:1,type:"error"},{default:d(()=>[P(g(f(l)("Your browser does not seem compatible with WebAuthN")),1)]),_:1}))]),_:1})]),_:1})]),_:1})]),_:1})]),i(pe,{ref_key:"confirmDeletion",ref:n},null,512),i(pe,{ref_key:"confirmEdition",ref:u,callback_agree:_},{default:d(()=>[i(Z,{ref_key:"editForm",ref:c},{default:d(()=>[i(Q,{modelValue:h.value,"onUpdate:modelValue":S[1]||(S[1]=A=>h.value=A),label:f(l)("name"),rules:[f(j).required]},null,8,["modelValue","label","rules"])]),_:1},512)]),_:1},512),i(Fe,{modelValue:C.value,"onUpdate:modelValue":S[2]||(S[2]=A=>C.value=A),"max-width":"800px",persistent:""},{default:d(()=>[i(xe,{tokens:w.value,onClose:T},null,8,["tokens"])]),_:1},8,["modelValue"])],64))}},fa={class:"pa-4"},va={__name:"SettingsView",setup(r){const s=se(),v=y();return(l,m)=>(M(),D(O,null,[i(mt,{flat:""},{default:d(()=>[i(ht,null,{default:d(()=>[P(g(l.$gettext("Account settings")),1)]),_:1})]),_:1}),E("div",fa,[i(pt,{modelValue:v.value,"onUpdate:modelValue":m[0]||(m[0]=p=>v.value=p),color:"primary",class:"mb-4"},{default:d(()=>[i(ne,{value:"profile"},{default:d(()=>[P(g(l.$gettext("Profile")),1)]),_:1}),i(ne,{value:"security"},{default:d(()=>[P(g(l.$gettext("Two-factor auth")),1)]),_:1}),f(s).userHasMailbox?(M(),x(ne,{key:0,value:"forward"},{default:d(()=>[P(g(l.$gettext("Forward")),1)]),_:1})):G("",!0),f(s).userHasMailbox?(M(),x(ne,{key:1,value:"autoreply"},{default:d(()=>[P(g(l.$gettext("Auto-reply message")),1)]),_:1})):G("",!0),f(s).authUser.role===f(Ee).SUPER_ADMIN?(M(),x(ne,{key:2,value:"api"},{default:d(()=>[P(g(l.$gettext("API access")),1)]),_:1})):G("",!0)]),_:1},8,["modelValue"]),i(gt,{modelValue:v.value,"onUpdate:modelValue":m[1]||(m[1]=p=>v.value=p)},{default:d(()=>[i(le,{value:"profile"},{default:d(()=>[i(St)]),_:1}),i(le,{value:"security"},{default:d(()=>[i(Bt),i(ca),i(qt)]),_:1}),f(s).userHasMailbox?(M(),x(le,{key:0,value:"forward"},{default:d(()=>[i(Jt)]),_:1})):G("",!0),f(s).userHasMailbox?(M(),x(le,{key:1,value:"autoreply"},{default:d(()=>[i(na)]),_:1})):G("",!0),f(s).authUser.role===f(Ee).SUPER_ADMIN?(M(),x(le,{key:2,value:"api"},{default:d(()=>[i(ia)]),_:1})):G("",!0)]),_:1},8,["modelValue"])])],64))}},Wa=je(va,[["__scopeId","data-v-fc9b36ca"]]);export{Wa as default};
@@ -1 +1 @@
1
- import{T as r}from"./TimeSerieChart-BZ2htbFk.js";import{I as d,J as _,e as y,a1 as g,y as V,_ as h,l as S,a,w as t,F as k,o as v,k as C,t as L}from"./index-LhNzkzAh.js";import{V as T,a as w}from"./VToolbar-BxX3W2kR.js";import{a as x,u as P,m as b,b as z}from"./tag-3cfI1_f7.js";import{c as B,m as D}from"./layout-DbjDe3Wl.js";import{V as F,a as i}from"./VRow-DJ0NB63-.js";import"./VAvatar-DbuoZWmf.js";import"./VProgressCircular-qK6p5X_Y.js";import"./VSpacer-CoJVmx8k.js";/* empty css */import"./VPicker-DnDSWJHJ.js";import"./VSheet-DI6SxLnG.js";import"./VTextField-DKbr4H5w.js";import"./VInput-DVKUObZe.js";import"./forwardRefs-CpzzjgpX.js";import"./ssrBoot-BxIQ9ccA.js";import"./VMenu-nv0XOgg0.js";import"./VContainer-74Dnn8Ux.js";import"./VCard-DzjUT5OP.js";const I=_({...z(),...b(),...D()},"VLayout"),N=d()({name:"VLayout",props:I(),setup(e,s){let{slots:o}=s;const{layoutClasses:c,layoutStyles:l,getLayoutItem:p,items:n,layoutRef:u}=B(e),{dimensionStyles:f}=x(e);return P(()=>{var m;return y("div",{ref:u,class:V([c.value,e.class]),style:g([f.value,l.value,e.style])},[(m=o.default)==null?void 0:m.call(o)])}),{getLayoutItem:p,items:n}}}),R={__name:"StatisticsView",setup(e){return(s,o)=>(v(),S(k,null,[a(T,{flat:""},{default:t(()=>[a(w,null,{default:t(()=>[C(L(s.$gettext("Statistics")),1)]),_:1})]),_:1}),a(N,{class:"pa-2"},{default:t(()=>[a(F,{class:"mt-2"},{default:t(()=>[a(i,{cols:"12"},{default:t(()=>[a(r,{"graphic-set":"mailtraffic","graphic-name":"averagetraffic"})]),_:1}),a(i,{cols:"12"},{default:t(()=>[a(r,{"graphic-set":"mailtraffic","graphic-name":"averagetrafficsize"})]),_:1}),a(i,{cols:"12"},{default:t(()=>[a(r,{"graphic-set":"accountgraphicset","graphic-name":"accountcreationgraphic"})]),_:1})]),_:1})]),_:1})],64))}},ea=h(R,[["__scopeId","data-v-e568dd55"]]);export{ea as default};
1
+ import{T as r}from"./TimeSerieChart-DR0-ujj7.js";import{I as d,J as _,e as y,a1 as g,y as V,_ as h,l as S,a,w as t,F as k,o as v,k as C,t as L}from"./index-D9OmnhdE.js";import{V as T,a as w}from"./VToolbar-CILwTR5O.js";import{a as x,u as P,m as b,b as z}from"./tag-jImTUiWx.js";import{c as B,m as D}from"./layout-CuwY6Rle.js";import{V as F,a as i}from"./VRow-DGPh2Qmm.js";import"./VAvatar-Wz1UmZ2b.js";import"./VProgressCircular-Bdwj7JuI.js";import"./VSpacer-Pa16wvUF.js";/* empty css */import"./VPicker-Cv_7ON7Q.js";import"./VSheet-C07oo1bg.js";import"./VTextField-BBIziqiv.js";import"./VInput-ssnfbpwr.js";import"./forwardRefs-GE5Osi9V.js";import"./ssrBoot-DaeAGyhc.js";import"./VMenu-BPG7b7dT.js";import"./VContainer-f9kXL-37.js";import"./VCard-BrQzTMsm.js";const I=_({...z(),...b(),...D()},"VLayout"),N=d()({name:"VLayout",props:I(),setup(e,s){let{slots:o}=s;const{layoutClasses:c,layoutStyles:l,getLayoutItem:p,items:n,layoutRef:u}=B(e),{dimensionStyles:f}=x(e);return P(()=>{var m;return y("div",{ref:u,class:V([c.value,e.class]),style:g([f.value,l.value,e.style])},[(m=o.default)==null?void 0:m.call(o)])}),{getLayoutItem:p,items:n}}}),R={__name:"StatisticsView",setup(e){return(s,o)=>(v(),S(k,null,[a(T,{flat:""},{default:t(()=>[a(w,null,{default:t(()=>[C(L(s.$gettext("Statistics")),1)]),_:1})]),_:1}),a(N,{class:"pa-2"},{default:t(()=>[a(F,{class:"mt-2"},{default:t(()=>[a(i,{cols:"12"},{default:t(()=>[a(r,{"graphic-set":"mailtraffic","graphic-name":"averagetraffic"})]),_:1}),a(i,{cols:"12"},{default:t(()=>[a(r,{"graphic-set":"mailtraffic","graphic-name":"averagetrafficsize"})]),_:1}),a(i,{cols:"12"},{default:t(()=>[a(r,{"graphic-set":"accountgraphicset","graphic-name":"accountcreationgraphic"})]),_:1})]),_:1})]),_:1})],64))}},ea=h(R,[["__scopeId","data-v-e568dd55"]]);export{ea as default};