modoboa 2.6.4__py3-none-any.whl → 2.7.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 (364) hide show
  1. modoboa/admin/api/v2/serializers.py +1 -0
  2. modoboa/admin/app_settings.py +12 -0
  3. modoboa/admin/{management/commands/subcommands/_mx.py → dns_checker.py} +41 -111
  4. modoboa/admin/jobs.py +86 -0
  5. modoboa/admin/management/commands/modo.py +0 -2
  6. modoboa/admin/tests/test_mailbox_operations.py +4 -4
  7. modoboa/admin/tests/test_mx.py +68 -56
  8. modoboa/amavis/jobs.py +11 -0
  9. modoboa/amavis/tests/test_jobs.py +18 -0
  10. modoboa/amavis/tests/test_viewsets.py +2 -3
  11. modoboa/autoconfig/templates/autoconfig/autoconfig.xml +2 -2
  12. modoboa/autoconfig/templates/autoconfig/autodiscover.xml +14 -0
  13. modoboa/autoconfig/tests.py +2 -1
  14. modoboa/autoconfig/views.py +11 -3
  15. modoboa/autoreply/models.py +4 -4
  16. modoboa/calendars/backends/caldav_.py +17 -13
  17. modoboa/calendars/jobs.py +7 -0
  18. modoboa/calendars/mocks.py +4 -1
  19. modoboa/calendars/serializers.py +14 -9
  20. modoboa/calendars/tests.py +10 -9
  21. modoboa/calendars/viewsets.py +3 -1
  22. modoboa/contacts/migrations/0008_addressbook_syncing.py +18 -0
  23. modoboa/contacts/models.py +1 -0
  24. modoboa/contacts/serializers.py +5 -2
  25. modoboa/contacts/tasks.py +9 -3
  26. modoboa/contacts/tests.py +32 -6
  27. modoboa/contacts/viewsets.py +7 -1
  28. modoboa/core/api/v2/serializers.py +0 -7
  29. modoboa/core/api/v2/tests.py +0 -10
  30. modoboa/core/app_settings.py +0 -22
  31. modoboa/core/commands/deploy.py +13 -0
  32. modoboa/core/commands/templates/cron_config.py.tpl +33 -0
  33. modoboa/core/commands/templates/settings.py.tpl +21 -0
  34. modoboa/core/jobs.py +34 -0
  35. modoboa/core/management/commands/load_initial_data.py +1 -1
  36. modoboa/core/password_hashers/base.py +4 -1
  37. modoboa/core/tests/test_core.py +0 -14
  38. modoboa/core/tests/test_jobs.py +40 -0
  39. modoboa/frontend_dist/assets/{AccountAliasForm-tLHotdIR.js → AccountAliasForm-DO6DwfjE.js} +1 -1
  40. modoboa/frontend_dist/assets/{AccountEditView-DnQIIg47.js → AccountEditView-CCuN9mGB.js} +1 -1
  41. modoboa/frontend_dist/assets/AccountLayout-Ge7fzuZg.js +1 -0
  42. modoboa/frontend_dist/assets/AccountPasswordSubForm-PkFPblkR.js +1 -0
  43. modoboa/frontend_dist/assets/AccountView-dgseekZ8.js +1 -0
  44. modoboa/frontend_dist/assets/AddressBook-DZWOHOJj.js +1 -0
  45. modoboa/frontend_dist/assets/AdminLayout-itB_mmH_.js +1 -0
  46. modoboa/frontend_dist/assets/AlarmsView-King6zb6.js +1 -0
  47. modoboa/frontend_dist/assets/{AliasEditView-n75NEN_s.js → AliasEditView-CTjrXYPf.js} +1 -1
  48. modoboa/frontend_dist/assets/AliasRecipientForm-CI7bXqVp.js +1 -0
  49. modoboa/frontend_dist/assets/{AliasView-DFIvPeIm.js → AliasView-BN13MNN_.js} +1 -1
  50. modoboa/frontend_dist/assets/AuditTrailView-C1jQwgoo.js +1 -0
  51. modoboa/frontend_dist/assets/CalendarView-juHVIHU5.css +1 -0
  52. modoboa/frontend_dist/assets/CalendarView-rRSzqxrH.js +1 -0
  53. modoboa/frontend_dist/assets/ChoiceField-DCr12shR.js +1 -0
  54. modoboa/frontend_dist/assets/ComposeEmailForm-BmtKwFb1.js +2 -0
  55. modoboa/frontend_dist/assets/ComposeEmailForm-CVNDl-Mq.css +1 -0
  56. modoboa/frontend_dist/assets/ComposeEmailView-JW22Phrb.js +1 -0
  57. modoboa/frontend_dist/assets/ConfirmDialog-CWpdwSQ6.js +1 -0
  58. modoboa/frontend_dist/assets/ConnectedLayout-BP8pO27H.js +1 -0
  59. modoboa/frontend_dist/assets/{ConnectedLayout-C6HNXWkp.css → ConnectedLayout-Ddpb_6yT.css} +1 -1
  60. modoboa/frontend_dist/assets/CreationForm-CzelJsVQ.js +1 -0
  61. modoboa/frontend_dist/assets/DashboardView-BBkBodVj.js +1 -0
  62. modoboa/frontend_dist/assets/{DomainAdminList-BjtfbhRj.js → DomainAdminList-DD7p3i6F.js} +1 -1
  63. modoboa/frontend_dist/assets/{DomainEditView-Cq5Ea4RW.js → DomainEditView-DoIoNYC4.js} +1 -1
  64. modoboa/frontend_dist/assets/{DomainTransportForm-DAXJGNLA.js → DomainTransportForm-CbiJF9z5.js} +1 -1
  65. modoboa/frontend_dist/assets/{DomainView-BfpK7U14.js → DomainView-BXvznFYz.js} +3 -3
  66. modoboa/frontend_dist/assets/DomainsView-ffYjiffp.js +1 -0
  67. modoboa/frontend_dist/assets/EmailField-KhhJYA4D.js +1 -0
  68. modoboa/frontend_dist/assets/EmailSchedulingForm-CQL5Vfdr.js +1 -0
  69. modoboa/frontend_dist/assets/EmailView-Bq2bHZBO.js +1 -0
  70. modoboa/frontend_dist/assets/EmptyLayout-NrTftp18.js +1 -0
  71. modoboa/frontend_dist/assets/FiltersView-SOQy0U_3.js +1 -0
  72. modoboa/frontend_dist/assets/ForwardEmailView-kEPDjWUw.js +1 -0
  73. modoboa/frontend_dist/assets/{HtmlEditor-D753fIAJ.js → HtmlEditor-CyBl5wj2.js} +15 -15
  74. modoboa/frontend_dist/assets/IdentitiesView-CZFf4oR9.js +1 -0
  75. modoboa/frontend_dist/assets/InformationView-CAtneAqM.js +1 -0
  76. modoboa/frontend_dist/assets/{LoadingData-Tm56XNwj.js → LoadingData-C2txD49L.js} +1 -1
  77. modoboa/frontend_dist/assets/{LoginCallbackView-DjCHUgz5.js → LoginCallbackView-DAvty3CI.js} +1 -1
  78. modoboa/frontend_dist/assets/{LoginView-D0r4XBEl.js → LoginView-DHYITkn4.js} +1 -1
  79. modoboa/frontend_dist/assets/MailboxView-BNg2v7mi.css +1 -0
  80. modoboa/frontend_dist/assets/MailboxView-DHg5A78D.js +5 -0
  81. modoboa/frontend_dist/assets/MenuItems-C9p70bSC.js +1 -0
  82. modoboa/frontend_dist/assets/{MessageView-BWh9BqzS.js → MessageView-CrrEJpNI.js} +1 -1
  83. modoboa/frontend_dist/assets/MessagesView-CyecRd4I.js +1 -0
  84. modoboa/frontend_dist/assets/MigrationsView-DXGKKz2h.js +1 -0
  85. modoboa/frontend_dist/assets/{ParametersForm-y02-GM0r.js → ParametersForm-DFKYkPAs.js} +1 -1
  86. modoboa/frontend_dist/assets/ParametersView-B1wT5oyt.js +1 -0
  87. modoboa/frontend_dist/assets/ParametersView-CfvVzKea.js +1 -0
  88. modoboa/frontend_dist/assets/ProviderEditView-De-8ggBp.js +1 -0
  89. modoboa/frontend_dist/assets/ProviderGeneralForm-DO-IpJMQ.js +1 -0
  90. modoboa/frontend_dist/assets/ProvidersView-Bhk7sCz4.js +1 -0
  91. modoboa/frontend_dist/assets/QuarantineLayout-C1YszNmP.js +1 -0
  92. modoboa/frontend_dist/assets/QuarantineView-cElD_rS-.js +1 -0
  93. modoboa/frontend_dist/assets/ReplyEmailView-BvuOZdLl.js +1 -0
  94. modoboa/frontend_dist/assets/ResourcesForm-FWxrmVwo.js +1 -0
  95. modoboa/frontend_dist/assets/SelfServiceLayout-JHRvfvQf.js +1 -0
  96. modoboa/frontend_dist/assets/SettingsView-SIsKAXtQ.css +1 -0
  97. modoboa/frontend_dist/assets/SettingsView-s2l2Xl1L.js +6 -0
  98. modoboa/frontend_dist/assets/StatisticsView-FiidWvad.js +1 -0
  99. modoboa/frontend_dist/assets/TimeSerieChart-CdqUHiO_.js +1 -0
  100. modoboa/frontend_dist/assets/TimeSerieChart-nLIFGI0y.css +1 -0
  101. modoboa/frontend_dist/assets/UserLayout-DyvI8duf.js +1 -0
  102. modoboa/frontend_dist/assets/{VAlert-CNys_LUS.js → VAlert-MDbeolOo.js} +1 -1
  103. modoboa/frontend_dist/assets/VApp-DM1KLQfQ.js +1 -0
  104. modoboa/frontend_dist/assets/VAutocomplete-C9NL5_uo.css +1 -0
  105. modoboa/frontend_dist/assets/VAutocomplete-CQsWYWNX.js +1 -0
  106. modoboa/frontend_dist/assets/VAvatar-CXV_FqpP.js +1 -0
  107. modoboa/frontend_dist/assets/VBadge-7tDx7aI3.js +1 -0
  108. modoboa/frontend_dist/assets/{VCard-BoH6kjPa.js → VCard-CBtX8JF-.js} +1 -1
  109. modoboa/frontend_dist/assets/VCheckbox-zY1MApOy.js +1 -0
  110. modoboa/frontend_dist/assets/{VCheckboxBtn-Ccl786Rg.js → VCheckboxBtn-B0mIT3E0.js} +1 -1
  111. modoboa/frontend_dist/assets/VColorPicker-BbCHvk6K.js +1 -0
  112. modoboa/frontend_dist/assets/{VColorPicker-B_lVDaYR.css → VColorPicker-C9m8L-6U.css} +1 -1
  113. modoboa/frontend_dist/assets/{VContainer-DKMcKasC.js → VContainer-Cn-vKB3s.js} +1 -1
  114. modoboa/frontend_dist/assets/VDataTable-CNT9KOSp.js +1 -0
  115. modoboa/frontend_dist/assets/VDataTableServer-_yn4Ry6U.js +1 -0
  116. modoboa/frontend_dist/assets/VDataTableVirtual-Csxh3Gp6.js +1 -0
  117. modoboa/frontend_dist/assets/VDatePicker-_OUDqShN.css +1 -0
  118. modoboa/frontend_dist/assets/VDatePicker-iFu13xIP.js +2 -0
  119. modoboa/frontend_dist/assets/VDialog-lKtBdqnp.js +1 -0
  120. modoboa/frontend_dist/assets/VExpansionPanels-CaIvk9iF.js +1 -0
  121. modoboa/frontend_dist/assets/VFileInput-C7J_qVmk.js +1 -0
  122. modoboa/frontend_dist/assets/VForm-fdQ5d-CH.js +1 -0
  123. modoboa/frontend_dist/assets/VInput-BwHvhzAe.js +1 -0
  124. modoboa/frontend_dist/assets/VMenu-BpmJf4X2.js +1 -0
  125. modoboa/frontend_dist/assets/VMenu-C5A_5Hs5.css +1 -0
  126. modoboa/frontend_dist/assets/VPicker-B7cB3kJg.css +1 -0
  127. modoboa/frontend_dist/assets/VPicker-BZho70wU.js +1 -0
  128. modoboa/frontend_dist/assets/VProgressCircular-DRw_-iNj.js +1 -0
  129. modoboa/frontend_dist/assets/VRadioGroup--eiP5xtJ.js +1 -0
  130. modoboa/frontend_dist/assets/{VRow-CuVZGqBj.js → VRow-83Qnr5iB.js} +1 -1
  131. modoboa/frontend_dist/assets/VSelect-BcmGFGif.js +1 -0
  132. modoboa/frontend_dist/assets/{VSelectionControl-uKY9Zull.js → VSelectionControl-Cqi1xt-q.js} +1 -1
  133. modoboa/frontend_dist/assets/VSheet-C3MaHhtw.js +1 -0
  134. modoboa/frontend_dist/assets/VSpacer-CuSkdJZL.js +1 -0
  135. modoboa/frontend_dist/assets/VSwitch-XumUl685.js +1 -0
  136. modoboa/frontend_dist/assets/{VTable-gDsAUSLX.js → VTable-f7wcr2AZ.js} +1 -1
  137. modoboa/frontend_dist/assets/VTabs-CDfdejXj.css +1 -0
  138. modoboa/frontend_dist/assets/VTabs-y4wNP4im.js +1 -0
  139. modoboa/frontend_dist/assets/VTextField-BPIvtrn4.js +1 -0
  140. modoboa/frontend_dist/assets/VTextField-DjbYGlzs.css +1 -0
  141. modoboa/frontend_dist/assets/VTextarea-B6bGYcC3.js +1 -0
  142. modoboa/frontend_dist/assets/VTextarea-f6vTjzFy.css +1 -0
  143. modoboa/frontend_dist/assets/VToolbar-BYDPtwf0.css +1 -0
  144. modoboa/frontend_dist/assets/VToolbar-CB6wwtYc.js +1 -0
  145. modoboa/frontend_dist/assets/VWindowItem-CDtLLEkg.js +1 -0
  146. modoboa/frontend_dist/assets/WebmailLayout-CQQAolnl.css +1 -0
  147. modoboa/frontend_dist/assets/WebmailLayout-tosQSHLS.js +1 -0
  148. modoboa/frontend_dist/assets/{accounts-DqbBlaLK.js → accounts-KUsk6LHW.js} +1 -1
  149. modoboa/frontend_dist/assets/{admin-D36m_nXq.js → admin-BW9cZW0P.js} +1 -1
  150. modoboa/frontend_dist/assets/{aliases-BtyF8GC8.js → aliases-Ge0hjIsH.js} +1 -1
  151. modoboa/frontend_dist/assets/{amavis-DySmsCJQ.js → amavis-BbFeFfsk.js} +1 -1
  152. modoboa/frontend_dist/assets/{amavis-B4QhM5Fa.js → amavis-DtuzP_CS.js} +1 -1
  153. modoboa/frontend_dist/assets/{contacts-Df8ptuMn.js → contacts-DMJlQTe0.js} +1 -1
  154. modoboa/frontend_dist/assets/{domains-CSxtTvUh.js → domains-Du64lcXT.js} +1 -1
  155. modoboa/frontend_dist/assets/domains.store-1U61jeCV.js +1 -0
  156. modoboa/frontend_dist/assets/events-BM3in65C.js +1 -0
  157. modoboa/frontend_dist/assets/filter-Dihm6o59.js +1 -0
  158. modoboa/frontend_dist/assets/importExport-HGcNGWOm.js +1 -0
  159. modoboa/frontend_dist/assets/{index-B9q1vO3K.css → index-B1EK3MQe.css} +1 -1
  160. modoboa/frontend_dist/assets/{index-Bp9Fb67E.js → index-Dv00bmw9.js} +1 -1
  161. modoboa/frontend_dist/assets/index-jui3edpn.js +1001 -0
  162. modoboa/frontend_dist/assets/{language.store-_-zrrEiS.js → language.store-OcfdXL_-.js} +1 -1
  163. modoboa/frontend_dist/assets/languages-CF8hxo7x.js +1 -0
  164. modoboa/frontend_dist/assets/{layout-CjSP_k58.js → layout-DOO7TRTJ.js} +1 -1
  165. modoboa/frontend_dist/assets/{layout.store-CF5WRevH.js → layout.store-C0g-piJn.js} +1 -1
  166. modoboa/frontend_dist/assets/{logos-95XYS6uH.js → logos-Dz2Gzei-.js} +1 -1
  167. modoboa/frontend_dist/assets/{logs-CyU_PIDh.js → logs-CLm32Weu.js} +1 -1
  168. modoboa/frontend_dist/assets/{parameters-BxAXBXU1.js → parameters-DMIAQ7cd.js} +1 -1
  169. modoboa/frontend_dist/assets/{parameters.store-CATOSoQZ.js → parameters.store-DLnFzCwV.js} +1 -1
  170. modoboa/frontend_dist/assets/{permissions-cSkGqV3M.js → permissions-CrpE0b4w.js} +1 -1
  171. modoboa/frontend_dist/assets/{ssrBoot-05WtbG6H.js → ssrBoot-B7cr7q9U.js} +1 -1
  172. modoboa/frontend_dist/assets/{tag-BmV84V2s.js → tag-WF93n81Q.js} +1 -1
  173. modoboa/frontend_dist/assets/{theme-myV4ekXo.js → theme-_0oOYChG.js} +1 -1
  174. modoboa/frontend_dist/assets/transports-CS61syt-.js +1 -0
  175. modoboa/frontend_dist/assets/webmail-CYDXU0DS.js +1 -0
  176. modoboa/frontend_dist/assets/webmail.store-BvHCQSjM.js +1 -0
  177. modoboa/frontend_dist/index.html +2 -2
  178. modoboa/imap_migration/api/v2/serializers.py +13 -0
  179. modoboa/imap_migration/models.py +3 -3
  180. modoboa/imap_migration/templates/imap_migration/offlineimap.conf +2 -2
  181. modoboa/imap_migration/tests.py +28 -0
  182. modoboa/lib/cryptutils.py +2 -2
  183. modoboa/lib/sysutils.py +1 -1
  184. modoboa/lib/tests/__init__.py +0 -1
  185. modoboa/locale/br/LC_MESSAGES/django.mo +0 -0
  186. modoboa/locale/br/LC_MESSAGES/django.po +753 -317
  187. modoboa/locale/cs/LC_MESSAGES/django.po +671 -309
  188. modoboa/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  189. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +801 -378
  190. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  191. modoboa/locale/de/LC_MESSAGES/django.po +1116 -455
  192. modoboa/locale/de_DE/LC_MESSAGES/django.mo +0 -0
  193. modoboa/locale/de_DE/LC_MESSAGES/django.po +745 -318
  194. modoboa/locale/el_GR/LC_MESSAGES/django.mo +0 -0
  195. modoboa/locale/el_GR/LC_MESSAGES/django.po +825 -393
  196. modoboa/locale/en/LC_MESSAGES/django.po +669 -309
  197. modoboa/locale/es/LC_MESSAGES/django.mo +0 -0
  198. modoboa/locale/es/LC_MESSAGES/django.po +810 -390
  199. modoboa/locale/es_MX/LC_MESSAGES/django.po +669 -309
  200. modoboa/locale/fi/LC_MESSAGES/django.mo +0 -0
  201. modoboa/locale/fi/LC_MESSAGES/django.po +756 -316
  202. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  203. modoboa/locale/fr/LC_MESSAGES/django.po +674 -313
  204. modoboa/locale/hu/LC_MESSAGES/django.po +669 -309
  205. modoboa/locale/it/LC_MESSAGES/django.mo +0 -0
  206. modoboa/locale/it/LC_MESSAGES/django.po +807 -380
  207. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  208. modoboa/locale/ja_JP/LC_MESSAGES/django.po +951 -419
  209. modoboa/locale/ka/LC_MESSAGES/django.po +669 -309
  210. modoboa/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  211. modoboa/locale/nl_NL/LC_MESSAGES/django.po +807 -387
  212. modoboa/locale/no/LC_MESSAGES/django.po +669 -309
  213. modoboa/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  214. modoboa/locale/pl_PL/LC_MESSAGES/django.po +826 -396
  215. modoboa/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  216. modoboa/locale/pt_BR/LC_MESSAGES/django.po +830 -392
  217. modoboa/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  218. modoboa/locale/pt_PT/LC_MESSAGES/django.po +788 -371
  219. modoboa/locale/ro_RO/LC_MESSAGES/django.mo +0 -0
  220. modoboa/locale/ro_RO/LC_MESSAGES/django.po +763 -316
  221. modoboa/locale/ru/LC_MESSAGES/django.mo +0 -0
  222. modoboa/locale/ru/LC_MESSAGES/django.po +1336 -1046
  223. modoboa/locale/si/LC_MESSAGES/django.po +669 -309
  224. modoboa/locale/sk/LC_MESSAGES/django.po +671 -309
  225. modoboa/locale/sk_SK/LC_MESSAGES/django.po +671 -309
  226. modoboa/locale/sl_SI/LC_MESSAGES/django.po +695 -315
  227. modoboa/locale/sv/LC_MESSAGES/django.mo +0 -0
  228. modoboa/locale/sv/LC_MESSAGES/django.po +819 -387
  229. modoboa/locale/tr/LC_MESSAGES/django.mo +0 -0
  230. modoboa/locale/tr/LC_MESSAGES/django.po +737 -315
  231. modoboa/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  232. modoboa/locale/tr_TR/LC_MESSAGES/django.po +711 -310
  233. modoboa/locale/uk/LC_MESSAGES/django.po +671 -309
  234. modoboa/locale/zh/LC_MESSAGES/django.po +668 -309
  235. modoboa/locale/zh_CN/LC_MESSAGES/django.po +668 -309
  236. modoboa/locale/zh_TW/LC_MESSAGES/django.mo +0 -0
  237. modoboa/locale/zh_TW/LC_MESSAGES/django.po +747 -316
  238. modoboa/maillog/jobs.py +11 -0
  239. modoboa/maillog/tests/test_views.py +5 -4
  240. modoboa/parameters/api/v2/tests.py +1 -1
  241. modoboa/policyd/management/commands/policy_daemon.py +5 -1
  242. modoboa/policyd/tests.py +4 -2
  243. modoboa/rspamd/tests.py +20 -0
  244. modoboa/templates/registration/twofactor_code_verify.html +1 -1
  245. modoboa/webmail/app_settings.py +37 -0
  246. modoboa/webmail/constants.py +21 -1
  247. modoboa/webmail/factories.py +19 -0
  248. modoboa/webmail/jobs.py +27 -0
  249. modoboa/webmail/lib/__init__.py +0 -2
  250. modoboa/webmail/lib/imapemail.py +9 -11
  251. modoboa/webmail/lib/imapheader.py +25 -13
  252. modoboa/webmail/lib/imaputils.py +51 -13
  253. modoboa/webmail/lib/sendmail.py +88 -105
  254. modoboa/webmail/lib/utils.py +109 -0
  255. modoboa/webmail/migrations/0001_initial.py +90 -0
  256. modoboa/webmail/migrations/__init__.py +0 -0
  257. modoboa/webmail/mocks.py +12 -3
  258. modoboa/webmail/models.py +102 -0
  259. modoboa/webmail/serializers.py +84 -4
  260. modoboa/webmail/tests/data.py +21 -0
  261. modoboa/webmail/tests/test_lib_imaputils.py +33 -0
  262. modoboa/webmail/tests/test_viewsets.py +108 -0
  263. modoboa/webmail/urls.py +5 -0
  264. modoboa/webmail/viewsets.py +39 -9
  265. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/METADATA +16 -13
  266. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/RECORD +271 -254
  267. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/WHEEL +1 -1
  268. modoboa/admin/management/commands/handle_mailbox_operations.py +0 -103
  269. modoboa/core/management/commands/cleanlogs.py +0 -53
  270. modoboa/frontend_dist/assets/AccountLayout-B2HptJzY.js +0 -1
  271. modoboa/frontend_dist/assets/AccountPasswordSubForm-DpADntAL.js +0 -1
  272. modoboa/frontend_dist/assets/AccountView-CJBGh9Oe.js +0 -1
  273. modoboa/frontend_dist/assets/AddressBook-CrFqzlzZ.js +0 -1
  274. modoboa/frontend_dist/assets/AdminLayout-BbCt7YxX.js +0 -1
  275. modoboa/frontend_dist/assets/AlarmsView-CIlt_IKQ.js +0 -1
  276. modoboa/frontend_dist/assets/AliasRecipientForm-jjj5yJJw.js +0 -1
  277. modoboa/frontend_dist/assets/AuditTrailView-sWnED3E9.js +0 -1
  278. modoboa/frontend_dist/assets/CalendarView-DSCBIvef.js +0 -1
  279. modoboa/frontend_dist/assets/ChoiceField-RDT6XcnX.js +0 -1
  280. modoboa/frontend_dist/assets/ComposeEmailForm-D3yUbBJX.css +0 -1
  281. modoboa/frontend_dist/assets/ComposeEmailForm-G3sXQAwI.js +0 -1
  282. modoboa/frontend_dist/assets/ComposeEmailView-Ce1CtFjD.js +0 -1
  283. modoboa/frontend_dist/assets/ConfirmDialog-Du7aqKbR.js +0 -1
  284. modoboa/frontend_dist/assets/ConnectedLayout-BHWaBAzH.js +0 -1
  285. modoboa/frontend_dist/assets/CreationForm-CjtILq0_.js +0 -1
  286. modoboa/frontend_dist/assets/DashboardView-DFNwusDZ.js +0 -1
  287. modoboa/frontend_dist/assets/DomainsView-CYxLy-3Y.js +0 -1
  288. modoboa/frontend_dist/assets/EmailField-DmPc4pyP.js +0 -1
  289. modoboa/frontend_dist/assets/EmailView-BE3vYZtJ.js +0 -1
  290. modoboa/frontend_dist/assets/EmptyLayout-DMwKNHfI.js +0 -1
  291. modoboa/frontend_dist/assets/FiltersView-Dps3_fAh.js +0 -1
  292. modoboa/frontend_dist/assets/ForwardEmailView-C0I00eXf.js +0 -1
  293. modoboa/frontend_dist/assets/IdentitiesView-CoGBVhZx.js +0 -1
  294. modoboa/frontend_dist/assets/InformationView-eB2ayeLD.js +0 -1
  295. modoboa/frontend_dist/assets/MailboxView-DIVABvk5.css +0 -1
  296. modoboa/frontend_dist/assets/MailboxView-DNokO2WZ.js +0 -5
  297. modoboa/frontend_dist/assets/MenuItems-dl38msRA.js +0 -1
  298. modoboa/frontend_dist/assets/MessagesView-BZ7NUOwo.js +0 -1
  299. modoboa/frontend_dist/assets/MigrationsView-DcOVgmcH.js +0 -1
  300. modoboa/frontend_dist/assets/ParametersView-B6abt-LH.js +0 -1
  301. modoboa/frontend_dist/assets/ParametersView-v0YS6WU4.js +0 -1
  302. modoboa/frontend_dist/assets/ProviderEditView-BaL9mKxJ.js +0 -1
  303. modoboa/frontend_dist/assets/ProviderGeneralForm-eoHMDO5v.js +0 -1
  304. modoboa/frontend_dist/assets/ProvidersView-Zu-G35u7.js +0 -1
  305. modoboa/frontend_dist/assets/QuarantineLayout-BHiiksnP.js +0 -1
  306. modoboa/frontend_dist/assets/QuarantineView-BOXSobRz.js +0 -1
  307. modoboa/frontend_dist/assets/ReplyEmailView-JmSiNWPy.js +0 -1
  308. modoboa/frontend_dist/assets/ResourcesForm-D0YBapCG.js +0 -1
  309. modoboa/frontend_dist/assets/SelfServiceLayout-DUmQzUDk.js +0 -1
  310. modoboa/frontend_dist/assets/SettingsView-DIvKGRBY.css +0 -1
  311. modoboa/frontend_dist/assets/SettingsView-DMuaKagM.js +0 -6
  312. modoboa/frontend_dist/assets/StatisticsView-CyY_CNcI.js +0 -1
  313. modoboa/frontend_dist/assets/TimeSerieChart-BTDBH33K.js +0 -1
  314. modoboa/frontend_dist/assets/TimeSerieChart-C3XHmlRd.css +0 -1
  315. modoboa/frontend_dist/assets/UserLayout-DwxcQr4L.js +0 -1
  316. modoboa/frontend_dist/assets/VApp-B0vRc3-6.js +0 -1
  317. modoboa/frontend_dist/assets/VAutocomplete-Huaz_-hf.js +0 -1
  318. modoboa/frontend_dist/assets/VAutocomplete-hzGuLlUI.css +0 -1
  319. modoboa/frontend_dist/assets/VAvatar-JdJfoK0C.js +0 -1
  320. modoboa/frontend_dist/assets/VBadge-Cg5iu5LG.js +0 -1
  321. modoboa/frontend_dist/assets/VCheckbox-CCLOJFKF.js +0 -1
  322. modoboa/frontend_dist/assets/VColorPicker-452uc3tY.js +0 -1
  323. modoboa/frontend_dist/assets/VDataTable-BkLLfcQK.js +0 -1
  324. modoboa/frontend_dist/assets/VDataTableServer-B_6fWBA3.js +0 -1
  325. modoboa/frontend_dist/assets/VDataTableVirtual-Ike7oqcC.js +0 -1
  326. modoboa/frontend_dist/assets/VDialog-DIUeAIpw.js +0 -1
  327. modoboa/frontend_dist/assets/VExpansionPanels-BeMgiS7A.js +0 -1
  328. modoboa/frontend_dist/assets/VFileInput-Dvj95FL5.js +0 -1
  329. modoboa/frontend_dist/assets/VForm-DkphQD3e.js +0 -1
  330. modoboa/frontend_dist/assets/VInput-CbqehdOu.js +0 -1
  331. modoboa/frontend_dist/assets/VMenu-B6SCtOwT.js +0 -1
  332. modoboa/frontend_dist/assets/VMenu-BEipA1lw.css +0 -1
  333. modoboa/frontend_dist/assets/VPicker-BUx70Wjg.js +0 -1
  334. modoboa/frontend_dist/assets/VPicker-ClSXs6kv.css +0 -1
  335. modoboa/frontend_dist/assets/VProgressCircular-DTDGzl2O.js +0 -1
  336. modoboa/frontend_dist/assets/VRadioGroup-CS9ULZ1c.js +0 -1
  337. modoboa/frontend_dist/assets/VSelect-D5IXDPEX.js +0 -1
  338. modoboa/frontend_dist/assets/VSheet-HeHw6g5_.js +0 -1
  339. modoboa/frontend_dist/assets/VSpacer-BUxSSJbH.js +0 -1
  340. modoboa/frontend_dist/assets/VSwitch-Dh_dserW.js +0 -1
  341. modoboa/frontend_dist/assets/VTabs-5XSICLQP.js +0 -1
  342. modoboa/frontend_dist/assets/VTabs-NzpINroH.css +0 -1
  343. modoboa/frontend_dist/assets/VTextField-Cow3HZvI.css +0 -1
  344. modoboa/frontend_dist/assets/VTextField-QXQFhKxm.js +0 -1
  345. modoboa/frontend_dist/assets/VTextarea-Bdy4UKmV.js +0 -1
  346. modoboa/frontend_dist/assets/VTextarea-DyGjqrlm.css +0 -1
  347. modoboa/frontend_dist/assets/VToolbar-CB2GrZpA.css +0 -1
  348. modoboa/frontend_dist/assets/VToolbar-CyrYSqJZ.js +0 -1
  349. modoboa/frontend_dist/assets/VWindowItem-kZpArwK1.js +0 -1
  350. modoboa/frontend_dist/assets/WebmailLayout-BzW0LWYp.css +0 -1
  351. modoboa/frontend_dist/assets/WebmailLayout-CNUHODnw.js +0 -1
  352. modoboa/frontend_dist/assets/domains.store-D4ZqCQ-O.js +0 -1
  353. modoboa/frontend_dist/assets/filter-DHKXX97M.js +0 -1
  354. modoboa/frontend_dist/assets/global.store-DYMmGKpn.js +0 -1
  355. modoboa/frontend_dist/assets/importExport-C-adpHJX.js +0 -1
  356. modoboa/frontend_dist/assets/index-B1bntsLR.js +0 -995
  357. modoboa/frontend_dist/assets/languages-CxjoT69j.js +0 -1
  358. modoboa/frontend_dist/assets/transports-ChdHV5hX.js +0 -1
  359. modoboa/frontend_dist/assets/webmail-B7MNMkv_.js +0 -1
  360. modoboa/frontend_dist/assets/webmail.store-Cm-h6hhE.js +0 -1
  361. {modoboa-2.6.4.data → modoboa-2.7.0.data}/scripts/modoboa-admin.py +0 -0
  362. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/entry_points.txt +0 -0
  363. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/licenses/LICENSE +0 -0
  364. {modoboa-2.6.4.dist-info → modoboa-2.7.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1 @@
1
+ .v-event-draggable[data-v-3431ff62]{padding-left:6px}.v-event-timed[data-v-3431ff62]{user-select:none;-webkit-user-select:none}.v-event-drag-bottom[data-v-3431ff62]{position:absolute;left:0;right:0;bottom:4px;height:4px;cursor:ns-resize}.v-event-drag-bottom[data-v-3431ff62]:after{display:none;position:absolute;left:50%;height:4px;border-top:1px solid white;border-bottom:1px solid white;width:16px;margin-left:-8px;opacity:.8;content:""}.v-event-drag-bottom[data-v-3431ff62]:hover:after{display:block}.v-calendar-category .v-calendar-category__column,.v-calendar-category .v-calendar-category__column-header{border-right:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-category .v-calendar-daily__head,.v-calendar-category .v-calendar-daily__intervals-head,.v-calendar-category .v-calendar-daily__intervals-body{background:rgb(var(--v-theme-surface));color:rgb(var(--v-theme-on-surface))}.v-calendar-category{overflow:auto;position:relative}.v-calendar-category .v-calendar-category__category{text-align:center}.v-calendar-category .v-calendar-daily__day-container{width:min-content}.v-calendar-category .v-calendar-daily__day-container .v-calendar-category__columns{position:absolute;height:100%;width:100%;top:0}.v-calendar-category .v-calendar-daily__day-body{display:flex;flex:1;width:100%;height:100%}.v-calendar-category .v-calendar-daily__head{flex-direction:row;width:min-content;min-width:100%;position:sticky;top:0;z-index:2}.v-calendar-category .v-calendar-daily_head-day{width:auto;position:unset}.v-calendar-category .v-calendar-daily__intervals-head{position:sticky;left:0;top:0;z-index:2}.v-calendar-category .v-calendar-daily_head-weekday{position:sticky;left:50%;width:50px}.v-calendar-category .v-calendar-daily_head-day-label{width:56px;position:sticky;left:50%}.v-calendar-category .v-calendar-daily__day{min-width:200px}.v-calendar-category .v-calendar-daily__intervals-body{position:sticky;left:0;z-index:1}.v-calendar-category .v-calendar-daily__interval:last-of-type:after{display:none}.v-calendar-category .v-calendar-daily__body{overflow:visible}.v-calendar-category .v-calendar-daily__body .v-calendar-daily__scroll-area{overflow-y:visible;flex:none}.v-calendar-category .v-calendar-daily__pane{overflow-y:visible}.v-calendar-category .v-calendar-category__columns{display:flex;width:min-content;min-width:100%}.v-calendar-category .v-calendar-category__columns .v-calendar-category__column,.v-calendar-category .v-calendar-category__columns .v-calendar-category__column-header{flex:1 1 auto;width:0;position:relative}.v-calendar-category .v-calendar-category__columns .v-calendar-category__column-header{min-width:200px}.v-calendar-daily{background-color:rgb(var(--v-theme-surface));color:rgb(var(--v-theme-on-surface));border-left:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid;border-top:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-daily .v-calendar-daily__intervals-head{border-right:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-daily .v-calendar-daily__intervals-head:after{background:rgba(var(--v-border-color),var(--v-border-opacity));background:linear-gradient(90deg,transparent,rgba(var(--v-border-color),var(--v-border-opacity)))}.v-calendar-daily .v-calendar-daily_head-day{border-right:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid;border-bottom:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-daily .v-calendar-daily_head-day.v-past .v-calendar-daily_head-weekday,.v-calendar-daily .v-calendar-daily_head-day.v-past .v-calendar-daily_head-day-label{color:rgb(var(--v-theme-on-surface))}.v-calendar-daily .v-calendar-daily__intervals-body{border-right:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-daily .v-calendar-daily__intervals-body .v-calendar-daily__interval-text{color:rgb(var(--v-theme-on-surface))}.v-calendar-daily .v-calendar-daily__day{border-right:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid;border-bottom:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-daily .v-calendar-daily__day-interval{border-top:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-daily .v-calendar-daily__day-interval:first-child{border-top:none!important}.v-calendar-daily .v-calendar-daily__interval:after{border-top:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-daily{display:flex;flex-direction:column;overflow:hidden;height:100%}.v-calendar-daily__head{flex:none;display:flex}.v-calendar-daily__intervals-head{flex:none;position:relative}.v-calendar-daily__intervals-head:after{position:absolute;bottom:0;height:1px;left:0;right:0;content:""}.v-calendar-daily_head-day{flex:1 1 auto;width:0;position:relative}.v-calendar-daily_head-weekday{-webkit-user-select:none;user-select:none;padding:3px 0 0;font-size:11px;text-align:center;text-transform:uppercase}.v-calendar-daily_head-day-label{-webkit-user-select:none;user-select:none;padding:0 0 3px;cursor:pointer;text-align:center}.v-calendar-daily__body{flex:1 1 60%;overflow:hidden;display:flex;position:relative;flex-direction:column}.v-calendar-daily__scroll-area{overflow-y:scroll;flex:1 1 auto;display:flex;align-items:flex-start}.v-calendar-daily__pane{width:100%;overflow-y:hidden;flex:none;display:flex;align-items:flex-start}.v-calendar-daily__day-container{display:flex;flex:1;width:100%;height:100%}.v-calendar-daily__intervals-body{flex:none;-webkit-user-select:none;user-select:none}.v-calendar-daily__interval{text-align:right;padding-right:8px;border-bottom:none;position:relative}.v-calendar-daily__interval:after{width:8px;position:absolute;height:1px;display:block;content:"";right:0;bottom:-1px}.v-calendar-daily__interval-text{display:block;position:relative;top:-6px;font-size:10px;padding-right:4px}.v-calendar-daily__day{flex:1;width:0;position:relative}.v-calendar-weekly{background-color:rgb(var(--v-theme-surface));color:rgb(var(--v-theme-on-surface));border-top:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid;border-left:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-weekly .v-calendar-weekly__head-weekday{border-right:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-weekly .v-calendar-weekly__head-weekday.v-past{color:rgb(var(--v-theme-on-surface))}.v-calendar-weekly .v-calendar-weekly__head-weekday.v-outside{background-color:rgb(var(--v-theme-surface-light));color:rgb(var(--v-theme-on-surface-light))}.v-calendar-weekly .v-calendar-weekly__head-weeknumber{background-color:rgb(var(--v-theme-surface));color:rgb(var(--v-theme-on-surface));border-right:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-weekly .v-calendar-weekly__day{border-right:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid;border-bottom:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-weekly .v-calendar-weekly__day.v-outside{background-color:rgb(var(--v-theme-surface-light));color:rgb(var(--v-theme-on-surface-light))}.v-calendar-weekly .v-calendar-weekly__weeknumber{background-color:rgb(var(--v-theme-surface));color:rgb(var(--v-theme-on-surface));border-right:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid;border-bottom:rgba(var(--v-border-color),var(--v-border-opacity)) 1px solid}.v-calendar-weekly{width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.v-calendar-weekly__head{display:flex;-webkit-user-select:none;user-select:none}.v-calendar-weekly__head-weekday{flex:1 0 20px;-webkit-user-select:none;user-select:none;padding:0 4px;font-size:11px;overflow:hidden;text-align:center;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.v-calendar-weekly__head-weeknumber{position:relative;flex:0 0 24px}.v-calendar-weekly__week{display:flex;flex:1;height:unset;min-height:0}.v-calendar-weekly__weeknumber{display:flex;flex:0 0 24px;height:unset;min-height:0;padding-top:14.5px;text-align:center}.v-calendar-weekly__weeknumber>small{width:100%!important}.v-calendar-weekly__day{flex:1;width:0;overflow:hidden;-webkit-user-select:none;user-select:none;position:relative;padding:0;min-width:0}.v-calendar-weekly__day.v-present .v-calendar-weekly__day-month{color:currentColor}.v-calendar-weekly__day-label{text-decoration:none;-webkit-user-select:none;user-select:none;cursor:pointer;box-shadow:none;text-align:center;margin:4px 0 0}.v-calendar-weekly__day-label .v-icon-btn{font-size:12px}.v-calendar-weekly__day-month{position:absolute;text-decoration:none;-webkit-user-select:none;user-select:none;box-shadow:none;top:0;left:36px;height:32px;line-height:32px}.v-icon-btn{border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-icon-btn--border{border-width:thin;box-shadow:none}.v-icon-btn{border-radius:50%}.v-icon-btn:hover>.v-icon-btn__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-icon-btn:focus-visible>.v-icon-btn__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-icon-btn:focus>.v-icon-btn__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-icon-btn--active>.v-icon-btn__overlay,.v-icon-btn[aria-haspopup=menu][aria-expanded=true]>.v-icon-btn__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-icon-btn--active:hover>.v-icon-btn__overlay,.v-icon-btn[aria-haspopup=menu][aria-expanded=true]:hover>.v-icon-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-icon-btn--active:focus-visible>.v-icon-btn__overlay,.v-icon-btn[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-icon-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-icon-btn--active:focus>.v-icon-btn__overlay,.v-icon-btn[aria-haspopup=menu][aria-expanded=true]:focus>.v-icon-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-icon-btn--variant-plain,.v-icon-btn--variant-outlined,.v-icon-btn--variant-text,.v-icon-btn--variant-tonal{background:transparent;color:inherit}.v-icon-btn--variant-plain{opacity:.62}.v-icon-btn--variant-plain:focus,.v-icon-btn--variant-plain:hover{opacity:1}.v-icon-btn--variant-plain .v-icon-btn__overlay{display:none}.v-icon-btn--variant-elevated,.v-icon-btn--variant-flat{background:rgb(var(--v-theme-surface));color:inherit}.v-icon-btn--variant-elevated{box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-icon-btn--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-icon-btn--variant-outlined{border:thin solid currentColor}.v-icon-btn--variant-text .v-icon-btn__overlay{background:currentColor}.v-icon-btn--variant-tonal .v-icon-btn__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-icon-btn .v-icon-btn__underlay{position:absolute}.v-icon-btn{align-items:center;cursor:pointer;display:inline-flex;flex:none;font-size:.875rem;font-weight:500;line-height:normal;height:var(--v-icon-btn-height);justify-content:center;outline:none;position:relative;transition-property:width,height,transform;transition:.2s cubic-bezier(.4,0,.2,1);vertical-align:middle;width:var(--v-icon-btn-width)}@supports selector(:focus-visible){.v-icon-btn:after{pointer-events:none;border:2px solid currentColor;border-radius:inherit;opacity:0;transition:opacity .2s ease-in-out}.v-icon-btn:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-icon-btn:focus-visible:after{opacity:calc(.25 * var(--v-theme-overlay-multiplier))}}.v-icon-btn--disabled,.v-icon-btn--loading,.v-icon-btn--readonly{pointer-events:none}.v-icon-btn--disabled{opacity:.26}.v-icon-btn--start{margin-inline-end:8px}.v-icon-btn--end{margin-inline-start:8px}.v-icon-btn__content{align-items:center;justify-content:center;display:inline-flex;transition:inherit;transition-property:transform;transform:rotate(var(--v-icon-btn-rotate, 0deg))}.v-icon-btn--loading .v-icon-btn__content{opacity:0}.v-icon-btn__content .v-icon{transition:.2s cubic-bezier(.4,0,.2,1);transition-property:opacity,font-size,width,height;transform-origin:center}.v-icon-btn__loader{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.v-icon-btn__overlay,.v-icon-btn__underlay{border-radius:inherit;pointer-events:none}.v-icon-btn__overlay,.v-icon-btn__underlay{position:absolute;top:0;left:0;width:100%;height:100%}.v-icon-btn__overlay{background-color:currentColor;opacity:0;transition:opacity .2s ease-in-out}.v-icon-btn--active:not(:hover) .v-icon-btn__overlay{--v-activated-opacity: 0}@media(forced-colors:active){.v-icon-btn:focus-visible{outline:2px solid;outline-offset:2px}.v-icon-btn:not(.v-icon-btn--active):hover,.v-icon-btn:not(.v-icon-btn--active):focus{color:highlight!important}.v-icon-btn--active:not(.v-icon-btn--disabled),.v-icon-btn--active:not(.v-icon-btn--disabled)[class*=bg-]{outline-color:canvastext!important;background:highlight!important;color:highlighttext!important}.v-icon-btn--disabled{color:graytext}.v-icon-btn__overlay,.v-icon-btn__underlay,.v-icon-btn .v-icon{forced-color-adjust:preserve-parent-color}}.v-calendar-events .v-event-more{background-color:rgb(var(--v-theme-surface));color:rgb(var(--v-theme-on-surface))}.v-calendar-events .v-event-more.v-outside{background-color:rgb(var(--v-theme-surface-light));color:rgb(var(--v-theme-on-surface-light))}.v-calendar .v-event{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;cursor:pointer;line-height:20px;margin-right:-1px;z-index:1;border-radius:4px}.v-calendar .v-event-more{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;cursor:pointer;font-weight:700;z-index:1;position:relative}.v-calendar .v-event-timed-container{position:absolute;top:0;bottom:0;left:0;right:0;margin-right:10px;pointer-events:none}.v-calendar .v-event-timed{position:absolute;white-space:nowrap;text-overflow:ellipsis;font-size:12px;cursor:pointer;border:1px solid rgb(var(--v-theme-surface));border-radius:4px;pointer-events:all}.v-calendar .v-event-summary{display:inline-block;overflow:hidden;text-overflow:ellipsis;width:100%;white-space:nowrap}.v-calendar.v-calendar-events .v-calendar-weekly__head-weekday{margin-right:-1px}.v-calendar.v-calendar-events .v-calendar-weekly__day{overflow:visible;margin-right:-1px}
@@ -0,0 +1 @@
1
+ import{E as Q,i as $,c as me,o as ee,w as S,a as c,e as _,t as P,q as He,m as xe,F as Ot,v as bn,l as Z,b as et,p as tt,d as nt,j as R,f as B,n as Se,A as Ue,D as ye,J as Wt,K as at,P as wn,af as Cn,a2 as ht,z as pt,ai as ge,ag as _n,x as te,ax as Sn,ay as Dn,az as Tn,ah as xn,aA as kt,M as Xe,a1 as In,an as At,aB as Vn,a0 as En,_ as Mn,g as Fn,aC as Nn}from"./index-jui3edpn.js";import{c as Be,V as Pe,b as Le,a as ze}from"./VCard-CBtX8JF-.js";import{V as rt,r as De}from"./VForm-fdQ5d-CH.js";import{a as ct}from"./VSelect-BcmGFGif.js";import{V as Dt}from"./VCheckbox-zY1MApOy.js";import{V as $e}from"./VSpacer-CuSkdJZL.js";import{V as re,c as pe,x as $n,l as Rn,n as On,y as Wn,z as An,o as Un,p as Hn,A as Bn,g as Pn,e as Ln,R as Tt}from"./VAvatar-CXV_FqpP.js";import{V as zn}from"./VTable-f7wcr2AZ.js";import{V as Ut,a as ft}from"./VRow-83Qnr5iB.js";import{V as Je}from"./VTextField-BPIvtrn4.js";import{V as Yn}from"./VColorPicker-BbCHvk6K.js";import{V as vt,u as jn,m as qn}from"./VAlert-MDbeolOo.js";import{_ as Zn}from"./ConfirmDialog-CWpdwSQ6.js";import{V as Jn}from"./VTextarea-B6bGYcC3.js";import{V as Gn}from"./VFileInput-C7J_qVmk.js";import{V as Xn,a as Kn}from"./VToolbar-CB6wwtYc.js";import{V as Qn,c as ea}from"./VProgressCircular-DRw_-iNj.js";import{u as Ye,c as ta,b as na}from"./tag-WF93n81Q.js";import{g as de}from"./events-BM3in65C.js";import{g as aa,V as ra,a as la,b as it,c as dt}from"./VMenu-BpmJf4X2.js";import{V as Oe}from"./VDialog-lKtBdqnp.js";import{u as oa}from"./layout.store-C0g-piJn.js";import"./VInput-BwHvhzAe.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";/* empty css */import"./colors-DoZdCu1D.js";import"./VPicker-BZho70wU.js";import"./VSheet-C3MaHhtw.js";import"./ssrBoot-B7cr7q9U.js";const ae={getUserCalendars(){return Q.get("/user-calendars/")},getUserCalendar(e){return Q.get(`/user-calendars/${e}/`)},createUserCalendar(e){return Q.post("/user-calendars/",e)},updateUserCalendar(e,t){return Q.put(`/user-calendars/${e}/`,t)},deleteUserCalendar(e){return Q.delete(`/user-calendars/${e}/`)},getAccessRules(e){return Q.get("/accessrules/")},createAccessRule(e){return Q.post("/accessrules/",e)},updateAccessRule(e,t){return Q.put(`/accessrules/${e}/`,t)},deleteAccessRule(e){return Q.delete(`/accessrules/${e}/`)},getUserCalendarEvents(e,t){return Q.get(`/user-calendars/${e}/events/`,{params:t})},getUserEvent(e,t){return Q.get(`/user-calendars/${e}/events/${t}/`)},createUserEvent(e,t){return Q.post(`/user-calendars/${e}/events/`,t)},patchUserEvent(e,t,n){return Q.patch(`/user-calendars/${e}/events/${t}/`,n)},importUserEvents(e,t){return Q.post(`/user-calendars/${e}/events/import_from_file/`,t)},deleteUserEvent(e,t){return Q.delete(`/user-calendars/${e}/events/${t}/`)},getAttendees(){return Q.get("/attendees/")}},sa="mailboxes",ua={getAll(){return Q.get(`${sa}/`)}},ia={class:"headline"},da={class:"d-flex"},ca={__name:"CalendarAccessRulesForm",props:{calendarPk:{type:Number,default:0}},emits:["close"],setup(e,{emit:t}){const n=e,a=t,r=$([]),u=$([]),l=$({}),f=$({});ae.getAccessRules(n.calendarPk).then(y=>{r.value=y.data,r.value.length||(r.value=[])}),ua.getAll().then(y=>{u.value=y.data});async function s(){l.value.pk?ae.updateAccessRule(l.value.pk,l.value).then(()=>{r.value.filter((y,C)=>{y.pk===l.value.pk&&(r.value[C]=l.value)}),v()},D):(l.value.calendar=n.calendarPk,ae.createAccessRule(l.value).then(y=>{r.value.push(y.data),v()},D))}function v(){l.value={},f.value={}}function D(y){f.value=y.data}function b(y){l.value=JSON.parse(JSON.stringify(y))}function M(y){ae.deleteAccessRule(y.pk).then(()=>{r.value=r.value.filter(C=>C.pk!==y.pk)})}function O(){f.value={},a("close")}return(y,C)=>(ee(),me(ze,null,{default:S(()=>[c(Be,null,{default:S(()=>[_("span",ia,P(y.$gettext("Calendar sharing")),1)]),_:1}),c(Pe,null,{default:S(()=>[c(rt,{ref:"formRef",onSubmit:He(s,["prevent"])},{default:S(()=>[_("div",da,[c(ct,{modelValue:l.value.mailbox,"onUpdate:modelValue":C[0]||(C[0]=g=>l.value.mailbox=g),label:y.$gettext("Full address"),"form-errors":f.value.mailbox,items:u.value,"item-title":"full_address","return-object":"",variant:"outlined",density:"compact"},null,8,["modelValue","label","form-errors","items"]),c(Dt,{modelValue:l.value.read,"onUpdate:modelValue":C[1]||(C[1]=g=>l.value.read=g),label:y.$gettext("Read"),class:"ml-4"},null,8,["modelValue","label"]),c(Dt,{modelValue:l.value.write,"onUpdate:modelValue":C[2]||(C[2]=g=>l.value.write=g),label:y.$gettext("Write"),class:"ml-4"},null,8,["modelValue","label"]),c($e),c(re,{color:"primary",icon:"mdi-content-save-outline",type:"submit",size:"small"})])]),_:1},512),C[4]||(C[4]=_("br",null,null,-1)),c(zn,null,{default:S(()=>[_("thead",null,[_("tr",null,[_("th",null,P(y.$gettext("Account")),1),_("th",null,P(y.$gettext("Read")),1),_("th",null,P(y.$gettext("Write")),1),C[3]||(C[3]=_("th",null,null,-1))])]),_("tbody",null,[(ee(!0),xe(Ot,null,bn(r.value,g=>(ee(),xe("tr",{key:g.pk},[_("td",null,P(g.mailbox.full_address),1),_("td",null,[c(pe,{icon:g.read?"mdi-check":"mdi-close"},null,8,["icon"])]),_("td",null,[c(pe,{icon:g.write?"mdi-check":"mdi-close"},null,8,["icon"])]),_("td",null,[c(re,{icon:"mdi-pencil",size:"x-small",variant:"flat",onClick:h=>b(g)},null,8,["onClick"]),c(re,{icon:"mdi-trash-can",size:"x-small",variant:"flat",onClick:h=>M(g)},null,8,["onClick"])])]))),128))])]),_:1})]),_:1}),c(Le,null,{default:S(()=>[c($e),c(re,{onClick:O},{default:S(()=>[Z(P(y.$gettext("Close")),1)]),_:1})]),_:1})]),_:1}))}},fa={key:0,class:"headline"},va={key:1,class:"modal-title"},ma={__name:"CalendarForm",props:{initialCalendar:{type:Object,default:()=>({color:""})}},emits:["close","colorChanged"],setup(e,{emit:t}){const n=t,a=e,{$gettext:r}=et(),u=tt();nt(()=>{a.initialCalendar&&(l.value={...a.initialCalendar},f.value=a.initialCalendar.domain!==void 0)});const l=$({}),f=$(!1),s=$({}),v=$(),D=$(!1),b=R(()=>l.value.pk?r("Update"):r("Create"));function M(){l.value={},f.value=!1,s.value={},n("close")}async function O(){const{valid:y}=await v.value.validate();if(!y)return;let C;D.value=!0;try{l.value.pk?(await ae.updateUserCalendar(l.value.pk,l.value),C=r("Calendar updated")):(await ae.createUserCalendar(l.value),C=r("Calendar created")),a.initialCalendar&&a.initialCalendar.color!==l.value.color&&n("colorChanged",l.value.pk),M(),u.displayNotification({msg:C})}finally{D.value=!1}}return(y,C)=>(ee(),me(ze,null,{default:S(()=>[c(rt,{ref_key:"formRef",ref:v,onSubmit:He(O,["prevent"])},{default:S(()=>[c(Be,null,{default:S(()=>[l.value.pk?(ee(),xe("span",fa,P(B(r)("Edit calendar")),1)):(ee(),xe("span",va,P(B(r)("New calendar")),1))]),_:1}),c(Pe,{class:"py-4"},{default:S(()=>[c(Ut,{"no-gutters":""},{default:S(()=>[c(ft,{cols:"12"},{default:S(()=>[c(Je,{modelValue:l.value.name,"onUpdate:modelValue":C[0]||(C[0]=g=>l.value.name=g),label:B(r)("Name"),variant:"outlined",density:"compact",rules:[B(De).required],"error-messages":s.value.name},null,8,["modelValue","label","rules","error-messages"])]),_:1}),c(ft,{cols:"12"},{default:S(()=>[c(Yn,{modelValue:l.value.color,"onUpdate:modelValue":C[1]||(C[1]=g=>l.value.color=g),label:B(r)("Color"),class:"ma-2","swatches-max-height":"200px","show-swatches":"","hide-inputs":"",rules:[B(De).required]},null,8,["modelValue","label","rules"])]),_:1})]),_:1})]),_:1}),c(Le,null,{default:S(()=>[c($e),c(re,{loading:D.value,onClick:M},{default:S(()=>[Z(P(B(r)("Close")),1)]),_:1},8,["loading"]),c(re,{color:"primary",type:"submit",loading:D.value},{default:S(()=>[Z(P(b.value),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},ya={class:"headline"},ga={__name:"CalendarDetail",props:{calendar:{type:Object,default:null}},emits:["close"],setup(e,{emit:t}){return(n,a)=>e.calendar?(ee(),me(ze,{key:0},{default:S(()=>[c(Be,null,{default:S(()=>[_("span",ya,P(n.$gettext("Calendar information")),1)]),_:1}),c(Pe,null,{default:S(()=>[_("p",null,P(n.$gettext("To access this calendar from the outside (such as Mozilla Thunderbird or your smartphone), use the following URL:")),1),c(vt,{type:"info",class:"my-4",variant:"tonal"},{default:S(()=>[Z(P(e.calendar.full_url),1)]),_:1}),_("p",null,P(n.$gettext("The credentials are the same than the ones you use to access Modoboa.")),1),_("p",null,P(n.$gettext("You can also share a read-only version of this calendar using the following URL: ")),1),c(vt,{type:"info",class:"my-4",variant:"tonal"},{default:S(()=>[Z(P(e.calendar.share_url),1)]),_:1})]),_:1}),c(Le,null,{default:S(()=>[c($e),c(re,{onClick:a[0]||(a[0]=r=>n.$emit("close"))},{default:S(()=>[Z(P(n.$gettext("Close")),1)]),_:1})]),_:1})]),_:1})):Se("",!0)}},ha={class:"headline"},pa={class:"d-flex mb-3"},ka={class:"d-flex mb-3"},ba={class:"d-flex mb-3"},wa={__name:"EventForm",props:{info:{type:Object,default:null},event:{type:Object,default:null}},emits:["close","refreshCalendar"],setup(e,{emit:t}){const n=e,a=t,{$gettext:r}=et(),u=tt(),l=$([]),f=$([]),s=$({}),v=$({}),D=$(),b=$(!1),M=R(()=>n.event?r("Edit event"):r("New event")),O=R(()=>s.value.allDay?"date":"datetime-local");Ue(()=>n.info,h=>{if(h){const w=typeof h.start=="number"?ye.fromMillis(h.start):ye.fromJSDate(h.start),F=typeof h.end=="number"?ye.fromMillis(h.end):ye.fromJSDate(h.end),T=h.timed?"yyyy-MM-dd HH:mm":"yyyy-MM-dd";s.value={start:w.toFormat(T),end:F.toFormat(T),allDay:!h.timed}}},{immediate:!0}),Ue(()=>n.event,h=>{if(h){s.value={...h},s.value.calendar=s.value.calendar.pk;const w=s.value.timed?"yyyy-MM-dd HH:mm":"yyyy-MM-dd";s.value.start=ye.fromMillis(h.start).toFormat(w),s.value.end=ye.fromMillis(h.end).toFormat(w),ae.getAttendees().then(F=>{l.value=F.data})}},{immediate:!0});function y(){v.value={},a("close")}async function C(){const{valid:h}=await D.value.validate();if(h){b.value=!0;try{const w={title:s.value.title,description:s.value.description,allDay:s.value.allDay,attendees:s.value.attendees,calendar:s.value.calendar};w.allDay?(w.start_date=s.value.start,w.end_date=s.value.end):(w.start=new Date(s.value.start).toISOString(),w.end=new Date(s.value.end).toISOString()),n.event?(await ae.patchUserEvent(s.value.calendar,n.event.id,w),u.displayNotification({msg:r("Event updated")})):(await ae.createUserEvent(s.value.calendar,w),u.displayNotification({msg:r("Event added")})),a("refreshCalendar",w.calendar),y()}finally{b.value=!1}}}async function g(){b.value=!0;try{await ae.deleteUserEvent(s.value.calendar,n.event.id),u.displayNotification({msg:r("Event deleted")}),a("refreshCalendar",s.value.calendar),y()}finally{b.value=!1}}return ae.getUserCalendars().then(h=>{f.value=h.data}),(h,w)=>(ee(),me(ze,null,{default:S(()=>[c(rt,{ref_key:"formRef",ref:D,onSubmit:He(C,["prevent"])},{default:S(()=>[c(Be,null,{default:S(()=>[_("span",ha,P(M.value),1)]),_:1}),c(Pe,{class:"py-4"},{default:S(()=>[c(Ut,{class:"mb-2"},{default:S(()=>[c(ft,{cols:"12"},{default:S(()=>[c(Je,{modelValue:s.value.title,"onUpdate:modelValue":w[0]||(w[0]=F=>s.value.title=F),label:B(r)("Title"),rules:[B(De).required],"error-messages":v.value.title,density:"compact",variant:"outlined"},null,8,["modelValue","label","rules","error-messages"])]),_:1})]),_:1}),_("div",pa,[c(pe,{icon:"mdi-clock-outline",class:"mr-4"}),c(Je,{modelValue:s.value.start,"onUpdate:modelValue":w[1]||(w[1]=F=>s.value.start=F),label:B(r)("From"),rules:[B(De).required],"error-messages":v.value.start,density:"compact",variant:"outlined",type:O.value,class:"mr-4"},null,8,["modelValue","label","rules","error-messages","type"]),c(Je,{modelValue:s.value.end,"onUpdate:modelValue":w[2]||(w[2]=F=>s.value.end=F),label:B(r)("To"),rules:[B(De).required],"error-messages":v.value.end,density:"compact",variant:"outlined",type:O.value},null,8,["modelValue","label","rules","error-messages","type"])]),_("div",ka,[c(pe,{icon:"mdi-calendar",class:"mr-4"}),c(ct,{modelValue:s.value.calendar,"onUpdate:modelValue":w[3]||(w[3]=F=>s.value.calendar=F),items:f.value,"item-title":"name","item-value":"pk",label:B(r)("Calendar"),rules:[B(De).required],"error-messages":v.value.calendar,density:"compact",variant:"outlined"},null,8,["modelValue","items","label","rules","error-messages"])]),e.event?(ee(),xe(Ot,{key:0},[_("div",ba,[c(pe,{icon:"mdi-account-multiple-outline",class:"mr-4"}),c(ct,{modelValue:s.value.attendees,"onUpdate:modelValue":w[4]||(w[4]=F=>s.value.attendees=F),label:B(r)("Attendees"),items:l.value,"item-title":"display_name","item-value":"email","return-object":"",variant:"outlined",density:"compact",multiple:"",chips:""},null,8,["modelValue","label","items"])]),c(Jn,{modelValue:s.value.description,"onUpdate:modelValue":w[5]||(w[5]=F=>s.value.description=F),label:B(r)("Description"),"auto-grow":"",rows:"2",variant:"outlined",density:"compact",class:"mb-3"},null,8,["modelValue","label"])],64)):Se("",!0)]),_:1}),c(Le,null,{default:S(()=>[n.event?(ee(),me(re,{key:0,loading:b.value,color:"error",onClick:g},{default:S(()=>[Z(P(B(r)("Delete")),1)]),_:1},8,["loading"])):Se("",!0),c($e),c(re,{loading:b.value,onClick:y},{default:S(()=>[Z(P(B(r)("Close")),1)]),_:1},8,["loading"]),c(re,{color:"primary",type:"submit",loading:b.value},{default:S(()=>[Z(P(B(r)("Save")),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},Ca={class:"headline"},_a={__name:"ImportEventsForm",props:{calendar:{type:Object,default:null}},emits:["close","eventsImported"],setup(e,{emit:t}){const n=e,a=t,{$ngettext:r}=et(),u=tt(),l=$(null),f=$({}),s=$(),v=$(!1);function D(){f.value={},a("close")}function b(O){f.value=O.data,v.value=!1}async function M(){const{valid:O}=await s.value.validate();if(!O)return;let y=new FormData;y.append("ics_file",l.value),v.value=!0;try{const g=await ae.importUserEvents(n.calendar,y);D();var C=r("%{ n } event imported","%{ n } events imported",g.data.counter);u.displayNotification({msg:C}),a("eventsImported",n.calendar.pk)}catch(g){b(g.response)}finally{v.value=!1}}return(O,y)=>(ee(),me(ze,null,{default:S(()=>[c(rt,{ref_key:"formRef",ref:s,onSubmit:He(M,["prevent"])},{default:S(()=>[c(Be,null,{default:S(()=>[_("span",Ca,P(O.$gettext("Import events")),1)]),_:1}),c(Pe,null,{default:S(()=>[c(vt,{type:"info",variant:"tonal",class:"my-4"},{default:S(()=>[Z(P(O.$gettext("Select an ICS file to import and click on the Send button")),1)]),_:1}),c(Gn,{modelValue:l.value,"onUpdate:modelValue":y[0]||(y[0]=C=>l.value=C),label:O.$gettext("Select an ICS file"),variant:"outlined",density:"compact",rules:[B(De).required],"error-messages":f.value.ics_file},null,8,["modelValue","label","rules","error-messages"])]),_:1}),c(Le,null,{default:S(()=>[c($e),c(re,{disabled:v.value,onClick:D},{default:S(()=>[Z(P(O.$gettext("Close")),1)]),_:1},8,["disabled"]),c(re,{type:"submit",color:"primary",disabled:v.value},{default:S(()=>[Z(P(O.$gettext("Send")),1)]),_:1},8,["disabled"])]),_:1})]),_:1},512)]),_:1}))}},Sa=at({active:{type:Boolean,default:void 0},activeColor:String,activeIcon:[String,Function,Object],activeVariant:String,baseVariant:{type:String,default:"tonal"},disabled:Boolean,height:[Number,String],width:[Number,String],hideOverlay:Boolean,icon:[String,Function,Object],iconColor:String,loading:Boolean,opacity:[Number,String],readonly:Boolean,rotate:[Number,String],size:{type:[Number,String],default:"default"},sizes:{type:Array,default:()=>[["x-small",16],["small",24],["default",40],["large",48],["x-large",56]]},text:{type:[String,Number,Boolean],default:void 0},...Bn(),...na(),...Hn(),...qn(),...Un(),...ta({tag:"button"}),..._n(),...An({variant:"flat"})},"VIconBtn"),Ht=Wt()({name:"VIconBtn",props:Sa(),emits:{"update:active":e=>!0},setup(e,t){let{attrs:n,slots:a}=t;const r=wn(e,"active"),{themeClasses:u}=Cn(e),{borderClasses:l}=$n(e),{elevationClasses:f}=Rn(e),{roundedClasses:s}=On(e),{colorClasses:v,colorStyles:D,variantClasses:b}=Wn(()=>({color:(()=>{if(!e.disabled)return r.value?e.activeColor??e.color??"surface-variant":e.color})(),variant:r.value===void 0?e.variant:r.value?e.activeVariant??e.variant:e.baseVariant??e.variant})),M=new Map(e.sizes);function O(){e.disabled||e.readonly||r.value===void 0||e.tag==="a"&&n.href||(r.value=!r.value)}return Ye(()=>{const y=r.value?e.activeIcon??e.icon:e.icon,C=e.size,h=M.has(C)?M.get(C):C,w=e.height??h,F=e.width??h,{iconSize:T}=jn(e,()=>new Map(e.iconSizes).get(C)),o={icon:y,size:T.value,color:e.iconColor,opacity:e.opacity};return c(e.tag,{type:e.tag==="button"?"button":void 0,class:pt([{"v-icon-btn":!0,"v-icon-btn--active":r.value,"v-icon-btn--disabled":e.disabled,"v-icon-btn--loading":e.loading,"v-icon-btn--readonly":e.readonly,[`v-icon-btn--${e.size}`]:!0},u.value,v.value,l.value,f.value,s.value,b.value,e.class]),style:ht([{"--v-icon-btn-rotate":ge(e.rotate,"deg"),"--v-icon-btn-height":ge(w),"--v-icon-btn-width":ge(F)},D.value,e.style]),tabindex:e.disabled||e.readonly?-1:0,onClick:O},{default:()=>{var i;return[Pn(!e.hideOverlay,"v-icon-btn"),_("div",{class:"v-icon-btn__content","data-no-activator":""},[!a.default&&y?c(pe,te({key:"content-icon"},o),null):c(Ln,{key:"content-defaults",disabled:!y,defaults:{VIcon:{...o}}},{default:()=>{var m;return((m=a.default)==null?void 0:m.call(a))??P(e.text)}})]),!!e.loading&&_("span",{key:"loader",class:"v-icon-btn__loader"},[((i=a.loader)==null?void 0:i.call(a))??c(Qn,{color:typeof e.loading=="boolean"?void 0:e.loading,indeterminate:"disable-shrink",width:"2",size:T.value},null)])]}})}),{}}});function Da(e){return e%4===0&&e%100!==0||e%400===0}const Bt=/^(\d{4})-(\d{1,2})(-(\d{1,2}))?([^\d]+(\d{1,2}))?(:(\d{1,2}))?(:(\d{1,2}))?$/,Pt=/(\d\d?)(:(\d\d?)|)(:(\d\d?)|)/,Ta=[0,31,28,31,30,31,30,31,31,30,31,30,31],xa=[0,31,29,31,30,31,30,31,31,30,31,30,31],Ia=28,Va=31,bt=12,Lt=1,lt=1,be=7,xt=60,Ea=59,Ma=1440,Fa=24,Na=23,$a=0,Ra=1e4,Oa=100,Wa=100,Aa=1e4;function Ua(e,t,n){const a=oe(e);return Jt(a,t[0],Zt),ce(a),n&&Ie(a,n,a.hasTime),a}function Ha(e,t,n){const a=oe(e);return Jt(a,t[t.length-1]),ce(a),n&&Ie(a,n,a.hasTime),a}function zt(e){const t=oe(e);return t.day=lt,ot(t),ce(t),t}function Yt(e){const t=oe(e);return t.day=Ct(t.year,t.month),ot(t),ce(t),t}function Fe(e){return isFinite(parseInt(e))}function Ba(e){return typeof e=="number"&&isFinite(e)||!!Pt.exec(e)||typeof e=="object"&&isFinite(e.hour)&&isFinite(e.minute)}function It(e){if(typeof e=="number")return e;if(typeof e=="string"){const t=Pt.exec(e);return t?parseInt(t[1])*60+parseInt(t[3]||0):!1}else return typeof e=="object"?typeof e.hour!="number"||typeof e.minute!="number"?!1:e.hour*60+e.minute:!1}function Ne(e){return typeof e=="number"&&isFinite(e)||typeof e=="string"&&!!Bt.exec(e)||e instanceof Date}function he(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=arguments.length>2?arguments[2]:void 0;if(typeof e=="number"&&isFinite(e)&&(e=new Date(e)),e instanceof Date){const u=wt(e);return n&&Ie(u,n,u.hasTime),u}if(typeof e!="string"){if(t)throw new Error(`${e} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`);return null}const a=Bt.exec(e);if(!a){if(t)throw new Error(`${e} is not a valid timestamp. It must be a Date, number of milliseconds since Epoch, or a string in the format of YYYY-MM-DD or YYYY-MM-DD hh:mm. Zero-padding is optional and seconds are ignored.`);return null}const r={date:e,time:"",year:parseInt(a[1]),month:parseInt(a[2]),day:parseInt(a[4])||1,hour:parseInt(a[6])||0,minute:parseInt(a[8])||0,weekday:0,hasDay:!!a[4],hasTime:!!(a[6]&&a[8]),past:!1,present:!1,future:!1};return ot(r),ce(r),n&&Ie(r,n,r.hasTime),r}function wt(e){return ce({date:"",time:"",year:e.getFullYear(),month:e.getMonth()+1,day:e.getDate(),weekday:e.getDay(),hour:e.getHours(),minute:e.getMinutes(),hasDay:!0,hasTime:!0,past:!1,present:!0,future:!1})}function J(e){return e.year*Ra+e.month*Oa+e.day}function mt(e){return e.hour*Wa+e.minute}function Ce(e){return J(e)*Aa+mt(e)}function Ie(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,a=J(t),r=J(e),u=a===r;return e.hasTime&&n&&u&&(a=mt(t),r=mt(e),u=a===r),e.past=r<a,e.present=u,e.future=r>a,e}function Vt(e){return e instanceof Date||typeof e=="number"&&isFinite(e)}function Et(e,t,n){return e.hasTime!==t&&(e.hasTime=t,t||(e.hour=Na,e.minute=Ea,e.time=qt(e))),e}function jt(e,t,n){return e.hasTime=!0,e.hour=0,e.minute=0,yt(e,t),ce(e),n&&Ie(e,n,!0),e}function ot(e){return e.weekday=Pa(e),e}function ce(e){return e.time=qt(e),e.date=La(e),e}function Pa(e){if(e.hasDay){const t=Math.floor,n=e.day,a=(e.month+9)%bt+1,r=t(e.year/100),u=e.year%100-(e.month<=2?1:0);return((n+t(2.6*a-.2)-2*r+u+t(u/4)+t(r/4))%7+7)%7}return e.weekday}function Ct(e,t){return Da(e)?xa[t]:Ta[t]}function oe(e){if(e==null)return null;const{date:t,time:n,year:a,month:r,day:u,weekday:l,hour:f,minute:s,hasDay:v,hasTime:D,past:b,present:M,future:O}=e;return{date:t,time:n,year:a,month:r,day:u,weekday:l,hour:f,minute:s,hasDay:v,hasTime:D,past:b,present:M,future:O}}function Te(e,t){let n=String(e);for(;n.length<t;)n="0"+n;return n}function La(e){let t=`${Te(e.year,4)}-${Te(e.month,2)}`;return e.hasDay&&(t+=`-${Te(e.day,2)}`),t}function qt(e){return e.hasTime?`${Te(e.hour,2)}:${Te(e.minute,2)}`:""}function yt(e,t){for(e.minute+=t;e.minute>=xt;)e.minute-=xt,e.hour++,e.hour>=Fa&&(we(e),e.hour=$a);return e}function we(e){return e.day++,e.weekday=(e.weekday+1)%be,e.day>Ia&&e.day>Ct(e.year,e.month)&&(e.day=lt,e.month++,e.month>bt&&(e.month=Lt,e.year++)),e}function Zt(e){return e.day--,e.weekday=(e.weekday+6)%be,e.day<lt&&(e.month--,e.month<Lt&&(e.year--,e.month=bt),e.day=Ct(e.year,e.month)),e}function _e(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:we,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;for(;--n>=0;)t(e);return e}function za(e,t){const n=(t.year-e.year)*525600,a=(t.month-e.month)*43800,r=(t.day-e.day)*1440,u=(t.hour-e.hour)*60,l=t.minute-e.minute;return n+a+r+u+l}function Jt(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:we,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6;for(;e.weekday!==t&&--a>=0;)n(e);return e}function Ya(e){const t=[1,1,1,1,1,1,1],n=[0,0,0,0,0,0,0];for(let a=0;a<e.length;a++)n[e[a]]=1;for(let a=0;a<be;a++){let r=1;for(let u=1;u<be;u++){const l=(a+u)%be;if(n[l])break;r++}t[a]=n[a]*r}return t}function gt(e){const t=`${Te(e.hour,2)}:${Te(e.minute,2)}`,n=e.date;return new Date(`${n}T${t}:00+00:00`)}function Ke(e,t,n,a){let r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:42,u=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;const l=J(t),f=[];let s=oe(e),v=0,D=v===l;if(l<J(e))throw new Error("End date is earlier than start date.");for(;(!D||f.length<u)&&f.length<r;){if(v=J(s),D=D||v===l,a[s.weekday]===0){s=we(s);continue}const b=oe(s);ce(b),Ie(b,n),f.push(b),s=_e(s,we,a[s.weekday])}if(!f.length)throw new Error("No dates found using specified start date, end date, and weekdays.");return f}function ja(e,t,n,a,r){const u=[];for(let l=0;l<a;l++){const f=t+l*n,s=oe(e);u.push(jt(s,f,r))}return u}function Ae(e,t){const n=(a,r)=>"";return typeof Intl>"u"||typeof Intl.DateTimeFormat>"u"?n:(a,r)=>{try{return new Intl.DateTimeFormat(e||void 0,t(a,r)).format(gt(a))}catch{return""}}}function qa(e){if(typeof e=="string"&&(e=e.split(",")),Array.isArray(e)){const t=e.map(r=>parseInt(r));if(t.length>be||t.length===0)return!1;const n={};let a=!1;for(let r=0;r<t.length;r++){const u=t[r];if(!isFinite(u)||u<0||u>=be)return!1;if(r>0){const l=u-t[r-1];if(l<0){if(a)return!1;a=!0}else if(l===0)return!1}if(n[u])return!1;n[u]=!0}return!0}return!1}function Za(e){const t=Sn({now:he("0000-00-00 00:00",!0),today:he("0000-00-00",!0)}),n=R(()=>e.now&&Ne(e.now)?he(e.now,!0):null);function a(){t.now.present=t.today.present=!0,t.now.past=t.today.past=!1,t.now.future=t.today.future=!1}function r(){return wt(new Date)}function u(s,v){s.date!==v.date&&(v.year=s.year,v.month=s.month,v.day=s.day,v.weekday=s.weekday,v.date=s.date)}function l(s,v){s.time!==v.time&&(v.hour=s.hour,v.minute=s.minute,v.time=s.time)}function f(){const s=n.value||r();u(s,t.now),l(s,t.now),u(s,t.today)}return Ue(n,f),f(),a(),{times:t,parsedNow:n,updateTimes:f,setPresent:a,getNow:r,updateDay:u,updateTime:l}}const st=at({start:{type:[String,Number,Date],validate:Ne,default:()=>wt(new Date).date},end:{type:[String,Number,Date],validate:Ne},weekdays:{type:[Array,String],default:()=>[0,1,2,3,4,5,6],validate:qa},firstDayOfWeek:[Number,String],firstDayOfYear:[Number,String],weekdayFormat:{type:Function,default:null},dayFormat:{type:Function,default:null},locale:String,now:{type:String,validator:Ne},type:{type:String,default:"month"}},"VCalendar-base");function _t(e){const{times:t,updateTimes:n}=Za({now:e.now}),a=Dn(e),r=Tn(),u=R(()=>e.type==="month"?zt(he(e.start,!0)):he(e.start,!0)),l=R(()=>{const T=u.value,o=e.end&&he(e.end)||T,i=Ce(o)<Ce(T)?T:o;return e.type==="month"?Yt(i):i}),f=R(()=>Ne(e.modelValue)?he(e.modelValue,!0):u.value||t.today),s=R(()=>{const T=Array.isArray(e.weekdays)?e.weekdays:(e.weekdays||"").split(",").map(i=>parseInt(i,10)),o=r.toJsDate(r.startOfWeek(r.date(),e.firstDayOfWeek)).getDay();return[...T.toSorted().filter(i=>i>=o),...T.toSorted().filter(i=>i<o)]}),v=R(()=>{const T=f.value,o=parseInt(String(e.categoryDays))||1;switch(e.type){case"day":return[T.weekday];case"4day":return[T.weekday,(T.weekday+1)%7,(T.weekday+2)%7,(T.weekday+3)%7];case"category":return Array.from({length:o},(i,m)=>(T.weekday+m)%7);default:return s.value}}),D=R(()=>Ya(s.value)),b=R(()=>Ke(u.value,l.value,t.today,D.value)),M=R(()=>e.dayFormat?e.dayFormat:Ae(a.current.value,()=>({timeZone:"UTC",day:"numeric"}))),O=R(()=>e.weekdayFormat?e.weekdayFormat:Ae(a.current.value,(T,o)=>({timeZone:"UTC",weekday:o?"short":"long"})));function y(T){return ea(T)}function C(T){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return{"v-present":T.present,"v-past":T.past,"v-future":T.future,"v-outside":o}}function g(T){return r.getWeek(r.date(T.date),e.firstDayOfWeek,e.firstDayOfYear)}function h(T){return Ua(T,s.value,t.today)}function w(T){return Ha(T,s.value,t.today)}function F(T){return Ae(a.current.value,()=>T)}return{times:t,locale:a,parsedValue:f,parsedWeekdays:s,effectiveWeekdays:v,weekdaySkips:D,parsedStart:u,parsedEnd:l,days:b,dayFormatter:M,weekdayFormatter:O,getColorProps:y,getRelativeClasses:C,getWeekNumber:g,getStartOfWeek:h,getEndOfWeek:w,getFormatter:F,updateTimes:n}}const Gt=at({maxDays:{type:Number,default:7},intervalHeight:{type:[Number,String],default:48,validate:Fe},intervalWidth:{type:[Number,String],default:60,validate:Fe},intervalMinutes:{type:[Number,String],default:60,validate:Fe},firstInterval:{type:[Number,String],default:0,validate:Fe},firstTime:{type:[Number,String,Object],validate:Ba},intervalCount:{type:[Number,String],default:24,validate:Fe},intervalFormat:{type:Function,default:null},intervalStyle:{type:Function,default:null},showIntervalLabel:{type:Function,default:null}},"VCalendar-intervals");function Xt(e){const t=_t(e),n=xn(),a=R(()=>parseInt(String(e.firstInterval||0))),r=R(()=>parseInt(String(e.intervalMinutes||60))),u=R(()=>parseInt(String(e.intervalCount||24))),l=R(()=>parseFloat(String(e.intervalHeight||48))),f=R(()=>It(e.firstTime)),s=R(()=>{const o=f.value;return o!==!1&&o>=0&&o<=Ma?o:a.value*r.value}),v=R(()=>u.value*l.value),D=R(()=>Ke(t.parsedStart.value,t.parsedEnd.value,t.times.today,t.weekdaySkips.value,e.maxDays)),b=R(()=>{const o=D.value,i=s.value,m=r.value,k=u.value,I=t.times.now;return o.map(A=>ja(A,i,m,k,I))}),M=R(()=>e.intervalFormat?e.intervalFormat:Ae(t.locale.current.value,(o,i)=>i?o.minute===0?{timeZone:"UTC",hour:"numeric"}:{timeZone:"UTC",hour:"numeric",minute:"2-digit"}:{timeZone:"UTC",hour:"2-digit",minute:"2-digit"}));function O(o){const i=b.value[0][0];return!(i.hour===o.hour&&i.minute===o.minute)}function y(o){}function C(o,i){const m=oe(i),k=o.currentTarget.getBoundingClientRect(),I=s.value,A=o,L=o,j=A.changedTouches||A.touches,d=((j&&j[0]?j[0].clientY:L.clientY)-k.top)/l.value,p=Math.floor(d*r.value),E=I+p;return jt(m,E,t.times.now)}function g(o){const i=oe(o);return i.timeToY=F,i.timeDelta=T,i.minutesToPixels=w,i.week=D.value,i.intervalRange=[s.value,s.value+u.value*r.value],i}function h(o){const i=F(o),m=n.value;return i===!1||!m?!1:(m.scrollTop=i,!0)}function w(o){return o/r.value*l.value}function F(o){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const m=i!==!1;let I=T(o,typeof i!="boolean"?i:void 0);return I===!1||(I*=v.value,m&&(I<0&&(I=0),I>v.value&&(I=v.value))),I}function T(o,i){let m=It(o);if(m===!1)return!1;const k=u.value*r.value;if(i&&typeof o=="object"&&"day"in o){const A=J(o),L=J(i);A>L&&(m+=(A-L)*k)}const I=s.value;return(m-I)/k}return{...t,scrollAreaRef:n,parsedFirstInterval:a,parsedIntervalMinutes:r,parsedIntervalCount:u,parsedIntervalHeight:l,parsedFirstTime:f,firstMinute:s,bodyHeight:v,days:D,intervals:b,intervalFormatter:M,showIntervalLabelDefault:O,intervalStyleDefault:y,getTimestampAtEvent:C,getSlotScope:g,scrollToTime:h,minutesToPixels:w,timeToY:F,timeDelta:T}}function Ja(e,t){var r,u;const n=t.value,a={passive:!((r=t.modifiers)!=null&&r.active)};window.addEventListener("resize",n,a),e._onResize=Object(e._onResize),e._onResize[t.instance.$.uid]={handler:n,options:a},(u=t.modifiers)!=null&&u.quiet||n()}function Ga(e,t){var r;if(!((r=e._onResize)!=null&&r[t.instance.$.uid]))return;const{handler:n,options:a}=e._onResize[t.instance.$.uid];window.removeEventListener("resize",n,a),delete e._onResize[t.instance.$.uid]}const Qe={mounted:Ja,unmounted:Ga},We=kt({name:"VCalendarDaily",directives:{vResize:Qe},props:{color:String,shortWeekdays:{type:Boolean,default:!0},shortIntervals:{type:Boolean,default:!0},hideHeader:Boolean,...st(),...Gt()},setup(e,t){let{slots:n,attrs:a}=t;const r=$(0),u=$(),l=Xt(e);function f(){In(s)}function s(){r.value=v()}function v(){return l.scrollAreaRef.value&&u.value?l.scrollAreaRef.value.offsetWidth-u.value.offsetWidth:0}function D(){return _("div",{class:"v-calendar-daily__head",style:{marginRight:r.value+"px"}},[b(),M()])}function b(){var d;const N=ge(e.intervalWidth);return _("div",{class:"v-calendar-daily__intervals-head",style:{width:N}},[(d=n["interval-header"])==null?void 0:d.call(n)])}function M(){return l.days.value.map(O)}function O(N,d){const p=de(a,":day",E=>({nativeEvent:E,...l.getSlotScope(N)}));return _("div",te({key:N.date,class:["v-calendar-daily_head-day",l.getRelativeClasses(N)]},p),[C(N),g(N),y(N,d)])}function y(N,d){var p;return((p=n["day-header"])==null?void 0:p.call(n,{week:l.days.value,...N,index:d}))??[]}function C(N){const d=N.present?e.color:void 0;return _("div",te(l.getColorProps({text:d}),{class:"v-calendar-daily_head-weekday"}),[l.weekdayFormatter.value(N,e.shortWeekdays)])}function g(N){var d;return _("div",{class:"v-calendar-daily_head-day-label"},[((d=n["day-label-header"])==null?void 0:d.call(n,N))??h(N)])}function h(N){const d=de(a,":date",p=>({nativeEvent:p,...N}));return c(Ht,te({active:N.present,activeColor:e.color,variant:"outlined",baseVariant:"text","onUpdate:active":At},d),{default:()=>[l.dayFormatter.value(N,!1)]})}function w(){return _("div",{class:"v-calendar-daily__body"},[F()])}function F(){return _("div",{ref:l.scrollAreaRef,class:"v-calendar-daily__scroll-area"},[T()])}function T(){return _("div",{ref:u,class:"v-calendar-daily__pane",style:{height:ge(l.bodyHeight.value)}},[o()])}function o(){var N;return _("div",{class:"v-calendar-daily__day-container"},[A(),((N=n.days)==null?void 0:N.call(n))??i()])}function i(){return l.days.value.map((N,d)=>{const p=de(a,":time",E=>({nativeEvent:E,...l.getSlotScope(l.getTimestampAtEvent(E,N))}));return _("div",te({key:N.date,class:["v-calendar-daily__day",l.getRelativeClasses(N)]},p),[k(d),m(N)])})}function m(N){var d;return((d=n["day-body"])==null?void 0:d.call(n,l.getSlotScope(N)))??[]}function k(N){return l.intervals.value[N].map(I)}function I(N){var E;const d=ge(e.intervalHeight),p=e.intervalStyle||l.intervalStyleDefault;return _("div",{class:"v-calendar-daily__day-interval",key:N.time,style:ht([{height:d},p(N)])},[(E=n.interval)==null?void 0:E.call(n,l.getSlotScope(N))])}function A(){const N=ge(e.intervalWidth),d=de(a,":interval",p=>({nativeEvent:p,...l.getTimestampAtEvent(p,l.parsedStart.value)}));return _("div",te({class:"v-calendar-daily__intervals-body",style:{width:N}},d),[L()])}function L(){return l.intervals.value.length?l.intervals.value[0].map(j):null}function j(N){const d=ge(e.intervalHeight),p=e.shortIntervals,H=(e.showIntervalLabel||l.showIntervalLabelDefault)(N)?l.intervalFormatter.value(N,p):void 0;return _("div",{key:N.time,class:"v-calendar-daily__interval",style:{height:d}},[_("div",{class:"v-calendar-daily__interval-text"},[H])])}return nt(f),Ye(()=>Xe(_("div",{class:pt(["v-calendar-daily",a.class]),onDragstart:N=>N.preventDefault()},[e.hideHeader?void 0:D(),w()]),[[Qe,s,void 0,{quiet:!0}]])),{...l,scrollPush:r,pane:u,init:f,onResize:s,getScrollPush:v}}});function Xa(e,t){return typeof t=="function"?t(e):typeof t=="string"&&typeof e=="object"&&e?e[t]:typeof e=="string"?e:""}function Kt(e,t){return typeof e=="string"?e.split(/\s*,\s/):Array.isArray(e)?e.map(n=>{if(typeof n=="string")return n;const a=typeof n.categoryName=="string"?n.categoryName:Xa(n,t);return{...n,categoryName:a}}):[]}const Ka=kt({name:"VCalendarCategory",props:{categories:{type:[Array,String],default:""},categoryText:[String,Function],categoryForInvalid:{type:String,default:""},...st(),...Gt()},setup(e,t){let{slots:n,attrs:a}=t;const r=Xt(e),u=R(()=>Kt(e.categories,e.categoryText));function l(g,h){const w=typeof h=="object"&&h&&h.categoryName===e.categoryForInvalid?null:h;return{...g,category:w}}function f(g){return _("div",{class:"v-calendar-category__columns"},[u.value.map(h=>s(g,l(g,h)))])}function s(g,h){var T,o;const w=typeof h.category=="object"?h.category.categoryName:h.category,F=de(a,":dayCategory",()=>l(r.getSlotScope(g)||g,h.category));return _("div",te({class:"v-calendar-category__column-header"},F),[((T=n.category)==null?void 0:T.call(n,h))??v(w),(o=n["day-header"])==null?void 0:o.call(n,h)])}function v(g){return _("div",{class:"v-calendar-category__category"},[g===null?e.categoryForInvalid:g])}function D(){const g=[];return r.days.value.forEach((h,w)=>{const F=new Array(u.value.length||1);F.fill(h),g.push(...F.map((T,o)=>b(T,w,o)))}),g}function b(g,h,w){const F=u.value[w],T=de(a,":time",o=>r.getSlotScope(r.getTimestampAtEvent(o,g)));return _("div",te({key:g.date+"-"+w,class:["v-calendar-daily__day",r.getRelativeClasses(g)]},T),[M(h,F),y(g,F)])}function M(g,h){return r.intervals.value[g].map(w=>O(w,h))}function O(g,h){var T;const w=ge(e.intervalHeight),F=e.intervalStyle||r.intervalStyleDefault;return _("div",{key:g.time,class:"v-calendar-daily__day-interval",style:ht([{height:w},F({...g,category:h})])},[(T=n.interval)==null?void 0:T.call(n,l(r.getSlotScope(g),h))])}function y(g,h){return _("div",{class:"v-calendar-category__columns"},[C(g,h)])}function C(g,h){var F;const w=de(a,":timeCategory",T=>l(r.getSlotScope(r.getTimestampAtEvent(T,g)),h));return _("div",te({class:"v-calendar-category__column"},w),[(F=n["day-body"])==null?void 0:F.call(n,l(r.getSlotScope(g),h))])}return Ye(()=>c(We,te({class:["v-calendar-daily","v-calendar-category"]},e),{...n,days:D,"day-header":f})),{...r,parsedCategories:u}}}),Mt=kt({name:"VCalendarWeekly",props:{minWeeks:{validate:Fe,default:1},monthFormat:Function,showWeek:Boolean,color:String,shortWeekdays:{type:Boolean,default:!0},showMonthOnFirst:{type:Boolean,default:!0},shortMonths:{type:Boolean,default:!0},hideHeader:Boolean,...st()},setup(e,t){let{slots:n,attrs:a}=t;const r=_t(e),u=Vn(),l=R(()=>parseInt(String(e.minWeeks))),f=R(()=>{const o=l.value*r.parsedWeekdays.value.length,i=r.getStartOfWeek(r.parsedStart.value),m=r.getEndOfWeek(r.parsedEnd.value);return Ke(i,m,r.times.today,r.weekdaySkips.value,Number.MAX_SAFE_INTEGER,o)}),s=R(()=>{const o=r.times.today,i=r.getStartOfWeek(o),m=r.getEndOfWeek(o);return Ke(i,m,o,r.weekdaySkips.value,r.parsedWeekdays.value.length,r.parsedWeekdays.value.length)}),v=R(()=>e.monthFormat?e.monthFormat:Ae(r.locale.current.value,(o,i)=>({timeZone:"UTC",month:i?"short":"long"})));function D(o){const i=J(o);return i<J(r.parsedStart.value)||i>J(r.parsedEnd.value)}function b(){return _("div",{class:"v-calendar-weekly__head",role:"row"},[M()])}function M(){const o=s.value.map(O);return e.showWeek&&o.unshift(_("div",{class:"v-calendar-weekly__head-weeknumber"},null)),o}function O(o,i){const m=D(f.value[i]),k=o.present?e.color:void 0;return _("div",te(r.getColorProps({text:k}),{key:o.date,class:["v-calendar-weekly__head-weekday",r.getRelativeClasses(o,m)],role:"columnheader"}),[r.weekdayFormatter.value(o,e.shortWeekdays)])}function y(){const o=f.value,i=r.parsedWeekdays.value.length,m=[];for(let k=0;k<o.length;k+=i)m.push(C(o.slice(k,k+i),g(o[k])));return m}function C(o,i){const m=o.map((k,I)=>w(k,I,o));return e.showWeek&&m.unshift(h(i)),_("div",{key:o[0].date,class:"v-calendar-weekly__week",role:"row"},[m])}function g(o){return r.getWeekNumber(o)}function h(o){return _("div",{class:"v-calendar-weekly__weeknumber"},[_("small",null,[String(o)])])}function w(o,i,m){var A;const k=D(o),I=de(a,":day",L=>({nativeEvent:L,...o}));return _("div",te({key:o.date,class:["v-calendar-weekly__day",r.getRelativeClasses(o,k)],role:"cell"},I),[F(o),(A=n.day)==null?void 0:A.call(n,{outside:k,index:i,week:m,...o})])}function F(o){var i;return _("div",{class:"v-calendar-weekly__day-label"},[((i=n["day-label"])==null?void 0:i.call(n,o))??T(o)])}function T(o){const i=o.day===1&&e.showMonthOnFirst,m=de(a,":date",k=>({nativeEvent:k,...o}));return c(Ht,te({active:o.present,activeColor:e.color,variant:"outlined",baseVariant:"text","onUpdate:active":At},m),{default:()=>[i?v.value(o,e.shortMonths)+" "+r.dayFormatter.value(o,!1):r.dayFormatter.value(o,!1)]})}return Ye(()=>_("div",{class:pt(["v-calendar-weekly",u.themeClasses.value]),onDragstart:o=>o.preventDefault()},[e.hideHeader?void 0:b(),y()])),{...r,days:f,todayWeek:s,monthFormatter:v,isOutside:D}}}),Qa=864e5;function Qt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const n=e.map(a=>({event:a,columnCount:0,column:0,left:0,width:100}));return n.sort((a,r)=>Math.max(t,a.event.startTimestampIdentifier)-Math.max(t,r.event.startTimestampIdentifier)||r.event.endTimestampIdentifier-a.event.endTimestampIdentifier),n}function fe(e,t,n,a){return(arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0)?!(e>=a||t<=n):!(e>a||t<n)}function Ft(e){e.forEach(t=>{t.visuals.forEach(n=>{n.columnCount=e.length})})}function en(e){return[e.startTimestampIdentifier,e.endTimestampIdentifier]}function tn(e){return[e.startIdentifier,e.endIdentifier]}function nn(e,t){return[Math.max(t,e.startTimestampIdentifier),Math.min(t+Qa,e.endTimestampIdentifier)]}function er(e,t,n,a){for(let r=0;r<e.length;r++){const u=e[r];let l=!1;if(fe(t,n,u.start,u.end,a))for(let f=0;f<u.visuals.length;f++){const s=u.visuals[f],[v,D]=a?en(s.event):tn(s.event);if(fe(t,n,v,D,a)){l=!0;break}}if(!l)return r}return-1}function an(e){const t={groups:[],min:-1,max:-1,reset:()=>{t.groups=[],t.min=t.max=-1},getVisuals:function(n,a,r){let u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;(n.weekday===e||u)&&t.reset();const l=Ce(n),f=Qt(a,l);return f.forEach(s=>{const[v,D]=r?en(s.event):tn(s.event);t.groups.length>0&&!fe(v,D,t.min,t.max,r)&&(Ft(t.groups),t.reset());let b=er(t.groups,v,D,r);b===-1&&(b=t.groups.length,t.groups.push({start:v,end:D,visuals:[]}));const M=t.groups[b];M.visuals.push(s),M.start=Math.min(M.start,v),M.end=Math.max(M.end,D),s.column=b,t.min===-1?(t.min=v,t.max=D):(t.min=Math.min(t.min,v),t.max=Math.max(t.max,D))}),Ft(t.groups),r&&t.reset(),f}};return t}const Nt=100,tr=(e,t,n)=>{const a=an(t);return(r,u,l,f)=>{const s=a.getVisuals(r,u,l,f);return l&&s.forEach(v=>{v.left=v.column*Nt/v.columnCount,v.width=Nt/v.columnCount}),s}},Ze=100,nr=5,ar=1.7,rr=(e,t,n)=>{const a=an(t);return(r,u,l,f)=>{if(!l)return a.getVisuals(r,u,l,f);const s=Ce(r),v=Qt(u,s),D=cr(v,s);for(const b of D){const M=[];for(const O of b.visuals){const y=fr(O,s),C=ur(y,M);if(C===!1){const g=ir(y,M);g&&(y.parent=g,y.sibling=fe(y.start,y.end,g.start,Ge(g.start,n)),y.index=g.index+1,g.children.push(y))}else{const[g]=$t(y,M,C-1,C-1),h=$t(y,M,C+1,C+M.length,!0);y.children=h,y.index=C,g&&(y.parent=g,y.sibling=fe(y.start,y.end,g.start,Ge(g.start,n)),g.children.push(y));for(const w of h)w.parent===g&&(w.parent=y),w.index-y.index<=1&&y.sibling&&fe(y.start,Ge(y.start,n),w.start,w.end)&&(w.sibling=!0)}M.push(y)}lr(M,n)}return v.sort((b,M)=>b.left-M.left||b.event.startTimestampIdentifier-M.event.startTimestampIdentifier),v}};function lr(e,t){for(const n of e){const{visual:a,parent:r}=n,u=rn(n)+1,l=r?r.visual.left:0,f=Ze-l,s=Math.min(nr,Ze/u),v=or(n,e),D=f/(u-n.index+1),b=f/(u-n.index+(n.sibling?1:0))*v;r&&(a.left=n.sibling?l+D:l+s),a.width=dr(n,e,t)?Ze-a.left:Math.min(Ze-a.left,b*ar)}}function or(e,t){if(!e.children.length)return 1;const n=e.index+t.length;return e.children.reduce((r,u)=>Math.min(r,u.index),n)-e.index}function sr(e,t){const n=[];for(const a of t)fe(e.start,e.end,a.start,a.end)&&n.push(a.index);return n}function ur(e,t){const n=sr(e,t);n.sort();for(let a=0;a<n.length;a++)if(a<n[a])return a;return!1}function $t(e,t,n,a){let r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;const u=[];for(const l of t)l.index>=n&&l.index<=a&&fe(e.start,e.end,l.start,l.end)&&u.push(l);if(r&&u.length>0){const l=u.reduce((f,s)=>Math.min(f,s.index),u[0].index);return u.filter(f=>f.index===l)}return u}function ir(e,t){let n=null;for(const a of t)fe(e.start,e.end,a.start,a.end)&&(n===null||a.index>n.index)&&(n=a);return n}function dr(e,t,n){for(const a of t)if(a!==e&&a.index>e.index&&fe(e.start,Ge(e.start,n),a.start,a.end))return!1;return!0}function cr(e,t){const n=[];for(const a of e){const[r,u]=nn(a.event,t);let l=!1;for(const f of n)if(fe(r,u,f.start,f.end)){f.visuals.push(a),f.end=Math.max(f.end,u),l=!0;break}l||n.push({start:r,end:u,visuals:[a]})}return n}function fr(e,t){const[n,a]=nn(e.event,t);return{parent:null,sibling:!0,index:0,visual:e,start:n,end:a,children:[]}}function rn(e){let t=e.index;for(const n of e.children){const a=rn(n);a>t&&(t=a)}return t}function Ge(e,t){const n=e%100,a=n+t,r=Math.floor(a/60),u=a%60;return e-n+r*100+u}const ln={stack:rr,column:tr};function vr(e,t,n,a){let r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1,u=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1;const l=e[n],f=e[a],s=he(l,!0),v=f?he(f,!0):s,D=Vt(l)?Et(s,r):s,b=Vt(f)?Et(v,r):v,M=J(D),O=Ce(D),y=J(b),C=D.hasTime?0:2359,g=Ce(b)+C,h=!D.hasTime;return{input:e,start:D,startIdentifier:M,startTimestampIdentifier:O,end:b,endIdentifier:y,endTimestampIdentifier:g,allDay:h,index:t,category:u}}function St(e,t){return t>=e.startIdentifier&&t<=e.endIdentifier}function mr(e,t,n){if(n){const a=yt(oe(t),n[0]),r=yt(oe(t),n[1]),u=e.startTimestampIdentifier<Ce(r),l=e.endTimestampIdentifier>Ce(a);return u&&l}return St(e,J(t))}function yr(e,t){return e.end.time==="00:00"&&e.end.date===t.date&&e.start.date!==t.date}function Rt(e,t,n,a){return n===e.startIdentifier||a===t.weekday&&St(e,n)}function gr(e,t,n){return t<=e.endIdentifier&&n>=e.startIdentifier}const hr=100,pr=95,kr=at({events:{type:Array,default:()=>[]},eventStart:{type:String,default:"start"},eventEnd:{type:String,default:"end"},eventTimed:{type:[String,Function],default:"timed"},eventCategory:{type:[String,Function],default:"category"},eventHeight:{type:Number,default:20},eventColor:{type:[String,Function],default:"primary"},eventTextColor:{type:[String,Function]},eventName:{type:[String,Function],default:"name"},eventOverlapThreshold:{type:[String,Number],default:60},eventOverlapMode:{type:[String,Function],default:"stack",validate:e=>e in ln||typeof e=="function"},eventMore:{type:Boolean,default:!0},eventMoreText:{type:String,default:"$vuetify.calendar.moreEvents"},eventRipple:{type:[Boolean,Object],default:null},eventMarginBottom:{type:Number,default:1}},"VCalendar-events");function br(e,t,n){const a=_t(e),r=R(()=>!Array.isArray(e.events)||e.events.length===0),u=R(()=>e.type==="category"),l=R(()=>typeof e.eventTimed=="function"?e.eventTimed:d=>!!d[e.eventTimed]),f=R(()=>typeof e.eventCategory=="function"?e.eventCategory:d=>d[e.eventCategory]),s=R(()=>e.events?e.events.map((d,p)=>vr(d,p,e.eventStart||"",e.eventEnd||"",l.value(d),u.value?f.value(d):!1)):[]),v=R(()=>parseInt(String(e.eventOverlapThreshold||0))),D=R(()=>typeof e.eventTextColor=="function"?e.eventTextColor:()=>e.eventTextColor),b=R(()=>typeof e.eventName=="function"?e.eventName:(d,p)=>d.input[e.eventName]||""),M=R(()=>typeof e.eventOverlapMode=="function"?e.eventOverlapMode:ln[e.eventOverlapMode]),O=R(()=>a.effectiveWeekdays.value);function y(d){return typeof e.eventColor=="function"?e.eventColor(d):d.color||e.eventColor}const C=$([]);function g(){if(r.value||!e.eventMore)return;const d=e.eventHeight||0,p=h();for(const E in p){const{parent:W,events:H,more:z}=p[E];if(!z)break;const X=W.getBoundingClientRect(),le=H.length-1,K=H.map(Y=>({event:Y,bottom:Y.getBoundingClientRect().bottom})).sort((Y,ne)=>Y.bottom-ne.bottom);let G=0;for(let Y=0;Y<=le;Y++){const ne=K[Y].bottom;(Y===le?ne>X.bottom:ne+d>X.bottom)&&(K[Y].event.style.display="none",G++)}G?(z.style.display="",z.innerHTML=a.locale.t(e.eventMoreText,G)):z.style.display="none"}}function h(){const d={},p=C.value;return!p||!p.length||p.forEach(E=>{const W=E.getAttribute("data-date");E.parentElement&&W&&(W in d||(d[W]={parent:E.parentElement,more:null,events:[]}),E.getAttribute("data-more")?d[W].more=E:(d[W].events.push(E),E.style.display=""))}),d}function w(d,p){let{event:E}=d;const W=e.eventHeight||0,H=e.eventMarginBottom||0,z=J(p),X=p.week,le=z===E.startIdentifier;let K=z===E.endIdentifier,G=pr;if(!u.value)for(let ne=p.index+1;ne<X.length;ne++){const se=J(X[ne]);if(E.endIdentifier>=se)G+=hr,K=K||se===E.endIdentifier;else{K=!0;break}}return T(E,{eventParsed:E,day:p,start:le,end:K,timed:!1},!1,{class:["v-event",{"v-event-start":le,"v-event-end":K}],style:{height:`${W}px`,width:`${G}%`,marginBottom:`${H}px`},"data-date":p.date})}function F(d,p){let{event:E,left:W,width:H}=d;const z=p.timeDelta(E.start,p),X=p.timeDelta(E.end,p);if(X===!1||z===!1||X<0||z>=1||yr(E,p))return!1;const le=J(p),K=E.startIdentifier>=le,G=E.endIdentifier>le,Y=p.timeToY(E.start,p),ne=p.timeToY(E.end,p),se=Math.max(e.eventHeight||0,ne-Y);return T(E,{eventParsed:E,day:p,start:K,end:G,timed:!0},!0,{class:"v-event-timed",style:{top:`${Y}px`,height:`${se}px`,left:`${W}%`,width:`${H}%`}})}function T(d,p,E,W){const H=t.event,z=D.value(d.input),X=y(d.input),le=d.start.hour<12&&d.end.hour>=12,K=za(d.start,d.end)<=v.value,G=(ue,Ee)=>a.getFormatter({timeZone:"UTC",hour:"numeric",minute:ue.minute>0?"numeric":void 0})(ue,!0),Y=()=>G(d.start)+" - "+G(d.end),ne=()=>{const ue=b.value(d,E);if(d.start.hasTime)if(E){const Ee=Y(),Me=K?", ":_("br",null,null);return _("span",{class:"v-event-summary"},[_("strong",null,[ue]),Me,Ee])}else{const Ee=G(d.start);return _("span",{class:"v-event-summary"},[_("strong",null,[Ee]),Z(" "),ue])}return _("span",{class:"v-event-summary"},[ue])},se={...p,event:d.input,outside:p.day.outside,singline:K,overlapsNoon:le,formatTime:G,timeSummary:Y,eventSummary:ne},Ve=de(n,":event",ue=>({...se,nativeEvent:ue}));return Xe(_("div",te(a.getColorProps({text:z,background:X}),Ve,W,{ref_for:!0,ref:C}),[(H==null?void 0:H(se))??o(ne)]),[[Tt,e.eventRipple??!0]])}function o(d){return _("div",{class:"pl-1"},[d()])}function i(d){const p=(e.eventHeight||0)+(e.eventMarginBottom||0);return _("div",{style:{height:`${p}px`},"data-date":d.date,ref_for:!0,ref:C},null)}function m(d){const p=e.eventHeight||0,E=e.eventMarginBottom||0,W=de(n,":more",H=>({nativeEvent:H,...d}));return Xe(_("div",te({class:["v-event-more pl-1",{"v-outside":d.outside}],"data-date":d.date,"data-more":"1",style:{display:"none",height:`${p}px`,marginBottom:`${E}px`},ref_for:!0,ref:C},W),null),[[Tt,e.eventRipple??!0]])}function k(){const d=a.days.value,p=J(d[0]),E=J(d[d.length-1]);return s.value.filter(W=>gr(W,p,E))}function I(d,p){return!u.value||typeof p=="object"&&p.categoryName&&p.categoryName===d.category||typeof d.category=="string"&&p===d.category||typeof d.category!="string"&&p===null}function A(d){const p=J(d),E=O.value[0];return s.value.filter(W=>Rt(W,d,p,E))}function L(d){const p=J(d),E=O.value[0];return s.value.filter(W=>W.allDay&&(u.value?St(W,p):Rt(W,d,p,E))&&I(W,d.category))}function j(d){return s.value.filter(p=>!p.allDay&&mr(p,d,d.intervalRange)&&I(p,d.category))}function N(){if(r.value)return{...t};const d=M.value(s.value,O.value[0],v.value),p=W=>!!W,E=(W,H,z,X)=>{const le=H(W),K=d(W,le,X,u.value);if(X)return K.map(Y=>z(Y,W)).filter(p);const G=[];return K.forEach((Y,ne)=>{for(;G.length<Y.column;)G.push(i(W));const se=z(Y,W);se&&G.push(se)}),G};return{...t,day:W=>{let H=E(W,A,w,!1);if(H&&H.length>0&&e.eventMore&&H.push(m(W)),t.day){const z=t.day(W);z&&(H=H?H.concat(z):z)}return H},"day-header":W=>{let H=E(W,L,w,!1);if(t["day-header"]){const z=t["day-header"](W);z&&(H=H?H.concat(z):z)}return H},"day-body":W=>{const H=E(W,j,F,!0);let z=[_("div",{class:"v-event-timed-container"},[H])];if(t["day-body"]){const X=t["day-body"](W);X&&(z=z.concat(X))}return z}}}return{...a,noEvents:r,parsedEvents:s,parsedEventOverlapThreshold:v,eventTimedFunction:l,eventCategoryFunction:f,eventTextColorFunction:D,eventNameFunction:b,eventModeFunction:M,eventWeekdays:O,categoryMode:u,eventColorFunction:y,eventsRef:C,updateEventVisibility:g,getEventsMap:h,genDayEvent:w,genTimedEvent:F,genEvent:T,genName:o,genPlaceholder:i,genMore:m,getVisibleEvents:k,isEventForCategory:I,getEventsForDay:A,getEventsForDayAll:L,getEventsForDayTimed:j,getScopedSlots:N}}const wr=Wt()({name:"VCalendar",directives:{vResize:Qe},props:{modelValue:{type:[String,Number,Date],validate:Ne},categoryDays:{type:[Number,String],default:1,validate:e=>isFinite(parseInt(e))&&parseInt(e)>0},categories:{type:[Array,String],default:""},categoryText:{type:[String,Function]},maxDays:{type:Number,default:7},categoryHideDynamic:{type:Boolean},categoryShowAll:{type:Boolean},categoryForInvalid:{type:String,default:""},...st(),...kr()},setup(e,t){let{slots:n,attrs:a,emit:r}=t;const u=$(),l=br(e,n,a),f=$(null),s=$(null),v=R(()=>parseInt(String(e.categoryDays))||1),D=R(()=>Kt(e.categories,e.categoryText)),b=R(()=>{const i=l.parsedValue.value;let m=null,k=e.maxDays,I=D.value,A=i,L=i;switch(e.type){case"month":m=Mt,A=zt(i),L=Yt(i);break;case"week":m=We,A=l.getStartOfWeek(i),L=l.getEndOfWeek(i),k=7;break;case"day":m=We,k=1;break;case"4day":m=We,L=_e(oe(L),we,3),ce(L),k=4;break;case"custom-weekly":m=Mt,A=l.parsedStart.value||i,L=l.parsedEnd.value;break;case"custom-daily":m=We,A=l.parsedStart.value||i,L=l.parsedEnd.value;break;case"category":const j=v.value;m=Ka,L=_e(oe(L),we,j),ce(L),k=j,I=o(I);break;default:const N=e.type;throw new Error(`${N} is not a valid Calendar type`)}return{component:m,start:A,end:L,maxDays:k,categories:I}}),M=R(()=>l.effectiveWeekdays.value),O=R(()=>e.type==="category"),y=R(()=>l.getFormatter({timeZone:"UTC",month:"long"})),C=R(()=>l.getFormatter({timeZone:"UTC",month:"short"})),g=R(()=>{const{start:i,end:m}=b.value,k=i.year!==m.year,I=k||i.month!==m.month;return k?C.value(i,!0)+" "+i.year+" - "+C.value(m,!0)+" "+m.year:I?C.value(i,!0)+" - "+C.value(m,!0)+" "+m.year:y.value(i,!1)+" "+i.year});function h(){const{start:i,end:m}=b.value;(!f.value||!s.value||i.date!==f.value.date||m.date!==s.value.date)&&(f.value=i,s.value=m,r("change",{start:i,end:m}))}function w(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;const m=oe(l.parsedValue.value),k=i>0,I=k?we:Zt,A=k?Va:lt;let L=k?i:-i;for(;--L>=0;)switch(e.type){case"month":m.day=A,I(m);break;case"week":_e(m,I,be);break;case"day":_e(m,I,1);break;case"4day":_e(m,I,4);break;case"category":_e(m,I,v.value);break}ot(m),ce(m),Ie(m,l.times.now),e.modelValue instanceof Date?r("update:modelValue",gt(m)):typeof e.modelValue=="number"?r("update:modelValue",gt(m).getTime()):r("update:modelValue",m.date),r("moved",m)}function F(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;w(i)}function T(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;w(-i)}function o(i){if(!l.noEvents.value){const m=i.reduce((k,I,A)=>(typeof I=="object"&&I.categoryName?k[I.categoryName]={index:A,count:0}:typeof I=="string"&&(k[I]={index:A,count:0}),k),{});if(!e.categoryHideDynamic||!e.categoryShowAll){let k=i.length;l.parsedEvents.value.forEach(I=>{let A=I.category;typeof A!="string"&&(A=e.categoryForInvalid),A&&(A in m?m[A].count++:e.categoryHideDynamic||(m[A]={index:k++,count:1}))})}if(!e.categoryShowAll)for(const k in m)m[k].count===0&&delete m[k];i=i.filter(k=>typeof k=="object"&&k.categoryName?m.hasOwnProperty(k.categoryName):typeof k=="string"?m.hasOwnProperty(k):!1)}return i}return Ue(b,h),nt(()=>{l.updateEventVisibility(),h()}),En(()=>{window.requestAnimationFrame(l.updateEventVisibility)}),Ye(()=>{const{start:i,end:m,maxDays:k,component:I,categories:A}=b.value;return Xe(c(I,te({ref:u,class:["v-calendar",{"v-calendar-events":!l.noEvents.value}],role:"grid"},I.filterProps(e),{start:i.date,end:m.date,maxDays:k,weekdays:l.effectiveWeekdays.value,categories:A,"onClick:date":(L,j)=>{a["onUpdate:modelValue"]&&r("update:modelValue",j.date)}}),l.getScopedSlots()),[[Qe,l.updateEventVisibility,void 0,{quiet:!0}]])}),aa({...l,lastStart:f,lastEnd:s,parsedCategoryDays:v,renderProps:b,eventWeekdays:M,categoryMode:O,title:g,monthLongFormatter:y,monthShortFormatter:C,parsedCategories:D,checkChange:h,move:w,next:F,prev:T,getCategoryList:o},u)}}),Cr={style:{display:"grid","grid-template-rows":"auto auto 1fr",height:"96vh"}},_r={class:"text-h5 ml-4 mb-6"},Sr={style:{overflow:"auto"}},Dr={class:"v-event-draggable"},Tr=["onMousedown"],xr={__name:"CalendarView",async setup(e){let t,n;const{$gettext:a,current:r}=et(),u=oa(),l=tt(),f=$(),s=$(),v=$([]),D=$(),b=$(null),M=$(null),O=$([]),y=$(!1),C=$(!1),g=$(!1),h=$(!1),w=$(!1),F=$("week"),T=$(""),o=$(null),i=$(null),m=$(null),k=$(null),I=$(null),A=$(null),L=$(!1),j=$(!1),N={day:a("Day"),week:a("Week"),month:a("Month")},d=R(()=>{const V=[{icon:"mdi-plus",text:a("New calendar"),action:z},{text:a("My calendars"),subheader:!0}];for(const x of O.value)V.push({text:x.name,children:[{text:a("Information"),icon:"mdi-information-outline",action:()=>le(x)},{text:a("Edit"),icon:"mdi-pencil",action:()=>pn(x)},{text:a("Access rules"),icon:"mdi-filter-outline",action:()=>G(x)},{text:a("Delete"),icon:"mdi-trash-can-outline",action:()=>kn(x.pk)},{text:a("Import"),icon:"mdi-calendar-import-outline",action:()=>ne(x)}]});return V});async function p({start:V,end:x}){let U=[];for(const q of O.value){const ve=await ae.getUserCalendarEvents(q.pk,{start:V.date,end:x.date});U=U.concat(ve.data.map(ie=>{const ke={...ie};return ke.start=Date.parse(ie.start),ke.end=Date.parse(ie.end),ke.timed=!ie.allDay,ke}))}v.value=U}const E=()=>{T.value=""},W=()=>{f.value.prev()},H=()=>{f.value.next()};function z(){C.value=!0}function X(){b.value=null,C.value=!1,Ve()}function le(V){b.value=V,g.value=!0}function K(){b.value=null,g.value=!1}function G(V){b.value=V,y.value=!0}function Y(){b.value=null,y.value=!1}function ne(V){b.value=V,w.value=!0}function se(){b.value=null,w.value=!1}async function Ve(){const V=await ae.getUserCalendars();O.value=V.data}function ue(){p({start:f.value.renderProps.start,end:f.value.renderProps.end})}const Ee=(V,{date:x})=>{if(!M.value){const U=new Date(x),q=new Date(x);D.value={color:"#2196F3",start:U,end:q,timed:!1},h.value=!0}};async function Me(V){L.value=!0;var x={start:ye.fromMillis(V.start).toJSDate(),end:V.end?ye.fromMillis(V.end).toJSDate():null};const U=V.calendar;if(!V.timed)x.start_date=x.start.toISOString().split("T")[0],x.end_date=x.end.toISOString().split("T")[0],x.allDay=V.allDay;else if(!V.end){const q=ye.fromJSDate(x.start);q.plus({hours:1}),x.end=q}try{await ae.patchUserEvent(U.pk,V.id,x),l.displayNotification({msg:a("Event updated")})}finally{L.value=!1}}const je=(V,x=!0)=>x?V-V%9e5:V+(9e5-V%9e5),qe=V=>new Date(V.year,V.month-1,V.day,V.hour,V.minute).getTime(),on=V=>{const x=parseInt(V.color.substring(1),16),U=x>>16&255,q=x>>8&255,ve=x>>0&255;return V===o.value?`rgba(${U}, ${q}, ${ve}, 0.7)`:V===k.value?`rgba(${U}, ${q}, ${ve}, 0.7)`:V.color},sn=(V,{event:x,timed:U})=>{x&&(o.value=x,U?(i.value=null,A.value=null):m.value=null)},un=(V,x)=>{const U=qe(x);if(o.value&&i.value===null){const q=o.value.start;i.value=U-q}else I.value=je(U),k.value={title:a("New event"),color:"#2196F3",start:I.value,end:I.value,timed:!0},v.value.push(k.value)},dn=(V,x)=>{const U=qe(x);o.value&&m.value===null&&(m.value=U-o.value.start)},cn=(V,x)=>{const U=qe(x);if(o.value&&i.value!==null){j.value=!0;const q=o.value.start,ie=o.value.end-q,ke=U-i.value,Re=je(ke),ut=Re+ie;o.value.start=Re,o.value.end=ut}else if(k.value&&I.value!==null){j.value=!0;const q=je(U,!1),ve=Math.min(q,I.value),ie=Math.max(q,I.value);k.value.start=ve,k.value.end=ie}},fn=(V,x)=>{const U=qe(x);if(o.value&&m.value!==null){j.value=!0;const q=o.value.start,ie=o.value.end-q,ke=U-m.value,Re=je(ke),ut=Re+ie;o.value.start=Re,o.value.end=ut}},vn=V=>{k.value=V,I.value=V.start,A.value=V.end},mn=()=>{k.value&&!A.value?(D.value=k.value,h.value=!0):(j.value?o.value?Me(o.value):k.value&&Me(k.value):(M.value=o.value,h.value=!0),i.value=null,o.value=null,k.value=null,I.value=null,A.value=null,j.value=!1)},yn=()=>{o.value&&(j.value?Me(o.value):(M.value=o.value,h.value=!0)),o.value=null,m.value=null,j.value=!1},gn=()=>{if(k.value)if(A.value)k.value.end=A.value;else{const V=v.value.indexOf(k.value);V!==-1&&v.value.splice(V,1)}k.value=null,I.value=null,i.value=null,o.value=null,j.value=!1};function hn(){h.value=!1,M.value=null}function pn(V){b.value=V,C.value=!0}async function kn(V){await s.value.open(a("Warning"),a("Do you really want to delete this calendar?"),{color:"warning"})&&(await ae.deleteUserCalendar(V),await Ve(),v.value=[],f.value.checkChange(),l.displayNotification({msg:a("Calendar deleted")}))}return Ue(d,V=>{u.setLeftMenuItems(V)},{immediate:!0}),nt(()=>{f.value.scrollToTime("07:00"),f.value.checkChange()}),[t,n]=Fn(()=>Ve()),await t,n(),(V,x)=>(ee(),xe("div",Cr,[_("div",_r,P(B(a)("Calendar")),1),f.value?(ee(),me(Xn,{key:0,color:"white",flat:""},{default:S(()=>[c(re,{class:"me-4",color:"grey-darken-2",variant:"outlined",onClick:E},{default:S(()=>[Z(P(B(a)("Today")),1)]),_:1}),c(re,{color:"grey-darken-2",size:"small",variant:"text",icon:"",onClick:W},{default:S(()=>[c(pe,{size:"small"},{default:S(()=>[...x[9]||(x[9]=[Z(" mdi-chevron-left ",-1)])]),_:1})]),_:1}),c(re,{color:"grey-darken-2",size:"small",variant:"text",icon:"",onClick:H},{default:S(()=>[c(pe,{size:"small"},{default:S(()=>[...x[10]||(x[10]=[Z(" mdi-chevron-right ",-1)])]),_:1})]),_:1}),c(Kn,null,{default:S(()=>[Z(P(f.value.title),1)]),_:1}),c(ra,{location:"bottom end"},{activator:S(({props:U})=>[c(re,te({color:"grey-darken-2",variant:"outlined"},U),{default:S(()=>[_("span",null,P(N[F.value]),1),c(pe,{end:""},{default:S(()=>[...x[11]||(x[11]=[Z(" mdi-menu-down ",-1)])]),_:1})]),_:1},16)]),default:S(()=>[c(la,null,{default:S(()=>[c(it,{onClick:x[0]||(x[0]=U=>F.value="day")},{default:S(()=>[c(dt,null,{default:S(()=>[Z(P(B(a)("Day")),1)]),_:1})]),_:1}),c(it,{onClick:x[1]||(x[1]=U=>F.value="week")},{default:S(()=>[c(dt,null,{default:S(()=>[Z(P(B(a)("Week")),1)]),_:1})]),_:1}),c(it,{onClick:x[2]||(x[2]=U=>F.value="month")},{default:S(()=>[c(dt,null,{default:S(()=>[Z(P(B(a)("Month")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})):Se("",!0),_("div",Sr,[c(wr,{ref_key:"calendarRef",ref:f,modelValue:T.value,"onUpdate:modelValue":x[3]||(x[3]=U=>T.value=U),events:v.value,"first-day-of-week":"1",type:F.value,locale:B(r),"event-name":"title","event-color":on,"event-ripple":!1,"onMousedown:event":sn,"onMousedown:time":un,"onMousedown:day":dn,"onClick:day":Ee,onMouseleave:gn,"onMousemove:time":cn,"onMousemove:day":fn,"onMouseup:time":mn,"onMouseup:day":yn,onChange:p},{event:S(({event:U,timed:q,eventSummary:ve})=>[_("div",Dr,[(ee(),me(Nn(ve)))]),q?(ee(),xe("div",{key:0,class:"v-event-drag-bottom",onMousedown:He(ie=>vn(U),["stop"])},null,40,Tr)):Se("",!0)]),_:1},8,["modelValue","events","type","locale"])]),c(Oe,{modelValue:g.value,"onUpdate:modelValue":x[4]||(x[4]=U=>g.value=U),persistent:"","max-width":"800px"},{default:S(()=>[c(B(ga),{calendar:b.value,onClose:K},null,8,["calendar"])]),_:1},8,["modelValue"]),c(Oe,{modelValue:C.value,"onUpdate:modelValue":x[5]||(x[5]=U=>C.value=U),persistent:"","max-width":"800px"},{default:S(()=>[c(B(ma),{"initial-calendar":b.value,onColorChanged:ue,onClose:X},null,8,["initial-calendar"])]),_:1},8,["modelValue"]),c(Oe,{modelValue:h.value,"onUpdate:modelValue":x[6]||(x[6]=U=>h.value=U),persistent:"","max-width":"800px"},{default:S(()=>[c(B(wa),{info:D.value,event:M.value,onRefreshCalendar:ue,onClose:hn},null,8,["info","event"])]),_:1},8,["modelValue"]),c(Oe,{modelValue:y.value,"onUpdate:modelValue":x[7]||(x[7]=U=>y.value=U),persistent:"","max-width":"800px"},{default:S(()=>[b.value?(ee(),me(B(ca),{key:0,"calendar-pk":b.value.pk,onClose:Y},null,8,["calendar-pk"])):Se("",!0)]),_:1},8,["modelValue"]),c(Oe,{modelValue:w.value,"onUpdate:modelValue":x[8]||(x[8]=U=>w.value=U),persistent:"","max-width":"800px"},{default:S(()=>[b.value?(ee(),me(B(_a),{key:0,calendar:b.value,onEventsImported:ue,onClose:se},null,8,["calendar"])):Se("",!0)]),_:1},8,["modelValue"]),c(B(Zn),{ref_key:"confirm",ref:s},null,512)]))}},rl=Mn(xr,[["__scopeId","data-v-3431ff62"]]);export{rl as default};
@@ -0,0 +1 @@
1
+ import{_ as k,j as _,i as V,d as B,m as o,o as a,e as i,t as u,z as m,F as r,v as f,c as L,n as F}from"./index-jui3edpn.js";import{c as N}from"./VAvatar-CXV_FqpP.js";const P={class:"m-label"},w=["onClick"],z={class:"text-grey-darken-1"},I={__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,C)=>(a(),o("div",{key:C,class:"d-flex flex-grow-0"},[(a(!0),o(r,null,f(y,(t,g)=>(a(),o("div",{key:g,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:S=>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",z,u(t.label),1)],10,w))),128))]))),128))],64))}},A=k(I,[["__scopeId","data-v-762c41e2"]]);export{A as C};
@@ -0,0 +1,2 @@
1
+ import{i as b,c as ue,o as O,w as c,a,l as Le,t as W,e as S,f as h,m as Ve,F as ce,v as ol,I as Te,B as nl,A as Z,J as ul,K as sl,L as il,ah as ne,P as Re,aj as rl,a9 as dl,j as H,a1 as ie,ak as cl,x as K,Q as ml,bU as vl,bV as fl,al as Pe,an as pl,ao as gl,a2 as hl,z as yl,b as Vl,p as bl,u as xl,C as Cl,s as kl,n as ye}from"./index-jui3edpn.js";import{d as wl}from"./index-Dv00bmw9.js";import{a as G}from"./webmail-CYDXU0DS.js";import{V as qe,r as ke}from"./VForm-fdQ5d-CH.js";import{c as _l,V as Sl,b as Fl,a as Dl}from"./VCard-CBtX8JF-.js";import{V as Al}from"./VFileInput-C7J_qVmk.js";import{V as U,Y as Be,q as $e,c as we,b as Il,e as El,Z as Ml}from"./VAvatar-CXV_FqpP.js";import{V as Ul}from"./VTable-f7wcr2AZ.js";import{V as Tl}from"./VSpacer-CuSkdJZL.js";import{_ as Rl}from"./HtmlEditor-CyBl5wj2.js";import{V as Pl}from"./VTextarea-B6bGYcC3.js";import{_ as Bl}from"./EmailSchedulingForm-CQL5Vfdr.js";import{c as $l}from"./contacts-DMJlQTe0.js";import{f as zl,w as re,g as jl,V as Ne,a as He,b as _e,d as Ll,h as ql}from"./VMenu-BpmJf4X2.js";import{V as Nl}from"./VToolbar-CB6wwtYc.js";import{V as de,a as $}from"./VRow-83Qnr5iB.js";import{c as Hl,d as Ol,e as Kl,f as Gl,V as ze,a as Yl}from"./VSelect-BcmGFGif.js";import{a as Jl,b as Ql}from"./VInput-BwHvhzAe.js";import{V as Se,b as Wl}from"./VTextField-BPIvtrn4.js";import{b as Zl}from"./VProgressCircular-DRw_-iNj.js";import{u as Xl,m as ea,h as la}from"./filter-Dihm6o59.js";import{V as aa}from"./VCheckboxBtn-B0mIT3E0.js";import{u as ta}from"./tag-WF93n81Q.js";import{V as je}from"./VDialog-lKtBdqnp.js";const oa={class:"w-100 d-flex justify-center"},na={__name:"AttachmentsDialog",props:{sessionUid:{type:String,default:null}},emits:["close"],setup(l,{emit:Y}){const y=l,n=Y,F=b([]),g=b(),r=b(),w=b(!1),z=()=>{n("close")},A=async()=>{const{valid:i}=await r.value.validate();if(!i)return;const _=new FormData;_.append("attachment",g.value),w.value=!0;try{const I=await G.uploadAttachment(y.sessionUid,_);F.value.push(I.data),r.value.reset()}finally{w.value=!1}},D=async i=>{await G.removeAttachment(y.sessionUid,i.tmpname);const _=F.value.findIndex(I=>I.tmpname===i.tmpname);F.value.splice(_,1)};return G.getComposeSession(y.sessionUid).then(i=>{F.value=i.data.attachments}),(i,_)=>(O(),ue(Dl,null,{default:c(()=>[a(_l,null,{default:c(()=>[Le(W(i.$gettext("Attachments")),1)]),_:1}),a(Sl,null,{default:c(()=>[a(qe,{ref_key:"formRef",ref:r},{default:c(()=>[a(Al,{modelValue:g.value,"onUpdate:modelValue":_[0]||(_[0]=I=>g.value=I),density:"compact",variant:"outlined",rules:[h(ke).required]},null,8,["modelValue","rules"]),S("div",oa,[a(U,{color:"primary",variant:"tonal",text:i.$gettext("Attach"),onClick:A},null,8,["text"])])]),_:1},512),a(Ul,{class:"mt-4 border-sm"},{default:c(()=>[S("tbody",null,[(O(!0),Ve(ce,null,ol(F.value,I=>(O(),Ve("tr",{key:I.fname},[S("td",null,W(I.fname),1),S("td",null,[a(U,{icon:"mdi-trash-can",color:"error",size:"small",variant:"text",onClick:v=>D(I)},null,8,["onClick"])])]))),128))])]),_:1})]),_:1}),a(Fl,null,{default:c(()=>[a(Tl),a(U,{text:i.$gettext("Close"),variant:"flat",onClick:z},null,8,["text"])]),_:1})]),_:1}))}},ua={class:"mt-8"},sa={__name:"BodyEditor",props:Te({editorMode:{type:String,default:null}},{modelValue:{},modelModifiers:{}}),emits:Te(["onToggleHtmlMode"],["update:modelValue"]),setup(l,{emit:Y}){const y=l,n=nl(l,"modelValue"),F=Y,g=b(!1),r=b(),w=()=>{g.value=!g.value,F("onToggleHtmlMode",g.value)};return Z(()=>y.editorMode,z=>{g.value=z==="html"}),(z,A)=>g.value?(O(),ue(h(Rl),{key:0,modelValue:n.value,"onUpdate:modelValue":A[1]||(A[1]=D=>n.value=D),class:"d-flex flex-column flex-grow-1 mt-4"},{"append-toolbar":c(()=>[a(Be,{modelValue:r.value,"onUpdate:modelValue":A[0]||(A[0]=D=>r.value=D),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:c(()=>[a(U,{text:"HTML",size:"small",onClick:w})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])):(O(),Ve(ce,{key:1},[S("div",ua,[a(Be,{modelValue:r.value,"onUpdate:modelValue":A[2]||(A[2]=D=>r.value=D),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:c(()=>[a(U,{text:"HTML",size:"small",onClick:w})]),_:1},8,["modelValue"])]),a(Pl,{modelValue:n.value,"onUpdate:modelValue":A[3]||(A[3]=D=>n.value=D),class:"border-sm"},null,8,["modelValue"])],64))}},ia=sl({alwaysFilter:Boolean,autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...ea({filterKeys:["title"]}),...Kl({hideNoData:!0,returnObject:!0}),...ml(Wl({modelValue:null,role:"combobox"}),["validationValue","dirty"])},"VCombobox"),Ce=ul()({name:"VCombobox",props:ia(),emits:{"update:focused":l=>!0,"update:modelValue":l=>!0,"update:search":l=>!0,"update:menu":l=>!0},setup(l,Y){var Ae;let{emit:y,slots:n}=Y;const{t:F}=il(),g=b(),r=ne(!1),w=ne(!0),z=ne(!1),A=b(),D=b(),i=ne(-1);let _=!1;const{items:I,transformIn:v,transformOut:me}=zl(l),{textColorClasses:X,textColorStyles:J}=Zl(()=>{var e;return(e=g.value)==null?void 0:e.color}),{InputIcon:ee}=Jl(l),d=Re(l,"modelValue",[],e=>v(rl(e)),e=>{const o=me(e);return l.multiple?o:o[0]??null}),j=Ql(l),ve=dl(()=>l.closableChips&&!j.isReadonly.value&&!j.isDisabled.value),le=H(()=>!!(l.chips||n.chip)),T=H(()=>le.value||!!n.selection),R=ne(!l.multiple&&!T.value?((Ae=d.value[0])==null?void 0:Ae.title)??"":""),Q=ne(null),x=H({get:()=>R.value,set:async e=>{var o;if(R.value=e??"",e===null||e===""&&!l.multiple&&!T.value?d.value=[]:!l.multiple&&!T.value&&(d.value=[re(l,e)],ie(()=>{var f;return(f=D.value)==null?void 0:f.scrollToIndex(0)})),e&&l.multiple&&((o=l.delimiters)!=null&&o.length)){const f=Fe(e);f.length>1&&(De(f),R.value="")}e||(i.value=-1),w.value=!e}}),se=H(()=>typeof l.counterValue=="function"?l.counterValue(d.value):typeof l.counterValue=="number"?l.counterValue:l.multiple?d.value.length:x.value.length),{filteredItems:ae,getMatches:be}=Xl(l,I,()=>Q.value??(l.alwaysFilter||!w.value?x.value:"")),L=H(()=>l.hideSelected&&Q.value===null?ae.value.filter(e=>!d.value.some(o=>o.value===e.value)):ae.value),te=H(()=>l.hideNoData&&!L.value.length||j.isReadonly.value||j.isDisabled.value),u=Re(l,"menu"),t=H({get:()=>u.value,set:e=>{var o;u.value&&!e&&((o=A.value)!=null&&o.ΨopenChildren.size)||e&&te.value||(u.value=e)}}),{menuId:s,ariaExpanded:fe,ariaControls:pe}=Hl(l,t);Z(R,e=>{_?ie(()=>_=!1):r.value&&!t.value&&(t.value=!0),y("update:search",e)}),Z(d,e=>{var o;!l.multiple&&!T.value&&(R.value=((o=e[0])==null?void 0:o.title)??"")});const ge=H(()=>d.value.map(e=>e.value)),C=H(()=>L.value.find(e=>e.type==="item"&&!e.props.disabled)),P=H(()=>{var o;return(l.autoSelectFirst===!0||l.autoSelectFirst==="exact"&&x.value===((o=C.value)==null?void 0:o.title))&&L.value.length>0&&!w.value&&!z.value}),xe=b(),Oe=Ol(xe,g);function Ke(e){_=!0,ie(()=>_=!1),l.openOnClear&&(t.value=!0)}function Ge(){te.value||(t.value=!0)}function Ye(e){te.value||(r.value&&(e.preventDefault(),e.stopPropagation()),t.value=!t.value)}function Je(e){var o;(Pe(e)||e.key==="Backspace")&&((o=g.value)==null||o.focus())}function Qe(e){var p,B,m,E;if(fl(e)||j.isReadonly.value)return;const o=(p=g.value)==null?void 0:p.selectionStart,f=d.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(e.key)&&e.preventDefault(),["Enter","ArrowDown"].includes(e.key)&&(t.value=!0),["Escape"].includes(e.key)&&(t.value=!1),P.value&&["Enter","Tab"].includes(e.key)&&C.value&&!d.value.some(k=>{let{value:oe}=k;return oe===C.value.value})&&q(C.value),e.key==="ArrowDown"&&P.value&&((B=xe.value)==null||B.focus("next")),e.key==="Enter"&&x.value&&(q(re(l,x.value),!0,!0),T.value&&(R.value="")),["Backspace","Delete"].includes(e.key)){if(!l.multiple&&T.value&&d.value.length>0&&!x.value)return q(d.value[0],!1);if(~i.value){e.preventDefault();const k=i.value;q(d.value[i.value],!1),i.value=k>=f-1?f-2:k}else e.key==="Backspace"&&!x.value&&(i.value=f-1);return}if(l.multiple)if(e.key==="ArrowLeft"){if(i.value<0&&o&&o>0)return;const k=i.value>-1?i.value-1:f-1;d.value[k]?i.value=k:(i.value=-1,(m=g.value)==null||m.setSelectionRange(x.value.length,x.value.length))}else if(e.key==="ArrowRight"){if(i.value<0)return;const k=i.value+1;d.value[k]?i.value=k:(i.value=-1,(E=g.value)==null||E.setSelectionRange(0,0))}else~i.value&&Pe(e)&&(i.value=-1)}function We(e){var p;const o=((p=e==null?void 0:e.clipboardData)==null?void 0:p.getData("Text"))??"",f=Fe(o);f.length>1&&l.multiple&&(e.preventDefault(),De(f))}function Ze(){var e;l.eager&&((e=D.value)==null||e.calculateVisibleItems())}function Xe(){var e;r.value&&((e=g.value)==null||e.focus()),w.value=!0,Q.value=null}function q(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(!(!e||e.props.disabled))if(l.multiple){const p=d.value.findIndex(m=>(l.valueComparator||$e)(m.value,e.value)),B=o??!~p;if(~p){const m=B?[...d.value,e]:[...d.value];m.splice(p,1),d.value=m}else B&&(d.value=[...d.value,e]);l.clearOnSelect&&(x.value="")}else{const p=o!==!1;d.value=p?[e]:[],(!w.value||l.alwaysFilter)&&R.value&&(Q.value=R.value),R.value=p&&!T.value?e.title:"",ie(()=>{t.value=f,w.value=!0})}}function Fe(e){const f=[`
2
+ `,...l.delimiters??[]].map(vl).join("|");return e.split(new RegExp(`(?:${f})+`))}async function De(e){for(let o of e)o=o.trim(),o&&(q(re(l,o)),await ie())}function el(e){r.value=!0,setTimeout(()=>{z.value=!0})}function ll(e){z.value=!1}return Z(r,(e,o)=>{if(!(e||e===o)&&(i.value=-1,t.value=!1,x.value)){if(l.multiple){q(re(l,x.value));return}if(!T.value)return;d.value.some(f=>{let{title:p}=f;return p===x.value})?R.value="":q(re(l,x.value))}}),Z(t,e=>{if(!l.hideSelected&&e&&d.value.length&&w.value){const o=L.value.findIndex(f=>d.value.some(p=>(l.valueComparator||$e)(p.value,f.value)));cl&&window.requestAnimationFrame(()=>{var f;o>=0&&((f=D.value)==null||f.scrollToIndex(o))})}e&&(Q.value=null)}),Z(I,(e,o)=>{t.value||r.value&&!o.length&&e.length&&(t.value=!0)}),ta(()=>{const e=!!(!l.hideNoData||L.value.length||n["prepend-item"]||n["append-item"]||n["no-data"]),o=d.value.length>0,f=Se.filterProps(l);return a(Se,K({ref:g},f,{modelValue:x.value,"onUpdate:modelValue":p=>x.value=p,focused:r.value,"onUpdate:focused":p=>r.value=p,validationValue:d.externalValue,counterValue:se.value,dirty:o,class:["v-combobox",{"v-combobox--active-menu":t.value,"v-combobox--chips":!!l.chips,"v-combobox--selection-slot":!!T.value,"v-combobox--selecting-index":i.value>-1,[`v-combobox--${l.multiple?"multiple":"single"}`]:!0},l.class],style:l.style,readonly:j.isReadonly.value,placeholder:o?void 0:l.placeholder,"onClick:clear":Ke,"onMousedown:control":Ge,onKeydown:Qe,onPaste:We,"aria-expanded":fe.value,"aria-controls":pe.value}),{...n,default:p=>{let{id:B}=p;return S(ce,null,[a(Ne,K({id:s.value,ref:A,modelValue:t.value,"onUpdate:modelValue":m=>t.value=m,activator:"parent",contentClass:"v-combobox__content",disabled:te.value,eager:l.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,onAfterEnter:Ze,onAfterLeave:Xe},l.menuProps),{default:()=>[e&&a(He,K({ref:xe,filterable:!0,selected:ge.value,selectStrategy:l.multiple?"independent":"single-independent",onMousedown:m=>m.preventDefault(),selectable:!0,onKeydown:Je,onFocusin:el,onFocusout:ll,tabindex:"-1","aria-live":"polite","aria-labelledby":`${B.value}-label`,"aria-multiselectable":l.multiple,color:l.itemColor??l.color},Oe,l.listProps),{default:()=>{var m,E,k;return[(m=n["prepend-item"])==null?void 0:m.call(n),!L.value.length&&!l.hideNoData&&(((E=n["no-data"])==null?void 0:E.call(n))??a(_e,{key:"no-data",title:F(l.noDataText)},null)),a(Gl,{ref:D,renderless:!0,items:L.value,itemKey:"value"},{default:oe=>{var Ee,Me,Ue;let{item:V,index:N,itemRef:M}=oe;const Ie=K(V.props,{ref:M,key:V.value,active:P.value&&V===C.value?!0:void 0,onClick:()=>q(V,null),"aria-posinset":N+1,"aria-setsize":L.value.length});return V.type==="divider"?((Ee=n.divider)==null?void 0:Ee.call(n,{props:V.raw,index:N}))??a(Ll,K(V.props,{key:`divider-${N}`}),null):V.type==="subheader"?((Me=n.subheader)==null?void 0:Me.call(n,{props:V.raw,index:N}))??a(ql,K(V.props,{key:`subheader-${N}`}),null):((Ue=n.item)==null?void 0:Ue.call(n,{item:V,index:N,props:Ie}))??a(_e,K(Ie,{role:"option"}),{prepend:he=>{let{isSelected:al}=he;return S(ce,null,[l.multiple&&!l.hideSelected?a(aa,{key:V.value,modelValue:al,ripple:!1,tabindex:"-1","aria-hidden":!0,onClick:tl=>tl.preventDefault()},null):void 0,V.props.prependAvatar&&a(Il,{image:V.props.prependAvatar},null),V.props.prependIcon&&a(we,{icon:V.props.prependIcon},null)])},title:()=>{var he;return w.value?V.title:la("v-combobox",V.title,(he=be(V))==null?void 0:he.title)}})}}),(k=n["append-item"])==null?void 0:k.call(n)]}})]}),d.value.map((m,E)=>{function k(M){M.stopPropagation(),M.preventDefault(),q(m,!1)}const oe=K(ze.filterProps(m.props),{"onClick:close":k,onKeydown(M){M.key!=="Enter"&&M.key!==" "||(M.preventDefault(),M.stopPropagation(),k(M))},onMousedown(M){M.preventDefault(),M.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),V=le.value?!!n.chip:!!n.selection,N=V?gl(le.value?n.chip({item:m,index:E,props:oe}):n.selection({item:m,index:E})):void 0;if(!(V&&!N))return S("div",{key:m.value,class:yl(["v-combobox__selection",E===i.value&&["v-combobox__selection--selected",X.value]]),style:hl(E===i.value?J.value:{})},[le.value?n.chip?a(El,{key:"chip-defaults",defaults:{VChip:{closable:ve.value,size:"small",text:m.title}}},{default:()=>[N]}):a(ze,K({key:"chip",closable:ve.value,size:"small",text:m.title,disabled:m.props.disabled},oe),null):N??S("span",{class:"v-combobox__selection-text"},[m.title,l.multiple&&E<d.value.length-1&&S("span",{class:"v-combobox__selection-comma"},[Le(",")])])])})])},"append-inner":function(){var E,k;for(var p=arguments.length,B=new Array(p),m=0;m<p;m++)B[m]=arguments[m];return S(ce,null,[(E=n["append-inner"])==null?void 0:E.call(n,...B),(!l.hideNoData||l.items.length)&&l.menuIcon?a(we,{class:"v-combobox__menu-icon",color:(k=g.value)==null?void 0:k.fieldIconColor,icon:l.menuIcon,onMousedown:Ye,onClick:pl,"aria-hidden":!0,tabindex:"-1"},null):void 0,l.appendInnerIcon&&a(ee,{key:"append-icon",name:"appendInner",color:B[0].iconColor.value},null)])}})}),jl({isFocused:r,isPristine:w,menu:t,search:x,selectionIndex:i,filteredItems:ae,select:q},g)}}),ra={class:"position-relative h-100"},da={class:"bg-white rounded-lg pa-4 position-relative h-100 d-flex flex-column"},Ra={__name:"ComposeEmailForm",props:{originalEmail:{type:Object,default:null},replyAll:{type:Boolean,default:!1}},emits:["onToggleHtmlMode"],setup(l,{emit:Y}){const y=l,n=Y,F=Cl(),g=kl(),{$gettext:r}=Vl(),{displayNotification:w,reloadData:z}=bl(),A=xl(),D=b([]),i=b(0),_=b([]),I=b("plain"),v=b({}),me=b(),X=b(!1),J=b(!1),ee=b(!1),d=b(!1),j=b(!1),ve=()=>{g.push({name:"MailboxView"})},le=()=>{if(v.value={sender:A.authUser.username},y.originalEmail){if(v.value.to=y.originalEmail.reply_to?[y.originalEmail.reply_to]:[y.originalEmail.from_address.address],y.replyAll){let u=y.originalEmail.to.filter(t=>t.address!==A.authUser.username).map(t=>t.fulladdress);y.originalEmail.cc&&y.originalEmail.cc.length&&(u=u.concat(y.originalEmail.cc.map(t=>t.fulladdress))),v.value.cc=u,J.value=!0}v.value.subject=y.originalEmail.subject,v.value.body=y.originalEmail.body,y.originalEmail.message_id&&(v.value.in_reply_to=y.originalEmail.message_id)}},T=async u=>{var pe,ge;const{valid:t}=await me.value.validate();if(!t)return;j.value=!0;const s={...v.value},fe=[];for(const C of s.to)fe.push(typeof C=="string"?C:C.emails[0].address);if(s.to=fe,(pe=s.cc)!=null&&pe.length){const C=[];for(const P of s.cc)C.push(typeof P=="string"?P:P.emails[0].address);s.cc=C}if((ge=s.bcc)!=null&&ge.length){const C=[];for(const P of s.bcc)C.push(typeof P=="string"?P:P.emails[0].address);s.bcc=C}try{await G.sendEmailFromComposeSession(F.query.uid,s),g.push({name:"MailboxView"});const C=s.scheduled_datetime?r("Email scheduled"):r("Email sent");u&&z(),w({msg:C})}catch(C){console.log(C)}finally{j.value=!1}},R=async u=>{v.value.scheduled_datetime=u,await T(!0)},Q=()=>{X.value=!0},x=async()=>{X.value=!1;const u=await G.getComposeSession(F.query.uid);i.value=u.data.attachments.length},se=wl(async u=>{if(u){const t={search:u},s=await $l.getContacts(t);s.data.count>0&&(_.value=s.data.results)}else _.value=[]},500),ae=u=>{u.signature&&(v.value.body?v.value.body+=u.signature:v.value.body=u.signature),I.value=u.editor_format},be=()=>{var u;if(!((u=v.value.to)!=null&&u.length)){w({msg:r("You must provide one recipient at least"),type:"info"});return}d.value=!0},L=()=>{d.value=!1},te=u=>typeof u=="string"?u:u.display_name||`${u.first_name} ${u.last_name}`;return Z(()=>y.originalEmail,()=>{le()},{immediate:!0}),F.query.uid?G.getComposeSession(F.query.uid).then(u=>{i.value=u.data.attachments.length,ae(u.data)}):G.createComposeSession().then(u=>{const t={...F.query,uid:u.data.uid};g.push({name:F.name,query:t}),ae(u.data)}),G.getAllowedSenders().then(u=>{D.value=u.data}),(u,t)=>(O(),Ve("div",ra,[S("div",da,[a(Nl,{color:"white"},{default:c(()=>[a(U,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:ve}),a(Ml,{color:"primary",rounded:"lg",density:"compact",divided:""},{default:c(()=>[a(U,{class:"ml-2","prepend-icon":"mdi-send",loading:j.value,text:h(r)("Send"),onClick:T},null,8,["loading","text"]),a(U,{size:"small",icon:""},{default:c(()=>[a(we,{icon:"mdi-chevron-down"}),a(Ne,{activator:"parent"},{default:c(()=>[a(He,null,{default:c(()=>[a(_e,{"prepend-icon":"mdi-send-clock-outline",title:h(r)("Schedule sending"),onClick:be},null,8,["title"])]),_:1})]),_:1})]),_:1})]),_:1}),a(U,{class:"ml-2",variant:"tonal","prepend-icon":"mdi-paperclip",text:h(r)("Attachments")+` (${i.value})`,onClick:Q},null,8,["text"])]),_:1}),a(qe,{ref_key:"formRef",ref:me,class:"flex-grow-1 d-flex flex-column"},{default:c(()=>[S("div",null,[a(de,{class:"align-center"},{default:c(()=>[a($,{cols:"2"},{default:c(()=>[S("span",null,W(h(r)("From")),1)]),_:1}),a($,{cols:"8"},{default:c(()=>[a(Yl,{modelValue:v.value.sender,"onUpdate:modelValue":t[0]||(t[0]=s=>v.value.sender=s),items:D.value,"item-title":"address","item-value":"address",variant:"outlined",density:"compact","hide-details":"auto",rules:[h(ke).required]},null,8,["modelValue","items","rules"])]),_:1})]),_:1}),a(de,{class:"align-center"},{default:c(()=>[a($,{cols:"2"},{default:c(()=>[S("span",null,W(h(r)("To")),1)]),_:1}),a($,{cols:"8"},{default:c(()=>[a(Ce,{modelValue:v.value.to,"onUpdate:modelValue":t[1]||(t[1]=s=>v.value.to=s),items:_.value,"item-title":s=>te(s),"return-object":"",placeholder:h(r)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"",rules:[h(ke).required],"onUpdate:search":h(se)},null,8,["modelValue","items","item-title","placeholder","rules","onUpdate:search"])]),_:1}),a($,{cols:"2"},{default:c(()=>[J.value?ye("",!0):(O(),ue(U,{key:0,text:h(r)("Cc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[2]||(t[2]=s=>J.value=!0)},null,8,["text"])),ee.value?ye("",!0):(O(),ue(U,{key:1,text:h(r)("Bcc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[3]||(t[3]=s=>ee.value=!0)},null,8,["text"]))]),_:1})]),_:1}),J.value?(O(),ue(de,{key:0,class:"align-center"},{default:c(()=>[a($,{cols:"2"},{default:c(()=>[S("span",null,W(h(r)("Cc")),1),a(U,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[4]||(t[4]=s=>J.value=!1)})]),_:1}),a($,{cols:"8"},{default:c(()=>[a(Ce,{modelValue:v.value.cc,"onUpdate:modelValue":t[5]||(t[5]=s=>v.value.cc=s),items:_.value,"item-title":"display_name","return-object":"",placeholder:h(r)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(se)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ye("",!0),ee.value?(O(),ue(de,{key:1,class:"align-center"},{default:c(()=>[a($,{cols:"2"},{default:c(()=>[S("span",null,W(h(r)("Bcc")),1),a(U,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[6]||(t[6]=s=>ee.value=!1)})]),_:1}),a($,{cols:"8"},{default:c(()=>[a(Ce,{modelValue:v.value.bcc,"onUpdate:modelValue":t[7]||(t[7]=s=>v.value.bcc=s),items:_.value,"item-title":"display_name","return-object":"",placeholder:h(r)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(se)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ye("",!0),a(de,{class:"align-center"},{default:c(()=>[a($,{cols:"2"},{default:c(()=>[S("span",null,W(h(r)("Subject")),1)]),_:1}),a($,{cols:"8"},{default:c(()=>[a(Se,{modelValue:v.value.subject,"onUpdate:modelValue":t[8]||(t[8]=s=>v.value.subject=s),variant:"outlined",density:"compact","hide-details":"auto"},null,8,["modelValue"])]),_:1})]),_:1})]),a(h(sa),{modelValue:v.value.body,"onUpdate:modelValue":t[9]||(t[9]=s=>v.value.body=s),"editor-mode":I.value,onOnToggleHtmlMode:t[10]||(t[10]=s=>n("onToggleHtmlMode",s))},null,8,["modelValue","editor-mode"])]),_:1},512)]),a(je,{modelValue:X.value,"onUpdate:modelValue":t[11]||(t[11]=s=>X.value=s),"max-width":"800"},{default:c(()=>[a(h(na),{"session-uid":h(F).query.uid,onClose:x},null,8,["session-uid"])]),_:1},8,["modelValue"]),a(je,{modelValue:d.value,"onUpdate:modelValue":t[12]||(t[12]=s=>d.value=s),"max-width":"800"},{default:c(()=>[a(h(Bl),{onSchedule:R,onClose:L})]),_:1},8,["modelValue"])]))}};export{Ra as _};
@@ -0,0 +1 @@
1
+ .v-combobox--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-combobox .v-field .v-text-field__prefix,.v-combobox .v-field .v-text-field__suffix,.v-combobox .v-field .v-field__input,.v-combobox .v-field .v-field__input>input,.v-combobox .v-field.v-field{cursor:text}.v-combobox .v-field .v-field__input>input{flex:1 1}.v-combobox .v-field input{min-width:64px}.v-combobox .v-field:not(.v-field--focused) input{min-width:0}.v-combobox .v-field--dirty .v-combobox__selection{margin-inline-end:2px}.v-combobox .v-combobox__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-combobox__content{overflow:hidden}.v-combobox__content{box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-menu>.v-overlay__content.v-combobox__content{border-radius:4px}.v-combobox__mask{background:rgb(var(--v-theme-surface-light))}.v-combobox__selection{display:inline-flex;align-items:center;height:1.5rem;letter-spacing:inherit;line-height:inherit;max-width:calc(100% - 4px)}.v-combobox__selection:first-child{margin-inline-start:0}.v-combobox--selecting-index .v-combobox__selection{opacity:var(--v-medium-emphasis-opacity)}.v-combobox--selecting-index .v-combobox__selection--selected{opacity:1}.v-combobox--selecting-index .v-field__input>input{caret-color:transparent}.v-combobox--single:not(.v-combobox--selection-slot).v-text-field input{flex:1 1;position:absolute;left:0;right:0;width:100%;padding-inline:inherit}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--active input{transition:none}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--dirty:not(.v-field--focused) input{opacity:0}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--focused .v-combobox__selection{opacity:0}.v-combobox__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-combobox--active-menu .v-combobox__menu-icon{transform:rotate(180deg)}
@@ -0,0 +1 @@
1
+ import{_ as o}from"./ComposeEmailForm-BmtKwFb1.js";import{c as r,f as t,o as m}from"./index-jui3edpn.js";import"./index-Dv00bmw9.js";import"./webmail-CYDXU0DS.js";import"./VForm-fdQ5d-CH.js";import"./tag-WF93n81Q.js";import"./VInput-BwHvhzAe.js";import"./VAvatar-CXV_FqpP.js";import"./VProgressCircular-DRw_-iNj.js";import"./VMenu-BpmJf4X2.js";import"./ssrBoot-B7cr7q9U.js";import"./VCard-CBtX8JF-.js";import"./VFileInput-C7J_qVmk.js";import"./VTextField-BPIvtrn4.js";import"./VSelect-BcmGFGif.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./VTable-f7wcr2AZ.js";import"./VSpacer-CuSkdJZL.js";/* empty css */import"./HtmlEditor-CyBl5wj2.js";import"./VTextarea-B6bGYcC3.js";import"./EmailSchedulingForm-CQL5Vfdr.js";import"./VDatePicker-iFu13xIP.js";import"./VBadge-7tDx7aI3.js";import"./VPicker-BZho70wU.js";import"./VSheet-C3MaHhtw.js";import"./contacts-DMJlQTe0.js";import"./VToolbar-CB6wwtYc.js";import"./VRow-83Qnr5iB.js";import"./filter-Dihm6o59.js";import"./VDialog-lKtBdqnp.js";const K={__name:"ComposeEmailView",setup(p){return(i,e)=>(m(),r(t(o)))}};export{K as default};
@@ -0,0 +1 @@
1
+ import{b as h,i as s,c as V,w as a,a as l,M as k,l as r,t as n,ad as T,y as z,n as D,aW as L,o as _}from"./index-jui3edpn.js";import{V as S,a as B}from"./VToolbar-CB6wwtYc.js";import{V as K,b as N,a as I}from"./VCard-CBtX8JF-.js";import{V as O}from"./VSpacer-CuSkdJZL.js";import{V as b}from"./VAvatar-CXV_FqpP.js";import{V as $}from"./VDialog-lKtBdqnp.js";const R={__name:"ConfirmDialog",props:{callback_agree:{type:Function,default:null}},setup(g,{expose:x}){const{$gettext:f}=h(),m=g,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(C=>{u=C})}x({open:w});async function y(){m.callback_agree!==null&&!await m.callback_agree()||(u(!0),o.value=!1)}function v(){u(!1),o.value=!1}return(i,t)=>(_(),V($,{modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=d=>o.value=d),"max-width":e.value.width,"z-index":e.value.zIndex,onKeydown:L(v,["esc"])},{default:a(()=>[l(I,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"]),k(l(K,{class:"pa-4"},{default:a(()=>[r(n(c.value)+" ",1),z(i.$slots,"default")]),_:3},512),[[T,!!c.value]]),l(N,{class:"pt-3"},{default:a(()=>[l(O),e.value.noconfirm?D("",!0):(_(),V(b,{key:0,onClick:v},{default:a(()=>[r(n(e.value.cancelLabel),1)]),_:1})),l(b,{color:e.value.color,onClick:y},{default:a(()=>[r(n(e.value.agreeLabel),1)]),_:1},8,["color"])]),_:1})]),_:3})]),_:3},8,["modelValue","max-width","z-index"]))}};export{R as _};
@@ -0,0 +1 @@
1
+ import{_ as oe,r as Ye,c as C,o as b,w as f,a as i,bb as pe,aC as He,ah as A,j as V,ai as Ue,d as ee,A as U,aw as we,bc as Fe,a6 as q,a8 as ke,aN as be,aD as We,J as _e,K as xe,as as ze,af as Ve,R as Xe,P as Se,i as F,a9 as te,a1 as Ce,aZ as je,U as qe,e as P,x as K,F as L,ag as Te,Q as Pe,W as Ge,u as Be,s as Ze,f as O,q as Ke,m as I,v as G,n as Q,l as X,t as R,b as Me,h as Je,bd as Qe,O as et,be as tt,p as at,g as nt,y as ce}from"./index-jui3edpn.js";import{u as ot}from"./theme-_0oOYChG.js";import{V as lt}from"./VContainer-Cn-vKB3s.js";import{V as rt,a as st}from"./VApp-DM1KLQfQ.js";import{u as it}from"./logos-Dz2Gzei-.js";import{u as ut}from"./layout.store-C0g-piJn.js";import{x as ct,l as vt,n as Ee,B as dt,C as ft,o as Le,p as mt,A as ht,j as Ie,e as Ne,V as Z,c as J,b as gt,D as yt,y as pt,g as wt,a as kt,z as bt,E as _t,F as xt}from"./VAvatar-CXV_FqpP.js";import{j as $e,l as Vt,n as St,o as Ct,p as Tt,a as ne,h as Pt,b as $,q as Bt,V as ae,d as ve,c as de,e as fe,g as Mt,r as Et}from"./VMenu-BpmJf4X2.js";import{a as me}from"./VProgressCircular-DRw_-iNj.js";import{u as Ae,c as Lt,b as It}from"./tag-WF93n81Q.js";import{a as Nt,b as $t,V as At,u as Dt}from"./layout-DOO7TRTJ.js";import{u as Rt}from"./ssrBoot-B7cr7q9U.js";import{V as Ot}from"./VBadge-7tDx7aI3.js";import{a as he}from"./VCard-CBtX8JF-.js";import{V as Yt,a as Ht}from"./VRow-83Qnr5iB.js";import{V as Ut}from"./VSheet-C3MaHhtw.js";const Ft={__name:"ConnectedView",setup(e){return(s,n)=>{const u=Ye("router-view");return b(),C(rt,null,{default:f(()=>[i(lt,{fluid:"",style:{height:"100%"}},{default:f(()=>[i(u,null,{default:f(({Component:t})=>[i(pe,{name:"fade"},{default:f(()=>[(b(),C(He(t)))]),_:2},1024)]),_:1})]),_:1})]),_:1})}}},Wt=oe(Ft,[["__scopeId","data-v-b2ffa9e6"]]);function zt(e){let{rootEl:s,isSticky:n,layoutItemStyles:u}=e;const t=A(!1),v=A(0),l=V(()=>{const _=typeof t.value=="boolean"?"top":t.value;return[n.value?{top:"auto",bottom:"auto",height:void 0}:void 0,t.value?{[_]:Ue(v.value)}:{top:u.value.top}]});ee(()=>{U(n,_=>{_?window.addEventListener("scroll",k,{passive:!0}):window.removeEventListener("scroll",k)},{immediate:!0})}),we(()=>{window.removeEventListener("scroll",k)});let y=0;function k(){const _=y>window.scrollY?"up":"down",o=s.value.getBoundingClientRect(),d=parseFloat(u.value.top??0),c=window.scrollY-Math.max(0,v.value-d),a=o.height+Math.max(v.value,d)-window.scrollY-window.innerHeight,r=parseFloat(getComputedStyle(s.value).getPropertyValue("--v-body-scroll-y"))||0;o.height<window.innerHeight-d?(t.value="top",v.value=d):_==="up"&&t.value==="bottom"||_==="down"&&t.value==="top"?(v.value=window.scrollY+o.top-r,t.value=!0):_==="down"&&a<=0?(v.value=0,t.value="bottom"):_==="up"&&c<=0&&(r?t.value!=="top"&&(v.value=-c+r+d,t.value="top"):(v.value=o.top+c,t.value="top")),y=window.scrollY}return{isStuck:t,stickyStyles:l}}const Xt=100,jt=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 s=0;for(let n=e.length-1;n>0;n--){if(e[n].t===e[n-1].t)continue;const u=ge(s),t=(e[n].d-e[n-1].d)/(e[n].t-e[n-1].t);s+=(t-u)*Math.abs(t),n===e.length-1&&(s*=.5)}return ge(s)*1e3}function qt(){const e={};function s(t){Array.from(t.changedTouches).forEach(v=>{(e[v.identifier]??(e[v.identifier]=new Fe(jt))).push([t.timeStamp,v])})}function n(t){Array.from(t.changedTouches).forEach(v=>{delete e[v.identifier]})}function u(t){var _;const v=(_=e[t])==null?void 0:_.values().reverse();if(!v)throw new Error(`No samples for touch id ${t}`);const l=v[0],y=[],k=[];for(const o of v){if(l[0]-o[0]>Xt)break;y.push({t:o[0],d:o[1].clientX}),k.push({t:o[0],d:o[1].clientY})}return{x:ye(y),y:ye(k),get direction(){const{x:o,y:d}=this,[c,a]=[Math.abs(o),Math.abs(d)];return c>a&&o>=0?"right":c>a&&o<=0?"left":a>c&&d>=0?"down":a>c&&d<=0?"up":Gt()}}}return{addMovement:s,endTouch:n,getVelocity:u}}function Gt(){throw new Error}function Zt(e){let{el:s,isActive:n,isTemporary:u,width:t,touchless:v,position:l}=e;ee(()=>{window.addEventListener("touchstart",E,{passive:!0}),window.addEventListener("touchmove",B,{passive:!1}),window.addEventListener("touchend",W,{passive:!0})}),we(()=>{window.removeEventListener("touchstart",E),window.removeEventListener("touchmove",B),window.removeEventListener("touchend",W)});const y=V(()=>["left","right"].includes(l.value)),{addMovement:k,endTouch:_,getVelocity:o}=qt();let d=!1;const c=A(!1),a=A(0),r=A(0);let x;function D(m,g){return(l.value==="left"?m:l.value==="right"?document.documentElement.clientWidth-m:l.value==="top"?m:l.value==="bottom"?document.documentElement.clientHeight-m:z())-(g?t.value:0)}function Y(m){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const p=l.value==="left"?(m-r.value)/t.value:l.value==="right"?(document.documentElement.clientWidth-m-r.value)/t.value:l.value==="top"?(m-r.value)/t.value:l.value==="bottom"?(document.documentElement.clientHeight-m-r.value)/t.value:z();return g?We(p):p}function E(m){if(v.value)return;const g=m.changedTouches[0].clientX,p=m.changedTouches[0].clientY,w=25,S=l.value==="left"?g<w:l.value==="right"?g>document.documentElement.clientWidth-w:l.value==="top"?p<w:l.value==="bottom"?p>document.documentElement.clientHeight-w:z(),h=n.value&&(l.value==="left"?g<t.value:l.value==="right"?g>document.documentElement.clientWidth-t.value:l.value==="top"?p<t.value:l.value==="bottom"?p>document.documentElement.clientHeight-t.value:z());(S||h||n.value&&u.value)&&(x=[g,p],r.value=D(y.value?g:p,n.value),a.value=Y(y.value?g:p),d=r.value>-20&&r.value<80,_(m),k(m))}function B(m){const g=m.changedTouches[0].clientX,p=m.changedTouches[0].clientY;if(d){if(!m.cancelable){d=!1;return}const S=Math.abs(g-x[0]),h=Math.abs(p-x[1]);(y.value?S>h&&S>3:h>S&&h>3)?(c.value=!0,d=!1):(y.value?h:S)>3&&(d=!1)}if(!c.value)return;m.preventDefault(),k(m);const w=Y(y.value?g:p,!1);a.value=Math.max(0,Math.min(1,w)),w>1?r.value=D(y.value?g:p,!0):w<0&&(r.value=D(y.value?g:p,!1))}function W(m){if(d=!1,!c.value)return;k(m),c.value=!1;const g=o(m.changedTouches[0].identifier),p=Math.abs(g.x),w=Math.abs(g.y);(y.value?p>w&&p>400:w>p&&w>3)?n.value=g.direction===({left:"right",right:"left",top:"down",bottom:"up"}[l.value]||z()):n.value=a.value>.5}const H=V(()=>c.value?{transform:l.value==="left"?`translateX(calc(-100% + ${a.value*t.value}px))`:l.value==="right"?`translateX(calc(100% - ${a.value*t.value}px))`:l.value==="top"?`translateY(calc(-100% + ${a.value*t.value}px))`:l.value==="bottom"?`translateY(calc(100% - ${a.value*t.value}px))`:z(),transition:"none"}:void 0);return q(c,()=>{var p,w;const m=((p=s.value)==null?void 0:p.style.transform)??null,g=((w=s.value)==null?void 0:w.style.transition)??null;ke(()=>{var S,h,M,N;(h=s.value)==null||h.style.setProperty("transform",((S=H.value)==null?void 0:S.transform)||"none"),(N=s.value)==null||N.style.setProperty("transition",((M=H.value)==null?void 0:M.transition)||null)}),be(()=>{var S,h;(S=s.value)==null||S.style.setProperty("transform",m),(h=s.value)==null||h.style.setProperty("transition",g)})}),{isDragging:c,dragProgress:a,dragStyles:H}}function z(){throw new Error}const Kt=["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=>Kt.includes(e)},sticky:Boolean,...ht(),...It(),...Ct(),...Ge({mobile:null}),...mt(),...$t(),...Le(),...Pe(Tt(),["disableInitialFocus"]),...Lt({tag:"nav"}),...Te()},"VNavigationDrawer"),Qt=_e()({name:"VNavigationDrawer",props:Jt(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,s){let{attrs:n,emit:u,slots:t}=s;const{isRtl:v}=ze(),{themeClasses:l}=Ve(e),{borderClasses:y}=ct(e),{backgroundColorClasses:k,backgroundColorStyles:_}=me(()=>e.color),{elevationClasses:o}=vt(e),{displayClasses:d,mobile:c}=Xe(e),{roundedClasses:a}=Ee(e),r=dt(),x=Se(e,"modelValue",null,T=>!!T),{ssrBootStyles:D}=Rt(),{scopeId:Y}=$e(),E=F(),B=A(!1),{runOpenDelay:W,runCloseDelay:H}=St(e,T=>{B.value=T}),m=V(()=>e.rail&&e.expandOnHover&&B.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),g=V(()=>ft(e.location,v.value)),p=te(()=>e.persistent),w=V(()=>!e.permanent&&(c.value||e.temporary)),S=V(()=>e.sticky&&!w.value&&g.value!=="bottom");Vt(e,{isActive:x,localTop:w,contentEl:E}),q(()=>e.expandOnHover&&e.rail!=null,()=>{U(B,T=>u("update:rail",!T))}),q(()=>!e.disableResizeWatcher,()=>{U(w,T=>!e.permanent&&Ce(()=>x.value=!T))}),q(()=>!e.disableRouteWatcher&&!!r,()=>{U(r.currentRoute,()=>w.value&&(x.value=!1))}),U(()=>e.permanent,T=>{T&&(x.value=!0)}),e.modelValue==null&&!w.value&&(x.value=e.permanent||!c.value);const{isDragging:h,dragProgress:M}=Zt({el:E,isActive:x,isTemporary:w,width:m,touchless:te(()=>e.touchless),position:g}),N=V(()=>{const T=w.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):m.value;return h.value?T*M.value:T}),{layoutItemStyles:j,layoutItemScrimStyles:De}=Nt({id:e.name,order:V(()=>parseInt(e.order,10)),position:g,layoutSize:N,elementSize:m,active:je(x),disableTransitions:te(()=>h.value),absolute:V(()=>e.absolute||S.value&&typeof le.value!="string")}),{isStuck:le,stickyStyles:Re}=zt({rootEl:E,isSticky:S,layoutItemStyles:j}),re=me(()=>typeof e.scrim=="string"?e.scrim:null),Oe=V(()=>({...h.value?{opacity:M.value*.2,transition:"none"}:void 0,...De.value}));return qe({VList:{bgColor:"transparent"}}),Ae(()=>{const T=t.image||e.image;return P(L,null,[i(e.tag,K({ref:E,onMouseenter:W,onMouseleave:H,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":w.value,"v-navigation-drawer--persistent":p.value,"v-navigation-drawer--active":x.value,"v-navigation-drawer--sticky":S.value},l.value,k.value,y.value,d.value,o.value,a.value,e.class],style:[_.value,j.value,D.value,Re.value,e.style],inert:!x.value},Y,n),{default:()=>{var se,ie,ue;return[T&&P("div",{key:"image",class:"v-navigation-drawer__img"},[t.image?i(Ne,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},t.image):i(Ie,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),t.prepend&&P("div",{class:"v-navigation-drawer__prepend"},[(se=t.prepend)==null?void 0:se.call(t)]),P("div",{class:"v-navigation-drawer__content"},[(ie=t.default)==null?void 0:ie.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:()=>[w.value&&(h.value||x.value)&&!!e.scrim&&P("div",K({class:["v-navigation-drawer__scrim",re.backgroundColorClasses.value],style:[Oe.value,re.backgroundColorStyles.value],onClick:()=>{p.value||(x.value=!1)}},Y),null)]})])}),{isStuck:le}}}),ea={class:"d-flex align-center"},ta={__name:"NavBar",props:{color:{type:String,default:"primary"},menuItems:{type:Array,required:!1,default:null},logoRoute:{type:Object,default:null}},setup(e){const s=e,n=Be(),u=ut(),t=Ze(),{menuLogoPath:v}=it(),l=F(!1),y=F(!0),k=V(()=>n.authUser),_=V(()=>n.isAuthenticated);function o(d){return _.value?(d.roles===void 0||d.roles.indexOf(k.value.role)!==-1)&&(d.condition===void 0||d.condition())&&d.activated!==!1:!1}return(d,c)=>(b(),C(Qt,{modelValue:y.value,"onUpdate:modelValue":c[2]||(c[2]=a=>y.value=a),rail:l.value,permanent:"",color:e.color,app:""},{default:f(()=>[P("div",ea,[i(Ie,{src:O(v),"max-width":"190",class:"logo",onClick:c[0]||(c[0]=a=>O(t).push(s.logoRoute))},null,8,["src"]),i(Z,{icon:l.value?"mdi-chevron-right":"mdi-chevron-left",variant:"text",onClick:c[1]||(c[1]=Ke(a=>l.value=!l.value,["stop"]))},null,8,["icon"])]),i(ne,{density:O(u).compactLeftMenu?"compact":"default",lines:!O(u).compactLeftMenu,nav:""},{default:f(()=>[(b(!0),I(L,null,G(e.menuItems,a=>(b(),I(L,{key:a.text},[o(a)?(b(),I(L,{key:0},[a.subheader?(b(),C(Pt,{key:0,class:"text-white"},{default:f(()=>[X(R(a.text.toUpperCase()),1)]),_:2},1024)):a.action?(b(),C($,{key:1,value:a,exact:a.exact,title:a.text,"prepend-icon":a.icon,onClick:a.action},null,8,["value","exact","title","prepend-icon","onClick"])):a.children?(b(),C(Bt,{key:3,value:a.text},{activator:f(({props:r})=>[(b(),C($,K({ref_for:!0},r,{key:a.text,title:a.text,color:"white","prepend-icon":a.icon}),null,16,["title","prepend-icon"]))]),default:f(()=>[(b(!0),I(L,null,G(a.children,r=>(b(),I(L,{key:r.text},[o(r)?(b(),I(L,{key:0},[r.action?(b(),C($,{key:0,title:r.text,value:r,"prepend-icon":r.icon,onClick:r.action},null,8,["title","value","prepend-icon","onClick"])):(b(),C($,{key:1,to:r.to,link:"",title:r.text,value:r,"prepend-icon":r.icon},null,8,["to","title","value","prepend-icon"]))],64)):Q("",!0)],64))),128))]),_:2},1032,["value"])):(b(),C($,{key:2,value:a,to:a.to,link:"",exact:a.exact,title:a.text,"prepend-icon":a.icon},null,8,["value","to","exact","title","prepend-icon"]))],64)):Q("",!0)],64))),128))]),_:1},8,["density","lines"])]),_:1},8,["modelValue","rail","color"]))}},aa=oe(ta,[["__scopeId","data-v-4deeb2f7"]]),na={key:0,class:"top-menu"},oa={class:"text-center"},la={class:"mt-2"},ra={class:"text-center"},sa={class:"text-h5"},ia={__name:"TopMenu",props:{user:{type:Object,default:null},remote:{type:Boolean,default:!1}},setup(e){const s=e,{$gettext:n}=Me(),u=Je(),t=V(()=>u.applications),v=V(()=>s.user.first_name&&s.user.last_name?`${s.user.first_name[0].toUpperCase()}${s.user.last_name[0].toUpperCase()}`:s.user.username?s.user.username.slice(0,2).toUpperCase():""),l=V(()=>[{text:n("Account"),icon:"mdi-account-circle-outline",to:s.remote?null:{name:"AccountSettings"},href:s.remote?"https://localhost:3000/account":"",click:()=>null},{text:n("Logout"),icon:"mdi-logout",click:y}]);async function y(){Qe()._s.forEach(async k=>await k.$reset())}return ee(()=>{u.fetchAvailableApplications(),u.fetchNotifications()}),(k,_)=>e.user?(b(),I("div",na,[O(u).activeNotifications?(b(),C(Z,{key:0,icon:"",color:"error",class:"mr-4",variant:"tonal",size:"small"},{default:f(()=>[i(J,{icon:"mdi-bell"}),i(ae,{activator:"parent",location:"bottom"},{default:f(()=>[i(ne,null,{default:f(()=>[P("div",oa,[i($,{title:O(n)("Notifications")},null,8,["title"])]),i(ve),(b(!0),I(L,null,G(O(u).notifications,o=>(b(),C($,{key:o.id,to:o.url},{prepend:f(()=>[i(Ot,{color:o.color,content:o.counter,inline:""},null,8,["color","content"])]),default:f(()=>[i(de,null,{default:f(()=>[X(R(o.text),1)]),_:2},1024)]),_:2},1032,["to"]))),128))]),_:1})]),_:1})]),_:1})):Q("",!0),i(Z,{icon:"",class:"mr-4",variant:"flat"},{default:f(()=>[i(J,{icon:"mdi-apps"}),i(ae,{activator:"parent",location:"bottom"},{default:f(()=>[i(he,{"min-width":"350","max-width":"400",class:"pa-4"},{default:f(()=>[i(Yt,{class:"justify-center"},{default:f(()=>[(b(!0),I(L,null,G(t.value,o=>(b(),C(Ht,{key:o.name,cols:"6"},{default:f(()=>[i(Ut,{rounded:"",class:"application text-center pa-4 text-body-2",onClick:d=>k.$router.push(o.url)},{default:f(()=>[i(J,{color:"primary",icon:o.icon,size:"x-large"},null,8,["icon"]),P("div",la,R(o.label),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1}),i(Z,{icon:"",flat:"",color:"primary"},{default:f(()=>[X(R(v.value)+" ",1),i(ae,{activator:"parent",location:"bottom"},{default:f(()=>[i(he,{"min-width":"300","max-width":"350"},{default:f(()=>[i(ne,null,{default:f(()=>[P("div",ra,[i(gt,{color:"primary"},{default:f(()=>[P("span",sa,R(v.value),1)]),_:1}),i($,{title:e.user.username},null,8,["title"])]),i(ve),(b(!0),I(L,null,G(l.value,o=>(b(),C($,{key:o.text,to:o.to,href:o.href,link:"",onClick:o.click},{prepend:f(()=>[i(J,{icon:o.icon},null,8,["icon"])]),default:f(()=>[i(de,null,{default:f(()=>[X(R(o.text),1)]),_:2},1024)]),_:2},1032,["to","href","onClick"]))),128))]),_:1})]),_:1})]),_:1})]),_:1})])):Q("",!0)}},ua=oe(ia,[["__scopeId","data-v-603d702e"]]);function ca(e){const s=A(e());let n=-1;function u(){clearInterval(n)}function t(){u(),Ce(()=>s.value=e())}function v(l){const y=l?getComputedStyle(l):{transitionDuration:.2},k=parseFloat(y.transitionDuration)*1e3||200;if(u(),s.value<=0)return;const _=performance.now();n=window.setInterval(()=>{const o=performance.now()-_+k;s.value=Math.max(e()-o,0),s.value<=0&&u()},k)}return be(u),{clear:u,time:s,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"}),..._t(),...Le(),...bt(),...Te(),...Pe(Et({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","retainFocus","captureFocus","disableInitialFocus","scrim","scrollStrategy","stickToTarget","viewportMargin"])},"VSnackbar"),da=_e()({name:"VSnackbar",props:va(),emits:{"update:modelValue":e=>!0},setup(e,s){let{slots:n}=s;const u=Se(e,"modelValue"),{positionClasses:t}=yt(e),{scopeId:v}=$e(),{themeClasses:l}=Ve(e),{colorClasses:y,colorStyles:k,variantClasses:_}=pt(e),{roundedClasses:o}=Ee(e),d=ca(()=>Number(e.timeout)),c=F(),a=F(),r=A(!1),x=A(0),D=F(),Y=et(At,void 0);q(()=>!!Y,()=>{const h=Dt();ke(()=>{D.value=h.mainStyles.value})}),U(u,B),U(()=>e.timeout,B),ee(()=>{u.value&&B()});let E=-1;function B(){d.reset(),window.clearTimeout(E);const h=Number(e.timeout);if(!u.value||h===-1)return;const M=tt(a.value);d.start(M),E=window.setTimeout(()=>{u.value=!1},h)}function W(){d.reset(),window.clearTimeout(E)}function H(){r.value=!0,W()}function m(){r.value=!1,B()}function g(h){x.value=h.touches[0].clientY}function p(h){Math.abs(x.value-h.changedTouches[0].clientY)>50&&(u.value=!1)}function w(){r.value&&m()}const S=V(()=>e.location.split(" ").reduce((h,M)=>(h[`v-snackbar--${M}`]=!0,h),{}));return Ae(()=>{const h=fe.filterProps(e),M=!!(n.default||n.text||e.text);return i(fe,K({ref:c,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},S.value,t.value,e.class],style:[D.value,e.style]},h,{modelValue:u.value,"onUpdate:modelValue":N=>u.value=N,contentProps:K({class:["v-snackbar__wrapper",l.value,y.value,o.value,_.value],style:[k.value],onPointerenter:H,onPointerleave:m},h.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:g,onTouchend:p,onAfterLeave:w},v),{default:()=>{var N,j;return[wt(!1,"v-snackbar"),e.timer&&!r.value&&P("div",{key:"timer",class:"v-snackbar__timer"},[i(kt,{ref:a,color:typeof e.timer=="string"?e.timer:"info",max:e.timeout,modelValue:d.time.value},null)]),M&&P("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[((N=n.text)==null?void 0:N.call(n))??e.text,(j=n.default)==null?void 0:j.call(n)]),n.actions&&i(Ne,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[P("div",{class:"v-snackbar__actions"},[n.actions({isActive:u})])]})]},activator:n.activator})}),Mt({},c)}}),Ba={__name:"ConnectedLayout",props:{color:{type:String,default:"primary"},menuItems:{type:Array,default:null},loadTheme:{type:Boolean,default:!0}},async setup(e){let s,n;const u=Be(),t=at(),{$gettext:v}=Me(),{enableTheme:l}=ot(),y=e,k=V(()=>u.authUser),_=V(()=>t.notificationColor),o=V(()=>t.notificationTimeout),d=V(()=>t.notification),c=F(!1);return t.$onAction(({name:a,after:r})=>{a==="displayNotification"&&r(()=>{c.value=!0}),a==="hideNotification"&&r(()=>{c.value=!1})},!0),y.loadTheme&&([s,n]=nt(()=>l()),await s,n()),(a,r)=>(b(),C(st,null,{default:f(()=>[ce(a.$slots,"navbar",{},()=>[i(aa,{color:e.color,"menu-items":e.menuItems},null,8,["color","menu-items"])]),ce(a.$slots,"topbar",{},()=>[i(ua,{user:k.value},null,8,["user"])]),i(Wt),i(da,{modelValue:c.value,"onUpdate:modelValue":r[1]||(r[1]=x=>c.value=x),color:_.value,timeout:o.value,location:"top"},{actions:f(()=>[i(Z,{color:"white",text:"",onClick:r[0]||(r[0]=x=>c.value=!1)},{default:f(()=>[X(R(O(v)("Close")),1)]),_:1})]),default:f(()=>[X(R(d.value)+" ",1)]),_:1},8,["modelValue","color","timeout"])]),_:3}))}};export{Qt as V,Ba as _};
@@ -1 +1 @@
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))}@media(prefers-reduced-motion:reduce){.v-navigation-drawer{transition:none}}.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}@media(forced-colors:active){.v-snackbar__wrapper{border:thick solid}}.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}@media(prefers-reduced-motion:reduce){.v-snackbar-transition-enter-active{transition-property:opacity}}.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))}@media(prefers-reduced-motion:reduce){.v-navigation-drawer{transition:none}}.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-603d702e]{position:fixed;top:10px;right:10px;z-index:100}.application[data-v-603d702e]{cursor:pointer}.application[data-v-603d702e]: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}@media(forced-colors:active){.v-snackbar__wrapper{border:thick solid}}.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}@media(prefers-reduced-motion:reduce){.v-snackbar-transition-enter-active{transition-property:opacity}}.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 me}from"./ConfirmDialog-CWpdwSQ6.js";import{_ as pe,b as se,m as F,o as b,v as R,F as T,e as v,t as f,f as _,c as C,w as c,y as J,n as re,a as l,l as x,J as D,K as $,L as ve,j as k,M as fe,z as ye,N as P,O as Ve,P as Se,x as X,Q as be,R as oe,S as ke,T as H,U as ge,V as he,W as _e,i as Y,X as xe,Y as we,Z as Ie}from"./index-jui3edpn.js";import{a as L,V as ie}from"./VRow-83Qnr5iB.js";import{u as Ce}from"./logos-Dz2Gzei-.js";import{V as W,e as ee,f as Pe,R as te,u as $e,g as Ae,c as Be,b as We,m as Fe,h as Te,i as je,j as Le}from"./VAvatar-CXV_FqpP.js";import{u as N}from"./tag-WF93n81Q.js";import{V as ae,m as Re,a as le,b as De}from"./VWindowItem-CDtLLEkg.js";import{V as Ne}from"./VContainer-Cn-vKB3s.js";import{V as ne,m as ze}from"./VSheet-C3MaHhtw.js";import{d as Ee}from"./VMenu-BpmJf4X2.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}=se(),a=y;function u(s){return s.length?s.join(", "):t("Empty")}return(s,o)=>(b(!0),F(T,null,R(e.sections,(d,p)=>(b(),F(T,{key:p},[v("div",Ge,[v("span",Oe,f(d.title),1),v("a",{href:"#",class:"edit-link ml-auto",onClick:n=>a("modify-step",p+1)},f(_(t)("Modify")),9,Me)]),(b(!0),F(T,null,R(d.items,(n,m)=>(b(),C(ie,{key:m,dense:""},{default:c(()=>[n.value!==void 0?J(s.$slots,`item.${n.name}`,{key:0,item:n,displayList:u},()=>[l(L,null,{default:c(()=>[v("span",Ue,f(n.key),1)]),_:2},1024),n.type==="yesno"?(b(),C(L,{key:0,class:"text-right"},{default:c(()=>[x(f(s.$yesno(n.value)),1)]),_:2},1024)):n.type==="list"?(b(),C(L,{key:1,class:"text-right"},{default:c(()=>[x(f(u(n.value)),1)]),_:2},1024)):(b(),C(L,{key:2,class:"text-right"},{default:c(()=>[x(f(n.value),1)]),_:2},1024))],!0):re("",!0)]),_:2},1024))),128))],64))),128))}},Ye=pe(He,[["__scopeId","data-v-6e743e1a"]]),Z=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=D()({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 s(){t("click:prev")}function o(){t("click:next")}return N(()=>{const d={onClick:s},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 n;return[((n=a.prev)==null?void 0:n.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 n;return[((n=a.next)==null?void 0:n.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(),...Fe()},"VStepperItem"),K=D()({name:"VStepperItem",directives:{vRipple:te},props:Qe(),emits:{"group:selected":e=>!0},setup(e,y){let{slots:t}=y;const a=$e(e,Z,!0),u=k(()=>(a==null?void 0:a.value.value)??e.value),s=k(()=>e.rules.every(I=>I()===!0)),o=k(()=>!e.disabled&&e.editable),d=k(()=>!e.disabled&&e.editable),p=k(()=>e.error||!s.value),n=k(()=>e.complete||e.rules.length>0&&s.value),m=k(()=>p.value?e.errorIcon:n.value?e.completeIcon:a.isSelected.value&&e.editable?e.editIcon:e.icon),w=k(()=>({canEdit:d.value,hasError:p.value,hasCompleted:n.value,title:e.title,subtitle:e.subtitle,step:u.value,value:e.value}));return N(()=>{var r,i,h;const I=(!a||a.isSelected.value||n.value||d.value)&&!p.value&&!e.disabled,j=!!(e.title!=null||t.title),V=!!(e.subtitle!=null||t.subtitle);function g(){a==null||a.toggle()}return fe(v("button",{class:ye(["v-stepper-item",{"v-stepper-item--complete":n.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:g},[o.value&&Ae(!0,"v-stepper-item"),l(We,{key:"stepper-avatar",class:"v-stepper-item__avatar",color:I?e.color:void 0,size:24},{default:()=>{var S;return[((S=t.icon)==null?void 0:S.call(t,w.value))??(m.value?l(Be,{icon:m.value},null):u.value)]}}),v("div",{class:"v-stepper-item__content"},[j&&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.editable&&e.ripple,null]])}),{}}}),Xe=$({...be(Re(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VStepperWindow"),de=D()({name:"VStepperWindow",props:Xe(),emits:{"update:modelValue":e=>!0},setup(e,y){let{slots:t}=y;const a=Ve(Z,null),u=Se(e,"modelValue"),s=k({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 N(()=>{const o=ae.filterProps(e);return l(ae,X({_as:"VStepperWindow"},o,{modelValue:s.value,"onUpdate:modelValue":d=>s.value=d,class:["v-stepper-window",e.class],style:e.style,mandatory:!1,touch:!1}),t)}),{}}}),Ze=$({...De()},"VStepperWindowItem"),Q=D()({name:"VStepperWindowItem",props:Ze(),setup(e,y){let{slots:t}=y;return N(()=>{const a=le.filterProps(e);return l(le,X({_as:"VStepperWindowItem"},a,{class:["v-stepper-window-item",e.class],style:e.style}),t)}),{}}}),qe=$({altLabels:Boolean,bgColor:String,completeIcon:P,editIcon:P,editable:Boolean,errorIcon:P,hideActions:Boolean,items:{type:Array,default:()=>[]},itemTitle:{type:[String,Array,Function],default:"title"},itemValue:{type:[String,Array,Function],default:"value"},itemProps:{type:[Boolean,String,Array,Function],default:"props"},nonLinear:Boolean,flat:Boolean,..._e()},"Stepper"),et=$({...qe(),...je({mandatory:"force",selectedClass:"v-stepper-item--selected"}),...ze(),...he(ue(),["prevText","nextText"])},"VStepper"),tt=D()({name:"VStepper",props:et(),emits:{"update:modelValue":e=>!0},setup(e,y){let{slots:t}=y;const{items:a,next:u,prev:s,selected:o}=Te(e,Z),{displayClasses:d,mobile:p}=oe(e),{completeIcon:n,editIcon:m,errorIcon:w,color:I,editable:j,prevText:V,nextText:g}=ke(e),r=k(()=>e.items.map((S,O)=>{const z=H(S,e.itemTitle,S),M=H(S,e.itemValue,O+1),E=e.itemProps===!0?S:H(S,e.itemProps),A={title:z,value:M,...E};return{title:A.title,value:A.value,props:A,raw:S}})),i=k(()=>a.value.findIndex(S=>o.value.includes(S.id))),h=k(()=>e.disabled?e.disabled:i.value===0?"prev":i.value===a.value.length-1?"next":!1);return ge({VStepperItem:{editable:j,errorIcon:w,completeIcon:n,editIcon:m,prevText:V,nextText:g},VStepperActions:{color:I,disabled:h,prevText:V,nextText:g}}),N(()=>{const S=ne.filterProps(e),O=!!(t.header||e.items.length),z=e.items.length>0,M=!e.hideActions&&!!(z||t.actions);return l(ne,X(S,{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 E,A;return[O&&l(ce,{key:"stepper-header"},{default:()=>[r.value.map((B,G)=>{let{raw:U,...q}=B;return v(T,null,[!!G&&l(Ee,null,null),l(K,q.props,{default:t[`header-item.${q.value}`]??t.header,icon:t.icon,title:t.title,subtitle:t.subtitle})])})]}),z&&l(de,{key:"stepper-window"},{default:()=>[r.value.map(B=>l(Q,{value:B.value},{default:()=>{var G,U;return((G=t[`item.${B.value}`])==null?void 0:G.call(t,B))??((U=t.item)==null?void 0:U.call(t,B))}}))]}),(E=t.default)==null?void 0:E.call(t,{prev:s,next:u}),M&&(((A=t.actions)==null?void 0:A.call(t,{next:u,prev:s}))??l(Je,{key:"stepper-actions","onClick:prev":s,"onClick:next":u},t))]}})}),{prev:s,next:u}}}),at={class:"d-flex justify-center inner fill-height"},lt={class:"mb-5 text-h5"},nt={class:"text-grey-darken-1"},st={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(),s=e,o=Y(1),d=Y(!1),p=Y(),n=t,{$gettext:m}=se();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")})&&n("close")}async function I(V,g){const r=s.getVFormRef(s.steps[V-1]);if(r!==void 0){const{valid:i}=await r.validate();if(!i)return;if(s.validateObject)try{await s.validateObject(V)}catch(h){n("validationError",V,h.response.data);return}}o.value=g}function j(){d.value=!0,n("create")}return y({working:d}),(V,g)=>(b(),F("div",at,[l(tt,{modelValue:o.value,"onUpdate:modelValue":g[1]||(g[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(Le,{src:_(u),"max-width":"190",class:"hidden-sm-and-down"},null,8,["src"]),(b(!0),F(T,null,R(e.steps,(r,i)=>(b(),C(K,{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(K,{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(()=>[(b(!0),F(T,null,R(e.steps,(r,i)=>(b(),C(Q,{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(L,{cols:"8",align:"start"},{default:c(()=>[v("div",lt,[v("span",nt,f(e.title),1),x(" / "+f(r.title),1)]),J(V.$slots,`form.${r.name}`,{step:r,currentStep:i+1})]),_:2},1024)]),_:2},1024)]),_:2},1024),v("div",st,[i+1>1?(b(),C(W,{key:0,class:"mr-10",variant:"text",onClick:h=>o.value=i},{default:c(()=>[x(f(_(m)("Back")),1)]),_:1},8,["onClick"])):re("",!0),l(W,{color:"primary",size:"large",onClick:h=>I(i+1,i+2)},{default:c(()=>[x(f(_(m)("Next")),1)]),_:1},8,["onClick"])])]),_:2},1032,["value"]))),128)),l(Q,{value:e.steps.length+1,class:"flex-grow-0"},{default:c(()=>[v("div",rt,f(_(m)("Summary")),1),l(Ye,{sections:e.summarySections,onModifyStep:g[0]||(g[0]=r=>o.value=r)},xe({_:2},[R(V.$slots,(r,i)=>({name:i,fn:c(h=>[J(V.$slots,i,we(Ie(h)))])}))]),1032,["sections"]),v("div",ot,[l(W,{color:"primary",size:"large",loading:d.value,onClick:j},{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{i as _,g as h,c as p,o as c,w as o,a as l,e as t,t as a,_ as b,l as V,b as k,u as x,d as y,m as A,n as N,f as m,k as C}from"./index-jui3edpn.js";import{a as w}from"./admin-BW9cZW0P.js";import{V as v,a as $,b as D}from"./VCard-CBtX8JF-.js";import{V as S}from"./VTable-f7wcr2AZ.js";import{V as T}from"./VDataTable-CNT9KOSp.js";import{p as B}from"./parameters-DMIAQ7cd.js";import{V as M,a as W}from"./VToolbar-CB6wwtYc.js";import{V as F,a as g}from"./VRow-83Qnr5iB.js";import"./tag-WF93n81Q.js";import"./VAvatar-CXV_FqpP.js";import"./VProgressCircular-DRw_-iNj.js";import"./VSelect-BcmGFGif.js";import"./VInput-BwHvhzAe.js";import"./VTextField-BPIvtrn4.js";import"./VMenu-BpmJf4X2.js";import"./ssrBoot-B7cr7q9U.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./VSelectionControl-Cqi1xt-q.js";import"./events-BM3in65C.js";import"./filter-Dihm6o59.js";/* empty css */const G={__name:"GlobalStatisticsWidget",async setup(f){let s,n;const e=_({}),i=([s,n]=h(()=>w.getStatistics()),s=await s,n(),s);return e.value=i.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"],E={href:"https://modoboa.org/weblog/",target:"_blank"},R={__name:"NewsFeedWidget",async setup(f){let s,n;const e=_([]),i=[{title:"",key:"title"},{title:"",key:"published",align:"end"}],r=([s,n]=h(()=>w.getNewsFeed()),s=await s,n(),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:i,items:e.value,"hide-default-header":"","hide-default-footer":""},{"item.title":o(({item:d})=>[t("a",{href:d.link,target:"_blank"},a(d.title),9,I)]),"item.published":o(({item:d})=>[V(a(u.$date(d.published)),1)]),_:2},1032,["items"])]),_:1}),l(D,{class:"justify-center"},{default:o(()=>[t("div",null,[t("a",E,a(u.$gettext("Visit the official weblog for more information")),1)])]),_:1})]),_:1},8,["title"]))}},U=b(R,[["__scopeId","data-v-e0975b37"]]),j={__name:"DashboardView",setup(f){const{$gettext:s}=k(),n=x(),e=_("");return y(async()=>{const i=await B.getGlobalApplication("core");i.data.params.custom_welcome_message?e.value=i.data.params.custom_welcome_message:e.value=s("Welcome to Modoboa")}),(i,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(m(U)),m(n).authUser.role===m(C).SUPER_ADMIN?(c(),p(m(G),{key:0,class:"mt-4"})):N("",!0)]),_:1}),l(g,{sm:"12",md:"6"})]),_:1})]))}},dt=b(j,[["__scopeId","data-v-24210b96"]]);export{dt as default};
@@ -1 +1 @@
1
- import{c as x,V as y}from"./VAvatar-JdJfoK0C.js";import{i as R,c as d,o as l,n as L,b as U,h as f,d as $,w as e,a as n,e as O,l as b,t as i,f as v,m as C,k as p,j as S}from"./index-B1bntsLR.js";import{a as G}from"./accounts-DqbBlaLK.js";import{d as D}from"./domains-CSxtTvUh.js";import{c as H,V as q,b as F,a as J}from"./VCard-BoH6kjPa.js";import{V as K}from"./VDataTableVirtual-Ike7oqcC.js";import{V as P}from"./VAutocomplete-Huaz_-hf.js";import{V as Q,a as w}from"./VRow-CuVZGqBj.js";const re={__name:"BooleanIcon",props:{value:{type:Boolean}},setup(r){const k=r,V=R(()=>k.value?"mdi-check-circle":"mdi-close-circle"),t=R(()=>k.value?"success":"error");return(u,M)=>(l(),d(x,{icon:V.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:k}){const V=L(),{$gettext:t}=U(),u=r,M=k,_=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=>{_.value=a.data.results.filter(o=>A.value.find(c=>c.id===o.pk)===void 0)})}function j(){D.addDomainAdministrator(u.domain.pk,m.value.pk).then(()=>{B(u.domain),_.value=_.value.filter(s=>s.pk!==m.value.pk),m.value=null,h.value=!1,V.displayNotification({msg:t("Administrator added")})})}function z(s){D.removeDomainAdministrator(u.domain.pk,s.id).then(()=>{B(u.domain),N(),V.displayNotification({msg:t("Administrator removed")})})}return $(()=>{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:_.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:j},{default:e(()=>[n(x,null,{default:e(()=>[...a[2]||(a[2]=[p("mdi-content-save",-1)])]),_:1})]),_: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=>z(o)},{default:e(()=>[n(x,null,{default:e(()=>[...a[3]||(a[3]=[p("mdi-delete-outline",-1)])]),_:1})]),_:1},8,["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)])]),_:1}),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};
1
+ import{c as x,V as y}from"./VAvatar-CXV_FqpP.js";import{j as R,c as d,o as l,p as L,b as U,i as f,d as $,w as e,a as n,e as O,m as b,t as i,f as v,n as C,l as p,k as S}from"./index-jui3edpn.js";import{a as G}from"./accounts-KUsk6LHW.js";import{d as D}from"./domains-Du64lcXT.js";import{c as H,V as q,b as F,a as J}from"./VCard-CBtX8JF-.js";import{V as K}from"./VDataTableVirtual-Csxh3Gp6.js";import{V as P}from"./VAutocomplete-CQsWYWNX.js";import{V as Q,a as w}from"./VRow-83Qnr5iB.js";const re={__name:"BooleanIcon",props:{value:{type:Boolean}},setup(r){const k=r,V=R(()=>k.value?"mdi-check-circle":"mdi-close-circle"),t=R(()=>k.value?"success":"error");return(u,M)=>(l(),d(x,{icon:V.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:k}){const V=L(),{$gettext:t}=U(),u=r,M=k,_=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=>{_.value=a.data.results.filter(o=>A.value.find(c=>c.id===o.pk)===void 0)})}function j(){D.addDomainAdministrator(u.domain.pk,m.value.pk).then(()=>{B(u.domain),_.value=_.value.filter(s=>s.pk!==m.value.pk),m.value=null,h.value=!1,V.displayNotification({msg:t("Administrator added")})})}function z(s){D.removeDomainAdministrator(u.domain.pk,s.id).then(()=>{B(u.domain),N(),V.displayNotification({msg:t("Administrator removed")})})}return $(()=>{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:_.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:j},{default:e(()=>[n(x,null,{default:e(()=>[...a[2]||(a[2]=[p("mdi-content-save",-1)])]),_:1})]),_: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=>z(o)},{default:e(()=>[n(x,null,{default:e(()=>[...a[3]||(a[3]=[p("mdi-delete-outline",-1)])]),_:1})]),_:1},8,["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)])]),_:1}),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};
@@ -1 +1 @@
1
- import{b as M,u as q,i as U,h as f,j as b,d as J,c as d,l as y,a,e as k,w as e,m as P,k as c,t as o,f as s,q as K,o as u,_ as Q,B as z,F as H}from"./index-B1bntsLR.js";import{c as W,b as X,a as Y,_ as Z}from"./DomainTransportForm-DAXJGNLA.js";import{L as ee}from"./LoadingData-Tm56XNwj.js";import{p as ae}from"./parameters-BxAXBXU1.js";import{_ as te}from"./ResourcesForm-D0YBapCG.js";import{d as j}from"./domains-CSxtTvUh.js";import{d as N,c as w,V as I}from"./VAvatar-JdJfoK0C.js";import{V,c as F,a as h,b as le}from"./VExpansionPanels-BeMgiS7A.js";import{V as p,a as m}from"./VRow-CuVZGqBj.js";import{u as oe}from"./domains.store-D4ZqCQ-O.js";import{V as se,a as ue}from"./VToolbar-CyrYSqJZ.js";import"./ChoiceField-RDT6XcnX.js";import"./VForm-DkphQD3e.js";import"./tag-BmV84V2s.js";import"./VInput-CbqehdOu.js";import"./VProgressCircular-DTDGzl2O.js";import"./VMenu-B6SCtOwT.js";import"./ssrBoot-05WtbG6H.js";import"./VTextField-QXQFhKxm.js";import"./VSwitch-Dh_dserW.js";import"./VSelectionControl-uKY9Zull.js";import"./transports-ChdHV5hX.js";import"./VAutocomplete-Huaz_-hf.js";import"./VSelect-D5IXDPEX.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./filter-DHKXX97M.js";import"./VCheckbox-CCLOJFKF.js";import"./VContainer-DKMcKasC.js";/* empty css */const ne={key:1},re={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"},ye={__name:"DomainEditForm",props:{domain:{type:Object,default:null}},setup($){const x=K(),{$gettext:r}=M(),R=q(),E=$,_=U(()=>R.authUser),v=f({}),D=f(0),g=f(!1),t=U(()=>E.domain),C=f(),L=f(),T=f(),A=f(),B=f(),O=U(()=>{const n={generalForm:C,limitationForm:A,dnsForm:B};return t.value.type==="relaydomain"&&(n.transportForm=T),v.value.params&&v.value.params.enable_domain_limits&&(_.value.role===b.SUPER_ADMIN||_.value.role===b.RESELLER)&&(n.resourcesForm=L),n}),S=f(!1);async function G(){S.value=!1,D.value=[];for(const[n,i]of Object.entries(O.value))if(i.value!=null){const{valid:l}=await i.value.vFormRef.validate();l||(S.value=!0,D.value.push(n))}if(!S.value){g.value=!0;try{const n=JSON.parse(JSON.stringify(t.value));n.transport===null&&delete n.transport,n.type==="relaydomain"?T.value.checkSettingTypes(n):n.transport&&delete n.transport,n.message_limit===""&&(n.message_limit=null),await j.updateDomain(t.value.pk,n),x.push({name:"DomainDetail",params:{id:t.value.pk}})}finally{g.value=!1}}}return J(()=>{ae.getGlobalApplication("limits").then(n=>{v.value.data=n.data})}),(n,i)=>g.value?(u(),d(ee,{key:0})):(u(),y("div",ne,[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(r)("General")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),y("span",re)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(r)("Name: "))+" "+o(t.value.name),1)]),_:1}),a(m,{cols:"6"},{default:e(()=>[c(o(s(r)("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(r)("DNS")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),y("span",ie)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(r)("DNS checks"))+" ",1),t.value.enable_dns_checks?(u(),d(w,{key:0,color:"success",icon:"mdi-check-circle-outline"})):(u(),d(w,{key:1,icon:"mdi-check-circle-outline"}))]),_:1}),a(m,{cols:"6"},{default:e(()=>[c(o(s(r)("DKIM signing"))+" ",1),t.value.enable_dkim?(u(),d(w,{key:0,color:"success",icon:"mdi-check-circle-outline"})):(u(),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(r)("Limitations")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),y("span",me)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[k("div",de,o(s(r)("Quota: "))+" "+o(t.value.quota),1)]),_:1}),t.value.message_limit?(u(),d(m,{key:0,cols:"6"},{default:e(()=>[k("div",ce,o(s(r)("Sending limit: "))+" "+o(t.value.message_limit),1)]),_:1})):(u(),d(m,{key:1,cols:"6"},{default:e(()=>[k("div",fe,o(s(r)("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"?(u(),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(r)("Transport")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),y("span",pe)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[k("div",_e,o(s(r)("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)?(u(),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(r)("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:g.value,variant:"outlined",onClick:i[6]||(i[6]=l=>s(x).go(-1))},{default:e(()=>[c(o(s(r)("Cancel")),1)]),_:1},8,["loading"]),a(I,{class:"ml-4",color:"primary darken-1",variant:"outlined",loading:g.value,onClick:G},{default:e(()=>[c(o(s(r)("Save")),1)]),_:1},8,["loading"])])]))}},ge={__name:"DomainEditView",setup($){const{$gettext:x}=M(),r=z(),R=oe(),E=f({});return R.getDomains(),j.getDomain(r.params.id).then(_=>{E.value=_.data}),(_,v)=>(u(),y(H,null,[a(se,{flat:""},{default:e(()=>[a(ue,null,{default:e(()=>[c(o(s(x)("Edit domain")),1)]),_:1})]),_:1}),a(s(ye),{domain:E.value},null,8,["domain"])],64))}},ze=Q(ge,[["__scopeId","data-v-2221e277"]]);export{ze as default};
1
+ import{b as M,u as J,j as U,i as f,k as b,d as q,c as d,m as y,a,e as k,w as e,n as B,l as c,t as o,f as s,s as K,o as u,_ as Q,C as z,F as H}from"./index-jui3edpn.js";import{c as W,b as X,a as Y,_ as Z}from"./DomainTransportForm-CbiJF9z5.js";import{L as ee}from"./LoadingData-C2txD49L.js";import{p as ae}from"./parameters-DMIAQ7cd.js";import{_ as te}from"./ResourcesForm-FWxrmVwo.js";import{d as j}from"./domains-Du64lcXT.js";import{d as N,c as w,V as I}from"./VAvatar-CXV_FqpP.js";import{V,c as F,a as h,b as le}from"./VExpansionPanels-CaIvk9iF.js";import{V as p,a as m}from"./VRow-83Qnr5iB.js";import{u as oe}from"./domains.store-1U61jeCV.js";import{V as se,a as ue}from"./VToolbar-CB6wwtYc.js";import"./ChoiceField-DCr12shR.js";import"./VForm-fdQ5d-CH.js";import"./tag-WF93n81Q.js";import"./VInput-BwHvhzAe.js";import"./VProgressCircular-DRw_-iNj.js";import"./VMenu-BpmJf4X2.js";import"./ssrBoot-B7cr7q9U.js";import"./VTextField-BPIvtrn4.js";import"./VSwitch-XumUl685.js";import"./VSelectionControl-Cqi1xt-q.js";import"./transports-CS61syt-.js";import"./VAutocomplete-CQsWYWNX.js";import"./VSelect-BcmGFGif.js";import"./VCheckboxBtn-B0mIT3E0.js";import"./filter-Dihm6o59.js";import"./VCheckbox-zY1MApOy.js";import"./VContainer-Cn-vKB3s.js";/* empty css */const ne={key:1},re={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"},ye={__name:"DomainEditForm",props:{domain:{type:Object,default:null}},setup($){const x=K(),{$gettext:r}=M(),R=J(),E=$,_=U(()=>R.authUser),v=f({}),D=f(0),g=f(!1),t=U(()=>E.domain),C=f(),L=f(),T=f(),A=f(),P=f(),O=U(()=>{const n={generalForm:C,limitationForm:A,dnsForm:P};return t.value.type==="relaydomain"&&(n.transportForm=T),v.value.params&&v.value.params.enable_domain_limits&&(_.value.role===b.SUPER_ADMIN||_.value.role===b.RESELLER)&&(n.resourcesForm=L),n}),S=f(!1);async function G(){S.value=!1,D.value=[];for(const[n,i]of Object.entries(O.value))if(i.value!=null){const{valid:l}=await i.value.vFormRef.validate();l||(S.value=!0,D.value.push(n))}if(!S.value){g.value=!0;try{const n=JSON.parse(JSON.stringify(t.value));n.transport===null&&delete n.transport,n.type==="relaydomain"?T.value.checkSettingTypes(n):n.transport&&delete n.transport,n.message_limit===""&&(n.message_limit=null),await j.updateDomain(t.value.pk,n),x.push({name:"DomainDetail",params:{id:t.value.pk}})}finally{g.value=!1}}}return q(()=>{ae.getGlobalApplication("limits").then(n=>{v.value.data=n.data})}),(n,i)=>g.value?(u(),d(ee,{key:0})):(u(),y("div",ne,[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(r)("General")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),y("span",re)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(r)("Name: "))+" "+o(t.value.name),1)]),_:1}),a(m,{cols:"6"},{default:e(()=>[c(o(s(r)("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(r)("DNS")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),y("span",ie)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(r)("DNS checks"))+" ",1),t.value.enable_dns_checks?(u(),d(w,{key:0,color:"success",icon:"mdi-check-circle-outline"})):(u(),d(w,{key:1,icon:"mdi-check-circle-outline"}))]),_:1}),a(m,{cols:"6"},{default:e(()=>[c(o(s(r)("DKIM signing"))+" ",1),t.value.enable_dkim?(u(),d(w,{key:0,color:"success",icon:"mdi-check-circle-outline"})):(u(),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:P,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(r)("Limitations")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),y("span",me)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[k("div",de,o(s(r)("Quota: "))+" "+o(t.value.quota),1)]),_:1}),t.value.message_limit?(u(),d(m,{key:0,cols:"6"},{default:e(()=>[k("div",ce,o(s(r)("Sending limit: "))+" "+o(t.value.message_limit),1)]),_:1})):(u(),d(m,{key:1,cols:"6"},{default:e(()=>[k("div",fe,o(s(r)("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"?(u(),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(r)("Transport")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),y("span",pe)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[k("div",_e,o(s(r)("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})):B("",!0),v.value.params&&v.value.params.enable_domain_limits&&(_.value.role===s(b).SUPER_ADMIN||_.value.role===s(b).RESELLER)?(u(),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(r)("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})):B("",!0)]),_:1},8,["modelValue","multiple"]),k("div",ve,[a(I,{loading:g.value,variant:"outlined",onClick:i[6]||(i[6]=l=>s(x).go(-1))},{default:e(()=>[c(o(s(r)("Cancel")),1)]),_:1},8,["loading"]),a(I,{class:"ml-4",color:"primary darken-1",variant:"outlined",loading:g.value,onClick:G},{default:e(()=>[c(o(s(r)("Save")),1)]),_:1},8,["loading"])])]))}},ge={__name:"DomainEditView",setup($){const{$gettext:x}=M(),r=z(),R=oe(),E=f({});return R.getDomains(),j.getDomain(r.params.id).then(_=>{E.value=_.data}),(_,v)=>(u(),y(H,null,[a(se,{flat:""},{default:e(()=>[a(ue,null,{default:e(()=>[c(o(s(x)("Edit domain")),1)]),_:1})]),_:1}),a(s(ye),{domain:E.value},null,8,["domain"])],64))}},ze=Q(ge,[["__scopeId","data-v-2221e277"]]);export{ze as default};
@@ -1 +1 @@
1
- import{C as M}from"./ChoiceField-RDT6XcnX.js";import{b as g,i as R,h 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-B1bntsLR.js";import{r as y,V as F}from"./VForm-DkphQD3e.js";import{V as k}from"./VTextField-QXQFhKxm.js";import{V as B}from"./VSwitch-Dh_dserW.js";import{t as T}from"./transports-ChdHV5hX.js";import{V as j}from"./VAutocomplete-Huaz_-hf.js";import{V as A}from"./VCheckbox-CCLOJFKF.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
+ import{C as M}from"./ChoiceField-DCr12shR.js";import{b as g,j as R,i as b,c as x,o as v,w as h,a as r,f as a,e as D,d as w,m as U,n as C,t as N,F as q,v as K}from"./index-jui3edpn.js";import{r as y,V as F}from"./VForm-fdQ5d-CH.js";import{V as k}from"./VTextField-BPIvtrn4.js";import{V as B}from"./VSwitch-XumUl685.js";import{t as S}from"./transports-CS61syt-.js";import{V as T}from"./VAutocomplete-CQsWYWNX.js";import{V as A}from"./VCheckbox-zY1MApOy.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 w(()=>{l.value={...i.modelValue},l.value.settings||(l.value.settings={}),S.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(T,{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},K(e.value.settings,(n,j)=>(v(),U(q,{key:j},[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};