modoboa 2.4.10__py3-none-any.whl → 2.4.11__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 (168) hide show
  1. modoboa/admin/api/v1/serializers.py +1 -0
  2. modoboa/admin/api/v2/serializers.py +1 -1
  3. modoboa/admin/api/v2/tests.py +11 -1
  4. modoboa/admin/lib.py +1 -1
  5. modoboa/admin/models/mailbox.py +15 -13
  6. modoboa/admin/models/mxrecord.py +4 -0
  7. modoboa/admin/tests/test_import_.py +11 -11
  8. modoboa/core/api/v2/serializers.py +9 -0
  9. modoboa/core/api/v2/tests.py +18 -0
  10. modoboa/core/api/v2/urls.py +5 -0
  11. modoboa/core/api/v2/views.py +20 -1
  12. modoboa/core/app_settings.py +11 -0
  13. modoboa/core/fido2_auth.py +1 -2
  14. modoboa/core/management/commands/cleanlogs.py +9 -0
  15. modoboa/core/tests/test_core.py +5 -0
  16. modoboa/core/utils.py +3 -0
  17. modoboa/dnstools/api/v2/serializers.py +9 -11
  18. modoboa/frontend_dist/assets/{AccountAliasForm-DVXatAhB.js → AccountAliasForm-BV6KvTu6.js} +1 -1
  19. modoboa/frontend_dist/assets/{AccountEditView-DmvQjxpx.js → AccountEditView-DDOFyfBD.js} +1 -1
  20. modoboa/frontend_dist/assets/AccountLayout-rX51xgxT.js +1 -0
  21. modoboa/frontend_dist/assets/{AccountPasswordSubForm-g3IEGrgM.js → AccountPasswordSubForm-D9S6LaeH.js} +1 -1
  22. modoboa/frontend_dist/assets/AccountView-cmvaZNq3.js +1 -0
  23. modoboa/frontend_dist/assets/{AddressBook-3RoKiKon.js → AddressBook-DCJxL8SU.js} +1 -1
  24. modoboa/frontend_dist/assets/AdminLayout-r0wfG2lO.js +1 -0
  25. modoboa/frontend_dist/assets/{AlarmsView-D3Mh8ntf.js → AlarmsView-C0bqC4PA.js} +1 -1
  26. modoboa/frontend_dist/assets/{AliasEditView-C15eUZ11.js → AliasEditView-DVoWoCGY.js} +1 -1
  27. modoboa/frontend_dist/assets/{AliasRecipientForm-DVZXWaUX.js → AliasRecipientForm-IOae6sjF.js} +1 -1
  28. modoboa/frontend_dist/assets/{AliasView-Cyvc5vMb.js → AliasView-DrONZXOh.js} +1 -1
  29. modoboa/frontend_dist/assets/{AuditTrailView-LI2XuLLn.js → AuditTrailView-OTkoZaMU.js} +1 -1
  30. modoboa/frontend_dist/assets/{CalendarView-BpOlPh3f.js → CalendarView-CqF4_Ui9.js} +1 -1
  31. modoboa/frontend_dist/assets/{ChoiceField-7eU7c_rI.js → ChoiceField-DJ_c78Cm.js} +1 -1
  32. modoboa/frontend_dist/assets/{ComposeEmailForm-CNfI7ept.js → ComposeEmailForm-DO5_GB3e.js} +1 -1
  33. modoboa/frontend_dist/assets/ComposeEmailView-A91HCBsN.js +1 -0
  34. modoboa/frontend_dist/assets/{ConfirmDialog-BvqxQsD1.js → ConfirmDialog-BBcgdAnO.js} +1 -1
  35. modoboa/frontend_dist/assets/ConnectedLayout-1oRW-Rql.js +1 -0
  36. modoboa/frontend_dist/assets/{ConnectedLayout-BaJZ3BeR.css → ConnectedLayout-Dvwmicnc.css} +1 -1
  37. modoboa/frontend_dist/assets/CreationForm-71YJbjsA.js +1 -0
  38. modoboa/frontend_dist/assets/DashboardView-CdLpSfUl.js +1 -0
  39. modoboa/frontend_dist/assets/{DashboardView-BLlMi6Qb.css → DashboardView-gwwVAPvt.css} +1 -1
  40. modoboa/frontend_dist/assets/DomainAdminList-BjC4KsqI.js +1 -0
  41. modoboa/frontend_dist/assets/{DomainEditView-DocxeOeW.js → DomainEditView-CQjKwYxl.js} +1 -1
  42. modoboa/frontend_dist/assets/{DomainTransportForm-DPnPGBOp.js → DomainTransportForm-C2xo0Yd7.js} +1 -1
  43. modoboa/frontend_dist/assets/DomainView-BhhuZI_N.js +5 -0
  44. modoboa/frontend_dist/assets/DomainsView-Cft4BP8Z.js +1 -0
  45. modoboa/frontend_dist/assets/{EmailField-BEKxuYni.js → EmailField-C8umy0EU.js} +1 -1
  46. modoboa/frontend_dist/assets/{EmailView-BsR1Wes5.js → EmailView-ki7uEQPD.js} +1 -1
  47. modoboa/frontend_dist/assets/EmptyLayout-DaA1XH9n.js +1 -0
  48. modoboa/frontend_dist/assets/{FiltersView-5rmpC5cC.js → FiltersView-FYFZxG4B.js} +1 -1
  49. modoboa/frontend_dist/assets/ForwardEmailView-cUbnSYCF.js +1 -0
  50. modoboa/frontend_dist/assets/{HtmlEditor-uM4AtIGi.js → HtmlEditor-CJ9umKeO.js} +1 -1
  51. modoboa/frontend_dist/assets/{IdentitiesView-jmuItyMZ.css → IdentitiesView-0ziuQ5s-.css} +1 -1
  52. modoboa/frontend_dist/assets/IdentitiesView-njNo8N5n.js +1 -0
  53. modoboa/frontend_dist/assets/{InformationView-CghcvPn2.js → InformationView-D1h38POt.js} +1 -1
  54. modoboa/frontend_dist/assets/{LoadingData-CVD2Aen8.js → LoadingData-CYwX3Jpn.js} +1 -1
  55. modoboa/frontend_dist/assets/{LoginCallbackView-sWzBke1g.js → LoginCallbackView-E01qkKn0.js} +1 -1
  56. modoboa/frontend_dist/assets/{LoginView-wmN73W0f.js → LoginView-Cy4uFV9h.js} +1 -1
  57. modoboa/frontend_dist/assets/{MailboxView-T_p-_ZtJ.js → MailboxView-IlrLWm_H.js} +1 -1
  58. modoboa/frontend_dist/assets/{MenuItems-kHCMzR5E.js → MenuItems-BAtHWzAE.js} +1 -1
  59. modoboa/frontend_dist/assets/MessagesView-OSpjixFq.js +1 -0
  60. modoboa/frontend_dist/assets/{MigrationsView-7kjqPyYU.js → MigrationsView-DKNOsVzF.js} +1 -1
  61. modoboa/frontend_dist/assets/{ParametersForm-BCeQljir.js → ParametersForm-BZM0QSvg.js} +1 -1
  62. modoboa/frontend_dist/assets/ParametersView-C4bXASiq.js +1 -0
  63. modoboa/frontend_dist/assets/ParametersView-CYXgNmc1.js +1 -0
  64. modoboa/frontend_dist/assets/{ProviderEditView-DDLMOylC.js → ProviderEditView-CyxCWTST.js} +1 -1
  65. modoboa/frontend_dist/assets/{ProviderGeneralForm-BwOSKNHK.js → ProviderGeneralForm-BYPjNHqB.js} +1 -1
  66. modoboa/frontend_dist/assets/ProvidersView-CxrMkRyk.js +1 -0
  67. modoboa/frontend_dist/assets/ReplyEmailView-Dkw9-N26.js +1 -0
  68. modoboa/frontend_dist/assets/{ResourcesForm-D87PHeH0.js → ResourcesForm-CuUvrOdY.js} +1 -1
  69. modoboa/frontend_dist/assets/SettingsView-BxLJBFY0.js +6 -0
  70. modoboa/frontend_dist/assets/{StatisticsView-CM__Eqku.js → StatisticsView-BN7QsZMT.js} +1 -1
  71. modoboa/frontend_dist/assets/{TimeSerieChart-C6j0uYR_.js → TimeSerieChart-BMN8BeFZ.js} +1 -1
  72. modoboa/frontend_dist/assets/UserLayout-B6-JQg4F.js +1 -0
  73. modoboa/frontend_dist/assets/{VAlert-B7mzOJIO.js → VAlert-DIQTrRif.js} +1 -1
  74. modoboa/frontend_dist/assets/{VApp-BKxnjOoi.js → VApp-CpkYA7js.js} +1 -1
  75. modoboa/frontend_dist/assets/{VAutocomplete-Cc4_tcl1.js → VAutocomplete-C4IpXyl8.js} +1 -1
  76. modoboa/frontend_dist/assets/{VAvatar-BAgTUIvX.js → VAvatar-Lpb-Dion.js} +1 -1
  77. modoboa/frontend_dist/assets/{VCard-DFWiFORP.js → VCard-er_isjE_.js} +1 -1
  78. modoboa/frontend_dist/assets/{VCheckbox-CKsH_vq3.js → VCheckbox-D-u8JXP1.js} +1 -1
  79. modoboa/frontend_dist/assets/{VCheckboxBtn-j7di4leN.js → VCheckboxBtn-Dt810gWf.js} +1 -1
  80. modoboa/frontend_dist/assets/{VChip-nZ0uhY7t.js → VChip-B4iSpj8_.js} +1 -1
  81. modoboa/frontend_dist/assets/{VColorPicker-Os2aeP6J.js → VColorPicker-BAjGDsXv.js} +1 -1
  82. modoboa/frontend_dist/assets/VContainer-DvTbsotR.js +1 -0
  83. modoboa/frontend_dist/assets/{VDataTable-D_0_xJTl.js → VDataTable-4JRjbtgF.js} +1 -1
  84. modoboa/frontend_dist/assets/{VDataTableServer-BWTt4Mzi.js → VDataTableServer-tIDT1m3-.js} +1 -1
  85. modoboa/frontend_dist/assets/{VDataTableVirtual-BwVmkt4u.js → VDataTableVirtual-BlnO18u_.js} +1 -1
  86. modoboa/frontend_dist/assets/{VDialog-CZqM2Ofu.js → VDialog-Bk6EWNhz.js} +1 -1
  87. modoboa/frontend_dist/assets/{VExpansionPanels-B5D6GOa3.js → VExpansionPanels-CwGtXDhr.js} +1 -1
  88. modoboa/frontend_dist/assets/{VFileInput-Cv9DIPki.js → VFileInput-D1_7ZkO_.js} +1 -1
  89. modoboa/frontend_dist/assets/{VForm-CpoZf60D.js → VForm-DAkW4nfy.js} +1 -1
  90. modoboa/frontend_dist/assets/{VMenu-B_dVqOmo.js → VMenu-BPFJwj2f.js} +1 -1
  91. modoboa/frontend_dist/assets/{VPicker-CXkIGEze.js → VPicker-CfT82M8N.js} +1 -1
  92. modoboa/frontend_dist/assets/{VProgressCircular-CrEXxs7k.js → VProgressCircular-w75-3ogi.js} +1 -1
  93. modoboa/frontend_dist/assets/{VRadioGroup-D8ypjYOO.js → VRadioGroup-0j6DNC_k.js} +1 -1
  94. modoboa/frontend_dist/assets/{VRow-C_Ydf6yr.js → VRow-BF35mT1S.js} +1 -1
  95. modoboa/frontend_dist/assets/{VSelect-CS51PDEt.js → VSelect-Cs4ARbAS.js} +1 -1
  96. modoboa/frontend_dist/assets/{VSelectionControl-DiOqtY38.js → VSelectionControl-Dg-XyRRS.js} +1 -1
  97. modoboa/frontend_dist/assets/VSheet-Btq_Mu4s.js +1 -0
  98. modoboa/frontend_dist/assets/VSpacer-C7xukQmu.js +1 -0
  99. modoboa/frontend_dist/assets/{VSwitch-Chg5o-Cp.js → VSwitch-Cs1NQrmk.js} +1 -1
  100. modoboa/frontend_dist/assets/{VTable-KsiZ3cBz.js → VTable-CNz2SGk4.js} +1 -1
  101. modoboa/frontend_dist/assets/{VTabs-tNrJIYO0.js → VTabs-B1fyVn4M.js} +1 -1
  102. modoboa/frontend_dist/assets/{VTextField-CLwRV0Cb.js → VTextField-BdyvgvkG.js} +1 -1
  103. modoboa/frontend_dist/assets/{VTextarea-Di8jbl8m.js → VTextarea-DnOMpe0Q.js} +1 -1
  104. modoboa/frontend_dist/assets/{VToolbar-CGwhgdmI.js → VToolbar-BiCiBxBJ.js} +1 -1
  105. modoboa/frontend_dist/assets/{VWindowItem-wWSFAGI-.js → VWindowItem-ChWm_kz3.js} +1 -1
  106. modoboa/frontend_dist/assets/WebmailLayout-o4uEkp9e.js +1 -0
  107. modoboa/frontend_dist/assets/admin-o-HRGnmT.js +1 -0
  108. modoboa/frontend_dist/assets/{aliases-c3n-dCV_.js → aliases-DDVeehyg.js} +1 -1
  109. modoboa/frontend_dist/assets/{contacts-Bqckz8sr.js → contacts-C84DY-Q1.js} +1 -1
  110. modoboa/frontend_dist/assets/{domains-nBMR-fRf.js → domains-Bgn4ixHL.js} +1 -1
  111. modoboa/frontend_dist/assets/{domains.store-ChZgLcqP.js → domains.store-DTE-V7Y1.js} +1 -1
  112. modoboa/frontend_dist/assets/{filter-D7NrAf6a.js → filter-CnffiQAW.js} +1 -1
  113. modoboa/frontend_dist/assets/{forwardRefs-Cpc3YYl6.js → forwardRefs-Dvjn_Xq4.js} +1 -1
  114. modoboa/frontend_dist/assets/{global.store-DUP26-A5.js → global.store-BaiD63EN.js} +1 -1
  115. modoboa/frontend_dist/assets/{importExport-Dn9vYw7T.js → importExport-BlQYb0NO.js} +1 -1
  116. modoboa/frontend_dist/assets/index-DuzUMVLM.js +1 -0
  117. modoboa/frontend_dist/assets/index-I1VDlN4g.js +984 -0
  118. modoboa/frontend_dist/assets/layout-D8ZJPiJ_.js +1 -0
  119. modoboa/frontend_dist/assets/{layout.store-BxBoBlgf.js → layout.store-DkjrAoXt.js} +1 -1
  120. modoboa/frontend_dist/assets/logos-q8SEyAa4.js +1 -0
  121. modoboa/frontend_dist/assets/{logs-DrTzylW7.js → logs-B7IJ7LBa.js} +1 -1
  122. modoboa/frontend_dist/assets/{parameters-Lgiqp7aw.js → parameters-A6iBEYQq.js} +1 -1
  123. modoboa/frontend_dist/assets/{parameters.store-C9k9DuTj.js → parameters.store-BiXS4_6w.js} +1 -1
  124. modoboa/frontend_dist/assets/{permissions-mL5hLHcW.js → permissions-CITHLHVg.js} +1 -1
  125. modoboa/frontend_dist/assets/{ssrBoot-BsxW6uW4.js → ssrBoot-AzTdjPjk.js} +1 -1
  126. modoboa/frontend_dist/assets/{tag-CFK9dzMJ.js → tag-BnSYRTcD.js} +1 -1
  127. modoboa/frontend_dist/assets/transports-Dz7c6kIy.js +1 -0
  128. modoboa/frontend_dist/assets/{webmail-KrD8ZhNM.js → webmail-CSH_3l6R.js} +1 -1
  129. modoboa/frontend_dist/index.html +1 -1
  130. modoboa/lib/redis.py +1 -5
  131. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  132. modoboa/locale/ja_JP/LC_MESSAGES/django.po +122 -263
  133. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/METADATA +1 -1
  134. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/RECORD +139 -138
  135. modoboa/frontend_dist/assets/AccountLayout-OGtZvlHR.js +0 -1
  136. modoboa/frontend_dist/assets/AccountView-DsxYqr3k.js +0 -1
  137. modoboa/frontend_dist/assets/AdminLayout-CWfn8zaQ.js +0 -1
  138. modoboa/frontend_dist/assets/ComposeEmailView-B866Xsrc.js +0 -1
  139. modoboa/frontend_dist/assets/ConnectedLayout-BQ3ug6Jh.js +0 -1
  140. modoboa/frontend_dist/assets/CreationForm-C9Kh05ax.js +0 -1
  141. modoboa/frontend_dist/assets/DashboardView-Cw-gIcuB.js +0 -1
  142. modoboa/frontend_dist/assets/DomainAdminList-CsWUNKVk.js +0 -1
  143. modoboa/frontend_dist/assets/DomainView-Djc_0PsF.js +0 -5
  144. modoboa/frontend_dist/assets/DomainsView-B-Lxru7P.js +0 -1
  145. modoboa/frontend_dist/assets/EmptyLayout-BzPFOeLU.js +0 -1
  146. modoboa/frontend_dist/assets/ForwardEmailView-D7MbetcT.js +0 -1
  147. modoboa/frontend_dist/assets/IdentitiesView-BqjD9Lue.js +0 -1
  148. modoboa/frontend_dist/assets/MessagesView-Cerv3xsy.js +0 -1
  149. modoboa/frontend_dist/assets/ParametersView-DspBxVMV.js +0 -1
  150. modoboa/frontend_dist/assets/ParametersView-Dy0H5ep1.js +0 -1
  151. modoboa/frontend_dist/assets/ProvidersView-C99UD0WB.js +0 -1
  152. modoboa/frontend_dist/assets/ReplyEmailView-DAPBHldd.js +0 -1
  153. modoboa/frontend_dist/assets/SettingsView-OxDo9wNd.js +0 -6
  154. modoboa/frontend_dist/assets/UserLayout-CckCGnPS.js +0 -1
  155. modoboa/frontend_dist/assets/VContainer-Btam4lk2.js +0 -1
  156. modoboa/frontend_dist/assets/VSheet-5VVWtHvs.js +0 -1
  157. modoboa/frontend_dist/assets/VSpacer-C6PZ3X24.js +0 -1
  158. modoboa/frontend_dist/assets/WebmailLayout-DsYThBrz.js +0 -1
  159. modoboa/frontend_dist/assets/admin-CJVLMHh9.js +0 -1
  160. modoboa/frontend_dist/assets/index-DV9Li2cg.js +0 -852
  161. modoboa/frontend_dist/assets/index-DzL89N4E.js +0 -1
  162. modoboa/frontend_dist/assets/layout-CHO37cA6.js +0 -1
  163. modoboa/frontend_dist/assets/transports-TO08iTXJ.js +0 -1
  164. {modoboa-2.4.10.data → modoboa-2.4.11.data}/scripts/modoboa-admin.py +0 -0
  165. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/WHEEL +0 -0
  166. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/entry_points.txt +0 -0
  167. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/licenses/LICENSE +0 -0
  168. {modoboa-2.4.10.dist-info → modoboa-2.4.11.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- import{k as C,h as _,g as V,d as B,m as o,o as a,e as i,t as u,J as m,F as r,G as f,c as L,q as F}from"./index-DV9Li2cg.js";import{d as N}from"./VAvatar-BAgTUIvX.js";const P={class:"m-label"},w=["onClick"],I={class:"text-grey-darken-1"},S={__name:"ChoiceField",props:{modelValue:{type:[Number,String],default:null},label:{type:String,default:""},choices:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},choicesPerLine:{type:Number,required:!1,default:null}},emits:["update:modelValue"],setup(s,{emit:b}){const l=s,h=b,c=_({get(){return l.modelValue},set(e){h("update:modelValue",e)}}),n=V([]);function p(){if(l.choicesPerLine){let e=0;for(;e<l.choices.length;){const d=l.choices.slice(e,e+l.choicesPerLine);n.value.push(d),e+=l.choicesPerLine}}else n.value.push(l.choices)}function v(e){return!l.disabled&&e===c.value?"primary":""}function x(e){l.disabled||(c.value=e)}return B(()=>{p()}),(e,d)=>(a(),o(r,null,[i("div",{class:m(["text-subtitle-1 text-grey-darken-1 mb-5",{"label--disabled":s.disabled}])},[i("label",P,u(s.label),1)],2),(a(!0),o(r,null,f(n.value,(y,g)=>(a(),o("div",{key:g,class:"d-flex flex-grow-0"},[(a(!0),o(r,null,f(y,(t,k)=>(a(),o("div",{key:k,class:m(["choice rounded pa-10 mr-4 text-center flex-grow-0 mb-4",{"choice--disabled":s.disabled,"choice--selected":!s.disabled&&c.value===t.value}]),onClick:q=>x(t.value)},[t.icon?(a(),L(N,{key:0,class:"d-block mb-2 mx-auto",color:v(t.value),size:"x-large",icon:t.icon},null,8,["color","icon"])):F("",!0),i("span",I,u(t.label),1)],10,w))),128))]))),128))],64))}},D=C(S,[["__scopeId","data-v-762c41e2"]]);export{D as C};
