modoboa 2.4.10__py3-none-any.whl → 2.5.0__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 (331) hide show
  1. modoboa/admin/api/v1/serializers.py +1 -0
  2. modoboa/admin/api/v2/serializers.py +15 -1
  3. modoboa/admin/api/v2/tests.py +11 -1
  4. modoboa/admin/lib.py +1 -1
  5. modoboa/admin/models/mailbox.py +15 -13
  6. modoboa/admin/models/mxrecord.py +4 -0
  7. modoboa/admin/tests/test_import_.py +11 -11
  8. modoboa/amavis/__init__.py +3 -0
  9. modoboa/amavis/app_settings.py +276 -0
  10. modoboa/amavis/apps.py +18 -0
  11. modoboa/amavis/checks/__init__.py +2 -0
  12. modoboa/amavis/checks/settings_checks.py +59 -0
  13. modoboa/amavis/dbrouter.py +35 -0
  14. modoboa/amavis/factories.py +164 -0
  15. modoboa/amavis/handlers.py +146 -0
  16. modoboa/amavis/lib.py +381 -0
  17. modoboa/amavis/management/__init__.py +0 -0
  18. modoboa/amavis/management/commands/__init__.py +0 -0
  19. modoboa/amavis/management/commands/amnotify.py +99 -0
  20. modoboa/amavis/management/commands/qcleanup.py +84 -0
  21. modoboa/amavis/migrations/0001_initial.py +340 -0
  22. modoboa/amavis/migrations/__init__.py +0 -0
  23. modoboa/amavis/models.py +226 -0
  24. modoboa/amavis/serializers.py +139 -0
  25. modoboa/amavis/sql_connector.py +240 -0
  26. modoboa/amavis/sql_email.py +66 -0
  27. modoboa/amavis/tasks.py +33 -0
  28. modoboa/amavis/templates/amavis/notifications/pending_requests.html +16 -0
  29. modoboa/amavis/tests/__init__.py +0 -0
  30. modoboa/amavis/tests/sa-learn +3 -0
  31. modoboa/amavis/tests/sample_messages/quarantined-input.txt +80 -0
  32. modoboa/amavis/tests/sample_messages/quarantined-output-plain_nolinks.txt +17 -0
  33. modoboa/amavis/tests/spamc +3 -0
  34. modoboa/amavis/tests/test_checks.py +25 -0
  35. modoboa/amavis/tests/test_handlers.py +214 -0
  36. modoboa/amavis/tests/test_lib.py +90 -0
  37. modoboa/amavis/tests/test_management_commands.py +45 -0
  38. modoboa/amavis/tests/test_sql_email.py +67 -0
  39. modoboa/amavis/tests/test_utils.py +19 -0
  40. modoboa/amavis/tests/test_viewsets.py +319 -0
  41. modoboa/amavis/urls.py +11 -0
  42. modoboa/amavis/utils.py +105 -0
  43. modoboa/amavis/viewsets.py +265 -0
  44. modoboa/core/api/v1/serializers.py +7 -5
  45. modoboa/core/api/v2/serializers.py +13 -2
  46. modoboa/core/api/v2/tests.py +34 -4
  47. modoboa/core/api/v2/urls.py +10 -5
  48. modoboa/core/api/v2/views.py +23 -2
  49. modoboa/core/api/v2/viewsets.py +24 -3
  50. modoboa/core/app_settings.py +11 -0
  51. modoboa/core/fido2_auth.py +1 -2
  52. modoboa/core/handlers.py +6 -2
  53. modoboa/core/management/commands/add_allowed_hosts.py +33 -0
  54. modoboa/core/management/commands/cleanlogs.py +9 -0
  55. modoboa/core/management/commands/load_initial_data.py +10 -0
  56. modoboa/core/migrations/0025_rename_user_email_is_active_core_user_email_c0c03f_idx.py +23 -5
  57. modoboa/core/tests/test_core.py +29 -0
  58. modoboa/core/utils.py +6 -0
  59. modoboa/dnstools/api/v2/serializers.py +9 -11
  60. modoboa/frontend_dist/assets/AccountAliasForm-BuSy_1n9.js +1 -0
  61. modoboa/frontend_dist/assets/AccountEditView-qdJmLM_e.js +1 -0
  62. modoboa/frontend_dist/assets/AccountLayout-DrN7vHsX.js +1 -0
  63. modoboa/frontend_dist/assets/AccountPasswordSubForm-DZGt_Xgq.js +1 -0
  64. modoboa/frontend_dist/assets/AccountView-CO65y0vZ.js +1 -0
  65. modoboa/frontend_dist/assets/AddressBook-BZNUlhek.js +1 -0
  66. modoboa/frontend_dist/assets/AdminLayout-CTNhuwTw.js +1 -0
  67. modoboa/frontend_dist/assets/AlarmsView-9yKGbmkC.css +1 -0
  68. modoboa/frontend_dist/assets/AlarmsView-DN_JIw9g.js +1 -0
  69. modoboa/frontend_dist/assets/AliasEditView-DjpPUTp9.js +1 -0
  70. modoboa/frontend_dist/assets/{AliasRecipientForm-DVZXWaUX.js → AliasRecipientForm-B1Y8wFdP.js} +1 -1
  71. modoboa/frontend_dist/assets/AliasView-GOJ5lyQH.js +1 -0
  72. modoboa/frontend_dist/assets/AuditTrailView-fbXmq70e.js +1 -0
  73. modoboa/frontend_dist/assets/CalendarView-LlQQNEPL.js +1 -0
  74. modoboa/frontend_dist/assets/{ChoiceField-7eU7c_rI.js → ChoiceField-B3ReQHVe.js} +1 -1
  75. modoboa/frontend_dist/assets/ComposeEmailForm-Bs1fZXAL.js +1 -0
  76. modoboa/frontend_dist/assets/ComposeEmailView-s3LMl3pO.js +1 -0
  77. modoboa/frontend_dist/assets/ConfirmDialog-DY_kUHLG.js +1 -0
  78. modoboa/frontend_dist/assets/{ConnectedLayout-BaJZ3BeR.css → ConnectedLayout-Bxh21hcH.css} +1 -1
  79. modoboa/frontend_dist/assets/ConnectedLayout-UWjiYBNw.js +1 -0
  80. modoboa/frontend_dist/assets/CreationForm-ORg3fazt.js +1 -0
  81. modoboa/frontend_dist/assets/DashboardView-Dplk9itS.js +1 -0
  82. modoboa/frontend_dist/assets/{DashboardView-BLlMi6Qb.css → DashboardView-gwwVAPvt.css} +1 -1
  83. modoboa/frontend_dist/assets/DomainAdminList-DVn9x0rB.js +1 -0
  84. modoboa/frontend_dist/assets/DomainEditView-nAoL64D_.js +1 -0
  85. modoboa/frontend_dist/assets/{DomainTransportForm-DPnPGBOp.js → DomainTransportForm-CA-DNUxX.js} +1 -1
  86. modoboa/frontend_dist/assets/{DomainView-BDKoBFYr.css → DomainView-CCLYXPHx.css} +1 -1
  87. modoboa/frontend_dist/assets/DomainView-CdXPpwJG.js +5 -0
  88. modoboa/frontend_dist/assets/DomainsView-B_59gowf.js +1 -0
  89. modoboa/frontend_dist/assets/DomainsView-DZ-ss9bI.css +1 -0
  90. modoboa/frontend_dist/assets/EmailField-CwcwI5xW.js +1 -0
  91. modoboa/frontend_dist/assets/EmailView-BshxcfAK.js +1 -0
  92. modoboa/frontend_dist/assets/EmptyLayout-DFfhnhLi.js +1 -0
  93. modoboa/frontend_dist/assets/FiltersView-Cf20MSTK.js +1 -0
  94. modoboa/frontend_dist/assets/ForwardEmailView-CZG062os.js +1 -0
  95. modoboa/frontend_dist/assets/{HtmlEditor-uM4AtIGi.js → HtmlEditor-Bh4c689R.js} +1 -1
  96. modoboa/frontend_dist/assets/IdentitiesView-BXAuU1YX.js +1 -0
  97. modoboa/frontend_dist/assets/{IdentitiesView-jmuItyMZ.css → IdentitiesView-DPrrRMS5.css} +1 -1
  98. modoboa/frontend_dist/assets/InformationView-C9vvvQhJ.css +1 -0
  99. modoboa/frontend_dist/assets/InformationView-Cn5FZW7H.js +1 -0
  100. modoboa/frontend_dist/assets/{LoadingData-CVD2Aen8.js → LoadingData-CdVvm4FI.js} +1 -1
  101. modoboa/frontend_dist/assets/{LoginCallbackView-sWzBke1g.js → LoginCallbackView-B9hAH4MI.js} +1 -1
  102. modoboa/frontend_dist/assets/{LoginView-wmN73W0f.js → LoginView-tHIR4Adc.js} +1 -1
  103. modoboa/frontend_dist/assets/MailboxView-Bugu2vhg.js +1 -0
  104. modoboa/frontend_dist/assets/MenuItems-PXjiG-fs.js +1 -0
  105. modoboa/frontend_dist/assets/MessageView-Cy4STShm.js +1 -0
  106. modoboa/frontend_dist/assets/MessagesView-DdkuEgfX.js +1 -0
  107. modoboa/frontend_dist/assets/MigrationsView-CidSEjCF.js +1 -0
  108. modoboa/frontend_dist/assets/{ParametersForm-BCeQljir.js → ParametersForm-CAv4SH-E.js} +1 -1
  109. modoboa/frontend_dist/assets/ParametersView-CX7Ffemw.js +1 -0
  110. modoboa/frontend_dist/assets/ParametersView-CrbNcmV3.js +1 -0
  111. modoboa/frontend_dist/assets/ProviderEditView-CrltAQXl.js +1 -0
  112. modoboa/frontend_dist/assets/ProviderGeneralForm-BYAzVnXM.js +1 -0
  113. modoboa/frontend_dist/assets/ProvidersView-osjIY4Ex.js +1 -0
  114. modoboa/frontend_dist/assets/QuarantineLayout-B8EcU9vS.js +1 -0
  115. modoboa/frontend_dist/assets/QuarantineView-D4gOE4EQ.css +1 -0
  116. modoboa/frontend_dist/assets/QuarantineView-D8Qg0MXA.js +1 -0
  117. modoboa/frontend_dist/assets/ReplyEmailView-BABPqWhd.js +1 -0
  118. modoboa/frontend_dist/assets/ResourcesForm-OaqdRYVs.js +1 -0
  119. modoboa/frontend_dist/assets/SelfServiceLayout-d277YTGR.js +1 -0
  120. modoboa/frontend_dist/assets/SettingsView-9iNcDhkI.js +6 -0
  121. modoboa/frontend_dist/assets/StatisticsView-cHsPyGkL.js +1 -0
  122. modoboa/frontend_dist/assets/TimeSerieChart--V83dcJ9.js +1 -0
  123. modoboa/frontend_dist/assets/UserLayout-B3sBiTcZ.js +1 -0
  124. modoboa/frontend_dist/assets/VAlert-BuaaYN2h.js +1 -0
  125. modoboa/frontend_dist/assets/VApp-CKP-6zGP.js +1 -0
  126. modoboa/frontend_dist/assets/VAutocomplete-Dwv6_Rzq.js +1 -0
  127. modoboa/frontend_dist/assets/VAvatar-Cmga0vj6.js +1 -0
  128. modoboa/frontend_dist/assets/VBadge-BQrRJ9S0.css +1 -0
  129. modoboa/frontend_dist/assets/VBadge-CixeK87a.js +1 -0
  130. modoboa/frontend_dist/assets/VCard-CxH9DWoK.js +1 -0
  131. modoboa/frontend_dist/assets/VCheckbox-62GOpvvP.js +1 -0
  132. modoboa/frontend_dist/assets/{VCheckboxBtn-j7di4leN.js → VCheckboxBtn-DMoNtKT8.js} +1 -1
  133. modoboa/frontend_dist/assets/VChip-D_styETR.js +1 -0
  134. modoboa/frontend_dist/assets/VColorPicker-BHscBGQV.js +1 -0
  135. modoboa/frontend_dist/assets/VContainer-B46caNs1.js +1 -0
  136. modoboa/frontend_dist/assets/VDataTable-Bh8NbVSx.js +1 -0
  137. modoboa/frontend_dist/assets/VDataTableServer-BDR5hOmo.js +1 -0
  138. modoboa/frontend_dist/assets/VDataTableVirtual-BOQlNtIG.js +1 -0
  139. modoboa/frontend_dist/assets/{VDialog-CZqM2Ofu.js → VDialog-BcTg7w6P.js} +1 -1
  140. modoboa/frontend_dist/assets/VExpansionPanels-BmH5Jl2Z.js +1 -0
  141. modoboa/frontend_dist/assets/VFileInput-BC4yAygd.js +1 -0
  142. modoboa/frontend_dist/assets/VForm-D5iPGkde.js +1 -0
  143. modoboa/frontend_dist/assets/VInput-CcxkaOXT.css +1 -0
  144. modoboa/frontend_dist/assets/VInput-CoDJzvaW.js +1 -0
  145. modoboa/frontend_dist/assets/VMenu-gUG70-zD.js +1 -0
  146. modoboa/frontend_dist/assets/VPicker-BXuKT3zB.js +1 -0
  147. modoboa/frontend_dist/assets/VProgressCircular-BtOPiGCg.js +1 -0
  148. modoboa/frontend_dist/assets/VRadioGroup-DIFZKSn-.js +1 -0
  149. modoboa/frontend_dist/assets/{VRow-C_Ydf6yr.js → VRow-ozg66L7j.js} +1 -1
  150. modoboa/frontend_dist/assets/VSelect-C3RjAa45.js +1 -0
  151. modoboa/frontend_dist/assets/VSelectionControl-zyz-fJvC.js +1 -0
  152. modoboa/frontend_dist/assets/VSheet-BNx2X4Mk.js +1 -0
  153. modoboa/frontend_dist/assets/VSpacer-DinPiXs9.js +1 -0
  154. modoboa/frontend_dist/assets/VSwitch-DwxdeAEq.js +1 -0
  155. modoboa/frontend_dist/assets/VTable-DaLxa4FO.js +1 -0
  156. modoboa/frontend_dist/assets/VTabs-BP0Hgsgm.js +1 -0
  157. modoboa/frontend_dist/assets/VTextField-BzBVKKob.css +1 -0
  158. modoboa/frontend_dist/assets/VTextField-XoGTj1KG.js +1 -0
  159. modoboa/frontend_dist/assets/VTextarea-wBlRMIv_.js +1 -0
  160. modoboa/frontend_dist/assets/VToolbar-CFZfqeOr.js +1 -0
  161. modoboa/frontend_dist/assets/VWindowItem-BB7ETW3b.js +1 -0
  162. modoboa/frontend_dist/assets/WebmailLayout-_Hk1XhVq.js +1 -0
  163. modoboa/frontend_dist/assets/accounts-DUzbx6k8.js +1 -0
  164. modoboa/frontend_dist/assets/admin-DewTk2H8.js +1 -0
  165. modoboa/frontend_dist/assets/{aliases-c3n-dCV_.js → aliases-4sXmjwXp.js} +1 -1
  166. modoboa/frontend_dist/assets/amavis-CC0li7_T.js +1 -0
  167. modoboa/frontend_dist/assets/amavis-DK8SHE6o.js +1 -0
  168. modoboa/frontend_dist/assets/{contacts-Bqckz8sr.js → contacts-BjghrPqZ.js} +1 -1
  169. modoboa/frontend_dist/assets/{domains-nBMR-fRf.js → domains-BSawReeu.js} +1 -1
  170. modoboa/frontend_dist/assets/{domains.store-ChZgLcqP.js → domains.store-D-vWCEIK.js} +1 -1
  171. modoboa/frontend_dist/assets/{filter-D7NrAf6a.js → filter-C82FUCw_.js} +1 -1
  172. modoboa/frontend_dist/assets/forwardRefs-cvcnlhoK.js +1 -0
  173. modoboa/frontend_dist/assets/global.store-DbkcI5o2.js +1 -0
  174. modoboa/frontend_dist/assets/{importExport-Dn9vYw7T.js → importExport-DzoL4Mvc.js} +1 -1
  175. modoboa/frontend_dist/assets/index-BImkz5Jx.js +984 -0
  176. modoboa/frontend_dist/assets/index-DuzUMVLM.js +1 -0
  177. modoboa/frontend_dist/assets/layout-C5FyYCHK.js +1 -0
  178. modoboa/frontend_dist/assets/{layout.store-BxBoBlgf.js → layout.store-NXWtFIwL.js} +1 -1
  179. modoboa/frontend_dist/assets/logos-BswdveCV.js +1 -0
  180. modoboa/frontend_dist/assets/{logs-DrTzylW7.js → logs-6CbtfaZS.js} +1 -1
  181. modoboa/frontend_dist/assets/{parameters-Lgiqp7aw.js → parameters-aSQiR7kN.js} +1 -1
  182. modoboa/frontend_dist/assets/{parameters.store-C9k9DuTj.js → parameters.store-CzQqVatx.js} +1 -1
  183. modoboa/frontend_dist/assets/permissions-DNoefz-n.js +1 -0
  184. modoboa/frontend_dist/assets/{ssrBoot-BsxW6uW4.js → ssrBoot-CKUX4kcb.js} +1 -1
  185. modoboa/frontend_dist/assets/{tag-CFK9dzMJ.js → tag-B_yWNNJD.js} +1 -1
  186. modoboa/frontend_dist/assets/transports-BDNB9wR5.js +1 -0
  187. modoboa/frontend_dist/assets/{webmail-KrD8ZhNM.js → webmail-CdU6CD9b.js} +1 -1
  188. modoboa/frontend_dist/index.html +1 -1
  189. modoboa/lib/email_utils.py +2 -2
  190. modoboa/lib/permissions.py +7 -0
  191. modoboa/lib/redis.py +1 -5
  192. modoboa/lib/test_runners.py +29 -0
  193. modoboa/lib/tests/__init__.py +5 -1
  194. modoboa/locale/br/LC_MESSAGES/django.po +87 -75
  195. modoboa/locale/cs/LC_MESSAGES/django.po +82 -74
  196. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +145 -121
  197. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  198. modoboa/locale/de/LC_MESSAGES/django.po +339 -651
  199. modoboa/locale/de_DE/LC_MESSAGES/django.po +87 -75
  200. modoboa/locale/el_GR/LC_MESSAGES/django.po +160 -135
  201. modoboa/locale/en/LC_MESSAGES/django.po +82 -74
  202. modoboa/locale/es/LC_MESSAGES/django.po +158 -131
  203. modoboa/locale/es_MX/LC_MESSAGES/django.po +82 -74
  204. modoboa/locale/fi/LC_MESSAGES/django.po +87 -75
  205. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  206. modoboa/locale/fr/LC_MESSAGES/django.po +469 -201
  207. modoboa/locale/hu/LC_MESSAGES/django.po +82 -74
  208. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  209. modoboa/locale/it/LC_MESSAGES/django.po +148 -122
  210. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  211. modoboa/locale/ja_JP/LC_MESSAGES/django.po +201 -334
  212. modoboa/locale/ka/LC_MESSAGES/django.po +82 -74
  213. modoboa/locale/nl_NL/LC_MESSAGES/django.po +160 -132
  214. modoboa/locale/no/LC_MESSAGES/django.po +82 -74
  215. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  216. modoboa/locale/pl_PL/LC_MESSAGES/django.po +172 -149
  217. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  218. modoboa/locale/pt_BR/LC_MESSAGES/django.po +172 -144
  219. modoboa/locale/pt_PT/LC_MESSAGES/django.po +135 -112
  220. modoboa/locale/ro_RO/LC_MESSAGES/django.po +87 -75
  221. modoboa/locale/ru/LC_MESSAGES/django.po +142 -118
  222. modoboa/locale/si/LC_MESSAGES/django.po +82 -74
  223. modoboa/locale/sk/LC_MESSAGES/django.po +82 -74
  224. modoboa/locale/sk_SK/LC_MESSAGES/django.po +84 -76
  225. modoboa/locale/sl_SI/LC_MESSAGES/django.po +90 -76
  226. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  227. modoboa/locale/sv/LC_MESSAGES/django.po +172 -139
  228. modoboa/locale/tr/LC_MESSAGES/django.po +87 -75
  229. modoboa/locale/tr_TR/LC_MESSAGES/django.po +84 -74
  230. modoboa/locale/uk/LC_MESSAGES/django.po +82 -74
  231. modoboa/locale/zh/LC_MESSAGES/django.po +82 -74
  232. modoboa/locale/zh_CN/LC_MESSAGES/django.po +82 -74
  233. modoboa/locale/zh_TW/LC_MESSAGES/django.po +87 -75
  234. modoboa/parameters/api/v2/tests.py +2 -2
  235. modoboa/parameters/api/v2/viewsets.py +2 -0
  236. modoboa/policyd/tests.py +2 -0
  237. modoboa/urls_api_v2.py +6 -0
  238. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/METADATA +6 -4
  239. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/RECORD +244 -193
  240. modoboa/frontend_dist/assets/AccountAliasForm-DVXatAhB.js +0 -1
  241. modoboa/frontend_dist/assets/AccountEditView-DmvQjxpx.js +0 -1
  242. modoboa/frontend_dist/assets/AccountLayout-OGtZvlHR.js +0 -1
  243. modoboa/frontend_dist/assets/AccountPasswordSubForm-g3IEGrgM.js +0 -1
  244. modoboa/frontend_dist/assets/AccountView-DsxYqr3k.js +0 -1
  245. modoboa/frontend_dist/assets/AddressBook-3RoKiKon.js +0 -1
  246. modoboa/frontend_dist/assets/AdminLayout-CWfn8zaQ.js +0 -1
  247. modoboa/frontend_dist/assets/AlarmsView-Bheey-gp.css +0 -1
  248. modoboa/frontend_dist/assets/AlarmsView-D3Mh8ntf.js +0 -1
  249. modoboa/frontend_dist/assets/AliasEditView-C15eUZ11.js +0 -1
  250. modoboa/frontend_dist/assets/AliasView-Cyvc5vMb.js +0 -1
  251. modoboa/frontend_dist/assets/AuditTrailView-LI2XuLLn.js +0 -1
  252. modoboa/frontend_dist/assets/CalendarView-BpOlPh3f.js +0 -1
  253. modoboa/frontend_dist/assets/ComposeEmailForm-CNfI7ept.js +0 -1
  254. modoboa/frontend_dist/assets/ComposeEmailView-B866Xsrc.js +0 -1
  255. modoboa/frontend_dist/assets/ConfirmDialog-BvqxQsD1.js +0 -1
  256. modoboa/frontend_dist/assets/ConnectedLayout-BQ3ug6Jh.js +0 -1
  257. modoboa/frontend_dist/assets/CreationForm-C9Kh05ax.js +0 -1
  258. modoboa/frontend_dist/assets/DashboardView-Cw-gIcuB.js +0 -1
  259. modoboa/frontend_dist/assets/DomainAdminList-CsWUNKVk.js +0 -1
  260. modoboa/frontend_dist/assets/DomainEditView-DocxeOeW.js +0 -1
  261. modoboa/frontend_dist/assets/DomainView-Djc_0PsF.js +0 -5
  262. modoboa/frontend_dist/assets/DomainsView-B-Lxru7P.js +0 -1
  263. modoboa/frontend_dist/assets/DomainsView-DasJ0NdZ.css +0 -1
  264. modoboa/frontend_dist/assets/EmailField-BEKxuYni.js +0 -1
  265. modoboa/frontend_dist/assets/EmailView-BsR1Wes5.js +0 -1
  266. modoboa/frontend_dist/assets/EmptyLayout-BzPFOeLU.js +0 -1
  267. modoboa/frontend_dist/assets/FiltersView-5rmpC5cC.js +0 -1
  268. modoboa/frontend_dist/assets/ForwardEmailView-D7MbetcT.js +0 -1
  269. modoboa/frontend_dist/assets/IdentitiesView-BqjD9Lue.js +0 -1
  270. modoboa/frontend_dist/assets/InformationView-CghcvPn2.js +0 -1
  271. modoboa/frontend_dist/assets/InformationView-U5Ww-Sx1.css +0 -1
  272. modoboa/frontend_dist/assets/MailboxView-T_p-_ZtJ.js +0 -1
  273. modoboa/frontend_dist/assets/MenuItems-kHCMzR5E.js +0 -1
  274. modoboa/frontend_dist/assets/MessagesView-Cerv3xsy.js +0 -1
  275. modoboa/frontend_dist/assets/MigrationsView-7kjqPyYU.js +0 -1
  276. modoboa/frontend_dist/assets/ParametersView-DspBxVMV.js +0 -1
  277. modoboa/frontend_dist/assets/ParametersView-Dy0H5ep1.js +0 -1
  278. modoboa/frontend_dist/assets/ProviderEditView-DDLMOylC.js +0 -1
  279. modoboa/frontend_dist/assets/ProviderGeneralForm-BwOSKNHK.js +0 -1
  280. modoboa/frontend_dist/assets/ProvidersView-C99UD0WB.js +0 -1
  281. modoboa/frontend_dist/assets/ReplyEmailView-DAPBHldd.js +0 -1
  282. modoboa/frontend_dist/assets/ResourcesForm-D87PHeH0.js +0 -1
  283. modoboa/frontend_dist/assets/SettingsView-OxDo9wNd.js +0 -6
  284. modoboa/frontend_dist/assets/StatisticsView-CM__Eqku.js +0 -1
  285. modoboa/frontend_dist/assets/TimeSerieChart-C6j0uYR_.js +0 -1
  286. modoboa/frontend_dist/assets/UserLayout-CckCGnPS.js +0 -1
  287. modoboa/frontend_dist/assets/VAlert-B7mzOJIO.js +0 -1
  288. modoboa/frontend_dist/assets/VApp-BKxnjOoi.js +0 -1
  289. modoboa/frontend_dist/assets/VAutocomplete-Cc4_tcl1.js +0 -1
  290. modoboa/frontend_dist/assets/VAvatar-BAgTUIvX.js +0 -1
  291. modoboa/frontend_dist/assets/VCard-DFWiFORP.js +0 -1
  292. modoboa/frontend_dist/assets/VCheckbox-CKsH_vq3.js +0 -1
  293. modoboa/frontend_dist/assets/VChip-nZ0uhY7t.js +0 -1
  294. modoboa/frontend_dist/assets/VColorPicker-Os2aeP6J.js +0 -1
  295. modoboa/frontend_dist/assets/VContainer-Btam4lk2.js +0 -1
  296. modoboa/frontend_dist/assets/VDataTable-D_0_xJTl.js +0 -1
  297. modoboa/frontend_dist/assets/VDataTableServer-BWTt4Mzi.js +0 -1
  298. modoboa/frontend_dist/assets/VDataTableVirtual-BwVmkt4u.js +0 -1
  299. modoboa/frontend_dist/assets/VExpansionPanels-B5D6GOa3.js +0 -1
  300. modoboa/frontend_dist/assets/VFileInput-Cv9DIPki.js +0 -1
  301. modoboa/frontend_dist/assets/VForm-CpoZf60D.js +0 -1
  302. modoboa/frontend_dist/assets/VMenu-B_dVqOmo.js +0 -1
  303. modoboa/frontend_dist/assets/VPicker-CXkIGEze.js +0 -1
  304. modoboa/frontend_dist/assets/VProgressCircular-CrEXxs7k.js +0 -1
  305. modoboa/frontend_dist/assets/VRadioGroup-D8ypjYOO.js +0 -1
  306. modoboa/frontend_dist/assets/VSelect-CS51PDEt.js +0 -1
  307. modoboa/frontend_dist/assets/VSelectionControl-DiOqtY38.js +0 -1
  308. modoboa/frontend_dist/assets/VSheet-5VVWtHvs.js +0 -1
  309. modoboa/frontend_dist/assets/VSpacer-C6PZ3X24.js +0 -1
  310. modoboa/frontend_dist/assets/VSwitch-Chg5o-Cp.js +0 -1
  311. modoboa/frontend_dist/assets/VTable-KsiZ3cBz.js +0 -1
  312. modoboa/frontend_dist/assets/VTabs-tNrJIYO0.js +0 -1
  313. modoboa/frontend_dist/assets/VTextField-C-J20yj_.css +0 -1
  314. modoboa/frontend_dist/assets/VTextField-CLwRV0Cb.js +0 -1
  315. modoboa/frontend_dist/assets/VTextarea-Di8jbl8m.js +0 -1
  316. modoboa/frontend_dist/assets/VToolbar-CGwhgdmI.js +0 -1
  317. modoboa/frontend_dist/assets/VWindowItem-wWSFAGI-.js +0 -1
  318. modoboa/frontend_dist/assets/WebmailLayout-DsYThBrz.js +0 -1
  319. modoboa/frontend_dist/assets/admin-CJVLMHh9.js +0 -1
  320. modoboa/frontend_dist/assets/forwardRefs-Cpc3YYl6.js +0 -1
  321. modoboa/frontend_dist/assets/global.store-DUP26-A5.js +0 -1
  322. modoboa/frontend_dist/assets/index-DV9Li2cg.js +0 -852
  323. modoboa/frontend_dist/assets/index-DzL89N4E.js +0 -1
  324. modoboa/frontend_dist/assets/layout-CHO37cA6.js +0 -1
  325. modoboa/frontend_dist/assets/permissions-mL5hLHcW.js +0 -1
  326. modoboa/frontend_dist/assets/transports-TO08iTXJ.js +0 -1
  327. {modoboa-2.4.10.data → modoboa-2.5.0.data}/scripts/modoboa-admin.py +0 -0
  328. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/WHEEL +0 -0
  329. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/entry_points.txt +0 -0
  330. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/licenses/LICENSE +0 -0
  331. {modoboa-2.4.10.dist-info → modoboa-2.5.0.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- import{k as C,h as _,g as V,d as B,m as o,o as a,e as i,t as u,J as m,F as r,G as f,c as L,q as F}from"./index-DV9Li2cg.js";import{d as N}from"./VAvatar-BAgTUIvX.js";const P={class:"m-label"},w=["onClick"],I={class:"text-grey-darken-1"},S={__name:"ChoiceField",props:{modelValue:{type:[Number,String],default:null},label:{type:String,default:""},choices:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},choicesPerLine:{type:Number,required:!1,default:null}},emits:["update:modelValue"],setup(s,{emit:b}){const l=s,h=b,c=_({get(){return l.modelValue},set(e){h("update:modelValue",e)}}),n=V([]);function p(){if(l.choicesPerLine){let e=0;for(;e<l.choices.length;){const d=l.choices.slice(e,e+l.choicesPerLine);n.value.push(d),e+=l.choicesPerLine}}else n.value.push(l.choices)}function v(e){return!l.disabled&&e===c.value?"primary":""}function x(e){l.disabled||(c.value=e)}return B(()=>{p()}),(e,d)=>(a(),o(r,null,[i("div",{class:m(["text-subtitle-1 text-grey-darken-1 mb-5",{"label--disabled":s.disabled}])},[i("label",P,u(s.label),1)],2),(a(!0),o(r,null,f(n.value,(y,g)=>(a(),o("div",{key:g,class:"d-flex flex-grow-0"},[(a(!0),o(r,null,f(y,(t,k)=>(a(),o("div",{key:k,class:m(["choice rounded pa-10 mr-4 text-center flex-grow-0 mb-4",{"choice--disabled":s.disabled,"choice--selected":!s.disabled&&c.value===t.value}]),onClick:q=>x(t.value)},[t.icon?(a(),L(N,{key:0,class:"d-block mb-2 mx-auto",color:v(t.value),size:"x-large",icon:t.icon},null,8,["color","icon"])):F("",!0),i("span",I,u(t.label),1)],10,w))),128))]))),128))],64))}},D=C(S,[["__scopeId","data-v-762c41e2"]]);export{D as C};