1
+ import{k as C,h as _,g as V,d as B,m as o,o as a,e as i,t as u,J as m,F as r,G as f,c as L,n as F}from"./index-I1VDlN4g.js";import{d as N}from"./VAvatar-Lpb-Dion.js";const P={class:"m-label"},w=["onClick"],I={class:"text-grey-darken-1"},S={__name:"ChoiceField",props:{modelValue:{type:[Number,String],default:null},label:{type:String,default:""},choices:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},choicesPerLine:{type:Number,required:!1,default:null}},emits:["update:modelValue"],setup(s,{emit:b}){const l=s,h=b,c=_({get(){return l.modelValue},set(e){h("update:modelValue",e)}}),n=V([]);function p(){if(l.choicesPerLine){let e=0;for(;e<l.choices.length;){const d=l.choices.slice(e,e+l.choicesPerLine);n.value.push(d),e+=l.choicesPerLine}}else n.value.push(l.choices)}function v(e){return!l.disabled&&e===c.value?"primary":""}function x(e){l.disabled||(c.value=e)}return B(()=>{p()}),(e,d)=>(a(),o(r,null,[i("div",{class:m(["text-subtitle-1 text-grey-darken-1 mb-5",{"label--disabled":s.disabled}])},[i("label",P,u(s.label),1)],2),(a(!0),o(r,null,f(n.value,(y,g)=>(a(),o("div",{key:g,class:"d-flex flex-grow-0"},[(a(!0),o(r,null,f(y,(t,k)=>(a(),o("div",{key:k,class:m(["choice rounded pa-10 mr-4 text-center flex-grow-0 mb-4",{"choice--disabled":s.disabled,"choice--selected":!s.disabled&&c.value===t.value}]),onClick:z=>x(t.value)},[t.icon?(a(),L(N,{key:0,class:"d-block mb-2 mx-auto",color:v(t.value),size:"x-large",icon:t.icon},null,8,["color","icon"])):F("",!0),i("span",I,u(t.label),1)],10,w))),128))]))),128))],64))}},D=C(S,[["__scopeId","data-v-762c41e2"]]);export{D as C};
@@ -1 +1 @@
1
- import{g as b,c as ee,o as z,w as v,a,l as Se,t as K,e as w,f as h,m as re,F as le,G as je,Q as he,R as Le,L as G,bO as Ne,D as Oe,v as He,x as Ke,y as Ge,ac as oe,T as ye,ab as Je,h as q,ad as Qe,av as be,a6 as xe,as as We,B as Z,U as Xe,bP as Ye,at as Ce,aw as Ze,ax as el,a7 as ll,J as al,b as tl,n as ol,u as nl,M as ul,s as sl,q as ie}from"./index-DV9Li2cg.js";import{d as il}from"./index-DzL89N4E.js";import{a as L}from"./webmail-KrD8ZhNM.js";import{V as Ae,r as ve}from"./VForm-CpoZf60D.js";import{c as rl,V as dl,a as cl,b as ml}from"./VCard-DFWiFORP.js";import{V as vl}from"./VFileInput-Cv9DIPki.js";import{V as D,X as ke,m as fl,d as we,f as pl,h as gl}from"./VAvatar-BAgTUIvX.js";import{V as Vl}from"./VTable-KsiZ3cBz.js";import{V as hl}from"./VSpacer-C6PZ3X24.js";import{_ as yl}from"./HtmlEditor-uM4AtIGi.js";import{V as bl}from"./VTextarea-Di8jbl8m.js";import{c as xl}from"./contacts-Bqckz8sr.js";import{V as Cl}from"./VToolbar-CGwhgdmI.js";import{V as ne,a as R}from"./VRow-C_Ydf6yr.js";import{b as kl,c as wl,d as _l,V as Sl}from"./VSelect-CS51PDEt.js";import{f as Al,V as fe,g as El}from"./VTextField-CLwRV0Cb.js";import{a as Fl}from"./VProgressCircular-CrEXxs7k.js";import{u as Dl,m as Ul,h as Ml}from"./filter-D7NrAf6a.js";import{d as Tl,t as ue,f as Rl,V as Il,a as _e}from"./forwardRefs-Cpc3YYl6.js";import{V as Pl}from"./VMenu-B_dVqOmo.js";import{V as Bl}from"./VCheckboxBtn-j7di4leN.js";import{V as $l}from"./VChip-nZ0uhY7t.js";import{u as zl}from"./tag-CFK9dzMJ.js";import{V as ql}from"./VDialog-CZqM2Ofu.js";const jl={class:"w-100 d-flex justify-center"},Ll={__name:"AttachmentsDialog",props:{sessionUid:{type:String,default:null}},emits:["close"],setup(l,{emit:N}){const V=l,s=N,x=b([]),g=b(),d=b(),_=b(!1),U=()=>{s("close")},S=async()=>{const{valid:o}=await d.value.validate();if(!o)return;const A=new FormData;A.append("attachment",g.value),_.value=!0;try{const u=await L.uploadAttachment(V.sessionUid,A);x.value.push(u.data),d.value.reset()}finally{_.value=!1}},M=async o=>{await L.removeAttachment(V.sessionUid,o.tmpname);const A=x.value.findIndex(u=>u.tmpname===o.tmpname);x.value.splice(A,1)};return L.getComposeSession(V.sessionUid).then(o=>{x.value=o.data.attachments}),(o,A)=>(z(),ee(ml,null,{default:v(()=>[a(rl,null,{default:v(()=>[Se(K(o.$gettext("Attachments")),1)]),_:1}),a(dl,null,{default:v(()=>[a(Ae,{ref_key:"formRef",ref:d},{default:v(()=>[a(vl,{modelValue:g.value,"onUpdate:modelValue":A[0]||(A[0]=u=>g.value=u),density:"compact",variant:"outlined",rules:[h(ve).required]},null,8,["modelValue","rules"]),w("div",jl,[a(D,{color:"primary",variant:"tonal",text:o.$gettext("Attach"),onClick:S},null,8,["text"])])]),_:1},512),a(Vl,{class:"mt-4 border-sm"},{default:v(()=>[w("tbody",null,[(z(!0),re(le,null,je(x.value,u=>(z(),re("tr",{key:u.fname},[w("td",null,K(u.fname),1),w("td",null,[a(D,{icon:"mdi-trash-can",color:"error",size:"small",variant:"text",onClick:ae=>M(u)},null,8,["onClick"])])]))),128))])]),_:1})]),_:1}),a(cl,null,{default:v(()=>[a(hl),a(D,{text:o.$gettext("Close"),variant:"flat",onClick:U},null,8,["text"])]),_:1})]),_:1}))}},Nl={class:"mt-8"},Ol={__name:"BodyEditor",props:he({editorMode:{type:String,default:null}},{modelValue:{},modelModifiers:{}}),emits:he(["onToggleHtmlMode"],["update:modelValue"]),setup(l,{emit:N}){const V=l,s=Le(l,"modelValue"),x=N,g=b(!1),d=b(),_=()=>{g.value=!g.value,x("onToggleHtmlMode",g.value)};return G(()=>V.editorMode,U=>{g.value=U==="html"}),(U,S)=>{const M=Ne("btn");return g.value?(z(),ee(h(yl),{key:0,modelValue:s.value,"onUpdate:modelValue":S[1]||(S[1]=o=>s.value=o),class:"d-flex flex-column flex-grow-1 mt-4"},{"append-toolbar":v(()=>[a(ke,{modelValue:d.value,"onUpdate:modelValue":S[0]||(S[0]=o=>d.value=o),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:v(()=>[a(D,{text:"HTML",size:"small",onClick:_})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])):(z(),re(le,{key:1},[w("div",Nl,[a(ke,{modelValue:d.value,"onUpdate:modelValue":S[2]||(S[2]=o=>d.value=o),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:v(()=>[Oe(a(D,{text:"HTML",size:"small",onClick:_},null,512),[[M]])]),_:1},8,["modelValue"])]),a(bl,{modelValue:s.value,"onUpdate:modelValue":S[3]||(S[3]=o=>s.value=o),class:"border-sm"},null,8,["modelValue"])],64))}}},Hl=Ke({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Ul({filterKeys:["title"]}),...wl({hideNoData:!0,returnObject:!0}),...Xe(El({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...fl({transition:!1})},"VCombobox"),me=He()({name:"VCombobox",props:Hl(),emits:{"update:focused":l=>!0,"update:modelValue":l=>!0,"update:search":l=>!0,"update:menu":l=>!0},setup(l,N){var pe;let{emit:V,slots:s}=N;const{t:x}=Ge(),g=b(),d=oe(!1),_=oe(!0),U=oe(!1),S=b(),M=b(),o=oe(-1);let A=!1;const{items:u,transformIn:ae,transformOut:J}=Tl(l),{textColorClasses:O,textColorStyles:Q}=Fl(()=>{var e;return(e=g.value)==null?void 0:e.color}),r=ye(l,"modelValue",[],e=>ae(Je(e)),e=>{const n=J(e);return l.multiple?n:n[0]??null}),W=Al(l),X=q(()=>!!(l.chips||s.chip)),T=q(()=>X.value||!!s.selection),I=oe(!l.multiple&&!T.value?((pe=r.value[0])==null?void 0:pe.title)??"":""),C=q({get:()=>I.value,set:e=>{var n;if(I.value=e??"",!l.multiple&&!T.value&&(r.value=[ue(l,e)]),e&&l.multiple&&((n=l.delimiters)!=null&&n.length)){const y=e.split(new RegExp(`(?:${l.delimiters.join("|")})+`));y.length>1&&(y.forEach(i=>{i=i.trim(),i&&B(ue(l,i))}),I.value="")}e||(o.value=-1),_.value=!e}}),te=q(()=>typeof l.counterValue=="function"?l.counterValue(r.value):typeof l.counterValue=="number"?l.counterValue:l.multiple?r.value.length:C.value.length),{filteredItems:H,getMatches:p}=Dl(l,u,()=>_.value?"":C.value),t=q(()=>l.hideSelected?H.value.filter(e=>!r.value.some(n=>n.value===e.value)):H.value),c=q(()=>l.hideNoData&&!t.value.length||W.isReadonly.value||W.isDisabled.value),Y=ye(l,"menu"),f=q({get:()=>Y.value,set:e=>{var n;Y.value&&!e&&((n=S.value)!=null&&n.ΨopenChildren.size)||e&&c.value||(Y.value=e)}}),P=Qe(()=>f.value?l.closeText:l.openText);G(I,e=>{A?xe(()=>A=!1):d.value&&!f.value&&(f.value=!0),V("update:search",e)}),G(r,e=>{var n;!l.multiple&&!T.value&&(I.value=((n=e[0])==null?void 0:n.title)??"")});const Ee=q(()=>r.value.map(e=>e.value)),de=q(()=>{var n;return(l.autoSelectFirst===!0||l.autoSelectFirst==="exact"&&C.value===((n=t.value[0])==null?void 0:n.title))&&t.value.length>0&&!_.value&&!U.value}),ce=b(),Fe=kl(ce,g);function De(e){A=!0,l.openOnClear&&(f.value=!0)}function Ue(){c.value||(f.value=!0)}function Me(e){c.value||(d.value&&(e.preventDefault(),e.stopPropagation()),f.value=!f.value)}function Te(e){var n;e.key!==" "&&Ce(e)&&((n=g.value)==null||n.focus())}function Re(e){var i,k,E,$;if(Ye(e)||W.isReadonly.value)return;const n=(i=g.value)==null?void 0:i.selectionStart,y=r.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(e.key)&&e.preventDefault(),["Enter","ArrowDown"].includes(e.key)&&(f.value=!0),["Escape"].includes(e.key)&&(f.value=!1),["Enter","Escape","Tab"].includes(e.key)&&(de.value&&["Enter","Tab"].includes(e.key)&&!r.value.some(m=>{let{value:j}=m;return j===t.value[0].value})&&B(H.value[0]),_.value=!0),e.key==="ArrowDown"&&de.value&&((k=ce.value)==null||k.focus("next")),e.key==="Enter"&&C.value&&(B(ue(l,C.value)),T.value&&(I.value="")),["Backspace","Delete"].includes(e.key)){if(!l.multiple&&T.value&&r.value.length>0&&!C.value)return B(r.value[0],!1);if(~o.value){e.preventDefault();const m=o.value;B(r.value[o.value],!1),o.value=m>=y-1?y-2:m}else e.key==="Backspace"&&!C.value&&(o.value=y-1);return}if(l.multiple)if(e.key==="ArrowLeft"){if(o.value<0&&n&&n>0)return;const m=o.value>-1?o.value-1:y-1;r.value[m]?o.value=m:(o.value=-1,(E=g.value)==null||E.setSelectionRange(C.value.length,C.value.length))}else if(e.key==="ArrowRight"){if(o.value<0)return;const m=o.value+1;r.value[m]?o.value=m:(o.value=-1,($=g.value)==null||$.setSelectionRange(0,0))}else~o.value&&Ce(e)&&(o.value=-1)}function Ie(){var e;l.eager&&((e=M.value)==null||e.calculateVisibleItems())}function Pe(){var e;d.value&&(_.value=!0,(e=g.value)==null||e.focus())}function B(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!e||e.props.disabled))if(l.multiple){const y=r.value.findIndex(k=>(l.valueComparator||be)(k.value,e.value)),i=n??!~y;if(~y){const k=i?[...r.value,e]:[...r.value];k.splice(y,1),r.value=k}else i&&(r.value=[...r.value,e]);l.clearOnSelect&&(C.value="")}else{const y=n!==!1;r.value=y?[e]:[],I.value=y&&!T.value?e.title:"",xe(()=>{f.value=!1,_.value=!0})}}function Be(e){d.value=!0,setTimeout(()=>{U.value=!0})}function $e(e){U.value=!1}function ze(e){(e==null||e===""&&!l.multiple&&!T.value)&&(r.value=[])}return G(d,(e,n)=>{if(!(e||e===n)&&(o.value=-1,f.value=!1,C.value)){if(l.multiple){B(ue(l,C.value));return}if(!T.value)return;r.value.some(y=>{let{title:i}=y;return i===C.value})?I.value="":B(ue(l,C.value))}}),G(f,()=>{if(!l.hideSelected&&f.value&&r.value.length){const e=t.value.findIndex(n=>r.value.some(y=>(l.valueComparator||be)(y.value,n.value)));We&&window.requestAnimationFrame(()=>{var n;e>=0&&((n=M.value)==null||n.scrollToIndex(e))})}}),G(()=>l.items,(e,n)=>{f.value||d.value&&!n.length&&e.length&&(f.value=!0)}),zl(()=>{const e=!!(!l.hideNoData||t.value.length||s["prepend-item"]||s["append-item"]||s["no-data"]),n=r.value.length>0,y=fe.filterProps(l);return a(fe,Z({ref:g},y,{modelValue:C.value,"onUpdate:modelValue":[i=>C.value=i,ze],focused:d.value,"onUpdate:focused":i=>d.value=i,validationValue:r.externalValue,counterValue:te.value,dirty:n,class:["v-combobox",{"v-combobox--active-menu":f.value,"v-combobox--chips":!!l.chips,"v-combobox--selection-slot":!!T.value,"v-combobox--selecting-index":o.value>-1,[`v-combobox--${l.multiple?"multiple":"single"}`]:!0},l.class],style:l.style,readonly:W.isReadonly.value,placeholder:n?void 0:l.placeholder,"onClick:clear":De,"onMousedown:control":Ue,onKeydown:Re}),{...s,default:()=>w(le,null,[a(Pl,Z({ref:S,modelValue:f.value,"onUpdate:modelValue":i=>f.value=i,activator:"parent",contentClass:"v-combobox__content",disabled:c.value,eager:l.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:l.transition,onAfterEnter:Ie,onAfterLeave:Pe},l.menuProps),{default:()=>[e&&a(Il,Z({ref:ce,selected:Ee.value,selectStrategy:l.multiple?"independent":"single-independent",onMousedown:i=>i.preventDefault(),onKeydown:Te,onFocusin:Be,onFocusout:$e,tabindex:"-1","aria-live":"polite",color:l.itemColor??l.color},Fe,l.listProps),{default:()=>{var i,k,E;return[(i=s["prepend-item"])==null?void 0:i.call(s),!t.value.length&&!l.hideNoData&&(((k=s["no-data"])==null?void 0:k.call(s))??a(_e,{key:"no-data",title:x(l.noDataText)},null)),a(_l,{ref:M,renderless:!0,items:t.value,itemKey:"value"},{default:$=>{var Ve;let{item:m,index:j,itemRef:F}=$;const ge=Z(m.props,{ref:F,key:m.value,active:de.value&&j===0?!0:void 0,onClick:()=>B(m,null)});return((Ve=s.item)==null?void 0:Ve.call(s,{item:m,index:j,props:ge}))??a(_e,Z(ge,{role:"option"}),{prepend:se=>{let{isSelected:qe}=se;return w(le,null,[l.multiple&&!l.hideSelected?a(Bl,{key:m.value,modelValue:qe,ripple:!1,tabindex:"-1"},null):void 0,m.props.prependAvatar&&a(pl,{image:m.props.prependAvatar},null),m.props.prependIcon&&a(we,{icon:m.props.prependIcon},null)])},title:()=>{var se;return _.value?m.title:Ml("v-combobox",m.title,(se=p(m))==null?void 0:se.title)}})}}),(E=s["append-item"])==null?void 0:E.call(s)]}})]}),r.value.map((i,k)=>{function E(F){F.stopPropagation(),F.preventDefault(),B(i,!1)}const $={"onClick:close":E,onKeydown(F){F.key!=="Enter"&&F.key!==" "||(F.preventDefault(),F.stopPropagation(),E(F))},onMousedown(F){F.preventDefault(),F.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},m=X.value?!!s.chip:!!s.selection,j=m?el(X.value?s.chip({item:i,index:k,props:$}):s.selection({item:i,index:k})):void 0;if(!(m&&!j))return w("div",{key:i.value,class:al(["v-combobox__selection",k===o.value&&["v-combobox__selection--selected",O.value]]),style:ll(k===o.value?Q.value:{})},[X.value?s.chip?a(gl,{key:"chip-defaults",defaults:{VChip:{closable:l.closableChips,size:"small",text:i.title}}},{default:()=>[j]}):a($l,Z({key:"chip",closable:l.closableChips,size:"small",text:i.title,disabled:i.props.disabled},$),null):j??w("span",{class:"v-combobox__selection-text"},[i.title,l.multiple&&k<r.value.length-1&&w("span",{class:"v-combobox__selection-comma"},[Se(",")])])])})]),"append-inner":function(){var $,m;for(var i=arguments.length,k=new Array(i),E=0;E<i;E++)k[E]=arguments[E];return w(le,null,[($=s["append-inner"])==null?void 0:$.call(s,...k),(!l.hideNoData||l.items.length)&&l.menuIcon?a(we,{class:"v-combobox__menu-icon",color:(m=g.value)==null?void 0:m.fieldIconColor,icon:l.menuIcon,onMousedown:Me,onClick:Ze,"aria-label":x(P.value),title:x(P.value),tabindex:"-1"},null):void 0])}})}),Rl({isFocused:d,isPristine:_,menu:f,search:C,selectionIndex:o,filteredItems:H,select:B},g)}}),Kl={class:"bg-white rounded-lg pa-4 position-relative h-100 d-flex flex-column"},Va={__name:"ComposeEmailForm",props:{originalEmail:{type:Object,default:null},replyAll:{type:Boolean,default:!1}},emits:["onToggleHtmlMode"],setup(l,{emit:N}){const V=l,s=N,x=ul(),g=sl(),{$gettext:d}=tl(),{displayNotification:_}=ol(),U=nl(),S=b([]),M=b(0),o=b([]),A=b("plain"),u=b({}),ae=b(),J=b(!1),O=b(!1),Q=b(!1),r=b(!1),W=()=>{g.push({name:"MailboxView"})},X=()=>{if(u.value={sender:U.authUser.username},V.originalEmail){if(u.value.to=V.originalEmail.reply_to?V.originalEmail.reply_to:V.originalEmail.from_address.address,V.replyAll){let p=V.originalEmail.to.filter(t=>t.address!==U.authUser.username).map(t=>t.fulladdress);V.originalEmail.cc&&V.originalEmail.cc.length&&(p=p.concat(V.originalEmail.cc.map(t=>t.fulladdress))),u.value.cc=p,O.value=!0}u.value.subject=V.originalEmail.subject,u.value.body=V.originalEmail.body,V.originalEmail.message_id&&(u.value.in_reply_to=V.originalEmail.message_id)}},T=async()=>{var c,Y;const{valid:p}=await ae.value.validate();if(!p)return;r.value=!0;const t={...u.value};if(typeof u.value.to!="string"?t.to=[u.value.to.emails[0].address]:t.to=[u.value.to],(c=t.cc)!=null&&c.length){const f=[];for(const P of t.cc)f.push(typeof P=="string"?P:P.emails[0].address);t.cc=f}if((Y=t.bcc)!=null&&Y.length){const f=[];for(const P of t.bcc)f.push(typeof P=="string"?P:P.emails[0].address);t.bcc=f}try{await L.sendEmailFromComposeSession(x.query.uid,t),g.push({name:"MailboxView"}),_({msg:d("Email sent")})}catch(f){console.log(f)}finally{r.value=!1}},I=()=>{J.value=!0},C=async()=>{J.value=!1;const p=await L.getUploadedAttachments(x.query.uid);M.value=p.data.length},te=il(async p=>{if(p){const t={search:p},c=await xl.getContacts(t);c.data.length&&(o.value=c.data)}else o.value=[]},500),H=p=>{p.signature&&(u.value.body?u.value.body+=p.signature:u.value.body=p.signature),A.value=p.editor_format};return G(()=>V.originalEmail,()=>{X()},{immediate:!0}),x.query.uid?L.getComposeSession(x.query.uid).then(p=>{M.value=p.data.attachments.length,H(p.data)}):L.createComposeSession().then(p=>{const t={...x.query,uid:p.data.uid};g.push({name:x.name,query:t}),H(p.data)}),L.getAllowedSenders().then(p=>{S.value=p.data}),(p,t)=>(z(),re(le,null,[w("div",Kl,[a(Cl,{color:"white"},{default:v(()=>[a(D,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:W}),a(D,{class:"ml-2",color:"primary",variant:"tonal","prepend-icon":"mdi-send",loading:r.value,text:h(d)("Send"),onClick:T},null,8,["loading","text"]),a(D,{class:"ml-2",variant:"tonal","prepend-icon":"mdi-paperclip",text:h(d)("Attachments")+` (${M.value})`,onClick:I},null,8,["text"])]),_:1}),a(Ae,{ref_key:"formRef",ref:ae,class:"flex-grow-1 d-flex flex-column"},{default:v(()=>[w("div",null,[a(ne,{class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("From")),1)]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(Sl,{modelValue:u.value.sender,"onUpdate:modelValue":t[0]||(t[0]=c=>u.value.sender=c),items:S.value,"item-title":"address","item-value":"address",variant:"outlined",density:"compact","hide-details":"auto",rules:[h(ve).required]},null,8,["modelValue","items","rules"])]),_:1})]),_:1}),a(ne,{class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("To")),1)]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.to,"onUpdate:modelValue":t[1]||(t[1]=c=>u.value.to=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",rules:[h(ve).required],"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","rules","onUpdate:search"])]),_:1}),a(R,{cols:"2"},{default:v(()=>[O.value?ie("",!0):(z(),ee(D,{key:0,text:h(d)("Cc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[2]||(t[2]=c=>O.value=!0)},null,8,["text"])),Q.value?ie("",!0):(z(),ee(D,{key:1,text:h(d)("Bcc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[3]||(t[3]=c=>Q.value=!0)},null,8,["text"]))]),_:1})]),_:1}),O.value?(z(),ee(ne,{key:0,class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Cc")),1),a(D,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[4]||(t[4]=c=>O.value=!1)})]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.cc,"onUpdate:modelValue":t[5]||(t[5]=c=>u.value.cc=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ie("",!0),Q.value?(z(),ee(ne,{key:1,class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Bcc")),1),a(D,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[6]||(t[6]=c=>Q.value=!1)})]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.bcc,"onUpdate:modelValue":t[7]||(t[7]=c=>u.value.bcc=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ie("",!0),a(ne,{class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Subject")),1)]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(fe,{modelValue:u.value.subject,"onUpdate:modelValue":t[8]||(t[8]=c=>u.value.subject=c),variant:"outlined",density:"compact","hide-details":"auto"},null,8,["modelValue"])]),_:1})]),_:1})]),a(h(Ol),{modelValue:u.value.body,"onUpdate:modelValue":t[9]||(t[9]=c=>u.value.body=c),"editor-mode":A.value,onOnToggleHtmlMode:t[10]||(t[10]=c=>s("onToggleHtmlMode",c))},null,8,["modelValue","editor-mode"])]),_:1},512)]),a(ql,{modelValue:J.value,"onUpdate:modelValue":t[11]||(t[11]=c=>J.value=c),"max-width":"800"},{default:v(()=>[a(h(Ll),{"session-uid":h(x).query.uid,onClose:C},null,8,["session-uid"])]),_:1},8,["modelValue"])],64))}};export{Va as _};
1
+ import{g as b,c as ee,o as z,w as v,a,l as Se,t as K,e as w,f as h,m as re,F as le,G as je,Q as he,R as qe,L as G,bN as Le,D as Oe,v as He,x as Ke,y as Ge,ab as oe,T as ye,aa as Je,h as N,ac as Qe,au as be,a5 as xe,ar as We,B as Z,U as Xe,bO as Ye,as as Ce,av as Ze,aw as el,a6 as ll,J as al,b as tl,p as ol,u as nl,M as ul,s as sl,n as ie}from"./index-I1VDlN4g.js";import{d as il}from"./index-DuzUMVLM.js";import{a as q}from"./webmail-CSH_3l6R.js";import{V as Ae,r as ve}from"./VForm-DAkW4nfy.js";import{c as rl,V as dl,b as cl,a as ml}from"./VCard-er_isjE_.js";import{V as vl}from"./VFileInput-D1_7ZkO_.js";import{V as D,X as ke,m as fl,d as we,f as pl,h as gl}from"./VAvatar-Lpb-Dion.js";import{V as Vl}from"./VTable-CNz2SGk4.js";import{V as hl}from"./VSpacer-C7xukQmu.js";import{_ as yl}from"./HtmlEditor-CJ9umKeO.js";import{V as bl}from"./VTextarea-DnOMpe0Q.js";import{c as xl}from"./contacts-C84DY-Q1.js";import{V as Cl}from"./VToolbar-BiCiBxBJ.js";import{V as ne,a as R}from"./VRow-BF35mT1S.js";import{b as kl,c as wl,d as _l,V as Sl}from"./VSelect-Cs4ARbAS.js";import{f as Al,V as fe,g as El}from"./VTextField-BdyvgvkG.js";import{a as Fl}from"./VProgressCircular-w75-3ogi.js";import{u as Dl,m as Ul,h as Ml}from"./filter-CnffiQAW.js";import{d as Tl,t as ue,f as Rl,V as Il,a as _e}from"./forwardRefs-Dvjn_Xq4.js";import{V as Pl}from"./VMenu-BPFJwj2f.js";import{V as Bl}from"./VCheckboxBtn-Dt810gWf.js";import{V as $l}from"./VChip-B4iSpj8_.js";import{u as zl}from"./tag-BnSYRTcD.js";import{V as Nl}from"./VDialog-Bk6EWNhz.js";const jl={class:"w-100 d-flex justify-center"},ql={__name:"AttachmentsDialog",props:{sessionUid:{type:String,default:null}},emits:["close"],setup(l,{emit:L}){const V=l,s=L,x=b([]),g=b(),d=b(),_=b(!1),U=()=>{s("close")},S=async()=>{const{valid:o}=await d.value.validate();if(!o)return;const A=new FormData;A.append("attachment",g.value),_.value=!0;try{const u=await q.uploadAttachment(V.sessionUid,A);x.value.push(u.data),d.value.reset()}finally{_.value=!1}},M=async o=>{await q.removeAttachment(V.sessionUid,o.tmpname);const A=x.value.findIndex(u=>u.tmpname===o.tmpname);x.value.splice(A,1)};return q.getComposeSession(V.sessionUid).then(o=>{x.value=o.data.attachments}),(o,A)=>(z(),ee(ml,null,{default:v(()=>[a(rl,null,{default:v(()=>[Se(K(o.$gettext("Attachments")),1)]),_:1}),a(dl,null,{default:v(()=>[a(Ae,{ref_key:"formRef",ref:d},{default:v(()=>[a(vl,{modelValue:g.value,"onUpdate:modelValue":A[0]||(A[0]=u=>g.value=u),density:"compact",variant:"outlined",rules:[h(ve).required]},null,8,["modelValue","rules"]),w("div",jl,[a(D,{color:"primary",variant:"tonal",text:o.$gettext("Attach"),onClick:S},null,8,["text"])])]),_:1},512),a(Vl,{class:"mt-4 border-sm"},{default:v(()=>[w("tbody",null,[(z(!0),re(le,null,je(x.value,u=>(z(),re("tr",{key:u.fname},[w("td",null,K(u.fname),1),w("td",null,[a(D,{icon:"mdi-trash-can",color:"error",size:"small",variant:"text",onClick:ae=>M(u)},null,8,["onClick"])])]))),128))])]),_:1})]),_:1}),a(cl,null,{default:v(()=>[a(hl),a(D,{text:o.$gettext("Close"),variant:"flat",onClick:U},null,8,["text"])]),_:1})]),_:1}))}},Ll={class:"mt-8"},Ol={__name:"BodyEditor",props:he({editorMode:{type:String,default:null}},{modelValue:{},modelModifiers:{}}),emits:he(["onToggleHtmlMode"],["update:modelValue"]),setup(l,{emit:L}){const V=l,s=qe(l,"modelValue"),x=L,g=b(!1),d=b(),_=()=>{g.value=!g.value,x("onToggleHtmlMode",g.value)};return G(()=>V.editorMode,U=>{g.value=U==="html"}),(U,S)=>{const M=Le("btn");return g.value?(z(),ee(h(yl),{key:0,modelValue:s.value,"onUpdate:modelValue":S[1]||(S[1]=o=>s.value=o),class:"d-flex flex-column flex-grow-1 mt-4"},{"append-toolbar":v(()=>[a(ke,{modelValue:d.value,"onUpdate:modelValue":S[0]||(S[0]=o=>d.value=o),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:v(()=>[a(D,{text:"HTML",size:"small",onClick:_})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])):(z(),re(le,{key:1},[w("div",Ll,[a(ke,{modelValue:d.value,"onUpdate:modelValue":S[2]||(S[2]=o=>d.value=o),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:v(()=>[Oe(a(D,{text:"HTML",size:"small",onClick:_},null,512),[[M]])]),_:1},8,["modelValue"])]),a(bl,{modelValue:s.value,"onUpdate:modelValue":S[3]||(S[3]=o=>s.value=o),class:"border-sm"},null,8,["modelValue"])],64))}}},Hl=Ke({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Ul({filterKeys:["title"]}),...wl({hideNoData:!0,returnObject:!0}),...Xe(El({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...fl({transition:!1})},"VCombobox"),me=He()({name:"VCombobox",props:Hl(),emits:{"update:focused":l=>!0,"update:modelValue":l=>!0,"update:search":l=>!0,"update:menu":l=>!0},setup(l,L){var pe;let{emit:V,slots:s}=L;const{t:x}=Ge(),g=b(),d=oe(!1),_=oe(!0),U=oe(!1),S=b(),M=b(),o=oe(-1);let A=!1;const{items:u,transformIn:ae,transformOut:J}=Tl(l),{textColorClasses:O,textColorStyles:Q}=Fl(()=>{var e;return(e=g.value)==null?void 0:e.color}),r=ye(l,"modelValue",[],e=>ae(Je(e)),e=>{const n=J(e);return l.multiple?n:n[0]??null}),W=Al(l),X=N(()=>!!(l.chips||s.chip)),T=N(()=>X.value||!!s.selection),I=oe(!l.multiple&&!T.value?((pe=r.value[0])==null?void 0:pe.title)??"":""),C=N({get:()=>I.value,set:e=>{var n;if(I.value=e??"",!l.multiple&&!T.value&&(r.value=[ue(l,e)]),e&&l.multiple&&((n=l.delimiters)!=null&&n.length)){const y=e.split(new RegExp(`(?:${l.delimiters.join("|")})+`));y.length>1&&(y.forEach(i=>{i=i.trim(),i&&B(ue(l,i))}),I.value="")}e||(o.value=-1),_.value=!e}}),te=N(()=>typeof l.counterValue=="function"?l.counterValue(r.value):typeof l.counterValue=="number"?l.counterValue:l.multiple?r.value.length:C.value.length),{filteredItems:H,getMatches:p}=Dl(l,u,()=>_.value?"":C.value),t=N(()=>l.hideSelected?H.value.filter(e=>!r.value.some(n=>n.value===e.value)):H.value),c=N(()=>l.hideNoData&&!t.value.length||W.isReadonly.value||W.isDisabled.value),Y=ye(l,"menu"),f=N({get:()=>Y.value,set:e=>{var n;Y.value&&!e&&((n=S.value)!=null&&n.ΨopenChildren.size)||e&&c.value||(Y.value=e)}}),P=Qe(()=>f.value?l.closeText:l.openText);G(I,e=>{A?xe(()=>A=!1):d.value&&!f.value&&(f.value=!0),V("update:search",e)}),G(r,e=>{var n;!l.multiple&&!T.value&&(I.value=((n=e[0])==null?void 0:n.title)??"")});const Ee=N(()=>r.value.map(e=>e.value)),de=N(()=>{var n;return(l.autoSelectFirst===!0||l.autoSelectFirst==="exact"&&C.value===((n=t.value[0])==null?void 0:n.title))&&t.value.length>0&&!_.value&&!U.value}),ce=b(),Fe=kl(ce,g);function De(e){A=!0,l.openOnClear&&(f.value=!0)}function Ue(){c.value||(f.value=!0)}function Me(e){c.value||(d.value&&(e.preventDefault(),e.stopPropagation()),f.value=!f.value)}function Te(e){var n;e.key!==" "&&Ce(e)&&((n=g.value)==null||n.focus())}function Re(e){var i,k,E,$;if(Ye(e)||W.isReadonly.value)return;const n=(i=g.value)==null?void 0:i.selectionStart,y=r.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(e.key)&&e.preventDefault(),["Enter","ArrowDown"].includes(e.key)&&(f.value=!0),["Escape"].includes(e.key)&&(f.value=!1),["Enter","Escape","Tab"].includes(e.key)&&(de.value&&["Enter","Tab"].includes(e.key)&&!r.value.some(m=>{let{value:j}=m;return j===t.value[0].value})&&B(H.value[0]),_.value=!0),e.key==="ArrowDown"&&de.value&&((k=ce.value)==null||k.focus("next")),e.key==="Enter"&&C.value&&(B(ue(l,C.value)),T.value&&(I.value="")),["Backspace","Delete"].includes(e.key)){if(!l.multiple&&T.value&&r.value.length>0&&!C.value)return B(r.value[0],!1);if(~o.value){e.preventDefault();const m=o.value;B(r.value[o.value],!1),o.value=m>=y-1?y-2:m}else e.key==="Backspace"&&!C.value&&(o.value=y-1);return}if(l.multiple)if(e.key==="ArrowLeft"){if(o.value<0&&n&&n>0)return;const m=o.value>-1?o.value-1:y-1;r.value[m]?o.value=m:(o.value=-1,(E=g.value)==null||E.setSelectionRange(C.value.length,C.value.length))}else if(e.key==="ArrowRight"){if(o.value<0)return;const m=o.value+1;r.value[m]?o.value=m:(o.value=-1,($=g.value)==null||$.setSelectionRange(0,0))}else~o.value&&Ce(e)&&(o.value=-1)}function Ie(){var e;l.eager&&((e=M.value)==null||e.calculateVisibleItems())}function Pe(){var e;d.value&&(_.value=!0,(e=g.value)==null||e.focus())}function B(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!e||e.props.disabled))if(l.multiple){const y=r.value.findIndex(k=>(l.valueComparator||be)(k.value,e.value)),i=n??!~y;if(~y){const k=i?[...r.value,e]:[...r.value];k.splice(y,1),r.value=k}else i&&(r.value=[...r.value,e]);l.clearOnSelect&&(C.value="")}else{const y=n!==!1;r.value=y?[e]:[],I.value=y&&!T.value?e.title:"",xe(()=>{f.value=!1,_.value=!0})}}function Be(e){d.value=!0,setTimeout(()=>{U.value=!0})}function $e(e){U.value=!1}function ze(e){(e==null||e===""&&!l.multiple&&!T.value)&&(r.value=[])}return G(d,(e,n)=>{if(!(e||e===n)&&(o.value=-1,f.value=!1,C.value)){if(l.multiple){B(ue(l,C.value));return}if(!T.value)return;r.value.some(y=>{let{title:i}=y;return i===C.value})?I.value="":B(ue(l,C.value))}}),G(f,()=>{if(!l.hideSelected&&f.value&&r.value.length){const e=t.value.findIndex(n=>r.value.some(y=>(l.valueComparator||be)(y.value,n.value)));We&&window.requestAnimationFrame(()=>{var n;e>=0&&((n=M.value)==null||n.scrollToIndex(e))})}}),G(()=>l.items,(e,n)=>{f.value||d.value&&!n.length&&e.length&&(f.value=!0)}),zl(()=>{const e=!!(!l.hideNoData||t.value.length||s["prepend-item"]||s["append-item"]||s["no-data"]),n=r.value.length>0,y=fe.filterProps(l);return a(fe,Z({ref:g},y,{modelValue:C.value,"onUpdate:modelValue":[i=>C.value=i,ze],focused:d.value,"onUpdate:focused":i=>d.value=i,validationValue:r.externalValue,counterValue:te.value,dirty:n,class:["v-combobox",{"v-combobox--active-menu":f.value,"v-combobox--chips":!!l.chips,"v-combobox--selection-slot":!!T.value,"v-combobox--selecting-index":o.value>-1,[`v-combobox--${l.multiple?"multiple":"single"}`]:!0},l.class],style:l.style,readonly:W.isReadonly.value,placeholder:n?void 0:l.placeholder,"onClick:clear":De,"onMousedown:control":Ue,onKeydown:Re}),{...s,default:()=>w(le,null,[a(Pl,Z({ref:S,modelValue:f.value,"onUpdate:modelValue":i=>f.value=i,activator:"parent",contentClass:"v-combobox__content",disabled:c.value,eager:l.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:l.transition,onAfterEnter:Ie,onAfterLeave:Pe},l.menuProps),{default:()=>[e&&a(Il,Z({ref:ce,selected:Ee.value,selectStrategy:l.multiple?"independent":"single-independent",onMousedown:i=>i.preventDefault(),onKeydown:Te,onFocusin:Be,onFocusout:$e,tabindex:"-1","aria-live":"polite",color:l.itemColor??l.color},Fe,l.listProps),{default:()=>{var i,k,E;return[(i=s["prepend-item"])==null?void 0:i.call(s),!t.value.length&&!l.hideNoData&&(((k=s["no-data"])==null?void 0:k.call(s))??a(_e,{key:"no-data",title:x(l.noDataText)},null)),a(_l,{ref:M,renderless:!0,items:t.value,itemKey:"value"},{default:$=>{var Ve;let{item:m,index:j,itemRef:F}=$;const ge=Z(m.props,{ref:F,key:m.value,active:de.value&&j===0?!0:void 0,onClick:()=>B(m,null)});return((Ve=s.item)==null?void 0:Ve.call(s,{item:m,index:j,props:ge}))??a(_e,Z(ge,{role:"option"}),{prepend:se=>{let{isSelected:Ne}=se;return w(le,null,[l.multiple&&!l.hideSelected?a(Bl,{key:m.value,modelValue:Ne,ripple:!1,tabindex:"-1"},null):void 0,m.props.prependAvatar&&a(pl,{image:m.props.prependAvatar},null),m.props.prependIcon&&a(we,{icon:m.props.prependIcon},null)])},title:()=>{var se;return _.value?m.title:Ml("v-combobox",m.title,(se=p(m))==null?void 0:se.title)}})}}),(E=s["append-item"])==null?void 0:E.call(s)]}})]}),r.value.map((i,k)=>{function E(F){F.stopPropagation(),F.preventDefault(),B(i,!1)}const $={"onClick:close":E,onKeydown(F){F.key!=="Enter"&&F.key!==" "||(F.preventDefault(),F.stopPropagation(),E(F))},onMousedown(F){F.preventDefault(),F.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},m=X.value?!!s.chip:!!s.selection,j=m?el(X.value?s.chip({item:i,index:k,props:$}):s.selection({item:i,index:k})):void 0;if(!(m&&!j))return w("div",{key:i.value,class:al(["v-combobox__selection",k===o.value&&["v-combobox__selection--selected",O.value]]),style:ll(k===o.value?Q.value:{})},[X.value?s.chip?a(gl,{key:"chip-defaults",defaults:{VChip:{closable:l.closableChips,size:"small",text:i.title}}},{default:()=>[j]}):a($l,Z({key:"chip",closable:l.closableChips,size:"small",text:i.title,disabled:i.props.disabled},$),null):j??w("span",{class:"v-combobox__selection-text"},[i.title,l.multiple&&k<r.value.length-1&&w("span",{class:"v-combobox__selection-comma"},[Se(",")])])])})]),"append-inner":function(){var $,m;for(var i=arguments.length,k=new Array(i),E=0;E<i;E++)k[E]=arguments[E];return w(le,null,[($=s["append-inner"])==null?void 0:$.call(s,...k),(!l.hideNoData||l.items.length)&&l.menuIcon?a(we,{class:"v-combobox__menu-icon",color:(m=g.value)==null?void 0:m.fieldIconColor,icon:l.menuIcon,onMousedown:Me,onClick:Ze,"aria-label":x(P.value),title:x(P.value),tabindex:"-1"},null):void 0])}})}),Rl({isFocused:d,isPristine:_,menu:f,search:C,selectionIndex:o,filteredItems:H,select:B},g)}}),Kl={class:"bg-white rounded-lg pa-4 position-relative h-100 d-flex flex-column"},Va={__name:"ComposeEmailForm",props:{originalEmail:{type:Object,default:null},replyAll:{type:Boolean,default:!1}},emits:["onToggleHtmlMode"],setup(l,{emit:L}){const V=l,s=L,x=ul(),g=sl(),{$gettext:d}=tl(),{displayNotification:_}=ol(),U=nl(),S=b([]),M=b(0),o=b([]),A=b("plain"),u=b({}),ae=b(),J=b(!1),O=b(!1),Q=b(!1),r=b(!1),W=()=>{g.push({name:"MailboxView"})},X=()=>{if(u.value={sender:U.authUser.username},V.originalEmail){if(u.value.to=V.originalEmail.reply_to?V.originalEmail.reply_to:V.originalEmail.from_address.address,V.replyAll){let p=V.originalEmail.to.filter(t=>t.address!==U.authUser.username).map(t=>t.fulladdress);V.originalEmail.cc&&V.originalEmail.cc.length&&(p=p.concat(V.originalEmail.cc.map(t=>t.fulladdress))),u.value.cc=p,O.value=!0}u.value.subject=V.originalEmail.subject,u.value.body=V.originalEmail.body,V.originalEmail.message_id&&(u.value.in_reply_to=V.originalEmail.message_id)}},T=async()=>{var c,Y;const{valid:p}=await ae.value.validate();if(!p)return;r.value=!0;const t={...u.value};if(typeof u.value.to!="string"?t.to=[u.value.to.emails[0].address]:t.to=[u.value.to],(c=t.cc)!=null&&c.length){const f=[];for(const P of t.cc)f.push(typeof P=="string"?P:P.emails[0].address);t.cc=f}if((Y=t.bcc)!=null&&Y.length){const f=[];for(const P of t.bcc)f.push(typeof P=="string"?P:P.emails[0].address);t.bcc=f}try{await q.sendEmailFromComposeSession(x.query.uid,t),g.push({name:"MailboxView"}),_({msg:d("Email sent")})}catch(f){console.log(f)}finally{r.value=!1}},I=()=>{J.value=!0},C=async()=>{J.value=!1;const p=await q.getUploadedAttachments(x.query.uid);M.value=p.data.length},te=il(async p=>{if(p){const t={search:p},c=await xl.getContacts(t);c.data.length&&(o.value=c.data)}else o.value=[]},500),H=p=>{p.signature&&(u.value.body?u.value.body+=p.signature:u.value.body=p.signature),A.value=p.editor_format};return G(()=>V.originalEmail,()=>{X()},{immediate:!0}),x.query.uid?q.getComposeSession(x.query.uid).then(p=>{M.value=p.data.attachments.length,H(p.data)}):q.createComposeSession().then(p=>{const t={...x.query,uid:p.data.uid};g.push({name:x.name,query:t}),H(p.data)}),q.getAllowedSenders().then(p=>{S.value=p.data}),(p,t)=>(z(),re(le,null,[w("div",Kl,[a(Cl,{color:"white"},{default:v(()=>[a(D,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:W}),a(D,{class:"ml-2",color:"primary",variant:"tonal","prepend-icon":"mdi-send",loading:r.value,text:h(d)("Send"),onClick:T},null,8,["loading","text"]),a(D,{class:"ml-2",variant:"tonal","prepend-icon":"mdi-paperclip",text:h(d)("Attachments")+` (${M.value})`,onClick:I},null,8,["text"])]),_:1}),a(Ae,{ref_key:"formRef",ref:ae,class:"flex-grow-1 d-flex flex-column"},{default:v(()=>[w("div",null,[a(ne,{class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("From")),1)]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(Sl,{modelValue:u.value.sender,"onUpdate:modelValue":t[0]||(t[0]=c=>u.value.sender=c),items:S.value,"item-title":"address","item-value":"address",variant:"outlined",density:"compact","hide-details":"auto",rules:[h(ve).required]},null,8,["modelValue","items","rules"])]),_:1})]),_:1}),a(ne,{class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("To")),1)]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.to,"onUpdate:modelValue":t[1]||(t[1]=c=>u.value.to=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",rules:[h(ve).required],"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","rules","onUpdate:search"])]),_:1}),a(R,{cols:"2"},{default:v(()=>[O.value?ie("",!0):(z(),ee(D,{key:0,text:h(d)("Cc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[2]||(t[2]=c=>O.value=!0)},null,8,["text"])),Q.value?ie("",!0):(z(),ee(D,{key:1,text:h(d)("Bcc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[3]||(t[3]=c=>Q.value=!0)},null,8,["text"]))]),_:1})]),_:1}),O.value?(z(),ee(ne,{key:0,class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Cc")),1),a(D,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[4]||(t[4]=c=>O.value=!1)})]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.cc,"onUpdate:modelValue":t[5]||(t[5]=c=>u.value.cc=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ie("",!0),Q.value?(z(),ee(ne,{key:1,class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Bcc")),1),a(D,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[6]||(t[6]=c=>Q.value=!1)})]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.bcc,"onUpdate:modelValue":t[7]||(t[7]=c=>u.value.bcc=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ie("",!0),a(ne,{class:"align-center"},{default:v(()=>[a(R,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Subject")),1)]),_:1}),a(R,{cols:"8"},{default:v(()=>[a(fe,{modelValue:u.value.subject,"onUpdate:modelValue":t[8]||(t[8]=c=>u.value.subject=c),variant:"outlined",density:"compact","hide-details":"auto"},null,8,["modelValue"])]),_:1})]),_:1})]),a(h(Ol),{modelValue:u.value.body,"onUpdate:modelValue":t[9]||(t[9]=c=>u.value.body=c),"editor-mode":A.value,onOnToggleHtmlMode:t[10]||(t[10]=c=>s("onToggleHtmlMode",c))},null,8,["modelValue","editor-mode"])]),_:1},512)]),a(Nl,{modelValue:J.value,"onUpdate:modelValue":t[11]||(t[11]=c=>J.value=c),"max-width":"800"},{default:v(()=>[a(h(ql),{"session-uid":h(x).query.uid,onClose:C},null,8,["session-uid"])]),_:1},8,["modelValue"])],64))}};export{Va as _};
@@ -0,0 +1 @@
1
+ import{_ as o}from"./ComposeEmailForm-DO5_GB3e.js";import{c as r,f as t,o as m}from"./index-I1VDlN4g.js";import"./index-DuzUMVLM.js";import"./webmail-CSH_3l6R.js";import"./VForm-DAkW4nfy.js";import"./tag-BnSYRTcD.js";import"./VTextField-BdyvgvkG.js";import"./VAvatar-Lpb-Dion.js";import"./VProgressCircular-w75-3ogi.js";import"./forwardRefs-Dvjn_Xq4.js";import"./ssrBoot-AzTdjPjk.js";import"./VCard-er_isjE_.js";import"./VFileInput-D1_7ZkO_.js";import"./VChip-B4iSpj8_.js";import"./VTable-CNz2SGk4.js";import"./VSpacer-C7xukQmu.js";/* empty css */import"./HtmlEditor-CJ9umKeO.js";import"./VTextarea-DnOMpe0Q.js";import"./contacts-C84DY-Q1.js";import"./VToolbar-BiCiBxBJ.js";import"./VRow-BF35mT1S.js";import"./VSelect-Cs4ARbAS.js";import"./VMenu-BPFJwj2f.js";import"./VCheckboxBtn-Dt810gWf.js";import"./VSelectionControl-Dg-XyRRS.js";import"./filter-CnffiQAW.js";import"./VDialog-Bk6EWNhz.js";const G={__name:"ComposeEmailView",setup(p){return(i,e)=>(m(),r(t(o)))}};export{G as default};
@@ -1 +1 @@
1
- import{b as h,g as s,c as V,w as a,a as l,D as k,l as r,t as n,E as D,H as T,q as z,bc as L,o as b}from"./index-DV9Li2cg.js";import{V as S,a as B}from"./VToolbar-CGwhgdmI.js";import{V as K,a as N,b as I}from"./VCard-DFWiFORP.js";import{V as O}from"./VSpacer-C6PZ3X24.js";import{V as g}from"./VAvatar-BAgTUIvX.js";import{V as $}from"./VDialog-CZqM2Ofu.js";const H={__name:"ConfirmDialog",props:{callback_agree:{type:Function,default:null}},setup(_,{expose:x}){const{$gettext:f}=h(),m=_,o=s(!1),c=s(""),p=s("");let u;const e=s({color:"primary",width:400,zIndex:2400,noconfirm:!1,cancelLabel:f("Cancel"),agreeLabel:f("OK")});function w(i,t,d){return o.value=!0,p.value=i,c.value=t,e.value=Object.assign(e.value,d),new Promise(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)=>(b(),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",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),T(i.$slots,"default")]),_:3},512),[[D,!!c.value]]),l(N,{class:"pt-3"},{default:a(()=>[l(O),e.value.noconfirm?z("",!0):(b(),V(g,{key:0,onClick:v},{default:a(()=>[r(n(e.value.cancelLabel),1)]),_:1})),l(g,{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{H as _};
1
+ import{b as h,g as s,c as V,w as a,a as l,D as k,l as r,t as n,E as D,H as T,n as z,bc as L,o as b}from"./index-I1VDlN4g.js";import{V as S,a as B}from"./VToolbar-BiCiBxBJ.js";import{V as K,b as N,a as I}from"./VCard-er_isjE_.js";import{V as O}from"./VSpacer-C7xukQmu.js";import{V as g}from"./VAvatar-Lpb-Dion.js";import{V as $}from"./VDialog-Bk6EWNhz.js";const P={__name:"ConfirmDialog",props:{callback_agree:{type:Function,default:null}},setup(_,{expose:x}){const{$gettext:f}=h(),m=_,o=s(!1),c=s(""),p=s("");let u;const e=s({color:"primary",width:400,zIndex:2400,noconfirm:!1,cancelLabel:f("Cancel"),agreeLabel:f("OK")});function w(i,t,d){return o.value=!0,p.value=i,c.value=t,e.value=Object.assign(e.value,d),new Promise(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)=>(b(),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",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),T(i.$slots,"default")]),_:3},512),[[D,!!c.value]]),l(N,{class:"pt-3"},{default:a(()=>[l(O),e.value.noconfirm?z("",!0):(b(),V(g,{key:0,onClick:v},{default:a(()=>[r(n(e.value.cancelLabel),1)]),_:1})),l(g,{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{P as _};
@@ -0,0 +1 @@
1
+ import{k as ae,r as De,c as P,o as V,w as y,a as s,a$ as fe,b0 as Ne,ab as D,h as S,a7 as Re,d as Z,L as O,az as he,b1 as He,b2 as G,af as ge,b3 as ye,aE as Ye,v as pe,x as we,ah as Oe,aq as _e,V as Ue,T as ke,g as N,ac as Q,a5 as be,b4 as We,Y as ze,e as B,B as X,F as $,C as xe,$ as Xe,u as Ve,s as Fe,i as qe,f as q,q as Ge,m as A,G as K,n as ee,l as j,t as U,a0 as je,b as Se,b5 as Ze,aj as Ke,_ as Je,S as Qe,b6 as et,U as tt,p as at,z as nt,H as ot}from"./index-I1VDlN4g.js";import{V as lt}from"./VContainer-DvTbsotR.js";import{V as rt,a as it}from"./VApp-CpkYA7js.js";import{u as st}from"./logos-q8SEyAa4.js";import{u as ut}from"./global.store-BaiD63EN.js";import{u as ct}from"./layout.store-DkjrAoXt.js";import{C as vt,r as dt,u as Ce,D as mt,E as ft,b as Te,s as ht,A as gt,p as Pe,h as Be,V as J,d as te,f as yt,F as pt,G as wt,k as _t,e as kt,z as bt,H as xt,c as Vt}from"./VAvatar-Lpb-Dion.js";import{V as Ee,g as St,a as Y,h as Ct,c as Tt,b as Pt,f as Bt}from"./forwardRefs-Dvjn_Xq4.js";import{u as se}from"./VProgressCircular-w75-3ogi.js";import{u as Le,m as Et,a as Lt}from"./tag-BnSYRTcD.js";import{u as Me,b as Mt,m as It,V as ue,a as ce,c as $t}from"./VMenu-BPFJwj2f.js";import{u as At,a as Dt,V as Nt,b as Rt}from"./layout-D8ZJPiJ_.js";import{u as Ht}from"./ssrBoot-AzTdjPjk.js";import{a as ve}from"./VCard-er_isjE_.js";import{V as Yt,a as Ot}from"./VRow-BF35mT1S.js";import{V as Ut}from"./VSheet-Btq_Mu4s.js";const Wt={__name:"ConnectedView",setup(e){return(l,n)=>{const i=De("router-view");return V(),P(rt,null,{default:y(()=>[s(lt,{fluid:"",style:{height:"100%"}},{default:y(()=>[s(i,null,{default:y(({Component:t})=>[s(fe,{name:"fade"},{default:y(()=>[(V(),P(Ne(t)))]),_:2},1024)]),_:1})]),_:1})]),_:1})}}},zt=ae(Wt,[["__scopeId","data-v-b2ffa9e6"]]);function Xt(e){let{rootEl:l,isSticky:n,layoutItemStyles:i}=e;const t=D(!1),c=D(0),r=S(()=>{const a=typeof t.value=="boolean"?"top":t.value;return[n.value?{top:"auto",bottom:"auto",height:void 0}:void 0,t.value?{[a]:Re(c.value)}:{top:i.value.top}]});Z(()=>{O(n,a=>{a?window.addEventListener("scroll",_,{passive:!0}):window.removeEventListener("scroll",_)},{immediate:!0})}),he(()=>{window.removeEventListener("scroll",_)});let u=0;function _(){const a=u>window.scrollY?"up":"down",v=l.value.getBoundingClientRect(),g=parseFloat(i.value.top??0),b=window.scrollY-Math.max(0,c.value-g),p=v.height+Math.max(c.value,g)-window.scrollY-window.innerHeight,f=parseFloat(getComputedStyle(l.value).getPropertyValue("--v-body-scroll-y"))||0;v.height<window.innerHeight-g?(t.value="top",c.value=g):a==="up"&&t.value==="bottom"||a==="down"&&t.value==="top"?(c.value=window.scrollY+v.top-f,t.value=!0):a==="down"&&p<=0?(c.value=0,t.value="bottom"):a==="up"&&b<=0&&(f?t.value!=="top"&&(c.value=-b+f+g,t.value="top"):(c.value=v.top+b,t.value="top")),u=window.scrollY}return{isStuck:t,stickyStyles:r}}const Ft=100,qt=20;function de(e){return(e<0?-1:1)*Math.sqrt(Math.abs(e))*1.41421356237}function me(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 l=0;for(let n=e.length-1;n>0;n--){if(e[n].t===e[n-1].t)continue;const i=de(l),t=(e[n].d-e[n-1].d)/(e[n].t-e[n-1].t);l+=(t-i)*Math.abs(t),n===e.length-1&&(l*=.5)}return de(l)*1e3}function Gt(){const e={};function l(t){Array.from(t.changedTouches).forEach(c=>{(e[c.identifier]??(e[c.identifier]=new He(qt))).push([t.timeStamp,c])})}function n(t){Array.from(t.changedTouches).forEach(c=>{delete e[c.identifier]})}function i(t){var a;const c=(a=e[t])==null?void 0:a.values().reverse();if(!c)throw new Error(`No samples for touch id ${t}`);const r=c[0],u=[],_=[];for(const v of c){if(r[0]-v[0]>Ft)break;u.push({t:v[0],d:v[1].clientX}),_.push({t:v[0],d:v[1].clientY})}return{x:me(u),y:me(_),get direction(){const{x:v,y:g}=this,[b,p]=[Math.abs(v),Math.abs(g)];return b>p&&v>=0?"right":b>p&&v<=0?"left":p>b&&g>=0?"down":p>b&&g<=0?"up":jt()}}}return{addMovement:l,endTouch:n,getVelocity:i}}function jt(){throw new Error}function Zt(e){let{el:l,isActive:n,isTemporary:i,width:t,touchless:c,position:r}=e;Z(()=>{window.addEventListener("touchstart",M,{passive:!0}),window.addEventListener("touchmove",E,{passive:!1}),window.addEventListener("touchend",W,{passive:!0})}),he(()=>{window.removeEventListener("touchstart",M),window.removeEventListener("touchmove",E),window.removeEventListener("touchend",W)});const u=S(()=>["left","right"].includes(r.value)),{addMovement:_,endTouch:a,getVelocity:v}=Gt();let g=!1;const b=D(!1),p=D(0),f=D(0);let o;function x(d,h){return(r.value==="left"?d:r.value==="right"?document.documentElement.clientWidth-d:r.value==="top"?d:r.value==="bottom"?document.documentElement.clientHeight-d:z())-(h?t.value:0)}function R(d){let h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const w=r.value==="left"?(d-f.value)/t.value:r.value==="right"?(document.documentElement.clientWidth-d-f.value)/t.value:r.value==="top"?(d-f.value)/t.value:r.value==="bottom"?(document.documentElement.clientHeight-d-f.value)/t.value:z();return h?Ye(w):w}function M(d){if(c.value)return;const h=d.changedTouches[0].clientX,w=d.changedTouches[0].clientY,k=25,C=r.value==="left"?h<k:r.value==="right"?h>document.documentElement.clientWidth-k:r.value==="top"?w<k:r.value==="bottom"?w>document.documentElement.clientHeight-k:z(),m=n.value&&(r.value==="left"?h<t.value:r.value==="right"?h>document.documentElement.clientWidth-t.value:r.value==="top"?w<t.value:r.value==="bottom"?w>document.documentElement.clientHeight-t.value:z());(C||m||n.value&&i.value)&&(o=[h,w],f.value=x(u.value?h:w,n.value),p.value=R(u.value?h:w),g=f.value>-20&&f.value<80,a(d),_(d))}function E(d){const h=d.changedTouches[0].clientX,w=d.changedTouches[0].clientY;if(g){if(!d.cancelable){g=!1;return}const C=Math.abs(h-o[0]),m=Math.abs(w-o[1]);(u.value?C>m&&C>3:m>C&&m>3)?(b.value=!0,g=!1):(u.value?m:C)>3&&(g=!1)}if(!b.value)return;d.preventDefault(),_(d);const k=R(u.value?h:w,!1);p.value=Math.max(0,Math.min(1,k)),k>1?f.value=x(u.value?h:w,!0):k<0&&(f.value=x(u.value?h:w,!1))}function W(d){if(g=!1,!b.value)return;_(d),b.value=!1;const h=v(d.changedTouches[0].identifier),w=Math.abs(h.x),k=Math.abs(h.y);(u.value?w>k&&w>400:k>w&&k>3)?n.value=h.direction===({left:"right",right:"left",top:"down",bottom:"up"}[r.value]||z()):n.value=p.value>.5}const H=S(()=>b.value?{transform:r.value==="left"?`translateX(calc(-100% + ${p.value*t.value}px))`:r.value==="right"?`translateX(calc(100% - ${p.value*t.value}px))`:r.value==="top"?`translateY(calc(-100% + ${p.value*t.value}px))`:r.value==="bottom"?`translateY(calc(100% - ${p.value*t.value}px))`:z(),transition:"none"}:void 0);return G(b,()=>{var w,k;const d=((w=l.value)==null?void 0:w.style.transform)??null,h=((k=l.value)==null?void 0:k.style.transition)??null;ge(()=>{var C,m,L,I;(m=l.value)==null||m.style.setProperty("transform",((C=H.value)==null?void 0:C.transform)||"none"),(I=l.value)==null||I.style.setProperty("transition",((L=H.value)==null?void 0:L.transition)||null)}),ye(()=>{var C,m;(C=l.value)==null||C.style.setProperty("transform",d),(m=l.value)==null||m.style.setProperty("transition",h)})}),{isDragging:b,dragProgress:p,dragStyles:H}}function z(){throw new Error}const Kt=["start","end","left","right","top","bottom"],Jt=we({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,...gt(),...Lt(),...It(),...Xe({mobile:null}),...ht(),...Dt(),...Te(),...Et({tag:"nav"}),...xe()},"VNavigationDrawer"),Qt=pe()({name:"VNavigationDrawer",props:Jt(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,l){let{attrs:n,emit:i,slots:t}=l;const{isRtl:c}=Oe(),{themeClasses:r}=_e(e),{borderClasses:u}=vt(e),{backgroundColorClasses:_,backgroundColorStyles:a}=se(()=>e.color),{elevationClasses:v}=dt(e),{displayClasses:g,mobile:b}=Ue(e),{roundedClasses:p}=Ce(e),f=mt(),o=ke(e,"modelValue",null,T=>!!T),{ssrBootStyles:x}=Ht(),{scopeId:R}=Me(),M=N(),E=D(!1),{runOpenDelay:W,runCloseDelay:H}=Mt(e,T=>{E.value=T}),d=S(()=>e.rail&&e.expandOnHover&&E.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),h=S(()=>ft(e.location,c.value)),w=Q(()=>e.persistent),k=S(()=>!e.permanent&&(b.value||e.temporary)),C=S(()=>e.sticky&&!k.value&&h.value!=="bottom");G(()=>e.expandOnHover&&e.rail!=null,()=>{O(E,T=>i("update:rail",!T))}),G(()=>!e.disableResizeWatcher,()=>{O(k,T=>!e.permanent&&be(()=>o.value=!T))}),G(()=>!e.disableRouteWatcher&&!!f,()=>{O(f.currentRoute,()=>k.value&&(o.value=!1))}),O(()=>e.permanent,T=>{T&&(o.value=!0)}),e.modelValue==null&&!k.value&&(o.value=e.permanent||!b.value);const{isDragging:m,dragProgress:L}=Zt({el:M,isActive:o,isTemporary:k,width:d,touchless:Q(()=>e.touchless),position:h}),I=S(()=>{const T=k.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):d.value;return m.value?T*L.value:T}),{layoutItemStyles:F,layoutItemScrimStyles:Ie}=At({id:e.name,order:S(()=>parseInt(e.order,10)),position:h,layoutSize:I,elementSize:d,active:We(o),disableTransitions:Q(()=>m.value),absolute:S(()=>e.absolute||C.value&&typeof ne.value!="string")}),{isStuck:ne,stickyStyles:$e}=Xt({rootEl:M,isSticky:C,layoutItemStyles:F}),oe=se(()=>typeof e.scrim=="string"?e.scrim:null),Ae=S(()=>({...m.value?{opacity:L.value*.2,transition:"none"}:void 0,...Ie.value}));return ze({VList:{bgColor:"transparent"}}),Le(()=>{const T=t.image||e.image;return B($,null,[s(e.tag,X({ref:M,onMouseenter:W,onMouseleave:H,class:["v-navigation-drawer",`v-navigation-drawer--${h.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":E.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":k.value,"v-navigation-drawer--persistent":w.value,"v-navigation-drawer--active":o.value,"v-navigation-drawer--sticky":C.value},r.value,_.value,u.value,g.value,v.value,p.value,e.class],style:[a.value,F.value,x.value,$e.value,e.style]},R,n),{default:()=>{var le,re,ie;return[T&&B("div",{key:"image",class:"v-navigation-drawer__img"},[t.image?s(Be,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},t.image):s(Pe,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),t.prepend&&B("div",{class:"v-navigation-drawer__prepend"},[(le=t.prepend)==null?void 0:le.call(t)]),B("div",{class:"v-navigation-drawer__content"},[(re=t.default)==null?void 0:re.call(t)]),t.append&&B("div",{class:"v-navigation-drawer__append"},[(ie=t.append)==null?void 0:ie.call(t)])]}}),s(fe,{name:"fade-transition"},{default:()=>[k.value&&(m.value||o.value)&&!!e.scrim&&B("div",X({class:["v-navigation-drawer__scrim",oe.backgroundColorClasses.value],style:[Ae.value,oe.backgroundColorStyles.value],onClick:()=>{w.value||(o.value=!1)}},R),null)]})])}),{isStuck:ne}}}),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 l=e,n=ut(),i=Ve(),t=ct(),c=Fe(),{menuLogoPath:r}=st(),u=N(!1),_=N(!0),a=S(()=>i.authUser),v=S(()=>i.isAuthenticated),g=S(()=>n.notifications.length!==void 0&&n.notifications.length!==0);function b(p){return v.value?(p.roles===void 0||p.roles.indexOf(a.value.role)!==-1)&&(p.condition===void 0||p.condition())&&p.activated!==!1:!1}return Z(()=>{a.value.role===qe.SUPER_ADMIN&&n.fetchNotifications()}),(p,f)=>(V(),P(Qt,{modelValue:_.value,"onUpdate:modelValue":f[2]||(f[2]=o=>_.value=o),rail:u.value,permanent:"",color:e.color,app:""},{default:y(()=>[B("div",ea,[s(Pe,{src:q(r),"max-width":"190",class:"logo",onClick:f[0]||(f[0]=o=>q(c).push(l.logoRoute))},null,8,["src"]),s(J,{icon:u.value?"mdi-chevron-right":"mdi-chevron-left",variant:"text",onClick:f[1]||(f[1]=Ge(o=>u.value=!u.value,["stop"]))},null,8,["icon"])]),s(Ee,{density:q(t).compactLeftMenu?"compact":"default",lines:!q(t).compactLeftMenu,nav:""},{default:y(()=>[(V(!0),A($,null,K(e.menuItems,o=>(V(),A($,{key:o.text},[b(o)?(V(),A($,{key:0},[o.subheader?(V(),P(St,{key:0,class:"text-white"},{default:y(()=>[j(U(o.text.toUpperCase()),1)]),_:2},1024)):o.action?(V(),P(Y,{key:1,value:o,exact:o.exact,title:o.text,"prepend-icon":o.icon,onClick:o.action},null,8,["value","exact","title","prepend-icon","onClick"])):o.children?(V(),P(Ct,{key:3,value:o.text},{activator:y(({props:x})=>[(V(),P(Y,X({ref_for:!0},x,{key:o.text,title:o.text,color:"white","prepend-icon":o.icon}),null,16,["title","prepend-icon"]))]),default:y(()=>[(V(!0),A($,null,K(o.children,x=>(V(),A($,{key:x.text},[b(x)?(V(),A($,{key:0},[x.action?(V(),P(Y,{key:0,title:x.text,value:x,"prepend-icon":x.icon,onClick:x.action},null,8,["title","value","prepend-icon","onClick"])):(V(),P(Y,{key:1,to:x.to,link:"",title:x.text,value:x,"prepend-icon":x.icon},null,8,["to","title","value","prepend-icon"]))],64)):ee("",!0)],64))),128))]),_:2},1032,["value"])):(V(),P(Y,{key:2,value:o,to:o.to,link:"",exact:o.exact,title:o.text,"prepend-icon":o.icon},je({_:2},[o.withBell&&g.value?{name:"append",fn:y(()=>[s(te,{color:"red",icon:"mdi-bell-alert-outline"})]),key:"0"}:void 0]),1032,["value","to","exact","title","prepend-icon"]))],64)):ee("",!0)],64))),128))]),_:1},8,["density","lines"])]),_:1},8,["modelValue","rail","color"]))}},aa=ae(ta,[["__scopeId","data-v-a0b9985c"]]),na={key:0,class:"top-menu"},oa={class:"mt-2"},la={class:"text-center"},ra={class:"text-h5"},ia={__name:"TopMenu",props:{user:{type:Object,default:null},remote:{type:Boolean,default:!1}},setup(e){const l=e,{$gettext:n}=Se(),i=N([]),t=S(()=>l.user.first_name&&l.user.last_name?`${l.user.first_name[0].toUpperCase()}${l.user.last_name[0].toUpperCase()}`:l.user.username?l.user.username.slice(0,2).toUpperCase():""),c=S(()=>[{text:n("Account"),icon:"mdi-account-circle-outline",to:l.remote?null:{name:"AccountSettings"},href:l.remote?"https://localhost:3000/account":"",click:()=>null},{text:n("Logout"),icon:"mdi-logout",click:r}]);async function r(){Ze()._s.forEach(async u=>await u.$reset())}return Z(()=>{Ke.getAvailableApplications().then(u=>{i.value=u.data})}),(u,_)=>e.user?(V(),A("div",na,[s(ue,{activator:"parent",location:"bottom"},{activator:y(({props:a})=>[s(J,X({icon:"mdi-apps",flat:"",class:"mr-4"},a),null,16)]),default:y(()=>[s(ve,{"min-width":"350","max-width":"400",class:"pa-4"},{default:y(()=>[s(Yt,{class:"justify-center"},{default:y(()=>[(V(!0),A($,null,K(i.value,a=>(V(),P(Ot,{key:a.name,cols:"6"},{default:y(()=>[s(Ut,{rounded:"",class:"application text-center pa-4 text-body-2",onClick:v=>u.$router.push(a.url)},{default:y(()=>[s(te,{color:"primary",icon:a.icon,size:"x-large"},null,8,["icon"]),B("div",oa,U(a.label),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1}),s(J,{icon:"",flat:"",color:"primary"},{default:y(()=>[j(U(t.value)+" ",1),s(ue,{activator:"parent",location:"bottom"},{default:y(()=>[s(ve,{"min-width":"300","max-width":"350"},{default:y(()=>[s(Ee,null,{default:y(()=>[B("div",la,[s(yt,{color:"primary"},{default:y(()=>[B("span",ra,U(t.value),1)]),_:1}),s(Y,{title:e.user.username},null,8,["title"])]),s(Tt),(V(!0),A($,null,K(c.value,a=>(V(),P(Y,{key:a.text,to:a.to,href:a.href,link:"",onClick:a.click},{prepend:y(()=>[s(te,{icon:a.icon},null,8,["icon"])]),default:y(()=>[s(Pt,null,{default:y(()=>[j(U(a.text),1)]),_:2},1024)]),_:2},1032,["to","href","onClick"]))),128))]),_:1})]),_:1})]),_:1})]),_:1})])):ee("",!0)}},sa=ae(ia,[["__scopeId","data-v-adb37b5d"]]),ua={getTheme(){return Je.get("/theme/")}};function ca(e){const l=D(e());let n=-1;function i(){clearInterval(n)}function t(){i(),be(()=>l.value=e())}function c(r){const u=r?getComputedStyle(r):{transitionDuration:.2},_=parseFloat(u.transitionDuration)*1e3||200;if(i(),l.value<=0)return;const a=performance.now();n=window.setInterval(()=>{const v=performance.now()-a+_;l.value=Math.max(e()-v,0),l.value<=0&&i()},_)}return ye(i),{clear:i,time:l,start:c,reset:t}}const va=we({multiLine:Boolean,text:String,timer:[Boolean,String],timeout:{type:[Number,String],default:5e3},vertical:Boolean,...Vt({location:"bottom"}),...xt(),...Te(),...bt(),...xe(),...tt($t({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","scrim","scrollStrategy"])},"VSnackbar"),da=pe()({name:"VSnackbar",props:va(),emits:{"update:modelValue":e=>!0},setup(e,l){let{slots:n}=l;const i=ke(e,"modelValue"),{positionClasses:t}=pt(e),{scopeId:c}=Me(),{themeClasses:r}=_e(e),{colorClasses:u,colorStyles:_,variantClasses:a}=wt(e),{roundedClasses:v}=Ce(e),g=ca(()=>Number(e.timeout)),b=N(),p=N(),f=D(!1),o=D(0),x=N(),R=Qe(Nt,void 0);G(()=>!!R,()=>{const m=Rt();ge(()=>{x.value=m.mainStyles.value})}),O(i,E),O(()=>e.timeout,E),Z(()=>{i.value&&E()});let M=-1;function E(){g.reset(),window.clearTimeout(M);const m=Number(e.timeout);if(!i.value||m===-1)return;const L=et(p.value);g.start(L),M=window.setTimeout(()=>{i.value=!1},m)}function W(){g.reset(),window.clearTimeout(M)}function H(){f.value=!0,W()}function d(){f.value=!1,E()}function h(m){o.value=m.touches[0].clientY}function w(m){Math.abs(o.value-m.changedTouches[0].clientY)>50&&(i.value=!1)}function k(){f.value&&d()}const C=S(()=>e.location.split(" ").reduce((m,L)=>(m[`v-snackbar--${L}`]=!0,m),{}));return Le(()=>{const m=ce.filterProps(e),L=!!(n.default||n.text||e.text);return s(ce,X({ref:b,class:["v-snackbar",{"v-snackbar--active":i.value,"v-snackbar--multi-line":e.multiLine&&!e.vertical,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},C.value,t.value,e.class],style:[x.value,e.style]},m,{modelValue:i.value,"onUpdate:modelValue":I=>i.value=I,contentProps:X({class:["v-snackbar__wrapper",r.value,u.value,v.value,a.value],style:[_.value],onPointerenter:H,onPointerleave:d},m.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:h,onTouchend:w,onAfterLeave:k},c),{default:()=>{var I,F;return[_t(!1,"v-snackbar"),e.timer&&!f.value&&B("div",{key:"timer",class:"v-snackbar__timer"},[s(kt,{ref:p,color:typeof e.timer=="string"?e.timer:"info",max:e.timeout,"model-value":g.time.value},null)]),L&&B("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[((I=n.text)==null?void 0:I.call(n))??e.text,(F=n.default)==null?void 0:F.call(n)]),n.actions&&s(Be,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[B("div",{class:"v-snackbar__actions"},[n.actions({isActive:i})])]})]},activator:n.activator})}),Bt({},b)}}),ma=2e3,Ea={__name:"ConnectedLayout",props:{color:{type:String,default:"primary"},menuItems:{type:Array,default:null}},setup(e){const l=Ve(),n=at(),{$gettext:i}=Se(),t=nt(),c=S(()=>l.authUser),r=S(()=>n.notificationColor),u=S(()=>n.notification),_=N(!1);return n.$onAction(({name:a,after:v})=>{a==="displayNotification"&&v(()=>{_.value=!0})},!0),ua.getTheme().then(a=>{a.data.theme_primary_color!==t.themes.value.light.colors.primary&&(t.themes.value.light.colors.primary=a.data.theme_primary_color),a.data.theme_primary_color_light!==t.themes.value.light.colors["primary-lighten-1"]&&(t.themes.value.light.colors["primary-lighten-1"]=a.data.theme_primary_color_light),a.data.theme_primary_color_dark!==t.themes.value.light.colors["primary-darken-1"]&&(t.themes.value.light.colors["primary-darken-1"]=a.data.theme_primary_color_dark),a.data.theme_secondary_color!==t.themes.value.light.colors.secondary&&(t.themes.value.light.colors.secondary=a.data.theme_secondary_color),a.data.theme_label_color!==t.themes.value.light.colors.label&&(t.themes.value.light.colors.label=a.data.theme_label_color)}),(a,v)=>(V(),P(it,null,{default:y(()=>[ot(a.$slots,"navbar",{},()=>[s(aa,{color:e.color,"menu-items":e.menuItems},null,8,["color","menu-items"])]),s(sa,{user:c.value},null,8,["user"]),s(zt),s(da,{modelValue:_.value,"onUpdate:modelValue":v[1]||(v[1]=g=>_.value=g),color:r.value,timeout:ma,location:"top"},{actions:y(()=>[s(J,{color:"white",text:"",onClick:v[0]||(v[0]=g=>_.value=!1)},{default:y(()=>[j(U(q(i)("Close")),1)]),_:1})]),default:y(()=>[j(U(u.value)+" ",1)]),_:1},8,["modelValue","color"])]),_:3}))}};export{Qt as V,Ea as _};
@@ -1 +1 @@
1
- .v-main[data-v-b2ffa9e6]{background-color:#f7f8fa}.logo[data-v-58cf46ea]{cursor:pointer}.v-navigation-drawer{-webkit-overflow-scrolling:touch;background:rgb(var(--v-theme-surface));display:flex;flex-direction:column;height:100%;max-width:100%;pointer-events:auto;transition-duration:.2s;transition-property:box-shadow,transform,visibility,width,height,left,right,top,bottom;transition-timing-function:cubic-bezier(.4,0,.2,1);position:absolute}.v-navigation-drawer{border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-navigation-drawer--border{border-width:thin;box-shadow:none}.v-navigation-drawer{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-navigation-drawer--rounded{border-radius:4px}.v-navigation-drawer--top{top:0;border-bottom-width:thin}.v-navigation-drawer--bottom{left:0;border-top-width:thin}.v-navigation-drawer--left{top:0;left:0;right:auto;border-right-width:thin}.v-navigation-drawer--right{top:0;left:auto;right:0;border-left-width:thin}.v-navigation-drawer--floating{border:none}.v-navigation-drawer--temporary.v-navigation-drawer--active{box-shadow:0 8px 10px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 16px 24px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 6px 30px 5px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer--sticky{height:auto;transition:box-shadow,transform,visibility,width,height,left,right}.v-navigation-drawer .v-list{overflow:hidden}.v-navigation-drawer__content{flex:0 1 auto;height:100%;max-width:100%;overflow-x:hidden;overflow-y:auto}.v-navigation-drawer__img{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.v-navigation-drawer__img img:not(.v-img__img){height:inherit;object-fit:cover;width:inherit}.v-navigation-drawer__scrim{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:.2;transition:opacity .2s cubic-bezier(.4,0,.2,1);z-index:1}.v-navigation-drawer__prepend,.v-navigation-drawer__append{flex:none;overflow:hidden}.top-menu[data-v-adb37b5d]{position:fixed;top:10px;right:10px;z-index:100}.application[data-v-adb37b5d]{cursor:pointer}.application[data-v-adb37b5d]:hover{background-color:rgb(var(--v-theme-surface))}.v-application{background-color:#f7f8fa!important}.v-snackbar{justify-content:center;z-index:10000;margin:8px;margin-inline-end:calc(8px + var(--v-scrollbar-offset));padding:var(--v-layout-top) var(--v-layout-right) var(--v-layout-bottom) var(--v-layout-left)}.v-snackbar:not(.v-snackbar--center):not(.v-snackbar--top){align-items:flex-end}.v-snackbar__wrapper{align-items:center;display:flex;max-width:672px;min-height:48px;min-width:344px;overflow:hidden;padding:0}.v-snackbar__wrapper{border-radius:4px}.v-snackbar--variant-plain,.v-snackbar--variant-outlined,.v-snackbar--variant-text,.v-snackbar--variant-tonal{background:transparent;color:inherit}.v-snackbar--variant-plain{opacity:.62}.v-snackbar--variant-plain:focus,.v-snackbar--variant-plain:hover{opacity:1}.v-snackbar--variant-plain .v-snackbar__overlay{display:none}.v-snackbar--variant-elevated,.v-snackbar--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-snackbar--variant-elevated{box-shadow:0 3px 5px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 6px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 18px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-outlined{border:thin solid currentColor}.v-snackbar--variant-text .v-snackbar__overlay{background:currentColor}.v-snackbar--variant-tonal .v-snackbar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-snackbar .v-snackbar__underlay{position:absolute}.v-snackbar__content{flex-grow:1;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1.425;margin-right:auto;padding:14px 16px;text-align:initial}.v-snackbar__actions{align-items:center;align-self:center;display:flex;margin-inline-end:8px}.v-snackbar__actions>.v-btn{padding:0 8px;min-width:auto}.v-snackbar__timer{width:100%;position:absolute;top:0}.v-snackbar__timer .v-progress-linear{transition:.2s linear}.v-snackbar--absolute{position:absolute;z-index:1}.v-snackbar--multi-line .v-snackbar__wrapper{min-height:68px}.v-snackbar--vertical .v-snackbar__wrapper{flex-direction:column}.v-snackbar--vertical .v-snackbar__wrapper .v-snackbar__actions{align-self:flex-end;margin-bottom:8px}.v-snackbar--center{align-items:center;justify-content:center}.v-snackbar--top{align-items:flex-start}.v-snackbar--bottom{align-items:flex-end}.v-snackbar--left,.v-snackbar--start{justify-content:flex-start}.v-snackbar--right,.v-snackbar--end{justify-content:flex-end}.v-snackbar-transition-enter-active,.v-snackbar-transition-leave-active{transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}.v-snackbar-transition-enter-active{transition-property:opacity,transform}.v-snackbar-transition-enter-from{opacity:0;transform:scale(.8)}.v-snackbar-transition-leave-active{transition-property:opacity}.v-snackbar-transition-leave-to{opacity:0}
1
+ .v-main[data-v-b2ffa9e6]{background-color:#f7f8fa}.logo[data-v-a0b9985c]{cursor:pointer}.v-navigation-drawer{-webkit-overflow-scrolling:touch;background:rgb(var(--v-theme-surface));display:flex;flex-direction:column;height:100%;max-width:100%;pointer-events:auto;transition-duration:.2s;transition-property:box-shadow,transform,visibility,width,height,left,right,top,bottom;transition-timing-function:cubic-bezier(.4,0,.2,1);position:absolute}.v-navigation-drawer{border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-navigation-drawer--border{border-width:thin;box-shadow:none}.v-navigation-drawer{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-navigation-drawer--rounded{border-radius:4px}.v-navigation-drawer--top{top:0;border-bottom-width:thin}.v-navigation-drawer--bottom{left:0;border-top-width:thin}.v-navigation-drawer--left{top:0;left:0;right:auto;border-right-width:thin}.v-navigation-drawer--right{top:0;left:auto;right:0;border-left-width:thin}.v-navigation-drawer--floating{border:none}.v-navigation-drawer--temporary.v-navigation-drawer--active{box-shadow:0 8px 10px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 16px 24px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 6px 30px 5px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer--sticky{height:auto;transition:box-shadow,transform,visibility,width,height,left,right}.v-navigation-drawer .v-list{overflow:hidden}.v-navigation-drawer__content{flex:0 1 auto;height:100%;max-width:100%;overflow-x:hidden;overflow-y:auto}.v-navigation-drawer__img{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.v-navigation-drawer__img img:not(.v-img__img){height:inherit;object-fit:cover;width:inherit}.v-navigation-drawer__scrim{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:.2;transition:opacity .2s cubic-bezier(.4,0,.2,1);z-index:1}.v-navigation-drawer__prepend,.v-navigation-drawer__append{flex:none;overflow:hidden}.top-menu[data-v-adb37b5d]{position:fixed;top:10px;right:10px;z-index:100}.application[data-v-adb37b5d]{cursor:pointer}.application[data-v-adb37b5d]:hover{background-color:rgb(var(--v-theme-surface))}.v-application{background-color:#f7f8fa!important}.v-snackbar{justify-content:center;z-index:10000;margin:8px;margin-inline-end:calc(8px + var(--v-scrollbar-offset));padding:var(--v-layout-top) var(--v-layout-right) var(--v-layout-bottom) var(--v-layout-left)}.v-snackbar:not(.v-snackbar--center):not(.v-snackbar--top){align-items:flex-end}.v-snackbar__wrapper{align-items:center;display:flex;max-width:672px;min-height:48px;min-width:344px;overflow:hidden;padding:0}.v-snackbar__wrapper{border-radius:4px}.v-snackbar--variant-plain,.v-snackbar--variant-outlined,.v-snackbar--variant-text,.v-snackbar--variant-tonal{background:transparent;color:inherit}.v-snackbar--variant-plain{opacity:.62}.v-snackbar--variant-plain:focus,.v-snackbar--variant-plain:hover{opacity:1}.v-snackbar--variant-plain .v-snackbar__overlay{display:none}.v-snackbar--variant-elevated,.v-snackbar--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-snackbar--variant-elevated{box-shadow:0 3px 5px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 6px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 18px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-outlined{border:thin solid currentColor}.v-snackbar--variant-text .v-snackbar__overlay{background:currentColor}.v-snackbar--variant-tonal .v-snackbar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-snackbar .v-snackbar__underlay{position:absolute}.v-snackbar__content{flex-grow:1;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1.425;margin-right:auto;padding:14px 16px;text-align:initial}.v-snackbar__actions{align-items:center;align-self:center;display:flex;margin-inline-end:8px}.v-snackbar__actions>.v-btn{padding:0 8px;min-width:auto}.v-snackbar__timer{width:100%;position:absolute;top:0}.v-snackbar__timer .v-progress-linear{transition:.2s linear}.v-snackbar--absolute{position:absolute;z-index:1}.v-snackbar--multi-line .v-snackbar__wrapper{min-height:68px}.v-snackbar--vertical .v-snackbar__wrapper{flex-direction:column}.v-snackbar--vertical .v-snackbar__wrapper .v-snackbar__actions{align-self:flex-end;margin-bottom:8px}.v-snackbar--center{align-items:center;justify-content:center}.v-snackbar--top{align-items:flex-start}.v-snackbar--bottom{align-items:flex-end}.v-snackbar--left,.v-snackbar--start{justify-content:flex-start}.v-snackbar--right,.v-snackbar--end{justify-content:flex-end}.v-snackbar-transition-enter-active,.v-snackbar-transition-leave-active{transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}.v-snackbar-transition-enter-active{transition-property:opacity,transform}.v-snackbar-transition-enter-from{opacity:0;transform:scale(.8)}.v-snackbar-transition-leave-active{transition-property:opacity}.v-snackbar-transition-leave-to{opacity:0}
@@ -0,0 +1 @@
1
+ import{_ as me}from"./ConfirmDialog-BBcgdAnO.js";import{k as pe,b as se,m as A,o as S,G as L,F as T,e as v,t as f,f as _,c as C,w as c,H as M,n as re,a as l,l as x,v as D,x as $,y as ve,h as k,D as fe,J as ye,I as P,S as Ve,T as Se,B as J,U as ke,V as oe,W as be,X as Q,Y as ge,Z as he,$ as _e,g as H,a0 as xe,a1 as we,a2 as Ie}from"./index-I1VDlN4g.js";import{a as F,V as ie}from"./VRow-BF35mT1S.js";import{u as Ce}from"./logos-q8SEyAa4.js";import{V as W,h as ee,i as Pe,R as te,j as $e,k as Be,d as We,f as Ae,l as Te,n as je,o as Fe,p as Le}from"./VAvatar-Lpb-Dion.js";import{u as R}from"./tag-BnSYRTcD.js";import{V as ae,m as De,a as le,b as Re}from"./VWindowItem-ChWm_kz3.js";import{V as Ee}from"./VContainer-DvTbsotR.js";import{V as ne,m as Ne}from"./VSheet-Btq_Mu4s.js";import{c as ze}from"./forwardRefs-Dvjn_Xq4.js";const Ge={class:"subtitle mt-4 d-flex"},Oe={class:"text-h6"},He=["onClick"],Me={class:"text-grey"},Ue={__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)=>(S(!0),A(T,null,L(e.sections,(d,p)=>(S(),A(T,{key:p},[v("div",Ge,[v("span",Oe,f(d.title),1),v("a",{href:"#",class:"edit-link ml-auto",onClick:n=>a("modify-step",p+1)},f(_(t)("Modify")),9,He)]),(S(!0),A(T,null,L(d.items,(n,m)=>(S(),C(ie,{key:m,dense:""},{default:c(()=>[n.value!==void 0?M(s.$slots,`item.${n.name}`,{key:0,item:n,displayList:u},()=>[l(F,null,{default:c(()=>[v("span",Me,f(n.key),1)]),_:2},1024),n.type==="yesno"?(S(),C(F,{key:0,class:"text-right"},{default:c(()=>[x(f(s.$yesno(n.value)),1)]),_:2},1024)):n.type==="list"?(S(),C(F,{key:1,class:"text-right"},{default:c(()=>[x(f(u(n.value)),1)]),_:2},1024)):(S(),C(F,{key:2,class:"text-right"},{default:c(()=>[x(f(n.value),1)]),_:2},1024))],!0):re("",!0)]),_:2},1024))),128))],64))),128))}},Ye=pe(Ue,[["__scopeId","data-v-6e743e1a"]]),X=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 R(()=>{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"),Xe=$({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"),Ze=$({...Xe(),...Te()},"VStepperItem"),U=D()({name:"VStepperItem",directives:{vRipple:te},props:Ze(),emits:{"group:selected":e=>!0},setup(e,y){let{slots:t}=y;const a=$e(e,X,!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 R(()=>{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 b(){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:b},[o.value&&Be(!0,"v-stepper-item"),l(Ae,{key:"stepper-avatar",class:"v-stepper-item__avatar",color:I?e.color:void 0,size:24},{default:()=>{var g;return[((g=t.icon)==null?void 0:g.call(t,w.value))??(m.value?l(We,{icon:m.value},null):u.value)]}}),v("div",{class:"v-stepper-item__content"},[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.ripple&&e.editable,null]])}),{}}}),qe=$({...ke(De(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VStepperWindow"),de=D()({name:"VStepperWindow",props:qe(),emits:{"update:modelValue":e=>!0},setup(e,y){let{slots:t}=y;const a=Ve(X,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 R(()=>{const o=ae.filterProps(e);return l(ae,J({_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)}),{}}}),Ke=$({...Re()},"VStepperWindowItem"),Y=D()({name:"VStepperWindowItem",props:Ke(),setup(e,y){let{slots:t}=y;return R(()=>{const a=le.filterProps(e);return l(le,J({_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,default:"title"},itemValue:{type:String,default:"value"},nonLinear:Boolean,flat:Boolean,..._e()},"Stepper"),et=$({...Qe(),...Fe({mandatory:"force",selectedClass:"v-stepper-item--selected"}),...Ne(),...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}=je(e,X),{displayClasses:d,mobile:p}=oe(e),{completeIcon:n,editIcon:m,errorIcon:w,color:I,editable:j,prevText:V,nextText:b}=be(e),r=k(()=>e.items.map((g,z)=>{const E=Q(g,e.itemTitle,g),G=Q(g,e.itemValue,z+1);return{title:E,value:G,raw:g}})),i=k(()=>a.value.findIndex(g=>o.value.includes(g.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:b},VStepperActions:{color:I,disabled:h,prevText:V,nextText:b}}),R(()=>{const g=ne.filterProps(e),z=!!(t.header||e.items.length),E=e.items.length>0,G=!e.hideActions&&!!(E||t.actions);return l(ne,J(g,{color:e.bgColor,class:["v-stepper",{"v-stepper--alt-labels":e.altLabels,"v-stepper--flat":e.flat,"v-stepper--non-linear":e.nonLinear,"v-stepper--mobile":p.value},d.value,e.class],style:e.style}),{default:()=>{var Z,q;return[z&&l(ce,{key:"stepper-header"},{default:()=>[r.value.map((B,N)=>{let{raw:O,...K}=B;return v(T,null,[!!N&&l(ze,null,null),l(U,K,{default:t[`header-item.${K.value}`]??t.header,icon:t.icon,title:t.title,subtitle:t.subtitle})])})]}),E&&l(de,{key:"stepper-window"},{default:()=>[r.value.map(B=>l(Y,{value:B.value},{default:()=>{var N,O;return((N=t[`item.${B.value}`])==null?void 0:N.call(t,B))??((O=t.item)==null?void 0:O.call(t,B))}}))]}),(Z=t.default)==null?void 0:Z.call(t,{prev:s,next:u}),G&&(((q=t.actions)==null?void 0:q.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=H(1),d=H(!1),p=H(),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,b){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=b}function j(){d.value=!0,n("create")}return y({working:d}),(V,b)=>(S(),A("div",at,[l(tt,{modelValue:o.value,"onUpdate:modelValue":b[1]||(b[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"]),(S(!0),A(T,null,L(e.steps,(r,i)=>(S(),C(U,{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(U,{value:e.steps.length+1},{default:c(()=>[x(f(_(m)("Summary")),1)]),_:1},8,["value"]),l(W,{icon:"mdi-close",color:"primary",size:_(a)?"small":"x-large",variant:"text",onClick:w},null,8,["size"])]),_:1}),l(de,{class:"mt-4 d-flex justify-center"},{default:c(()=>[(S(!0),A(T,null,L(e.steps,(r,i)=>(S(),C(Y,{key:r.name,value:i+1,class:"flex-grow-1 ma-10"},{default:c(()=>[l(Ee,{fluid:""},{default:c(()=>[l(ie,{align:"center",justify:"center"},{default:c(()=>[l(F,{cols:"8",align:"start"},{default:c(()=>[v("div",lt,[v("span",nt,f(e.title),1),x(" / "+f(r.title),1)]),M(V.$slots,`form.${r.name}`,{step:r,currentStep:i+1})]),_:2},1024)]),_:2},1024)]),_:2},1024),v("div",st,[i+1>1?(S(),C(W,{key:0,class:"mr-10",variant:"text",onClick:h=>o.value=i},{default:c(()=>[x(f(_(m)("Back")),1)]),_:2},1032,["onClick"])):re("",!0),l(W,{color:"primary",size:"large",onClick:h=>I(i+1,i+2)},{default:c(()=>[x(f(_(m)("Next")),1)]),_:2},1032,["onClick"])])]),_:2},1032,["value"]))),128)),l(Y,{value:e.steps.length+1,class:"flex-grow-0"},{default:c(()=>[v("div",rt,f(_(m)("Summary")),1),l(Ye,{sections:e.summarySections,onModifyStep:b[0]||(b[0]=r=>o.value=r)},xe({_:2},[L(V.$slots,(r,i)=>({name:i,fn:c(h=>[M(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{g as _,j as h,c as p,o as c,w as o,a as l,e as t,t as a,k as b,l as V,b as k,u as x,d as y,m as A,n as N,f as m,i as C}from"./index-I1VDlN4g.js";import{a as w}from"./admin-o-HRGnmT.js";import{V as v,a as $,b as D}from"./VCard-er_isjE_.js";import{V as S}from"./VTable-CNz2SGk4.js";import{V as T}from"./VDataTable-4JRjbtgF.js";import{p as B}from"./parameters-A6iBEYQq.js";import{V as M,a as W}from"./VToolbar-BiCiBxBJ.js";import{V as F,a as g}from"./VRow-BF35mT1S.js";import"./tag-BnSYRTcD.js";import"./VAvatar-Lpb-Dion.js";import"./VProgressCircular-w75-3ogi.js";import"./VSelect-Cs4ARbAS.js";import"./VTextField-BdyvgvkG.js";import"./forwardRefs-Dvjn_Xq4.js";import"./ssrBoot-AzTdjPjk.js";import"./VMenu-BPFJwj2f.js";import"./VCheckboxBtn-Dt810gWf.js";import"./VSelectionControl-Dg-XyRRS.js";import"./VChip-B4iSpj8_.js";import"./filter-CnffiQAW.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"],j={href:"https://modoboa.org/weblog/",target:"_blank"},E={__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",j,a(u.$gettext("Visit the official weblog for more information")),1)])]),_:1})]),_:1},8,["title"]))}},R=b(E,[["__scopeId","data-v-e0975b37"]]),U={__name:"DashboardView",setup(f){const{$gettext:s}=k(),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(R)),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(U,[["__scopeId","data-v-24210b96"]]);export{dt as default};
@@ -1 +1 @@
1
- a[data-v-e0975b37]{text-decoration:none;color:rgb(var(--v-theme-primary))}a[data-v-e0975b37]:visited{color:rgb(var(--v-theme-primary))}.v-toolbar[data-v-cbf2b4b5],.v-tabs-items[data-v-cbf2b4b5]{background-color:#f7f8fa!important}
1
+ a[data-v-e0975b37]{text-decoration:none;color:rgb(var(--v-theme-primary))}a[data-v-e0975b37]:visited{color:rgb(var(--v-theme-primary))}.v-toolbar[data-v-24210b96],.v-tabs-items[data-v-24210b96]{background-color:#f7f8fa!important}
@@ -0,0 +1 @@
1
+ import{p as L,b as U,g as u,d as j,c as m,o as i,w as e,a as o,e as O,m as x,t as s,f as c,n as g,l as f,i as D,N as $}from"./index-I1VDlN4g.js";import{d as N}from"./domains-Bgn4ixHL.js";import{c as G,V as H,b as q,a as F}from"./VCard-er_isjE_.js";import{V as J}from"./VDataTableVirtual-BlnO18u_.js";import{V as h,d as b}from"./VAvatar-Lpb-Dion.js";import{V as K}from"./VAutocomplete-C4IpXyl8.js";import{V as P,a as M}from"./VRow-BF35mT1S.js";const Q={class:"headline"},W={key:0,class:"headline"},X={key:1,class:"headline"},Y={key:0},ie={__name:"DomainAdminList",props:{domain:{type:Object,default:()=>{}},dialogMode:{type:Boolean,default:!1}},emits:["close"],setup(v,{emit:R}){const B=L(),{$gettext:t}=U(),p=v,S=R,k=u([]),V=u([]),_=u(""),w=u([{title:t("Username"),value:"username"},{title:t("Name"),value:"name"},{title:"",value:"actions",align:"end",sortable:!1}]),A=u(!1),d=u(null);function E(){V.value.push({}),A.value=!0}function T(){A.value=!1,S("close")}function y(n){N.getDomainAdministrators(n.pk).then(a=>{V.value=a.data})}function C(){const n={role:[D.RESELLER,D.DOMAIN_ADMIN],page_size:50};_.value&&(n.search=_.value),$.getAll(n).then(a=>{k.value=a.data.results.filter(l=>V.value.find(r=>r.id===l.pk)===void 0)})}function z(){N.addDomainAdministrator(p.domain.pk,d.value.pk).then(()=>{y(p.domain),k.value=k.value.filter(n=>n.pk!==d.value.pk),d.value=null,A.value=!1,B.displayNotification({msg:t("Administrator added")})})}function I(n){N.removeDomainAdministrator(p.domain.pk,n.id).then(()=>{y(p.domain),C(),B.displayNotification({msg:t("Administrator removed")})})}return j(()=>{y(p.domain),C()}),(n,a)=>(i(),m(F,null,{default:e(()=>[o(G,null,{default:e(()=>[O("span",Q,[v.dialogMode?(i(),x("div",W,s(c(t)("Administrators of"))+" "+s(v.domain.name),1)):(i(),x("div",X,s(c(t)("Administrators")),1))])]),_:1}),o(H,null,{default:e(()=>[o(J,{headers:w.value,items:V.value},{"item.username":e(({item:l})=>[l.id?(i(),x("span",Y,s(l.username),1)):(i(),m(K,{key:1,modelValue:d.value,"onUpdate:modelValue":a[0]||(a[0]=r=>d.value=r),search:_.value,"onUpdate:search":[a[1]||(a[1]=r=>_.value=r),C],label:c(t)("Select an account"),items:k.value,variant:"outlined","item-title":"username",class:"mt-5","return-object":""},{append:e(()=>[d.value?(i(),m(h,{key:0,variant:"text",color:"primary",size:"x-large",onClick:z},{default:e(()=>[o(b,null,{default:e(()=>a[2]||(a[2]=[f("mdi-content-save")])),_:1,__:[2]})]),_:1})):g("",!0)]),_:1},8,["modelValue","search","label","items"]))]),"item.name":e(({item:l})=>[f(s(l.first_name)+" "+s(l.last_name),1)]),"item.actions":e(({item:l})=>[l.id?(i(),m(h,{key:0,variant:"text",color:"red",title:c(t)("Remove this administrator"),size:"x-large",onClick:r=>I(l)},{default:e(()=>[o(b,null,{default:e(()=>a[3]||(a[3]=[f("mdi-delete-outline")])),_:1,__:[3]})]),_:2},1032,["title","onClick"])):g("",!0)]),_:2},1032,["headers","items"])]),_:1}),o(q,null,{default:e(()=>[o(P,null,{default:e(()=>[o(M,{align:v.dialogMode?"left":"right"},{default:e(()=>[A.value?g("",!0):(i(),m(h,{key:0,color:"primary",variant:"outlined",onClick:E},{default:e(()=>[o(b,{small:""},{default:e(()=>a[4]||(a[4]=[f("mdi-plus")])),_:1,__:[4]}),f(" "+s(c(t)("Add administrator")),1)]),_:1}))]),_:1},8,["align"]),v.dialogMode?(i(),m(M,{key:0,align:"right"},{default:e(()=>[o(h,{color:"grey darken-1",variant:"text",onClick:T},{default:e(()=>[f(s(c(t)("Close")),1)]),_:1})]),_:1})):g("",!0)]),_:1})]),_:1})]),_:1}))}};export{ie as _};
@@ -1 +1 @@
1
- import{b as I,u as q,h as U,g as f,i as b,d as J,c as d,m as g,a,e as k,w as e,q as P,l as c,t as o,f as s,s as K,o as u,k as Q,M as z,F as H}from"./index-DV9Li2cg.js";import{c as W,b as X,a as Y,_ as Z}from"./DomainTransportForm-DPnPGBOp.js";import{L as ee}from"./LoadingData-CVD2Aen8.js";import{p as ae}from"./parameters-Lgiqp7aw.js";import{_ as te}from"./ResourcesForm-D87PHeH0.js";import{d as O}from"./domains-nBMR-fRf.js";import{g as N,d as w,V as B}from"./VAvatar-BAgTUIvX.js";import{V,c as F,a as h,b as le}from"./VExpansionPanels-B5D6GOa3.js";import{V as p,a as m}from"./VRow-C_Ydf6yr.js";import{u as oe}from"./domains.store-ChZgLcqP.js";import{V as se,a as ue}from"./VToolbar-CGwhgdmI.js";import"./ChoiceField-7eU7c_rI.js";import"./VForm-CpoZf60D.js";import"./tag-CFK9dzMJ.js";import"./VTextField-CLwRV0Cb.js";import"./VProgressCircular-CrEXxs7k.js";import"./forwardRefs-Cpc3YYl6.js";import"./ssrBoot-BsxW6uW4.js";import"./VSwitch-Chg5o-Cp.js";import"./VSelectionControl-DiOqtY38.js";import"./transports-TO08iTXJ.js";import"./VAutocomplete-Cc4_tcl1.js";import"./VSelect-CS51PDEt.js";import"./VMenu-B_dVqOmo.js";import"./VCheckboxBtn-j7di4leN.js";import"./VChip-nZ0uhY7t.js";import"./filter-D7NrAf6a.js";import"./VCheckbox-CKsH_vq3.js";import"./VContainer-Btam4lk2.js";/* empty css */const re={key:1},ne={key:0},ie={key:0},me={key:0},de={class:"mr-2"},ce={class:"mr-2"},fe={class:"mr-2"},pe={key:0},_e={class:"mr-2"},ve={class:"mt-4 d-flex justify-end"},ge={__name:"DomainEditForm",props:{domain:{type:Object,default:null}},setup($){const x=K(),{$gettext:n}=I(),R=q(),E=$,_=U(()=>R.authUser),v=f({}),D=f(0),y=f(!1),t=U(()=>E.domain),C=f(),L=f(),T=f(),A=f(),M=f(),j=U(()=>{const r={generalForm:C,limitationForm:A,dnsForm:M};return t.value.type==="relaydomain"&&(r.transportForm=T),v.value.params&&v.value.params.enable_domain_limits&&(_.value.role===b.SUPER_ADMIN||_.value.role===b.RESELLER)&&(r.resourcesForm=L),r}),S=f(!1);async function G(){S.value=!1,D.value=[];for(const[r,i]of Object.entries(j.value))if(i.value!=null){const{valid:l}=await i.value.vFormRef.validate();l||(S.value=!0,D.value.push(r))}if(!S.value){y.value=!0;try{const r=JSON.parse(JSON.stringify(t.value));r.transport===null&&delete r.transport,r.type==="relaydomain"?T.value.checkSettingTypes(r):r.transport&&delete r.transport,r.message_limit===""&&(r.message_limit=null),await O.updateDomain(t.value.pk,r),x.push({name:"DomainDetail",params:{id:t.value.pk}})}finally{y.value=!1}}}return J(()=>{ae.getGlobalApplication("limits").then(r=>{v.value.data=r.data})}),(r,i)=>y.value?(u(),d(ee,{key:0})):(u(),g("div",re,[a(le,{modelValue:D.value,"onUpdate:modelValue":i[5]||(i[5]=l=>D.value=l),multiple:S.value},{default:e(()=>[a(V,{eager:"",value:"generalForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("General")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",ne)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("Name: "))+" "+o(t.value.name),1)]),_:1}),a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("Type: "))+" "+o(t.value.type),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(W,{ref_key:"generalForm",ref:C,modelValue:t.value,"onUpdate:modelValue":i[0]||(i[0]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(V,{eager:"",value:"dnsForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("DNS")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",ie)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("DNS checks"))+" ",1),t.value.enable_dns_checks?(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(n)("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:M,modelValue:t.value,"onUpdate:modelValue":i[1]||(i[1]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(V,{eager:"",value:"limitationForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("Limitations")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("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(n)("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(n)("Sending limit: "))+" "+o(t.value.message_limit),1)]),_:1})):(u(),d(m,{key:1,cols:"6"},{default:e(()=>[k("div",fe,o(s(n)("No sending limit")),1)]),_:1}))]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(Y,{ref_key:"limitationForm",ref:A,modelValue:t.value,"onUpdate:modelValue":i[2]||(i[2]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),t.value.type==="relaydomain"?(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(n)("Transport")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("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(n)("Service: "))+" "+o(t.value.transport.service),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(Z,{ref_key:"transportForm",ref:T,modelValue:t.value.transport,"onUpdate:modelValue":i[3]||(i[3]=l=>t.value.transport=l)},null,8,["modelValue"])]),_:1})]),_:1})):P("",!0),v.value.params&&v.value.params.enable_domain_limits&&(_.value.role===s(b).SUPER_ADMIN||_.value.role===s(b).RESELLER)?(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(n)("Resources")),1)]),_:1})]),_:1})]),_:1}),a(h,null,{default:e(()=>[a(te,{ref_key:"resourcesForm",ref:L,modelValue:t.value.resources,"onUpdate:modelValue":i[4]||(i[4]=l=>t.value.resources=l)},null,8,["modelValue"])]),_:1})]),_:1})):P("",!0)]),_:1},8,["modelValue","multiple"]),k("div",ve,[a(B,{loading:y.value,onClick:i[6]||(i[6]=l=>s(x).go(-1))},{default:e(()=>[c(o(s(n)("Cancel")),1)]),_:1},8,["loading"]),a(B,{class:"ml-4",color:"primary darken-1",loading:y.value,onClick:G},{default:e(()=>[c(o(s(n)("Save")),1)]),_:1},8,["loading"])])]))}},ye={__name:"DomainEditView",setup($){const{$gettext:x}=I(),n=z(),R=oe(),E=f({});return R.getDomains(),O.getDomain(n.params.id).then(_=>{E.value=_.data}),(_,v)=>(u(),g(H,null,[a(se,{flat:""},{default:e(()=>[a(ue,null,{default:e(()=>[c(o(s(x)("Edit domain")),1)]),_:1})]),_:1}),a(s(ge),{domain:E.value},null,8,["domain"])],64))}},He=Q(ye,[["__scopeId","data-v-2221e277"]]);export{He as default};
1
+ import{b as I,u as J,h as U,g as f,i as b,d as q,c as d,m as g,a,e as k,w as e,n as P,l as c,t as o,f as s,s as K,o as u,k as Q,M as z,F as H}from"./index-I1VDlN4g.js";import{c as W,b as X,a as Y,_ as Z}from"./DomainTransportForm-C2xo0Yd7.js";import{L as ee}from"./LoadingData-CYwX3Jpn.js";import{p as ae}from"./parameters-A6iBEYQq.js";import{_ as te}from"./ResourcesForm-CuUvrOdY.js";import{d as O}from"./domains-Bgn4ixHL.js";import{g as N,d as w,V as B}from"./VAvatar-Lpb-Dion.js";import{V,c as F,a as h,b as le}from"./VExpansionPanels-CwGtXDhr.js";import{V as p,a as m}from"./VRow-BF35mT1S.js";import{u as oe}from"./domains.store-DTE-V7Y1.js";import{V as se,a as ue}from"./VToolbar-BiCiBxBJ.js";import"./ChoiceField-DJ_c78Cm.js";import"./VForm-DAkW4nfy.js";import"./tag-BnSYRTcD.js";import"./VTextField-BdyvgvkG.js";import"./VProgressCircular-w75-3ogi.js";import"./forwardRefs-Dvjn_Xq4.js";import"./ssrBoot-AzTdjPjk.js";import"./VSwitch-Cs1NQrmk.js";import"./VSelectionControl-Dg-XyRRS.js";import"./transports-Dz7c6kIy.js";import"./VAutocomplete-C4IpXyl8.js";import"./VSelect-Cs4ARbAS.js";import"./VMenu-BPFJwj2f.js";import"./VCheckboxBtn-Dt810gWf.js";import"./VChip-B4iSpj8_.js";import"./filter-CnffiQAW.js";import"./VCheckbox-D-u8JXP1.js";import"./VContainer-DvTbsotR.js";/* empty css */const re={key:1},ne={key:0},ie={key:0},me={key:0},de={class:"mr-2"},ce={class:"mr-2"},fe={class:"mr-2"},pe={key:0},_e={class:"mr-2"},ve={class:"mt-4 d-flex justify-end"},ge={__name:"DomainEditForm",props:{domain:{type:Object,default:null}},setup($){const x=K(),{$gettext:n}=I(),R=J(),E=$,_=U(()=>R.authUser),v=f({}),D=f(0),y=f(!1),t=U(()=>E.domain),C=f(),L=f(),T=f(),A=f(),M=f(),j=U(()=>{const r={generalForm:C,limitationForm:A,dnsForm:M};return t.value.type==="relaydomain"&&(r.transportForm=T),v.value.params&&v.value.params.enable_domain_limits&&(_.value.role===b.SUPER_ADMIN||_.value.role===b.RESELLER)&&(r.resourcesForm=L),r}),S=f(!1);async function G(){S.value=!1,D.value=[];for(const[r,i]of Object.entries(j.value))if(i.value!=null){const{valid:l}=await i.value.vFormRef.validate();l||(S.value=!0,D.value.push(r))}if(!S.value){y.value=!0;try{const r=JSON.parse(JSON.stringify(t.value));r.transport===null&&delete r.transport,r.type==="relaydomain"?T.value.checkSettingTypes(r):r.transport&&delete r.transport,r.message_limit===""&&(r.message_limit=null),await O.updateDomain(t.value.pk,r),x.push({name:"DomainDetail",params:{id:t.value.pk}})}finally{y.value=!1}}}return q(()=>{ae.getGlobalApplication("limits").then(r=>{v.value.data=r.data})}),(r,i)=>y.value?(u(),d(ee,{key:0})):(u(),g("div",re,[a(le,{modelValue:D.value,"onUpdate:modelValue":i[5]||(i[5]=l=>D.value=l),multiple:S.value},{default:e(()=>[a(V,{eager:"",value:"generalForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("General")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",ne)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("Name: "))+" "+o(t.value.name),1)]),_:1}),a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("Type: "))+" "+o(t.value.type),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(W,{ref_key:"generalForm",ref:C,modelValue:t.value,"onUpdate:modelValue":i[0]||(i[0]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(V,{eager:"",value:"dnsForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("DNS")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",ie)):(u(),d(p,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(m,{cols:"6"},{default:e(()=>[c(o(s(n)("DNS checks"))+" ",1),t.value.enable_dns_checks?(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(n)("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:M,modelValue:t.value,"onUpdate:modelValue":i[1]||(i[1]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),a(V,{eager:"",value:"limitationForm"},{default:e(()=>[a(F,null,{default:e(({expanded:l})=>[a(p,{"no-gutters":""},{default:e(()=>[a(m,{cols:"4"},{default:e(()=>[c(o(s(n)("Limitations")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("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(n)("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(n)("Sending limit: "))+" "+o(t.value.message_limit),1)]),_:1})):(u(),d(m,{key:1,cols:"6"},{default:e(()=>[k("div",fe,o(s(n)("No sending limit")),1)]),_:1}))]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(Y,{ref_key:"limitationForm",ref:A,modelValue:t.value,"onUpdate:modelValue":i[2]||(i[2]=l=>t.value=l)},null,8,["modelValue"])]),_:1})]),_:1}),t.value.type==="relaydomain"?(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(n)("Transport")),1)]),_:1}),a(m,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("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(n)("Service: "))+" "+o(t.value.transport.service),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1}),a(h,null,{default:e(()=>[a(Z,{ref_key:"transportForm",ref:T,modelValue:t.value.transport,"onUpdate:modelValue":i[3]||(i[3]=l=>t.value.transport=l)},null,8,["modelValue"])]),_:1})]),_:1})):P("",!0),v.value.params&&v.value.params.enable_domain_limits&&(_.value.role===s(b).SUPER_ADMIN||_.value.role===s(b).RESELLER)?(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(n)("Resources")),1)]),_:1})]),_:1})]),_:1}),a(h,null,{default:e(()=>[a(te,{ref_key:"resourcesForm",ref:L,modelValue:t.value.resources,"onUpdate:modelValue":i[4]||(i[4]=l=>t.value.resources=l)},null,8,["modelValue"])]),_:1})]),_:1})):P("",!0)]),_:1},8,["modelValue","multiple"]),k("div",ve,[a(B,{loading:y.value,onClick:i[6]||(i[6]=l=>s(x).go(-1))},{default:e(()=>[c(o(s(n)("Cancel")),1)]),_:1},8,["loading"]),a(B,{class:"ml-4",color:"primary darken-1",loading:y.value,onClick:G},{default:e(()=>[c(o(s(n)("Save")),1)]),_:1},8,["loading"])])]))}},ye={__name:"DomainEditView",setup($){const{$gettext:x}=I(),n=z(),R=oe(),E=f({});return R.getDomains(),O.getDomain(n.params.id).then(_=>{E.value=_.data}),(_,v)=>(u(),g(H,null,[a(se,{flat:""},{default:e(()=>[a(ue,null,{default:e(()=>[c(o(s(x)("Edit domain")),1)]),_:1})]),_:1}),a(s(ge),{domain:E.value},null,8,["domain"])],64))}},He=Q(ye,[["__scopeId","data-v-2221e277"]]);export{He as default};
@@ -1 +1 @@
1
- import{C as M}from"./ChoiceField-7eU7c_rI.js";import{b as g,h as R,g as b,c as x,o as v,w as h,a as r,f as a,e as D,d as K,m as q,q as C,t as N,F as U,G as S}from"./index-DV9Li2cg.js";import{r as y,V as F}from"./VForm-CpoZf60D.js";import{V as k}from"./VTextField-CLwRV0Cb.js";import{V as B}from"./VSwitch-Chg5o-Cp.js";import{t as T}from"./transports-TO08iTXJ.js";import{V as j}from"./VAutocomplete-Cc4_tcl1.js";import{V as A}from"./VCheckbox-CKsH_vq3.js";const W={__name:"DomainGeneralForm",props:{modelValue:{type:Object,default:null}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,t=o,u=R({get(){return i.modelValue},set(_){t("update:modelValue",_)}}),l=b();function e(_){_==="relaydomain"&&u.value.transport==null&&(u.value.transport={})}const s=[{label:m("Domain"),icon:"mdi-earth",value:"domain"},{label:m("Relay domain"),icon:"mdi-earth",value:"relaydomain"}];return c({vFormRef:l}),(_,p)=>(v(),x(F,{ref_key:"vFormRef",ref:l},{default:h(()=>[r(k,{modelValue:u.value.name,"onUpdate:modelValue":p[0]||(p[0]=d=>u.value.name=d),label:a(m)("Domain name (ex: domain.tld)"),rules:[a(y).required],variant:"outlined",class:"mb-5"},null,8,["modelValue","label","rules"]),r(a(M),{modelValue:u.value.type,"onUpdate:modelValue":[p[1]||(p[1]=d=>u.value.type=d),e],label:a(m)("Type"),choices:s},null,8,["modelValue","label"]),r(B,{modelValue:u.value.enabled,"onUpdate:modelValue":p[2]||(p[2]=d=>u.value.enabled=d),label:a(m)("Enabled"),hint:a(m)("Control if this domain will be allowed to send and receive messages"),color:"primary","persistent-hint":""},null,8,["modelValue","label","hint"])]),_:1},512))}},X={__name:"DomainDNSForm",props:{modelValue:{type:Object,default:()=>{}}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),t=R(()=>m.modelValue),u=b([{label:"1024",value:1024},{label:"2048",value:2048},{label:"4096",value:4096}]);return c({vFormRef:i}),(l,e)=>(v(),x(F,{ref_key:"vFormRef",ref:i},{default:h(()=>[D("div",null,[r(B,{modelValue:t.value.enable_dns_checks,"onUpdate:modelValue":e[0]||(e[0]=s=>t.value.enable_dns_checks=s),label:a(o)("Enable DNS checks"),color:"primary"},null,8,["modelValue","label"]),r(B,{modelValue:t.value.enable_dkim,"onUpdate:modelValue":e[1]||(e[1]=s=>t.value.enable_dkim=s),label:a(o)("Enable DKIM signing"),color:"primary"},null,8,["modelValue","label"]),r(k,{modelValue:t.value.dkim_key_selector,"onUpdate:modelValue":e[2]||(e[2]=s=>t.value.dkim_key_selector=s),label:a(o)("DKIM key selector"),disabled:!t.value.enable_dkim,variant:"outlined"},null,8,["modelValue","label","disabled"]),r(a(M),{modelValue:t.value.dkim_key_length,"onUpdate:modelValue":e[3]||(e[3]=s=>t.value.dkim_key_length=s),label:a(o)("DKIM key length"),choices:u.value,disabled:!t.value.enable_dkim},null,8,["modelValue","label","choices","disabled"])])]),_:1},512))}},Y={__name:"DomainLimitationsForm",props:{modelValue:{type:Object,default:null}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),t=R(()=>m.modelValue);return c({vFormRef:i}),(u,l)=>(v(),x(F,{ref_key:"vFormRef",ref:i},{default:h(()=>[r(k,{modelValue:t.value.quota,"onUpdate:modelValue":l[0]||(l[0]=e=>t.value.quota=e),label:a(o)("Quota"),hint:a(o)("Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota."),"persistent-hint":"",class:"mb-4",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:t.value.default_mailbox_quota,"onUpdate:modelValue":l[1]||(l[1]=e=>t.value.default_mailbox_quota=e),label:a(o)("Default mailbox quota"),hint:a(o)("Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota."),"persistent-hint":"",class:"mb-4",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:t.value.message_limit,"onUpdate:modelValue":l[2]||(l[2]=e=>t.value.message_limit=e),label:a(o)("Message sending limit"),hint:a(o)("Number of messages this domain can send per day. Leave empty for no limit."),type:"number","persistent-hint":"",variant:"outlined",rules:[a(y).numericOrNull]},null,8,["modelValue","label","hint","rules"])]),_:1},512))}},G={class:"m-label"},O={class:"m-label"},Z={__name:"DomainTransportForm",props:{modelValue:{type:Object,default:()=>{}}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,t=o,u=b(),l=b({}),e=b(),s=b([]);function _(d){for(const f of e.value.settings)if(f.type==="int"){const n=`${e.value.name}_${f.name}`;d.transport.settings[n]=parseInt(d.transport.settings[n])}}function p(){l.value.service=e.value.name,t("update:modelValue",l.value)}return K(()=>{l.value={...i.modelValue},l.value.settings||(l.value.settings={}),T.getAll().then(d=>{s.value=d.data,l.value.service&&(e.value=s.value.find(f=>f.name===l.value.service))})}),c({checkSettingTypes:_,service:e,vFormRef:u}),(d,f)=>(v(),x(F,{ref_key:"vFormRef",ref:u},{default:h(()=>[D("label",G,N(a(m)("Service")),1),r(j,{modelValue:e.value,"onUpdate:modelValue":f[0]||(f[0]=n=>e.value=n),items:s.value,"item-title":"name","return-object":"",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","items","rules"]),e.value?(v(!0),q(U,{key:0},S(e.value.settings,(n,w)=>(v(),q(U,{key:w},[n.type==="str"||n.type==="int"?(v(),q(U,{key:0},[D("label",O,N(n.label),1),r(k,{modelValue:l.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[$=>l.value.settings[`${e.value.name}_${n.name}`]=$,p],variant:"outlined",type:l.value.type==="int"?"number":"text",rules:[!!n.required||a(y).required]},null,8,["modelValue","onUpdate:modelValue","type","rules"])],64)):n.type==="boolean"?(v(),x(A,{key:1,modelValue:l.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[$=>l.value.settings[`${e.value.name}_${n.name}`]=$,p],label:n.label},null,8,["modelValue","onUpdate:modelValue","label"])):C("",!0)],64))),128)):C("",!0)]),_:1},512))}};export{Z as _,Y as a,X as b,W as c};
1
+ import{C as M}from"./ChoiceField-DJ_c78Cm.js";import{b as g,h as R,g as b,c as x,o as v,w as h,a as r,f as a,e as D,d as K,m as U,n as C,t as N,F as q,G as S}from"./index-I1VDlN4g.js";import{r as y,V as F}from"./VForm-DAkW4nfy.js";import{V as k}from"./VTextField-BdyvgvkG.js";import{V as B}from"./VSwitch-Cs1NQrmk.js";import{t as T}from"./transports-Dz7c6kIy.js";import{V as j}from"./VAutocomplete-C4IpXyl8.js";import{V as A}from"./VCheckbox-D-u8JXP1.js";const W={__name:"DomainGeneralForm",props:{modelValue:{type:Object,default:null}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,t=o,u=R({get(){return i.modelValue},set(_){t("update:modelValue",_)}}),l=b();function e(_){_==="relaydomain"&&u.value.transport==null&&(u.value.transport={})}const s=[{label:m("Domain"),icon:"mdi-earth",value:"domain"},{label:m("Relay domain"),icon:"mdi-earth",value:"relaydomain"}];return c({vFormRef:l}),(_,p)=>(v(),x(F,{ref_key:"vFormRef",ref:l},{default:h(()=>[r(k,{modelValue:u.value.name,"onUpdate:modelValue":p[0]||(p[0]=d=>u.value.name=d),label:a(m)("Domain name (ex: domain.tld)"),rules:[a(y).required],variant:"outlined",class:"mb-5"},null,8,["modelValue","label","rules"]),r(a(M),{modelValue:u.value.type,"onUpdate:modelValue":[p[1]||(p[1]=d=>u.value.type=d),e],label:a(m)("Type"),choices:s},null,8,["modelValue","label"]),r(B,{modelValue:u.value.enabled,"onUpdate:modelValue":p[2]||(p[2]=d=>u.value.enabled=d),label:a(m)("Enabled"),hint:a(m)("Control if this domain will be allowed to send and receive messages"),color:"primary","persistent-hint":""},null,8,["modelValue","label","hint"])]),_:1},512))}},X={__name:"DomainDNSForm",props:{modelValue:{type:Object,default:()=>{}}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),t=R(()=>m.modelValue),u=b([{label:"1024",value:1024},{label:"2048",value:2048},{label:"4096",value:4096}]);return c({vFormRef:i}),(l,e)=>(v(),x(F,{ref_key:"vFormRef",ref:i},{default:h(()=>[D("div",null,[r(B,{modelValue:t.value.enable_dns_checks,"onUpdate:modelValue":e[0]||(e[0]=s=>t.value.enable_dns_checks=s),label:a(o)("Enable DNS checks"),color:"primary"},null,8,["modelValue","label"]),r(B,{modelValue:t.value.enable_dkim,"onUpdate:modelValue":e[1]||(e[1]=s=>t.value.enable_dkim=s),label:a(o)("Enable DKIM signing"),color:"primary"},null,8,["modelValue","label"]),r(k,{modelValue:t.value.dkim_key_selector,"onUpdate:modelValue":e[2]||(e[2]=s=>t.value.dkim_key_selector=s),label:a(o)("DKIM key selector"),disabled:!t.value.enable_dkim,variant:"outlined"},null,8,["modelValue","label","disabled"]),r(a(M),{modelValue:t.value.dkim_key_length,"onUpdate:modelValue":e[3]||(e[3]=s=>t.value.dkim_key_length=s),label:a(o)("DKIM key length"),choices:u.value,disabled:!t.value.enable_dkim},null,8,["modelValue","label","choices","disabled"])])]),_:1},512))}},Y={__name:"DomainLimitationsForm",props:{modelValue:{type:Object,default:null}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),t=R(()=>m.modelValue);return c({vFormRef:i}),(u,l)=>(v(),x(F,{ref_key:"vFormRef",ref:i},{default:h(()=>[r(k,{modelValue:t.value.quota,"onUpdate:modelValue":l[0]||(l[0]=e=>t.value.quota=e),label:a(o)("Quota"),hint:a(o)("Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota."),"persistent-hint":"",class:"mb-4",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:t.value.default_mailbox_quota,"onUpdate:modelValue":l[1]||(l[1]=e=>t.value.default_mailbox_quota=e),label:a(o)("Default mailbox quota"),hint:a(o)("Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota."),"persistent-hint":"",class:"mb-4",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:t.value.message_limit,"onUpdate:modelValue":l[2]||(l[2]=e=>t.value.message_limit=e),label:a(o)("Message sending limit"),hint:a(o)("Number of messages this domain can send per day. Leave empty for no limit."),type:"number","persistent-hint":"",variant:"outlined",rules:[a(y).numericOrNull]},null,8,["modelValue","label","hint","rules"])]),_:1},512))}},G={class:"m-label"},O={class:"m-label"},Z={__name:"DomainTransportForm",props:{modelValue:{type:Object,default:()=>{}}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,t=o,u=b(),l=b({}),e=b(),s=b([]);function _(d){for(const f of e.value.settings)if(f.type==="int"){const n=`${e.value.name}_${f.name}`;d.transport.settings[n]=parseInt(d.transport.settings[n])}}function p(){l.value.service=e.value.name,t("update:modelValue",l.value)}return K(()=>{l.value={...i.modelValue},l.value.settings||(l.value.settings={}),T.getAll().then(d=>{s.value=d.data,l.value.service&&(e.value=s.value.find(f=>f.name===l.value.service))})}),c({checkSettingTypes:_,service:e,vFormRef:u}),(d,f)=>(v(),x(F,{ref_key:"vFormRef",ref:u},{default:h(()=>[D("label",G,N(a(m)("Service")),1),r(j,{modelValue:e.value,"onUpdate:modelValue":f[0]||(f[0]=n=>e.value=n),items:s.value,"item-title":"name","return-object":"",variant:"outlined",rules:[a(y).required]},null,8,["modelValue","items","rules"]),e.value?(v(!0),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",O,N(n.label),1),r(k,{modelValue:l.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[$=>l.value.settings[`${e.value.name}_${n.name}`]=$,p],variant:"outlined",type:l.value.type==="int"?"number":"text",rules:[!!n.required||a(y).required]},null,8,["modelValue","onUpdate:modelValue","type","rules"])],64)):n.type==="boolean"?(v(),x(A,{key:1,modelValue:l.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[$=>l.value.settings[`${e.value.name}_${n.name}`]=$,p],label:n.label},null,8,["modelValue","onUpdate:modelValue","label"])):C("",!0)],64))),128)):C("",!0)]),_:1},512))}};export{Z as _,Y as a,X as b,W as c};
@@ -0,0 +1,5 @@
1
+ import{_ as _e}from"./DomainAdminList-BjC4KsqI.js";import{c as G}from"./colors-DoZdCu1D.js";import{b as F,m as h,o,e as r,a as t,l as s,t as l,J as re,w as e,F as T,G as E,f as n,g as k,K as Z,h as j,d as pe,L as ae,r as ue,c as m,n as $,k as ie,p as ye,j as ge,M as ke}from"./index-I1VDlN4g.js";import{f as q,V,d as be,e as he}from"./VAvatar-Lpb-Dion.js";import{V as xe}from"./VTable-CNz2SGk4.js";import{d as U}from"./domains-Bgn4ixHL.js";import{V as de,a as me}from"./VToolbar-BiCiBxBJ.js";import{V as W}from"./VSpacer-C7xukQmu.js";import{V as B,a as P,c as O,b as oe}from"./VCard-er_isjE_.js";import{V as x,a as c}from"./VRow-BF35mT1S.js";import{V as we}from"./VSheet-Btq_Mu4s.js";import{V as Ve,a as $e,b as De}from"./VExpansionPanels-CwGtXDhr.js";import{V as L}from"./VAlert-DIQTrRif.js";import{V as Ce,a as Se}from"./forwardRefs-Dvjn_Xq4.js";import{_ as Me}from"./ConfirmDialog-BBcgdAnO.js";import{V as M}from"./VChip-B4iSpj8_.js";import{V as Ne}from"./VDataTableVirtual-BlnO18u_.js";import{V as ee}from"./VDialog-Bk6EWNhz.js";import{t as Ie}from"./transports-Dz7c6kIy.js";import{L as Te}from"./LoadingData-CYwX3Jpn.js";import{_ as Ae}from"./ResourcesForm-CuUvrOdY.js";import{T as se}from"./TimeSerieChart-BMN8BeFZ.js";import{V as Ke,a as Le,b as te,c as le}from"./VTabs-B1fyVn4M.js";import"./VAutocomplete-C4IpXyl8.js";import"./VSelect-Cs4ARbAS.js";import"./VTextField-BdyvgvkG.js";import"./tag-BnSYRTcD.js";import"./VProgressCircular-w75-3ogi.js";import"./VMenu-BPFJwj2f.js";import"./VCheckboxBtn-Dt810gWf.js";import"./VSelectionControl-Dg-XyRRS.js";import"./filter-CnffiQAW.js";/* empty css */import"./ssrBoot-AzTdjPjk.js";import"./VDataTable-4JRjbtgF.js";import"./VContainer-DvTbsotR.js";import"./VForm-DAkW4nfy.js";import"./VPicker-CfT82M8N.js";import"./VWindowItem-ChWm_kz3.js";const Be={class:"text-h6"},Pe={width:"40%"},Re={class:"text-white"},je={class:"text-white"},ze={class:"text-white"},Fe={class:"text-white"},X={__name:"DmarcSourceTable",props:{title:{type:String,default:""},color:{type:String,default:""},total:{type:Number,default:null},sources:{type:Object,default:null}},setup(u){const{$gettext:a}=F();return(y,d)=>(o(),h("div",null,[r("div",Be,[s(l(u.title)+" ",1),r("span",{class:re(`text-${u.color}-lighten-2`)},l(u.total),3)]),t(xe,null,{default:e(()=>[r("tbody",null,[(o(!0),h(T,null,E(u.sources,(i,f)=>(o(),h(T,{key:f},[r("tr",null,[r("th",Pe,l(f),1),r("th",null,l(n(a)("Total")),1),d[0]||(d[0]=r("th",null,"SPF",-1)),d[1]||(d[1]=r("th",null,"DKIM",-1))]),(o(!0),h(T,null,E(i,(v,w)=>(o(),h("tr",{key:w},[r("td",null,l(w),1),r("td",null,l(v.total),1),r("td",null,[t(q,{color:"green lighten-2",size:"24"},{default:e(()=>[r("span",Re,l(v.spf.success),1)]),_:2},1024),t(q,{color:"red lighten-2 ml-1",size:"24"},{default:e(()=>[r("span",je,l(v.spf.failure),1)]),_:2},1024)]),r("td",null,[t(q,{color:"green lighten-2",size:"24"},{default:e(()=>[r("span",ze,l(v.dkim.success),1)]),_:2},1024),t(q,{color:"red lighten-2 ml-1",size:"24"},{default:e(()=>[r("span",Fe,l(v.dkim.failure),1)]),_:2},1024)])]))),128))],64))),128))])]),_:1})]))}},Oe={key:0},Ue={class:"mx-2"},Ee={class:"text-subtitle-1"},Ge={key:1},qe={__name:"DmarcAligmentChart",props:{domain:{type:Object,default:()=>null}},setup(u){const{$gettext:a}=F(),y=["aligned","trusted","forwarded","failed"],d=u,i=k({colors:[G.green.lighten2,G.orange.lighten2,G.blue.lighten2,G.red.lighten2],labels:[a("Fully aligned"),a("Partially aligned"),a("Forwarded"),a("Failed")],legend:{position:"bottom"}}),f=k(null),v=k([{key:"total",label:a("Total"),color:"primary lighten-2"},{key:"aligned",label:a("Fully aligned"),color:"green lighten-2"},{key:"trusted",label:a("Partially aligned"),color:"orange lighten-2"},{key:"forwarded",label:a("Forwarded"),color:"blue lighten-2"},{key:"failed",label:a("Failed"),color:"red lighten-2"}]),w=Z.now(),_=k(w.year),b=k(w.weekNumber),D=k(!1),N=k(!1),R=k(null),z=k([]),I=k({}),Y=j(()=>Z.fromObject({weekYear:_.value,weekNumber:b.value}).startOf("week")),H=j(()=>Z.fromObject({weekYear:_.value,weekNumber:b.value}).endOf("week"));function J(K){let p="";for(const A of K.split(" "))p!==""&&(p+=" "),p+="text-"+A;return p}function Q(){b.value===52?(_.value+=1,b.value=1):b.value+=1}function C(){b.value===1?(_.value-=1,b.value=52):b.value-=1}function g(){if(N.value)return;const K=`${_.value}-${b.value}`;N.value=!0,U.getDomainDmarcAlignment(d.domain.pk,K).then(p=>{if(N.value=!1,p.status===204){D.value=!0;return}I.value={total:0},f.value=p.data,z.value=[];for(const A of y){let S=0;for(const ne in p.data[A])for(const ve in p.data[A][ne])S+=p.data[A][ne][ve].total;I.value.total+=S,I.value[A]=S,z.value.push(S)}})}return pe(()=>g()),ae(b,()=>{g()}),ae(_,()=>{g()}),(K,p)=>{const A=ue("apexchart");return f.value?(o(),h("div",Oe,[t(P,null,{default:e(()=>[t(de,{dense:"",elevation:"0",class:"mr-2"},{default:e(()=>[t(me,null,{default:e(()=>[s(l(n(a)("Alignment")),1)]),_:1}),t(W),t(V,{icon:"mdi-arrow-left",size:"x-small",onClick:C}),r("span",Ue,l(Y.value.toLocaleString())+" - "+l(H.value.toLocaleString()),1),t(V,{icon:"mdi-arrow-right",size:"x-small",onClick:Q})]),_:1}),t(B,null,{default:e(()=>[t(x,null,{default:e(()=>[t(c,{cols:"5"},{default:e(()=>[z.value?(o(),m(A,{key:0,type:"pie",height:"350",options:i.value,series:z.value},null,8,["options","series"])):$("",!0)]),_:1}),t(c,{cols:"7"},{default:e(()=>[t(x,null,{default:e(()=>[(o(!0),h(T,null,E(v.value,S=>(o(),m(c,{key:S.key,cols:"6"},{default:e(()=>[t(we,{outlined:"",color:S.color,rounded:""},{default:e(()=>[t(P,{outlined:"",class:"pa-10 text-center"},{default:e(()=>[r("span",{class:re("text-h4 "+J(S.color))},l(I.value[S.key]),3),p[1]||(p[1]=r("br",null,null,-1)),r("span",Ee,l(S.label),1)]),_:2,__:[1]},1024)]),_:2},1032,["color"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),t(De,{modelValue:R.value,"onUpdate:modelValue":p[0]||(p[0]=S=>R.value=S),class:"mt-2"},{default:e(()=>[t(Ve,{title:n(a)("Detail")},{default:e(()=>[t($e,null,{default:e(()=>[t(X,{title:n(a)("Trusted sources"),color:"green",total:I.value.aligned,sources:f.value.aligned},null,8,["title","total","sources"]),t(X,{title:n(a)("Partially trusted sources / Forwarders"),color:"orange",total:I.value.trusted,sources:f.value.trusted,class:"mt-4"},null,8,["title","total","sources"]),t(X,{title:n(a)("Forwarders with ARC"),color:"blue",total:I.value.forwarded,sources:f.value.forwarded,class:"mt-4"},null,8,["title","total","sources"]),t(X,{title:n(a)("Unknown sources / Threats"),color:"red",total:I.value.failed,sources:f.value.failed,class:"mt-4"},null,8,["title","total","sources"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])])):(o(),h("div",Ge,[D.value?(o(),m(L,{key:0,type:"info",variant:"outlined",prominent:"",border:"start",class:"mt-6"},{default:e(()=>[r("div",null,l(n(a)("DMARC support does not seem to be enabled for this domain.")),1),r("div",null,l(n(a)("If you configured it recently, please wait for the first report to be received and processed.")),1)]),_:1})):$("",!0)]))}}},Xe={id:"dkimdns",class:"dkim"},ce={__name:"DKIMKeyViewer",props:{domain:{type:Object,default:null}},setup(u){const a=u,y=j(()=>{let i=`v=DKIM1;k=rsa;p=${a.domain.dkim_public_key}`;const f=[];for(;i.length>0;)if(i.length>74)f.push(` "${i.substring(0,74)}"`),i=i.substring(74);else{f.push(` "${i}"`);break}return f.join(`
2
+ `)});function d(){navigator.clipboard.writeText(document.getElementById("dkimdns").textContent)}return(i,f)=>(o(),h("button",{class:"dkimbutton",onClick:f[0]||(f[0]=v=>d())},[r("pre",Xe,l(u.domain.dkim_key_selector)+"._domainkey."+l(u.domain.name)+". IN TXT ("+l(y.value)+`)
3
+ }})`,1)]))}},We={class:"headline"},Ye={id:"dkimpub",class:"dkim"},He={__name:"DomainDKIMKey",props:{domain:{type:Object,default:null}},emits:["close"],setup(u,{emit:a}){const{$gettext:y}=F(),d=a;function i(){navigator.clipboard.writeText(document.getElementById("dkimpub").textContent)}return(f,v)=>(o(),m(P,null,{default:e(()=>[t(O,null,{default:e(()=>[r("span",We,l(n(y)("DKIM public key for"))+" "+l(u.domain.name),1)]),_:1}),t(B,null,{default:e(()=>[r("p",null,l(n(y)("Raw format. Click to copy")),1),t(L,{border:"start","colored-border":"","border-color":"primary lighten-3",elevation:"2",dense:""},{default:e(()=>[r("button",{class:"dkimbutton",onClick:v[0]||(v[0]=w=>i())},[r("pre",Ye,l(u.domain.dkim_public_key),1)])]),_:1})]),_:1}),t(B,null,{default:e(()=>[r("p",null,l(n(y)("Bind/named format. Click to copy")),1),t(L,{border:"start","colored-border":"","border-color":"primary lighten-3",elevation:"2",dense:""},{default:e(()=>[t(ce,{domain:u.domain},null,8,["domain"])]),_:1})]),_:1}),t(oe,null,{default:e(()=>[t(W),t(V,{onClick:v[1]||(v[1]=w=>d("close"))},{default:e(()=>[s(l(n(y)("Close")),1)]),_:1})]),_:1})]),_:1}))}},Je={class:"text-subtitle-1 text-grey-darken-2 mb-4"},Qe={class:"text-h6"},Ze={__name:"DomainDNSConfig",props:{domain:{type:Object,default:null}},emits:["close"],setup(u,{emit:a}){const y=a;return(d,i)=>(o(),m(P,null,{default:e(()=>[t(O,{class:"text-h5"},{default:e(()=>[r("span",null,l(d.$gettext("DNS configuration for "))+" "+l(u.domain.name),1)]),_:1}),t(B,null,{default:e(()=>[r("p",Je,l(d.$gettext("Here is an example of DNS configuration (bind format). Replace values between [ ] by the appropriate ones.")),1),t(L,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",color:"white"},{default:e(()=>[i[1]||(i[1]=r("div",{class:"text-h6"},"MX",-1)),r("pre",null,[s("mail."+l(u.domain.name)+". IN A ",1),r("strong",null,"["+l(d.$gettext("IP address of your Modoboa server"))+"]",1),s(`
4
+ @ IN MX 10 mail.`+l(u.domain.name)+".",1)])]),_:1,__:[1]}),t(L,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>i[2]||(i[2]=[r("div",{class:"text-h6"},"SPF",-1),r("pre",null,'@ IN TXT "v=spf1 mx ~all"',-1)])),_:1,__:[2]}),u.domain.enable_dkim&&u.domain.dkim_public_key?(o(),m(L,{key:0,class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[i[3]||(i[3]=r("div",{class:"text-h6"},"DKIM",-1)),t(ce,{domain:u.domain},null,8,["domain"])]),_:1,__:[3]})):$("",!0),t(L,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[i[4]||(i[4]=r("div",{class:"text-h6"},"DMARC",-1)),r("pre",null,"_dmarc."+l(u.domain.name)+'. IN TXT "v=DMARC1; p=quarantine; pct=100;"',1)]),_:1,__:[4]}),t(L,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[r("div",Qe,l(d.$gettext("Auto configuration")),1),r("pre",null,[s("autoconfig."+l(u.domain.name)+". IN CNAME ",1),r("strong",null,"["+l(d.$gettext("hostname of your automx server"))+"]",1),s(`
5
+ autodiscover.`+l(u.domain.name)+". IN CNAME ",1),r("strong",null,"["+l(d.$gettext("hostname of your automx server"))+"]",1)])]),_:1})]),_:1}),t(oe,null,{default:e(()=>[t(W),t(V,{onClick:i[0]||(i[0]=f=>y("close"))},{default:e(()=>[s(l(d.$gettext("Close")),1)]),_:1})]),_:1})]),_:1}))}},et=ie(Ze,[["__scopeId","data-v-506783e1"]]),tt={__name:"DNSBLSummary",props:{mxrecord:{type:Object,default:null}},emits:["close"],setup(u,{emit:a}){const y=u,d=a;return(i,f)=>(o(),m(P,null,{default:e(()=>[t(O,{class:"text-h5"},{default:e(()=>[r("span",null,l(i.$gettext("DNSBL summary for "))+" "+l(y.mxrecord.name),1)]),_:1}),t(B,null,{default:e(()=>[s(l(i.$gettext("IP address %{ address } is currently listed by the following DNSBL providers:",{address:u.mxrecord.address}))+" ",1),t(Ce,null,{default:e(()=>[(o(!0),h(T,null,E(y.mxrecord.dnsbl_results,v=>(o(),m(Se,{key:v.provider},{default:e(()=>[s(l(v.provider)+" ("+l(v.status)+") ",1)]),_:2},1024))),128))]),_:1})]),_:1}),t(oe,null,{default:e(()=>[t(W),t(V,{onClick:f[0]||(f[0]=v=>d("close"))},{default:e(()=>[s(l(i.$gettext("Close")),1)]),_:1})]),_:1})]),_:1}))}},lt={class:"mt-4 overline"},at={class:"mt-4 overline"},ot={key:4,class:"d-flex align-center flex-nowrap mt-4"},nt={class:"text-subtitle-2"},st={class:"ml-6"},rt={key:0},ut={key:1},it={__name:"DNSDetail",props:{modelValue:{type:Object,default:null}},setup(u){const{$gettext:a}=F(),y=ye(),d=u,i=j(()=>d.modelValue),f=k(),v=k({}),w=k([{title:a("Name"),value:"name"},{title:a("Address"),value:"address"},{title:a("Updated"),value:"updated"},{title:"",value:"issues"}]),_=k(!1),b=k(null),D=k(!1),N=k(!1),R=k(!1);function z(){navigator.clipboard.writeText(i.value.dkim_public_key),y.displayNotification({msg:a("DKIM key copied to clipboard"),type:"success"})}function I(){const C={dkim_private_key_path:""};U.patchDomain(i.value.pk,C).then(()=>{y.displayNotification({msg:a("A new key will be generated soon. Refresh the page in a moment to see it."),type:"success"}),i.value.dkim_private_key_path="",_.value=!1}).catch(()=>{_.value=!1})}function Y(){_.value=!1}async function H(){_.value=!0,U.getDomainDNSDetail(i.value.pk).then(async C=>{v.value=C.data,await f.value.open(a("warning"),a("DKIM key does not seem to be generated yet or has failed. Do you want to requeue the job?"),{color:"warning",cancelLabel:a("No"),agreeLabel:a("Yes")})?I():Y()})}function J(){f.value.open(a("Warning"),a("DKIM keys already exist for this domain. Do you want to overwrite them?"),{color:"error",cancelLabel:a("No"),agreeLabel:a("Yes")})}function Q(C){b.value=C,R.value=!0}return ae(i,C=>{C&&U.getDomainDNSDetail(C.pk).then(g=>{v.value=g.data})},{immediate:!0}),(C,g)=>{const K=ue("translate");return i.value?(o(),m(P,{key:0},{default:e(()=>[t(O,null,{default:e(()=>[g[8]||(g[8]=r("span",null," DNS ",-1)),t(V,{class:"ml-2",icon:"mdi-information-outline",title:n(a)("DNS configuration help"),variant:"text",density:"compact",onClick:g[0]||(g[0]=p=>D.value=!0)},null,8,["title"])]),_:1,__:[8]}),t(B,null,{default:e(()=>[t(K,{class:"overline"},{default:e(()=>g[9]||(g[9]=[s("MX records")])),_:1,__:[9]}),i.value.dns_global_status=="pending"?(o(),m(x,{key:0},{default:e(()=>[t(c,null,{default:e(()=>[t(M,{color:"info",size:"small"},{default:e(()=>[s(l(n(a)("Pending")),1)]),_:1})]),_:1})]),_:1})):(o(),m(Ne,{key:1,headers:w.value,items:v.value.mx_records},{"item.updated":e(({item:p})=>[s(l(C.$date(p.updated)),1)]),"item.issues":e(({item:p})=>[p.dnsbl_results.length?(o(),m(V,{key:0,icon:"mdi-bell",color:"error",variant:"flat",size:"x-small",onClick:A=>Q(p)},null,8,["onClick"])):$("",!0)]),_:2},1032,["headers","items"])),r("div",lt,l(n(a)("Auto configuration")),1),i.value.dns_global_status=="pending"?(o(),m(x,{key:2},{default:e(()=>[t(c,null,{default:e(()=>[t(M,{color:"info",size:"small"},{default:e(()=>[s(l(n(a)("Pending")),1)]),_:1})]),_:1})]),_:1})):(o(),h(T,{key:3},[t(x,null,{default:e(()=>[t(c,null,{default:e(()=>[v.value.autoconfig_record?(o(),m(M,{key:0,color:"success"},{default:e(()=>[s(l(n(a)("autoconfig record (Mozilla): %{ value }",{value:v.value.autoconfig_record.value})),1)]),_:1})):(o(),m(M,{key:1,color:"warning"},{default:e(()=>[s(l(n(a)("autoconfig record (Mozilla) not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[v.value.autodiscover_record?(o(),m(M,{key:0,color:"success"},{default:e(()=>[s(l(n(a)("autodiscover record (Microsoft): %{ value }",{value:v.value.autodiscover_record.value})),1)]),_:1})):(o(),m(M,{key:1,color:"warning"},{default:e(()=>[s(l(n(a)("autodiscover record (Microsoft) not found")),1)]),_:1}))]),_:1})]),_:1}),r("div",at,l(n(a)("Authentication")),1),t(x,null,{default:e(()=>[t(c,null,{default:e(()=>[v.value.spf_record?(o(),m(M,{key:0,color:"success"},{default:e(()=>[s(l(n(a)("SPF record found")),1)]),_:1})):(o(),m(M,{key:1,color:"error"},{default:e(()=>[s(l(n(a)("SPF record not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[v.value.dkim_record?(o(),m(M,{key:0,color:"success"},{default:e(()=>[s(l(n(a)("DKIM record found")),1)]),_:1})):(o(),m(M,{key:1,color:"error"},{default:e(()=>[s(l(n(a)("DKIM record not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[v.value.dmarc_record?(o(),m(M,{key:0,color:"success"},{default:e(()=>[s(l(n(a)("DMARC record found")),1)]),_:1})):(o(),m(M,{key:1,color:"error"},{default:e(()=>[s(l(n(a)("DMARC record not found")),1)]),_:1}))]),_:1})]),_:1})],64)),i.value.enable_dkim?(o(),h("div",ot,[r("div",nt,l(n(a)("DKIM key")),1),r("div",st,[i.value.dkim_private_key_path&&i.value.dkim_public_key?(o(),h("div",rt,[t(V,{color:"primary",size:"small",onClick:g[1]||(g[1]=p=>N.value=!0)},{default:e(()=>[s(l(n(a)("Show key")),1)]),_:1}),t(V,{icon:"mdi-content-copy",variant:"text",class:"ml-2",title:n(a)("Copy key to clipboard"),onClick:z},null,8,["title"]),t(V,{icon:"mdi-refresh",title:n(a)("Generate a new DKIM key"),variant:"text",loading:_.value,onClick:J},null,8,["title","loading"])])):(o(),h("div",ut,[s(l(n(a)("Not generated"))+" ",1),t(V,{icon:"mdi-reload",color:"primary",variant:"text",loading:_.value,onClick:H},null,8,["loading"])]))])])):$("",!0)]),_:1}),t(ee,{modelValue:D.value,"onUpdate:modelValue":g[3]||(g[3]=p=>D.value=p),"max-width":"800px",persistent:""},{default:e(()=>[t(et,{domain:i.value,onClose:g[2]||(g[2]=p=>D.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"]),t(ee,{modelValue:N.value,"onUpdate:modelValue":g[5]||(g[5]=p=>N.value=p),"max-width":"800px",persistent:""},{default:e(()=>[t(He,{domain:i.value,onClose:g[4]||(g[4]=p=>N.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"]),t(ee,{modelValue:R.value,"onUpdate:modelValue":g[7]||(g[7]=p=>R.value=p),"max-width":"800px",persistent:""},{default:e(()=>[t(tt,{mxrecord:b.value,onClose:g[6]||(g[6]=p=>R.value=!1)},null,8,["mxrecord"])]),_:1},8,["modelValue"]),t(Me,{ref_key:"dialog",ref:f},null,512)]),_:1})):$("",!0)}}},fe={__name:"BooleanIcon",props:{value:{type:Boolean}},setup(u){const a=u,y=j(()=>a.value?"mdi-check-circle":"mdi-close-circle"),d=j(()=>a.value?"success":"error");return(i,f)=>(o(),m(be,{icon:y.value,color:d.value},null,8,["icon","color"]))}},dt={class:"headline"},mt={__name:"DomainSummary",props:{domain:{type:Object,default:null}},setup(u){const{$gettext:a}=F();return(y,d)=>u.domain?(o(),m(P,{key:0},{default:e(()=>[t(O,null,{default:e(()=>[r("div",dt,l(n(a)("General information")),1)]),_:1}),t(B,null,{default:e(()=>[t(x,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[s(l(n(a)("Creation date")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[s(l(y.$date(u.domain.creation)),1)]),_:1})]),_:1}),t(x,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[s(l(n(a)("Last modification date")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[s(l(y.$date(u.domain.last_modification)),1)]),_:1})]),_:1}),t(x,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[s(l(n(a)("Quota")),1)]),_:1}),u.domain.quota==="0"?(o(),m(c,{key:0,cols:"6"},{default:e(()=>[s(l(n(a)("Unlimited")),1)]),_:1})):(o(),m(c,{key:1,cols:"6"},{default:e(()=>[s(l(u.domain.quota)+" "+l(n(a)("MB")),1)]),_:1}))]),_:1}),t(x,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[s(l(n(a)("Default mailbox quota")),1)]),_:1}),u.domain.default_mailbox_quota==="0"?(o(),m(c,{key:0,cols:"6"},{default:e(()=>[s(l(n(a)("Unlimited")),1)]),_:1})):(o(),m(c,{key:1,cols:"6"},{default:e(()=>[s(l(u.domain.default_mailbox_quota)+" MB",1)]),_:1}))]),_:1}),t(x,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[s(l(n(a)("Daily sending limit")),1)]),_:1}),u.domain.message_limit!==void 0&&u.domain.message_limit!==null?(o(),m(c,{key:0,cols:"6"},{default:e(()=>[u.domain.message_limit===0?(o(),h(T,{key:0},[s(l(n(a)("Sending forbidden")),1)],64)):(o(),m(he,{key:1,color:u.domain.sent_messages_in_percent<80?"primary":"warning","model-value":u.domain.sent_messages_in_percent,height:"25",class:"white--text"},{default:e(({value:i})=>[s(l(Math.ceil(i))+"% ("+l(u.domain.message_limit)+" "+l(n(a)("messages"))+") ",1)]),_:1},8,["color","model-value"]))]),_:1})):(o(),m(c,{key:1,cols:"6"},{default:e(()=>[s(l(n(a)("Unlimited")),1)]),_:1}))]),_:1}),t(x,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[s(l(n(a)("Mailboxes")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[s(l(u.domain.mailbox_count),1)]),_:1})]),_:1}),t(x,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[s(l(n(a)("Aliases")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[s(l(u.domain.mbalias_count),1)]),_:1})]),_:1}),t(x,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[s(l(n(a)("Enabled")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[t(n(fe),{value:u.domain.enabled,variant:"flat"},null,8,["value"])]),_:1})]),_:1})]),_:1})]),_:1})):$("",!0)}},ct={class:"headline"},ft={__name:"RelayDomainSummary",props:{domain:{type:Object,default:null}},async setup(u){let a,y;const d=u,i=k([]),f=j(()=>i.value.find(_=>_.name===d.domain.transport.service)),v=_=>d.domain.transport.settings[`${f.value.name}_${_}`],w=([a,y]=ge(()=>Ie.getAll()),a=await a,y(),a);return i.value=w.data,(_,b)=>d.domain?(o(),m(P,{key:0},{default:e(()=>[t(O,null,{default:e(()=>[r("div",ct,l(_.$gettext("Transport")),1)]),_:1}),t(B,null,{default:e(()=>[t(x,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[s(l(_.$gettext("Service")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[s(l(d.domain.transport.service),1)]),_:1})]),_:1}),f.value?(o(!0),h(T,{key:0},E(f.value.settings,(D,N)=>(o(),m(x,{key:N},{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[s(l(D.label),1)]),_:2},1024),t(c,{cols:"6"},{default:e(()=>[D.type!=="boolean"?(o(),h(T,{key:0},[s(l(v(D.name)),1)],64)):(o(),m(n(fe),{key:1,value:v(D.name),variant:"flat"},null,8,["value"]))]),_:2},1024)]),_:2},1024))),128)):$("",!0)]),_:1})]),_:1})):$("",!0)}},vt={key:1},_t={__name:"DomainView",setup(u){const{$gettext:a}=F(),y=ke(),d=k(null),i=k({}),f=k(null);function v(){U.getDomain(y.params.id).then(w=>{d.value=w.data})}return v(),(w,_)=>d.value?(o(),h("div",vt,[t(de,{flat:""},{default:e(()=>[t(me,null,{default:e(()=>[s(l(n(a)("Domain"))+" "+l(d.value.name)+" ",1),t(V,{color:"primary",icon:"mdi-circle-edit-outline",to:{name:"DomainEdit",params:{id:d.value.pk}}},null,8,["to"]),t(V,{color:"primary",icon:"mdi-reload",onClick:_[0]||(_[0]=b=>v())})]),_:1})]),_:1}),t(Ke,{modelValue:f.value,"onUpdate:modelValue":_[1]||(_[1]=b=>f.value=b),class:"mb-4",color:"primary"},{default:e(()=>[t(te,null,{default:e(()=>[s(l(n(a)("General")),1)]),_:1}),t(te,null,{default:e(()=>[s(l(n(a)("Statistics")),1)]),_:1}),t(te,null,{default:e(()=>[s(l(n(a)("DMARC")),1)]),_:1})]),_:1},8,["modelValue"]),t(Le,{modelValue:f.value,"onUpdate:modelValue":_[3]||(_[3]=b=>f.value=b)},{default:e(()=>[t(le,null,{default:e(()=>[t(x,null,{default:e(()=>[t(c,{cols:"12",md:"6"},{default:e(()=>[t(mt,{domain:d.value},null,8,["domain"]),_[5]||(_[5]=r("div",{class:"mt-4"},null,-1)),d.value.type==="relaydomain"?(o(),h(T,{key:0},[t(ft,{domain:d.value},null,8,["domain"]),_[4]||(_[4]=r("div",{class:"mt-4"},null,-1))],64)):$("",!0),t(_e,{domain:d.value},null,8,["domain"])]),_:1,__:[5]}),t(c,{cols:"12",md:"6"},{default:e(()=>[t(it,{modelValue:d.value,"onUpdate:modelValue":_[2]||(_[2]=b=>d.value=b)},null,8,["modelValue"]),_[6]||(_[6]=r("div",{class:"mt-4"},null,-1)),i.value.params&&i.value.params.enable_domain_limits&&d.value.resources&&d.value.resources.length?(o(),m(Ae,{key:0,resources:d.value.resources},null,8,["resources"])):$("",!0)]),_:1,__:[6]})]),_:1})]),_:1}),t(le,null,{default:e(()=>[t(x,null,{default:e(()=>[t(c,{cols:"12"},{default:e(()=>[d.value.name?(o(),m(se,{key:0,domain:d.value,"graphic-set":"mailtraffic","graphic-name":"averagetraffic"},null,8,["domain"])):$("",!0)]),_:1}),t(c,{cols:"12"},{default:e(()=>[d.value.name?(o(),m(se,{key:0,domain:d.value,"graphic-set":"mailtraffic","graphic-name":"averagetrafficsize"},null,8,["domain"])):$("",!0)]),_:1})]),_:1})]),_:1}),t(le,null,{default:e(()=>[t(qe,{domain:d.value},null,8,["domain"])]),_:1})]),_:1},8,["modelValue"])])):(o(),m(Te,{key:0}))}},tl=ie(_t,[["__scopeId","data-v-628417a7"]]);export{tl as default};
@@ -0,0 +1 @@
1
+ import{d as U}from"./domains-Bgn4ixHL.js";import{b as M,p as te,g as m,h as B,d as le,c as A,o as C,w as l,a,q as xe,e as v,t as V,f as u,n as E,l as w,s as me,m as q,F as de,v as Ce,x as De,y as we,z as he,A as Ae,B as O,C as Se,I as $e,D as Ne,E as Ue,k as ce,G as Fe,r as Te,H as Le}from"./index-I1VDlN4g.js";import{u as fe}from"./permissions-CITHLHVg.js";import{V as pe,r as Z}from"./VForm-DAkW4nfy.js";import{c as qe,V as Be,b as Re,a as ve}from"./VCard-er_isjE_.js";import{V as oe}from"./VTextField-BdyvgvkG.js";import{V as Pe}from"./VSelect-Cs4ARbAS.js";import{V as J}from"./VSwitch-Cs1NQrmk.js";import{V as Ee}from"./VSpacer-C7xukQmu.js";import{V as N,u as Oe,a as Me,m as Ie,b as ze,c as Ge,M as Je,d as _e,e as ie}from"./VAvatar-Lpb-Dion.js";import{p as je}from"./parameters-A6iBEYQq.js";import{_ as We}from"./CreationForm-71YJbjsA.js";import{_ as Ke,a as Ye,b as He,c as Qe}from"./DomainTransportForm-C2xo0Yd7.js";import{_ as Xe}from"./AccountPasswordSubForm-D9S6LaeH.js";import{a as P,V as se}from"./VRow-BF35mT1S.js";import{_ as Ze}from"./DomainAdminList-BjC4KsqI.js";import{_ as ea}from"./ConfirmDialog-BBcgdAnO.js";import{V as ee}from"./VChip-B4iSpj8_.js";import{_ as aa}from"./MenuItems-BAtHWzAE.js";import{V as ta}from"./VCheckboxBtn-Dt810gWf.js";import{V as ae}from"./VMenu-BPFJwj2f.js";import{u as la,a as oa}from"./VProgressCircular-w75-3ogi.js";import{u as na,m as ia,a as sa}from"./tag-BnSYRTcD.js";import{V as ye,a as ra}from"./VToolbar-BiCiBxBJ.js";import{V as be,a as re,b as ue}from"./forwardRefs-Dvjn_Xq4.js";import{V as ua}from"./VDataTable-4JRjbtgF.js";import{V as ma}from"./VCheckbox-D-u8JXP1.js";import{V as I}from"./VDialog-Bk6EWNhz.js";import{_ as da,i as ca}from"./importExport-BlQYb0NO.js";import"./VSelectionControl-Dg-XyRRS.js";/* empty css */import"./logos-q8SEyAa4.js";import"./VWindowItem-ChWm_kz3.js";import"./ssrBoot-AzTdjPjk.js";import"./VContainer-DvTbsotR.js";import"./VSheet-Btq_Mu4s.js";import"./ChoiceField-DJ_c78Cm.js";import"./transports-Dz7c6kIy.js";import"./VAutocomplete-C4IpXyl8.js";import"./filter-CnffiQAW.js";import"./VAlert-DIQTrRif.js";import"./VDataTableVirtual-BlnO18u_.js";import"./VTable-CNz2SGk4.js";import"./VFileInput-D1_7ZkO_.js";const fa={class:"headline"},pa={class:"m-label"},va={class:"m-label"},ge={__name:"DomainAliasForm",props:{domainAlias:{type:Object,default:()=>null}},emits:["close"],setup(r,{emit:_}){const{$gettext:e}=M(),f=_,{displayNotification:D}=te(),y=r,h=m([]),t=m({enabled:!0}),d=m(!1),S=m(),k=B(()=>y.domainAlias?e("Update"):e("Add")),p=B(()=>y.domainAlias?e("Edit domain alias"):e("Add a new domain alias"));async function g(){d.value=!0;try{await U.deleteDomainAlias(y.domainAlias.pk),D({msg:e("Domain alias deleted")}),f("close")}finally{d.value=!1}}async function $(){const{valid:x}=await S.value.validate();if(x){d.value=!0;try{if(!t.value.pk)await U.createDomainAlias(t.value),D({msg:e("Domain alias created")});else{const i=JSON.parse(JSON.stringify(t.value));await U.updateDomainAlias(y.domainAlias.pk,i),D({msg:e("Domain alias updated")})}f("close")}finally{d.value=!1}}}return le(()=>{U.getDomains().then(x=>{h.value=x.data}),y.domainAlias&&(t.value=JSON.parse(JSON.stringify(y.domainAlias)))}),(x,i)=>(C(),A(ve,null,{default:l(()=>[a(pe,{ref_key:"vFormRef",ref:S,onSubmit:xe($,["prevent"])},{default:l(()=>[a(qe,null,{default:l(()=>[v("span",fa,V(p.value),1)]),_:1}),a(Be,null,{default:l(()=>[v("label",pa,V(u(e)("Name")),1),a(oe,{modelValue:t.value.name,"onUpdate:modelValue":i[0]||(i[0]=c=>t.value.name=c),variant:"outlined",density:"compact",rules:[u(Z).required]},null,8,["modelValue","rules"]),v("label",va,V(u(e)("Choose a domain")),1),a(Pe,{modelValue:t.value.target,"onUpdate:modelValue":i[1]||(i[1]=c=>t.value.target=c),items:h.value,"item-title":"name","item-value":"pk",rules:[u(Z).required],"single-line":"",variant:"outlined",density:"compact"},null,8,["modelValue","items","rules"]),a(J,{modelValue:t.value.enabled,"onUpdate:modelValue":i[2]||(i[2]=c=>t.value.enabled=c),label:"Enabled",color:"primary"},null,8,["modelValue"])]),_:1}),a(Re,null,{default:l(()=>[a(Ee),a(N,{loading:d.value,onClick:i[3]||(i[3]=c=>f("close"))},{default:l(()=>[w(V(u(e)("Close")),1)]),_:1},8,["loading"]),r.domainAlias&&r.domainAlias.pk?(C(),A(N,{key:0,color:"error",loading:d.value,onClick:g},{default:l(()=>[w(V(u(e)("Delete")),1)]),_:1},8,["loading"])):E("",!0),a(N,{color:"primary",type:"submit",loading:d.value},{default:l(()=>[w(V(k.value),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},_a={__name:"DomainOptionsForm",props:{modelValue:{type:Object,default:null}},emits:["createAdmin"],setup(r,{expose:_,emit:e}){const{$gettext:f}=M(),D=r,y=e,h=m(),t=m(!1),d=B(()=>D.modelValue);function S(k){y("createAdmin",k)}return _({vFormRef:h}),(k,p)=>(C(),A(pe,{ref_key:"vFormRef",ref:h},{default:l(()=>[a(J,{modelValue:t.value,"onUpdate:modelValue":[p[0]||(p[0]=g=>t.value=g),S],label:u(f)("Create a domain administrator"),color:"primary"},null,8,["modelValue","label"]),a(oe,{modelValue:d.value.domain_admin.username,"onUpdate:modelValue":p[1]||(p[1]=g=>d.value.domain_admin.username=g),label:u(f)("Name"),hint:u(f)("Name of the administrator"),"persistent-hint":"",variant:"outlined",disabled:!t.value,suffix:`@${d.value.name}`,rules:[!t.value||u(Z).required]},null,8,["modelValue","label","hint","disabled","suffix","rules"]),a(Xe,{modelValue:d.value.domain_admin,"onUpdate:modelValue":p[2]||(p[2]=g=>d.value.domain_admin=g),disabled:!t.value},null,8,["modelValue","disabled"]),a(J,{modelValue:d.value.domain_admin.with_mailbox,"onUpdate:modelValue":p[3]||(p[3]=g=>d.value.domain_admin.with_mailbox=g),label:u(f)("With a mailbox"),disabled:!t.value,hint:u(f)("Create a mailbox for the administrator."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"]),a(J,{modelValue:d.value.domain_admin.with_aliases,"onUpdate:modelValue":p[4]||(p[4]=g=>d.value.domain_admin.with_aliases=g),label:u(f)("Create aliases"),disabled:!t.value,hint:u(f)("Create standard aliases for the domain."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"])]),_:1},512))}},ya={class:"text-grey"},ba={__name:"DomainCreationForm",emits:["close","created"],setup(r,{emit:_}){const{$gettext:e}=M(),f=te(),D=me(),y=_,t=m({name:"",type:"domain",enabled:!0,enable_dns_checks:!0,enable_dkim:!1,dkim_key_selector:"modoboa",quota:0,default_mailbox_quota:0,domain_admin:{username:"admin",random_password:!1,with_mailbox:!1,with_aliases:!1},transport:{settings:{}}});le(()=>{je.getGlobalApplication("admin").then(n=>{const o=n.data.params;t.value.quota=o.default_domain_quota,t.value.default_mailbox_quota=o.default_mailbox_quota,o.default_domain_message_limit!==null&&(t.value.message_limit=o.default_domain_message_limit)})});const d=m(!1),S=m(),k=m(),p=m(),g=m(),$=m(),x=m(),i={general:k,dns:p,limitations:g,options:$,transport:x},c=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"options",title:e("Options")}],T=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"transport",title:e("Transport")}],j=B(()=>t.value.type==="domain"?c:T),R=B(()=>{const n=[{title:e("General"),items:[{key:e("Name"),value:t.value.name},{key:e("Type"),value:t.value.type},{key:e("Enabled"),value:t.value.enabled,type:"yesno"}]},{title:e("DNS"),items:[{key:e("Enable DNS checks"),value:t.value.enable_dns_checks,type:"yesno"},{key:e("Enable DKIM signing"),value:t.value.enable_dkim,type:"yesno"}]},{title:e("Limitations"),items:[{key:e("Quota"),value:t.value.quota},{key:e("Default mailbox quota"),value:t.value.default_mailbox_quota},{key:e("Message sending limit"),value:t.value.message_limit}]}];if(t.value.enable_dkim&&(n[1].items.push({key:e("DKIM key selector"),value:t.value.dkim_key_selector}),n[1].items.push({key:e("DKIM key length"),value:t.value.dkim_key_length})),t.value.type==="relaydomain"&&t.value.transport.service){const o={title:e("Transport"),items:[{key:e("Service"),value:t.value.transport.service}]};for(const b of x.value.service.settings){const s={key:b.label,value:t.value.transport.settings[`${t.value.transport.service}_${b.name}`]};b.type==="boolean"&&(s.type="yesno"),o.items.push(s)}n.push(o)}else if(t.value.type==="domain"){const o={title:e("Options"),items:[{key:e("Create a domain administrator"),value:d.value,type:"yesno"}]};d.value&&o.items.push({key:e("Administrator name"),value:t.value.domain_admin.username},{name:"random_password",key:e("Random password"),value:t.value.domain_admin.random_password,type:"yesno"},{key:e("With mailbox"),value:t.value.domain_admin.with_mailbox,type:"yesno"},{key:e("Create aliases"),value:t.value.domain_admin.with_aliases,type:"yesno"}),n.push(o)}return n});function z(){y("close")}function W(){navigator.clipboard.writeText(t.value.domain_admin.password).then(()=>{f.displayNotification({msg:e("Password copied to clipboard")})})}function K(n){return i.value[n.name]}function Y(n){return i[n.name].value.vFormRef}async function H(){}function Q(n){d.value=n}async function X(){const n=JSON.parse(JSON.stringify(t.value));d.value||delete n.domain_admin,n.message_limit===""&&delete n.message_limit,n.type==="relaydomain"?x.value.checkSettingTypes(n):delete n.transport;try{const o=await U.createDomain(n);D.push({name:"DomainDetail",params:{id:o.data.pk}}),f.displayNotification({msg:e("Domain created")}),z()}finally{S.value.working=!1}}return(n,o)=>(C(),A(We,{ref_key:"form",ref:S,title:u(e)("New domain"),steps:j.value,"form-getter":K,"get-v-form-ref":Y,"validate-object":H,"summary-sections":R.value,onClose:z,onCreate:X},{"form.general":l(()=>[a(Qe,{ref_key:"general",ref:k,modelValue:t.value,"onUpdate:modelValue":o[0]||(o[0]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.dns":l(()=>[a(He,{ref_key:"dns",ref:p,modelValue:t.value,"onUpdate:modelValue":o[1]||(o[1]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.limitations":l(()=>[a(Ye,{ref_key:"limitations",ref:g,modelValue:t.value,"onUpdate:modelValue":o[2]||(o[2]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.options":l(()=>[a(_a,{ref_key:"options",ref:$,modelValue:t.value,"onUpdate:modelValue":o[3]||(o[3]=b=>t.value=b),class:"ml-4",onCreateAdmin:Q},null,8,["modelValue"])]),"form.transport":l(()=>[a(Ke,{ref_key:"transport",ref:x,modelValue:t.value.transport,"onUpdate:modelValue":o[4]||(o[4]=b=>t.value.transport=b),class:"ml-4"},null,8,["modelValue"])]),"item.random_password":l(({item:b})=>[b.value?(C(),A(P,{key:0,cols:"12",class:"highligth text-white"},{default:l(()=>[a(se,null,{default:l(()=>[a(P,null,{default:l(()=>[v("span",null,V(b.key),1)]),_:2},1024),a(P,{class:"text-right"},{default:l(()=>[w(V(n.$yesno(b.value)),1)]),_:2},1024)]),_:2},1024),a(se,null,{default:l(()=>[a(P,{class:"text-right py-1"},{default:l(()=>[w(V(t.value.domain_admin.password)+" ",1),a(N,{icon:"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:u(e)("Copy to clipboard"),onClick:W},null,8,["title"])]),_:1})]),_:1})]),_:2},1024)):(C(),q(de,{key:1},[a(P,null,{default:l(()=>[v("span",ya,V(b.key),1)]),_:2},1024),a(P,{class:"text-right"},{default:l(()=>[w(V(n.$yesno(b.value)),1)]),_:2},1024)],64))]),_:2},1032,["title","steps","summary-sections"]))}},ga={__name:"DNSStatusChip",props:{status:{type:String,default:"pending"}},setup(r){const _=r,{$gettext:e}=M(),f=B(()=>_.status==="disabled"?e("Disabled"):_.status==="pending"?e("Pending"):_.status==="critical"?e("Problem"):_.status==="ok"?e("Valid"):e("Unknown")),D=B(()=>_.status==="disabled"?"":_.status==="pending"?"info":_.status==="critical"?"error":_.status==="ok"?"success":"warning");return(y,h)=>(C(),A(ee,{color:D.value,size:"small"},{default:l(()=>[w(V(f.value),1)]),_:1},8,["color"]))}},Va=De({bordered:Boolean,color:String,content:[Number,String],dot:Boolean,floating:Boolean,icon:$e,inline:Boolean,label:{type:String,default:"$vuetify.badge"},max:[Number,String],modelValue:{type:Boolean,default:!0},offsetX:[Number,String],offsetY:[Number,String],textColor:String,...sa(),...Ge({location:"top end"}),...ze(),...ia(),...Se(),...Ie({transition:"scale-rotate-transition"})},"VBadge"),ka=Ce()({name:"VBadge",inheritAttrs:!1,props:Va(),setup(r,_){const{backgroundColorClasses:e,backgroundColorStyles:f}=la(()=>r.color),{roundedClasses:D}=Oe(r),{t:y}=we(),{textColorClasses:h,textColorStyles:t}=oa(()=>r.textColor),{themeClasses:d}=he(),{locationStyles:S}=Me(r,!0,k=>(r.floating?r.dot?2:4:r.dot?8:12)+(["top","bottom"].includes(k)?Number(r.offsetY??0):["left","right"].includes(k)?Number(r.offsetX??0):0));return na(()=>{const k=Number(r.content),p=!r.max||isNaN(k)?r.content:k<=Number(r.max)?k:`${r.max}+`,[g,$]=Ae(_.attrs,["aria-atomic","aria-label","aria-live","role","title"]);return a(r.tag,O({class:["v-badge",{"v-badge--bordered":r.bordered,"v-badge--dot":r.dot,"v-badge--floating":r.floating,"v-badge--inline":r.inline},r.class]},$,{style:r.style}),{default:()=>{var x,i;return[v("div",{class:"v-badge__wrapper"},[(i=(x=_.slots).default)==null?void 0:i.call(x),a(Je,{transition:r.transition},{default:()=>{var c,T;return[Ne(v("span",O({class:["v-badge__badge",d.value,e.value,D.value,h.value],style:[f.value,t.value,r.inline?{}:S.value],"aria-atomic":"true","aria-label":y(r.label,k),"aria-live":"polite",role:"status"},g),[r.dot?void 0:_.slots.badge?(T=(c=_.slots).badge)==null?void 0:T.call(c):r.icon?a(_e,{icon:r.icon},null):p]),[[Ue,r.modelValue]])]}})])]}})}),{}}}),xa={class:"v-data-table__td v-data-table-column--no-padding v-data-table-column--align-start"},Ca={key:1},Da={key:1},wa={key:0},ha={class:"text-right"},Aa={class:"grey lighten-4"},Sa=["colspan"],$a=["onClick"],Na={__name:"DomainList",setup(r,{expose:_}){const{$gettext:e}=M(),f=me(),{canSetRole:D}=fe(),y=te(),h=[{title:e("Name"),key:"name"},{title:e("Enabled"),key:"enabled",width:"5%"},{title:e("Aliases"),key:"domainalias_count"},{title:e("DNS status"),key:"dns_global_status",sortable:!1},{title:e("Sending limit"),key:"message_limit"},{title:e("Quota"),key:"allocated_quota_in_percent"}];D.value&&h.push({title:e("Actions"),value:"actions",sortable:!1,align:"end"});const t=m({}),d=m(),S=m([]),k=m(!1),p=m(!1),g=m(null),$=m(null),x=m(!1),i=m(!1),c=m(""),T=m([]),j=m([]);async function R(){t.value={},p.value=!0;try{const n=await U.getDomains();S.value=n.data}finally{p.value=!1}}function z(){i.value=!1,g.value=null,$.value=null}async function W(n){if(await d.value.open(e("Warning"),e("Do you really want to delete the domain %{ domain }?",{domain:n.name}),{color:"error",cancelLabel:e("No"),agreeLabel:e("Yes")})){p.value=!0;try{const b={keep_folder:k.value};await U.deleteDomain(n.pk,b),R(),y.displayNotification({msg:e("Domain deleted")}),k.value=!1}finally{p.value=!1}}}function K(n){f.push({name:"DomainEdit",params:{id:n.pk}})}function Y(n,o){g.value=n,$.value=o,i.value=!0}function H(n,o,b,s){if(b(o)){s(o);return}U.getDomainAliases(n.name).then(F=>{t.value[n.name]=F.data,s(o)})}function Q(n){g.value=n,x.value=!0}function X(n){const o=[{label:e("Administrators"),icon:"mdi-account-supervisor",onClick:Q},{label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:K},{label:e("Delete"),icon:"mdi-delete-outline",onClick:W,color:"red"}];return n.opened_alarms_count&&o.push({label:e("Alarms"),icon:"mdi-bell",color:"red",onClick:()=>f.push({name:"Alarms"})}),o}return le(()=>{R()}),_({reloadDomains:R}),(n,o)=>{const b=Te("router-link");return C(),A(ve,{class:"mt-6"},{default:l(()=>[a(ua,{modelValue:T.value,"onUpdate:modelValue":o[1]||(o[1]=s=>T.value=s),expanded:j.value,headers:h,items:S.value,"item-value":"name",search:c.value,"show-select":"","expand-on-click":"",loading:p.value},{top:l(()=>[a(ye,{color:"white",flat:""},{default:l(()=>[a(oe,{modelValue:c.value,"onUpdate:modelValue":o[0]||(o[0]=s=>c.value=s),"prepend-inner-icon":"mdi-magnify",placeholder:u(e)("Search"),variant:"outlined","single-line":"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),Le(n.$slots,"extraActions",{},void 0,!0),a(ae,{location:"bottom"},{activator:l(({props:s})=>[a(N,O({variant:"flat","append-icon":"mdi-chevron-down"},s,{size:"small"}),{default:l(()=>[w(V(u(e)("Actions")),1)]),_:2},1040)]),default:l(()=>[a(be,{density:"compact"})]),_:1}),a(N,{variant:"text",icon:"mdi-reload",onClick:R})]),_:3})]),item:l(({item:s,internalItem:L,isExpanded:F,toggleExpand:ne,isSelected:Ve,toggleSelect:ke})=>[v("tr",null,[v("td",xa,[a(ta,{value:!Ve(L),onClick:G=>ke(L)},null,8,["value","onClick"])]),v("td",null,[a(b,{to:{name:"DomainDetail",params:{id:s.pk}}},{default:l(()=>[w(V(s.name),1)]),_:2},1032,["to"]),s.type==="relaydomain"?(C(),A(ee,{key:0,size:"small",color:"primary",class:"ml-2"},{default:l(()=>[w(V(u(e)("Relay")),1)]),_:1})):E("",!0)]),v("td",null,[a(_e,{color:s.enabled?"success":"error",icon:s.enabled?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),v("td",null,[w(V(s.domainalias_count)+" aliases ",1),s.domainalias_count?(C(),A(N,{key:0,variant:"text",icon:F(L)?"mdi-chevron-up":"mdi-chevron-down",onClick:G=>H(s,L,F,ne)},null,8,["icon","onClick"])):E("",!0)]),v("td",null,[a(ga,{status:s.dns_global_status},null,8,["status"])]),v("td",null,[s.message_limit?(C(),A(ie,{key:0,color:s.sent_messages_in_percent<80?"primary":"warning","model-value":s.sent_messages_in_percent},null,8,["color","model-value"])):(C(),q("span",Ca,V(u(e)("Unlimited")),1))]),v("td",null,[s.quota!=="0"?(C(),A(ie,{key:0,color:s.allocated_quota_in_percent<80?"primary":"warning","model-value":s.allocated_quota_in_percent},null,8,["color","model-value"])):(C(),q("span",Da,V(u(e)("Unlimited")),1))]),u(D)?(C(),q("td",wa,[v("div",ha,[a(ae,{"offset-y":""},{activator:l(({props:G})=>[s.opened_alarms_count?(C(),A(ka,{key:0,bordered:"",color:"error",icon:"mdi-bell",overlap:""},{default:l(()=>[a(N,O({icon:"mdi-dots-horizontal",variant:"text"},G),null,16)]),_:2},1024)):(C(),A(N,O({key:1,icon:"mdi-dots-horizontal",variant:"text"},G),null,16))]),default:l(()=>[a(aa,{items:X(s),obj:s},null,8,["items","obj"])]),_:2},1024)])])):E("",!0)])]),"expanded-row":l(({item:s,columns:L})=>[v("tr",Aa,[v("td",{colspan:L.length},[(C(!0),q(de,null,Fe(t.value[s.name],F=>(C(),q("span",{key:F.name,class:"mr-4"},[v("a",{href:"#",class:"mr-2",onClick:ne=>Y(s,F)},V(F.name),9,$a),a(ee,{variant:"flat",size:"x-small",color:"success"},{default:l(()=>o[6]||(o[6]=[w("DNS OK")])),_:1,__:[6]})]))),128))],8,Sa)])]),_:3},8,["modelValue","expanded","items","search","loading"]),a(ea,{ref_key:"confirm",ref:d},{default:l(()=>[a(ma,{modelValue:k.value,"onUpdate:modelValue":o[2]||(o[2]=s=>k.value=s),label:u(e)("Do not delete domain folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),a(I,{modelValue:i.value,"onUpdate:modelValue":o[3]||(o[3]=s=>i.value=s),persistent:"","max-width":"800px"},{default:l(()=>[a(ge,{"domain-alias":$.value,onClose:z},null,8,["domain-alias"])]),_:1},8,["modelValue"]),a(I,{modelValue:x.value,"onUpdate:modelValue":o[5]||(o[5]=s=>x.value=s),persistent:"","max-width":"800px"},{default:l(()=>[a(Ze,{domain:g.value,"dialog-mode":"",onClose:o[4]||(o[4]=s=>x.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"])]),_:3})}}},Ua=ce(Na,[["__scopeId","data-v-8ed27599"]]),Fa={__name:"DomainsView",setup(r){const _=m(),e=m(!1),f=m(!1),D=m(!1),{$gettext:y}=M(),{canAddDomain:h}=fe(),t=m(),{importContent:d,exportContent:S}=ca();function k(){U.exportAll().then(x=>{S(x.data,"domains",y)})}function p(x){d(U,x,t,y)}const g=()=>{e.value=!1,_.value.reloadDomains()},$=()=>{D.value=!1,_.value.reloadDomains()};return(x,i)=>(C(),q("div",null,[a(ye,{flat:""},{default:l(()=>[a(ra,null,{default:l(()=>[w(V(u(y)("Domains")),1)]),_:1})]),_:1}),a(u(Ua),{ref_key:"domainList",ref:_},{extraActions:l(()=>[u(h)?(C(),A(ae,{key:0,"offset-y":""},{activator:l(({props:c})=>[a(N,O({color:"primary",variant:"outlined"},c,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:l(()=>[w(V(u(y)("New")),1)]),_:2},1040)]),default:l(()=>[a(be,{density:"compact"},{default:l(()=>[a(re,{onClick:i[0]||(i[0]=c=>f.value=!0)},{default:l(()=>[a(ue,null,{default:l(()=>[w(V(u(y)("Domain")),1)]),_:1})]),_:1}),a(re,{onClick:i[1]||(i[1]=c=>e.value=!0)},{default:l(()=>[a(ue,null,{default:l(()=>[w(V(u(y)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1})):E("",!0),u(h)?(C(),A(N,{key:1,class:"mr-2",title:u(y)("Import domains and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:i[2]||(i[2]=c=>D.value=!0)},null,8,["title"])):E("",!0),a(N,{class:"mr-2",title:u(y)("Export domains and aliases to CSV"),variant:"flat",icon:"mdi-file-export-outline",onClick:k},null,8,["title"])]),_:1},512),a(I,{modelValue:f.value,"onUpdate:modelValue":i[4]||(i[4]=c=>f.value=c),fullscreen:"",scrollable:"","z-index":"10"},{default:l(()=>[a(u(ba),{onClose:i[3]||(i[3]=c=>f.value=!1)})]),_:1},8,["modelValue"]),a(I,{modelValue:e.value,"onUpdate:modelValue":i[6]||(i[6]=c=>e.value=c),persistent:"","max-width":"800px"},{default:l(()=>[a(u(ge),{onClose:i[5]||(i[5]=c=>g())})]),_:1},8,["modelValue"]),a(I,{modelValue:D.value,"onUpdate:modelValue":i[7]||(i[7]=c=>D.value=c),persistent:"","max-width":"800px"},{default:l(()=>[a(u(da),{ref_key:"importForm",ref:t,title:u(y)("Import domains"),onSubmit:p,onClose:$},{help:l(()=>i[8]||(i[8]=[v("ul",null,[v("li",null,[v("em",null,"domain; name; quota; default mailbox quota; enabled")]),v("li",null,[v("em",null,"domainalias; name; targeted domain; enabled")]),v("li",null,[v("em",null,"relaydomain; name; target host; target port; service; enabled; verify recipients")])],-1)])),_:1},8,["title"])]),_:1},8,["modelValue"])]))}},Ct=ce(Fa,[["__scopeId","data-v-1068f77b"]]);export{Ct as default};
@@ -1 +1 @@
1
- import{i as b,k as B,h as p,g as n,d as F,a4 as $,a5 as z,a6 as A,m as g,o as d,a as y,q as T,B as U,a7 as N,w,F as S,G as R,c as W,J as K,l as O,t as P}from"./index-DV9Li2cg.js";import{V as j}from"./VTextField-CLwRV0Cb.js";import{a as q,b as G,V as J}from"./forwardRefs-Cpc3YYl6.js";import{u as H}from"./domains.store-ChZgLcqP.js";const Q={__name:"EmailField",props:{modelValue:{type:String,default:""},allowAdd:{type:Boolean,default:!1},role:{type:String,default:b.USER},errorMsg:{type:Array,default:()=>[]}},emits:["domain-selected","update:model-value"],setup(x,{emit:E}){const h=H(),o=x,V=E,r=p({get(){return o.modelValue},set(e){v.value=[],e.indexOf("@")!==-1?(u.value=e.split("@")[1],o.allowAdd?a.value=s.value.length>0:a.value=!0):a.value=!1,V("update:model-value",e)}}),s=p(()=>Object.values(h.domains).filter(e=>e.name.startsWith(u.value))),v=p({get(){return[...D.value,...o.errorMsg]},set(e){D.value=e}}),u=n(""),l=n(0),a=n(!1),k=n(500),_=n(),D=n([]);function C(e){const t=e.keyCode;t===40||t===34?(a.value?M():(u.value="",a.value=!0),e.preventDefault()):t===38||t===33?(a.value?I():(u.value="",a.value=!0),e.preventDefault()):t===13||t===9?(s.value.length>0?c(s.value[l.value]):o.allowAdd&&c(),e.preventDefault()):t===27&&s.value.length>0&&(a.value=!1,e.preventDefault())}function M(){l.value>=s.value.length-1?l.value=0:l.value+=1}function I(){l.value<=0?l.value=s.value.length-1:l.value-=1}function c(e){e!==void 0&&(r.value=r.value.split("@")[0]+"@"+e.name),a.value=!1,V("domain-selected")}function m(){k.value=_.value.$el.clientWidth}return F(()=>{h.getDomains(),window.addEventListener("resize",m)}),$(()=>{window.removeEventListener("resize",m)}),z(()=>{A(()=>{m()})}),(e,t)=>(d(),g(S,null,[y(j,U({ref_key:"inputRef",ref:_,modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=i=>r.value=i),variant:"outlined"},e.$attrs,{"error-messages":v.value,error:v.value.length>0,density:"compact",autocomplete:"new-password",onKeydown:C}),null,16,["modelValue","error-messages","error"]),a.value?(d(),g("div",{key:0,class:"menu",style:N(`width: ${k.value}px;`)},[y(J,{class:"list"},{default:w(()=>[(d(!0),g(S,null,R(s.value,(i,f)=>(d(),W(q,{key:f,class:K(l.value===f?"bg-primary-lighten-1":""),onClick:L=>c(i),onMouseenter:L=>l.value=f},{default:w(()=>[y(G,null,{default:w(()=>[O(P(i.name),1)]),_:2},1024)]),_:2},1032,["class","onClick","onMouseenter"]))),128))]),_:1})],4)):T("",!0)],64))}},ae=B(Q,[["__scopeId","data-v-bed4b698"]]);export{ae as E};
1
+ import{i as b,k as B,h as p,g as n,d as F,a3 as $,a4 as z,a5 as A,m as g,o as d,a as y,n as T,B as U,a6 as N,w,F as S,G as R,c as W,J as K,l as O,t as P}from"./index-I1VDlN4g.js";import{V as j}from"./VTextField-BdyvgvkG.js";import{a as G,b as J,V as q}from"./forwardRefs-Dvjn_Xq4.js";import{u as H}from"./domains.store-DTE-V7Y1.js";const Q={__name:"EmailField",props:{modelValue:{type:String,default:""},allowAdd:{type:Boolean,default:!1},role:{type:String,default:b.USER},errorMsg:{type:Array,default:()=>[]}},emits:["domain-selected","update:model-value"],setup(x,{emit:E}){const h=H(),o=x,V=E,r=p({get(){return o.modelValue},set(e){v.value=[],e.indexOf("@")!==-1?(u.value=e.split("@")[1],o.allowAdd?a.value=s.value.length>0:a.value=!0):a.value=!1,V("update:model-value",e)}}),s=p(()=>Object.values(h.domains).filter(e=>e.name.startsWith(u.value))),v=p({get(){return[...D.value,...o.errorMsg]},set(e){D.value=e}}),u=n(""),l=n(0),a=n(!1),k=n(500),_=n(),D=n([]);function C(e){const t=e.keyCode;t===40||t===34?(a.value?M():(u.value="",a.value=!0),e.preventDefault()):t===38||t===33?(a.value?I():(u.value="",a.value=!0),e.preventDefault()):t===13||t===9?(s.value.length>0?c(s.value[l.value]):o.allowAdd&&c(),e.preventDefault()):t===27&&s.value.length>0&&(a.value=!1,e.preventDefault())}function M(){l.value>=s.value.length-1?l.value=0:l.value+=1}function I(){l.value<=0?l.value=s.value.length-1:l.value-=1}function c(e){e!==void 0&&(r.value=r.value.split("@")[0]+"@"+e.name),a.value=!1,V("domain-selected")}function m(){k.value=_.value.$el.clientWidth}return F(()=>{h.getDomains(),window.addEventListener("resize",m)}),$(()=>{window.removeEventListener("resize",m)}),z(()=>{A(()=>{m()})}),(e,t)=>(d(),g(S,null,[y(j,U({ref_key:"inputRef",ref:_,modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=i=>r.value=i),variant:"outlined"},e.$attrs,{"error-messages":v.value,error:v.value.length>0,density:"compact",autocomplete:"new-password",onKeydown:C}),null,16,["modelValue","error-messages","error"]),a.value?(d(),g("div",{key:0,class:"menu",style:N(`width: ${k.value}px;`)},[y(q,{class:"list"},{default:w(()=>[(d(!0),g(S,null,R(s.value,(i,f)=>(d(),W(G,{key:f,class:K(l.value===f?"bg-primary-lighten-1":""),onClick:L=>c(i),onMouseenter:L=>l.value=f},{default:w(()=>[y(J,null,{default:w(()=>[O(P(i.name),1)]),_:2},1024)]),_:2},1032,["class","onClick","onMouseenter"]))),128))]),_:1})],4)):T("",!0)],64))}},ae=B(Q,[["__scopeId","data-v-bed4b698"]]);export{ae as E};