1
+ import{_ as k,h as _,g as V,d as B,l as o,o as a,e as i,t as u,y as m,F as r,s as f,c as L,m as F}from"./index-BImkz5Jx.js";import{c as N}from"./VAvatar-Cmga0vj6.js";const P={class:"m-label"},w=["onClick"],I={class:"text-grey-darken-1"},S={__name:"ChoiceField",props:{modelValue:{type:[Number,String],default:null},label:{type:String,default:""},choices:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},choicesPerLine:{type:Number,required:!1,default:null}},emits:["update:modelValue"],setup(s,{emit:b}){const l=s,h=b,c=_({get(){return l.modelValue},set(e){h("update:modelValue",e)}}),n=V([]);function p(){if(l.choicesPerLine){let e=0;for(;e<l.choices.length;){const d=l.choices.slice(e,e+l.choicesPerLine);n.value.push(d),e+=l.choicesPerLine}}else n.value.push(l.choices)}function v(e){return!l.disabled&&e===c.value?"primary":""}function y(e){l.disabled||(c.value=e)}return B(()=>{p()}),(e,d)=>(a(),o(r,null,[i("div",{class:m(["text-subtitle-1 text-grey-darken-1 mb-5",{"label--disabled":s.disabled}])},[i("label",P,u(s.label),1)],2),(a(!0),o(r,null,f(n.value,(x,g)=>(a(),o("div",{key:g,class:"d-flex flex-grow-0"},[(a(!0),o(r,null,f(x,(t,C)=>(a(),o("div",{key:C,class:m(["choice rounded pa-10 mr-4 text-center flex-grow-0 mb-4",{"choice--disabled":s.disabled,"choice--selected":!s.disabled&&c.value===t.value}]),onClick:z=>y(t.value)},[t.icon?(a(),L(N,{key:0,class:"d-block mb-2 mx-auto",color:v(t.value),size:"x-large",icon:t.icon},null,8,["color","icon"])):F("",!0),i("span",I,u(t.label),1)],10,w))),128))]))),128))],64))}},D=k(S,[["__scopeId","data-v-762c41e2"]]);export{D as C};
@@ -0,0 +1 @@
1
+ import{g as b,c as ee,o as q,w as v,a,k as Se,t as K,e as w,f as h,l as re,F as le,s as Ne,H as he,A as je,z as G,bM as Le,L as He,I as Oe,J as Ke,K as Ge,a6 as oe,O as ye,a5 as Je,h as z,a7 as We,aq as be,a0 as xe,an as Xe,v as Z,P as Qe,bN as Ye,ao as Ce,ar as Ze,as as el,a1 as ll,y as al,b as tl,n as ol,u as nl,B as ul,q as sl,m as ie}from"./index-BImkz5Jx.js";import{d as il}from"./index-DuzUMVLM.js";import{a as j}from"./webmail-CdU6CD9b.js";import{V as Ae,r as ve}from"./VForm-D5iPGkde.js";import{c as rl,V as dl,b as cl,a as ml}from"./VCard-CxH9DWoK.js";import{V as vl}from"./VFileInput-BC4yAygd.js";import{V as D,X as ke,q as fl,c as we,b as pl,e as gl}from"./VAvatar-Cmga0vj6.js";import{V as Vl}from"./VTable-DaLxa4FO.js";import{V as hl}from"./VSpacer-DinPiXs9.js";import{_ as yl}from"./HtmlEditor-Bh4c689R.js";import{V as bl}from"./VTextarea-wBlRMIv_.js";import{c as xl}from"./contacts-BjghrPqZ.js";import{V as Cl}from"./VToolbar-CFZfqeOr.js";import{V as ne,a as I}from"./VRow-ozg66L7j.js";import{b as kl,c as wl,d as _l,V as Sl}from"./VSelect-C3RjAa45.js";import{V as fe,b as Al}from"./VTextField-XoGTj1KG.js";import{a as El}from"./VProgressCircular-BtOPiGCg.js";import{u as Fl,m as Dl,h as Ul}from"./filter-C82FUCw_.js";import{a as Ml}from"./VInput-CoDJzvaW.js";import{d as Tl,t as ue,f as Il,V as Rl,a as _e}from"./forwardRefs-cvcnlhoK.js";import{V as Pl}from"./VMenu-gUG70-zD.js";import{V as Bl}from"./VCheckboxBtn-DMoNtKT8.js";import{V as $l}from"./VChip-D_styETR.js";import{u as ql}from"./tag-B_yWNNJD.js";import{V as zl}from"./VDialog-BcTg7w6P.js";const Nl={class:"w-100 d-flex justify-center"},jl={__name:"AttachmentsDialog",props:{sessionUid:{type:String,default:null}},emits:["close"],setup(l,{emit:L}){const V=l,s=L,x=b([]),g=b(),d=b(),_=b(!1),U=()=>{s("close")},S=async()=>{const{valid:o}=await d.value.validate();if(!o)return;const A=new FormData;A.append("attachment",g.value),_.value=!0;try{const u=await j.uploadAttachment(V.sessionUid,A);x.value.push(u.data),d.value.reset()}finally{_.value=!1}},M=async o=>{await j.removeAttachment(V.sessionUid,o.tmpname);const A=x.value.findIndex(u=>u.tmpname===o.tmpname);x.value.splice(A,1)};return j.getComposeSession(V.sessionUid).then(o=>{x.value=o.data.attachments}),(o,A)=>(q(),ee(ml,null,{default:v(()=>[a(rl,null,{default:v(()=>[Se(K(o.$gettext("Attachments")),1)]),_:1}),a(dl,null,{default:v(()=>[a(Ae,{ref_key:"formRef",ref:d},{default:v(()=>[a(vl,{modelValue:g.value,"onUpdate:modelValue":A[0]||(A[0]=u=>g.value=u),density:"compact",variant:"outlined",rules:[h(ve).required]},null,8,["modelValue","rules"]),w("div",Nl,[a(D,{color:"primary",variant:"tonal",text:o.$gettext("Attach"),onClick:S},null,8,["text"])])]),_:1},512),a(Vl,{class:"mt-4 border-sm"},{default:v(()=>[w("tbody",null,[(q(!0),re(le,null,Ne(x.value,u=>(q(),re("tr",{key:u.fname},[w("td",null,K(u.fname),1),w("td",null,[a(D,{icon:"mdi-trash-can",color:"error",size:"small",variant:"text",onClick:ae=>M(u)},null,8,["onClick"])])]))),128))])]),_:1})]),_:1}),a(cl,null,{default:v(()=>[a(hl),a(D,{text:o.$gettext("Close"),variant:"flat",onClick:U},null,8,["text"])]),_:1})]),_:1}))}},Ll={class:"mt-8"},Hl={__name:"BodyEditor",props:he({editorMode:{type:String,default:null}},{modelValue:{},modelModifiers:{}}),emits:he(["onToggleHtmlMode"],["update:modelValue"]),setup(l,{emit:L}){const V=l,s=je(l,"modelValue"),x=L,g=b(!1),d=b(),_=()=>{g.value=!g.value,x("onToggleHtmlMode",g.value)};return G(()=>V.editorMode,U=>{g.value=U==="html"}),(U,S)=>{const M=Le("btn");return g.value?(q(),ee(h(yl),{key:0,modelValue:s.value,"onUpdate:modelValue":S[1]||(S[1]=o=>s.value=o),class:"d-flex flex-column flex-grow-1 mt-4"},{"append-toolbar":v(()=>[a(ke,{modelValue:d.value,"onUpdate:modelValue":S[0]||(S[0]=o=>d.value=o),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:v(()=>[a(D,{text:"HTML",size:"small",onClick:_})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])):(q(),re(le,{key:1},[w("div",Ll,[a(ke,{modelValue:d.value,"onUpdate:modelValue":S[2]||(S[2]=o=>d.value=o),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:v(()=>[He(a(D,{text:"HTML",size:"small",onClick:_},null,512),[[M]])]),_:1},8,["modelValue"])]),a(bl,{modelValue:s.value,"onUpdate:modelValue":S[3]||(S[3]=o=>s.value=o),class:"border-sm"},null,8,["modelValue"])],64))}}},Ol=Ke({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Dl({filterKeys:["title"]}),...wl({hideNoData:!0,returnObject:!0}),...Qe(Al({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...fl({transition:!1})},"VCombobox"),me=Oe()({name:"VCombobox",props:Ol(),emits:{"update:focused":l=>!0,"update:modelValue":l=>!0,"update:search":l=>!0,"update:menu":l=>!0},setup(l,L){var pe;let{emit:V,slots:s}=L;const{t:x}=Ge(),g=b(),d=oe(!1),_=oe(!0),U=oe(!1),S=b(),M=b(),o=oe(-1);let A=!1;const{items:u,transformIn:ae,transformOut:J}=Tl(l),{textColorClasses:H,textColorStyles:W}=El(()=>{var e;return(e=g.value)==null?void 0:e.color}),r=ye(l,"modelValue",[],e=>ae(Je(e)),e=>{const n=J(e);return l.multiple?n:n[0]??null}),X=Ml(l),Q=z(()=>!!(l.chips||s.chip)),T=z(()=>Q.value||!!s.selection),R=oe(!l.multiple&&!T.value?((pe=r.value[0])==null?void 0:pe.title)??"":""),C=z({get:()=>R.value,set:e=>{var n;if(R.value=e??"",!l.multiple&&!T.value&&(r.value=[ue(l,e)]),e&&l.multiple&&((n=l.delimiters)!=null&&n.length)){const y=e.split(new RegExp(`(?:${l.delimiters.join("|")})+`));y.length>1&&(y.forEach(i=>{i=i.trim(),i&&B(ue(l,i))}),R.value="")}e||(o.value=-1),_.value=!e}}),te=z(()=>typeof l.counterValue=="function"?l.counterValue(r.value):typeof l.counterValue=="number"?l.counterValue:l.multiple?r.value.length:C.value.length),{filteredItems:O,getMatches:p}=Fl(l,u,()=>_.value?"":C.value),t=z(()=>l.hideSelected?O.value.filter(e=>!r.value.some(n=>n.value===e.value)):O.value),c=z(()=>l.hideNoData&&!t.value.length||X.isReadonly.value||X.isDisabled.value),Y=ye(l,"menu"),f=z({get:()=>Y.value,set:e=>{var n;Y.value&&!e&&((n=S.value)!=null&&n.ΨopenChildren.size)||e&&c.value||(Y.value=e)}}),P=We(()=>f.value?l.closeText:l.openText);G(R,e=>{A?xe(()=>A=!1):d.value&&!f.value&&(f.value=!0),V("update:search",e)}),G(r,e=>{var n;!l.multiple&&!T.value&&(R.value=((n=e[0])==null?void 0:n.title)??"")});const Ee=z(()=>r.value.map(e=>e.value)),de=z(()=>{var n;return(l.autoSelectFirst===!0||l.autoSelectFirst==="exact"&&C.value===((n=t.value[0])==null?void 0:n.title))&&t.value.length>0&&!_.value&&!U.value}),ce=b(),Fe=kl(ce,g);function De(e){A=!0,l.openOnClear&&(f.value=!0)}function Ue(){c.value||(f.value=!0)}function Me(e){c.value||(d.value&&(e.preventDefault(),e.stopPropagation()),f.value=!f.value)}function Te(e){var n;e.key!==" "&&Ce(e)&&((n=g.value)==null||n.focus())}function Ie(e){var i,k,E,$;if(Ye(e)||X.isReadonly.value)return;const n=(i=g.value)==null?void 0:i.selectionStart,y=r.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(e.key)&&e.preventDefault(),["Enter","ArrowDown"].includes(e.key)&&(f.value=!0),["Escape"].includes(e.key)&&(f.value=!1),["Enter","Escape","Tab"].includes(e.key)&&(de.value&&["Enter","Tab"].includes(e.key)&&!r.value.some(m=>{let{value:N}=m;return N===t.value[0].value})&&B(O.value[0]),_.value=!0),e.key==="ArrowDown"&&de.value&&((k=ce.value)==null||k.focus("next")),e.key==="Enter"&&C.value&&(B(ue(l,C.value)),T.value&&(R.value="")),["Backspace","Delete"].includes(e.key)){if(!l.multiple&&T.value&&r.value.length>0&&!C.value)return B(r.value[0],!1);if(~o.value){e.preventDefault();const m=o.value;B(r.value[o.value],!1),o.value=m>=y-1?y-2:m}else e.key==="Backspace"&&!C.value&&(o.value=y-1);return}if(l.multiple)if(e.key==="ArrowLeft"){if(o.value<0&&n&&n>0)return;const m=o.value>-1?o.value-1:y-1;r.value[m]?o.value=m:(o.value=-1,(E=g.value)==null||E.setSelectionRange(C.value.length,C.value.length))}else if(e.key==="ArrowRight"){if(o.value<0)return;const m=o.value+1;r.value[m]?o.value=m:(o.value=-1,($=g.value)==null||$.setSelectionRange(0,0))}else~o.value&&Ce(e)&&(o.value=-1)}function Re(){var e;l.eager&&((e=M.value)==null||e.calculateVisibleItems())}function Pe(){var e;d.value&&(_.value=!0,(e=g.value)==null||e.focus())}function B(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!e||e.props.disabled))if(l.multiple){const y=r.value.findIndex(k=>(l.valueComparator||be)(k.value,e.value)),i=n??!~y;if(~y){const k=i?[...r.value,e]:[...r.value];k.splice(y,1),r.value=k}else i&&(r.value=[...r.value,e]);l.clearOnSelect&&(C.value="")}else{const y=n!==!1;r.value=y?[e]:[],R.value=y&&!T.value?e.title:"",xe(()=>{f.value=!1,_.value=!0})}}function Be(e){d.value=!0,setTimeout(()=>{U.value=!0})}function $e(e){U.value=!1}function qe(e){(e==null||e===""&&!l.multiple&&!T.value)&&(r.value=[])}return G(d,(e,n)=>{if(!(e||e===n)&&(o.value=-1,f.value=!1,C.value)){if(l.multiple){B(ue(l,C.value));return}if(!T.value)return;r.value.some(y=>{let{title:i}=y;return i===C.value})?R.value="":B(ue(l,C.value))}}),G(f,()=>{if(!l.hideSelected&&f.value&&r.value.length){const e=t.value.findIndex(n=>r.value.some(y=>(l.valueComparator||be)(y.value,n.value)));Xe&&window.requestAnimationFrame(()=>{var n;e>=0&&((n=M.value)==null||n.scrollToIndex(e))})}}),G(()=>l.items,(e,n)=>{f.value||d.value&&!n.length&&e.length&&(f.value=!0)}),ql(()=>{const e=!!(!l.hideNoData||t.value.length||s["prepend-item"]||s["append-item"]||s["no-data"]),n=r.value.length>0,y=fe.filterProps(l);return a(fe,Z({ref:g},y,{modelValue:C.value,"onUpdate:modelValue":[i=>C.value=i,qe],focused:d.value,"onUpdate:focused":i=>d.value=i,validationValue:r.externalValue,counterValue:te.value,dirty:n,class:["v-combobox",{"v-combobox--active-menu":f.value,"v-combobox--chips":!!l.chips,"v-combobox--selection-slot":!!T.value,"v-combobox--selecting-index":o.value>-1,[`v-combobox--${l.multiple?"multiple":"single"}`]:!0},l.class],style:l.style,readonly:X.isReadonly.value,placeholder:n?void 0:l.placeholder,"onClick:clear":De,"onMousedown:control":Ue,onKeydown:Ie}),{...s,default:()=>w(le,null,[a(Pl,Z({ref:S,modelValue:f.value,"onUpdate:modelValue":i=>f.value=i,activator:"parent",contentClass:"v-combobox__content",disabled:c.value,eager:l.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:l.transition,onAfterEnter:Re,onAfterLeave:Pe},l.menuProps),{default:()=>[e&&a(Rl,Z({ref:ce,selected:Ee.value,selectStrategy:l.multiple?"independent":"single-independent",onMousedown:i=>i.preventDefault(),onKeydown:Te,onFocusin:Be,onFocusout:$e,tabindex:"-1","aria-live":"polite",color:l.itemColor??l.color},Fe,l.listProps),{default:()=>{var i,k,E;return[(i=s["prepend-item"])==null?void 0:i.call(s),!t.value.length&&!l.hideNoData&&(((k=s["no-data"])==null?void 0:k.call(s))??a(_e,{key:"no-data",title:x(l.noDataText)},null)),a(_l,{ref:M,renderless:!0,items:t.value,itemKey:"value"},{default:$=>{var Ve;let{item:m,index:N,itemRef:F}=$;const ge=Z(m.props,{ref:F,key:m.value,active:de.value&&N===0?!0:void 0,onClick:()=>B(m,null)});return((Ve=s.item)==null?void 0:Ve.call(s,{item:m,index:N,props:ge}))??a(_e,Z(ge,{role:"option"}),{prepend:se=>{let{isSelected:ze}=se;return w(le,null,[l.multiple&&!l.hideSelected?a(Bl,{key:m.value,modelValue:ze,ripple:!1,tabindex:"-1"},null):void 0,m.props.prependAvatar&&a(pl,{image:m.props.prependAvatar},null),m.props.prependIcon&&a(we,{icon:m.props.prependIcon},null)])},title:()=>{var se;return _.value?m.title:Ul("v-combobox",m.title,(se=p(m))==null?void 0:se.title)}})}}),(E=s["append-item"])==null?void 0:E.call(s)]}})]}),r.value.map((i,k)=>{function E(F){F.stopPropagation(),F.preventDefault(),B(i,!1)}const $={"onClick:close":E,onKeydown(F){F.key!=="Enter"&&F.key!==" "||(F.preventDefault(),F.stopPropagation(),E(F))},onMousedown(F){F.preventDefault(),F.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},m=Q.value?!!s.chip:!!s.selection,N=m?el(Q.value?s.chip({item:i,index:k,props:$}):s.selection({item:i,index:k})):void 0;if(!(m&&!N))return w("div",{key:i.value,class:al(["v-combobox__selection",k===o.value&&["v-combobox__selection--selected",H.value]]),style:ll(k===o.value?W.value:{})},[Q.value?s.chip?a(gl,{key:"chip-defaults",defaults:{VChip:{closable:l.closableChips,size:"small",text:i.title}}},{default:()=>[N]}):a($l,Z({key:"chip",closable:l.closableChips,size:"small",text:i.title,disabled:i.props.disabled},$),null):N??w("span",{class:"v-combobox__selection-text"},[i.title,l.multiple&&k<r.value.length-1&&w("span",{class:"v-combobox__selection-comma"},[Se(",")])])])})]),"append-inner":function(){var $,m;for(var i=arguments.length,k=new Array(i),E=0;E<i;E++)k[E]=arguments[E];return w(le,null,[($=s["append-inner"])==null?void 0:$.call(s,...k),(!l.hideNoData||l.items.length)&&l.menuIcon?a(we,{class:"v-combobox__menu-icon",color:(m=g.value)==null?void 0:m.fieldIconColor,icon:l.menuIcon,onMousedown:Me,onClick:Ze,"aria-label":x(P.value),title:x(P.value),tabindex:"-1"},null):void 0])}})}),Il({isFocused:d,isPristine:_,menu:f,search:C,selectionIndex:o,filteredItems:O,select:B},g)}}),Kl={class:"bg-white rounded-lg pa-4 position-relative h-100 d-flex flex-column"},ha={__name:"ComposeEmailForm",props:{originalEmail:{type:Object,default:null},replyAll:{type:Boolean,default:!1}},emits:["onToggleHtmlMode"],setup(l,{emit:L}){const V=l,s=L,x=ul(),g=sl(),{$gettext:d}=tl(),{displayNotification:_}=ol(),U=nl(),S=b([]),M=b(0),o=b([]),A=b("plain"),u=b({}),ae=b(),J=b(!1),H=b(!1),W=b(!1),r=b(!1),X=()=>{g.push({name:"MailboxView"})},Q=()=>{if(u.value={sender:U.authUser.username},V.originalEmail){if(u.value.to=V.originalEmail.reply_to?V.originalEmail.reply_to:V.originalEmail.from_address.address,V.replyAll){let p=V.originalEmail.to.filter(t=>t.address!==U.authUser.username).map(t=>t.fulladdress);V.originalEmail.cc&&V.originalEmail.cc.length&&(p=p.concat(V.originalEmail.cc.map(t=>t.fulladdress))),u.value.cc=p,H.value=!0}u.value.subject=V.originalEmail.subject,u.value.body=V.originalEmail.body,V.originalEmail.message_id&&(u.value.in_reply_to=V.originalEmail.message_id)}},T=async()=>{var c,Y;const{valid:p}=await ae.value.validate();if(!p)return;r.value=!0;const t={...u.value};if(typeof u.value.to!="string"?t.to=[u.value.to.emails[0].address]:t.to=[u.value.to],(c=t.cc)!=null&&c.length){const f=[];for(const P of t.cc)f.push(typeof P=="string"?P:P.emails[0].address);t.cc=f}if((Y=t.bcc)!=null&&Y.length){const f=[];for(const P of t.bcc)f.push(typeof P=="string"?P:P.emails[0].address);t.bcc=f}try{await j.sendEmailFromComposeSession(x.query.uid,t),g.push({name:"MailboxView"}),_({msg:d("Email sent")})}catch(f){console.log(f)}finally{r.value=!1}},R=()=>{J.value=!0},C=async()=>{J.value=!1;const p=await j.getUploadedAttachments(x.query.uid);M.value=p.data.length},te=il(async p=>{if(p){const t={search:p},c=await xl.getContacts(t);c.data.length&&(o.value=c.data)}else o.value=[]},500),O=p=>{p.signature&&(u.value.body?u.value.body+=p.signature:u.value.body=p.signature),A.value=p.editor_format};return G(()=>V.originalEmail,()=>{Q()},{immediate:!0}),x.query.uid?j.getComposeSession(x.query.uid).then(p=>{M.value=p.data.attachments.length,O(p.data)}):j.createComposeSession().then(p=>{const t={...x.query,uid:p.data.uid};g.push({name:x.name,query:t}),O(p.data)}),j.getAllowedSenders().then(p=>{S.value=p.data}),(p,t)=>(q(),re(le,null,[w("div",Kl,[a(Cl,{color:"white"},{default:v(()=>[a(D,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:X}),a(D,{class:"ml-2",color:"primary",variant:"tonal","prepend-icon":"mdi-send",loading:r.value,text:h(d)("Send"),onClick:T},null,8,["loading","text"]),a(D,{class:"ml-2",variant:"tonal","prepend-icon":"mdi-paperclip",text:h(d)("Attachments")+` (${M.value})`,onClick:R},null,8,["text"])]),_:1}),a(Ae,{ref_key:"formRef",ref:ae,class:"flex-grow-1 d-flex flex-column"},{default:v(()=>[w("div",null,[a(ne,{class:"align-center"},{default:v(()=>[a(I,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("From")),1)]),_:1}),a(I,{cols:"8"},{default:v(()=>[a(Sl,{modelValue:u.value.sender,"onUpdate:modelValue":t[0]||(t[0]=c=>u.value.sender=c),items:S.value,"item-title":"address","item-value":"address",variant:"outlined",density:"compact","hide-details":"auto",rules:[h(ve).required]},null,8,["modelValue","items","rules"])]),_:1})]),_:1}),a(ne,{class:"align-center"},{default:v(()=>[a(I,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("To")),1)]),_:1}),a(I,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.to,"onUpdate:modelValue":t[1]||(t[1]=c=>u.value.to=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",rules:[h(ve).required],"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","rules","onUpdate:search"])]),_:1}),a(I,{cols:"2"},{default:v(()=>[H.value?ie("",!0):(q(),ee(D,{key:0,text:h(d)("Cc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[2]||(t[2]=c=>H.value=!0)},null,8,["text"])),W.value?ie("",!0):(q(),ee(D,{key:1,text:h(d)("Bcc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[3]||(t[3]=c=>W.value=!0)},null,8,["text"]))]),_:1})]),_:1}),H.value?(q(),ee(ne,{key:0,class:"align-center"},{default:v(()=>[a(I,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Cc")),1),a(D,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[4]||(t[4]=c=>H.value=!1)})]),_:1}),a(I,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.cc,"onUpdate:modelValue":t[5]||(t[5]=c=>u.value.cc=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ie("",!0),W.value?(q(),ee(ne,{key:1,class:"align-center"},{default:v(()=>[a(I,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Bcc")),1),a(D,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[6]||(t[6]=c=>W.value=!1)})]),_:1}),a(I,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.bcc,"onUpdate:modelValue":t[7]||(t[7]=c=>u.value.bcc=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ie("",!0),a(ne,{class:"align-center"},{default:v(()=>[a(I,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Subject")),1)]),_:1}),a(I,{cols:"8"},{default:v(()=>[a(fe,{modelValue:u.value.subject,"onUpdate:modelValue":t[8]||(t[8]=c=>u.value.subject=c),variant:"outlined",density:"compact","hide-details":"auto"},null,8,["modelValue"])]),_:1})]),_:1})]),a(h(Hl),{modelValue:u.value.body,"onUpdate:modelValue":t[9]||(t[9]=c=>u.value.body=c),"editor-mode":A.value,onOnToggleHtmlMode:t[10]||(t[10]=c=>s("onToggleHtmlMode",c))},null,8,["modelValue","editor-mode"])]),_:1},512)]),a(zl,{modelValue:J.value,"onUpdate:modelValue":t[11]||(t[11]=c=>J.value=c),"max-width":"800"},{default:v(()=>[a(h(jl),{"session-uid":h(x).query.uid,onClose:C},null,8,["session-uid"])]),_:1},8,["modelValue"])],64))}};export{ha as _};
@@ -0,0 +1 @@
1
+ import{_ as o}from"./ComposeEmailForm-Bs1fZXAL.js";import{c as r,f as t,o as m}from"./index-BImkz5Jx.js";import"./index-DuzUMVLM.js";import"./webmail-CdU6CD9b.js";import"./VForm-D5iPGkde.js";import"./tag-B_yWNNJD.js";import"./VInput-CoDJzvaW.js";import"./VAvatar-Cmga0vj6.js";import"./VProgressCircular-BtOPiGCg.js";import"./forwardRefs-cvcnlhoK.js";import"./ssrBoot-CKUX4kcb.js";import"./VCard-CxH9DWoK.js";import"./VFileInput-BC4yAygd.js";import"./VTextField-XoGTj1KG.js";import"./VChip-D_styETR.js";import"./VTable-DaLxa4FO.js";import"./VSpacer-DinPiXs9.js";/* empty css */import"./HtmlEditor-Bh4c689R.js";import"./VTextarea-wBlRMIv_.js";import"./contacts-BjghrPqZ.js";import"./VToolbar-CFZfqeOr.js";import"./VRow-ozg66L7j.js";import"./VSelect-C3RjAa45.js";import"./VMenu-gUG70-zD.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";import"./filter-C82FUCw_.js";import"./VDialog-BcTg7w6P.js";const H={__name:"ComposeEmailView",setup(p){return(i,e)=>(m(),r(t(o)))}};export{H as default};
@@ -0,0 +1 @@
1
+ import{b as C,g as s,c as V,w as a,a as l,L as h,k as r,t as n,aj as L,x as T,m as z,aQ as D,o as g}from"./index-BImkz5Jx.js";import{V as S,a as B}from"./VToolbar-CFZfqeOr.js";import{V as K,b as N,a as j}from"./VCard-CxH9DWoK.js";import{V as I}from"./VSpacer-DinPiXs9.js";import{V as x}from"./VAvatar-Cmga0vj6.js";import{V as O}from"./VDialog-BcTg7w6P.js";const R={__name:"ConfirmDialog",props:{callback_agree:{type:Function,default:null}},setup(_,{expose:b}){const{$gettext:f}=C(),m=_,o=s(!1),c=s(""),p=s("");let u;const e=s({color:"primary",width:400,zIndex:2400,noconfirm:!1,cancelLabel:f("Cancel"),agreeLabel:f("OK")});function w(i,t,d){return o.value=!0,p.value=i,c.value=t,e.value=Object.assign(e.value,d),new Promise(y=>{u=y})}b({open:w});async function k(){m.callback_agree!==null&&!await m.callback_agree()||(u(!0),o.value=!1)}function v(){u(!1),o.value=!1}return(i,t)=>(g(),V(O,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=d=>o.value=d),"max-width":e.value.width,"z-index":e.value.zIndex,onKeydown:D(v,["esc"])},{default:a(()=>[l(j,null,{default:a(()=>[l(S,{color:e.value.color,density:"compact",variant:"flat"},{default:a(()=>[l(B,{class:"text-body-2 font-weight-bold"},{default:a(()=>[r(n(p.value),1)]),_:1})]),_:1},8,["color"]),h(l(K,{class:"pa-4"},{default:a(()=>[r(n(c.value)+" ",1),T(i.$slots,"default")]),_:3},512),[[L,!!c.value]]),l(N,{class:"pt-3"},{default:a(()=>[l(I),e.value.noconfirm?z("",!0):(g(),V(x,{key:0,onClick:v},{default:a(()=>[r(n(e.value.cancelLabel),1)]),_:1})),l(x,{color:e.value.color,onClick:k},{default:a(()=>[r(n(e.value.agreeLabel),1)]),_:1},8,["color"])]),_:1})]),_:3})]),_:3},8,["modelValue","max-width","z-index"]))}};export{R as _};
@@ -1 +1 @@
1
- .v-main[data-v-b2ffa9e6]{background-color:#f7f8fa}.logo[data-v-58cf46ea]{cursor:pointer}.v-navigation-drawer{-webkit-overflow-scrolling:touch;background:rgb(var(--v-theme-surface));display:flex;flex-direction:column;height:100%;max-width:100%;pointer-events:auto;transition-duration:.2s;transition-property:box-shadow,transform,visibility,width,height,left,right,top,bottom;transition-timing-function:cubic-bezier(.4,0,.2,1);position:absolute}.v-navigation-drawer{border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-navigation-drawer--border{border-width:thin;box-shadow:none}.v-navigation-drawer{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-navigation-drawer--rounded{border-radius:4px}.v-navigation-drawer--top{top:0;border-bottom-width:thin}.v-navigation-drawer--bottom{left:0;border-top-width:thin}.v-navigation-drawer--left{top:0;left:0;right:auto;border-right-width:thin}.v-navigation-drawer--right{top:0;left:auto;right:0;border-left-width:thin}.v-navigation-drawer--floating{border:none}.v-navigation-drawer--temporary.v-navigation-drawer--active{box-shadow:0 8px 10px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 16px 24px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 6px 30px 5px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer--sticky{height:auto;transition:box-shadow,transform,visibility,width,height,left,right}.v-navigation-drawer .v-list{overflow:hidden}.v-navigation-drawer__content{flex:0 1 auto;height:100%;max-width:100%;overflow-x:hidden;overflow-y:auto}.v-navigation-drawer__img{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.v-navigation-drawer__img img:not(.v-img__img){height:inherit;object-fit:cover;width:inherit}.v-navigation-drawer__scrim{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:.2;transition:opacity .2s cubic-bezier(.4,0,.2,1);z-index:1}.v-navigation-drawer__prepend,.v-navigation-drawer__append{flex:none;overflow:hidden}.top-menu[data-v-adb37b5d]{position:fixed;top:10px;right:10px;z-index:100}.application[data-v-adb37b5d]{cursor:pointer}.application[data-v-adb37b5d]:hover{background-color:rgb(var(--v-theme-surface))}.v-application{background-color:#f7f8fa!important}.v-snackbar{justify-content:center;z-index:10000;margin:8px;margin-inline-end:calc(8px + var(--v-scrollbar-offset));padding:var(--v-layout-top) var(--v-layout-right) var(--v-layout-bottom) var(--v-layout-left)}.v-snackbar:not(.v-snackbar--center):not(.v-snackbar--top){align-items:flex-end}.v-snackbar__wrapper{align-items:center;display:flex;max-width:672px;min-height:48px;min-width:344px;overflow:hidden;padding:0}.v-snackbar__wrapper{border-radius:4px}.v-snackbar--variant-plain,.v-snackbar--variant-outlined,.v-snackbar--variant-text,.v-snackbar--variant-tonal{background:transparent;color:inherit}.v-snackbar--variant-plain{opacity:.62}.v-snackbar--variant-plain:focus,.v-snackbar--variant-plain:hover{opacity:1}.v-snackbar--variant-plain .v-snackbar__overlay{display:none}.v-snackbar--variant-elevated,.v-snackbar--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-snackbar--variant-elevated{box-shadow:0 3px 5px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 6px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 18px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-outlined{border:thin solid currentColor}.v-snackbar--variant-text .v-snackbar__overlay{background:currentColor}.v-snackbar--variant-tonal .v-snackbar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-snackbar .v-snackbar__underlay{position:absolute}.v-snackbar__content{flex-grow:1;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1.425;margin-right:auto;padding:14px 16px;text-align:initial}.v-snackbar__actions{align-items:center;align-self:center;display:flex;margin-inline-end:8px}.v-snackbar__actions>.v-btn{padding:0 8px;min-width:auto}.v-snackbar__timer{width:100%;position:absolute;top:0}.v-snackbar__timer .v-progress-linear{transition:.2s linear}.v-snackbar--absolute{position:absolute;z-index:1}.v-snackbar--multi-line .v-snackbar__wrapper{min-height:68px}.v-snackbar--vertical .v-snackbar__wrapper{flex-direction:column}.v-snackbar--vertical .v-snackbar__wrapper .v-snackbar__actions{align-self:flex-end;margin-bottom:8px}.v-snackbar--center{align-items:center;justify-content:center}.v-snackbar--top{align-items:flex-start}.v-snackbar--bottom{align-items:flex-end}.v-snackbar--left,.v-snackbar--start{justify-content:flex-start}.v-snackbar--right,.v-snackbar--end{justify-content:flex-end}.v-snackbar-transition-enter-active,.v-snackbar-transition-leave-active{transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}.v-snackbar-transition-enter-active{transition-property:opacity,transform}.v-snackbar-transition-enter-from{opacity:0;transform:scale(.8)}.v-snackbar-transition-leave-active{transition-property:opacity}.v-snackbar-transition-leave-to{opacity:0}
1
+ .v-main[data-v-b2ffa9e6]{background-color:#f7f8fa}.logo[data-v-4deeb2f7]{cursor:pointer}.v-navigation-drawer{-webkit-overflow-scrolling:touch;background:rgb(var(--v-theme-surface));display:flex;flex-direction:column;height:100%;max-width:100%;pointer-events:auto;transition-duration:.2s;transition-property:box-shadow,transform,visibility,width,height,left,right,top,bottom;transition-timing-function:cubic-bezier(.4,0,.2,1);position:absolute}.v-navigation-drawer{border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-navigation-drawer--border{border-width:thin;box-shadow:none}.v-navigation-drawer{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-navigation-drawer--rounded{border-radius:4px}.v-navigation-drawer--top{top:0;border-bottom-width:thin}.v-navigation-drawer--bottom{left:0;border-top-width:thin}.v-navigation-drawer--left{top:0;left:0;right:auto;border-right-width:thin}.v-navigation-drawer--right{top:0;left:auto;right:0;border-left-width:thin}.v-navigation-drawer--floating{border:none}.v-navigation-drawer--temporary.v-navigation-drawer--active{box-shadow:0 8px 10px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 16px 24px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 6px 30px 5px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer--sticky{height:auto;transition:box-shadow,transform,visibility,width,height,left,right}.v-navigation-drawer .v-list{overflow:hidden}.v-navigation-drawer__content{flex:0 1 auto;height:100%;max-width:100%;overflow-x:hidden;overflow-y:auto}.v-navigation-drawer__img{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.v-navigation-drawer__img img:not(.v-img__img){height:inherit;object-fit:cover;width:inherit}.v-navigation-drawer__scrim{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:.2;transition:opacity .2s cubic-bezier(.4,0,.2,1);z-index:1}.v-navigation-drawer__prepend,.v-navigation-drawer__append{flex:none;overflow:hidden}.top-menu[data-v-7bd1943d]{position:fixed;top:10px;right:10px;z-index:100}.application[data-v-7bd1943d]{cursor:pointer}.application[data-v-7bd1943d]:hover{background-color:rgb(var(--v-theme-surface))}.v-application{background-color:#f7f8fa!important}.v-snackbar{justify-content:center;z-index:10000;margin:8px;margin-inline-end:calc(8px + var(--v-scrollbar-offset));padding:var(--v-layout-top) var(--v-layout-right) var(--v-layout-bottom) var(--v-layout-left)}.v-snackbar:not(.v-snackbar--center):not(.v-snackbar--top){align-items:flex-end}.v-snackbar__wrapper{align-items:center;display:flex;max-width:672px;min-height:48px;min-width:344px;overflow:hidden;padding:0}.v-snackbar__wrapper{border-radius:4px}.v-snackbar--variant-plain,.v-snackbar--variant-outlined,.v-snackbar--variant-text,.v-snackbar--variant-tonal{background:transparent;color:inherit}.v-snackbar--variant-plain{opacity:.62}.v-snackbar--variant-plain:focus,.v-snackbar--variant-plain:hover{opacity:1}.v-snackbar--variant-plain .v-snackbar__overlay{display:none}.v-snackbar--variant-elevated,.v-snackbar--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-snackbar--variant-elevated{box-shadow:0 3px 5px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 6px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 18px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-outlined{border:thin solid currentColor}.v-snackbar--variant-text .v-snackbar__overlay{background:currentColor}.v-snackbar--variant-tonal .v-snackbar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-snackbar .v-snackbar__underlay{position:absolute}.v-snackbar__content{flex-grow:1;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1.425;margin-right:auto;padding:14px 16px;text-align:initial}.v-snackbar__actions{align-items:center;align-self:center;display:flex;margin-inline-end:8px}.v-snackbar__actions>.v-btn{padding:0 8px;min-width:auto}.v-snackbar__timer{width:100%;position:absolute;top:0}.v-snackbar__timer .v-progress-linear{transition:.2s linear}.v-snackbar--absolute{position:absolute;z-index:1}.v-snackbar--multi-line .v-snackbar__wrapper{min-height:68px}.v-snackbar--vertical .v-snackbar__wrapper{flex-direction:column}.v-snackbar--vertical .v-snackbar__wrapper .v-snackbar__actions{align-self:flex-end;margin-bottom:8px}.v-snackbar--center{align-items:center;justify-content:center}.v-snackbar--top{align-items:flex-start}.v-snackbar--bottom{align-items:flex-end}.v-snackbar--left,.v-snackbar--start{justify-content:flex-start}.v-snackbar--right,.v-snackbar--end{justify-content:flex-end}.v-snackbar-transition-enter-active,.v-snackbar-transition-leave-active{transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}.v-snackbar-transition-enter-active{transition-property:opacity,transform}.v-snackbar-transition-enter-from{opacity:0;transform:scale(.8)}.v-snackbar-transition-leave-active{transition-property:opacity}.v-snackbar-transition-leave-to{opacity:0}
@@ -0,0 +1 @@
1
+ import{_ as ne,r as Oe,c as C,o as k,w as m,a as i,b5 as pe,b6 as Ye,a6 as N,h as V,a2 as He,d as ee,z,aw as we,b7 as Ue,b8 as q,aa as _e,b9 as be,az as ze,I as ke,J as xe,ac as We,al as Ve,Q as Xe,O as Se,g as Y,a7 as te,a0 as Ce,aS as Fe,T as je,e as P,v as J,F as E,am as Te,V as qe,u as Pe,q as Ge,f as O,p as Ze,l as I,s as G,m as Q,k as F,t as R,b as Be,ba as Je,ad as Ke,C as Qe,N as et,bb as tt,P as at,n as ot,bc as nt,x as ce}from"./index-BImkz5Jx.js";import{V as lt}from"./VContainer-B46caNs1.js";import{V as rt,a as it}from"./VApp-CKP-6zGP.js";import{u as st}from"./logos-BswdveCV.js";import{u as ut}from"./layout.store-NXWtFIwL.js";import{x as ct,l as vt,n as Le,y as dt,z as mt,o as Me,p as ft,A as ht,j as Ee,e as Ie,V as Z,c as K,b as gt,B as yt,C as pt,g as wt,a as _t,D as bt,E as kt,F as xt}from"./VAvatar-Cmga0vj6.js";import{V as oe,g as Vt,a as A,h as St,c as ve,b as de,f as Ct}from"./forwardRefs-cvcnlhoK.js";import{u as me}from"./VProgressCircular-BtOPiGCg.js";import{u as $e,c as Tt,b as Pt}from"./tag-B_yWNNJD.js";import{u as Ae,b as Bt,m as Lt,V as ae,a as fe,c as Mt}from"./VMenu-gUG70-zD.js";import{a as Et,b as It,V as $t,u as At}from"./layout-C5FyYCHK.js";import{u as Nt}from"./ssrBoot-CKUX4kcb.js";import{u as Dt}from"./global.store-DbkcI5o2.js";import{V as Rt}from"./VBadge-CixeK87a.js";import{a as he}from"./VCard-CxH9DWoK.js";import{V as Ot,a as Yt}from"./VRow-ozg66L7j.js";import{V as Ht}from"./VSheet-BNx2X4Mk.js";const Ut={__name:"ConnectedView",setup(e){return(r,o)=>{const u=Oe("router-view");return k(),C(rt,null,{default:m(()=>[i(lt,{fluid:"",style:{height:"100%"}},{default:m(()=>[i(u,null,{default:m(({Component:t})=>[i(pe,{name:"fade"},{default:m(()=>[(k(),C(Ye(t)))]),_:2},1024)]),_:1})]),_:1})]),_:1})}}},zt=ne(Ut,[["__scopeId","data-v-b2ffa9e6"]]);function Wt(e){let{rootEl:r,isSticky:o,layoutItemStyles:u}=e;const t=N(!1),v=N(0),l=V(()=>{const w=typeof t.value=="boolean"?"top":t.value;return[o.value?{top:"auto",bottom:"auto",height:void 0}:void 0,t.value?{[w]:He(v.value)}:{top:u.value.top}]});ee(()=>{z(o,w=>{w?window.addEventListener("scroll",p,{passive:!0}):window.removeEventListener("scroll",p)},{immediate:!0})}),we(()=>{window.removeEventListener("scroll",p)});let y=0;function p(){const w=y>window.scrollY?"up":"down",a=r.value.getBoundingClientRect(),s=parseFloat(u.value.top??0),d=window.scrollY-Math.max(0,v.value-s),n=a.height+Math.max(v.value,s)-window.scrollY-window.innerHeight,c=parseFloat(getComputedStyle(r.value).getPropertyValue("--v-body-scroll-y"))||0;a.height<window.innerHeight-s?(t.value="top",v.value=s):w==="up"&&t.value==="bottom"||w==="down"&&t.value==="top"?(v.value=window.scrollY+a.top-c,t.value=!0):w==="down"&&n<=0?(v.value=0,t.value="bottom"):w==="up"&&d<=0&&(c?t.value!=="top"&&(v.value=-d+c+s,t.value="top"):(v.value=a.top+d,t.value="top")),y=window.scrollY}return{isStuck:t,stickyStyles:l}}const Xt=100,Ft=20;function ge(e){return(e<0?-1:1)*Math.sqrt(Math.abs(e))*1.41421356237}function ye(e){if(e.length<2)return 0;if(e.length===2)return e[1].t===e[0].t?0:(e[1].d-e[0].d)/(e[1].t-e[0].t);let r=0;for(let o=e.length-1;o>0;o--){if(e[o].t===e[o-1].t)continue;const u=ge(r),t=(e[o].d-e[o-1].d)/(e[o].t-e[o-1].t);r+=(t-u)*Math.abs(t),o===e.length-1&&(r*=.5)}return ge(r)*1e3}function jt(){const e={};function r(t){Array.from(t.changedTouches).forEach(v=>{(e[v.identifier]??(e[v.identifier]=new Ue(Ft))).push([t.timeStamp,v])})}function o(t){Array.from(t.changedTouches).forEach(v=>{delete e[v.identifier]})}function u(t){var w;const v=(w=e[t])==null?void 0:w.values().reverse();if(!v)throw new Error(`No samples for touch id ${t}`);const l=v[0],y=[],p=[];for(const a of v){if(l[0]-a[0]>Xt)break;y.push({t:a[0],d:a[1].clientX}),p.push({t:a[0],d:a[1].clientY})}return{x:ye(y),y:ye(p),get direction(){const{x:a,y:s}=this,[d,n]=[Math.abs(a),Math.abs(s)];return d>n&&a>=0?"right":d>n&&a<=0?"left":n>d&&s>=0?"down":n>d&&s<=0?"up":qt()}}}return{addMovement:r,endTouch:o,getVelocity:u}}function qt(){throw new Error}function Gt(e){let{el:r,isActive:o,isTemporary:u,width:t,touchless:v,position:l}=e;ee(()=>{window.addEventListener("touchstart",M,{passive:!0}),window.addEventListener("touchmove",B,{passive:!1}),window.addEventListener("touchend",W,{passive:!0})}),we(()=>{window.removeEventListener("touchstart",M),window.removeEventListener("touchmove",B),window.removeEventListener("touchend",W)});const y=V(()=>["left","right"].includes(l.value)),{addMovement:p,endTouch:w,getVelocity:a}=jt();let s=!1;const d=N(!1),n=N(0),c=N(0);let S;function D(f,g){return(l.value==="left"?f:l.value==="right"?document.documentElement.clientWidth-f:l.value==="top"?f:l.value==="bottom"?document.documentElement.clientHeight-f:X())-(g?t.value:0)}function H(f){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const _=l.value==="left"?(f-c.value)/t.value:l.value==="right"?(document.documentElement.clientWidth-f-c.value)/t.value:l.value==="top"?(f-c.value)/t.value:l.value==="bottom"?(document.documentElement.clientHeight-f-c.value)/t.value:X();return g?ze(_):_}function M(f){if(v.value)return;const g=f.changedTouches[0].clientX,_=f.changedTouches[0].clientY,b=25,x=l.value==="left"?g<b:l.value==="right"?g>document.documentElement.clientWidth-b:l.value==="top"?_<b:l.value==="bottom"?_>document.documentElement.clientHeight-b:X(),h=o.value&&(l.value==="left"?g<t.value:l.value==="right"?g>document.documentElement.clientWidth-t.value:l.value==="top"?_<t.value:l.value==="bottom"?_>document.documentElement.clientHeight-t.value:X());(x||h||o.value&&u.value)&&(S=[g,_],c.value=D(y.value?g:_,o.value),n.value=H(y.value?g:_),s=c.value>-20&&c.value<80,w(f),p(f))}function B(f){const g=f.changedTouches[0].clientX,_=f.changedTouches[0].clientY;if(s){if(!f.cancelable){s=!1;return}const x=Math.abs(g-S[0]),h=Math.abs(_-S[1]);(y.value?x>h&&x>3:h>x&&h>3)?(d.value=!0,s=!1):(y.value?h:x)>3&&(s=!1)}if(!d.value)return;f.preventDefault(),p(f);const b=H(y.value?g:_,!1);n.value=Math.max(0,Math.min(1,b)),b>1?c.value=D(y.value?g:_,!0):b<0&&(c.value=D(y.value?g:_,!1))}function W(f){if(s=!1,!d.value)return;p(f),d.value=!1;const g=a(f.changedTouches[0].identifier),_=Math.abs(g.x),b=Math.abs(g.y);(y.value?_>b&&_>400:b>_&&b>3)?o.value=g.direction===({left:"right",right:"left",top:"down",bottom:"up"}[l.value]||X()):o.value=n.value>.5}const U=V(()=>d.value?{transform:l.value==="left"?`translateX(calc(-100% + ${n.value*t.value}px))`:l.value==="right"?`translateX(calc(100% - ${n.value*t.value}px))`:l.value==="top"?`translateY(calc(-100% + ${n.value*t.value}px))`:l.value==="bottom"?`translateY(calc(100% - ${n.value*t.value}px))`:X(),transition:"none"}:void 0);return q(d,()=>{var _,b;const f=((_=r.value)==null?void 0:_.style.transform)??null,g=((b=r.value)==null?void 0:b.style.transition)??null;_e(()=>{var x,h,L,$;(h=r.value)==null||h.style.setProperty("transform",((x=U.value)==null?void 0:x.transform)||"none"),($=r.value)==null||$.style.setProperty("transition",((L=U.value)==null?void 0:L.transition)||null)}),be(()=>{var x,h;(x=r.value)==null||x.style.setProperty("transform",f),(h=r.value)==null||h.style.setProperty("transition",g)})}),{isDragging:d,dragProgress:n,dragStyles:U}}function X(){throw new Error}const Zt=["start","end","left","right","top","bottom"],Jt=xe({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,persistent:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:e=>Zt.includes(e)},sticky:Boolean,...ht(),...Pt(),...Lt(),...qe({mobile:null}),...ft(),...It(),...Me(),...Tt({tag:"nav"}),...Te()},"VNavigationDrawer"),Kt=ke()({name:"VNavigationDrawer",props:Jt(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,r){let{attrs:o,emit:u,slots:t}=r;const{isRtl:v}=We(),{themeClasses:l}=Ve(e),{borderClasses:y}=ct(e),{backgroundColorClasses:p,backgroundColorStyles:w}=me(()=>e.color),{elevationClasses:a}=vt(e),{displayClasses:s,mobile:d}=Xe(e),{roundedClasses:n}=Le(e),c=dt(),S=Se(e,"modelValue",null,T=>!!T),{ssrBootStyles:D}=Nt(),{scopeId:H}=Ae(),M=Y(),B=N(!1),{runOpenDelay:W,runCloseDelay:U}=Bt(e,T=>{B.value=T}),f=V(()=>e.rail&&e.expandOnHover&&B.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),g=V(()=>mt(e.location,v.value)),_=te(()=>e.persistent),b=V(()=>!e.permanent&&(d.value||e.temporary)),x=V(()=>e.sticky&&!b.value&&g.value!=="bottom");q(()=>e.expandOnHover&&e.rail!=null,()=>{z(B,T=>u("update:rail",!T))}),q(()=>!e.disableResizeWatcher,()=>{z(b,T=>!e.permanent&&Ce(()=>S.value=!T))}),q(()=>!e.disableRouteWatcher&&!!c,()=>{z(c.currentRoute,()=>b.value&&(S.value=!1))}),z(()=>e.permanent,T=>{T&&(S.value=!0)}),e.modelValue==null&&!b.value&&(S.value=e.permanent||!d.value);const{isDragging:h,dragProgress:L}=Gt({el:M,isActive:S,isTemporary:b,width:f,touchless:te(()=>e.touchless),position:g}),$=V(()=>{const T=b.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):f.value;return h.value?T*L.value:T}),{layoutItemStyles:j,layoutItemScrimStyles:Ne}=Et({id:e.name,order:V(()=>parseInt(e.order,10)),position:g,layoutSize:$,elementSize:f,active:Fe(S),disableTransitions:te(()=>h.value),absolute:V(()=>e.absolute||x.value&&typeof le.value!="string")}),{isStuck:le,stickyStyles:De}=Wt({rootEl:M,isSticky:x,layoutItemStyles:j}),re=me(()=>typeof e.scrim=="string"?e.scrim:null),Re=V(()=>({...h.value?{opacity:L.value*.2,transition:"none"}:void 0,...Ne.value}));return je({VList:{bgColor:"transparent"}}),$e(()=>{const T=t.image||e.image;return P(E,null,[i(e.tag,J({ref:M,onMouseenter:W,onMouseleave:U,class:["v-navigation-drawer",`v-navigation-drawer--${g.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":B.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":b.value,"v-navigation-drawer--persistent":_.value,"v-navigation-drawer--active":S.value,"v-navigation-drawer--sticky":x.value},l.value,p.value,y.value,s.value,a.value,n.value,e.class],style:[w.value,j.value,D.value,De.value,e.style]},H,o),{default:()=>{var ie,se,ue;return[T&&P("div",{key:"image",class:"v-navigation-drawer__img"},[t.image?i(Ie,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},t.image):i(Ee,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),t.prepend&&P("div",{class:"v-navigation-drawer__prepend"},[(ie=t.prepend)==null?void 0:ie.call(t)]),P("div",{class:"v-navigation-drawer__content"},[(se=t.default)==null?void 0:se.call(t)]),t.append&&P("div",{class:"v-navigation-drawer__append"},[(ue=t.append)==null?void 0:ue.call(t)])]}}),i(pe,{name:"fade-transition"},{default:()=>[b.value&&(h.value||S.value)&&!!e.scrim&&P("div",J({class:["v-navigation-drawer__scrim",re.backgroundColorClasses.value],style:[Re.value,re.backgroundColorStyles.value],onClick:()=>{_.value||(S.value=!1)}},H),null)]})])}),{isStuck:le}}}),Qt={class:"d-flex align-center"},ea={__name:"NavBar",props:{color:{type:String,default:"primary"},menuItems:{type:Array,required:!1,default:null},logoRoute:{type:Object,default:null}},setup(e){const r=e,o=Pe(),u=ut(),t=Ge(),{menuLogoPath:v}=st(),l=Y(!1),y=Y(!0),p=V(()=>o.authUser),w=V(()=>o.isAuthenticated);function a(s){return w.value?(s.roles===void 0||s.roles.indexOf(p.value.role)!==-1)&&(s.condition===void 0||s.condition())&&s.activated!==!1:!1}return(s,d)=>(k(),C(Kt,{modelValue:y.value,"onUpdate:modelValue":d[2]||(d[2]=n=>y.value=n),rail:l.value,permanent:"",color:e.color,app:""},{default:m(()=>[P("div",Qt,[i(Ee,{src:O(v),"max-width":"190",class:"logo",onClick:d[0]||(d[0]=n=>O(t).push(r.logoRoute))},null,8,["src"]),i(Z,{icon:l.value?"mdi-chevron-right":"mdi-chevron-left",variant:"text",onClick:d[1]||(d[1]=Ze(n=>l.value=!l.value,["stop"]))},null,8,["icon"])]),i(oe,{density:O(u).compactLeftMenu?"compact":"default",lines:!O(u).compactLeftMenu,nav:""},{default:m(()=>[(k(!0),I(E,null,G(e.menuItems,n=>(k(),I(E,{key:n.text},[a(n)?(k(),I(E,{key:0},[n.subheader?(k(),C(Vt,{key:0,class:"text-white"},{default:m(()=>[F(R(n.text.toUpperCase()),1)]),_:2},1024)):n.action?(k(),C(A,{key:1,value:n,exact:n.exact,title:n.text,"prepend-icon":n.icon,onClick:n.action},null,8,["value","exact","title","prepend-icon","onClick"])):n.children?(k(),C(St,{key:3,value:n.text},{activator:m(({props:c})=>[(k(),C(A,J({ref_for:!0},c,{key:n.text,title:n.text,color:"white","prepend-icon":n.icon}),null,16,["title","prepend-icon"]))]),default:m(()=>[(k(!0),I(E,null,G(n.children,c=>(k(),I(E,{key:c.text},[a(c)?(k(),I(E,{key:0},[c.action?(k(),C(A,{key:0,title:c.text,value:c,"prepend-icon":c.icon,onClick:c.action},null,8,["title","value","prepend-icon","onClick"])):(k(),C(A,{key:1,to:c.to,link:"",title:c.text,value:c,"prepend-icon":c.icon},null,8,["to","title","value","prepend-icon"]))],64)):Q("",!0)],64))),128))]),_:2},1032,["value"])):(k(),C(A,{key:2,value:n,to:n.to,link:"",exact:n.exact,title:n.text,"prepend-icon":n.icon},null,8,["value","to","exact","title","prepend-icon"]))],64)):Q("",!0)],64))),128))]),_:1},8,["density","lines"])]),_:1},8,["modelValue","rail","color"]))}},ta=ne(ea,[["__scopeId","data-v-4deeb2f7"]]),aa={key:0,class:"top-menu"},oa={class:"text-center"},na={class:"mt-2"},la={class:"text-center"},ra={class:"text-h5"},ia={__name:"TopMenu",props:{user:{type:Object,default:null},remote:{type:Boolean,default:!1}},setup(e){const r=e,{$gettext:o}=Be(),u=Dt(),t=Y([]),v=V(()=>r.user.first_name&&r.user.last_name?`${r.user.first_name[0].toUpperCase()}${r.user.last_name[0].toUpperCase()}`:r.user.username?r.user.username.slice(0,2).toUpperCase():""),l=V(()=>[{text:o("Account"),icon:"mdi-account-circle-outline",to:r.remote?null:{name:"AccountSettings"},href:r.remote?"https://localhost:3000/account":"",click:()=>null},{text:o("Logout"),icon:"mdi-logout",click:y}]);async function y(){Je()._s.forEach(async p=>await p.$reset())}return ee(()=>{Ke.getAvailableApplications().then(p=>{t.value=p.data}),u.fetchNotifications()}),(p,w)=>e.user?(k(),I("div",aa,[O(u).activeNotifications?(k(),C(Z,{key:0,icon:"",color:"error",class:"mr-4",variant:"tonal",size:"small"},{default:m(()=>[i(K,{icon:"mdi-bell"}),i(ae,{activator:"parent",location:"bottom"},{default:m(()=>[i(oe,null,{default:m(()=>[P("div",oa,[i(A,{title:O(o)("Notifications")},null,8,["title"])]),i(ve),(k(!0),I(E,null,G(O(u).notifications,a=>(k(),C(A,{key:a.id,to:a.url},{prepend:m(()=>[i(Rt,{color:a.color,content:a.counter,inline:""},null,8,["color","content"])]),default:m(()=>[i(de,null,{default:m(()=>[F(R(a.text),1)]),_:2},1024)]),_:2},1032,["to"]))),128))]),_:1})]),_:1})]),_:1})):Q("",!0),i(Z,{icon:"",class:"mr-4",variant:"flat"},{default:m(()=>[i(K,{icon:"mdi-apps"}),i(ae,{activator:"parent",location:"bottom"},{default:m(()=>[i(he,{"min-width":"350","max-width":"400",class:"pa-4"},{default:m(()=>[i(Ot,{class:"justify-center"},{default:m(()=>[(k(!0),I(E,null,G(t.value,a=>(k(),C(Yt,{key:a.name,cols:"6"},{default:m(()=>[i(Ht,{rounded:"",class:"application text-center pa-4 text-body-2",onClick:s=>p.$router.push(a.url)},{default:m(()=>[i(K,{color:"primary",icon:a.icon,size:"x-large"},null,8,["icon"]),P("div",na,R(a.label),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1}),i(Z,{icon:"",flat:"",color:"primary"},{default:m(()=>[F(R(v.value)+" ",1),i(ae,{activator:"parent",location:"bottom"},{default:m(()=>[i(he,{"min-width":"300","max-width":"350"},{default:m(()=>[i(oe,null,{default:m(()=>[P("div",la,[i(gt,{color:"primary"},{default:m(()=>[P("span",ra,R(v.value),1)]),_:1}),i(A,{title:e.user.username},null,8,["title"])]),i(ve),(k(!0),I(E,null,G(l.value,a=>(k(),C(A,{key:a.text,to:a.to,href:a.href,link:"",onClick:a.click},{prepend:m(()=>[i(K,{icon:a.icon},null,8,["icon"])]),default:m(()=>[i(de,null,{default:m(()=>[F(R(a.text),1)]),_:2},1024)]),_:2},1032,["to","href","onClick"]))),128))]),_:1})]),_:1})]),_:1})]),_:1})])):Q("",!0)}},sa=ne(ia,[["__scopeId","data-v-7bd1943d"]]),ua={getTheme(){return Qe.get("/theme/")}};function ca(e){const r=N(e());let o=-1;function u(){clearInterval(o)}function t(){u(),Ce(()=>r.value=e())}function v(l){const y=l?getComputedStyle(l):{transitionDuration:.2},p=parseFloat(y.transitionDuration)*1e3||200;if(u(),r.value<=0)return;const w=performance.now();o=window.setInterval(()=>{const a=performance.now()-w+p;r.value=Math.max(e()-a,0),r.value<=0&&u()},p)}return be(u),{clear:u,time:r,start:v,reset:t}}const va=xe({multiLine:Boolean,text:String,timer:[Boolean,String],timeout:{type:[Number,String],default:5e3},vertical:Boolean,...xt({location:"bottom"}),...kt(),...Me(),...bt(),...Te(),...at(Mt({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","scrim","scrollStrategy"])},"VSnackbar"),da=ke()({name:"VSnackbar",props:va(),emits:{"update:modelValue":e=>!0},setup(e,r){let{slots:o}=r;const u=Se(e,"modelValue"),{positionClasses:t}=yt(e),{scopeId:v}=Ae(),{themeClasses:l}=Ve(e),{colorClasses:y,colorStyles:p,variantClasses:w}=pt(e),{roundedClasses:a}=Le(e),s=ca(()=>Number(e.timeout)),d=Y(),n=Y(),c=N(!1),S=N(0),D=Y(),H=et($t,void 0);q(()=>!!H,()=>{const h=At();_e(()=>{D.value=h.mainStyles.value})}),z(u,B),z(()=>e.timeout,B),ee(()=>{u.value&&B()});let M=-1;function B(){s.reset(),window.clearTimeout(M);const h=Number(e.timeout);if(!u.value||h===-1)return;const L=tt(n.value);s.start(L),M=window.setTimeout(()=>{u.value=!1},h)}function W(){s.reset(),window.clearTimeout(M)}function U(){c.value=!0,W()}function f(){c.value=!1,B()}function g(h){S.value=h.touches[0].clientY}function _(h){Math.abs(S.value-h.changedTouches[0].clientY)>50&&(u.value=!1)}function b(){c.value&&f()}const x=V(()=>e.location.split(" ").reduce((h,L)=>(h[`v-snackbar--${L}`]=!0,h),{}));return $e(()=>{const h=fe.filterProps(e),L=!!(o.default||o.text||e.text);return i(fe,J({ref:d,class:["v-snackbar",{"v-snackbar--active":u.value,"v-snackbar--multi-line":e.multiLine&&!e.vertical,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},x.value,t.value,e.class],style:[D.value,e.style]},h,{modelValue:u.value,"onUpdate:modelValue":$=>u.value=$,contentProps:J({class:["v-snackbar__wrapper",l.value,y.value,a.value,w.value],style:[p.value],onPointerenter:U,onPointerleave:f},h.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:g,onTouchend:_,onAfterLeave:b},v),{default:()=>{var $,j;return[wt(!1,"v-snackbar"),e.timer&&!c.value&&P("div",{key:"timer",class:"v-snackbar__timer"},[i(_t,{ref:n,color:typeof e.timer=="string"?e.timer:"info",max:e.timeout,"model-value":s.time.value},null)]),L&&P("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[(($=o.text)==null?void 0:$.call(o))??e.text,(j=o.default)==null?void 0:j.call(o)]),o.actions&&i(Ie,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[P("div",{class:"v-snackbar__actions"},[o.actions({isActive:u})])]})]},activator:o.activator})}),Ct({},d)}}),ma=2e3,Ma={__name:"ConnectedLayout",props:{color:{type:String,default:"primary"},menuItems:{type:Array,default:null},loadTheme:{type:Boolean,default:!0}},setup(e){const r=Pe(),o=ot(),{$gettext:u}=Be(),t=nt(),v=e,l=V(()=>r.authUser),y=V(()=>o.notificationColor),p=V(()=>o.notification),w=Y(!1);return o.$onAction(({name:a,after:s})=>{a==="displayNotification"&&s(()=>{w.value=!0})},!0),v.loadTheme&&ua.getTheme().then(a=>{a.data.theme_primary_color!==t.themes.value.light.colors.primary&&(t.themes.value.light.colors.primary=a.data.theme_primary_color),a.data.theme_primary_color_light!==t.themes.value.light.colors["primary-lighten-1"]&&(t.themes.value.light.colors["primary-lighten-1"]=a.data.theme_primary_color_light),a.data.theme_primary_color_dark!==t.themes.value.light.colors["primary-darken-1"]&&(t.themes.value.light.colors["primary-darken-1"]=a.data.theme_primary_color_dark),a.data.theme_secondary_color!==t.themes.value.light.colors.secondary&&(t.themes.value.light.colors.secondary=a.data.theme_secondary_color),a.data.theme_label_color!==t.themes.value.light.colors.label&&(t.themes.value.light.colors.label=a.data.theme_label_color)}),(a,s)=>(k(),C(it,null,{default:m(()=>[ce(a.$slots,"navbar",{},()=>[i(ta,{color:e.color,"menu-items":e.menuItems},null,8,["color","menu-items"])]),ce(a.$slots,"topbar",{},()=>[i(sa,{user:l.value},null,8,["user"])]),i(zt),i(da,{modelValue:w.value,"onUpdate:modelValue":s[1]||(s[1]=d=>w.value=d),color:y.value,timeout:ma,location:"top"},{actions:m(()=>[i(Z,{color:"white",text:"",onClick:s[0]||(s[0]=d=>w.value=!1)},{default:m(()=>[F(R(O(u)("Close")),1)]),_:1})]),default:m(()=>[F(R(p.value)+" ",1)]),_:1},8,["modelValue","color"])]),_:3}))}};export{Kt as V,Ma as _};
@@ -0,0 +1 @@
1
+ import{_ as me}from"./ConfirmDialog-DY_kUHLG.js";import{_ as pe,b as ne,l as A,o as S,s as F,F as T,e as v,t as f,f as _,c as C,w as c,x as U,m as re,a as l,k as x,I as R,J as $,K as ve,h as b,L as fe,y as ye,M as P,N as Ve,O as Se,v as J,P as be,Q as oe,R as ke,S as Z,T as ge,U as he,V as _e,g as M,W as xe,X as we,Y as Ie}from"./index-BImkz5Jx.js";import{a as j,V as ie}from"./VRow-ozg66L7j.js";import{u as Ce}from"./logos-BswdveCV.js";import{V as W,e as ee,f as Pe,R as te,u as $e,g as Be,c as We,b as Ae,m as Te,h as Le,i as je,j as Fe}from"./VAvatar-Cmga0vj6.js";import{u as D}from"./tag-B_yWNNJD.js";import{V as ae,m as Re,a as le,b as De}from"./VWindowItem-BB7ETW3b.js";import{V as Ne}from"./VContainer-B46caNs1.js";import{V as se,m as Ee}from"./VSheet-BNx2X4Mk.js";import{c as ze}from"./forwardRefs-cvcnlhoK.js";const Ge={class:"subtitle mt-4 d-flex"},Oe={class:"text-h6"},Me=["onClick"],Ue={class:"text-grey"},He={__name:"CreationSummary",props:{sections:{type:Array,default:()=>[]}},emits:["modify-step"],setup(e,{emit:y}){const{$gettext:t}=ne(),a=y;function u(n){return n.length?n.join(", "):t("Empty")}return(n,o)=>(S(!0),A(T,null,F(e.sections,(d,p)=>(S(),A(T,{key:p},[v("div",Ge,[v("span",Oe,f(d.title),1),v("a",{href:"#",class:"edit-link ml-auto",onClick:s=>a("modify-step",p+1)},f(_(t)("Modify")),9,Me)]),(S(!0),A(T,null,F(d.items,(s,m)=>(S(),C(ie,{key:m,dense:""},{default:c(()=>[s.value!==void 0?U(n.$slots,`item.${s.name}`,{key:0,item:s,displayList:u},()=>[l(j,null,{default:c(()=>[v("span",Ue,f(s.key),1)]),_:2},1024),s.type==="yesno"?(S(),C(j,{key:0,class:"text-right"},{default:c(()=>[x(f(n.$yesno(s.value)),1)]),_:2},1024)):s.type==="list"?(S(),C(j,{key:1,class:"text-right"},{default:c(()=>[x(f(u(s.value)),1)]),_:2},1024)):(S(),C(j,{key:2,class:"text-right"},{default:c(()=>[x(f(s.value),1)]),_:2},1024))],!0):re("",!0)]),_:2},1024))),128))],64))),128))}},Ye=pe(He,[["__scopeId","data-v-6e743e1a"]]),K=Symbol.for("vuetify:v-stepper"),ue=$({color:String,disabled:{type:[Boolean,String],default:!1},prevText:{type:String,default:"$vuetify.stepper.prev"},nextText:{type:String,default:"$vuetify.stepper.next"}},"VStepperActions"),Je=R()({name:"VStepperActions",props:ue(),emits:{"click:prev":()=>!0,"click:next":()=>!0},setup(e,y){let{emit:t,slots:a}=y;const{t:u}=ve();function n(){t("click:prev")}function o(){t("click:next")}return D(()=>{const d={onClick:n},p={onClick:o};return v("div",{class:"v-stepper-actions"},[l(ee,{defaults:{VBtn:{disabled:["prev",!0].includes(e.disabled),text:u(e.prevText),variant:"text"}}},{default:()=>{var s;return[((s=a.prev)==null?void 0:s.call(a,{props:d}))??l(W,d,null)]}}),l(ee,{defaults:{VBtn:{color:e.color,disabled:["next",!0].includes(e.disabled),text:u(e.nextText),variant:"tonal"}}},{default:()=>{var s;return[((s=a.next)==null?void 0:s.call(a,{props:p}))??l(W,p,null)]}})])}),{}}}),ce=Pe("v-stepper-header"),Ke=$({color:String,title:String,subtitle:String,complete:Boolean,completeIcon:{type:P,default:"$complete"},editable:Boolean,editIcon:{type:P,default:"$edit"},error:Boolean,errorIcon:{type:P,default:"$error"},icon:P,ripple:{type:[Boolean,Object],default:!0},rules:{type:Array,default:()=>[]}},"StepperItem"),Qe=$({...Ke(),...Te()},"VStepperItem"),H=R()({name:"VStepperItem",directives:{vRipple:te},props:Qe(),emits:{"group:selected":e=>!0},setup(e,y){let{slots:t}=y;const a=$e(e,K,!0),u=b(()=>(a==null?void 0:a.value.value)??e.value),n=b(()=>e.rules.every(I=>I()===!0)),o=b(()=>!e.disabled&&e.editable),d=b(()=>!e.disabled&&e.editable),p=b(()=>e.error||!n.value),s=b(()=>e.complete||e.rules.length>0&&n.value),m=b(()=>p.value?e.errorIcon:s.value?e.completeIcon:a.isSelected.value&&e.editable?e.editIcon:e.icon),w=b(()=>({canEdit:d.value,hasError:p.value,hasCompleted:s.value,title:e.title,subtitle:e.subtitle,step:u.value,value:e.value}));return D(()=>{var r,i,h;const I=(!a||a.isSelected.value||s.value||d.value)&&!p.value&&!e.disabled,L=!!(e.title!=null||t.title),V=!!(e.subtitle!=null||t.subtitle);function k(){a==null||a.toggle()}return fe(v("button",{class:ye(["v-stepper-item",{"v-stepper-item--complete":s.value,"v-stepper-item--disabled":e.disabled,"v-stepper-item--error":p.value},a==null?void 0:a.selectedClass.value]),disabled:!e.editable,type:"button",onClick:k},[o.value&&Be(!0,"v-stepper-item"),l(Ae,{key:"stepper-avatar",class:"v-stepper-item__avatar",color:I?e.color:void 0,size:24},{default:()=>{var g;return[((g=t.icon)==null?void 0:g.call(t,w.value))??(m.value?l(We,{icon:m.value},null):u.value)]}}),v("div",{class:"v-stepper-item__content"},[L&&v("div",{key:"title",class:"v-stepper-item__title"},[((r=t.title)==null?void 0:r.call(t,w.value))??e.title]),V&&v("div",{key:"subtitle",class:"v-stepper-item__subtitle"},[((i=t.subtitle)==null?void 0:i.call(t,w.value))??e.subtitle]),(h=t.default)==null?void 0:h.call(t,w.value)])]),[[te,e.ripple&&e.editable,null]])}),{}}}),Xe=$({...be(Re(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VStepperWindow"),de=R()({name:"VStepperWindow",props:Xe(),emits:{"update:modelValue":e=>!0},setup(e,y){let{slots:t}=y;const a=Ve(K,null),u=Se(e,"modelValue"),n=b({get(){var o;return u.value!=null||!a?u.value:(o=a.items.value.find(d=>a.selected.value.includes(d.id)))==null?void 0:o.value},set(o){u.value=o}});return D(()=>{const o=ae.filterProps(e);return l(ae,J({_as:"VStepperWindow"},o,{modelValue:n.value,"onUpdate:modelValue":d=>n.value=d,class:["v-stepper-window",e.class],style:e.style,mandatory:!1,touch:!1}),t)}),{}}}),qe=$({...De()},"VStepperWindowItem"),Y=R()({name:"VStepperWindowItem",props:qe(),setup(e,y){let{slots:t}=y;return D(()=>{const a=le.filterProps(e);return l(le,J({_as:"VStepperWindowItem"},a,{class:["v-stepper-window-item",e.class],style:e.style}),t)}),{}}}),Ze=$({altLabels:Boolean,bgColor:String,completeIcon:P,editIcon:P,editable:Boolean,errorIcon:P,hideActions:Boolean,items:{type:Array,default:()=>[]},itemTitle:{type:String,default:"title"},itemValue:{type:String,default:"value"},nonLinear:Boolean,flat:Boolean,..._e()},"Stepper"),et=$({...Ze(),...je({mandatory:"force",selectedClass:"v-stepper-item--selected"}),...Ee(),...he(ue(),["prevText","nextText"])},"VStepper"),tt=R()({name:"VStepper",props:et(),emits:{"update:modelValue":e=>!0},setup(e,y){let{slots:t}=y;const{items:a,next:u,prev:n,selected:o}=Le(e,K),{displayClasses:d,mobile:p}=oe(e),{completeIcon:s,editIcon:m,errorIcon:w,color:I,editable:L,prevText:V,nextText:k}=ke(e),r=b(()=>e.items.map((g,z)=>{const N=Z(g,e.itemTitle,g),G=Z(g,e.itemValue,z+1);return{title:N,value:G,raw:g}})),i=b(()=>a.value.findIndex(g=>o.value.includes(g.id))),h=b(()=>e.disabled?e.disabled:i.value===0?"prev":i.value===a.value.length-1?"next":!1);return ge({VStepperItem:{editable:L,errorIcon:w,completeIcon:s,editIcon:m,prevText:V,nextText:k},VStepperActions:{color:I,disabled:h,prevText:V,nextText:k}}),D(()=>{const g=se.filterProps(e),z=!!(t.header||e.items.length),N=e.items.length>0,G=!e.hideActions&&!!(N||t.actions);return l(se,J(g,{color:e.bgColor,class:["v-stepper",{"v-stepper--alt-labels":e.altLabels,"v-stepper--flat":e.flat,"v-stepper--non-linear":e.nonLinear,"v-stepper--mobile":p.value},d.value,e.class],style:e.style}),{default:()=>{var Q,X;return[z&&l(ce,{key:"stepper-header"},{default:()=>[r.value.map((B,E)=>{let{raw:O,...q}=B;return v(T,null,[!!E&&l(ze,null,null),l(H,q,{default:t[`header-item.${q.value}`]??t.header,icon:t.icon,title:t.title,subtitle:t.subtitle})])})]}),N&&l(de,{key:"stepper-window"},{default:()=>[r.value.map(B=>l(Y,{value:B.value},{default:()=>{var E,O;return((E=t[`item.${B.value}`])==null?void 0:E.call(t,B))??((O=t.item)==null?void 0:O.call(t,B))}}))]}),(Q=t.default)==null?void 0:Q.call(t,{prev:n,next:u}),G&&(((X=t.actions)==null?void 0:X.call(t,{next:u,prev:n}))??l(Je,{key:"stepper-actions","onClick:prev":n,"onClick:next":u},t))]}})}),{prev:n,next:u}}}),at={class:"d-flex justify-center inner fill-height"},lt={class:"mb-5 text-h5"},st={class:"text-grey-darken-1"},nt={class:"d-flex justify-end mt-4"},rt={class:"text-center text-h3"},ot={class:"d-flex justify-center mt-8"},St={__name:"CreationForm",props:{title:{type:String,default:""},steps:{type:Array,default:()=>[]},summarySections:{type:Array,default:()=>[]},getVFormRef:{type:Function,default:null},formGetter:{type:Function,default:null},validateObject:{type:Function,default:null}},emits:["close","create","validationError"],setup(e,{expose:y,emit:t}){const{smAndDown:a}=oe(),{creationFormLogoPath:u}=Ce(),n=e,o=M(1),d=M(!1),p=M(),s=t,{$gettext:m}=ne();async function w(){await p.value.open(m("Warning"),m("If you close this form now, your modifications won't be saved. Do you confirm?"),{color:"warning",agreeLabel:m("Yes"),cancelLabel:m("No")})&&s("close")}async function I(V,k){const r=n.getVFormRef(n.steps[V-1]);if(r!==void 0){const{valid:i}=await r.validate();if(!i)return;if(n.validateObject)try{await n.validateObject(V)}catch(h){s("validationError",V,h.response.data);return}}o.value=k}function L(){d.value=!0,s("create")}return y({working:d}),(V,k)=>(S(),A("div",at,[l(tt,{modelValue:o.value,"onUpdate:modelValue":k[1]||(k[1]=r=>o.value=r),mobile:!_(a),class:"vertical-overflow"},{default:c(()=>[l(_(me),{ref_key:"confirm",ref:p},null,512),l(ce,{class:"align-center px-10"},{default:c(()=>[l(Fe,{src:_(u),"max-width":"190",class:"hidden-sm-and-down"},null,8,["src"]),(S(!0),A(T,null,F(e.steps,(r,i)=>(S(),C(H,{key:r.name,color:"primary",value:i+1,complete:o.value>i+1},{default:c(()=>[x(f(r.title),1)]),_:2},1032,["value","complete"]))),128)),l(H,{value:e.steps.length+1},{default:c(()=>[x(f(_(m)("Summary")),1)]),_:1},8,["value"]),l(W,{icon:"mdi-close",color:"primary",size:_(a)?"small":"x-large",variant:"text",onClick:w},null,8,["size"])]),_:1}),l(de,{class:"mt-4 d-flex justify-center"},{default:c(()=>[(S(!0),A(T,null,F(e.steps,(r,i)=>(S(),C(Y,{key:r.name,value:i+1,class:"flex-grow-1 ma-10"},{default:c(()=>[l(Ne,{fluid:""},{default:c(()=>[l(ie,{align:"center",justify:"center"},{default:c(()=>[l(j,{cols:"8",align:"start"},{default:c(()=>[v("div",lt,[v("span",st,f(e.title),1),x(" / "+f(r.title),1)]),U(V.$slots,`form.${r.name}`,{step:r,currentStep:i+1})]),_:2},1024)]),_:2},1024)]),_:2},1024),v("div",nt,[i+1>1?(S(),C(W,{key:0,class:"mr-10",variant:"text",onClick:h=>o.value=i},{default:c(()=>[x(f(_(m)("Back")),1)]),_:2},1032,["onClick"])):re("",!0),l(W,{color:"primary",size:"large",onClick:h=>I(i+1,i+2)},{default:c(()=>[x(f(_(m)("Next")),1)]),_:2},1032,["onClick"])])]),_:2},1032,["value"]))),128)),l(Y,{value:e.steps.length+1,class:"flex-grow-0"},{default:c(()=>[v("div",rt,f(_(m)("Summary")),1),l(Ye,{sections:e.summarySections,onModifyStep:k[0]||(k[0]=r=>o.value=r)},xe({_:2},[F(V.$slots,(r,i)=>({name:i,fn:c(h=>[U(V.$slots,i,we(Ie(h)))])}))]),1032,["sections"]),v("div",ot,[l(W,{color:"primary",size:"large",loading:d.value,onClick:L},{default:c(()=>[x(f(_(m)("Confirm and create")),1)]),_:1},8,["loading"])])]),_:3},8,["value"])]),_:3})]),_:3},8,["modelValue","mobile"])]))}};export{St as _};
@@ -0,0 +1 @@
1
+ import{g as _,j as h,c as p,o as c,w as o,a as l,e as t,t as a,_ as b,k as V,b as k,u as x,d as y,l as A,m as N,f as d,i as C}from"./index-BImkz5Jx.js";import{a as w}from"./admin-DewTk2H8.js";import{V as v,a as $,b as D}from"./VCard-CxH9DWoK.js";import{V as S}from"./VTable-DaLxa4FO.js";import{V as T}from"./VDataTable-Bh8NbVSx.js";import{p as B}from"./parameters-aSQiR7kN.js";import{V as M,a as W}from"./VToolbar-CFZfqeOr.js";import{V as F,a as g}from"./VRow-ozg66L7j.js";import"./tag-B_yWNNJD.js";import"./VAvatar-Cmga0vj6.js";import"./VProgressCircular-BtOPiGCg.js";import"./VSelect-C3RjAa45.js";import"./VTextField-XoGTj1KG.js";import"./VInput-CoDJzvaW.js";import"./forwardRefs-cvcnlhoK.js";import"./ssrBoot-CKUX4kcb.js";import"./VMenu-gUG70-zD.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";import"./VChip-D_styETR.js";import"./filter-C82FUCw_.js";/* empty css */const G={__name:"GlobalStatisticsWidget",async setup(f){let s,i;const e=_({}),n=([s,i]=h(()=>w.getStatistics()),s=await s,i(),s);return e.value=n.data,(r,u)=>(c(),p($,{title:r.$gettext("Statistics")},{default:o(()=>[l(v,null,{default:o(()=>[l(S,null,{default:o(()=>[t("tbody",null,[t("tr",null,[t("td",null,a(r.$gettext("Domain count")),1),t("td",null,a(e.value.domain_count),1)]),t("tr",null,[t("td",null,a(r.$gettext("Domain alias count")),1),t("td",null,a(e.value.domain_alias_count),1)]),t("tr",null,[t("td",null,a(r.$gettext("Account count")),1),t("td",null,a(e.value.account_count),1)]),t("tr",null,[t("td",null,a(r.$gettext("Alias count")),1),t("td",null,a(e.value.alias_count),1)])])]),_:1})]),_:1})]),_:1},8,["title"]))}},I=["href"],j={href:"https://modoboa.org/weblog/",target:"_blank"},E={__name:"NewsFeedWidget",async setup(f){let s,i;const e=_([]),n=[{title:"",key:"title"},{title:"",key:"published",align:"end"}],r=([s,i]=h(()=>w.getNewsFeed()),s=await s,i(),s);return e.value=r.data,(u,L)=>(c(),p($,{title:u.$gettext("Latest news")},{default:o(()=>[l(v,null,{default:o(()=>[l(T,{headers:n,items:e.value,"hide-default-header":"","hide-default-footer":""},{"item.title":o(({item:m})=>[t("a",{href:m.link,target:"_blank"},a(m.title),9,I)]),"item.published":o(({item:m})=>[V(a(u.$date(m.published)),1)]),_:2},1032,["items"])]),_:1}),l(D,{class:"justify-center"},{default:o(()=>[t("div",null,[t("a",j,a(u.$gettext("Visit the official weblog for more information")),1)])]),_:1})]),_:1},8,["title"]))}},R=b(E,[["__scopeId","data-v-e0975b37"]]),U={__name:"DashboardView",setup(f){const{$gettext:s}=k(),i=x(),e=_("");return y(async()=>{const n=await B.getGlobalApplication("core");n.data.params.custom_welcome_message?e.value=n.data.params.custom_welcome_message:e.value=s("Welcome to Modoboa")}),(n,r)=>(c(),A("div",null,[l(M,{flat:""},{default:o(()=>[l(W,null,{default:o(()=>[V(a(e.value),1)]),_:1})]),_:1}),l(F,null,{default:o(()=>[l(g,{sm:"12",md:"6"},{default:o(()=>[l(d(R)),d(i).authUser.role===d(C).SUPER_ADMIN?(c(),p(d(G),{key:0,class:"mt-4"})):N("",!0)]),_:1}),l(g,{sm:"12",md:"6"})]),_:1})]))}},dt=b(U,[["__scopeId","data-v-24210b96"]]);export{dt as default};
@@ -1 +1 @@
1
- a[data-v-e0975b37]{text-decoration:none;color:rgb(var(--v-theme-primary))}a[data-v-e0975b37]:visited{color:rgb(var(--v-theme-primary))}.v-toolbar[data-v-cbf2b4b5],.v-tabs-items[data-v-cbf2b4b5]{background-color:#f7f8fa!important}
1
+ a[data-v-e0975b37]{text-decoration:none;color:rgb(var(--v-theme-primary))}a[data-v-e0975b37]:visited{color:rgb(var(--v-theme-primary))}.v-toolbar[data-v-24210b96],.v-tabs-items[data-v-24210b96]{background-color:#f7f8fa!important}
@@ -0,0 +1 @@
1
+ import{c as x,V as y}from"./VAvatar-Cmga0vj6.js";import{h as R,c as d,o as l,n as U,b as $,g as f,d as j,w as e,a as n,e as O,l as b,t as i,f as v,m as C,k as p,i as S}from"./index-BImkz5Jx.js";import{a as G}from"./accounts-DUzbx6k8.js";import{d as D}from"./domains-BSawReeu.js";import{c as H,V as q,b as F,a as J}from"./VCard-CxH9DWoK.js";import{V as K}from"./VDataTableVirtual-BOQlNtIG.js";import{V as P}from"./VAutocomplete-Dwv6_Rzq.js";import{V as Q,a as w}from"./VRow-ozg66L7j.js";const re={__name:"BooleanIcon",props:{value:{type:Boolean}},setup(r){const _=r,k=R(()=>_.value?"mdi-check-circle":"mdi-close-circle"),t=R(()=>_.value?"success":"error");return(u,M)=>(l(),d(x,{icon:k.value,color:t.value},null,8,["icon","color"]))}},W={class:"headline"},X={key:0,class:"headline"},Y={key:1,class:"headline"},Z={key:0},de={__name:"DomainAdminList",props:{domain:{type:Object,default:()=>{}},dialogMode:{type:Boolean,default:!1}},emits:["close"],setup(r,{emit:_}){const k=U(),{$gettext:t}=$(),u=r,M=_,V=f([]),A=f([]),g=f(""),E=f([{title:t("Username"),value:"username"},{title:t("Name"),value:"name"},{title:"",value:"actions",align:"end",sortable:!1}]),h=f(!1),m=f(null);function I(){A.value.push({}),h.value=!0}function T(){h.value=!1,M("close")}function B(s){D.getDomainAdministrators(s.pk).then(a=>{A.value=a.data})}function N(){const s={role:[S.RESELLER,S.DOMAIN_ADMIN],page_size:50};g.value&&(s.search=g.value),G.getAll(s).then(a=>{V.value=a.data.results.filter(o=>A.value.find(c=>c.id===o.pk)===void 0)})}function z(){D.addDomainAdministrator(u.domain.pk,m.value.pk).then(()=>{B(u.domain),V.value=V.value.filter(s=>s.pk!==m.value.pk),m.value=null,h.value=!1,k.displayNotification({msg:t("Administrator added")})})}function L(s){D.removeDomainAdministrator(u.domain.pk,s.id).then(()=>{B(u.domain),N(),k.displayNotification({msg:t("Administrator removed")})})}return j(()=>{B(u.domain),N()}),(s,a)=>(l(),d(J,null,{default:e(()=>[n(H,null,{default:e(()=>[O("span",W,[r.dialogMode?(l(),b("div",X,i(v(t)("Administrators of"))+" "+i(r.domain.name),1)):(l(),b("div",Y,i(v(t)("Administrators")),1))])]),_:1}),n(q,null,{default:e(()=>[n(K,{headers:E.value,items:A.value},{"item.username":e(({item:o})=>[o.id?(l(),b("span",Z,i(o.username),1)):(l(),d(P,{key:1,modelValue:m.value,"onUpdate:modelValue":a[0]||(a[0]=c=>m.value=c),search:g.value,"onUpdate:search":[a[1]||(a[1]=c=>g.value=c),N],label:v(t)("Select an account"),items:V.value,variant:"outlined","item-title":"username",class:"mt-5","return-object":""},{append:e(()=>[m.value?(l(),d(y,{key:0,variant:"text",color:"primary",size:"x-large",onClick:z},{default:e(()=>[n(x,null,{default:e(()=>a[2]||(a[2]=[p("mdi-content-save")])),_:1,__:[2]})]),_:1})):C("",!0)]),_:1},8,["modelValue","search","label","items"]))]),"item.name":e(({item:o})=>[p(i(o.first_name)+" "+i(o.last_name),1)]),"item.actions":e(({item:o})=>[o.id?(l(),d(y,{key:0,variant:"text",color:"red",title:v(t)("Remove this administrator"),size:"x-large",onClick:c=>L(o)},{default:e(()=>[n(x,null,{default:e(()=>a[3]||(a[3]=[p("mdi-delete-outline")])),_:1,__:[3]})]),_:2},1032,["title","onClick"])):C("",!0)]),_:2},1032,["headers","items"])]),_:1}),n(F,null,{default:e(()=>[n(Q,null,{default:e(()=>[n(w,{align:r.dialogMode?"left":"right"},{default:e(()=>[h.value?C("",!0):(l(),d(y,{key:0,color:"primary",variant:"outlined",onClick:I},{default:e(()=>[n(x,{small:""},{default:e(()=>a[4]||(a[4]=[p("mdi-plus")])),_:1,__:[4]}),p(" "+i(v(t)("Add administrator")),1)]),_:1}))]),_:1},8,["align"]),r.dialogMode?(l(),d(w,{key:0,align:"right"},{default:e(()=>[n(y,{color:"grey darken-1",variant:"text",onClick:T},{default:e(()=>[p(i(v(t)("Close")),1)]),_:1})]),_:1})):C("",!0)]),_:1})]),_:1})]),_:1}))}};export{re as _,de as a};
@@ -0,0 +1 @@
1
+ import{b as M,u as q,h as U,g as f,i as b,d as J,c as d,l as g,a,e as k,w as e,m as P,k as c,t as o,f as s,q as K,o as r,_ as Q,B as z,F as H}from"./index-BImkz5Jx.js";import{c as W,b as X,a as Y,_ as Z}from"./DomainTransportForm-CA-DNUxX.js";import{L as ee}from"./LoadingData-CdVvm4FI.js";import{p as ae}from"./parameters-aSQiR7kN.js";import{_ as te}from"./ResourcesForm-OaqdRYVs.js";import{d as O}from"./domains-BSawReeu.js";import{d as N,c as w,V as I}from"./VAvatar-Cmga0vj6.js";import{V,c as F,a as h,b as le}from"./VExpansionPanels-BmH5Jl2Z.js";import{V as p,a as m}from"./VRow-ozg66L7j.js";import{u as oe}from"./domains.store-D-vWCEIK.js";import{V as se,a as re}from"./VToolbar-CFZfqeOr.js";import"./ChoiceField-B3ReQHVe.js";import"./VForm-D5iPGkde.js";import"./tag-B_yWNNJD.js";import"./VInput-CoDJzvaW.js";import"./VProgressCircular-BtOPiGCg.js";import"./forwardRefs-cvcnlhoK.js";import"./ssrBoot-CKUX4kcb.js";import"./VTextField-XoGTj1KG.js";import"./VSwitch-DwxdeAEq.js";import"./VSelectionControl-zyz-fJvC.js";import"./transports-BDNB9wR5.js";import"./VAutocomplete-Dwv6_Rzq.js";import"./VSelect-C3RjAa45.js";import"./VMenu-gUG70-zD.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VChip-D_styETR.js";import"./filter-C82FUCw_.js";import"./VCheckbox-62GOpvvP.js";import"./VContainer-B46caNs1.js";/* empty css */const ue={key:1},ne={key:0},ie={key:0},me={key:0},de={class:"mr-2"},ce={class:"mr-2"},fe={class:"mr-2"},pe={key:0},_e={class:"mr-2"},ve={class:"mt-4 d-flex justify-end"},ge={__name:"DomainEditForm",props:{domain:{type:Object,default:null}},setup($){const x=K(),{$gettext:n}=M(),R=q(),E=$,_=U(()=>R.authUser),v=f({}),D=f(0),y=f(!1),t=U(()=>E.domain),C=f(),L=f(),T=f(),A=f(),B=f(),j=U(()=>{const u={generalForm:C,limitationForm:A,dnsForm:B};return t.value.type==="relaydomain"&&(u.transportForm=T),v.value.params&&v.value.params.enable_domain_limits&&(_.value.role===b.SUPER_ADMIN||_.value.role===b.RESELLER)&&(u.resourcesForm=L),u}),S=f(!1);async function G(){S.value=!1,D.value=[];for(const[u,i]of Object.entries(j.value))if(i.value!=null){const{valid:l}=await i.value.vFormRef.validate();l||(S.value=!0,D.value.push(u))}if(!S.value){y.value=!0;try{const u=JSON.parse(JSON.stringify(t.value));u.transport===null&&delete u.transport,u.type==="relaydomain"?T.value.checkSettingTypes(u):u.transport&&delete u.transport,u.message_limit===""&&(u.message_limit=null),await O.updateDomain(t.value.pk,u),x.push({name:"DomainDetail",params:{id:t.value.pk}})}finally{y.value=!1}}}return J(()=>{ae.getGlobalApplication("limits").then(u=>{v.value.data=u.data})}),(u,i)=>y.value?(r(),d(ee,{key:0})):(r(),g("div",ue,[a(le,{modelValue:D.value,"onUpdate:modelValue":i[5]||(i[5]=l=>D.value=l),multiple:S.value},{default:e(()=>[a(V,{eager:"",value:"generalForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("General")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(r(),g("span",ne)):(r(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("Name: "))+" "+o(t.value.name),1)]),_:1}),a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("Type: "))+" "+o(t.value.type),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(W,{ref_key:"generalForm",ref:C,modelValue:t.value,"onUpdate:modelValue":i[0]||(i[0]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(V,{eager:"",value:"dnsForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("DNS")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(r(),g("span",ie)):(r(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("DNS checks"))+" ",1),t.value.enable_dns_checks?(r(),d(w,{key:0,color:"success",icon:"mdi-check-circle-outline"})):(r(),d(w,{key:1,icon:"mdi-check-circle-outline"}))]),_:1}),a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("DKIM signing"))+" ",1),t.value.enable_dkim?(r(),d(w,{key:0,color:"success",icon:"mdi-check-circle-outline"})):(r(),d(w,{key:1,icon:"mdi-close-circle-outline"}))]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(X,{ref_key:"dnsForm",ref:B,modelValue:t.value,"onUpdate:modelValue":i[1]||(i[1]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(V,{eager:"",value:"limitationForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("Limitations")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(r(),g("span",me)):(r(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[k("div",de,o(s(n)("Quota: "))+" "+o(t.value.quota),1)]),_:1}),t.value.message_limit?(r(),d(m,{key:0,cols:"6"},{default:e(()=>[k("div",ce,o(s(n)("Sending limit: "))+" "+o(t.value.message_limit),1)]),_:1})):(r(),d(m,{key:1,cols:"6"},{default:e(()=>[k("div",fe,o(s(n)("No sending limit")),1)]),_:1}))]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(Y,{ref_key:"limitationForm",ref:A,modelValue:t.value,"onUpdate:modelValue":i[2]||(i[2]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),t.value.type==="relaydomain"?(r(),d(V,{key:0,value:"transportForm",eager:""},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("Transport")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(r(),g("span",pe)):(r(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[k("div",_e,o(s(n)("Service: "))+" "+o(t.value.transport.service),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(Z,{ref_key:"transportForm",ref:T,modelValue:t.value.transport,"onUpdate:modelValue":i[3]||(i[3]=l=>t.value.transport=l)},null,8,["modelValue"])]),_:1})]),_:1})):P("",!0),v.value.params&&v.value.params.enable_domain_limits&&(_.value.role===s(b).SUPER_ADMIN||_.value.role===s(b).RESELLER)?(r(),d(V,{key:1,value:"resourcesForm",eager:""},{default:e(()=>[a(F,null,{default:e(()=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("Resources")),1)]),_:1})]),_:1})]),_:1}),a(h,null,{default:e(()=>[a(te,{ref_key:"resourcesForm",ref:L,modelValue:t.value.resources,"onUpdate:modelValue":i[4]||(i[4]=l=>t.value.resources=l)},null,8,["modelValue"])]),_:1})]),_:1})):P("",!0)]),_:1},8,["modelValue","multiple"]),k("div",ve,[a(I,{loading:y.value,onClick:i[6]||(i[6]=l=>s(x).go(-1))},{default:e(()=>[c(o(s(n)("Cancel")),1)]),_:1},8,["loading"]),a(I,{class:"ml-4",color:"primary darken-1",loading:y.value,onClick:G},{default:e(()=>[c(o(s(n)("Save")),1)]),_:1},8,["loading"])])]))}},ye={__name:"DomainEditView",setup($){const{$gettext:x}=M(),n=z(),R=oe(),E=f({});return R.getDomains(),O.getDomain(n.params.id).then(_=>{E.value=_.data}),(_,v)=>(r(),g(H,null,[a(se,{flat:""},{default:e(()=>[a(re,null,{default:e(()=>[c(o(s(x)("Edit domain")),1)]),_:1})]),_:1}),a(s(ge),{domain:E.value},null,8,["domain"])],64))}},We=Q(ye,[["__scopeId","data-v-2221e277"]]);export{We as default};
@@ -1 +1 @@
1
- import{C as M}from"./ChoiceField-7eU7c_rI.js";import{b as g,h as R,g as b,c as x,o as v,w as h,a as r,f as a,e as D,d as K,m as q,q as C,t as N,F as U,G as S}from"./index-DV9Li2cg.js";import{r as y,V as F}from"./VForm-CpoZf60D.js";import{V as k}from"./VTextField-CLwRV0Cb.js";import{V as B}from"./VSwitch-Chg5o-Cp.js";import{t as T}from"./transports-TO08iTXJ.js";import{V as j}from"./VAutocomplete-Cc4_tcl1.js";import{V as A}from"./VCheckbox-CKsH_vq3.js";const W={__name:"DomainGeneralForm",props:{modelValue:{type:Object,default:null}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,t=o,u=R({get(){return i.modelValue},set(_){t("update:modelValue",_)}}),l=b();function e(_){_==="relaydomain"&&u.value.transport==null&&(u.value.transport={})}const s=[{label:m("Domain"),icon:"mdi-earth",value:"domain"},{label:m("Relay domain"),icon:"mdi-earth",value:"relaydomain"}];return c({vFormRef:l}),(_,p)=>(v(),x(F,{ref_key:"vFormRef",ref:l},{default:h(()=>[r(k,{modelValue:u.value.name,"onUpdate:modelValue":p[0]||(p[0]=d=>u.value.name=d),label:a(m)("Domain name (ex: domain.tld)"),rules:[a(y).required],variant:"outlined",class:"mb-5"},null,8,["modelValue","label","rules"]),r(a(M),{modelValue:u.value.type,"onUpdate:modelValue":[p[1]||(p[1]=d=>u.value.type=d),e],label:a(m)("Type"),choices:s},null,8,["modelValue","label"]),r(B,{modelValue:u.value.enabled,"onUpdate:modelValue":p[2]||(p[2]=d=>u.value.enabled=d),label:a(m)("Enabled"),hint:a(m)("Control if this domain will be allowed to send and receive messages"),color:"primary","persistent-hint":""},null,8,["modelValue","label","hint"])]),_:1},512))}},X={__name:"DomainDNSForm",props:{modelValue:{type:Object,default:()=>{}}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),t=R(()=>m.modelValue),u=b([{label:"1024",value:1024},{label:"2048",value:2048},{label:"4096",value:4096}]);return c({vFormRef:i}),(l,e)=>(v(),x(F,{ref_key:"vFormRef",ref:i},{default:h(()=>[D("div",null,[r(B,{modelValue:t.value.enable_dns_checks,"onUpdate:modelValue":e[0]||(e[0]=s=>t.value.enable_dns_checks=s),label:a(o)("Enable DNS checks"),color:"primary"},null,8,["modelValue","label"]),r(B,{modelValue:t.value.enable_dkim,"onUpdate:modelValue":e[1]||(e[1]=s=>t.value.enable_dkim=s),label:a(o)("Enable DKIM signing"),color:"primary"},null,8,["modelValue","label"]),r(k,{modelValue:t.value.dkim_key_selector,"onUpdate:modelValue":e[2]||(e[2]=s=>t.value.dkim_key_selector=s),label:a(o)("DKIM key selector"),disabled:!t.value.enable_dkim,variant:"outlined"},null,8,["modelValue","label","disabled"]),r(a(M),{modelValue:t.value.dkim_key_length,"onUpdate:modelValue":e[3]||(e[3]=s=>t.value.dkim_key_length=s),label:a(o)("DKIM key length"),choices:u.value,disabled:!t.value.enable_dkim},null,8,["modelValue","label","choices","disabled"])])]),_:1},512))}},Y={__name:"DomainLimitationsForm",props:{modelValue:{type:Object,default:null}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),t=R(()=>m.modelValue);return c({vFormRef:i}),(u,l)=>(v(),x(F,{ref_key:"vFormRef",ref:i},{default:h(()=>[r(k,{modelValue:t.value.quota,"onUpdate:modelValue":l[0]||(l[0]=e=>t.value.quota=e),label:a(o)("Quota"),hint:a(o)("Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota."),"persistent-hint":"",class:"mb-4",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:t.value.default_mailbox_quota,"onUpdate:modelValue":l[1]||(l[1]=e=>t.value.default_mailbox_quota=e),label:a(o)("Default mailbox quota"),hint:a(o)("Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota."),"persistent-hint":"",class:"mb-4",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:t.value.message_limit,"onUpdate:modelValue":l[2]||(l[2]=e=>t.value.message_limit=e),label:a(o)("Message sending limit"),hint:a(o)("Number of messages this domain can send per day. Leave empty for no limit."),type:"number","persistent-hint":"",variant:"outlined",rules:[a(y).numericOrNull]},null,8,["modelValue","label","hint","rules"])]),_:1},512))}},G={class:"m-label"},O={class:"m-label"},Z={__name:"DomainTransportForm",props:{modelValue:{type:Object,default:()=>{}}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,t=o,u=b(),l=b({}),e=b(),s=b([]);function _(d){for(const f of e.value.settings)if(f.type==="int"){const n=`${e.value.name}_${f.name}`;d.transport.settings[n]=parseInt(d.transport.settings[n])}}function p(){l.value.service=e.value.name,t("update:modelValue",l.value)}return K(()=>{l.value={...i.modelValue},l.value.settings||(l.value.settings={}),T.getAll().then(d=>{s.value=d.data,l.value.service&&(e.value=s.value.find(f=>f.name===l.value.service))})}),c({checkSettingTypes:_,service:e,vFormRef:u}),(d,f)=>(v(),x(F,{ref_key:"vFormRef",ref:u},{default:h(()=>[D("label",G,N(a(m)("Service")),1),r(j,{modelValue:e.value,"onUpdate:modelValue":f[0]||(f[0]=n=>e.value=n),items:s.value,"item-title":"name","return-object":"",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","items","rules"]),e.value?(v(!0),q(U,{key:0},S(e.value.settings,(n,w)=>(v(),q(U,{key:w},[n.type==="str"||n.type==="int"?(v(),q(U,{key:0},[D("label",O,N(n.label),1),r(k,{modelValue:l.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[$=>l.value.settings[`${e.value.name}_${n.name}`]=$,p],variant:"outlined",type:l.value.type==="int"?"number":"text",rules:[!!n.required||a(y).required]},null,8,["modelValue","onUpdate:modelValue","type","rules"])],64)):n.type==="boolean"?(v(),x(A,{key:1,modelValue:l.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[$=>l.value.settings[`${e.value.name}_${n.name}`]=$,p],label:n.label},null,8,["modelValue","onUpdate:modelValue","label"])):C("",!0)],64))),128)):C("",!0)]),_:1},512))}};export{Z as _,Y as a,X as b,W as c};
1
+ import{C as M}from"./ChoiceField-B3ReQHVe.js";import{b as g,h as R,g as b,c as x,o as v,w as h,a as r,f as a,e as D,d as K,l as U,m as C,t as N,F as q,s as S}from"./index-BImkz5Jx.js";import{r as y,V as F}from"./VForm-D5iPGkde.js";import{V as k}from"./VTextField-XoGTj1KG.js";import{V as B}from"./VSwitch-DwxdeAEq.js";import{t as T}from"./transports-BDNB9wR5.js";import{V as j}from"./VAutocomplete-Dwv6_Rzq.js";import{V as A}from"./VCheckbox-62GOpvvP.js";const W={__name:"DomainGeneralForm",props:{modelValue:{type:Object,default:null}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,t=o,u=R({get(){return i.modelValue},set(_){t("update:modelValue",_)}}),l=b();function e(_){_==="relaydomain"&&u.value.transport==null&&(u.value.transport={})}const s=[{label:m("Domain"),icon:"mdi-earth",value:"domain"},{label:m("Relay domain"),icon:"mdi-earth",value:"relaydomain"}];return c({vFormRef:l}),(_,p)=>(v(),x(F,{ref_key:"vFormRef",ref:l},{default:h(()=>[r(k,{modelValue:u.value.name,"onUpdate:modelValue":p[0]||(p[0]=d=>u.value.name=d),label:a(m)("Domain name (ex: domain.tld)"),rules:[a(y).required],variant:"outlined",class:"mb-5"},null,8,["modelValue","label","rules"]),r(a(M),{modelValue:u.value.type,"onUpdate:modelValue":[p[1]||(p[1]=d=>u.value.type=d),e],label:a(m)("Type"),choices:s},null,8,["modelValue","label"]),r(B,{modelValue:u.value.enabled,"onUpdate:modelValue":p[2]||(p[2]=d=>u.value.enabled=d),label:a(m)("Enabled"),hint:a(m)("Control if this domain will be allowed to send and receive messages"),color:"primary","persistent-hint":""},null,8,["modelValue","label","hint"])]),_:1},512))}},X={__name:"DomainDNSForm",props:{modelValue:{type:Object,default:()=>{}}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),t=R(()=>m.modelValue),u=b([{label:"1024",value:1024},{label:"2048",value:2048},{label:"4096",value:4096}]);return c({vFormRef:i}),(l,e)=>(v(),x(F,{ref_key:"vFormRef",ref:i},{default:h(()=>[D("div",null,[r(B,{modelValue:t.value.enable_dns_checks,"onUpdate:modelValue":e[0]||(e[0]=s=>t.value.enable_dns_checks=s),label:a(o)("Enable DNS checks"),color:"primary"},null,8,["modelValue","label"]),r(B,{modelValue:t.value.enable_dkim,"onUpdate:modelValue":e[1]||(e[1]=s=>t.value.enable_dkim=s),label:a(o)("Enable DKIM signing"),color:"primary"},null,8,["modelValue","label"]),r(k,{modelValue:t.value.dkim_key_selector,"onUpdate:modelValue":e[2]||(e[2]=s=>t.value.dkim_key_selector=s),label:a(o)("DKIM key selector"),disabled:!t.value.enable_dkim,variant:"outlined"},null,8,["modelValue","label","disabled"]),r(a(M),{modelValue:t.value.dkim_key_length,"onUpdate:modelValue":e[3]||(e[3]=s=>t.value.dkim_key_length=s),label:a(o)("DKIM key length"),choices:u.value,disabled:!t.value.enable_dkim},null,8,["modelValue","label","choices","disabled"])])]),_:1},512))}},Y={__name:"DomainLimitationsForm",props:{modelValue:{type:Object,default:null}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),t=R(()=>m.modelValue);return c({vFormRef:i}),(u,l)=>(v(),x(F,{ref_key:"vFormRef",ref:i},{default:h(()=>[r(k,{modelValue:t.value.quota,"onUpdate:modelValue":l[0]||(l[0]=e=>t.value.quota=e),label:a(o)("Quota"),hint:a(o)("Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota."),"persistent-hint":"",class:"mb-4",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:t.value.default_mailbox_quota,"onUpdate:modelValue":l[1]||(l[1]=e=>t.value.default_mailbox_quota=e),label:a(o)("Default mailbox quota"),hint:a(o)("Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota."),"persistent-hint":"",class:"mb-4",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:t.value.message_limit,"onUpdate:modelValue":l[2]||(l[2]=e=>t.value.message_limit=e),label:a(o)("Message sending limit"),hint:a(o)("Number of messages this domain can send per day. Leave empty for no limit."),type:"number","persistent-hint":"",variant:"outlined",rules:[a(y).numericOrNull]},null,8,["modelValue","label","hint","rules"])]),_:1},512))}},O={class:"m-label"},E={class:"m-label"},Z={__name:"DomainTransportForm",props:{modelValue:{type:Object,default:()=>{}}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,t=o,u=b(),l=b({}),e=b(),s=b([]);function _(d){for(const f of e.value.settings)if(f.type==="int"){const n=`${e.value.name}_${f.name}`;d.transport.settings[n]=parseInt(d.transport.settings[n])}}function p(){l.value.service=e.value.name,t("update:modelValue",l.value)}return K(()=>{l.value={...i.modelValue},l.value.settings||(l.value.settings={}),T.getAll().then(d=>{s.value=d.data,l.value.service&&(e.value=s.value.find(f=>f.name===l.value.service))})}),c({checkSettingTypes:_,service:e,vFormRef:u}),(d,f)=>(v(),x(F,{ref_key:"vFormRef",ref:u},{default:h(()=>[D("label",O,N(a(m)("Service")),1),r(j,{modelValue:e.value,"onUpdate:modelValue":f[0]||(f[0]=n=>e.value=n),items:s.value,"item-title":"name","return-object":"",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","items","rules"]),e.value?(v(!0),U(q,{key:0},S(e.value.settings,(n,w)=>(v(),U(q,{key:w},[n.type==="str"||n.type==="int"?(v(),U(q,{key:0},[D("label",E,N(n.label),1),r(k,{modelValue:l.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[$=>l.value.settings[`${e.value.name}_${n.name}`]=$,p],variant:"outlined",type:l.value.type==="int"?"number":"text",rules:[!!n.required||a(y).required]},null,8,["modelValue","onUpdate:modelValue","type","rules"])],64)):n.type==="boolean"?(v(),x(A,{key:1,modelValue:l.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[$=>l.value.settings[`${e.value.name}_${n.name}`]=$,p],label:n.label},null,8,["modelValue","onUpdate:modelValue","label"])):C("",!0)],64))),128)):C("",!0)]),_:1},512))}};export{Z as _,Y as a,X as b,W as c};
@@ -1 +1 @@
1
- .dkimbutton{border-radius:10px}.dkimbutton:hover{background-color:#8383fa48;transition:all .8s}.dkimbutton:active{background-color:#3cff3c23;transition:all .2s}.dkim{white-space:normal;word-break:break-all}pre[data-v-506783e1]{overflow-x:scroll}.v-toolbar[data-v-628417a7],.v-tabs-items[data-v-628417a7]{background-color:#f7f8fa!important}.v-window__container{width:100%!important}
1
+ .dkimbutton{border-radius:10px}.dkimbutton:hover{background-color:#8383fa48;transition:all .8s}.dkimbutton:active{background-color:#3cff3c23;transition:all .2s}.dkim{white-space:normal;word-break:break-all}pre[data-v-506783e1]{overflow-x:scroll}.v-toolbar[data-v-11fbb076],.v-tabs-items[data-v-11fbb076]{background-color:#f7f8fa!important}.v-window__container{width:100%!important}
@@ -0,0 +1,5 @@
1
+ import{_ as O,a as ke}from"./DomainAdminList-DVn9x0rB.js";import{c as q}from"./colors-DoZdCu1D.js";import{b as z,l as h,o as n,e as i,a as e,k as s,t,y as me,w as l,F as T,s as Y,f as u,g as D,D as te,h as R,d as Ve,z as ie,r as ce,c,m as C,_ as fe,n as he,j as _e,A as $e,B as xe}from"./index-BImkz5Jx.js";import{b as X,V as w,a as De}from"./VAvatar-Cmga0vj6.js";import{V as we}from"./VTable-DaLxa4FO.js";import{d as E}from"./domains-BSawReeu.js";import{V as pe,a as ve}from"./VToolbar-CFZfqeOr.js";import{V as G}from"./VSpacer-DinPiXs9.js";import{V as A,a as j,c as B,b as Q}from"./VCard-CxH9DWoK.js";import{V as $,a as d}from"./VRow-ozg66L7j.js";import{V as Ce}from"./VSheet-BNx2X4Mk.js";import{V as Se,a as Me,b as Ne}from"./VExpansionPanels-BmH5Jl2Z.js";import{V as P}from"./VAlert-BuaaYN2h.js";import{V as Ie,a as Te}from"./forwardRefs-cvcnlhoK.js";import{_ as Ae}from"./ConfirmDialog-DY_kUHLG.js";import{V as N}from"./VChip-D_styETR.js";import{V as je}from"./VDataTableVirtual-BOQlNtIG.js";import{V as H}from"./VDialog-BcTg7w6P.js";import{t as Ke}from"./transports-BDNB9wR5.js";import{V as ae,a as Ue}from"./VRadioGroup-DIFZKSn-.js";import{a as ye}from"./amavis-CC0li7_T.js";import{V as oe}from"./VTextField-XoGTj1KG.js";import{V as Pe}from"./VCheckbox-62GOpvvP.js";import{L as Be}from"./LoadingData-CdVvm4FI.js";import{_ as Le}from"./ResourcesForm-OaqdRYVs.js";import{T as re}from"./TimeSerieChart--V83dcJ9.js";import{V as Fe,a as Re,b as ne,c as se}from"./VTabs-BP0Hgsgm.js";import{u as ze}from"./global.store-DbkcI5o2.js";import"./accounts-DUzbx6k8.js";import"./VAutocomplete-Dwv6_Rzq.js";import"./VSelect-C3RjAa45.js";import"./VInput-CoDJzvaW.js";import"./tag-B_yWNNJD.js";import"./VProgressCircular-BtOPiGCg.js";import"./VMenu-gUG70-zD.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";import"./filter-C82FUCw_.js";/* empty css */import"./ssrBoot-CKUX4kcb.js";import"./VDataTable-Bh8NbVSx.js";import"./VContainer-B46caNs1.js";import"./VForm-D5iPGkde.js";import"./VPicker-BXuKT3zB.js";import"./VWindowItem-BB7ETW3b.js";const Oe={class:"text-h6"},Ee={width:"40%"},Ye={class:"text-white"},Ge={class:"text-white"},qe={class:"text-white"},Xe={class:"text-white"},W={__name:"DmarcSourceTable",props:{title:{type:String,default:""},color:{type:String,default:""},total:{type:Number,default:null},sources:{type:Object,default:null}},setup(r){const{$gettext:o}=z();return(_,y)=>(n(),h("div",null,[i("div",Oe,[s(t(r.title)+" ",1),i("span",{class:me(`text-${r.color}-lighten-2`)},t(r.total),3)]),e(we,null,{default:l(()=>[i("tbody",null,[(n(!0),h(T,null,Y(r.sources,(a,v)=>(n(),h(T,{key:v},[i("tr",null,[i("th",Ee,t(v),1),i("th",null,t(u(o)("Total")),1),y[0]||(y[0]=i("th",null,"SPF",-1)),y[1]||(y[1]=i("th",null,"DKIM",-1))]),(n(!0),h(T,null,Y(a,(f,V)=>(n(),h("tr",{key:V},[i("td",null,t(V),1),i("td",null,t(f.total),1),i("td",null,[e(X,{color:"green lighten-2",size:"24"},{default:l(()=>[i("span",Ye,t(f.spf.success),1)]),_:2},1024),e(X,{color:"red lighten-2 ml-1",size:"24"},{default:l(()=>[i("span",Ge,t(f.spf.failure),1)]),_:2},1024)]),i("td",null,[e(X,{color:"green lighten-2",size:"24"},{default:l(()=>[i("span",qe,t(f.dkim.success),1)]),_:2},1024),e(X,{color:"red lighten-2 ml-1",size:"24"},{default:l(()=>[i("span",Xe,t(f.dkim.failure),1)]),_:2},1024)])]))),128))],64))),128))])]),_:1})]))}},We={key:0},He={class:"mx-2"},Qe={class:"text-subtitle-1"},Je={key:1},Ze={__name:"DmarcAligmentChart",props:{domain:{type:Object,default:()=>null}},setup(r){const{$gettext:o}=z(),_=["aligned","trusted","forwarded","failed"],y=r,a=D({colors:[q.green.lighten2,q.orange.lighten2,q.blue.lighten2,q.red.lighten2],labels:[o("Fully aligned"),o("Partially aligned"),o("Forwarded"),o("Failed")],legend:{position:"bottom"}}),v=D(null),f=D([{key:"total",label:o("Total"),color:"primary lighten-2"},{key:"aligned",label:o("Fully aligned"),color:"green lighten-2"},{key:"trusted",label:o("Partially aligned"),color:"orange lighten-2"},{key:"forwarded",label:o("Forwarded"),color:"blue lighten-2"},{key:"failed",label:o("Failed"),color:"red lighten-2"}]),V=te.now(),g=D(V.year),p=D(V.weekNumber),m=D(!1),b=D(!1),L=D(null),F=D([]),I=D({}),J=R(()=>te.fromObject({weekYear:g.value,weekNumber:p.value}).startOf("week")),Z=R(()=>te.fromObject({weekYear:g.value,weekNumber:p.value}).endOf("week"));function ee(U){let k="";for(const K of U.split(" "))k!==""&&(k+=" "),k+="text-"+K;return k}function le(){p.value===52?(g.value+=1,p.value=1):p.value+=1}function S(){p.value===1?(g.value-=1,p.value=52):p.value-=1}function x(){if(b.value)return;const U=`${g.value}-${p.value}`;b.value=!0,E.getDomainDmarcAlignment(y.domain.pk,U).then(k=>{if(b.value=!1,k.status===204){m.value=!0;return}I.value={total:0},v.value=k.data,F.value=[];for(const K of _){let M=0;for(const de in k.data[K])for(const be in k.data[K][de])M+=k.data[K][de][be].total;I.value.total+=M,I.value[K]=M,F.value.push(M)}})}return Ve(()=>x()),ie(p,()=>{x()}),ie(g,()=>{x()}),(U,k)=>{const K=ce("apexchart");return v.value?(n(),h("div",We,[e(j,null,{default:l(()=>[e(pe,{dense:"",elevation:"0",class:"mr-2"},{default:l(()=>[e(ve,null,{default:l(()=>[s(t(u(o)("Alignment")),1)]),_:1}),e(G),e(w,{icon:"mdi-arrow-left",size:"x-small",onClick:S}),i("span",He,t(J.value.toLocaleString())+" - "+t(Z.value.toLocaleString()),1),e(w,{icon:"mdi-arrow-right",size:"x-small",onClick:le})]),_:1}),e(A,null,{default:l(()=>[e($,null,{default:l(()=>[e(d,{cols:"5"},{default:l(()=>[F.value?(n(),c(K,{key:0,type:"pie",height:"350",options:a.value,series:F.value},null,8,["options","series"])):C("",!0)]),_:1}),e(d,{cols:"7"},{default:l(()=>[e($,null,{default:l(()=>[(n(!0),h(T,null,Y(f.value,M=>(n(),c(d,{key:M.key,cols:"6"},{default:l(()=>[e(Ce,{outlined:"",color:M.color,rounded:""},{default:l(()=>[e(j,{outlined:"",class:"pa-10 text-center"},{default:l(()=>[i("span",{class:me("text-h4 "+ee(M.color))},t(I.value[M.key]),3),k[1]||(k[1]=i("br",null,null,-1)),i("span",Qe,t(M.label),1)]),_:2,__:[1]},1024)]),_:2},1032,["color"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),e(Ne,{modelValue:L.value,"onUpdate:modelValue":k[0]||(k[0]=M=>L.value=M),class:"mt-2"},{default:l(()=>[e(Se,{title:u(o)("Detail")},{default:l(()=>[e(Me,null,{default:l(()=>[e(W,{title:u(o)("Trusted sources"),color:"green",total:I.value.aligned,sources:v.value.aligned},null,8,["title","total","sources"]),e(W,{title:u(o)("Partially trusted sources / Forwarders"),color:"orange",total:I.value.trusted,sources:v.value.trusted,class:"mt-4"},null,8,["title","total","sources"]),e(W,{title:u(o)("Forwarders with ARC"),color:"blue",total:I.value.forwarded,sources:v.value.forwarded,class:"mt-4"},null,8,["title","total","sources"]),e(W,{title:u(o)("Unknown sources / Threats"),color:"red",total:I.value.failed,sources:v.value.failed,class:"mt-4"},null,8,["title","total","sources"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])])):(n(),h("div",Je,[m.value?(n(),c(P,{key:0,type:"info",variant:"outlined",prominent:"",border:"start",class:"mt-6"},{default:l(()=>[i("div",null,t(u(o)("DMARC support does not seem to be enabled for this domain.")),1),i("div",null,t(u(o)("If you configured it recently, please wait for the first report to be received and processed.")),1)]),_:1})):C("",!0)]))}}},el={id:"dkimdns",class:"dkim"},ge={__name:"DKIMKeyViewer",props:{domain:{type:Object,default:null}},setup(r){const o=r,_=R(()=>{let a=`v=DKIM1;k=rsa;p=${o.domain.dkim_public_key}`;const v=[];for(;a.length>0;)if(a.length>74)v.push(` "${a.substring(0,74)}"`),a=a.substring(74);else{v.push(` "${a}"`);break}return v.join(`
2
+ `)});function y(){navigator.clipboard.writeText(document.getElementById("dkimdns").textContent)}return(a,v)=>(n(),h("button",{class:"dkimbutton",onClick:v[0]||(v[0]=f=>y())},[i("pre",el,t(r.domain.dkim_key_selector)+"._domainkey."+t(r.domain.name)+". IN TXT ("+t(_.value)+`)
3
+ }})`,1)]))}},ll={class:"headline"},tl={id:"dkimpub",class:"dkim"},al={__name:"DomainDKIMKey",props:{domain:{type:Object,default:null}},emits:["close"],setup(r,{emit:o}){const{$gettext:_}=z(),y=o;function a(){navigator.clipboard.writeText(document.getElementById("dkimpub").textContent)}return(v,f)=>(n(),c(j,null,{default:l(()=>[e(B,null,{default:l(()=>[i("span",ll,t(u(_)("DKIM public key for"))+" "+t(r.domain.name),1)]),_:1}),e(A,null,{default:l(()=>[i("p",null,t(u(_)("Raw format. Click to copy")),1),e(P,{border:"start","colored-border":"","border-color":"primary lighten-3",elevation:"2",dense:""},{default:l(()=>[i("button",{class:"dkimbutton",onClick:f[0]||(f[0]=V=>a())},[i("pre",tl,t(r.domain.dkim_public_key),1)])]),_:1})]),_:1}),e(A,null,{default:l(()=>[i("p",null,t(u(_)("Bind/named format. Click to copy")),1),e(P,{border:"start","colored-border":"","border-color":"primary lighten-3",elevation:"2",dense:""},{default:l(()=>[e(ge,{domain:r.domain},null,8,["domain"])]),_:1})]),_:1}),e(Q,null,{default:l(()=>[e(G),e(w,{onClick:f[1]||(f[1]=V=>y("close"))},{default:l(()=>[s(t(u(_)("Close")),1)]),_:1})]),_:1})]),_:1}))}},ol={class:"text-subtitle-1 text-grey-darken-2 mb-4"},nl={class:"text-h6"},sl={__name:"DomainDNSConfig",props:{domain:{type:Object,default:null}},emits:["close"],setup(r,{emit:o}){const _=o;return(y,a)=>(n(),c(j,null,{default:l(()=>[e(B,{class:"text-h5"},{default:l(()=>[i("span",null,t(y.$gettext("DNS configuration for "))+" "+t(r.domain.name),1)]),_:1}),e(A,null,{default:l(()=>[i("p",ol,t(y.$gettext("Here is an example of DNS configuration (bind format). Replace values between [ ] by the appropriate ones.")),1),e(P,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",color:"white"},{default:l(()=>[a[1]||(a[1]=i("div",{class:"text-h6"},"MX",-1)),i("pre",null,[s("mail."+t(r.domain.name)+". IN A ",1),i("strong",null,"["+t(y.$gettext("IP address of your Modoboa server"))+"]",1),s(`
4
+ @ IN MX 10 mail.`+t(r.domain.name)+".",1)])]),_:1,__:[1]}),e(P,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:l(()=>a[2]||(a[2]=[i("div",{class:"text-h6"},"SPF",-1),i("pre",null,'@ IN TXT "v=spf1 mx ~all"',-1)])),_:1,__:[2]}),r.domain.enable_dkim&&r.domain.dkim_public_key?(n(),c(P,{key:0,class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:l(()=>[a[3]||(a[3]=i("div",{class:"text-h6"},"DKIM",-1)),e(ge,{domain:r.domain},null,8,["domain"])]),_:1,__:[3]})):C("",!0),e(P,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:l(()=>[a[4]||(a[4]=i("div",{class:"text-h6"},"DMARC",-1)),i("pre",null,"_dmarc."+t(r.domain.name)+'. IN TXT "v=DMARC1; p=quarantine; pct=100;"',1)]),_:1,__:[4]}),e(P,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:l(()=>[i("div",nl,t(y.$gettext("Auto configuration")),1),i("pre",null,[s("autoconfig."+t(r.domain.name)+". IN CNAME ",1),i("strong",null,"["+t(y.$gettext("hostname of your automx server"))+"]",1),s(`
5
+ autodiscover.`+t(r.domain.name)+". IN CNAME ",1),i("strong",null,"["+t(y.$gettext("hostname of your automx server"))+"]",1)])]),_:1})]),_:1}),e(Q,null,{default:l(()=>[e(G),e(w,{onClick:a[0]||(a[0]=v=>_("close"))},{default:l(()=>[s(t(y.$gettext("Close")),1)]),_:1})]),_:1})]),_:1}))}},ul=fe(sl,[["__scopeId","data-v-506783e1"]]),il={__name:"DNSBLSummary",props:{mxrecord:{type:Object,default:null}},emits:["close"],setup(r,{emit:o}){const _=r,y=o;return(a,v)=>(n(),c(j,null,{default:l(()=>[e(B,{class:"text-h5"},{default:l(()=>[i("span",null,t(a.$gettext("DNSBL summary for "))+" "+t(_.mxrecord.name),1)]),_:1}),e(A,null,{default:l(()=>[s(t(a.$gettext("IP address %{ address } is currently listed by the following DNSBL providers:",{address:r.mxrecord.address}))+" ",1),e(Ie,null,{default:l(()=>[(n(!0),h(T,null,Y(_.mxrecord.dnsbl_results,f=>(n(),c(Te,{key:f.provider},{default:l(()=>[s(t(f.provider)+" ("+t(f.status)+") ",1)]),_:2},1024))),128))]),_:1})]),_:1}),e(Q,null,{default:l(()=>[e(G),e(w,{onClick:v[0]||(v[0]=f=>y("close"))},{default:l(()=>[s(t(a.$gettext("Close")),1)]),_:1})]),_:1})]),_:1}))}},dl={class:"mt-4 overline"},rl={class:"mt-4 overline"},ml={key:4,class:"d-flex align-center flex-nowrap mt-4"},cl={class:"text-subtitle-2"},fl={class:"ml-6"},_l={key:0},pl={key:1},vl={__name:"DNSDetail",props:{modelValue:{type:Object,default:null}},setup(r){const{$gettext:o}=z(),_=he(),y=r,a=R(()=>y.modelValue),v=D(),f=D({}),V=D([{title:o("Name"),value:"name"},{title:o("Address"),value:"address"},{title:o("Updated"),value:"updated"},{title:"",value:"issues"}]),g=D(!1),p=D(null),m=D(!1),b=D(!1),L=D(!1);function F(){navigator.clipboard.writeText(a.value.dkim_public_key),_.displayNotification({msg:o("DKIM key copied to clipboard"),type:"success"})}function I(){const S={dkim_private_key_path:""};E.patchDomain(a.value.pk,S).then(()=>{_.displayNotification({msg:o("A new key will be generated soon. Refresh the page in a moment to see it."),type:"success"}),a.value.dkim_private_key_path="",g.value=!1}).catch(()=>{g.value=!1})}function J(){g.value=!1}async function Z(){g.value=!0,E.getDomainDNSDetail(a.value.pk).then(async S=>{f.value=S.data,await v.value.open(o("warning"),o("DKIM key does not seem to be generated yet or has failed. Do you want to requeue the job?"),{color:"warning",cancelLabel:o("No"),agreeLabel:o("Yes")})?I():J()})}function ee(){v.value.open(o("Warning"),o("DKIM keys already exist for this domain. Do you want to overwrite them?"),{color:"error",cancelLabel:o("No"),agreeLabel:o("Yes")})}function le(S){p.value=S,L.value=!0}return ie(a,S=>{S&&E.getDomainDNSDetail(S.pk).then(x=>{f.value=x.data})},{immediate:!0}),(S,x)=>{const U=ce("translate");return a.value?(n(),c(j,{key:0},{default:l(()=>[e(B,null,{default:l(()=>[x[8]||(x[8]=i("span",null," DNS ",-1)),e(w,{class:"ml-2",icon:"mdi-information-outline",title:u(o)("DNS configuration help"),variant:"text",density:"compact",onClick:x[0]||(x[0]=k=>m.value=!0)},null,8,["title"])]),_:1,__:[8]}),e(A,null,{default:l(()=>[e(U,{class:"overline"},{default:l(()=>x[9]||(x[9]=[s("MX records")])),_:1,__:[9]}),a.value.dns_global_status=="pending"?(n(),c($,{key:0},{default:l(()=>[e(d,null,{default:l(()=>[e(N,{color:"info",size:"small"},{default:l(()=>[s(t(u(o)("Pending")),1)]),_:1})]),_:1})]),_:1})):(n(),c(je,{key:1,headers:V.value,items:f.value.mx_records},{"item.updated":l(({item:k})=>[s(t(S.$date(k.updated)),1)]),"item.issues":l(({item:k})=>[k.dnsbl_results.length?(n(),c(w,{key:0,icon:"mdi-bell",color:"error",variant:"flat",size:"x-small",onClick:K=>le(k)},null,8,["onClick"])):C("",!0)]),_:2},1032,["headers","items"])),i("div",dl,t(u(o)("Auto configuration")),1),a.value.dns_global_status=="pending"?(n(),c($,{key:2},{default:l(()=>[e(d,null,{default:l(()=>[e(N,{color:"info",size:"small"},{default:l(()=>[s(t(u(o)("Pending")),1)]),_:1})]),_:1})]),_:1})):(n(),h(T,{key:3},[e($,null,{default:l(()=>[e(d,null,{default:l(()=>[f.value.autoconfig_record?(n(),c(N,{key:0,color:"success"},{default:l(()=>[s(t(u(o)("autoconfig record (Mozilla): %{ value }",{value:f.value.autoconfig_record.value})),1)]),_:1})):(n(),c(N,{key:1,color:"warning"},{default:l(()=>[s(t(u(o)("autoconfig record (Mozilla) not found")),1)]),_:1}))]),_:1}),e(d,null,{default:l(()=>[f.value.autodiscover_record?(n(),c(N,{key:0,color:"success"},{default:l(()=>[s(t(u(o)("autodiscover record (Microsoft): %{ value }",{value:f.value.autodiscover_record.value})),1)]),_:1})):(n(),c(N,{key:1,color:"warning"},{default:l(()=>[s(t(u(o)("autodiscover record (Microsoft) not found")),1)]),_:1}))]),_:1})]),_:1}),i("div",rl,t(u(o)("Authentication")),1),e($,null,{default:l(()=>[e(d,null,{default:l(()=>[f.value.spf_record?(n(),c(N,{key:0,color:"success"},{default:l(()=>[s(t(u(o)("SPF record found")),1)]),_:1})):(n(),c(N,{key:1,color:"error"},{default:l(()=>[s(t(u(o)("SPF record not found")),1)]),_:1}))]),_:1}),e(d,null,{default:l(()=>[f.value.dkim_record?(n(),c(N,{key:0,color:"success"},{default:l(()=>[s(t(u(o)("DKIM record found")),1)]),_:1})):(n(),c(N,{key:1,color:"error"},{default:l(()=>[s(t(u(o)("DKIM record not found")),1)]),_:1}))]),_:1}),e(d,null,{default:l(()=>[f.value.dmarc_record?(n(),c(N,{key:0,color:"success"},{default:l(()=>[s(t(u(o)("DMARC record found")),1)]),_:1})):(n(),c(N,{key:1,color:"error"},{default:l(()=>[s(t(u(o)("DMARC record not found")),1)]),_:1}))]),_:1})]),_:1})],64)),a.value.enable_dkim?(n(),h("div",ml,[i("div",cl,t(u(o)("DKIM key")),1),i("div",fl,[a.value.dkim_private_key_path&&a.value.dkim_public_key?(n(),h("div",_l,[e(w,{color:"primary",size:"small",onClick:x[1]||(x[1]=k=>b.value=!0)},{default:l(()=>[s(t(u(o)("Show key")),1)]),_:1}),e(w,{icon:"mdi-content-copy",variant:"text",class:"ml-2",title:u(o)("Copy key to clipboard"),onClick:F},null,8,["title"]),e(w,{icon:"mdi-refresh",title:u(o)("Generate a new DKIM key"),variant:"text",loading:g.value,onClick:ee},null,8,["title","loading"])])):(n(),h("div",pl,[s(t(u(o)("Not generated"))+" ",1),e(w,{icon:"mdi-reload",color:"primary",variant:"text",loading:g.value,onClick:Z},null,8,["loading"])]))])])):C("",!0)]),_:1}),e(H,{modelValue:m.value,"onUpdate:modelValue":x[3]||(x[3]=k=>m.value=k),"max-width":"800px",persistent:""},{default:l(()=>[e(ul,{domain:a.value,onClose:x[2]||(x[2]=k=>m.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"]),e(H,{modelValue:b.value,"onUpdate:modelValue":x[5]||(x[5]=k=>b.value=k),"max-width":"800px",persistent:""},{default:l(()=>[e(al,{domain:a.value,onClose:x[4]||(x[4]=k=>b.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"]),e(H,{modelValue:L.value,"onUpdate:modelValue":x[7]||(x[7]=k=>L.value=k),"max-width":"800px",persistent:""},{default:l(()=>[e(il,{mxrecord:p.value,onClose:x[6]||(x[6]=k=>L.value=!1)},null,8,["mxrecord"])]),_:1},8,["modelValue"]),e(Ae,{ref_key:"dialog",ref:v},null,512)]),_:1})):C("",!0)}}},yl={class:"headline"},gl={__name:"DomainSummary",props:{domain:{type:Object,default:null}},setup(r){const{$gettext:o}=z();return(_,y)=>r.domain?(n(),c(j,{key:0},{default:l(()=>[e(B,null,{default:l(()=>[i("div",yl,t(u(o)("General information")),1)]),_:1}),e(A,null,{default:l(()=>[e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(u(o)("Creation date")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[s(t(_.$date(r.domain.creation)),1)]),_:1})]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(u(o)("Last modification date")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[s(t(_.$date(r.domain.last_modification)),1)]),_:1})]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(u(o)("Quota")),1)]),_:1}),r.domain.quota==="0"?(n(),c(d,{key:0,cols:"6"},{default:l(()=>[s(t(u(o)("Unlimited")),1)]),_:1})):(n(),c(d,{key:1,cols:"6"},{default:l(()=>[s(t(r.domain.quota)+" "+t(u(o)("MB")),1)]),_:1}))]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(u(o)("Default mailbox quota")),1)]),_:1}),r.domain.default_mailbox_quota==="0"?(n(),c(d,{key:0,cols:"6"},{default:l(()=>[s(t(u(o)("Unlimited")),1)]),_:1})):(n(),c(d,{key:1,cols:"6"},{default:l(()=>[s(t(r.domain.default_mailbox_quota)+" MB",1)]),_:1}))]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(u(o)("Daily sending limit")),1)]),_:1}),r.domain.message_limit!==void 0&&r.domain.message_limit!==null?(n(),c(d,{key:0,cols:"6"},{default:l(()=>[r.domain.message_limit===0?(n(),h(T,{key:0},[s(t(u(o)("Sending forbidden")),1)],64)):(n(),c(De,{key:1,color:r.domain.sent_messages_in_percent<80?"primary":"warning","model-value":r.domain.sent_messages_in_percent,height:"25",class:"white--text"},{default:l(({value:a})=>[s(t(Math.ceil(a))+"% ("+t(r.domain.message_limit)+" "+t(u(o)("messages"))+") ",1)]),_:1},8,["color","model-value"]))]),_:1})):(n(),c(d,{key:1,cols:"6"},{default:l(()=>[s(t(u(o)("Unlimited")),1)]),_:1}))]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(u(o)("Mailboxes")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[s(t(r.domain.mailbox_count),1)]),_:1})]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(u(o)("Aliases")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[s(t(r.domain.mbalias_count),1)]),_:1})]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(u(o)("Enabled")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[e(u(O),{value:r.domain.enabled,variant:"flat"},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1})):C("",!0)}},bl={class:"headline"},kl={__name:"RelayDomainSummary",props:{domain:{type:Object,default:null}},async setup(r){let o,_;const y=r,a=D([]),v=R(()=>a.value.find(g=>g.name===y.domain.transport.service)),f=g=>y.domain.transport.settings[`${v.value.name}_${g}`],V=([o,_]=_e(()=>Ke.getAll()),o=await o,_(),o);return a.value=V.data,(g,p)=>y.domain?(n(),c(j,{key:0},{default:l(()=>[e(B,null,{default:l(()=>[i("div",bl,t(g.$gettext("Transport")),1)]),_:1}),e(A,null,{default:l(()=>[e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(g.$gettext("Service")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[s(t(y.domain.transport.service),1)]),_:1})]),_:1}),v.value?(n(!0),h(T,{key:0},Y(v.value.settings,(m,b)=>(n(),c($,{key:b},{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(m.label),1)]),_:2},1024),e(d,{cols:"6"},{default:l(()=>[m.type!=="boolean"?(n(),h(T,{key:0},[s(t(f(m.name)),1)],64)):(n(),c(u(O),{key:1,value:f(m.name),variant:"flat"},null,8,["value"]))]),_:2},1024)]),_:2},1024))),128)):C("",!0)]),_:1})]),_:1})):C("",!0)}},ue={__name:"YesNoDefaultField",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(r){const o=$e(r,"modelValue");return(_,y)=>(n(),c(Ue,{modelValue:o.value,"onUpdate:modelValue":y[0]||(y[0]=a=>o.value=a),inline:""},{default:l(()=>[e(ae,{label:_.$gettext("yes"),value:"Y"},null,8,["label"]),e(ae,{label:_.$gettext("no"),value:"N"},null,8,["label"]),e(ae,{label:_.$gettext("default"),value:""},null,8,["label"])]),_:1},8,["modelValue"]))}},Vl={class:"v-label mb-4"},hl={class:"v-label mb-4"},$l={__name:"DomainPolicyForm",props:{domainId:{type:Number,default:null},modelValue:{type:Object,default:()=>{}}},emits:["close","update:modelValue"],setup(r,{emit:o}){const _=r,y=o,a=D({}),v=D(!1),f=D(!1);a.value={bypass_virus_checks:_.modelValue.bypass_virus_checks===null?"":_.modelValue.bypass_virus_checks,bypass_spam_checks:_.modelValue.bypass_spam_checks===null?"":_.modelValue.bypass_spam_checks,bypass_banned_checks:_.modelValue.bypass_banned_checks===null?"":_.modelValue.bypass_banned_checks,spam_tag2_level:_.modelValue.spam_tag2_level,spam_kill_level:_.modelValue.spam_kill_level,spam_subject_tag2:_.modelValue.spam_subject_tag2},a.value.spam_subject_tag2===null&&(f.value=!0);const V=p=>{p&&(a.value.spam_subject_tag2=null)},g=async()=>{v.value=!0;const p={...a.value};p.spam_tag2_level===""&&(p.spam_tag2_level=null),p.spam_kill_level===""&&(p.spam_kill_level=null);try{const m=await ye.updateDomainPolicy(_.domainId,p);y("update:modelValue",m.data),y("close")}finally{v.value=!1}};return(p,m)=>(n(),c(j,null,{default:l(()=>[e(B,{class:"text-h5"},{default:l(()=>[i("span",null,t(p.$gettext("Content filter settings")),1)]),_:1}),e(A,null,{default:l(()=>[e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[e(u(ue),{modelValue:a.value.bypass_virus_checks,"onUpdate:modelValue":m[0]||(m[0]=b=>a.value.bypass_virus_checks=b),label:p.$gettext("Disable virus checks"),color:"primary","hide-details":""},null,8,["modelValue","label"]),e(u(ue),{modelValue:a.value.bypass_spam_checks,"onUpdate:modelValue":m[1]||(m[1]=b=>a.value.bypass_spam_checks=b),label:p.$gettext("Disable spam checks"),color:"primary",class:"mt-6","hide-details":""},null,8,["modelValue","label"]),e(u(ue),{modelValue:a.value.bypass_banned_checks,"onUpdate:modelValue":m[2]||(m[2]=b=>a.value.bypass_banned_checks=b),label:p.$gettext("Disable banned checks"),color:"primary",class:"mt-6","hide-details":""},null,8,["modelValue","label"])]),_:1}),e(d,{cols:"6"},{default:l(()=>[i("div",null,[i("label",Vl,t(p.$gettext("Spam marker")),1),e($,null,{default:l(()=>[e(d,{cols:"9"},{default:l(()=>[e(oe,{modelValue:a.value.spam_subject_tag2,"onUpdate:modelValue":m[3]||(m[3]=b=>a.value.spam_subject_tag2=b),variant:"outlined",density:"compact",disabled:f.value},null,8,["modelValue","disabled"])]),_:1}),e(d,{cols:"3"},{default:l(()=>[e(Pe,{modelValue:f.value,"onUpdate:modelValue":[m[4]||(m[4]=b=>f.value=b),V],label:p.$gettext("default"),color:"primary",density:"compact","hide-details":""},null,8,["modelValue","label"])]),_:1})]),_:1})]),i("div",hl,t(p.$gettext("Thresholds")),1),e($,{class:"align-center"},{default:l(()=>[e(d,{cols:"4"},{default:l(()=>[e(oe,{modelValue:a.value.spam_tag2_level,"onUpdate:modelValue":m[5]||(m[5]=b=>a.value.spam_tag2_level=b),variant:"outlined",density:"compact",type:"number","hide-details":""},null,8,["modelValue"])]),_:1}),e(d,{cols:"8"},{default:l(()=>[s(t(p.$gettext("or more is spam")),1)]),_:1})]),_:1}),e($,{class:"align-center"},{default:l(()=>[e(d,{cols:"4"},{default:l(()=>[e(oe,{modelValue:a.value.spam_kill_level,"onUpdate:modelValue":m[6]||(m[6]=b=>a.value.spam_kill_level=b),variant:"outlined",density:"compact",type:"number","hide-details":""},null,8,["modelValue"])]),_:1}),e(d,{cols:"8"},{default:l(()=>[s(t(p.$gettext("or more throw spam message away")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),e(Q,null,{default:l(()=>[e(G),e(w,{loading:v.value,onClick:m[7]||(m[7]=b=>y("close"))},{default:l(()=>[s(t(p.$gettext("Cancel")),1)]),_:1},8,["loading"]),e(w,{color:"primary",loading:v.value,onClick:g},{default:l(()=>[s(t(p.$gettext("Apply")),1)]),_:1},8,["loading"])]),_:1})]),_:1}))}},xl={key:1},Dl={key:1},wl={key:1},Cl={key:0},Sl={key:1},Ml={key:0},Nl={key:1},Il={key:0},Tl={key:1},Al={__name:"DomainPolicy",props:{domain:{type:Object,default:null}},async setup(r){let o,_;const y=r,a=D(null),v=D(!1),f=([o,_]=_e(()=>ye.getDomainPolicy(y.domain.pk)),o=await o,_(),o);return a.value=f.data,(V,g)=>(n(),h("div",null,[a.value?(n(),c(j,{key:0},{default:l(()=>[e(B,null,{default:l(()=>[i("span",null,t(V.$gettext("Content filter")),1),e(w,{class:"ml-2",icon:"mdi-circle-edit-outline",title:V.$gettext("Edit content filter settings"),variant:"text",density:"compact",onClick:g[0]||(g[0]=p=>v.value=!0)},null,8,["title"])]),_:1}),e(A,null,{default:l(()=>[e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(V.$gettext("Spam filters")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[a.value.bypass_spam_checks!==null&&a.value.bypass_spam_checks!==""?(n(),c(u(O),{key:0,value:a.value.bypass_spam_checks!=="Y",variant:"flat"},null,8,["value"])):(n(),h("span",xl,t(V.$gettext("Default value")),1))]),_:1})]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(V.$gettext("Virus filters")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[a.value.bypass_virus_checks!==null&&a.value.bypass_virus_checks!==""?(n(),c(u(O),{key:0,value:a.value.bypass_virus_checks!=="Y",variant:"flat"},null,8,["value"])):(n(),h("span",Dl,t(V.$gettext("Default value")),1))]),_:1})]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(V.$gettext("Banned filters")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[a.value.bypass_banned_checks!==null&&a.value.bypass_banned_checks!==""?(n(),c(u(O),{key:0,value:a.value.bypass_banned_checks!=="Y",variant:"flat"},null,8,["value"])):(n(),h("span",wl,t(V.$gettext("Default value")),1))]),_:1})]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(V.$gettext("Spam classification threshold")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[a.value.spam_tag2_level!==null?(n(),h("span",Cl,t(a.value.spam_tag2_level),1)):(n(),h("span",Sl,t(V.$gettext("Default value")),1))]),_:1})]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(V.$gettext("Rejection threshold")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[a.value.spam_kill_level!==null?(n(),h("span",Ml,t(a.value.spam_kill_level),1)):(n(),h("span",Nl,t(V.$gettext("Default value")),1))]),_:1})]),_:1}),e($,null,{default:l(()=>[e(d,{cols:"6"},{default:l(()=>[s(t(V.$gettext("Spam marker")),1)]),_:1}),e(d,{cols:"6"},{default:l(()=>[a.value.spam_subject_tag2!==null?(n(),h("span",Il,t(a.value.spam_subject_tag2),1)):(n(),h("span",Tl,t(V.$gettext("Default value")),1))]),_:1})]),_:1})]),_:1})]),_:1})):C("",!0),e(H,{modelValue:v.value,"onUpdate:modelValue":g[3]||(g[3]=p=>v.value=p),width:"1000"},{default:l(()=>[e(u($l),{modelValue:a.value,"onUpdate:modelValue":g[1]||(g[1]=p=>a.value=p),"domain-id":y.domain.pk,onClose:g[2]||(g[2]=p=>v.value=!1)},null,8,["modelValue","domain-id"])]),_:1},8,["modelValue"])]))}},jl={key:1},Kl={__name:"DomainView",setup(r){const{$gettext:o}=z(),_=xe(),y=ze(),a=D(null),v=D({}),f=D(null),V=R(()=>"amavis"in y.capabilities);function g(){E.getDomain(_.params.id).then(p=>{a.value=p.data})}return g(),(p,m)=>a.value?(n(),h("div",jl,[e(pe,{flat:""},{default:l(()=>[e(ve,null,{default:l(()=>[s(t(u(o)("Domain"))+" "+t(a.value.name)+" ",1),e(w,{color:"primary",icon:"mdi-circle-edit-outline",to:{name:"DomainEdit",params:{id:a.value.pk}}},null,8,["to"]),e(w,{color:"primary",icon:"mdi-reload",onClick:m[0]||(m[0]=b=>g())})]),_:1})]),_:1}),e(Fe,{modelValue:f.value,"onUpdate:modelValue":m[1]||(m[1]=b=>f.value=b),class:"mb-4",color:"primary"},{default:l(()=>[e(ne,null,{default:l(()=>[s(t(u(o)("General")),1)]),_:1}),e(ne,null,{default:l(()=>[s(t(u(o)("Statistics")),1)]),_:1}),e(ne,null,{default:l(()=>[s(t(u(o)("DMARC")),1)]),_:1})]),_:1},8,["modelValue"]),e(Re,{modelValue:f.value,"onUpdate:modelValue":m[3]||(m[3]=b=>f.value=b)},{default:l(()=>[e(se,null,{default:l(()=>[e($,null,{default:l(()=>[e(d,{cols:"12",md:"6"},{default:l(()=>[e(gl,{domain:a.value},null,8,["domain"]),m[5]||(m[5]=i("div",{class:"mt-4"},null,-1)),a.value.type==="relaydomain"?(n(),h(T,{key:0},[e(kl,{domain:a.value},null,8,["domain"]),m[4]||(m[4]=i("div",{class:"mt-4"},null,-1))],64)):C("",!0),e(ke,{domain:a.value},null,8,["domain"]),m[6]||(m[6]=i("div",{class:"mt-4"},null,-1)),V.value?(n(),c(Al,{key:1,domain:a.value},null,8,["domain"])):C("",!0)]),_:1,__:[5,6]}),e(d,{cols:"12",md:"6"},{default:l(()=>[e(vl,{modelValue:a.value,"onUpdate:modelValue":m[2]||(m[2]=b=>a.value=b)},null,8,["modelValue"]),m[7]||(m[7]=i("div",{class:"mt-4"},null,-1)),v.value.params&&v.value.params.enable_domain_limits&&a.value.resources&&a.value.resources.length?(n(),c(Le,{key:0,resources:a.value.resources},null,8,["resources"])):C("",!0)]),_:1,__:[7]})]),_:1})]),_:1}),e(se,null,{default:l(()=>[e($,null,{default:l(()=>[e(d,{cols:"12"},{default:l(()=>[a.value.name?(n(),c(re,{key:0,domain:a.value,"graphic-set":"mailtraffic","graphic-name":"averagetraffic"},null,8,["domain"])):C("",!0)]),_:1}),e(d,{cols:"12"},{default:l(()=>[a.value.name?(n(),c(re,{key:0,domain:a.value,"graphic-set":"mailtraffic","graphic-name":"averagetrafficsize"},null,8,["domain"])):C("",!0)]),_:1})]),_:1})]),_:1}),e(se,null,{default:l(()=>[e(Ze,{domain:a.value},null,8,["domain"])]),_:1})]),_:1},8,["modelValue"])])):(n(),c(Be,{key:0}))}},Ct=fe(Kl,[["__scopeId","data-v-11fbb076"]]);export{Ct as default};
@@ -0,0 +1 @@
1
+ import{d as U}from"./domains-BSawReeu.js";import{b as O,n as ae,g as m,h as L,d as te,c as w,o as V,w as l,a as t,p as Ve,e as D,t as v,f as r,m as M,k as x,q as me,l as I,F as ue,_ as de,s as be,v as P,r as ge,x as ke}from"./index-BImkz5Jx.js";import{u as pe}from"./permissions-DNoefz-n.js";import{V as ce,r as X}from"./VForm-D5iPGkde.js";import{c as xe,V as we,b as De,a as fe}from"./VCard-CxH9DWoK.js";import{V as le}from"./VTextField-XoGTj1KG.js";import{V as Ce}from"./VSelect-C3RjAa45.js";import{V as J}from"./VSwitch-DwxdeAEq.js";import{V as he}from"./VSpacer-DinPiXs9.js";import{V as $,a as ne}from"./VAvatar-Cmga0vj6.js";import{p as Ae}from"./parameters-aSQiR7kN.js";import{_ as $e}from"./CreationForm-ORg3fazt.js";import{_ as Se,a as Ne,b as Ue,c as Fe}from"./DomainTransportForm-CA-DNUxX.js";import{_ as qe}from"./AccountPasswordSubForm-DZGt_Xgq.js";import{a as E,V as ie}from"./VRow-ozg66L7j.js";import{_ as Le,a as Te}from"./DomainAdminList-DVn9x0rB.js";import{_ as Ee}from"./ConfirmDialog-DY_kUHLG.js";import{V as Z}from"./VChip-D_styETR.js";import{_ as Ie}from"./MenuItems-PXjiG-fs.js";import{V as ee}from"./VMenu-gUG70-zD.js";import{V as Oe}from"./VBadge-CixeK87a.js";import{V as ve,a as Re}from"./VToolbar-CFZfqeOr.js";import{V as _e,a as se,b as re}from"./forwardRefs-cvcnlhoK.js";import{V as Me}from"./VDataTable-Bh8NbVSx.js";import{V as ze}from"./VCheckbox-62GOpvvP.js";import{V as R}from"./VDialog-BcTg7w6P.js";import{_ as Be,i as Pe}from"./importExport-DzoL4Mvc.js";import"./tag-B_yWNNJD.js";import"./VInput-CoDJzvaW.js";import"./VProgressCircular-BtOPiGCg.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";/* empty css */import"./logos-BswdveCV.js";import"./VWindowItem-BB7ETW3b.js";import"./ssrBoot-CKUX4kcb.js";import"./VContainer-B46caNs1.js";import"./VSheet-BNx2X4Mk.js";import"./ChoiceField-B3ReQHVe.js";import"./transports-BDNB9wR5.js";import"./VAutocomplete-Dwv6_Rzq.js";import"./filter-C82FUCw_.js";import"./accounts-DUzbx6k8.js";import"./VAlert-BuaaYN2h.js";import"./VDataTableVirtual-BOQlNtIG.js";import"./VTable-DaLxa4FO.js";import"./VFileInput-BC4yAygd.js";const Je={class:"headline"},je={class:"m-label"},Ge={class:"m-label"},ye={__name:"DomainAliasForm",props:{domainAlias:{type:Object,default:()=>null}},emits:["close"],setup(S,{emit:b}){const{$gettext:e}=O(),c=b,{displayNotification:k}=ae(),_=S,h=m([]),a=m({enabled:!0}),u=m(!1),A=m(),C=L(()=>_.domainAlias?e("Update"):e("Add")),f=L(()=>_.domainAlias?e("Edit domain alias"):e("Add a new domain alias"));async function y(){u.value=!0;try{await U.deleteDomainAlias(_.domainAlias.pk),k({msg:e("Domain alias deleted")}),c("close")}finally{u.value=!1}}async function N(){const{valid:g}=await A.value.validate();if(g){u.value=!0;try{if(!a.value.pk)await U.createDomainAlias(a.value),k({msg:e("Domain alias created")});else{const s=JSON.parse(JSON.stringify(a.value));await U.updateDomainAlias(_.domainAlias.pk,s),k({msg:e("Domain alias updated")})}c("close")}finally{u.value=!1}}}return te(()=>{U.getDomains().then(g=>{h.value=g.data}),_.domainAlias&&(a.value=JSON.parse(JSON.stringify(_.domainAlias)))}),(g,s)=>(V(),w(fe,null,{default:l(()=>[t(ce,{ref_key:"vFormRef",ref:A,onSubmit:Ve(N,["prevent"])},{default:l(()=>[t(xe,null,{default:l(()=>[D("span",Je,v(f.value),1)]),_:1}),t(we,null,{default:l(()=>[D("label",je,v(r(e)("Name")),1),t(le,{modelValue:a.value.name,"onUpdate:modelValue":s[0]||(s[0]=d=>a.value.name=d),variant:"outlined",density:"compact",rules:[r(X).required]},null,8,["modelValue","rules"]),D("label",Ge,v(r(e)("Choose a domain")),1),t(Ce,{modelValue:a.value.target,"onUpdate:modelValue":s[1]||(s[1]=d=>a.value.target=d),items:h.value,"item-title":"name","item-value":"pk",rules:[r(X).required],"single-line":"",variant:"outlined",density:"compact"},null,8,["modelValue","items","rules"]),t(J,{modelValue:a.value.enabled,"onUpdate:modelValue":s[2]||(s[2]=d=>a.value.enabled=d),label:"Enabled",color:"primary"},null,8,["modelValue"])]),_:1}),t(De,null,{default:l(()=>[t(he),t($,{loading:u.value,onClick:s[3]||(s[3]=d=>c("close"))},{default:l(()=>[x(v(r(e)("Close")),1)]),_:1},8,["loading"]),S.domainAlias&&S.domainAlias.pk?(V(),w($,{key:0,color:"error",loading:u.value,onClick:y},{default:l(()=>[x(v(r(e)("Delete")),1)]),_:1},8,["loading"])):M("",!0),t($,{color:"primary",type:"submit",loading:u.value},{default:l(()=>[x(v(C.value),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},We={__name:"DomainOptionsForm",props:{modelValue:{type:Object,default:null}},emits:["createAdmin"],setup(S,{expose:b,emit:e}){const{$gettext:c}=O(),k=S,_=e,h=m(),a=m(!1),u=L(()=>k.modelValue);function A(C){_("createAdmin",C)}return b({vFormRef:h}),(C,f)=>(V(),w(ce,{ref_key:"vFormRef",ref:h},{default:l(()=>[t(J,{modelValue:a.value,"onUpdate:modelValue":[f[0]||(f[0]=y=>a.value=y),A],label:r(c)("Create a domain administrator"),color:"primary"},null,8,["modelValue","label"]),t(le,{modelValue:u.value.domain_admin.username,"onUpdate:modelValue":f[1]||(f[1]=y=>u.value.domain_admin.username=y),label:r(c)("Name"),hint:r(c)("Name of the administrator"),"persistent-hint":"",variant:"outlined",disabled:!a.value,suffix:`@${u.value.name}`,rules:[!a.value||r(X).required]},null,8,["modelValue","label","hint","disabled","suffix","rules"]),t(qe,{modelValue:u.value.domain_admin,"onUpdate:modelValue":f[2]||(f[2]=y=>u.value.domain_admin=y),disabled:!a.value},null,8,["modelValue","disabled"]),t(J,{modelValue:u.value.domain_admin.with_mailbox,"onUpdate:modelValue":f[3]||(f[3]=y=>u.value.domain_admin.with_mailbox=y),label:r(c)("With a mailbox"),disabled:!a.value,hint:r(c)("Create a mailbox for the administrator."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"]),t(J,{modelValue:u.value.domain_admin.with_aliases,"onUpdate:modelValue":f[4]||(f[4]=y=>u.value.domain_admin.with_aliases=y),label:r(c)("Create aliases"),disabled:!a.value,hint:r(c)("Create standard aliases for the domain."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"])]),_:1},512))}},Ke={class:"text-grey"},Qe={__name:"DomainCreationForm",emits:["close","created"],setup(S,{emit:b}){const{$gettext:e}=O(),c=ae(),k=me(),_=b,a=m({name:"",type:"domain",enabled:!0,enable_dns_checks:!0,enable_dkim:!1,dkim_key_selector:"modoboa",quota:0,default_mailbox_quota:0,domain_admin:{username:"admin",random_password:!1,with_mailbox:!1,with_aliases:!1},transport:{settings:{}}});te(()=>{Ae.getGlobalApplication("admin").then(i=>{const o=i.data.params;a.value.quota=o.default_domain_quota,a.value.default_mailbox_quota=o.default_mailbox_quota,o.default_domain_message_limit!==null&&(a.value.message_limit=o.default_domain_message_limit)})});const u=m(!1),A=m(),C=m(),f=m(),y=m(),N=m(),g=m(),s={general:C,dns:f,limitations:y,options:N,transport:g},d=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"options",title:e("Options")}],z=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"transport",title:e("Transport")}],j=L(()=>a.value.type==="domain"?d:z),T=L(()=>{const i=[{title:e("General"),items:[{key:e("Name"),value:a.value.name},{key:e("Type"),value:a.value.type},{key:e("Enabled"),value:a.value.enabled,type:"yesno"}]},{title:e("DNS"),items:[{key:e("Enable DNS checks"),value:a.value.enable_dns_checks,type:"yesno"},{key:e("Enable DKIM signing"),value:a.value.enable_dkim,type:"yesno"}]},{title:e("Limitations"),items:[{key:e("Quota"),value:a.value.quota},{key:e("Default mailbox quota"),value:a.value.default_mailbox_quota},{key:e("Message sending limit"),value:a.value.message_limit}]}];if(a.value.enable_dkim&&(i[1].items.push({key:e("DKIM key selector"),value:a.value.dkim_key_selector}),i[1].items.push({key:e("DKIM key length"),value:a.value.dkim_key_length})),a.value.type==="relaydomain"&&a.value.transport.service){const o={title:e("Transport"),items:[{key:e("Service"),value:a.value.transport.service}]};for(const p of g.value.service.settings){const n={key:p.label,value:a.value.transport.settings[`${a.value.transport.service}_${p.name}`]};p.type==="boolean"&&(n.type="yesno"),o.items.push(n)}i.push(o)}else if(a.value.type==="domain"){const o={title:e("Options"),items:[{key:e("Create a domain administrator"),value:u.value,type:"yesno"}]};u.value&&o.items.push({key:e("Administrator name"),value:a.value.domain_admin.username},{name:"random_password",key:e("Random password"),value:a.value.domain_admin.random_password,type:"yesno"},{key:e("With mailbox"),value:a.value.domain_admin.with_mailbox,type:"yesno"},{key:e("Create aliases"),value:a.value.domain_admin.with_aliases,type:"yesno"}),i.push(o)}return i});function B(){_("close")}function G(){navigator.clipboard.writeText(a.value.domain_admin.password).then(()=>{c.displayNotification({msg:e("Password copied to clipboard")})})}function W(i){return s.value[i.name]}function K(i){return s[i.name].value.vFormRef}async function Q(){}function H(i){u.value=i}async function Y(){const i=JSON.parse(JSON.stringify(a.value));u.value||delete i.domain_admin,i.message_limit===""&&delete i.message_limit,i.type==="relaydomain"?g.value.checkSettingTypes(i):delete i.transport;try{const o=await U.createDomain(i);k.push({name:"DomainDetail",params:{id:o.data.pk}}),c.displayNotification({msg:e("Domain created")}),B()}finally{A.value.working=!1}}return(i,o)=>(V(),w($e,{ref_key:"form",ref:A,title:r(e)("New domain"),steps:j.value,"form-getter":W,"get-v-form-ref":K,"validate-object":Q,"summary-sections":T.value,onClose:B,onCreate:Y},{"form.general":l(()=>[t(Fe,{ref_key:"general",ref:C,modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=p=>a.value=p),class:"ml-4"},null,8,["modelValue"])]),"form.dns":l(()=>[t(Ue,{ref_key:"dns",ref:f,modelValue:a.value,"onUpdate:modelValue":o[1]||(o[1]=p=>a.value=p),class:"ml-4"},null,8,["modelValue"])]),"form.limitations":l(()=>[t(Ne,{ref_key:"limitations",ref:y,modelValue:a.value,"onUpdate:modelValue":o[2]||(o[2]=p=>a.value=p),class:"ml-4"},null,8,["modelValue"])]),"form.options":l(()=>[t(We,{ref_key:"options",ref:N,modelValue:a.value,"onUpdate:modelValue":o[3]||(o[3]=p=>a.value=p),class:"ml-4",onCreateAdmin:H},null,8,["modelValue"])]),"form.transport":l(()=>[t(Se,{ref_key:"transport",ref:g,modelValue:a.value.transport,"onUpdate:modelValue":o[4]||(o[4]=p=>a.value.transport=p),class:"ml-4"},null,8,["modelValue"])]),"item.random_password":l(({item:p})=>[p.value?(V(),w(E,{key:0,cols:"12",class:"highligth text-white"},{default:l(()=>[t(ie,null,{default:l(()=>[t(E,null,{default:l(()=>[D("span",null,v(p.key),1)]),_:2},1024),t(E,{class:"text-right"},{default:l(()=>[x(v(i.$yesno(p.value)),1)]),_:2},1024)]),_:2},1024),t(ie,null,{default:l(()=>[t(E,{class:"text-right py-1"},{default:l(()=>[x(v(a.value.domain_admin.password)+" ",1),t($,{icon:"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:r(e)("Copy to clipboard"),onClick:G},null,8,["title"])]),_:1})]),_:1})]),_:2},1024)):(V(),I(ue,{key:1},[t(E,null,{default:l(()=>[D("span",Ke,v(p.key),1)]),_:2},1024),t(E,{class:"text-right"},{default:l(()=>[x(v(i.$yesno(p.value)),1)]),_:2},1024)],64))]),_:2},1032,["title","steps","summary-sections"]))}},He={__name:"DNSStatusChip",props:{status:{type:String,default:"pending"}},setup(S){const b=S,{$gettext:e}=O(),c=L(()=>b.status==="disabled"?e("Disabled"):b.status==="pending"?e("Pending"):b.status==="critical"?e("Problem"):b.status==="ok"?e("Valid"):e("Unknown")),k=L(()=>b.status==="disabled"?"":b.status==="pending"?"info":b.status==="critical"?"error":b.status==="ok"?"success":"warning");return(_,h)=>(V(),w(Z,{color:k.value,size:"small"},{default:l(()=>[x(v(c.value),1)]),_:1},8,["color"]))}},Ye={key:1},Xe={key:1},Ze={class:"text-right"},ea={class:"grey lighten-4"},aa=["colspan"],ta={__name:"DomainList",setup(S,{expose:b}){const{$gettext:e}=O(),c=me(),{canSetRole:k}=pe(),_=ae(),h=[{title:e("Name"),key:"name"},{title:e("Enabled"),key:"enabled",width:"5%"},{title:e("Aliases"),key:"data-table-expand",width:"10%"},{title:e("DNS status"),key:"dns_global_status",sortable:!1},{title:e("Sending limit"),key:"message_limit"},{title:e("Quota"),key:"allocated_quota_in_percent"}];k.value&&h.push({title:e("Actions"),value:"actions",sortable:!1,align:"end"});const a=m({}),u=m(),A=m([]),C=m(!1),f=m(!1),y=m(null),N=m(null),g=m(!1),s=m(!1),d=m(""),z=m([]),j=m([]);async function T(){a.value={},f.value=!0;try{const i=await U.getDomains();A.value=i.data}finally{f.value=!1}}function B(){s.value=!1,y.value=null,N.value=null}async function G(i){if(await u.value.open(e("Warning"),e("Do you really want to delete the domain %{ domain }?",{domain:i.name}),{color:"error",cancelLabel:e("No"),agreeLabel:e("Yes")})){f.value=!0;try{const p={keep_folder:C.value};await U.deleteDomain(i.pk,p),T(),_.displayNotification({msg:e("Domain deleted")}),C.value=!1}finally{f.value=!1}}}function W(i){c.push({name:"DomainEdit",params:{id:i.pk}})}function K(i,o){y.value=i,N.value=o,s.value=!0}async function Q(i,o,p,n){if(!p(o)){const q=await U.getDomainAliases(i.name);a.value[i.name]=q.data}}function H(i){y.value=i,g.value=!0}function Y(i){const o=[{label:e("Administrators"),icon:"mdi-account-supervisor",onClick:H},{label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:W},{label:e("Delete"),icon:"mdi-delete-outline",onClick:G,color:"red"}];return i.opened_alarms_count&&o.push({label:e("Alarms"),icon:"mdi-bell",color:"red",onClick:()=>c.push({name:"Alarms"})}),o}return te(()=>{T()}),b({reloadDomains:T}),(i,o)=>{const p=ge("router-link");return V(),w(fe,{class:"mt-6"},{default:l(()=>[t(Me,{modelValue:z.value,"onUpdate:modelValue":o[1]||(o[1]=n=>z.value=n),expanded:j.value,headers:h,items:A.value,"item-value":"pk",search:d.value,"show-select":"","expand-on-click":"",loading:f.value},{top:l(()=>[t(ve,{color:"white",flat:""},{default:l(()=>[t(le,{modelValue:d.value,"onUpdate:modelValue":o[0]||(o[0]=n=>d.value=n),"prepend-inner-icon":"mdi-magnify",placeholder:r(e)("Search"),variant:"outlined","single-line":"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),ke(i.$slots,"extraActions",{},void 0,!0),t(ee,{location:"bottom"},{activator:l(({props:n})=>[t($,P({variant:"flat","append-icon":"mdi-chevron-down"},n,{size:"small"}),{default:l(()=>[x(v(r(e)("Actions")),1)]),_:2},1040)]),default:l(()=>[t(_e,{density:"compact"})]),_:1}),t($,{variant:"text",icon:"mdi-reload",onClick:T})]),_:3})]),"item.name":l(({item:n})=>[t(p,{to:{name:"DomainDetail",params:{id:n.pk}}},{default:l(()=>[x(v(n.name),1)]),_:2},1032,["to"]),n.type==="relaydomain"?(V(),w(Z,{key:0,size:"small",color:"primary",class:"ml-2"},{default:l(()=>[x(v(r(e)("Relay")),1)]),_:1})):M("",!0)]),"item.enabled":l(({item:n})=>[t(Le,{value:n.enabled},null,8,["value"])]),"item.data-table-expand":l(({item:n,internalItem:F,isExpanded:q,toggleExpand:oe})=>[x(v(n.domainalias_count)+" aliases ",1),n.domainalias_count?(V(),w($,{key:0,variant:"text",size:"small",icon:q(F)?"mdi-chevron-up":"mdi-chevron-down",onClick:na=>Q(n,F,q,oe)},null,8,["icon","onClick"])):M("",!0)]),"item.dns_global_status":l(({item:n})=>[t(He,{status:n.dns_global_status},null,8,["status"])]),"item.message_limit":l(({item:n})=>[n.message_limit?(V(),w(ne,{key:0,color:n.sent_messages_in_percent<80?"primary":"warning","model-value":n.sent_messages_in_percent},null,8,["color","model-value"])):(V(),I("span",Ye,v(r(e)("Unlimited")),1))]),"item.allocated_quota_in_percent":l(({item:n})=>[n.quota!=="0"?(V(),w(ne,{key:0,color:n.allocated_quota_in_percent<80?"primary":"warning","model-value":n.allocated_quota_in_percent},null,8,["color","model-value"])):(V(),I("span",Xe,v(r(e)("Unlimited")),1))]),"item.actions":l(({item:n})=>[D("div",Ze,[t(ee,{"offset-y":""},{activator:l(({props:F})=>[n.opened_alarms_count?(V(),w(Oe,{key:0,bordered:"",color:"error",icon:"mdi-bell",overlap:""},{default:l(()=>[t($,P({icon:"mdi-dots-horizontal",variant:"text"},F),null,16)]),_:2},1024)):(V(),w($,P({key:1,icon:"mdi-dots-horizontal",variant:"text"},F),null,16))]),default:l(()=>[t(Ie,{items:Y(n),obj:n},null,8,["items","obj"])]),_:2},1024)])]),"expanded-row":l(({item:n,columns:F})=>[D("tr",ea,[D("td",{colspan:F.length},[(V(!0),I(ue,null,be(a.value[n.name],q=>(V(),I("span",{key:q.name,class:"mr-4"},[t(Z,{class:"mr-2",onClick:oe=>K(n,q)},{default:l(()=>[x(v(q.name),1)]),_:2},1032,["onClick"])]))),128))],8,aa)])]),_:2},1032,["modelValue","expanded","items","search","loading"]),t(Ee,{ref_key:"confirm",ref:u},{default:l(()=>[t(ze,{modelValue:C.value,"onUpdate:modelValue":o[2]||(o[2]=n=>C.value=n),label:r(e)("Do not delete domain folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),t(R,{modelValue:s.value,"onUpdate:modelValue":o[3]||(o[3]=n=>s.value=n),persistent:"","max-width":"800px"},{default:l(()=>[t(ye,{"domain-alias":N.value,onClose:B},null,8,["domain-alias"])]),_:1},8,["modelValue"]),t(R,{modelValue:g.value,"onUpdate:modelValue":o[5]||(o[5]=n=>g.value=n),persistent:"","max-width":"800px"},{default:l(()=>[t(Te,{domain:y.value,"dialog-mode":"",onClose:o[4]||(o[4]=n=>g.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"])]),_:3})}}},la=de(ta,[["__scopeId","data-v-e52ea065"]]),oa={__name:"DomainsView",setup(S){const b=m(),e=m(!1),c=m(!1),k=m(!1),{$gettext:_}=O(),{canAddDomain:h}=pe(),a=m(),{importContent:u,exportContent:A}=Pe();function C(){U.exportAll().then(g=>{A(g.data,"domains",_)})}function f(g){u(U,g,a,_)}const y=()=>{e.value=!1,b.value.reloadDomains()},N=()=>{k.value=!1,b.value.reloadDomains()};return(g,s)=>(V(),I("div",null,[t(ve,{flat:""},{default:l(()=>[t(Re,null,{default:l(()=>[x(v(r(_)("Domains")),1)]),_:1})]),_:1}),t(r(la),{ref_key:"domainList",ref:b},{extraActions:l(()=>[r(h)?(V(),w(ee,{key:0,"offset-y":""},{activator:l(({props:d})=>[t($,P({color:"primary",variant:"outlined"},d,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:l(()=>[x(v(g.$pgettext("male","New")),1)]),_:2},1040)]),default:l(()=>[t(_e,{density:"compact"},{default:l(()=>[t(se,{onClick:s[0]||(s[0]=d=>c.value=!0)},{default:l(()=>[t(re,null,{default:l(()=>[x(v(r(_)("Domain")),1)]),_:1})]),_:1}),t(se,{onClick:s[1]||(s[1]=d=>e.value=!0)},{default:l(()=>[t(re,null,{default:l(()=>[x(v(r(_)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1})):M("",!0),r(h)?(V(),w($,{key:1,class:"mr-2",title:r(_)("Import domains and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:s[2]||(s[2]=d=>k.value=!0)},null,8,["title"])):M("",!0),t($,{class:"mr-2",title:r(_)("Export domains and aliases to CSV"),variant:"flat",icon:"mdi-file-export-outline",onClick:C},null,8,["title"])]),_:1},512),t(R,{modelValue:c.value,"onUpdate:modelValue":s[4]||(s[4]=d=>c.value=d),fullscreen:"",scrollable:"","z-index":"10"},{default:l(()=>[t(r(Qe),{onClose:s[3]||(s[3]=d=>c.value=!1)})]),_:1},8,["modelValue"]),t(R,{modelValue:e.value,"onUpdate:modelValue":s[6]||(s[6]=d=>e.value=d),persistent:"","max-width":"800px"},{default:l(()=>[t(r(ye),{onClose:s[5]||(s[5]=d=>y())})]),_:1},8,["modelValue"]),t(R,{modelValue:k.value,"onUpdate:modelValue":s[7]||(s[7]=d=>k.value=d),persistent:"","max-width":"800px"},{default:l(()=>[t(r(Be),{ref_key:"importForm",ref:a,title:r(_)("Import domains"),onSubmit:f,onClose:N},{help:l(()=>s[8]||(s[8]=[D("ul",null,[D("li",null,[D("em",null,"domain; name; quota; default mailbox quota; enabled")]),D("li",null,[D("em",null,"domainalias; name; targeted domain; enabled")]),D("li",null,[D("em",null,"relaydomain; name; target host; target port; service; enabled; verify recipients")])],-1)])),_:1},8,["title"])]),_:1},8,["modelValue"])]))}},Za=de(oa,[["__scopeId","data-v-de80aa3f"]]);export{Za as default};
@@ -0,0 +1 @@
1
+ .highligth{background-color:#515d78}.v-text-field--outlined[data-v-e52ea065] fieldset{border-color:#bfc5d2}.v-input--checkbox[data-v-e52ea065] .v-label{font-size:.875rem!important}a[data-v-e52ea065]{text-decoration:none;color:rgb(var(--v-theme-primary))}a[data-v-e52ea065]:visited{color:rgb(var(--v-theme-primary))}.v-toolbar[data-v-de80aa3f],.v-tabs-items[data-v-de80aa3f]{background-color:#f7f8fa!important}
@@ -0,0 +1 @@
1
+ import{i as $,_ as b,h as p,g as n,d as F,Z as z,$ as A,a0 as B,l as g,o as d,a as y,m as T,v as U,a1 as N,w,F as S,s as R,c as W,y as K,k as O,t as P}from"./index-BImkz5Jx.js";import{V as j}from"./VTextField-XoGTj1KG.js";import{a as Z,b as q,V as G}from"./forwardRefs-cvcnlhoK.js";import{u as H}from"./domains.store-D-vWCEIK.js";const J={__name:"EmailField",props:{modelValue:{type:String,default:""},allowAdd:{type:Boolean,default:!1},role:{type:String,default:$.USER},errorMsg:{type:Array,default:()=>[]}},emits:["domain-selected","update:model-value"],setup(x,{emit:E}){const h=H(),o=x,V=E,r=p({get(){return o.modelValue},set(e){v.value=[],e.indexOf("@")!==-1?(u.value=e.split("@")[1],o.allowAdd?t.value=s.value.length>0:t.value=!0):t.value=!1,V("update:model-value",e)}}),s=p(()=>Object.values(h.domains).filter(e=>e.name.startsWith(u.value))),v=p({get(){return[...D.value,...o.errorMsg]},set(e){D.value=e}}),u=n(""),l=n(0),t=n(!1),k=n(500),_=n(),D=n([]);function C(e){const a=e.keyCode;a===40||a===34?(t.value?M():(u.value="",t.value=!0),e.preventDefault()):a===38||a===33?(t.value?I():(u.value="",t.value=!0),e.preventDefault()):a===13||a===9?(s.value.length>0?c(s.value[l.value]):o.allowAdd&&c(),e.preventDefault()):a===27&&s.value.length>0&&(t.value=!1,e.preventDefault())}function M(){l.value>=s.value.length-1?l.value=0:l.value+=1}function I(){l.value<=0?l.value=s.value.length-1:l.value-=1}function c(e){e!==void 0&&(r.value=r.value.split("@")[0]+"@"+e.name),t.value=!1,V("domain-selected")}function m(){k.value=_.value.$el.clientWidth}return F(()=>{h.getDomains(),window.addEventListener("resize",m)}),z(()=>{window.removeEventListener("resize",m)}),A(()=>{B(()=>{m()})}),(e,a)=>(d(),g(S,null,[y(j,U({ref_key:"inputRef",ref:_,modelValue:r.value,"onUpdate:modelValue":a[0]||(a[0]=i=>r.value=i),variant:"outlined"},e.$attrs,{"error-messages":v.value,error:v.value.length>0,density:"compact",autocomplete:"new-password",onKeydown:C}),null,16,["modelValue","error-messages","error"]),t.value?(d(),g("div",{key:0,class:"menu",style:N(`width: ${k.value}px;`)},[y(G,{class:"list"},{default:w(()=>[(d(!0),g(S,null,R(s.value,(i,f)=>(d(),W(Z,{key:f,class:K(l.value===f?"bg-primary-lighten-1":""),onClick:L=>c(i),onMouseenter:L=>l.value=f},{default:w(()=>[y(q,null,{default:w(()=>[O(P(i.name),1)]),_:2},1024)]),_:2},1032,["class","onClick","onMouseenter"]))),128))]),_:1})],4)):T("",!0)],64))}},te=b(J,[["__scopeId","data-v-bed4b698"]]);export{te as E};
@@ -0,0 +1 @@
1
+ import{A as te,q as O,b as G,n as H,g as w,c as g,o as i,w as s,a,f as m,d as le,Z as oe,z as se,B as ne,a0 as F,l as p,L as ie,aj as re,e as d,m as L,t as v,k as S,F as _,s as R,X as ue,Y as de,v as I}from"./index-BImkz5Jx.js";import{a as C}from"./webmail-CdU6CD9b.js";import{c as me}from"./contacts-BjghrPqZ.js";import{V as D,a as q}from"./forwardRefs-cvcnlhoK.js";import{V as f,c as A}from"./VAvatar-Cmga0vj6.js";import{a as W,V as ce,b as pe}from"./VCard-CxH9DWoK.js";import{V as ve}from"./VToolbar-CFZfqeOr.js";import{V as U}from"./VMenu-gUG70-zD.js";import{V as P}from"./VSpacer-DinPiXs9.js";import{V as fe}from"./VDialog-BcTg7w6P.js";import"./tag-B_yWNNJD.js";import"./ssrBoot-CKUX4kcb.js";import"./VProgressCircular-BtOPiGCg.js";/* empty css */const B={__name:"ContactCard",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(N){const l=te(N,"modelValue"),E=O(),{$gettext:M}=G(),{displayNotification:n}=H(),c=w(!1),x=async()=>{const V={emails:[{address:l.value.address,type:"other"}]};l.value.name?V.display_name=l.value.name:V.display_name=l.value.address,c.value=!0;let h;try{h=await me.createContact(V),l.value.contact_id=h.data.pk}finally{c.value=!1}n({msg:M("Contact added to address book")})},o=()=>{E.push({name:"ContactList"})};return(V,h)=>(i(),g(W,{"min-width":"300"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{subtitle:l.value.name?l.value.address:"",title:l.value.name||l.value.address},{append:s(()=>[l.value.contact_id?(i(),g(f,{key:1,icon:"mdi-pencil",variant:"text",loading:c.value,title:m(M)("Update contact"),onClick:o},null,8,["loading","title"])):(i(),g(f,{key:0,color:"secondary",icon:"mdi-card-account-mail-outline",variant:"text",loading:c.value,title:m(M)("Add to contacts"),onClick:x},null,8,["loading","title"]))]),_:1},8,["subtitle","title"])]),_:1})]),_:1}))}},ye={class:"bg-white rounded-lg pa-4 position-relative h-100"},ke={class:"d-flex mt-2"},ge={class:"text-grey text-body-2"},Ve={class:"text-grey"},be={class:"mt-2 text-grey"},_e={key:0},we={key:0,class:"mt-2"},xe=["onClick"],Ne={__name:"EmailView",setup(N){const{$gettext:l}=G(),{displayNotification:E,reloadMailboxCounters:M}=H(),n=ne(),c=O(),x=w(!1),o=w(null),V=w(null),h=w(null),T=w(!1),$=w(!1),y=w(!1);le(()=>{window.addEventListener("resize",z),j()}),oe(()=>{window.removeEventListener("resize",z)}),se(x,()=>{j()});const X=()=>{c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}})},z=()=>{const u=document.querySelector("iframe"),e=h.value.getBoundingClientRect();u.style.top=`${e.bottom}px`,u.style.width=`${e.width-24}px`,u.style.height=`${window.innerHeight-e.bottom-32}px`},j=()=>{const u={dformat:"html",links:x.value?"1":"0"};C.getEmailContent(n.query.mailbox,n.query.mailid,u).then(e=>{M(),o.value=e.data,F(()=>{const k=document.createElement("iframe");k.classList.add("email-frame"),document.querySelector("iframe").replaceWith(k);const t=k.contentDocument;t.write(o.value.body),t.close(),T.value=!0,F(z)})})},Y=(u,e)=>{C.getEmailAttachment(n.query.mailbox,n.query.mailid,e).then(k=>{const t=new Blob([k.data],{type:k.headers["Content-Type"]}),r=document.createElement("a");r.href=URL.createObjectURL(t),r.download=u,r.click(),URL.revokeObjectURL(r.href)})},Z=()=>{y.value=!0,C.deleteSelection(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message deleted")})})},K=()=>{y.value=!0,C.markSelectionAsJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as junk")})})},Q=()=>{y.value=!0,C.markSelectionAsNotJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as not junk")})})},ee=async()=>{if(!V.value){const u=await C.getEmailSource(n.query.mailbox,n.query.mailid);V.value=u.data.source}$.value=!0},J=u=>{const e={...n.query};u&&(e.all=u),c.push({name:"ReplyEmailView",query:e})},ae=()=>{c.push({name:"ForwardEmailView",query:n.query})};return(u,e)=>{var k;return i(),p(_,null,[ie(d("div",ye,[a(ve,{color:"white"},{default:s(()=>[a(f,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:X}),a(f,{color:"primary",variant:"tonal","prepend-icon":"mdi-reply",onClick:e[1]||(e[1]=()=>J())},{append:s(()=>[a(f,{size:"x-small",variant:"plain"},{default:s(()=>[a(A,{icon:"mdi-chevron-down"}),a(U,{activator:"parent"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{title:m(l)("Reply all"),onClick:e[0]||(e[0]=()=>J(!0))},null,8,["title"]),a(q,{title:m(l)("Forward"),onClick:ae},null,8,["title"])]),_:1})]),_:1})]),_:1})]),default:s(()=>[S(v(m(l)("Reply"))+" ",1)]),_:1}),a(f,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:y.value,onClick:Z},null,8,["loading"]),m(n).params.mailbox!=="Junk"?(i(),g(f,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:y.value,onClick:K},null,8,["loading"])):(i(),g(f,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:y.value,onClick:Q},null,8,["loading"])),a(f,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:s(()=>[a(A,{icon:"mdi-cog"}),a(U,{activator:"parent"},{default:s(()=>[a(D,{density:"compact"},{default:s(()=>[x.value?(i(),g(q,{key:1,title:m(l)("Disable links"),onClick:e[3]||(e[3]=t=>x.value=!1)},null,8,["title"])):(i(),g(q,{key:0,title:m(l)("Enable links"),onClick:e[2]||(e[2]=t=>x.value=!0)},null,8,["title"])),a(q,{title:m(l)("Display source"),onClick:ee},null,8,["title"])]),_:1})]),_:1})]),_:1})]),_:1}),o.value?(i(),p("div",{key:0,ref_key:"headers",ref:h,class:"bg-white pa-4"},[d("h2",null,v(o.value.subject),1),d("div",ke,[a(U,{key:"sender"},{activator:s(({props:t})=>[d("h3",ue(de(t)),[o.value.from_address.name?(i(),p(_,{key:0},[S(v(o.value.from_address.name)+" ",1),d("span",ge," <"+v(o.value.from_address.address)+"> ",1)],64)):(i(),p(_,{key:1},[S(v(o.value.from_address.address),1)],64))],16)]),default:s(()=>[a(B,{modelValue:o.value.from_address,"onUpdate:modelValue":e[4]||(e[4]=t=>o.value.from_address=t)},null,8,["modelValue"])]),_:1}),a(P),d("span",Ve,v(o.value.date),1)]),d("div",be,[S(v(m(l)("To"))+" ",1),(i(!0),p(_,null,R(o.value.to,(t,r)=>(i(),g(U,{key:`to-${r}`},{activator:s(({props:b})=>[r>0?(i(),p("span",_e,", ")):L("",!0),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.to[r],"onUpdate:modelValue":b=>o.value.to[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),(k=o.value.cc)!=null&&k.length?(i(!0),p(_,{key:0},R(o.value.cc,(t,r)=>(i(),g(U,{key:`cc-${r}`},{activator:s(({props:b})=>[e[7]||(e[7]=d("span",null,", ",-1)),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.cc[r],"onUpdate:modelValue":b=>o.value.cc[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)):L("",!0)]),o.value.attachments.length?(i(),p("div",we,[a(A,{icon:"mdi-paperclip"}),(i(!0),p(_,null,R(o.value.attachments,(t,r)=>(i(),p(_,{key:t.name},[r>0?(i(),p(_,{key:0},[S(", ")],64)):L("",!0),d("a",{href:"#",onClick:b=>Y(t.name,t.partnum)},v(t.name),9,xe)],64))),128))])):L("",!0)],512)):L("",!0),e[8]||(e[8]=d("iframe",{class:"email-frame"},null,-1))],512),[[re,T.value]]),a(fe,{modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=t=>$.value=t),"max-width":"1200"},{default:s(()=>[a(W,{title:m(l)("Message source")},{default:s(()=>[a(ce,{class:"text-caption overflow-x-auto"},{default:s(()=>[d("pre",null,v(V.value),1)]),_:1}),a(pe,null,{default:s(()=>[a(P),a(f,{text:m(l)("Close"),onClick:e[5]||(e[5]=t=>$.value=!1)},null,8,["text"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])],64)}}};export{Ne as default};
@@ -0,0 +1 @@
1
+ import{V as s,a as c}from"./VApp-CKP-6zGP.js";import{r as m,c as t,o as e,w as o,a as r}from"./index-BImkz5Jx.js";import"./tag-B_yWNNJD.js";import"./layout-C5FyYCHK.js";import"./ssrBoot-CKUX4kcb.js";const u={__name:"EmptyView",setup(a){return(_,n)=>{const p=m("router-view");return e(),t(s,null,{default:o(()=>[r(p)]),_:1})}}},d={__name:"EmptyLayout",setup(a){return(_,n)=>(e(),t(c,null,{default:o(()=>[r(u)]),_:1}))}};export{d as default};
@@ -0,0 +1 @@
1
+ import{b as le,n as ae,g as f,c as k,o as c,w as v,a as t,f as l,ad as g,h as ne,z as G,e as $,l as S,m as R,t as L,F as j,s as Z,B as we,q as he,v as ie,k as ee}from"./index-BImkz5Jx.js";import{V as oe,r as N}from"./VForm-D5iPGkde.js";import{V as me,b as de,a as ce}from"./VCard-CxH9DWoK.js";import{V as I}from"./VTextField-XoGTj1KG.js";import{V as fe}from"./VSwitch-DwxdeAEq.js";import{c as ve}from"./forwardRefs-cvcnlhoK.js";import{V as pe}from"./VSpacer-DinPiXs9.js";import{V as F,c as Ce}from"./VAvatar-Cmga0vj6.js";import{a as _e,V as te}from"./VRadioGroup-DIFZKSn-.js";import{V as J}from"./VSelect-C3RjAa45.js";import{V as Se}from"./VCheckbox-62GOpvvP.js";import{_ as re}from"./MenuItems-PXjiG-fs.js";import{V as xe}from"./VToolbar-CFZfqeOr.js";import{V as Ue}from"./VDataTable-Bh8NbVSx.js";import{V as se}from"./VDialog-BcTg7w6P.js";import{V as Ae}from"./VAutocomplete-Dwv6_Rzq.js";import{V as ue}from"./VMenu-gUG70-zD.js";import{V as Ne}from"./VTextarea-wBlRMIv_.js";import"./tag-B_yWNNJD.js";import"./VInput-CoDJzvaW.js";import"./VProgressCircular-BtOPiGCg.js";import"./VSelectionControl-zyz-fJvC.js";import"./ssrBoot-CKUX4kcb.js";/* empty css */import"./VCheckboxBtn-DMoNtKT8.js";import"./VChip-D_styETR.js";import"./VTable-DaLxa4FO.js";import"./filter-C82FUCw_.js";const $e={__name:"FilterSetForm",emits:["close"],setup(P,{emit:O}){const{$gettext:p}=le(),w=O,i=ae(),n=f({}),h=f(),b=f(!1);function a(){h.value.reset(),n.value={},w("close")}async function U(){const{valid:u}=await h.value.validate();if(u){b.value=!0;try{await g.createFilterSet(n.value),i.displayNotification({msg:p("Filter set created")}),a()}finally{b.value=!1}}}return(u,C)=>(c(),k(ce,{title:l(p)("Create a new filter set")},{default:v(()=>[t(me,null,{default:v(()=>[t(oe,{ref_key:"formRef",ref:h},{default:v(()=>[t(I,{modelValue:n.value.name,"onUpdate:modelValue":C[0]||(C[0]=_=>n.value.name=_),label:l(p)("Name"),variant:"outlined",rules:[l(N).required]},null,8,["modelValue","label","rules"]),t(fe,{label:l(p)("Active"),modelValue:n.value.active,"onUpdate:modelValue":C[1]||(C[1]=_=>n.value.active=_),color:"primary"},null,8,["label","modelValue"])]),_:1},512)]),_:1}),t(ve),t(de,null,{default:v(()=>[t(pe),t(F,{text:l(p)("Cancel"),variant:"plain",onClick:a},null,8,["text"]),t(F,{color:"primary",text:l(p)("Create"),onClick:U},null,8,["text"])]),_:1})]),_:1},8,["title"]))}},Re={class:"bg-grey-lighten-4 rounded pa-3"},Te={class:"mt-4 bg-grey-lighten-4 rounded pa-3"},qe={class:"mx-2 d-flex flex-column flex-grow-1"},De={__name:"FilterForm",props:{filterSet:{type:String,default:null},filter:{type:Object,required:!1,default:null}},emits:["close"],setup(P,{emit:O}){const p=P,w=O,i=ae(),{$gettext:n}=le(),h=f({}),b=f([]),a=f([]),U=f(),u=f(x()),C=f(!1),_=ne(()=>p.filter?n("Edit filter"):n("New filter")),M=ne(()=>p.filter?n("Update"):n("Create"));let B;G(()=>p.filter,d=>{d?(u.value=JSON.parse(JSON.stringify(d)),B=d.name):u.value=x()},{immediate:!0});function T(){w("close"),u.value=x()}function x(){return{match_type:"anyof",conditions:[{}],actions:[{args:{}}]}}function H(d){for(const V of b.value)if(V.name===d)return V.operators;return[]}function K(d){for(const V of b.value)if(V.name===u.value.conditions[d].name){for(const r of V.operators)if(r.name===u.value.conditions[d].operator)return r.type==="string"?"text":"number"}}function Q(d){for(const V of a.value)if(V.name===d)return V.args;return[]}function W(){u.value.conditions.push({name:b.value[0].name,operator:b.value[0].operators[0].name})}function z(d){u.value.conditions.splice(d,1)}function A(){u.value.actions.push({name:a.value[0].name,args:{}})}function X(d){u.value.actions.splice(d,1)}async function Y(){const{valid:d}=await U.value.validate();if(!d)return;C.value=!0;let V;const r=JSON.parse(JSON.stringify(u.value));for(const y of r.actions)for(const[m,E]of Object.entries(y.args))typeof E=="boolean"&&!E&&delete y.args[m];try{p.filter?(await g.updateFilter(p.filterSet,B,r),V=n("Filter updated")):(await g.createFilter(p.filterSet,r),V=n("Filter added"))}catch(y){y.response.status===400&&y.response.data&&(h.value=y.response.data);return}finally{C.value=!1}i.displayNotification({msg:V}),T()}return g.getFilterConditionTemplates().then(d=>{b.value=d.data,p.filter||(u.value.conditions[0].name=b.value[0].name,u.value.conditions[0].operator=b.value[0].operators[0].name)}),g.getFilterActionTemplates().then(d=>{a.value=d.data,p.filter||(u.value.actions[0].name=a.value[0].name)}),(d,V)=>(c(),k(ce,{title:_.value},{default:v(()=>[t(me,null,{default:v(()=>[t(oe,{ref_key:"formRef",ref:U},{default:v(()=>[t(I,{modelValue:u.value.name,"onUpdate:modelValue":V[0]||(V[0]=r=>u.value.name=r),label:l(n)("Name"),variant:"outlined",density:"compact",rules:[l(N).required],"error-messages":h.value.name?h.value.name:[]},null,8,["modelValue","label","rules","error-messages"]),$("div",Re,[$("h4",null,L(l(n)("Conditions")),1),t(_e,{modelValue:u.value.match_type,"onUpdate:modelValue":V[1]||(V[1]=r=>u.value.match_type=r),color:"primary",inline:""},{default:v(()=>[t(te,{label:l(n)("All of the following"),value:"allof"},null,8,["label"]),t(te,{label:l(n)("Any of the following"),value:"anyof"},null,8,["label"]),t(te,{label:l(n)("All messages"),value:"all"},null,8,["label"])]),_:1},8,["modelValue"]),u.value.match_type!=="all"?(c(!0),S(j,{key:0},Z(u.value.conditions,(r,y)=>(c(),S("div",{key:`condition-${y}`,class:"d-flex align-start"},[t(J,{modelValue:r.name,"onUpdate:modelValue":m=>r.name=m,label:l(n)("Choose a header"),items:b.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),t(J,{modelValue:r.operator,"onUpdate:modelValue":m=>r.operator=m,label:l(n)("Choose an operator"),items:H(r.name),"item-title":"label","item-value":"name",variant:"outlined",class:"ml-2",density:"compact",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),t(I,{modelValue:r.value,"onUpdate:modelValue":m=>r.value=m,label:l(n)("Value"),variant:"outlined",class:"ml-2",density:"compact",type:K(y),rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","type","rules"]),y===0?(c(),k(F,{key:0,icon:"mdi-plus",variant:"text",title:l(n)("Add condition"),color:"primary",onClick:W},null,8,["title"])):(c(),k(F,{key:1,icon:"mdi-trash-can",variant:"text",title:l(n)("Remove condition"),color:"error",onClick:m=>z(y)},null,8,["title","onClick"]))]))),128)):R("",!0)]),$("div",Te,[$("h4",null,L(l(n)("Actions")),1),(c(!0),S(j,null,Z(u.value.actions,(r,y)=>(c(),S("div",{key:`action-${y}`,class:"d-flex align-start mt-2"},[t(J,{modelValue:r.name,"onUpdate:modelValue":m=>r.name=m,label:l(n)("Choose an action"),items:a.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",class:"flex-grow-0"},null,8,["modelValue","onUpdate:modelValue","label","items"]),$("div",qe,[(c(!0),S(j,null,Z(Q(r.name),(m,E)=>(c(),S(j,{key:`arg-${y}-${E}`},[m.type==="list"?(c(),k(J,{key:0,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,items:m.choices,"item-title":"label",density:"compact",variant:"outlined",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","items","rules"])):R("",!0),m.type==="string"?(c(),k(I,{key:1,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,density:"compact",variant:"outlined",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","rules"])):R("",!0),m.type==="boolean"?(c(),k(Se,{key:2,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,label:m.label,color:"primary",value:m.value,density:"compact"},null,8,["modelValue","onUpdate:modelValue","label","value"])):R("",!0)],64))),128))]),y===0?(c(),k(F,{key:0,icon:"mdi-plus",variant:"text",title:l(n)("Add action"),color:"primary",onClick:A},null,8,["title"])):(c(),k(F,{key:1,icon:"mdi-trash-can",variant:"text",title:l(n)("Remove action"),color:"error",onClick:m=>X(y)},null,8,["title","onClick"]))]))),128))])]),_:1},512)]),_:1}),t(ve),t(de,null,{default:v(()=>[t(pe),t(F,{text:l(n)("Cancel"),variant:"elevated",onClick:T},null,8,["text"]),t(F,{color:"primary",variant:"elevated",text:M.value,loading:C.value,onClick:Y},null,8,["text","loading"])]),_:1})]),_:1},8,["title"]))}},je={class:"pa-4"},Oe={class:"text-h6 font-weight-regular mb-4"},Be={key:0,class:"bg-white mt-4 pa-2"},Ee={class:"d-flex align-center"},vt={__name:"FiltersView",setup(P){const O=he(),p=we(),w=ae(),{$gettext:i}=le(),n=f([]),h=f([]),b=f(""),a=f(),U=f(!1),u=f([]),C=f(),_=f(!1),M=f(!1),B=f(null),T=f(!1),x=f(!1),H=[{title:i("Name"),key:"name"},{title:i("Active"),key:"enabled"},{title:"",key:"filter_actions",align:"end"}];G(a,e=>{e?(A(e.name),p.params.filterset!==e.name&&O.push({name:"AccountFilters",params:{filterset:e.name}})):O.push({name:"AccountFilters"})}),G(_,e=>{e?g.downloadFilterSet(a.value.name).then(o=>{b.value=o.data}):A(a.value.name)}),G(b,()=>{u.value.length&&(u.value=[])});function K(e){let o=e.name;return e.active?o+=" ("+i("active")+")":o+=" ("+i("inactive")+")",o}function Q(){T.value=!1,z()}function W(){x.value=!1,B.value=null,A(a.value.name)}function z(){g.getFilterSets().then(e=>{if(e.data.length>0&&e.data[0].active&&e.data[0].name===null?n.value=e.data.slice(1):n.value=e.data,!a.value&&p.params.filterset){for(const o of n.value)if(o.name===p.params.filterset){a.value=o;break}}})}function A(e){U.value=!0,g.getFilters(e).then(o=>{h.value=o.data,U.value=!1}).catch(o=>{o.response.status===518&&(_.value=!0,w.displayNotification({msg:i("Failed to display template. Using raw mode"),type:"warning"}))})}function X(e){B.value=e,x.value=!0}function Y(e){g.enableFilter(a.value.name,e.name).then(()=>{e.enabled=!0,w.displayNotification({msg:i("Filter enabled")})})}function d(e){g.disableFilter(a.value.name,e.name).then(()=>{e.enabled=!1,w.displayNotification({msg:i("Filter disabled")})})}function V(e){g.deleteFilter(a.value.name,e.name).then(()=>{w.displayNotification({msg:i("Filter removed")}),A(a.value.name)})}async function r(e){await g.moveFilterDown(a.value.name,e.name),A(a.value.name)}async function y(e){await g.moveFilterUp(a.value.name,e.name),A(a.value.name)}async function m(e){await g.activateFilterSet(e.name),w.displayNotification({msg:i("Filter set activated")})}async function E(e){await g.deleteFilterSet(e.name),w.displayNotification({msg:i("Filter set removed")}),a.value=null,z()}async function q(){const{valid:e}=await C.value.validate();if(!e)return;const o={content:b.value};M.value=!0;try{await g.saveFilterSet(a.value.name,o),w.displayNotification({msg:i("Filter set updated")})}catch(s){s.response.status===400&&s.response.data.content&&(u.value=s.response.data.content)}finally{M.value=!1}}async function Ve(e){const o=await g.downloadFilterSet(e.name),s=new Blob([o.data],{type:"text/plain"}),D=document.createElement("a");D.href=URL.createObjectURL(s),D.download=`${e.name}.txt`,D.click(),URL.revokeObjectURL(D.href)}const ye=[{label:i("Edit"),icon:"mdi-circle-edit-outline",onClick:X},{label:i("Delete"),icon:"mdi-delete-outline",onClick:V,color:"red"}];function be(e,o){const s=[...ye];return e.enabled?s.push({label:i("Disable"),icon:"mdi-stop",color:"red",onClick:d}):s.push({label:i("Enable"),icon:"mdi-check",color:"success",onClick:Y}),o!==h.value.length-1&&s.push({label:i("Move down"),icon:"mdi-arrow-down",onClick:r}),o!==0&&s.push({label:i("Move up"),icon:"mdi-arrow-up",onClick:y}),s}const ge=[{label:i("Download filter set"),icon:"mdi-download",onClick:Ve},{label:i("Delete filter set"),color:"error",icon:"mdi-trash-can",onClick:E}];function Fe(){const e=[];return a.value.active||e.push({label:i("Activate filter set"),color:"success",icon:"mdi-check",onClick:m}),e.concat(ge)}return z(),(e,o)=>(c(),S(j,null,[$("div",je,[$("div",Oe,L(l(i)("Message filters")),1),t(xe,{color:"white",flat:""},{default:v(()=>[t(Ae,{modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=s=>a.value=s),label:l(i)("Select a filter set"),items:n.value,"item-title":K,"return-object":"",variant:"outlined","hide-details":"",class:"flex-grow-0",style:{width:"200px"},density:"compact"},null,8,["modelValue","label","items"]),t(F,{color:"primary",icon:"mdi-plus",size:"small",class:"mx-4",title:l(i)("Add filter set"),onClick:o[1]||(o[1]=s=>T.value=!0)},null,8,["title"]),a.value?(c(),k(ue,{key:0},{activator:v(({props:s})=>[t(F,ie({icon:"mdi-dots-vertical"},s,{size:"small",color:"default"}),null,16)]),default:v(()=>[t(re,{items:Fe(),obj:a.value},null,8,["items","obj"])]),_:1})):R("",!0),a.value?(c(),k(fe,{key:1,modelValue:_.value,"onUpdate:modelValue":o[2]||(o[2]=s=>_.value=s),label:l(i)("Raw mode"),color:"primary",class:"ml-4","hide-details":""},null,8,["modelValue","label"])):R("",!0)]),_:1}),a.value?(c(),S("div",Be,[_.value?(c(),S(j,{key:1},[t(oe,{ref_key:"rawFormRef",ref:C},{default:v(()=>[t(Ne,{modelValue:b.value,"onUpdate:modelValue":o[4]||(o[4]=s=>b.value=s),variant:"outlined","auto-grow":"",rules:[l(N).required],"error-messages":u.value},null,8,["modelValue","rules","error-messages"])]),_:1},512),t(F,{color:"success",loading:M.value,class:"mt-2",onClick:q},{default:v(()=>[ee(L(l(i)("Save")),1)]),_:1},8,["loading"])],64)):(c(),S(j,{key:0},[$("div",Ee,[t(F,{color:"primary",title:l(i)("Add new filter"),class:"mx-auto",onClick:o[3]||(o[3]=s=>x.value=!0)},{default:v(()=>[t(Ce,{icon:"mdi-plus"}),ee(" "+L(l(i)("Add")),1)]),_:1},8,["title"])]),t(Ue,{headers:H,items:h.value,loading:U.value},{"item.enabled":v(({item:s})=>[ee(L(e.$yesno(s.enabled)),1)]),"item.filter_actions":v(({index:s,item:D})=>[t(ue,{"offset-y":""},{activator:v(({props:ke})=>[t(F,ie({icon:"mdi-dots-horizontal",variant:"text"},ke),null,16)]),default:v(()=>[t(re,{items:be(D,s),obj:D},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["items","loading"])],64))])):R("",!0)]),t(se,{modelValue:T.value,"onUpdate:modelValue":o[5]||(o[5]=s=>T.value=s),"max-width":"600"},{default:v(()=>[t($e,{onClose:Q})]),_:1},8,["modelValue"]),t(se,{modelValue:x.value,"onUpdate:modelValue":o[6]||(o[6]=s=>x.value=s),"max-width":"800"},{default:v(()=>[a.value?(c(),k(De,{key:0,"filter-set":a.value.name,filter:B.value,onClose:W},null,8,["filter-set","filter"])):R("",!0)]),_:1},8,["modelValue"])],64))}};export{vt as default};
@@ -0,0 +1 @@
1
+ import{g as i,B as m,c as p,f as a,o as e}from"./index-BImkz5Jx.js";import{_ as n}from"./ComposeEmailForm-Bs1fZXAL.js";import{a as l}from"./webmail-CdU6CD9b.js";import"./index-DuzUMVLM.js";import"./VForm-D5iPGkde.js";import"./tag-B_yWNNJD.js";import"./VInput-CoDJzvaW.js";import"./VAvatar-Cmga0vj6.js";import"./VProgressCircular-BtOPiGCg.js";import"./forwardRefs-cvcnlhoK.js";import"./ssrBoot-CKUX4kcb.js";import"./VCard-CxH9DWoK.js";import"./VFileInput-BC4yAygd.js";import"./VTextField-XoGTj1KG.js";import"./VChip-D_styETR.js";import"./VTable-DaLxa4FO.js";import"./VSpacer-DinPiXs9.js";/* empty css */import"./HtmlEditor-Bh4c689R.js";import"./VTextarea-wBlRMIv_.js";import"./contacts-BjghrPqZ.js";import"./VToolbar-CFZfqeOr.js";import"./VRow-ozg66L7j.js";import"./VSelect-C3RjAa45.js";import"./VMenu-gUG70-zD.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";import"./filter-C82FUCw_.js";import"./VDialog-BcTg7w6P.js";const L={__name:"ForwardEmailView",setup(s){const o=m(),r=i();return l.getEmailContent(o.query.mailbox,o.query.mailid,{context:"forward"}).then(t=>{r.value=t.data}),(t,c)=>(e(),p(a(n),{"original-email":r.value},null,8,["original-email"]))}};export{L as default};