modoboa 2.4.5__py3-none-any.whl → 2.4.6__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 (171) hide show
  1. modoboa/core/api/v2/serializers.py +1 -1
  2. modoboa/frontend_dist/assets/AccountAliasForm-kM_uu76m.js +1 -0
  3. modoboa/frontend_dist/assets/AccountEditView-BdP-Lrlr.js +1 -0
  4. modoboa/frontend_dist/assets/AccountLayout-Bw0etAuB.js +1 -0
  5. modoboa/frontend_dist/assets/{AccountPasswordSubForm-CcDzcjPb.js → AccountPasswordSubForm-D7zaiyOj.js} +1 -1
  6. modoboa/frontend_dist/assets/AccountView-Du-GTL6A.js +1 -0
  7. modoboa/frontend_dist/assets/{AddressBook-B6Sa6mjt.js → AddressBook-Bsb173uq.js} +1 -1
  8. modoboa/frontend_dist/assets/AdminLayout-Bkpt_-A8.js +1 -0
  9. modoboa/frontend_dist/assets/AlarmsView-DSCq8RAc.js +1 -0
  10. modoboa/frontend_dist/assets/AliasEditView-QWMq-R1h.js +1 -0
  11. modoboa/frontend_dist/assets/AliasRecipientForm-rO7zW0eC.js +1 -0
  12. modoboa/frontend_dist/assets/AliasView-CZni2HPw.js +1 -0
  13. modoboa/frontend_dist/assets/AuditTrailView-DMqo60nl.js +1 -0
  14. modoboa/frontend_dist/assets/{CalendarView-yM5HGvWM.js → CalendarView-C32PuIes.js} +1 -1
  15. modoboa/frontend_dist/assets/ChoiceField-3mhgf6ob.js +1 -0
  16. modoboa/frontend_dist/assets/{ComposeEmailForm-DLCkPGvB.js → ComposeEmailForm-DkZQzxAe.js} +1 -1
  17. modoboa/frontend_dist/assets/ComposeEmailView-BNjj7sIK.js +1 -0
  18. modoboa/frontend_dist/assets/ConfirmDialog-q002W_T5.js +1 -0
  19. modoboa/frontend_dist/assets/ConnectedLayout-CuQwWdiY.js +1 -0
  20. modoboa/frontend_dist/assets/CreationForm-i9httQC1.js +1 -0
  21. modoboa/frontend_dist/assets/DashboardView-q7Q7yMK2.js +1 -0
  22. modoboa/frontend_dist/assets/{DomainAdminList-C3iwNb43.js → DomainAdminList-eJFjURqQ.js} +1 -1
  23. modoboa/frontend_dist/assets/DomainEditView-Dry1PQg1.js +1 -0
  24. modoboa/frontend_dist/assets/{DomainTransportForm-Blk4sH4Y.js → DomainTransportForm-Brvt1I8k.js} +1 -1
  25. modoboa/frontend_dist/assets/DomainView-BrQ0GZ67.js +5 -0
  26. modoboa/frontend_dist/assets/DomainsView-yBu065sw.js +1 -0
  27. modoboa/frontend_dist/assets/EmailField-CK1ZbR3C.js +1 -0
  28. modoboa/frontend_dist/assets/{EmailView-Dfxt2DGx.js → EmailView-BTfAqAzl.js} +1 -1
  29. modoboa/frontend_dist/assets/EmptyLayout-CZDgHz_u.js +1 -0
  30. modoboa/frontend_dist/assets/{FiltersView-meSoOehe.js → FiltersView-B7hCW2rz.js} +1 -1
  31. modoboa/frontend_dist/assets/ForwardEmailView-AWMrhg32.js +1 -0
  32. modoboa/frontend_dist/assets/{HtmlEditor-B_VCbd5z.js → HtmlEditor-DfoGrUHw.js} +1 -1
  33. modoboa/frontend_dist/assets/IdentitiesView-DUILBzSE.js +1 -0
  34. modoboa/frontend_dist/assets/InformationView-BidXYqOD.js +1 -0
  35. modoboa/frontend_dist/assets/LoadingData-BT9tD67O.js +1 -0
  36. modoboa/frontend_dist/assets/{LoginCallbackView-CVMpLe0f.js → LoginCallbackView-R1BJ5xBt.js} +1 -1
  37. modoboa/frontend_dist/assets/{LoginView-CUyc88IC.js → LoginView-GA-9tjIM.js} +1 -1
  38. modoboa/frontend_dist/assets/MailboxView-BUaJT0kp.js +1 -0
  39. modoboa/frontend_dist/assets/MenuItems-CaGz5Av4.js +1 -0
  40. modoboa/frontend_dist/assets/MessagesView-L8mRbK29.js +1 -0
  41. modoboa/frontend_dist/assets/MigrationsView-D46w_hKc.js +1 -0
  42. modoboa/frontend_dist/assets/ParametersForm-CYThYAHD.js +1 -0
  43. modoboa/frontend_dist/assets/ParametersView-D337Sezo.js +1 -0
  44. modoboa/frontend_dist/assets/ParametersView-DBCbbCEi.js +1 -0
  45. modoboa/frontend_dist/assets/{ProviderEditView-CIYmWpgI.js → ProviderEditView-BECcPRk7.js} +1 -1
  46. modoboa/frontend_dist/assets/ProviderGeneralForm-DwCmFqXI.js +1 -0
  47. modoboa/frontend_dist/assets/ProvidersView-B4g2wVbq.js +1 -0
  48. modoboa/frontend_dist/assets/ReplyEmailView-IwPYuVp5.js +1 -0
  49. modoboa/frontend_dist/assets/ResourcesForm-k0MAKh89.js +1 -0
  50. modoboa/frontend_dist/assets/{SettingsView-DeNxODAJ.js → SettingsView-Sp1ExY72.js} +2 -2
  51. modoboa/frontend_dist/assets/StatisticsView-CjYZKBmP.js +1 -0
  52. modoboa/frontend_dist/assets/TimeSerieChart-CjiX490n.js +1 -0
  53. modoboa/frontend_dist/assets/UserLayout-BQ7D5b4m.js +1 -0
  54. modoboa/frontend_dist/assets/{VAlert-DMLG8wNi.js → VAlert-BiAap6Bx.js} +1 -1
  55. modoboa/frontend_dist/assets/VApp-tsfSFSQl.js +1 -0
  56. modoboa/frontend_dist/assets/{VAutocomplete-QADGK4Mr.js → VAutocomplete-CfnbXRi6.js} +1 -1
  57. modoboa/frontend_dist/assets/{VAvatar-BLlAVJo2.js → VAvatar-x_79C0tA.js} +1 -1
  58. modoboa/frontend_dist/assets/{VCard-CgG7Sw1Z.js → VCard-DRptUN8Y.js} +1 -1
  59. modoboa/frontend_dist/assets/VCheckbox-DTbWq72R.js +1 -0
  60. modoboa/frontend_dist/assets/VCheckboxBtn-xrhfoOlo.js +1 -0
  61. modoboa/frontend_dist/assets/{VChip-DtLoN5pb.js → VChip-Def9BYoN.js} +1 -1
  62. modoboa/frontend_dist/assets/VColorPicker-D7UlInpB.js +1 -0
  63. modoboa/frontend_dist/assets/{VContainer-CWsXUJRX.js → VContainer-CC8lqRXa.js} +1 -1
  64. modoboa/frontend_dist/assets/VDataTable-CYPG0MtF.js +1 -0
  65. modoboa/frontend_dist/assets/{VDataTableServer-D_lPUXtC.js → VDataTableServer-DyIOcZiN.js} +1 -1
  66. modoboa/frontend_dist/assets/VDataTableVirtual-B6iCEfal.js +1 -0
  67. modoboa/frontend_dist/assets/VDialog-DzctVbsK.js +1 -0
  68. modoboa/frontend_dist/assets/{VExpansionPanels--ynjpeWA.js → VExpansionPanels-DpJzLCB-.js} +1 -1
  69. modoboa/frontend_dist/assets/{VFileInput-B3-nE2RJ.js → VFileInput-C7DE4B9B.js} +1 -1
  70. modoboa/frontend_dist/assets/VForm-CXf-xKYz.js +1 -0
  71. modoboa/frontend_dist/assets/{VMenu-ds-uYle9.js → VMenu-DTm7W1Hp.js} +1 -1
  72. modoboa/frontend_dist/assets/{VPicker-CNDT8tbx.js → VPicker-F4Rx1F-m.js} +1 -1
  73. modoboa/frontend_dist/assets/{VProgressCircular--49P1TOW.js → VProgressCircular-ubzZW5PC.js} +1 -1
  74. modoboa/frontend_dist/assets/VRadioGroup-Bb36EvlG.js +1 -0
  75. modoboa/frontend_dist/assets/{VRow-CnohEaAX.js → VRow-B-csPNw7.js} +1 -1
  76. modoboa/frontend_dist/assets/{VSelect-BiP6crf0.js → VSelect-tV4GZAtn.js} +1 -1
  77. modoboa/frontend_dist/assets/VSelectionControl-Bdgm37Tl.js +1 -0
  78. modoboa/frontend_dist/assets/VSheet-BV83IblO.js +1 -0
  79. modoboa/frontend_dist/assets/VSpacer-BcQnH0oL.js +1 -0
  80. modoboa/frontend_dist/assets/{VSwitch-PAZTCa-8.js → VSwitch-HiyBjUWI.js} +1 -1
  81. modoboa/frontend_dist/assets/{VTable-Dtu3KidF.js → VTable-B-HE2nmK.js} +1 -1
  82. modoboa/frontend_dist/assets/VTabs-DCb8kj6G.js +1 -0
  83. modoboa/frontend_dist/assets/{VTextField-4NZ7IznA.js → VTextField-CWm47OUI.js} +1 -1
  84. modoboa/frontend_dist/assets/{VTextarea-BXNl7Mt9.js → VTextarea-Bry3a299.js} +1 -1
  85. modoboa/frontend_dist/assets/{VToolbar-J3yNZ_TP.js → VToolbar-Cd2iSn8H.js} +1 -1
  86. modoboa/frontend_dist/assets/{VWindowItem-D0hjETv2.js → VWindowItem-pE5PWxHf.js} +1 -1
  87. modoboa/frontend_dist/assets/WebmailLayout-hFexxk4W.js +1 -0
  88. modoboa/frontend_dist/assets/{admin-B-kSn9RO.js → admin-CjK02gmr.js} +1 -1
  89. modoboa/frontend_dist/assets/{aliases-DoKIh-Gw.js → aliases-CTtmxHck.js} +1 -1
  90. modoboa/frontend_dist/assets/{contacts-BVgP-Nvk.js → contacts-HeZ9it3d.js} +1 -1
  91. modoboa/frontend_dist/assets/{domains-BKPjvqA_.js → domains-HueJ9pRR.js} +1 -1
  92. modoboa/frontend_dist/assets/{domains.store-Ck9BRSQQ.js → domains.store-BAoaJY6i.js} +1 -1
  93. modoboa/frontend_dist/assets/{filter-C-VZW-D6.js → filter-DaBUD6Rp.js} +1 -1
  94. modoboa/frontend_dist/assets/{forwardRefs-DulMu961.js → forwardRefs-BSESyuUp.js} +1 -1
  95. modoboa/frontend_dist/assets/{global.store-DKpKwgQU.js → global.store-C4iiNxy1.js} +1 -1
  96. modoboa/frontend_dist/assets/{importExport-DpEAqdAr.js → importExport-fHtEeUon.js} +1 -1
  97. modoboa/frontend_dist/assets/{index-BA5nENc7.js → index-CTxlYqj4.js} +25 -25
  98. modoboa/frontend_dist/assets/{index-DSETu0oI.js → index-a9uUi1ey.js} +1 -1
  99. modoboa/frontend_dist/assets/layout-BFr6o7er.js +1 -0
  100. modoboa/frontend_dist/assets/{layout.store-BpB_lwEX.js → layout.store-3tdRwdnE.js} +1 -1
  101. modoboa/frontend_dist/assets/{logs-DYj_x8NI.js → logs-B92gHEZQ.js} +1 -1
  102. modoboa/frontend_dist/assets/{parameters-D7GvY13G.js → parameters-1TAbI5b7.js} +1 -1
  103. modoboa/frontend_dist/assets/{parameters.store-OjyEFwc3.js → parameters.store-BXTaWfO7.js} +1 -1
  104. modoboa/frontend_dist/assets/{permissions-DKbaVxSS.js → permissions-CbdfpdU1.js} +1 -1
  105. modoboa/frontend_dist/assets/{ssrBoot-CTcujE2n.js → ssrBoot-DGgZQEVC.js} +1 -1
  106. modoboa/frontend_dist/assets/{tag-BQLfwzbO.js → tag-Dx3OexMp.js} +1 -1
  107. modoboa/frontend_dist/assets/{webmail-Cgnpe0EQ.js → webmail-CGWB-wMk.js} +1 -1
  108. modoboa/frontend_dist/config.json +1 -1
  109. modoboa/frontend_dist/index.html +1 -1
  110. {modoboa-2.4.5.dist-info → modoboa-2.4.6.dist-info}/METADATA +1 -1
  111. {modoboa-2.4.5.dist-info → modoboa-2.4.6.dist-info}/RECORD +116 -117
  112. modoboa/frontend_dist/assets/AccountAliasForm-Dnpp9_-z.js +0 -1
  113. modoboa/frontend_dist/assets/AccountEditView-BQaSlpsL.js +0 -1
  114. modoboa/frontend_dist/assets/AccountLayout-DG_Co_SZ.js +0 -1
  115. modoboa/frontend_dist/assets/AccountView-BoEGwq9z.js +0 -1
  116. modoboa/frontend_dist/assets/AdminLayout-DgwlSRlC.js +0 -1
  117. modoboa/frontend_dist/assets/AlarmsView-DB_IXF_s.js +0 -1
  118. modoboa/frontend_dist/assets/AliasEditView-Drs6U8vs.js +0 -1
  119. modoboa/frontend_dist/assets/AliasRecipientForm-hHFnWu8k.js +0 -1
  120. modoboa/frontend_dist/assets/AliasView-SUMxaGUe.js +0 -1
  121. modoboa/frontend_dist/assets/AuditTrailView-cSABZ3TO.js +0 -1
  122. modoboa/frontend_dist/assets/ChoiceField-BRXxbiWf.js +0 -1
  123. modoboa/frontend_dist/assets/ComposeEmailView-0l455MSI.js +0 -1
  124. modoboa/frontend_dist/assets/ConfirmDialog-C_e6hlR9.js +0 -1
  125. modoboa/frontend_dist/assets/ConnectedLayout-DZLdEDMc.js +0 -1
  126. modoboa/frontend_dist/assets/CreationForm-CM6XIMTJ.js +0 -1
  127. modoboa/frontend_dist/assets/DashboardView-EbwsBsvl.js +0 -1
  128. modoboa/frontend_dist/assets/DomainEditView-DChdOeWs.js +0 -1
  129. modoboa/frontend_dist/assets/DomainView-C_rpTRuB.js +0 -5
  130. modoboa/frontend_dist/assets/DomainsView-CSq9Qqa2.js +0 -1
  131. modoboa/frontend_dist/assets/EmailField-D44CsIWb.js +0 -1
  132. modoboa/frontend_dist/assets/EmptyLayout-kuBMnfgD.js +0 -1
  133. modoboa/frontend_dist/assets/ForwardEmailView-DJfvMH7g.js +0 -1
  134. modoboa/frontend_dist/assets/IdentitiesView-SddVlIrY.js +0 -1
  135. modoboa/frontend_dist/assets/InformationView-D_JM2475.js +0 -1
  136. modoboa/frontend_dist/assets/LoadingData-AOVv_iWB.js +0 -1
  137. modoboa/frontend_dist/assets/MailboxView-D3q8yP3G.js +0 -1
  138. modoboa/frontend_dist/assets/MenuItems-Cuf8-V0W.js +0 -1
  139. modoboa/frontend_dist/assets/MessagesView-CBspcRFp.js +0 -1
  140. modoboa/frontend_dist/assets/MigrationsView-C4_XQZW3.js +0 -1
  141. modoboa/frontend_dist/assets/ParametersForm-CMSQqJgF.js +0 -1
  142. modoboa/frontend_dist/assets/ParametersView-CumtciiZ.js +0 -1
  143. modoboa/frontend_dist/assets/ParametersView-DJWYKIfG.js +0 -1
  144. modoboa/frontend_dist/assets/ProviderGeneralForm-B3DP3kaS.js +0 -1
  145. modoboa/frontend_dist/assets/ProvidersView-Dob13upM.js +0 -1
  146. modoboa/frontend_dist/assets/ReplyEmailView-BYUjcU54.js +0 -1
  147. modoboa/frontend_dist/assets/ResourcesForm-BsBHUrsM.js +0 -1
  148. modoboa/frontend_dist/assets/StatisticsView-5VaSkD9s.js +0 -1
  149. modoboa/frontend_dist/assets/TimeSerieChart-BdFmjRbO.js +0 -1
  150. modoboa/frontend_dist/assets/UserLayout-CF0xC6tf.js +0 -1
  151. modoboa/frontend_dist/assets/VApp-BkjZPyh4.js +0 -1
  152. modoboa/frontend_dist/assets/VCheckbox-DPPPkFg8.js +0 -1
  153. modoboa/frontend_dist/assets/VCheckboxBtn-Bxy-LfII.js +0 -1
  154. modoboa/frontend_dist/assets/VColorPicker-Djl1hnN2.js +0 -1
  155. modoboa/frontend_dist/assets/VDataTable-C75c5ugx.js +0 -1
  156. modoboa/frontend_dist/assets/VDataTableVirtual-BR3-3ZhB.js +0 -1
  157. modoboa/frontend_dist/assets/VDialog-BZ4gm6K7.js +0 -1
  158. modoboa/frontend_dist/assets/VForm-B967suxO.js +0 -1
  159. modoboa/frontend_dist/assets/VRadioGroup-Bq0AGvQn.js +0 -1
  160. modoboa/frontend_dist/assets/VSelectionControl-CCdZN5dG.js +0 -1
  161. modoboa/frontend_dist/assets/VSheet-CajYOL8i.js +0 -1
  162. modoboa/frontend_dist/assets/VSpacer-DL_DqXyB.js +0 -1
  163. modoboa/frontend_dist/assets/VTabs-CDeotHqK.js +0 -1
  164. modoboa/frontend_dist/assets/WebmailLayout-BEGfzupj.js +0 -1
  165. modoboa/frontend_dist/assets/_plugin-vue_export-helper-DlAUqK2U.js +0 -1
  166. modoboa/frontend_dist/assets/layout-DYUfCptT.js +0 -1
  167. {modoboa-2.4.5.data → modoboa-2.4.6.data}/scripts/modoboa-admin.py +0 -0
  168. {modoboa-2.4.5.dist-info → modoboa-2.4.6.dist-info}/WHEEL +0 -0
  169. {modoboa-2.4.5.dist-info → modoboa-2.4.6.dist-info}/entry_points.txt +0 -0
  170. {modoboa-2.4.5.dist-info → modoboa-2.4.6.dist-info}/licenses/LICENSE +0 -0
  171. {modoboa-2.4.5.dist-info → modoboa-2.4.6.dist-info}/top_level.txt +0 -0
@@ -0,0 +1 @@
1
+ import{j as k,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-CTxlYqj4.js";import{d as N}from"./VAvatar-x_79C0tA.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,C)=>(a(),o("div",{key:C,class:m(["choice rounded pa-10 mr-4 text-center flex-grow-0 mb-4",{"choice--disabled":s.disabled,"choice--selected":!s.disabled&&c.value===t.value}]),onClick: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))}},A=k(S,[["__scopeId","data-v-762c41e2"]]);export{A as C};
@@ -1 +1 @@
1
- import{g as b,c as ee,o as q,w as v,a,k as _e,t as K,e as w,f as h,l as re,F as le,E as Ne,P as he,Q as je,K as G,bM as Le,C as He,s as Oe,v as Ke,x as Ge,aa as oe,S as ye,a9 as Qe,h as z,ab as We,at as be,a4 as xe,aq as Xe,A as Z,T as Je,bN as Ye,ar as Ce,au as Ze,av as el,a5 as ll,H as al,b as tl,m as ol,u as nl,L as ul,q as sl,p as ie}from"./index-BA5nENc7.js";import{d as il}from"./index-DSETu0oI.js";import{a as j}from"./webmail-Cgnpe0EQ.js";import{V as Ae,r as ve}from"./VForm-B967suxO.js";import{c as rl,V as dl,a as cl,b as ml}from"./VCard-CgG7Sw1Z.js";import{V as vl}from"./VFileInput-B3-nE2RJ.js";import{V as D,X as ke,m as fl,d as we,f as pl,h as gl}from"./VAvatar-BLlAVJo2.js";import{V as Vl}from"./VTable-Dtu3KidF.js";import{V as hl}from"./VSpacer-DL_DqXyB.js";import{_ as yl}from"./HtmlEditor-B_VCbd5z.js";import{V as bl}from"./VTextarea-BXNl7Mt9.js";import{c as xl}from"./contacts-BVgP-Nvk.js";import{V as Cl}from"./VToolbar-J3yNZ_TP.js";import{V as ne,a as I}from"./VRow-CnohEaAX.js";import{b as kl,c as wl,d as Sl,V as _l}from"./VSelect-BiP6crf0.js";import{f as Al,V as fe,g as El}from"./VTextField-4NZ7IznA.js";import{a as Fl}from"./VProgressCircular--49P1TOW.js";import{u as Dl,m as Ul,h as Ml}from"./filter-C-VZW-D6.js";import{d as Tl,t as ue,f as Il,V as Rl,a as Se}from"./forwardRefs-DulMu961.js";import{V as Pl}from"./VMenu-ds-uYle9.js";import{V as Bl}from"./VCheckboxBtn-Bxy-LfII.js";import{V as $l}from"./VChip-DtLoN5pb.js";import{u as ql}from"./tag-BQLfwzbO.js";import{V as zl}from"./VDialog-BZ4gm6K7.js";const Nl={class:"w-100 d-flex justify-center"},jl={__name:"AttachmentsDialog",props:{sessionUid:{type:String,default:null}},emits:["close"],setup(l,{emit:L}){const V=l,s=L,x=b([]),g=b(),d=b(),S=b(!1),U=()=>{s("close")},_=async()=>{const{valid:o}=await d.value.validate();if(!o)return;const A=new FormData;A.append("attachment",g.value),S.value=!0;try{const u=await j.uploadAttachment(V.sessionUid,A);x.value.push(u.data),d.value.reset()}finally{S.value=!1}},M=async o=>{await j.removeAttachment(V.sessionUid,o.tmpname);const A=x.value.findIndex(u=>u.tmpname===o.tmpname);x.value.splice(A,1)};return j.getComposeSession(V.sessionUid).then(o=>{x.value=o.data.attachments}),(o,A)=>(q(),ee(ml,null,{default:v(()=>[a(rl,null,{default:v(()=>[_e(K(o.$gettext("Attachments")),1)]),_:1}),a(dl,null,{default:v(()=>[a(Ae,{ref_key:"formRef",ref:d},{default:v(()=>[a(vl,{modelValue:g.value,"onUpdate:modelValue":A[0]||(A[0]=u=>g.value=u),density:"compact",variant:"outlined",rules:[h(ve).required]},null,8,["modelValue","rules"]),w("div",Nl,[a(D,{color:"primary",variant:"tonal",text:o.$gettext("Attach"),onClick:_},null,8,["text"])])]),_:1},512),a(Vl,{class:"mt-4 border-sm"},{default:v(()=>[w("tbody",null,[(q(!0),re(le,null,Ne(x.value,u=>(q(),re("tr",{key:u.fname},[w("td",null,K(u.fname),1),w("td",null,[a(D,{icon:"mdi-trash-can",color:"error",size:"small",variant:"text",onClick:ae=>M(u)},null,8,["onClick"])])]))),128))])]),_:1})]),_:1}),a(cl,null,{default:v(()=>[a(hl),a(D,{text:o.$gettext("Close"),variant:"flat",onClick:U},null,8,["text"])]),_:1})]),_:1}))}},Ll={class:"mt-8"},Hl={__name:"BodyEditor",props:he({editorMode:{type:String,default:null}},{modelValue:{},modelModifiers:{}}),emits:he(["onToggleHtmlMode"],["update:modelValue"]),setup(l,{emit:L}){const V=l,s=je(l,"modelValue"),x=L,g=b(!1),d=b(),S=()=>{g.value=!g.value,x("onToggleHtmlMode",g.value)};return G(()=>V.editorMode,U=>{g.value=U==="html"}),(U,_)=>{const M=Le("btn");return g.value?(q(),ee(h(yl),{key:0,modelValue:s.value,"onUpdate:modelValue":_[1]||(_[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":_[0]||(_[0]=o=>d.value=o),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:v(()=>[a(D,{text:"HTML",size:"small",onClick:S})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])):(q(),re(le,{key:1},[w("div",Ll,[a(ke,{modelValue:d.value,"onUpdate:modelValue":_[2]||(_[2]=o=>d.value=o),"base-color":"grey-lighten-3",color:"primary",class:"mr-2"},{default:v(()=>[He(a(D,{text:"HTML",size:"small",onClick:S},null,512),[[M]])]),_:1},8,["modelValue"])]),a(bl,{modelValue:s.value,"onUpdate:modelValue":_[3]||(_[3]=o=>s.value=o),class:"border-sm"},null,8,["modelValue"])],64))}}},Ol=Ke({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Ul({filterKeys:["title"]}),...wl({hideNoData:!0,returnObject:!0}),...Je(El({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...fl({transition:!1})},"VCombobox"),me=Oe()({name:"VCombobox",props:Ol(),emits:{"update:focused":l=>!0,"update:modelValue":l=>!0,"update:search":l=>!0,"update:menu":l=>!0},setup(l,L){var pe;let{emit:V,slots:s}=L;const{t:x}=Ge(),g=b(),d=oe(!1),S=oe(!0),U=oe(!1),_=b(),M=b(),o=oe(-1);let A=!1;const{items:u,transformIn:ae,transformOut:Q}=Tl(l),{textColorClasses:H,textColorStyles:W}=Fl(()=>{var e;return(e=g.value)==null?void 0:e.color}),r=ye(l,"modelValue",[],e=>ae(Qe(e)),e=>{const n=Q(e);return l.multiple?n:n[0]??null}),X=Al(l),J=z(()=>!!(l.chips||s.chip)),T=z(()=>J.value||!!s.selection),R=oe(!l.multiple&&!T.value?((pe=r.value[0])==null?void 0:pe.title)??"":""),C=z({get:()=>R.value,set:e=>{var n;if(R.value=e??"",!l.multiple&&!T.value&&(r.value=[ue(l,e)]),e&&l.multiple&&((n=l.delimiters)!=null&&n.length)){const y=e.split(new RegExp(`(?:${l.delimiters.join("|")})+`));y.length>1&&(y.forEach(i=>{i=i.trim(),i&&B(ue(l,i))}),R.value="")}e||(o.value=-1),S.value=!e}}),te=z(()=>typeof l.counterValue=="function"?l.counterValue(r.value):typeof l.counterValue=="number"?l.counterValue:l.multiple?r.value.length:C.value.length),{filteredItems:O,getMatches:p}=Dl(l,u,()=>S.value?"":C.value),t=z(()=>l.hideSelected?O.value.filter(e=>!r.value.some(n=>n.value===e.value)):O.value),c=z(()=>l.hideNoData&&!t.value.length||X.isReadonly.value||X.isDisabled.value),Y=ye(l,"menu"),f=z({get:()=>Y.value,set:e=>{var n;Y.value&&!e&&((n=_.value)!=null&&n.ΨopenChildren.size)||e&&c.value||(Y.value=e)}}),P=We(()=>f.value?l.closeText:l.openText);G(R,e=>{A?xe(()=>A=!1):d.value&&!f.value&&(f.value=!0),V("update:search",e)}),G(r,e=>{var n;!l.multiple&&!T.value&&(R.value=((n=e[0])==null?void 0:n.title)??"")});const Ee=z(()=>r.value.map(e=>e.value)),de=z(()=>{var n;return(l.autoSelectFirst===!0||l.autoSelectFirst==="exact"&&C.value===((n=t.value[0])==null?void 0:n.title))&&t.value.length>0&&!S.value&&!U.value}),ce=b(),Fe=kl(ce,g);function De(e){A=!0,l.openOnClear&&(f.value=!0)}function Ue(){c.value||(f.value=!0)}function Me(e){c.value||(d.value&&(e.preventDefault(),e.stopPropagation()),f.value=!f.value)}function Te(e){var n;e.key!==" "&&Ce(e)&&((n=g.value)==null||n.focus())}function Ie(e){var i,k,E,$;if(Ye(e)||X.isReadonly.value)return;const n=(i=g.value)==null?void 0:i.selectionStart,y=r.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(e.key)&&e.preventDefault(),["Enter","ArrowDown"].includes(e.key)&&(f.value=!0),["Escape"].includes(e.key)&&(f.value=!1),["Enter","Escape","Tab"].includes(e.key)&&(de.value&&["Enter","Tab"].includes(e.key)&&!r.value.some(m=>{let{value:N}=m;return N===t.value[0].value})&&B(O.value[0]),S.value=!0),e.key==="ArrowDown"&&de.value&&((k=ce.value)==null||k.focus("next")),e.key==="Enter"&&C.value&&(B(ue(l,C.value)),T.value&&(R.value="")),["Backspace","Delete"].includes(e.key)){if(!l.multiple&&T.value&&r.value.length>0&&!C.value)return B(r.value[0],!1);if(~o.value){e.preventDefault();const m=o.value;B(r.value[o.value],!1),o.value=m>=y-1?y-2:m}else e.key==="Backspace"&&!C.value&&(o.value=y-1);return}if(l.multiple)if(e.key==="ArrowLeft"){if(o.value<0&&n&&n>0)return;const m=o.value>-1?o.value-1:y-1;r.value[m]?o.value=m:(o.value=-1,(E=g.value)==null||E.setSelectionRange(C.value.length,C.value.length))}else if(e.key==="ArrowRight"){if(o.value<0)return;const m=o.value+1;r.value[m]?o.value=m:(o.value=-1,($=g.value)==null||$.setSelectionRange(0,0))}else~o.value&&Ce(e)&&(o.value=-1)}function Re(){var e;l.eager&&((e=M.value)==null||e.calculateVisibleItems())}function Pe(){var e;d.value&&(S.value=!0,(e=g.value)==null||e.focus())}function B(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!e||e.props.disabled))if(l.multiple){const y=r.value.findIndex(k=>(l.valueComparator||be)(k.value,e.value)),i=n??!~y;if(~y){const k=i?[...r.value,e]:[...r.value];k.splice(y,1),r.value=k}else i&&(r.value=[...r.value,e]);l.clearOnSelect&&(C.value="")}else{const y=n!==!1;r.value=y?[e]:[],R.value=y&&!T.value?e.title:"",xe(()=>{f.value=!1,S.value=!0})}}function Be(e){d.value=!0,setTimeout(()=>{U.value=!0})}function $e(e){U.value=!1}function qe(e){(e==null||e===""&&!l.multiple&&!T.value)&&(r.value=[])}return G(d,(e,n)=>{if(!(e||e===n)&&(o.value=-1,f.value=!1,C.value)){if(l.multiple){B(ue(l,C.value));return}if(!T.value)return;r.value.some(y=>{let{title:i}=y;return i===C.value})?R.value="":B(ue(l,C.value))}}),G(f,()=>{if(!l.hideSelected&&f.value&&r.value.length){const e=t.value.findIndex(n=>r.value.some(y=>(l.valueComparator||be)(y.value,n.value)));Xe&&window.requestAnimationFrame(()=>{var n;e>=0&&((n=M.value)==null||n.scrollToIndex(e))})}}),G(()=>l.items,(e,n)=>{f.value||d.value&&!n.length&&e.length&&(f.value=!0)}),ql(()=>{const e=!!(!l.hideNoData||t.value.length||s["prepend-item"]||s["append-item"]||s["no-data"]),n=r.value.length>0,y=fe.filterProps(l);return a(fe,Z({ref:g},y,{modelValue:C.value,"onUpdate:modelValue":[i=>C.value=i,qe],focused:d.value,"onUpdate:focused":i=>d.value=i,validationValue:r.externalValue,counterValue:te.value,dirty:n,class:["v-combobox",{"v-combobox--active-menu":f.value,"v-combobox--chips":!!l.chips,"v-combobox--selection-slot":!!T.value,"v-combobox--selecting-index":o.value>-1,[`v-combobox--${l.multiple?"multiple":"single"}`]:!0},l.class],style:l.style,readonly:X.isReadonly.value,placeholder:n?void 0:l.placeholder,"onClick:clear":De,"onMousedown:control":Ue,onKeydown:Ie}),{...s,default:()=>w(le,null,[a(Pl,Z({ref:_,modelValue:f.value,"onUpdate:modelValue":i=>f.value=i,activator:"parent",contentClass:"v-combobox__content",disabled:c.value,eager:l.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:l.transition,onAfterEnter:Re,onAfterLeave:Pe},l.menuProps),{default:()=>[e&&a(Rl,Z({ref:ce,selected:Ee.value,selectStrategy:l.multiple?"independent":"single-independent",onMousedown:i=>i.preventDefault(),onKeydown:Te,onFocusin:Be,onFocusout:$e,tabindex:"-1","aria-live":"polite",color:l.itemColor??l.color},Fe,l.listProps),{default:()=>{var i,k,E;return[(i=s["prepend-item"])==null?void 0:i.call(s),!t.value.length&&!l.hideNoData&&(((k=s["no-data"])==null?void 0:k.call(s))??a(Se,{key:"no-data",title:x(l.noDataText)},null)),a(Sl,{ref:M,renderless:!0,items:t.value,itemKey:"value"},{default:$=>{var Ve;let{item:m,index:N,itemRef:F}=$;const ge=Z(m.props,{ref:F,key:m.value,active:de.value&&N===0?!0:void 0,onClick:()=>B(m,null)});return((Ve=s.item)==null?void 0:Ve.call(s,{item:m,index:N,props:ge}))??a(Se,Z(ge,{role:"option"}),{prepend:se=>{let{isSelected:ze}=se;return w(le,null,[l.multiple&&!l.hideSelected?a(Bl,{key:m.value,modelValue:ze,ripple:!1,tabindex:"-1"},null):void 0,m.props.prependAvatar&&a(pl,{image:m.props.prependAvatar},null),m.props.prependIcon&&a(we,{icon:m.props.prependIcon},null)])},title:()=>{var se;return S.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=J.value?!!s.chip:!!s.selection,N=m?el(J.value?s.chip({item:i,index:k,props:$}):s.selection({item:i,index:k})):void 0;if(!(m&&!N))return w("div",{key:i.value,class:al(["v-combobox__selection",k===o.value&&["v-combobox__selection--selected",H.value]]),style:ll(k===o.value?W.value:{})},[J.value?s.chip?a(gl,{key:"chip-defaults",defaults:{VChip:{closable:l.closableChips,size:"small",text:i.title}}},{default:()=>[N]}):a($l,Z({key:"chip",closable:l.closableChips,size:"small",text:i.title,disabled:i.props.disabled},$),null):N??w("span",{class:"v-combobox__selection-text"},[i.title,l.multiple&&k<r.value.length-1&&w("span",{class:"v-combobox__selection-comma"},[_e(",")])])])})]),"append-inner":function(){var $,m;for(var i=arguments.length,k=new Array(i),E=0;E<i;E++)k[E]=arguments[E];return w(le,null,[($=s["append-inner"])==null?void 0:$.call(s,...k),(!l.hideNoData||l.items.length)&&l.menuIcon?a(we,{class:"v-combobox__menu-icon",color:(m=g.value)==null?void 0:m.fieldIconColor,icon:l.menuIcon,onMousedown:Me,onClick:Ze,"aria-label":x(P.value),title:x(P.value),tabindex:"-1"},null):void 0])}})}),Il({isFocused:d,isPristine:S,menu:f,search:C,selectionIndex:o,filteredItems:O,select:B},g)}}),Kl={class:"bg-white rounded-lg pa-4 position-relative h-100 d-flex flex-column"},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:S}=ol(),U=nl(),_=b([]),M=b(0),o=b([]),A=b("plain"),u=b({}),ae=b(),Q=b(!1),H=b(!1),W=b(!1),r=b(!1),X=()=>{g.push({name:"MailboxView"})},J=()=>{if(u.value={sender:U.authUser.username},V.originalEmail){if(u.value.to=V.originalEmail.reply_to?V.originalEmail.reply_to:V.originalEmail.from_address.address,V.replyAll){let p=V.originalEmail.to.filter(t=>t.address!==U.authUser.username).map(t=>t.fulladdress);V.originalEmail.cc&&V.originalEmail.cc.length&&(p=p.concat(V.originalEmail.cc.map(t=>t.fulladdress))),u.value.cc=p,H.value=!0}u.value.subject=V.originalEmail.subject,u.value.body=V.originalEmail.body,V.originalEmail.message_id&&(u.value.in_reply_to=V.originalEmail.message_id)}},T=async()=>{var c,Y;const{valid:p}=await ae.value.validate();if(!p)return;r.value=!0;const t={...u.value};if(typeof u.value.to!="string"?t.to=[u.value.to.emails[0].address]:t.to=[u.value.to],(c=t.cc)!=null&&c.length){const f=[];for(const P of t.cc)f.push(typeof P=="string"?P:P.emails[0].address);t.cc=f}if((Y=t.bcc)!=null&&Y.length){const f=[];for(const P of t.bcc)f.push(typeof P=="string"?P:P.emails[0].address);t.bcc=f}try{await j.sendEmailFromComposeSession(x.query.uid,t),g.push({name:"MailboxView"}),S({msg:d("Email sent")})}catch(f){console.log(f)}finally{r.value=!1}},R=()=>{Q.value=!0},C=async()=>{Q.value=!1;const p=await j.getUploadedAttachments(x.query.uid);M.value=p.data.length},te=il(async p=>{if(p){const t={search:p},c=await xl.getContacts(t);c.data.length&&(o.value=c.data)}else o.value=[]},500),O=p=>{p.signature&&(u.value.body?u.value.body+=p.signature:u.value.body=p.signature),A.value=p.editor_format};return G(()=>V.originalEmail,()=>{J()},{immediate:!0}),x.query.uid?j.getComposeSession(x.query.uid).then(p=>{M.value=p.data.attachments.length,O(p.data)}):j.createComposeSession().then(p=>{const t={...x.query,uid:p.data.uid};g.push({name:x.name,query:t}),O(p.data)}),j.getAllowedSenders().then(p=>{_.value=p.data}),(p,t)=>(q(),re(le,null,[w("div",Kl,[a(Cl,{color:"white"},{default:v(()=>[a(D,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:X}),a(D,{class:"ml-2",color:"primary",variant:"tonal","prepend-icon":"mdi-send",loading:r.value,text:h(d)("Send"),onClick:T},null,8,["loading","text"]),a(D,{class:"ml-2",variant:"tonal","prepend-icon":"mdi-paperclip",text:h(d)("Attachments")+` (${M.value})`,onClick:R},null,8,["text"])]),_:1}),a(Ae,{ref_key:"formRef",ref:ae,class:"flex-grow-1 d-flex flex-column"},{default:v(()=>[w("div",null,[a(ne,{class:"align-center"},{default:v(()=>[a(I,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("From")),1)]),_:1}),a(I,{cols:"8"},{default:v(()=>[a(_l,{modelValue:u.value.sender,"onUpdate:modelValue":t[0]||(t[0]=c=>u.value.sender=c),items:_.value,"item-title":"address","item-value":"address",variant:"outlined",density:"compact","hide-details":"auto",rules:[h(ve).required]},null,8,["modelValue","items","rules"])]),_:1})]),_:1}),a(ne,{class:"align-center"},{default:v(()=>[a(I,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("To")),1)]),_:1}),a(I,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.to,"onUpdate:modelValue":t[1]||(t[1]=c=>u.value.to=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",rules:[h(ve).required],"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","rules","onUpdate:search"])]),_:1}),a(I,{cols:"2"},{default:v(()=>[H.value?ie("",!0):(q(),ee(D,{key:0,text:h(d)("Cc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[2]||(t[2]=c=>H.value=!0)},null,8,["text"])),W.value?ie("",!0):(q(),ee(D,{key:1,text:h(d)("Bcc"),"prepend-icon":"mdi-plus",size:"x-small",variant:"flat",onClick:t[3]||(t[3]=c=>W.value=!0)},null,8,["text"]))]),_:1})]),_:1}),H.value?(q(),ee(ne,{key:0,class:"align-center"},{default:v(()=>[a(I,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Cc")),1),a(D,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[4]||(t[4]=c=>H.value=!1)})]),_:1}),a(I,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.cc,"onUpdate:modelValue":t[5]||(t[5]=c=>u.value.cc=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ie("",!0),W.value?(q(),ee(ne,{key:1,class:"align-center"},{default:v(()=>[a(I,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Bcc")),1),a(D,{icon:"mdi-close",variant:"flat",size:"x-small",onClick:t[6]||(t[6]=c=>W.value=!1)})]),_:1}),a(I,{cols:"8"},{default:v(()=>[a(me,{modelValue:u.value.bcc,"onUpdate:modelValue":t[7]||(t[7]=c=>u.value.bcc=c),items:o.value,"item-title":"display_name","return-object":"",placeholder:h(d)("Provide one or more addresses"),variant:"outlined",density:"compact","hide-details":"auto",chips:"",multiple:"","hide-no-data":!1,"onUpdate:search":h(te)},null,8,["modelValue","items","placeholder","onUpdate:search"])]),_:1})]),_:1})):ie("",!0),a(ne,{class:"align-center"},{default:v(()=>[a(I,{cols:"2"},{default:v(()=>[w("span",null,K(h(d)("Subject")),1)]),_:1}),a(I,{cols:"8"},{default:v(()=>[a(fe,{modelValue:u.value.subject,"onUpdate:modelValue":t[8]||(t[8]=c=>u.value.subject=c),variant:"outlined",density:"compact","hide-details":"auto"},null,8,["modelValue"])]),_:1})]),_:1})]),a(h(Hl),{modelValue:u.value.body,"onUpdate:modelValue":t[9]||(t[9]=c=>u.value.body=c),"editor-mode":A.value,onOnToggleHtmlMode:t[10]||(t[10]=c=>s("onToggleHtmlMode",c))},null,8,["modelValue","editor-mode"])]),_:1},512)]),a(zl,{modelValue:Q.value,"onUpdate:modelValue":t[11]||(t[11]=c=>Q.value=c),"max-width":"800"},{default:v(()=>[a(h(jl),{"session-uid":h(x).query.uid,onClose:C},null,8,["session-uid"])]),_:1},8,["modelValue"])],64))}};export{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 Ne,Q as he,R as je,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 q,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,n as ol,u as nl,M as ul,s as sl,q as ie}from"./index-CTxlYqj4.js";import{d as il}from"./index-a9uUi1ey.js";import{a as j}from"./webmail-CGWB-wMk.js";import{V as Ae,r as ve}from"./VForm-CXf-xKYz.js";import{c as rl,V as dl,a as cl,b as ml}from"./VCard-DRptUN8Y.js";import{V as vl}from"./VFileInput-C7DE4B9B.js";import{V as D,X as ke,m as fl,d as we,f as pl,h as gl}from"./VAvatar-x_79C0tA.js";import{V as Vl}from"./VTable-B-HE2nmK.js";import{V as hl}from"./VSpacer-BcQnH0oL.js";import{_ as yl}from"./HtmlEditor-DfoGrUHw.js";import{V as bl}from"./VTextarea-Bry3a299.js";import{c as xl}from"./contacts-HeZ9it3d.js";import{V as Cl}from"./VToolbar-Cd2iSn8H.js";import{V as ne,a as R}from"./VRow-B-csPNw7.js";import{b as kl,c as wl,d as _l,V as Sl}from"./VSelect-tV4GZAtn.js";import{f as Al,V as fe,g as El}from"./VTextField-CWm47OUI.js";import{a as Fl}from"./VProgressCircular-ubzZW5PC.js";import{u as Dl,m as Ul,h as Ml}from"./filter-DaBUD6Rp.js";import{d as Tl,t as ue,f as Rl,V as Il,a as _e}from"./forwardRefs-BSESyuUp.js";import{V as Pl}from"./VMenu-DTm7W1Hp.js";import{V as Bl}from"./VCheckboxBtn-xrhfoOlo.js";import{V as $l}from"./VChip-Def9BYoN.js";import{u as zl}from"./tag-Dx3OexMp.js";import{V as ql}from"./VDialog-DzctVbsK.js";const Nl={class:"w-100 d-flex justify-center"},jl={__name:"AttachmentsDialog",props:{sessionUid:{type:String,default:null}},emits:["close"],setup(l,{emit:L}){const V=l,s=L,x=b([]),g=b(),d=b(),_=b(!1),U=()=>{s("close")},S=async()=>{const{valid:o}=await d.value.validate();if(!o)return;const A=new FormData;A.append("attachment",g.value),_.value=!0;try{const u=await j.uploadAttachment(V.sessionUid,A);x.value.push(u.data),d.value.reset()}finally{_.value=!1}},M=async o=>{await j.removeAttachment(V.sessionUid,o.tmpname);const A=x.value.findIndex(u=>u.tmpname===o.tmpname);x.value.splice(A,1)};return j.getComposeSession(V.sessionUid).then(o=>{x.value=o.data.attachments}),(o,A)=>(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",Nl,[a(D,{color:"primary",variant:"tonal",text:o.$gettext("Attach"),onClick:S},null,8,["text"])])]),_:1},512),a(Vl,{class:"mt-4 border-sm"},{default:v(()=>[w("tbody",null,[(z(!0),re(le,null,Ne(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=je(l,"modelValue"),x=L,g=b(!1),d=b(),_=()=>{g.value=!g.value,x("onToggleHtmlMode",g.value)};return G(()=>V.editorMode,U=>{g.value=U==="html"}),(U,S)=>{const M=Le("btn");return g.value?(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=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:N}=m;return N===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:N,itemRef:F}=$;const ge=Z(m.props,{ref:F,key:m.value,active:de.value&&N===0?!0:void 0,onClick:()=>B(m,null)});return((Ve=s.item)==null?void 0:Ve.call(s,{item:m,index:N,props:ge}))??a(_e,Z(ge,{role:"option"}),{prepend:se=>{let{isSelected: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,N=m?el(X.value?s.chip({item:i,index:k,props:$}):s.selection({item:i,index:k})):void 0;if(!(m&&!N))return w("div",{key:i.value,class:al(["v-combobox__selection",k===o.value&&["v-combobox__selection--selected",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:()=>[N]}):a($l,Z({key:"chip",closable:l.closableChips,size:"small",text:i.title,disabled:i.props.disabled},$),null):N??w("span",{class:"v-combobox__selection-text"},[i.title,l.multiple&&k<r.value.length-1&&w("span",{class:"v-combobox__selection-comma"},[Se(",")])])])})]),"append-inner":function(){var $,m;for(var i=arguments.length,k=new Array(i),E=0;E<i;E++)k[E]=arguments[E];return w(le,null,[($=s["append-inner"])==null?void 0:$.call(s,...k),(!l.hideNoData||l.items.length)&&l.menuIcon?a(we,{class:"v-combobox__menu-icon",color:(m=g.value)==null?void 0:m.fieldIconColor,icon:l.menuIcon,onMousedown:Me,onClick:Ze,"aria-label":x(P.value),title:x(P.value),tabindex:"-1"},null):void 0])}})}),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 j.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 j.getUploadedAttachments(x.query.uid);M.value=p.data.length},te=il(async p=>{if(p){const t={search:p},c=await xl.getContacts(t);c.data.length&&(o.value=c.data)}else o.value=[]},500),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?j.getComposeSession(x.query.uid).then(p=>{M.value=p.data.attachments.length,H(p.data)}):j.createComposeSession().then(p=>{const t={...x.query,uid:p.data.uid};g.push({name:x.name,query:t}),H(p.data)}),j.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(jl),{"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-DkZQzxAe.js";import{c as r,f as t,o as m}from"./index-CTxlYqj4.js";import"./index-a9uUi1ey.js";import"./webmail-CGWB-wMk.js";import"./VForm-CXf-xKYz.js";import"./tag-Dx3OexMp.js";import"./VTextField-CWm47OUI.js";import"./VAvatar-x_79C0tA.js";import"./VProgressCircular-ubzZW5PC.js";import"./forwardRefs-BSESyuUp.js";import"./ssrBoot-DGgZQEVC.js";import"./VCard-DRptUN8Y.js";import"./VFileInput-C7DE4B9B.js";import"./VChip-Def9BYoN.js";import"./VTable-B-HE2nmK.js";import"./VSpacer-BcQnH0oL.js";/* empty css */import"./HtmlEditor-DfoGrUHw.js";import"./VTextarea-Bry3a299.js";import"./contacts-HeZ9it3d.js";import"./VToolbar-Cd2iSn8H.js";import"./VRow-B-csPNw7.js";import"./VSelect-tV4GZAtn.js";import"./VMenu-DTm7W1Hp.js";import"./VCheckboxBtn-xrhfoOlo.js";import"./VSelectionControl-Bdgm37Tl.js";import"./filter-DaBUD6Rp.js";import"./VDialog-DzctVbsK.js";const G={__name:"ComposeEmailView",setup(p){return(i,e)=>(m(),r(t(o)))}};export{G as default};
@@ -0,0 +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,bb as L,o as b}from"./index-CTxlYqj4.js";import{V as S,a as B}from"./VToolbar-Cd2iSn8H.js";import{V as K,a as N,b as I}from"./VCard-DRptUN8Y.js";import{V as O}from"./VSpacer-BcQnH0oL.js";import{V as g}from"./VAvatar-x_79C0tA.js";import{V as $}from"./VDialog-DzctVbsK.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 _};
@@ -0,0 +1 @@
1
+ import{j as ae,r as Ne,c as T,o as x,w,a as s,a$ as fe,b0 as De,ab as $,h as V,a7 as Re,d as q,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 D,ac as Q,a5 as be,b4 as We,Y as ze,e as P,B as X,F as I,C as xe,$ as Xe,u as Ve,s as Fe,i as Ge,f as Z,p as je,m as A,G as K,q as ee,l as j,t as U,a0 as qe,b as Se,b5 as Ze,aj as Ke,_ as Je,S as Qe,b6 as et,U as tt,n as at,z as nt,H as ot}from"./index-CTxlYqj4.js";import{V as lt}from"./VContainer-CC8lqRXa.js";import{V as rt,a as it}from"./VApp-tsfSFSQl.js";import{u as st}from"./global.store-C4iiNxy1.js";import{u as ut}from"./layout.store-3tdRwdnE.js";import{C as ct,r as vt,u as Ce,D as dt,E as mt,b as Te,s as ft,A as ht,p as Pe,h as Be,V as J,d as te,f as gt,F as yt,G as pt,k as wt,e as _t,z as kt,H as bt,c as xt}from"./VAvatar-x_79C0tA.js";import{V as Ee,g as Vt,a as Y,h as St,c as Ct,b as Tt,f as Pt}from"./forwardRefs-BSESyuUp.js";import{u as se}from"./VProgressCircular-ubzZW5PC.js";import{u as Me,m as Bt,a as Et}from"./tag-Dx3OexMp.js";import{u as Le,b as Mt,m as Lt,V as ue,a as ce,c as It}from"./VMenu-DTm7W1Hp.js";import{u as At,a as $t,V as Nt,b as Dt}from"./layout-BFr6o7er.js";import{u as Rt}from"./ssrBoot-DGgZQEVC.js";import{b as ve}from"./VCard-DRptUN8Y.js";import{V as Ht,a as Yt}from"./VRow-B-csPNw7.js";import{V as Ot}from"./VSheet-BV83IblO.js";const Ut={__name:"ConnectedView",setup(e){return(r,n)=>{const i=Ne("router-view");return x(),T(rt,null,{default:w(()=>[s(lt,{fluid:"",style:{height:"100%"}},{default:w(()=>[s(i,null,{default:w(({Component:t})=>[s(fe,{name:"fade"},{default:w(()=>[(x(),T(De(t)))]),_:2},1024)]),_:1})]),_:1})]),_:1})}}},Wt=ae(Ut,[["__scopeId","data-v-b2ffa9e6"]]),zt="/assets/Modoboa_RVB-BLANC-SANS-BBGoASES.png";function Xt(e){let{rootEl:r,isSticky:n,layoutItemStyles:i}=e;const t=$(!1),u=$(0),l=V(()=>{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(u.value)}:{top:i.value.top}]});q(()=>{O(n,a=>{a?window.addEventListener("scroll",k,{passive:!0}):window.removeEventListener("scroll",k)},{immediate:!0})}),he(()=>{window.removeEventListener("scroll",k)});let m=0;function k(){const a=m>window.scrollY?"up":"down",c=r.value.getBoundingClientRect(),h=parseFloat(i.value.top??0),g=window.scrollY-Math.max(0,u.value-h),p=c.height+Math.max(u.value,h)-window.scrollY-window.innerHeight,o=parseFloat(getComputedStyle(r.value).getPropertyValue("--v-body-scroll-y"))||0;c.height<window.innerHeight-h?(t.value="top",u.value=h):a==="up"&&t.value==="bottom"||a==="down"&&t.value==="top"?(u.value=window.scrollY+c.top-o,t.value=!0):a==="down"&&p<=0?(u.value=0,t.value="bottom"):a==="up"&&g<=0&&(o?t.value!=="top"&&(u.value=-g+o+h,t.value="top"):(u.value=c.top+g,t.value="top")),m=window.scrollY}return{isStuck:t,stickyStyles:l}}const Ft=100,Gt=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 r=0;for(let n=e.length-1;n>0;n--){if(e[n].t===e[n-1].t)continue;const i=de(r),t=(e[n].d-e[n-1].d)/(e[n].t-e[n-1].t);r+=(t-i)*Math.abs(t),n===e.length-1&&(r*=.5)}return de(r)*1e3}function jt(){const e={};function r(t){Array.from(t.changedTouches).forEach(u=>{(e[u.identifier]??(e[u.identifier]=new He(Gt))).push([t.timeStamp,u])})}function n(t){Array.from(t.changedTouches).forEach(u=>{delete e[u.identifier]})}function i(t){var a;const u=(a=e[t])==null?void 0:a.values().reverse();if(!u)throw new Error(`No samples for touch id ${t}`);const l=u[0],m=[],k=[];for(const c of u){if(l[0]-c[0]>Ft)break;m.push({t:c[0],d:c[1].clientX}),k.push({t:c[0],d:c[1].clientY})}return{x:me(m),y:me(k),get direction(){const{x:c,y:h}=this,[g,p]=[Math.abs(c),Math.abs(h)];return g>p&&c>=0?"right":g>p&&c<=0?"left":p>g&&h>=0?"down":p>g&&h<=0?"up":qt()}}}return{addMovement:r,endTouch:n,getVelocity:i}}function qt(){throw new Error}function Zt(e){let{el:r,isActive:n,isTemporary:i,width:t,touchless:u,position:l}=e;q(()=>{window.addEventListener("touchstart",M,{passive:!0}),window.addEventListener("touchmove",B,{passive:!1}),window.addEventListener("touchend",W,{passive:!0})}),he(()=>{window.removeEventListener("touchstart",M),window.removeEventListener("touchmove",B),window.removeEventListener("touchend",W)});const m=V(()=>["left","right"].includes(l.value)),{addMovement:k,endTouch:a,getVelocity:c}=jt();let h=!1;const g=$(!1),p=$(0),o=$(0);let f;function N(v,y){return(l.value==="left"?v:l.value==="right"?document.documentElement.clientWidth-v:l.value==="top"?v:l.value==="bottom"?document.documentElement.clientHeight-v:z())-(y?t.value:0)}function R(v){let y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const _=l.value==="left"?(v-o.value)/t.value:l.value==="right"?(document.documentElement.clientWidth-v-o.value)/t.value:l.value==="top"?(v-o.value)/t.value:l.value==="bottom"?(document.documentElement.clientHeight-v-o.value)/t.value:z();return y?Ye(_):_}function M(v){if(u.value)return;const y=v.changedTouches[0].clientX,_=v.changedTouches[0].clientY,b=25,S=l.value==="left"?y<b:l.value==="right"?y>document.documentElement.clientWidth-b:l.value==="top"?_<b:l.value==="bottom"?_>document.documentElement.clientHeight-b:z(),d=n.value&&(l.value==="left"?y<t.value:l.value==="right"?y>document.documentElement.clientWidth-t.value:l.value==="top"?_<t.value:l.value==="bottom"?_>document.documentElement.clientHeight-t.value:z());(S||d||n.value&&i.value)&&(f=[y,_],o.value=N(m.value?y:_,n.value),p.value=R(m.value?y:_),h=o.value>-20&&o.value<80,a(v),k(v))}function B(v){const y=v.changedTouches[0].clientX,_=v.changedTouches[0].clientY;if(h){if(!v.cancelable){h=!1;return}const S=Math.abs(y-f[0]),d=Math.abs(_-f[1]);(m.value?S>d&&S>3:d>S&&d>3)?(g.value=!0,h=!1):(m.value?d:S)>3&&(h=!1)}if(!g.value)return;v.preventDefault(),k(v);const b=R(m.value?y:_,!1);p.value=Math.max(0,Math.min(1,b)),b>1?o.value=N(m.value?y:_,!0):b<0&&(o.value=N(m.value?y:_,!1))}function W(v){if(h=!1,!g.value)return;k(v),g.value=!1;const y=c(v.changedTouches[0].identifier),_=Math.abs(y.x),b=Math.abs(y.y);(m.value?_>b&&_>400:b>_&&b>3)?n.value=y.direction===({left:"right",right:"left",top:"down",bottom:"up"}[l.value]||z()):n.value=p.value>.5}const H=V(()=>g.value?{transform:l.value==="left"?`translateX(calc(-100% + ${p.value*t.value}px))`:l.value==="right"?`translateX(calc(100% - ${p.value*t.value}px))`:l.value==="top"?`translateY(calc(-100% + ${p.value*t.value}px))`:l.value==="bottom"?`translateY(calc(100% - ${p.value*t.value}px))`:z(),transition:"none"}:void 0);return G(g,()=>{var _,b;const v=((_=r.value)==null?void 0:_.style.transform)??null,y=((b=r.value)==null?void 0:b.style.transition)??null;ge(()=>{var S,d,E,L;(d=r.value)==null||d.style.setProperty("transform",((S=H.value)==null?void 0:S.transform)||"none"),(L=r.value)==null||L.style.setProperty("transition",((E=H.value)==null?void 0:E.transition)||null)}),ye(()=>{var S,d;(S=r.value)==null||S.style.setProperty("transform",v),(d=r.value)==null||d.style.setProperty("transition",y)})}),{isDragging:g,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,...ht(),...Et(),...Lt(),...Xe({mobile:null}),...ft(),...$t(),...Te(),...Bt({tag:"nav"}),...xe()},"VNavigationDrawer"),Qt=pe()({name:"VNavigationDrawer",props:Jt(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,r){let{attrs:n,emit:i,slots:t}=r;const{isRtl:u}=Oe(),{themeClasses:l}=_e(e),{borderClasses:m}=ct(e),{backgroundColorClasses:k,backgroundColorStyles:a}=se(()=>e.color),{elevationClasses:c}=vt(e),{displayClasses:h,mobile:g}=Ue(e),{roundedClasses:p}=Ce(e),o=dt(),f=ke(e,"modelValue",null,C=>!!C),{ssrBootStyles:N}=Rt(),{scopeId:R}=Le(),M=D(),B=$(!1),{runOpenDelay:W,runCloseDelay:H}=Mt(e,C=>{B.value=C}),v=V(()=>e.rail&&e.expandOnHover&&B.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),y=V(()=>mt(e.location,u.value)),_=Q(()=>e.persistent),b=V(()=>!e.permanent&&(g.value||e.temporary)),S=V(()=>e.sticky&&!b.value&&y.value!=="bottom");G(()=>e.expandOnHover&&e.rail!=null,()=>{O(B,C=>i("update:rail",!C))}),G(()=>!e.disableResizeWatcher,()=>{O(b,C=>!e.permanent&&be(()=>f.value=!C))}),G(()=>!e.disableRouteWatcher&&!!o,()=>{O(o.currentRoute,()=>b.value&&(f.value=!1))}),O(()=>e.permanent,C=>{C&&(f.value=!0)}),e.modelValue==null&&!b.value&&(f.value=e.permanent||!g.value);const{isDragging:d,dragProgress:E}=Zt({el:M,isActive:f,isTemporary:b,width:v,touchless:Q(()=>e.touchless),position:y}),L=V(()=>{const C=b.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):v.value;return d.value?C*E.value:C}),{layoutItemStyles:F,layoutItemScrimStyles:Ie}=At({id:e.name,order:V(()=>parseInt(e.order,10)),position:y,layoutSize:L,elementSize:v,active:We(f),disableTransitions:Q(()=>d.value),absolute:V(()=>e.absolute||S.value&&typeof ne.value!="string")}),{isStuck:ne,stickyStyles:Ae}=Xt({rootEl:M,isSticky:S,layoutItemStyles:F}),oe=se(()=>typeof e.scrim=="string"?e.scrim:null),$e=V(()=>({...d.value?{opacity:E.value*.2,transition:"none"}:void 0,...Ie.value}));return ze({VList:{bgColor:"transparent"}}),Me(()=>{const C=t.image||e.image;return P(I,null,[s(e.tag,X({ref:M,onMouseenter:W,onMouseleave:H,class:["v-navigation-drawer",`v-navigation-drawer--${y.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":B.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":b.value,"v-navigation-drawer--persistent":_.value,"v-navigation-drawer--active":f.value,"v-navigation-drawer--sticky":S.value},l.value,k.value,m.value,h.value,c.value,p.value,e.class],style:[a.value,F.value,N.value,Ae.value,e.style]},R,n),{default:()=>{var le,re,ie;return[C&&P("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&&P("div",{class:"v-navigation-drawer__prepend"},[(le=t.prepend)==null?void 0:le.call(t)]),P("div",{class:"v-navigation-drawer__content"},[(re=t.default)==null?void 0:re.call(t)]),t.append&&P("div",{class:"v-navigation-drawer__append"},[(ie=t.append)==null?void 0:ie.call(t)])]}}),s(fe,{name:"fade-transition"},{default:()=>[b.value&&(d.value||f.value)&&!!e.scrim&&P("div",X({class:["v-navigation-drawer__scrim",oe.backgroundColorClasses.value],style:[$e.value,oe.backgroundColorStyles.value],onClick:()=>{_.value||(f.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 r=e,n=st(),i=Ve(),t=ut(),u=Fe(),l=D(!1),m=D(!0),k=V(()=>i.authUser),a=V(()=>i.isAuthenticated),c=V(()=>n.notifications.length!==void 0&&n.notifications.length!==0);function h(g){return a.value?(g.roles===void 0||g.roles.indexOf(k.value.role)!==-1)&&(g.condition===void 0||g.condition())&&g.activated!==!1:!1}return q(()=>{k.value.role===Ge.SUPER_ADMIN&&n.fetchNotifications()}),(g,p)=>(x(),T(Qt,{modelValue:m.value,"onUpdate:modelValue":p[2]||(p[2]=o=>m.value=o),rail:l.value,permanent:"",color:e.color,app:""},{default:w(()=>[P("div",ea,[s(Pe,{src:zt,"max-width":"190",class:"logo",onClick:p[0]||(p[0]=o=>Z(u).push(r.logoRoute))}),s(J,{icon:l.value?"mdi-chevron-right":"mdi-chevron-left",variant:"text",onClick:p[1]||(p[1]=je(o=>l.value=!l.value,["stop"]))},null,8,["icon"])]),s(Ee,{density:Z(t).compactLeftMenu?"compact":"default",lines:!Z(t).compactLeftMenu,nav:""},{default:w(()=>[(x(!0),A(I,null,K(e.menuItems,o=>(x(),A(I,{key:o.text},[h(o)?(x(),A(I,{key:0},[o.subheader?(x(),T(Vt,{key:0,class:"text-white"},{default:w(()=>[j(U(o.text.toUpperCase()),1)]),_:2},1024)):o.action?(x(),T(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?(x(),T(St,{key:3,value:o.text},{activator:w(({props:f})=>[(x(),T(Y,X({ref_for:!0},f,{key:o.text,title:o.text,color:"white","prepend-icon":o.icon}),null,16,["title","prepend-icon"]))]),default:w(()=>[(x(!0),A(I,null,K(o.children,f=>(x(),A(I,{key:f.text},[h(f)?(x(),A(I,{key:0},[f.action?(x(),T(Y,{key:0,title:f.text,value:f,"prepend-icon":f.icon,onClick:f.action},null,8,["title","value","prepend-icon","onClick"])):(x(),T(Y,{key:1,to:f.to,link:"",title:f.text,value:f,"prepend-icon":f.icon},null,8,["to","title","value","prepend-icon"]))],64)):ee("",!0)],64))),128))]),_:2},1032,["value"])):(x(),T(Y,{key:2,value:o,to:o.to,link:"",exact:o.exact,title:o.text,"prepend-icon":o.icon},qe({_:2},[o.withBell&&c.value?{name:"append",fn:w(()=>[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-798c5d45"]]),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 r=e,{$gettext:n}=Se(),i=D([]),t=V(()=>r.user.first_name&&r.user.last_name?`${r.user.first_name[0].toUpperCase()}${r.user.last_name[0].toUpperCase()}`:r.user.username?r.user.username.slice(0,2).toUpperCase():""),u=V(()=>[{text:n("Account"),icon:"mdi-account-circle-outline",to:r.remote?null:{name:"AccountSettings"},href:r.remote?"https://localhost:3000/account":"",click:()=>null},{text:n("Logout"),icon:"mdi-logout",click:l}]);async function l(){Ze()._s.forEach(async m=>await m.$reset())}return q(()=>{Ke.getAvailableApplications().then(m=>{i.value=m.data})}),(m,k)=>e.user?(x(),A("div",na,[s(ue,{activator:"parent",location:"bottom"},{activator:w(({props:a})=>[s(J,X({icon:"mdi-apps",flat:"",class:"mr-4"},a),null,16)]),default:w(()=>[s(ve,{"min-width":"350","max-width":"400",class:"pa-4"},{default:w(()=>[s(Ht,{class:"justify-center"},{default:w(()=>[(x(!0),A(I,null,K(i.value,a=>(x(),T(Yt,{key:a.name,cols:"6"},{default:w(()=>[s(Ot,{rounded:"",class:"application text-center pa-4 text-body-2",onClick:c=>m.$router.push(a.url)},{default:w(()=>[s(te,{color:"primary",icon:a.icon,size:"x-large"},null,8,["icon"]),P("div",oa,U(a.label),1)]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1}),s(J,{icon:"",flat:"",color:"primary"},{default:w(()=>[j(U(t.value)+" ",1),s(ue,{activator:"parent",location:"bottom"},{default:w(()=>[s(ve,{"min-width":"300","max-width":"350"},{default:w(()=>[s(Ee,null,{default:w(()=>[P("div",la,[s(gt,{color:"primary"},{default:w(()=>[P("span",ra,U(t.value),1)]),_:1}),s(Y,{title:e.user.username},null,8,["title"])]),s(Ct),(x(!0),A(I,null,K(u.value,a=>(x(),T(Y,{key:a.text,to:a.to,href:a.href,link:"",onClick:a.click},{prepend:w(()=>[s(te,{icon:a.icon},null,8,["icon"])]),default:w(()=>[s(Tt,null,{default:w(()=>[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 r=$(e());let n=-1;function i(){clearInterval(n)}function t(){i(),be(()=>r.value=e())}function u(l){const m=l?getComputedStyle(l):{transitionDuration:.2},k=parseFloat(m.transitionDuration)*1e3||200;if(i(),r.value<=0)return;const a=performance.now();n=window.setInterval(()=>{const c=performance.now()-a+k;r.value=Math.max(e()-c,0),r.value<=0&&i()},k)}return ye(i),{clear:i,time:r,start:u,reset:t}}const va=we({multiLine:Boolean,text:String,timer:[Boolean,String],timeout:{type:[Number,String],default:5e3},vertical:Boolean,...xt({location:"bottom"}),...bt(),...Te(),...kt(),...xe(),...tt(It({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","scrim","scrollStrategy"])},"VSnackbar"),da=pe()({name:"VSnackbar",props:va(),emits:{"update:modelValue":e=>!0},setup(e,r){let{slots:n}=r;const i=ke(e,"modelValue"),{positionClasses:t}=yt(e),{scopeId:u}=Le(),{themeClasses:l}=_e(e),{colorClasses:m,colorStyles:k,variantClasses:a}=pt(e),{roundedClasses:c}=Ce(e),h=ca(()=>Number(e.timeout)),g=D(),p=D(),o=$(!1),f=$(0),N=D(),R=Qe(Nt,void 0);G(()=>!!R,()=>{const d=Dt();ge(()=>{N.value=d.mainStyles.value})}),O(i,B),O(()=>e.timeout,B),q(()=>{i.value&&B()});let M=-1;function B(){h.reset(),window.clearTimeout(M);const d=Number(e.timeout);if(!i.value||d===-1)return;const E=et(p.value);h.start(E),M=window.setTimeout(()=>{i.value=!1},d)}function W(){h.reset(),window.clearTimeout(M)}function H(){o.value=!0,W()}function v(){o.value=!1,B()}function y(d){f.value=d.touches[0].clientY}function _(d){Math.abs(f.value-d.changedTouches[0].clientY)>50&&(i.value=!1)}function b(){o.value&&v()}const S=V(()=>e.location.split(" ").reduce((d,E)=>(d[`v-snackbar--${E}`]=!0,d),{}));return Me(()=>{const d=ce.filterProps(e),E=!!(n.default||n.text||e.text);return s(ce,X({ref:g,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},S.value,t.value,e.class],style:[N.value,e.style]},d,{modelValue:i.value,"onUpdate:modelValue":L=>i.value=L,contentProps:X({class:["v-snackbar__wrapper",l.value,m.value,c.value,a.value],style:[k.value],onPointerenter:H,onPointerleave:v},d.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:y,onTouchend:_,onAfterLeave:b},u),{default:()=>{var L,F;return[wt(!1,"v-snackbar"),e.timer&&!o.value&&P("div",{key:"timer",class:"v-snackbar__timer"},[s(_t,{ref:p,color:typeof e.timer=="string"?e.timer:"info",max:e.timeout,"model-value":h.time.value},null)]),E&&P("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[((L=n.text)==null?void 0:L.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:()=>[P("div",{class:"v-snackbar__actions"},[n.actions({isActive:i})])]})]},activator:n.activator})}),Pt({},g)}}),ma=2e3,Ba={__name:"ConnectedLayout",props:{color:{type:String,default:"primary"},menuItems:{type:Array,default:null}},setup(e){const r=Ve(),n=at(),{$gettext:i}=Se(),t=nt(),u=V(()=>r.authUser),l=V(()=>n.notificationColor),m=V(()=>n.notification),k=D(!1);return n.$onAction(({name:a,after:c})=>{a==="displayNotification"&&c(()=>{k.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,c)=>(x(),T(it,null,{default:w(()=>[ot(a.$slots,"navbar",{},()=>[s(aa,{color:e.color,"menu-items":e.menuItems},null,8,["color","menu-items"])]),s(sa,{user:u.value},null,8,["user"]),s(Wt),s(da,{modelValue:k.value,"onUpdate:modelValue":c[1]||(c[1]=h=>k.value=h),color:l.value,timeout:ma,location:"top"},{actions:w(()=>[s(J,{color:"white",text:"",onClick:c[0]||(c[0]=h=>k.value=!1)},{default:w(()=>[j(U(Z(i)("Close")),1)]),_:1})]),default:w(()=>[j(U(m.value)+" ",1)]),_:1},8,["modelValue","color"])]),_:3}))}};export{Qt as V,Ba as _,zt as a};
@@ -0,0 +1 @@
1
+ import{_ as me}from"./ConfirmDialog-q002W_T5.js";import{j as pe,b as se,m as W,o as y,G as F,F as j,e as p,t as v,f as g,c as C,w as u,H as U,q as re,a as n,l as h,v as L,x as $,y as ve,h as S,D as fe,J as ye,I as P,S as Ve,T as Se,B as q,U as be,V as oe,W as ke,X as Q,Y as _e,Z as ge,$ as he,g as M,a0 as xe,a1 as we,a2 as Ie}from"./index-CTxlYqj4.js";import{a as T,V as ie}from"./VRow-B-csPNw7.js";import{V as A,h as ee,i as Ce,R as te,j as Pe,k as $e,d as Be,f as Ae,l as We,n as je,o as Te,p as Fe}from"./VAvatar-x_79C0tA.js";import{u as R}from"./tag-Dx3OexMp.js";import{V as ae,m as Le,a as le,b as Re}from"./VWindowItem-pE5PWxHf.js";import{V as De}from"./VContainer-CC8lqRXa.js";import{V as ne,m as Ee}from"./VSheet-BV83IblO.js";import{c as Ne}from"./forwardRefs-BSESyuUp.js";const ze="/assets/Modoboa_RVB-BLEU-SANS-pKrnjsR_.png",Ge={class:"subtitle mt-4 d-flex"},Oe={class:"text-h6"},Me=["onClick"],Ue={class:"text-grey"},He={__name:"CreationSummary",props:{sections:{type:Array,default:()=>[]}},emits:["modify-step"],setup(e,{emit:f}){const{$gettext:t}=se(),a=f;function r(s){return s.length?s.join(", "):t("Empty")}return(s,c)=>(y(!0),W(j,null,F(e.sections,(d,m)=>(y(),W(j,{key:m},[p("div",Ge,[p("span",Oe,v(d.title),1),p("a",{href:"#",class:"edit-link ml-auto",onClick:l=>a("modify-step",m+1)},v(g(t)("Modify")),9,Me)]),(y(!0),W(j,null,F(d.items,(l,x)=>(y(),C(ie,{key:x,dense:""},{default:u(()=>[l.value!==void 0?U(s.$slots,`item.${l.name}`,{key:0,item:l,displayList:r},()=>[n(T,null,{default:u(()=>[p("span",Ue,v(l.key),1)]),_:2},1024),l.type==="yesno"?(y(),C(T,{key:0,class:"text-right"},{default:u(()=>[h(v(s.$yesno(l.value)),1)]),_:2},1024)):l.type==="list"?(y(),C(T,{key:1,class:"text-right"},{default:u(()=>[h(v(r(l.value)),1)]),_:2},1024)):(y(),C(T,{key:2,class:"text-right"},{default:u(()=>[h(v(l.value),1)]),_:2},1024))],!0):re("",!0)]),_:2},1024))),128))],64))),128))}},Ye=pe(He,[["__scopeId","data-v-6e743e1a"]]),J=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"),qe=L()({name:"VStepperActions",props:ue(),emits:{"click:prev":()=>!0,"click:next":()=>!0},setup(e,f){let{emit:t,slots:a}=f;const{t:r}=ve();function s(){t("click:prev")}function c(){t("click:next")}return R(()=>{const d={onClick:s},m={onClick:c};return p("div",{class:"v-stepper-actions"},[n(ee,{defaults:{VBtn:{disabled:["prev",!0].includes(e.disabled),text:r(e.prevText),variant:"text"}}},{default:()=>{var l;return[((l=a.prev)==null?void 0:l.call(a,{props:d}))??n(A,d,null)]}}),n(ee,{defaults:{VBtn:{color:e.color,disabled:["next",!0].includes(e.disabled),text:r(e.nextText),variant:"tonal"}}},{default:()=>{var l;return[((l=a.next)==null?void 0:l.call(a,{props:m}))??n(A,m,null)]}})])}),{}}}),ce=Ce("v-stepper-header"),Je=$({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"),Ke=$({...Je(),...We()},"VStepperItem"),H=L()({name:"VStepperItem",directives:{vRipple:te},props:Ke(),emits:{"group:selected":e=>!0},setup(e,f){let{slots:t}=f;const a=Pe(e,J,!0),r=S(()=>(a==null?void 0:a.value.value)??e.value),s=S(()=>e.rules.every(I=>I()===!0)),c=S(()=>!e.disabled&&e.editable),d=S(()=>!e.disabled&&e.editable),m=S(()=>e.error||!s.value),l=S(()=>e.complete||e.rules.length>0&&s.value),x=S(()=>m.value?e.errorIcon:l.value?e.completeIcon:a.isSelected.value&&e.editable?e.editIcon:e.icon),w=S(()=>({canEdit:d.value,hasError:m.value,hasCompleted:l.value,title:e.title,subtitle:e.subtitle,step:r.value,value:e.value}));return R(()=>{var i,k,D;const I=(!a||a.isSelected.value||l.value||d.value)&&!m.value&&!e.disabled,V=!!(e.title!=null||t.title),b=!!(e.subtitle!=null||t.subtitle);function o(){a==null||a.toggle()}return fe(p("button",{class:ye(["v-stepper-item",{"v-stepper-item--complete":l.value,"v-stepper-item--disabled":e.disabled,"v-stepper-item--error":m.value},a==null?void 0:a.selectedClass.value]),disabled:!e.editable,type:"button",onClick:o},[c.value&&$e(!0,"v-stepper-item"),n(Ae,{key:"stepper-avatar",class:"v-stepper-item__avatar",color:I?e.color:void 0,size:24},{default:()=>{var _;return[((_=t.icon)==null?void 0:_.call(t,w.value))??(x.value?n(Be,{icon:x.value},null):r.value)]}}),p("div",{class:"v-stepper-item__content"},[V&&p("div",{key:"title",class:"v-stepper-item__title"},[((i=t.title)==null?void 0:i.call(t,w.value))??e.title]),b&&p("div",{key:"subtitle",class:"v-stepper-item__subtitle"},[((k=t.subtitle)==null?void 0:k.call(t,w.value))??e.subtitle]),(D=t.default)==null?void 0:D.call(t,w.value)])]),[[te,e.ripple&&e.editable,null]])}),{}}}),Xe=$({...be(Le(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VStepperWindow"),de=L()({name:"VStepperWindow",props:Xe(),emits:{"update:modelValue":e=>!0},setup(e,f){let{slots:t}=f;const a=Ve(J,null),r=Se(e,"modelValue"),s=S({get(){var c;return r.value!=null||!a?r.value:(c=a.items.value.find(d=>a.selected.value.includes(d.id)))==null?void 0:c.value},set(c){r.value=c}});return R(()=>{const c=ae.filterProps(e);return n(ae,q({_as:"VStepperWindow"},c,{modelValue:s.value,"onUpdate:modelValue":d=>s.value=d,class:["v-stepper-window",e.class],style:e.style,mandatory:!1,touch:!1}),t)}),{}}}),Ze=$({...Re()},"VStepperWindowItem"),Y=L()({name:"VStepperWindowItem",props:Ze(),setup(e,f){let{slots:t}=f;return R(()=>{const a=le.filterProps(e);return n(le,q({_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,...he()},"Stepper"),et=$({...Qe(),...Te({mandatory:"force",selectedClass:"v-stepper-item--selected"}),...Ee(),...ge(ue(),["prevText","nextText"])},"VStepper"),tt=L()({name:"VStepper",props:et(),emits:{"update:modelValue":e=>!0},setup(e,f){let{slots:t}=f;const{items:a,next:r,prev:s,selected:c}=je(e,J),{displayClasses:d,mobile:m}=oe(e),{completeIcon:l,editIcon:x,errorIcon:w,color:I,editable:V,prevText:b,nextText:o}=ke(e),i=S(()=>e.items.map((_,z)=>{const E=Q(_,e.itemTitle,_),G=Q(_,e.itemValue,z+1);return{title:E,value:G,raw:_}})),k=S(()=>a.value.findIndex(_=>c.value.includes(_.id))),D=S(()=>e.disabled?e.disabled:k.value===0?"prev":k.value===a.value.length-1?"next":!1);return _e({VStepperItem:{editable:V,errorIcon:w,completeIcon:l,editIcon:x,prevText:b,nextText:o},VStepperActions:{color:I,disabled:D,prevText:b,nextText:o}}),R(()=>{const _=ne.filterProps(e),z=!!(t.header||e.items.length),E=e.items.length>0,G=!e.hideActions&&!!(E||t.actions);return n(ne,q(_,{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":m.value},d.value,e.class],style:e.style}),{default:()=>{var K,X;return[z&&n(ce,{key:"stepper-header"},{default:()=>[i.value.map((B,N)=>{let{raw:O,...Z}=B;return p(j,null,[!!N&&n(Ne,null,null),n(H,Z,{default:t[`header-item.${Z.value}`]??t.header,icon:t.icon,title:t.title,subtitle:t.subtitle})])})]}),E&&n(de,{key:"stepper-window"},{default:()=>[i.value.map(B=>n(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))}}))]}),(K=t.default)==null?void 0:K.call(t,{prev:s,next:r}),G&&(((X=t.actions)==null?void 0:X.call(t,{next:r,prev:s}))??n(qe,{key:"stepper-actions","onClick:prev":s,"onClick:next":r},t))]}})}),{prev:s,next:r}}}),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"},Vt={__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:f,emit:t}){const{smAndDown:a}=oe(),r=e,s=M(1),c=M(!1),d=M(),m=t,{$gettext:l}=se();async function x(){await d.value.open(l("Warning"),l("If you close this form now, your modifications won't be saved. Do you confirm?"),{color:"warning",agreeLabel:l("Yes"),cancelLabel:l("No")})&&m("close")}async function w(V,b){const o=r.getVFormRef(r.steps[V-1]);if(o!==void 0){const{valid:i}=await o.validate();if(!i)return;if(r.validateObject)try{await r.validateObject(V)}catch(k){m("validationError",V,k.response.data);return}}s.value=b}function I(){c.value=!0,m("create")}return f({working:c}),(V,b)=>(y(),W("div",at,[n(tt,{modelValue:s.value,"onUpdate:modelValue":b[1]||(b[1]=o=>s.value=o),mobile:!g(a)},{default:u(()=>[n(g(me),{ref_key:"confirm",ref:d},null,512),n(ce,{class:"align-center px-10"},{default:u(()=>[n(Fe,{src:ze,"max-width":"190",class:"hidden-sm-and-down"}),(y(!0),W(j,null,F(e.steps,(o,i)=>(y(),C(H,{key:o.name,color:"primary",value:i+1,complete:s.value>i+1},{default:u(()=>[h(v(o.title),1)]),_:2},1032,["value","complete"]))),128)),n(H,{value:e.steps.length+1},{default:u(()=>[h(v(g(l)("Summary")),1)]),_:1},8,["value"]),n(A,{icon:"mdi-close",color:"primary",size:g(a)?"small":"x-large",variant:"text",onClick:x},null,8,["size"])]),_:1}),n(de,{class:"mt-4 d-flex justify-center"},{default:u(()=>[(y(!0),W(j,null,F(e.steps,(o,i)=>(y(),C(Y,{key:o.name,value:i+1,class:"flex-grow-1 ma-10"},{default:u(()=>[n(De,{fluid:""},{default:u(()=>[n(ie,{align:"center",justify:"center"},{default:u(()=>[n(T,{cols:"8",align:"start"},{default:u(()=>[p("div",lt,[p("span",nt,v(e.title),1),h(" / "+v(o.title),1)]),U(V.$slots,`form.${o.name}`,{step:o,currentStep:i+1})]),_:2},1024)]),_:2},1024)]),_:2},1024),p("div",st,[i+1>1?(y(),C(A,{key:0,class:"mr-10",variant:"text",onClick:k=>s.value=i},{default:u(()=>[h(v(g(l)("Back")),1)]),_:2},1032,["onClick"])):re("",!0),n(A,{color:"primary",size:"large",onClick:k=>w(i+1,i+2)},{default:u(()=>[h(v(g(l)("Next")),1)]),_:2},1032,["onClick"])])]),_:2},1032,["value"]))),128)),n(Y,{value:e.steps.length+1,class:"flex-grow-0"},{default:u(()=>[p("div",rt,v(g(l)("Summary")),1),n(Ye,{sections:e.summarySections,onModifyStep:b[0]||(b[0]=o=>s.value=o)},xe({_:2},[F(V.$slots,(o,i)=>({name:i,fn:u(k=>[U(V.$slots,i,we(Ie(k)))])}))]),1032,["sections"]),p("div",ot,[n(A,{color:"primary",size:"large",loading:c.value,onClick:I},{default:u(()=>[h(v(g(l)("Confirm and create")),1)]),_:1},8,["loading"])])]),_:3},8,["value"])]),_:3})]),_:3},8,["modelValue","mobile"])]))}};export{Vt as _};
@@ -0,0 +1 @@
1
+ import{j as d,g as _,k as c,c as b,o as f,w as t,a,l as u,t as p,e as n,b as w,m as V,F as k,f as x}from"./index-CTxlYqj4.js";import{a as v}from"./admin-CjK02gmr.js";import{V as y,a as C,b as N}from"./VCard-DRptUN8Y.js";import{V as T}from"./VDataTable-CYPG0MtF.js";import{p as A}from"./parameters-1TAbI5b7.js";import{V as F,a as $}from"./VToolbar-Cd2iSn8H.js";import{V as B,a as D}from"./VRow-B-csPNw7.js";import"./tag-Dx3OexMp.js";import"./VAvatar-x_79C0tA.js";import"./VProgressCircular-ubzZW5PC.js";import"./VSelect-tV4GZAtn.js";import"./VTextField-CWm47OUI.js";import"./forwardRefs-BSESyuUp.js";import"./ssrBoot-DGgZQEVC.js";import"./VMenu-DTm7W1Hp.js";import"./VCheckboxBtn-xrhfoOlo.js";import"./VSelectionControl-Bdgm37Tl.js";import"./VChip-Def9BYoN.js";import"./VTable-B-HE2nmK.js";import"./filter-DaBUD6Rp.js";/* empty css */const W=["href"],j={href:"https://modoboa.org/weblog/",target:"_blank"},G={__name:"NewsFeedWidget",async setup(h){let e,o;const r=_([]),s=[{title:"",key:"title"},{title:"",key:"published",align:"end"}],i=([e,o]=c(()=>v.getNewsFeed()),e=await e,o(),e);return r.value=i.data,(l,g)=>(f(),b(N,{title:l.$gettext("Latest news")},{default:t(()=>[a(y,null,{default:t(()=>[a(T,{headers:s,items:r.value,"hide-default-header":"","hide-default-footer":""},{"item.title":t(({item:m})=>[n("a",{href:m.link,target:"_blank"},p(m.title),9,W)]),"item.published":t(({item:m})=>[u(p(l.$date(m.published)),1)]),_:2},1032,["items"])]),_:1}),a(C,{class:"justify-center"},{default:t(()=>[n("div",null,[n("a",j,p(l.$gettext("Visit the official weblog for more information")),1)])]),_:1})]),_:1},8,["title"]))}},I=d(G,[["__scopeId","data-v-e0975b37"]]),M={__name:"DashboardView",async setup(h){let e,o;const{$gettext:r}=w(),s=_(""),i=([e,o]=c(()=>A.getGlobalApplication("core")),e=await e,o(),e);return i.data.params.custom_welcome_message?s.value=i.data.params.custom_welcome_message:s.value=r("Welcome to Modoboa"),(l,g)=>(f(),V(k,null,[a(F,{flat:""},{default:t(()=>[a($,null,{default:t(()=>[u(p(s.value),1)]),_:1})]),_:1}),a(B,null,{default:t(()=>[a(D,{sm:"12",md:"6"},{default:t(()=>[a(x(I))]),_:1})]),_:1})],64))}},re=d(M,[["__scopeId","data-v-9687559e"]]);export{re as default};
@@ -1 +1 @@
1
- import{m as I,b as L,g as v,d as j,c as r,o,w as e,a as l,e as O,l as y,t as s,f as u,p as V,k as m,M as U,i as B}from"./index-BA5nENc7.js";import{d as h}from"./domains-BKPjvqA_.js";import{c as $,V as G,a as H,b as q}from"./VCard-CgG7Sw1Z.js";import{V as F}from"./VDataTableVirtual-BR3-3ZhB.js";import{V as A,d as C}from"./VAvatar-BLlAVJo2.js";import{V as J}from"./VAutocomplete-QADGK4Mr.js";import{V as K,a as D}from"./VRow-CnohEaAX.js";const P={class:"headline"},Q={key:0,class:"headline"},W={key:1,class:"headline"},X={key:0},oe={__name:"DomainAdminList",props:{domain:{type:Object,default:()=>{}},dialogMode:{type:Boolean,default:!1}},emits:["close"],setup(c,{emit:M}){const x=I(),{$gettext:a}=L(),f=c,R=M,p=v([]),k=v([]),S=v([{title:a("Username"),value:"username"},{title:a("Name"),value:"name"},{title:"",value:"actions",align:"end",sortable:!1}]),_=v(!1),d=v(null);function w(){k.value.push({}),_.value=!0}function E(){_.value=!1,R("close")}function g(n){h.getDomainAdministrators(n.pk).then(t=>{k.value=t.data})}function b(){U.getAll({role:[B.RESELLER,B.DOMAIN_ADMIN],page_size:50}).then(n=>{p.value=n.data.results.filter(t=>k.value.find(i=>i.id===t.pk)===void 0)})}function T(){h.addDomainAdministrator(f.domain.pk,d.value.pk).then(()=>{g(f.domain),p.value=p.value.filter(n=>n.pk!==d.value.pk),d.value=null,_.value=!1,x.displayNotification({msg:a("Administrator added")})})}function z(n){h.removeDomainAdministrator(f.domain.pk,n.id).then(()=>{g(f.domain),b(),x.displayNotification({msg:a("Administrator removed")})})}return j(()=>{g(f.domain),b()}),(n,t)=>(o(),r(q,null,{default:e(()=>[l($,null,{default:e(()=>[O("span",P,[c.dialogMode?(o(),y("div",Q,s(u(a)("Administrators of"))+" "+s(c.domain.name),1)):(o(),y("div",W,s(u(a)("Administrators")),1))])]),_:1}),l(G,null,{default:e(()=>[l(F,{headers:S.value,items:k.value},{"item.username":e(({item:i})=>[i.id?(o(),y("span",X,s(i.username),1)):(o(),r(J,{key:1,modelValue:d.value,"onUpdate:modelValue":t[0]||(t[0]=N=>d.value=N),label:u(a)("Select an account"),items:p.value,variant:"outlined","item-title":"username",class:"mt-5","return-object":""},{append:e(()=>[d.value?(o(),r(A,{key:0,variant:"text",color:"primary",size:"x-large",onClick:T},{default:e(()=>[l(C,null,{default:e(()=>t[1]||(t[1]=[m("mdi-content-save")])),_:1,__:[1]})]),_:1})):V("",!0)]),_:1},8,["modelValue","label","items"]))]),"item.name":e(({item:i})=>[m(s(i.first_name)+" "+s(i.last_name),1)]),"item.actions":e(({item:i})=>[i.id?(o(),r(A,{key:0,variant:"text",color:"red",title:u(a)("Remove this administrator"),size:"x-large",onClick:N=>z(i)},{default:e(()=>[l(C,null,{default:e(()=>t[2]||(t[2]=[m("mdi-delete-outline")])),_:1,__:[2]})]),_:2},1032,["title","onClick"])):V("",!0)]),_:2},1032,["headers","items"])]),_:1}),l(H,null,{default:e(()=>[l(K,null,{default:e(()=>[l(D,{align:c.dialogMode?"left":"right"},{default:e(()=>[_.value?V("",!0):(o(),r(A,{key:0,color:"primary",variant:"outlined",onClick:w},{default:e(()=>[l(C,{small:""},{default:e(()=>t[3]||(t[3]=[m("mdi-plus")])),_:1,__:[3]}),m(" "+s(u(a)("Add administrator")),1)]),_:1}))]),_:1},8,["align"]),c.dialogMode?(o(),r(D,{key:0,align:"right"},{default:e(()=>[l(A,{color:"grey darken-1",variant:"text",onClick:E},{default:e(()=>[m(s(u(a)("Close")),1)]),_:1})]),_:1})):V("",!0)]),_:1})]),_:1})]),_:1}))}};export{oe as _};
1
+ import{n as I,b as L,g as v,d as j,c as r,o,w as e,a as l,e as O,m as y,t as s,f as u,q as V,l as m,N as U,i as B}from"./index-CTxlYqj4.js";import{d as h}from"./domains-HueJ9pRR.js";import{c as $,V as q,a as G,b as H}from"./VCard-DRptUN8Y.js";import{V as F}from"./VDataTableVirtual-B6iCEfal.js";import{V as A,d as C}from"./VAvatar-x_79C0tA.js";import{V as J}from"./VAutocomplete-CfnbXRi6.js";import{V as K,a as D}from"./VRow-B-csPNw7.js";const P={class:"headline"},Q={key:0,class:"headline"},W={key:1,class:"headline"},X={key:0},oe={__name:"DomainAdminList",props:{domain:{type:Object,default:()=>{}},dialogMode:{type:Boolean,default:!1}},emits:["close"],setup(c,{emit:M}){const x=I(),{$gettext:a}=L(),f=c,R=M,p=v([]),_=v([]),S=v([{title:a("Username"),value:"username"},{title:a("Name"),value:"name"},{title:"",value:"actions",align:"end",sortable:!1}]),k=v(!1),d=v(null);function w(){_.value.push({}),k.value=!0}function E(){k.value=!1,R("close")}function g(n){h.getDomainAdministrators(n.pk).then(t=>{_.value=t.data})}function N(){U.getAll({role:[B.RESELLER,B.DOMAIN_ADMIN],page_size:50}).then(n=>{p.value=n.data.results.filter(t=>_.value.find(i=>i.id===t.pk)===void 0)})}function T(){h.addDomainAdministrator(f.domain.pk,d.value.pk).then(()=>{g(f.domain),p.value=p.value.filter(n=>n.pk!==d.value.pk),d.value=null,k.value=!1,x.displayNotification({msg:a("Administrator added")})})}function z(n){h.removeDomainAdministrator(f.domain.pk,n.id).then(()=>{g(f.domain),N(),x.displayNotification({msg:a("Administrator removed")})})}return j(()=>{g(f.domain),N()}),(n,t)=>(o(),r(H,null,{default:e(()=>[l($,null,{default:e(()=>[O("span",P,[c.dialogMode?(o(),y("div",Q,s(u(a)("Administrators of"))+" "+s(c.domain.name),1)):(o(),y("div",W,s(u(a)("Administrators")),1))])]),_:1}),l(q,null,{default:e(()=>[l(F,{headers:S.value,items:_.value},{"item.username":e(({item:i})=>[i.id?(o(),y("span",X,s(i.username),1)):(o(),r(J,{key:1,modelValue:d.value,"onUpdate:modelValue":t[0]||(t[0]=b=>d.value=b),label:u(a)("Select an account"),items:p.value,variant:"outlined","item-title":"username",class:"mt-5","return-object":""},{append:e(()=>[d.value?(o(),r(A,{key:0,variant:"text",color:"primary",size:"x-large",onClick:T},{default:e(()=>[l(C,null,{default:e(()=>t[1]||(t[1]=[m("mdi-content-save")])),_:1,__:[1]})]),_:1})):V("",!0)]),_:1},8,["modelValue","label","items"]))]),"item.name":e(({item:i})=>[m(s(i.first_name)+" "+s(i.last_name),1)]),"item.actions":e(({item:i})=>[i.id?(o(),r(A,{key:0,variant:"text",color:"red",title:u(a)("Remove this administrator"),size:"x-large",onClick:b=>z(i)},{default:e(()=>[l(C,null,{default:e(()=>t[2]||(t[2]=[m("mdi-delete-outline")])),_:1,__:[2]})]),_:2},1032,["title","onClick"])):V("",!0)]),_:2},1032,["headers","items"])]),_:1}),l(G,null,{default:e(()=>[l(K,null,{default:e(()=>[l(D,{align:c.dialogMode?"left":"right"},{default:e(()=>[k.value?V("",!0):(o(),r(A,{key:0,color:"primary",variant:"outlined",onClick:w},{default:e(()=>[l(C,{small:""},{default:e(()=>t[3]||(t[3]=[m("mdi-plus")])),_:1,__:[3]}),m(" "+s(u(a)("Add administrator")),1)]),_:1}))]),_:1},8,["align"]),c.dialogMode?(o(),r(D,{key:0,align:"right"},{default:e(()=>[l(A,{color:"grey darken-1",variant:"text",onClick:E},{default:e(()=>[m(s(u(a)("Close")),1)]),_:1})]),_:1})):V("",!0)]),_:1})]),_:1})]),_:1}))}};export{oe as _};
@@ -0,0 +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,j as Q,M as z,F as H}from"./index-CTxlYqj4.js";import{c as W,b as X,a as Y,_ as Z}from"./DomainTransportForm-Brvt1I8k.js";import{L as ee}from"./LoadingData-BT9tD67O.js";import{p as ae}from"./parameters-1TAbI5b7.js";import{_ as te}from"./ResourcesForm-k0MAKh89.js";import{d as j}from"./domains-HueJ9pRR.js";import{g as N,d as w,V as B}from"./VAvatar-x_79C0tA.js";import{V,c as F,a as h,b as le}from"./VExpansionPanels-DpJzLCB-.js";import{V as _,a as i}from"./VRow-B-csPNw7.js";import{u as oe}from"./domains.store-BAoaJY6i.js";import{V as se,a as ue}from"./VToolbar-Cd2iSn8H.js";import"./ChoiceField-3mhgf6ob.js";import"./VForm-CXf-xKYz.js";import"./tag-Dx3OexMp.js";import"./VTextField-CWm47OUI.js";import"./VProgressCircular-ubzZW5PC.js";import"./forwardRefs-BSESyuUp.js";import"./ssrBoot-DGgZQEVC.js";import"./VSwitch-HiyBjUWI.js";import"./VSelectionControl-Bdgm37Tl.js";import"./VAutocomplete-CfnbXRi6.js";import"./VSelect-tV4GZAtn.js";import"./VMenu-DTm7W1Hp.js";import"./VCheckboxBtn-xrhfoOlo.js";import"./VChip-Def9BYoN.js";import"./filter-DaBUD6Rp.js";import"./VCheckbox-DTbWq72R.js";import"./VContainer-CC8lqRXa.js";/* empty css */const ne={key:1},re={key:0},ie={key:0},me={key:0},de={class:"mr-2"},ce={class:"mr-2"},fe={class:"mr-2"},_e={key:0},pe={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=$,p=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(),O=U(()=>{const m={generalForm:C,limitationForm:A,dnsForm:M};return t.value.type==="relaydomain"&&(m.transportForm=T),v.value.params&&v.value.params.enable_domain_limits&&(p.value.role===b.SUPER_ADMIN||p.value.role===b.RESELLER)&&(m.resourcesForm=L),m}),S=f(!1);async function G(){S.value=!1,D.value=[];for(const[m,r]of Object.entries(O.value))if(r.value!=null){const{valid:l}=await r.value.vFormRef.validate();l||(S.value=!0,D.value.push(m))}if(!S.value){y.value=!0;try{const m=JSON.parse(JSON.stringify(t.value));m.transport===null&&delete m.transport,m.type==="relaydomain"&&T.value.checkSettingTypes(m),m.message_limit===""&&(m.message_limit=null),await j.updateDomain(t.value.pk,m),x.push({name:"DomainDetail",params:{id:t.value.pk}})}finally{y.value=!1}}}return J(()=>{ae.getGlobalApplication("limits").then(m=>{v.value.data=m.data})}),(m,r)=>y.value?(u(),d(ee,{key:0})):(u(),g("div",ne,[a(le,{modelValue:D.value,"onUpdate:modelValue":r[5]||(r[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(_,{"no-gutters":""},{default:e(()=>[a(i,{cols:"4"},{default:e(()=>[c(o(s(n)("General")),1)]),_:1}),a(i,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",re)):(u(),d(_,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(i,{cols:"6"},{default:e(()=>[c(o(s(n)("Name: "))+" "+o(t.value.name),1)]),_:1}),a(i,{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":r[0]||(r[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(_,{"no-gutters":""},{default:e(()=>[a(i,{cols:"4"},{default:e(()=>[c(o(s(n)("DNS")),1)]),_:1}),a(i,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",ie)):(u(),d(_,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(i,{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(i,{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":r[1]||(r[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(_,{"no-gutters":""},{default:e(()=>[a(i,{cols:"4"},{default:e(()=>[c(o(s(n)("Limitations")),1)]),_:1}),a(i,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",me)):(u(),d(_,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(i,{cols:"6"},{default:e(()=>[k("div",de,o(s(n)("Quota: "))+" "+o(t.value.quota),1)]),_:1}),t.value.message_limit?(u(),d(i,{key:0,cols:"6"},{default:e(()=>[k("div",ce,o(s(n)("Sending limit: "))+" "+o(t.value.message_limit),1)]),_:1})):(u(),d(i,{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":r[2]||(r[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(_,{"no-gutters":""},{default:e(()=>[a(i,{cols:"4"},{default:e(()=>[c(o(s(n)("Transport")),1)]),_:1}),a(i,{cols:"8",class:"text-medium-emphasis"},{default:e(()=>[a(N,{"leave-absolute":""},{default:e(()=>[l?(u(),g("span",_e)):(u(),d(_,{key:1,"no-gutters":"",style:{width:"100%"}},{default:e(()=>[a(i,{cols:"6"},{default:e(()=>[k("div",pe,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":r[3]||(r[3]=l=>t.value.transport=l)},null,8,["modelValue"])]),_:1})]),_:1})):P("",!0),v.value.params&&v.value.params.enable_domain_limits&&(p.value.role===s(b).SUPER_ADMIN||p.value.role===s(b).RESELLER)?(u(),d(V,{key:1,value:"resourcesForm",eager:""},{default:e(()=>[a(F,null,{default:e(()=>[a(_,{"no-gutters":""},{default:e(()=>[a(i,{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":r[4]||(r[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:r[6]||(r[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(),j.getDomain(n.params.id).then(p=>{E.value=p.data}),(p,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))}},ze=Q(ye,[["__scopeId","data-v-2221e277"]]);export{ze as default};
@@ -1 +1 @@
1
- import{C as M}from"./ChoiceField-BRXxbiWf.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 l,e as D,_ as K,d as S,l as U,p as C,t as N,F as q,E as T}from"./index-BA5nENc7.js";import{r as y,V as $}from"./VForm-B967suxO.js";import{V as k}from"./VTextField-4NZ7IznA.js";import{V as B}from"./VSwitch-PAZTCa-8.js";import{V as j}from"./VAutocomplete-QADGK4Mr.js";import{V as A}from"./VCheckbox-DPPPkFg8.js";const X={__name:"DomainGeneralForm",props:{modelValue:{type:Object,default:null}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,a=o,u=R({get(){return i.modelValue},set(_){a("update:modelValue",_)}}),t=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:t}),(_,p)=>(v(),x($,{ref_key:"vFormRef",ref:t},{default:h(()=>[r(k,{modelValue:u.value.name,"onUpdate:modelValue":p[0]||(p[0]=d=>u.value.name=d),label:l(m)("Domain name (ex: domain.tld)"),rules:[l(y).required],variant:"outlined",class:"mb-5"},null,8,["modelValue","label","rules"]),r(l(M),{modelValue:u.value.type,"onUpdate:modelValue":[p[1]||(p[1]=d=>u.value.type=d),e],label:l(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:l(m)("Enabled"),hint:l(m)("Control if this domain will be allowed to send and receive messages"),color:"primary","persistent-hint":""},null,8,["modelValue","label","hint"])]),_:1},512))}},Y={__name:"DomainDNSForm",props:{modelValue:{type:Object,default:()=>{}}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),a=R(()=>m.modelValue),u=b([{label:"1024",value:1024},{label:"2048",value:2048},{label:"4096",value:4096}]);return c({vFormRef:i}),(t,e)=>(v(),x($,{ref_key:"vFormRef",ref:i},{default:h(()=>[D("div",null,[r(B,{modelValue:a.value.enable_dns_checks,"onUpdate:modelValue":e[0]||(e[0]=s=>a.value.enable_dns_checks=s),label:l(o)("Enable DNS checks"),color:"primary"},null,8,["modelValue","label"]),r(B,{modelValue:a.value.enable_dkim,"onUpdate:modelValue":e[1]||(e[1]=s=>a.value.enable_dkim=s),label:l(o)("Enable DKIM signing"),color:"primary"},null,8,["modelValue","label"]),r(k,{modelValue:a.value.dkim_key_selector,"onUpdate:modelValue":e[2]||(e[2]=s=>a.value.dkim_key_selector=s),label:l(o)("DKIM key selector"),disabled:!a.value.enable_dkim,variant:"outlined"},null,8,["modelValue","label","disabled"]),r(l(M),{modelValue:a.value.dkim_key_length,"onUpdate:modelValue":e[3]||(e[3]=s=>a.value.dkim_key_length=s),label:l(o)("DKIM key length"),choices:u.value,disabled:!a.value.enable_dkim},null,8,["modelValue","label","choices","disabled"])])]),_:1},512))}},Z={__name:"DomainLimitationsForm",props:{modelValue:{type:Object,default:null}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),a=R(()=>m.modelValue);return c({vFormRef:i}),(u,t)=>(v(),x($,{ref_key:"vFormRef",ref:i},{default:h(()=>[r(k,{modelValue:a.value.quota,"onUpdate:modelValue":t[0]||(t[0]=e=>a.value.quota=e),label:l(o)("Quota"),hint:l(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:[l(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:a.value.default_mailbox_quota,"onUpdate:modelValue":t[1]||(t[1]=e=>a.value.default_mailbox_quota=e),label:l(o)("Default mailbox quota"),hint:l(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:[l(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:a.value.message_limit,"onUpdate:modelValue":t[2]||(t[2]=e=>a.value.message_limit=e),label:l(o)("Message sending limit"),hint:l(o)("Number of messages this domain can send per day. Leave empty for no limit."),type:"number","persistent-hint":"",variant:"outlined",rules:[l(y).numericOrNull]},null,8,["modelValue","label","hint","rules"])]),_:1},512))}},E="transports",O={getAll(){return K.get(`/${E}/`)}},G={class:"m-label"},I={class:"m-label"},ee={__name:"DomainTransportForm",props:{modelValue:{type:Object,default:()=>{}}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,a=o,u=b(),t=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(){t.value.service=e.value.name,a("update:modelValue",t.value)}return S(()=>{t.value={...i.modelValue},O.getAll().then(d=>{s.value=d.data,t.value.service&&(e.value=s.value.find(f=>f.name===t.value.service))})}),c({checkSettingTypes:_,service:e,vFormRef:u}),(d,f)=>(v(),x($,{ref_key:"vFormRef",ref:u},{default:h(()=>[D("label",G,N(l(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:[l(y).required]},null,8,["modelValue","items","rules"]),e.value?(v(!0),U(q,{key:0},T(e.value.settings,(n,w)=>(v(),U(q,{key:w},[n.type==="str"||n.type==="int"?(v(),U(q,{key:0},[D("label",I,N(n.label),1),r(k,{modelValue:t.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[F=>t.value.settings[`${e.value.name}_${n.name}`]=F,p],variant:"outlined",type:t.value.type==="int"?"number":"text",rules:[!!n.required||l(y).required]},null,8,["modelValue","onUpdate:modelValue","type","rules"])],64)):n.type==="boolean"?(v(),x(A,{key:1,modelValue:t.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[F=>t.value.settings[`${e.value.name}_${n.name}`]=F,p],label:n.label},null,8,["modelValue","onUpdate:modelValue","label"])):C("",!0)],64))),128)):C("",!0)]),_:1},512))}};export{ee as _,Z as a,Y as b,X as c};
1
+ import{C as M}from"./ChoiceField-3mhgf6ob.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 l,e as D,_ as K,d as S,m as q,q as C,t as N,F as U,G as T}from"./index-CTxlYqj4.js";import{r as y,V as $}from"./VForm-CXf-xKYz.js";import{V as k}from"./VTextField-CWm47OUI.js";import{V as B}from"./VSwitch-HiyBjUWI.js";import{V as j}from"./VAutocomplete-CfnbXRi6.js";import{V as A}from"./VCheckbox-DTbWq72R.js";const X={__name:"DomainGeneralForm",props:{modelValue:{type:Object,default:null}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,a=o,u=R({get(){return i.modelValue},set(_){a("update:modelValue",_)}}),t=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:t}),(_,p)=>(v(),x($,{ref_key:"vFormRef",ref:t},{default:h(()=>[r(k,{modelValue:u.value.name,"onUpdate:modelValue":p[0]||(p[0]=d=>u.value.name=d),label:l(m)("Domain name (ex: domain.tld)"),rules:[l(y).required],variant:"outlined",class:"mb-5"},null,8,["modelValue","label","rules"]),r(l(M),{modelValue:u.value.type,"onUpdate:modelValue":[p[1]||(p[1]=d=>u.value.type=d),e],label:l(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:l(m)("Enabled"),hint:l(m)("Control if this domain will be allowed to send and receive messages"),color:"primary","persistent-hint":""},null,8,["modelValue","label","hint"])]),_:1},512))}},Y={__name:"DomainDNSForm",props:{modelValue:{type:Object,default:()=>{}}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),a=R(()=>m.modelValue),u=b([{label:"1024",value:1024},{label:"2048",value:2048},{label:"4096",value:4096}]);return c({vFormRef:i}),(t,e)=>(v(),x($,{ref_key:"vFormRef",ref:i},{default:h(()=>[D("div",null,[r(B,{modelValue:a.value.enable_dns_checks,"onUpdate:modelValue":e[0]||(e[0]=s=>a.value.enable_dns_checks=s),label:l(o)("Enable DNS checks"),color:"primary"},null,8,["modelValue","label"]),r(B,{modelValue:a.value.enable_dkim,"onUpdate:modelValue":e[1]||(e[1]=s=>a.value.enable_dkim=s),label:l(o)("Enable DKIM signing"),color:"primary"},null,8,["modelValue","label"]),r(k,{modelValue:a.value.dkim_key_selector,"onUpdate:modelValue":e[2]||(e[2]=s=>a.value.dkim_key_selector=s),label:l(o)("DKIM key selector"),disabled:!a.value.enable_dkim,variant:"outlined"},null,8,["modelValue","label","disabled"]),r(l(M),{modelValue:a.value.dkim_key_length,"onUpdate:modelValue":e[3]||(e[3]=s=>a.value.dkim_key_length=s),label:l(o)("DKIM key length"),choices:u.value,disabled:!a.value.enable_dkim},null,8,["modelValue","label","choices","disabled"])])]),_:1},512))}},Z={__name:"DomainLimitationsForm",props:{modelValue:{type:Object,default:null}},setup(V,{expose:c}){const{$gettext:o}=g(),m=V,i=b(),a=R(()=>m.modelValue);return c({vFormRef:i}),(u,t)=>(v(),x($,{ref_key:"vFormRef",ref:i},{default:h(()=>[r(k,{modelValue:a.value.quota,"onUpdate:modelValue":t[0]||(t[0]=e=>a.value.quota=e),label:l(o)("Quota"),hint:l(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:[l(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:a.value.default_mailbox_quota,"onUpdate:modelValue":t[1]||(t[1]=e=>a.value.default_mailbox_quota=e),label:l(o)("Default mailbox quota"),hint:l(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:[l(y).required]},null,8,["modelValue","label","hint","rules"]),r(k,{modelValue:a.value.message_limit,"onUpdate:modelValue":t[2]||(t[2]=e=>a.value.message_limit=e),label:l(o)("Message sending limit"),hint:l(o)("Number of messages this domain can send per day. Leave empty for no limit."),type:"number","persistent-hint":"",variant:"outlined",rules:[l(y).numericOrNull]},null,8,["modelValue","label","hint","rules"])]),_:1},512))}},G="transports",O={getAll(){return K.get(`/${G}/`)}},E={class:"m-label"},I={class:"m-label"},ee={__name:"DomainTransportForm",props:{modelValue:{type:Object,default:()=>{}}},emits:["update:modelValue"],setup(V,{expose:c,emit:o}){const{$gettext:m}=g(),i=V,a=o,u=b(),t=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(){t.value.service=e.value.name,a("update:modelValue",t.value)}return S(()=>{t.value={...i.modelValue},O.getAll().then(d=>{s.value=d.data,t.value.service&&(e.value=s.value.find(f=>f.name===t.value.service))})}),c({checkSettingTypes:_,service:e,vFormRef:u}),(d,f)=>(v(),x($,{ref_key:"vFormRef",ref:u},{default:h(()=>[D("label",E,N(l(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:[l(y).required]},null,8,["modelValue","items","rules"]),e.value?(v(!0),q(U,{key:0},T(e.value.settings,(n,w)=>(v(),q(U,{key:w},[n.type==="str"||n.type==="int"?(v(),q(U,{key:0},[D("label",I,N(n.label),1),r(k,{modelValue:t.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[F=>t.value.settings[`${e.value.name}_${n.name}`]=F,p],variant:"outlined",type:t.value.type==="int"?"number":"text",rules:[!!n.required||l(y).required]},null,8,["modelValue","onUpdate:modelValue","type","rules"])],64)):n.type==="boolean"?(v(),x(A,{key:1,modelValue:t.value.settings[`${e.value.name}_${n.name}`],"onUpdate:modelValue":[F=>t.value.settings[`${e.value.name}_${n.name}`]=F,p],label:n.label},null,8,["modelValue","onUpdate:modelValue","label"])):C("",!0)],64))),128)):C("",!0)]),_:1},512))}};export{ee as _,Z as a,Y as b,X as c};
@@ -0,0 +1,5 @@
1
+ import{_ as ve}from"./DomainAdminList-eJFjURqQ.js";import{c as O}from"./colors-DoZdCu1D.js";import{b as R,m as x,o as r,e as n,a as t,l as i,t as l,J as ie,w as e,F as L,G as ee,f as o,g as k,K as J,h as G,d as _e,L as te,r as re,c as m,q as I,j as se,n as pe,M as ge}from"./index-CTxlYqj4.js";import{f as U,V as C,d as ye}from"./VAvatar-x_79C0tA.js";import{V as ke}from"./VTable-B-HE2nmK.js";import{d as B}from"./domains-HueJ9pRR.js";import{V as ue,a as de}from"./VToolbar-Cd2iSn8H.js";import{V as le}from"./VSpacer-BcQnH0oL.js";import{V as F,b as z,c as W,a as ce}from"./VCard-DRptUN8Y.js";import{V as b,a as c}from"./VRow-B-csPNw7.js";import{V as be}from"./VSheet-BV83IblO.js";import{V as he,a as xe,b as we}from"./VExpansionPanels-DpJzLCB-.js";import{V as S}from"./VAlert-BiAap6Bx.js";import{_ as Ve}from"./ConfirmDialog-q002W_T5.js";import{V as D}from"./VChip-Def9BYoN.js";import{V as De}from"./VDataTableVirtual-B6iCEfal.js";import{V as oe}from"./VDialog-DzctVbsK.js";import{L as $e}from"./LoadingData-BT9tD67O.js";import{_ as Ce}from"./ResourcesForm-k0MAKh89.js";import{T as ne}from"./TimeSerieChart-CjiX490n.js";import{V as Me,a as Ne,b as Q,c as Z}from"./VTabs-DCb8kj6G.js";import"./VAutocomplete-CfnbXRi6.js";import"./VSelect-tV4GZAtn.js";import"./VTextField-CWm47OUI.js";import"./tag-Dx3OexMp.js";import"./VProgressCircular-ubzZW5PC.js";import"./forwardRefs-BSESyuUp.js";import"./ssrBoot-DGgZQEVC.js";import"./VMenu-DTm7W1Hp.js";import"./VCheckboxBtn-xrhfoOlo.js";import"./VSelectionControl-Bdgm37Tl.js";import"./filter-DaBUD6Rp.js";/* empty css */import"./VDataTable-CYPG0MtF.js";import"./VContainer-CC8lqRXa.js";import"./VForm-CXf-xKYz.js";import"./VPicker-F4Rx1F-m.js";import"./VWindowItem-pE5PWxHf.js";const Ie={class:"text-h6"},Te={width:"40%"},Se={class:"text-white"},Ke={class:"text-white"},Ae={class:"text-white"},Pe={class:"text-white"},q={__name:"DmarcSourceTable",props:{title:{type:String,default:""},color:{type:String,default:""},total:{type:Number,default:null},sources:{type:Object,default:null}},setup(s){const{$gettext:a}=R();return(y,d)=>(r(),x("div",null,[n("div",Ie,[i(l(s.title)+" ",1),n("span",{class:ie(`text-${s.color}-lighten-2`)},l(s.total),3)]),t(ke,null,{default:e(()=>[n("tbody",null,[(r(!0),x(L,null,ee(s.sources,(u,f)=>(r(),x(L,{key:f},[n("tr",null,[n("th",Te,l(f),1),n("th",null,l(o(a)("Total")),1),d[0]||(d[0]=n("th",null,"SPF",-1)),d[1]||(d[1]=n("th",null,"DKIM",-1))]),(r(!0),x(L,null,ee(u,(v,w)=>(r(),x("tr",{key:w},[n("td",null,l(w),1),n("td",null,l(v.total),1),n("td",null,[t(U,{color:"green lighten-2",size:"24"},{default:e(()=>[n("span",Se,l(v.spf.success),1)]),_:2},1024),t(U,{color:"red lighten-2 ml-1",size:"24"},{default:e(()=>[n("span",Ke,l(v.spf.failure),1)]),_:2},1024)]),n("td",null,[t(U,{color:"green lighten-2",size:"24"},{default:e(()=>[n("span",Ae,l(v.dkim.success),1)]),_:2},1024),t(U,{color:"red lighten-2 ml-1",size:"24"},{default:e(()=>[n("span",Pe,l(v.dkim.failure),1)]),_:2},1024)])]))),128))],64))),128))])]),_:1})]))}},Fe={key:0},ze={class:"mx-2"},Re={class:"text-subtitle-1"},je={key:1},Le={__name:"DmarcAligmentChart",props:{domain:{type:Object,default:()=>null}},setup(s){const{$gettext:a}=R(),y=["aligned","trusted","forwarded","failed"],d=s,u=k({colors:[O.green.lighten2,O.orange.lighten2,O.blue.lighten2,O.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=J.now(),_=k(w.year),p=k(w.weekNumber),K=k(!1),j=k(!1),E=k(null),A=k([]),M=k({}),X=G(()=>J.fromObject({weekYear:_.value,weekNumber:p.value}).startOf("week")),N=G(()=>J.fromObject({weekYear:_.value,weekNumber:p.value}).endOf("week"));function g(P){let h="";for(const T of P.split(" "))h!==""&&(h+=" "),h+="text-"+T;return h}function Y(){p.value===52?(_.value+=1,p.value=1):p.value+=1}function $(){p.value===1?(_.value-=1,p.value=52):p.value-=1}function H(){if(j.value)return;const P=`${_.value}-${p.value}`;j.value=!0,B.getDomainDmarcAlignment(d.domain.pk,P).then(h=>{if(j.value=!1,h.status===204){K.value=!0;return}M.value={total:0},f.value=h.data,A.value=[];for(const T of y){let V=0;for(const ae in h.data[T])for(const fe in h.data[T][ae])V+=h.data[T][ae][fe].total;M.value.total+=V,M.value[T]=V,A.value.push(V)}})}return _e(()=>H()),te(p,()=>{H()}),te(_,()=>{H()}),(P,h)=>{const T=re("apexchart");return f.value?(r(),x("div",Fe,[t(z,null,{default:e(()=>[t(ue,{dense:"",elevation:"0",class:"mr-2"},{default:e(()=>[t(de,null,{default:e(()=>[i(l(o(a)("Alignment")),1)]),_:1}),t(le),t(C,{icon:"mdi-arrow-left",size:"x-small",onClick:$}),n("span",ze,l(X.value.toLocaleString())+" - "+l(N.value.toLocaleString()),1),t(C,{icon:"mdi-arrow-right",size:"x-small",onClick:Y})]),_:1}),t(F,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"5"},{default:e(()=>[A.value?(r(),m(T,{key:0,type:"pie",height:"350",options:u.value,series:A.value},null,8,["options","series"])):I("",!0)]),_:1}),t(c,{cols:"7"},{default:e(()=>[t(b,null,{default:e(()=>[(r(!0),x(L,null,ee(v.value,V=>(r(),m(c,{key:V.key,cols:"6"},{default:e(()=>[t(be,{outlined:"",color:V.color,rounded:""},{default:e(()=>[t(z,{outlined:"",class:"pa-10 text-center"},{default:e(()=>[n("span",{class:ie("text-h4 "+g(V.color))},l(M.value[V.key]),3),h[1]||(h[1]=n("br",null,null,-1)),n("span",Re,l(V.label),1)]),_:2,__:[1]},1024)]),_:2},1032,["color"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),t(we,{modelValue:E.value,"onUpdate:modelValue":h[0]||(h[0]=V=>E.value=V),class:"mt-2"},{default:e(()=>[t(he,{title:o(a)("Detail")},{default:e(()=>[t(xe,null,{default:e(()=>[t(q,{title:o(a)("Trusted sources"),color:"green",total:M.value.aligned,sources:f.value.aligned},null,8,["title","total","sources"]),t(q,{title:o(a)("Partially trusted sources / Forwarders"),color:"orange",total:M.value.trusted,sources:f.value.trusted,class:"mt-4"},null,8,["title","total","sources"]),t(q,{title:o(a)("Forwarders with ARC"),color:"blue",total:M.value.forwarded,sources:f.value.forwarded,class:"mt-4"},null,8,["title","total","sources"]),t(q,{title:o(a)("Unknown sources / Threats"),color:"red",total:M.value.failed,sources:f.value.failed,class:"mt-4"},null,8,["title","total","sources"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])])):(r(),x("div",je,[K.value?(r(),m(S,{key:0,type:"info",variant:"outlined",prominent:"",border:"start",class:"mt-6"},{default:e(()=>[n("div",null,l(o(a)("DMARC support does not seem to be enabled for this domain.")),1),n("div",null,l(o(a)("If you configured it recently, please wait for the first report to be received and processed.")),1)]),_:1})):I("",!0)]))}}},Be={id:"dkimdns",class:"dkim"},me={__name:"DKIMKeyViewer",props:{domain:{type:Object,default:null}},setup(s){const a=s,y=G(()=>{let u=`v=DKIM1;k=rsa;p=${a.domain.dkim_public_key}`;const f=[];for(;u.length>0;)if(u.length>74)f.push(` "${u.substring(0,74)}"`),u=u.substring(74);else{f.push(` "${u}"`);break}return f.join(`
2
+ `)});function d(){navigator.clipboard.writeText(document.getElementById("dkimdns").textContent)}return(u,f)=>(r(),x("button",{class:"dkimbutton",onClick:f[0]||(f[0]=v=>d())},[n("pre",Be,l(s.domain.dkim_key_selector)+"._domainkey."+l(s.domain.name)+". IN TXT ("+l(y.value)+`)
3
+ }})`,1)]))}},Ee={class:"headline"},Oe={id:"dkimpub",class:"dkim"},Ue={__name:"DomainDKIMKey",props:{domain:{type:Object,default:null}},emits:["close"],setup(s,{emit:a}){const{$gettext:y}=R(),d=a;function u(){navigator.clipboard.writeText(document.getElementById("dkimpub").textContent)}return(f,v)=>(r(),m(z,null,{default:e(()=>[t(W,null,{default:e(()=>[n("span",Ee,l(o(y)("DKIM public key for"))+" "+l(s.domain.name),1)]),_:1}),t(F,null,{default:e(()=>[n("p",null,l(o(y)("Raw format. Click to copy")),1),t(S,{border:"start","colored-border":"","border-color":"primary lighten-3",elevation:"2",dense:""},{default:e(()=>[n("button",{class:"dkimbutton",onClick:v[0]||(v[0]=w=>u())},[n("pre",Oe,l(s.domain.dkim_public_key),1)])]),_:1})]),_:1}),t(F,null,{default:e(()=>[n("p",null,l(o(y)("Bind/named format. Click to copy")),1),t(S,{border:"start","colored-border":"","border-color":"primary lighten-3",elevation:"2",dense:""},{default:e(()=>[t(me,{domain:s.domain},null,8,["domain"])]),_:1})]),_:1}),t(ce,null,{default:e(()=>[t(le),t(C,{onClick:v[1]||(v[1]=w=>d("close"))},{default:e(()=>[i(l(o(y)("Close")),1)]),_:1})]),_:1})]),_:1}))}},qe={class:"text-subtitle-1 text-grey-darken-2 mb-4"},Ge={class:"text-h6"},We={__name:"DomainDNSConfig",props:{domain:{type:Object,default:null}},emits:["close"],setup(s,{emit:a}){const y=a;return(d,u)=>(r(),m(z,null,{default:e(()=>[t(W,{class:"text-h5"},{default:e(()=>[n("span",null,l(d.$gettext("DNS configuration for "))+" "+l(s.domain.name),1)]),_:1}),t(F,null,{default:e(()=>[n("p",qe,l(d.$gettext("Here is an example of DNS configuration (bind format). Replace values between [ ] by the appropriate ones.")),1),t(S,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",color:"white"},{default:e(()=>[u[1]||(u[1]=n("div",{class:"text-h6"},"MX",-1)),n("pre",null,[i("mail."+l(s.domain.name)+". IN A ",1),n("strong",null,"["+l(d.$gettext("IP address of your Modoboa server"))+"]",1),i(`
4
+ @ IN MX 10 mail.`+l(s.domain.name)+".",1)])]),_:1,__:[1]}),t(S,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>u[2]||(u[2]=[n("div",{class:"text-h6"},"SPF",-1),n("pre",null,'@ IN TXT "v=spf1 mx ~all"',-1)])),_:1,__:[2]}),s.domain.enable_dkim&&s.domain.dkim_public_key?(r(),m(S,{key:0,class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[u[3]||(u[3]=n("div",{class:"text-h6"},"DKIM",-1)),t(me,{domain:s.domain},null,8,["domain"])]),_:1,__:[3]})):I("",!0),t(S,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[u[4]||(u[4]=n("div",{class:"text-h6"},"DMARC",-1)),n("pre",null,"_dmarc."+l(s.domain.name)+'. IN TXT "v=DMARC1; p=quarantine; pct=100;"',1)]),_:1,__:[4]}),t(S,{class:"mb-4",border:"start","border-color":"primary lighten-3",elevation:"2",dense:"",color:"white"},{default:e(()=>[n("div",Ge,l(d.$gettext("Auto configuration")),1),n("pre",null,[i("autoconfig."+l(s.domain.name)+". IN CNAME ",1),n("strong",null,"["+l(d.$gettext("hostname of your automx server"))+"]",1),i(`
5
+ autodiscover.`+l(s.domain.name)+". IN CNAME ",1),n("strong",null,"["+l(d.$gettext("hostname of your automx server"))+"]",1)])]),_:1})]),_:1}),t(ce,null,{default:e(()=>[t(le),t(C,{onClick:u[0]||(u[0]=f=>y("close"))},{default:e(()=>[i(l(d.$gettext("Close")),1)]),_:1})]),_:1})]),_:1}))}},Xe=se(We,[["__scopeId","data-v-506783e1"]]),Ye={class:"overline"},He={class:"overline"},Je={key:4,class:"d-flex align-center flex-nowrap mt-4"},Qe={class:"text-subtitle-2"},Ze={class:"ml-6"},et={key:0},tt={key:1},lt={__name:"DNSDetail",props:{modelValue:{type:Object,default:null}},setup(s){const{$gettext:a}=R(),y=pe(),d=s,u=G(()=>d.modelValue),f=k(),v=k({}),w=k([{title:a("Name"),value:"name"},{title:a("Address"),value:"address"},{title:a("Updated"),value:"updated"}]),_=k(!1),p=k(!1),K=k(!1);function j(){navigator.clipboard.writeText(u.value.dkim_public_key),y.displayNotification({msg:a("DKIM key copied to clipboard"),type:"success"})}function E(){const N={dkim_private_key_path:""};B.patchDomain(u.value.pk,N).then(()=>{y.displayNotification({msg:a("A new key will be generated soon. Refresh the page in a moment to see it."),type:"success"}),u.value.dkim_private_key_path="",_.value=!1}).catch(()=>{_.value=!1})}function A(){_.value=!1}async function M(){_.value=!0,B.getDomainDNSDetail(u.value.pk).then(async N=>{v.value=N.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")})?E():A()})}function X(){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")})}return te(u,N=>{N&&B.getDomainDNSDetail(N.pk).then(g=>{v.value=g.data})},{immediate:!0}),(N,g)=>{const Y=re("translate");return u.value?(r(),m(z,{key:0},{default:e(()=>[t(W,null,{default:e(()=>[g[6]||(g[6]=n("span",null," DNS ",-1)),t(C,{class:"ml-2",icon:"mdi-information-outline",title:o(a)("DNS configuration help"),variant:"text",density:"compact",onClick:g[0]||(g[0]=$=>p.value=!0)},null,8,["title"])]),_:1,__:[6]}),t(F,null,{default:e(()=>[t(Y,{class:"overline"},{default:e(()=>g[7]||(g[7]=[i("MX records")])),_:1,__:[7]}),u.value.dns_global_status=="pending"?(r(),m(b,{key:0},{default:e(()=>[t(c,null,{default:e(()=>[t(D,{color:"info",size:"small"},{default:e(()=>[i(l(o(a)("Pending")),1)]),_:1})]),_:1})]),_:1})):(r(),m(De,{key:1,headers:w.value,items:v.value.mx_records},{"item.updated":e(({item:$})=>[i(l(N.$date($.updated)),1)]),_:2},1032,["headers","items"])),n("div",Ye,l(o(a)("Auto configuration")),1),u.value.dns_global_status=="pending"?(r(),m(b,{key:2},{default:e(()=>[t(c,null,{default:e(()=>[t(D,{color:"info",size:"small"},{default:e(()=>[i(l(o(a)("Pending")),1)]),_:1})]),_:1})]),_:1})):(r(),x(L,{key:3},[t(b,null,{default:e(()=>[t(c,null,{default:e(()=>[v.value.autoconfig_record?(r(),m(D,{key:0,color:"success"},{default:e(()=>[i(l(o(a)("autoconfig record (Mozilla): %{ value }",{value:v.value.autoconfig_record.value})),1)]),_:1})):(r(),m(D,{key:1,color:"warning"},{default:e(()=>[i(l(o(a)("autoconfig record (Mozilla) not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[v.value.autodiscover_record?(r(),m(D,{key:0,color:"success"},{default:e(()=>[i(l(o(a)("autodiscover record (Microsoft): %{ value }",{value:v.value.autodiscover_record.value})),1)]),_:1})):(r(),m(D,{key:1,color:"warning"},{default:e(()=>[i(l(o(a)("autodiscover record (Microsoft) not found")),1)]),_:1}))]),_:1})]),_:1}),n("div",He,l(o(a)("Authentication")),1),t(b,null,{default:e(()=>[t(c,null,{default:e(()=>[v.value.spf_record?(r(),m(D,{key:0,color:"success"},{default:e(()=>[i(l(o(a)("SPF record found")),1)]),_:1})):(r(),m(D,{key:1,color:"error"},{default:e(()=>[i(l(o(a)("SPF record not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[v.value.dkim_record?(r(),m(D,{key:0,color:"success"},{default:e(()=>[i(l(o(a)("DKIM record found")),1)]),_:1})):(r(),m(D,{key:1,color:"error"},{default:e(()=>[i(l(o(a)("DKIM record not found")),1)]),_:1}))]),_:1}),t(c,null,{default:e(()=>[v.value.dmarc_record?(r(),m(D,{key:0,color:"success"},{default:e(()=>[i(l(o(a)("DMARC record found")),1)]),_:1})):(r(),m(D,{key:1,color:"error"},{default:e(()=>[i(l(o(a)("DMARC record not found")),1)]),_:1}))]),_:1})]),_:1})],64)),u.value.enable_dkim?(r(),x("div",Je,[n("div",Qe,l(o(a)("DKIM key")),1),n("div",Ze,[u.value.dkim_private_key_path&&u.value.dkim_public_key?(r(),x("div",et,[t(C,{color:"primary",size:"small",onClick:g[1]||(g[1]=$=>K.value=!0)},{default:e(()=>[i(l(o(a)("Show key")),1)]),_:1}),t(C,{icon:"mdi-content-copy",variant:"text",class:"ml-2",title:o(a)("Copy key to clipboard"),onClick:j},null,8,["title"]),t(C,{icon:"mdi-refresh",title:o(a)("Generate a new DKIM key"),variant:"text",loading:_.value,onClick:X},null,8,["title","loading"])])):(r(),x("div",tt,[i(l(o(a)("Not generated"))+" ",1),t(C,{icon:"mdi-reload",color:"primary",variant:"text",loading:_.value,onClick:M},null,8,["loading"])]))])])):I("",!0)]),_:1}),t(oe,{modelValue:p.value,"onUpdate:modelValue":g[3]||(g[3]=$=>p.value=$),"max-width":"800px",persistent:""},{default:e(()=>[t(Xe,{domain:u.value,onClose:g[2]||(g[2]=$=>p.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"]),t(oe,{modelValue:K.value,"onUpdate:modelValue":g[5]||(g[5]=$=>K.value=$),"max-width":"800px",persistent:""},{default:e(()=>[t(Ue,{domain:u.value,onClose:g[4]||(g[4]=$=>K.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"]),t(Ve,{ref_key:"dialog",ref:f},null,512)]),_:1})):I("",!0)}}},at={class:"headline"},ot={__name:"DomainSummary",props:{domain:{type:Object,default:null}},setup(s){const{$gettext:a}=R();return(y,d)=>s.domain?(r(),m(z,{key:0},{default:e(()=>[t(W,null,{default:e(()=>[n("div",at,l(o(a)("General information")),1)]),_:1}),t(F,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[i(l(o(a)("Creation date")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[i(l(y.$date(s.domain.creation)),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[i(l(o(a)("Last modification date")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[i(l(y.$date(s.domain.last_modification)),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[i(l(o(a)("Quota")),1)]),_:1}),s.domain.quota==="0"?(r(),m(c,{key:0,cols:"6"},{default:e(()=>[i(l(o(a)("Unlimited")),1)]),_:1})):(r(),m(c,{key:1,cols:"6"},{default:e(()=>[i(l(s.domain.quota)+" "+l(o(a)("MB")),1)]),_:1}))]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[i(l(o(a)("Default mailbox quota")),1)]),_:1}),s.domain.default_mailbox_quota==="0"?(r(),m(c,{key:0,cols:"6"},{default:e(()=>[i(l(o(a)("Unlimited")),1)]),_:1})):(r(),m(c,{key:1,cols:"6"},{default:e(()=>[i(l(s.domain.default_mailbox_quota)+" MB",1)]),_:1}))]),_:1}),s.domain.message_limit!==void 0?(r(),m(b,{key:0},{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[i(l(o(a)("Daily sending limit")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[i(l(s.domain.message_limit)+" "+l(o(a)("messages")),1)]),_:1})]),_:1})):I("",!0),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[i(l(o(a)("Mailboxes")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[i(l(s.domain.mailbox_count),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[i(l(o(a)("Aliases")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[i(l(s.domain.mbalias_count),1)]),_:1})]),_:1}),t(b,null,{default:e(()=>[t(c,{cols:"6"},{default:e(()=>[i(l(o(a)("Enabled")),1)]),_:1}),t(c,{cols:"6"},{default:e(()=>[t(ye,{color:s.domain.enabled?"success":"error",icon:s.domain.enabled?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),_:1})]),_:1})]),_:1})]),_:1})):I("",!0)}},nt={key:1},it={__name:"DomainView",setup(s){const{$gettext:a}=R(),y=ge(),d=k(null),u=k({}),f=k(null);function v(){B.getDomain(y.params.id).then(w=>{d.value=w.data})}return v(),(w,_)=>d.value?(r(),x("div",nt,[t(ue,{flat:""},{default:e(()=>[t(de,null,{default:e(()=>[i(l(o(a)("Domain"))+" "+l(d.value.name)+" ",1),t(C,{color:"primary",icon:"mdi-circle-edit-outline",to:{name:"DomainEdit",params:{id:d.value.pk}}},null,8,["to"]),t(C,{color:"primary",icon:"mdi-reload",onClick:_[0]||(_[0]=p=>v())})]),_:1})]),_:1}),t(Me,{modelValue:f.value,"onUpdate:modelValue":_[1]||(_[1]=p=>f.value=p),class:"mb-4",color:"primary"},{default:e(()=>[t(Q,null,{default:e(()=>[i(l(o(a)("General")),1)]),_:1}),t(Q,null,{default:e(()=>[i(l(o(a)("Statistics")),1)]),_:1}),t(Q,null,{default:e(()=>[i(l(o(a)("DMARC")),1)]),_:1})]),_:1},8,["modelValue"]),t(Ne,{modelValue:f.value,"onUpdate:modelValue":_[3]||(_[3]=p=>f.value=p)},{default:e(()=>[t(Z,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"12",md:"6"},{default:e(()=>[t(ot,{domain:d.value},null,8,["domain"]),_[4]||(_[4]=n("div",{class:"mt-4"},null,-1)),t(ve,{domain:d.value},null,8,["domain"])]),_:1,__:[4]}),t(c,{cols:"12",md:"6"},{default:e(()=>[t(lt,{modelValue:d.value,"onUpdate:modelValue":_[2]||(_[2]=p=>d.value=p)},null,8,["modelValue"]),_[5]||(_[5]=n("div",{class:"mt-4"},null,-1)),u.value.params&&u.value.params.enable_domain_limits&&d.value.resources&&d.value.resources.length?(r(),m(Ce,{key:0,resources:d.value.resources},null,8,["resources"])):I("",!0)]),_:1,__:[5]})]),_:1})]),_:1}),t(Z,null,{default:e(()=>[t(b,null,{default:e(()=>[t(c,{cols:"12"},{default:e(()=>[d.value.name?(r(),m(ne,{key:0,domain:d.value,"graphic-set":"mailtraffic","graphic-name":"averagetraffic"},null,8,["domain"])):I("",!0)]),_:1}),t(c,{cols:"12"},{default:e(()=>[d.value.name?(r(),m(ne,{key:0,domain:d.value,"graphic-set":"mailtraffic","graphic-name":"averagetrafficsize"},null,8,["domain"])):I("",!0)]),_:1})]),_:1})]),_:1}),t(Z,null,{default:e(()=>[t(Le,{domain:d.value},null,8,["domain"])]),_:1})]),_:1},8,["modelValue"])])):(r(),m($e,{key:0}))}},qt=se(it,[["__scopeId","data-v-e7f32894"]]);export{qt as default};
@@ -0,0 +1 @@
1
+ import{d as U}from"./domains-HueJ9pRR.js";import{b as M,n as te,g as m,h as B,d as le,c as $,o as C,w as l,a,p as xe,e as v,t as k,f as d,q as E,l as D,s as de,m as z,F as me,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,j as ce,G as Fe,r as Te,H as qe}from"./index-CTxlYqj4.js";import{u as fe}from"./permissions-CbdfpdU1.js";import{V as pe,r as Z}from"./VForm-CXf-xKYz.js";import{c as Le,V as Be,a as Re,b as ve}from"./VCard-DRptUN8Y.js";import{V as oe}from"./VTextField-CWm47OUI.js";import{V as Pe}from"./VSelect-tV4GZAtn.js";import{V as G}from"./VSwitch-HiyBjUWI.js";import{V as Ee}from"./VSpacer-BcQnH0oL.js";import{V as N,u as Oe,a as Me,m as ze,b as Ie,c as je,M as Ge,d as _e,e as ie}from"./VAvatar-x_79C0tA.js";import{p as Je}from"./parameters-1TAbI5b7.js";import{_ as We}from"./CreationForm-i9httQC1.js";import{_ as Ke,a as Ye,b as He,c as Qe}from"./DomainTransportForm-Brvt1I8k.js";import{_ as Xe}from"./AccountPasswordSubForm-D7zaiyOj.js";import{a as P,V as se}from"./VRow-B-csPNw7.js";import{_ as Ze}from"./DomainAdminList-eJFjURqQ.js";import{_ as ea}from"./ConfirmDialog-q002W_T5.js";import{V as ee}from"./VChip-Def9BYoN.js";import{_ as aa}from"./MenuItems-CaGz5Av4.js";import{V as ta}from"./VCheckboxBtn-xrhfoOlo.js";import{V as ae}from"./VMenu-DTm7W1Hp.js";import{u as la,a as oa}from"./VProgressCircular-ubzZW5PC.js";import{u as na,m as ia,a as sa}from"./tag-Dx3OexMp.js";import{V as ye,a as ra}from"./VToolbar-Cd2iSn8H.js";import{V as be,a as re,b as ue}from"./forwardRefs-BSESyuUp.js";import{V as ua}from"./VDataTable-CYPG0MtF.js";import{V as da}from"./VCheckbox-DTbWq72R.js";import{V as I}from"./VDialog-DzctVbsK.js";import{_ as ma,i as ca}from"./importExport-fHtEeUon.js";import"./VSelectionControl-Bdgm37Tl.js";/* empty css */import"./VWindowItem-pE5PWxHf.js";import"./ssrBoot-DGgZQEVC.js";import"./VContainer-CC8lqRXa.js";import"./VSheet-BV83IblO.js";import"./ChoiceField-3mhgf6ob.js";import"./VAutocomplete-CfnbXRi6.js";import"./filter-DaBUD6Rp.js";import"./VAlert-BiAap6Bx.js";import"./VDataTableVirtual-B6iCEfal.js";import"./VTable-B-HE2nmK.js";import"./VFileInput-C7DE4B9B.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(i,{emit:b}){const{$gettext:e}=M(),f=b,{displayNotification:x}=te(),_=i,w=m([]),t=m({enabled:!0}),c=m(!1),S=m(),V=B(()=>_.domainAlias?e("Update"):e("Add")),p=B(()=>_.domainAlias?e("Edit domain alias"):e("Add a new domain alias"));async function g(){c.value=!0;try{await U.deleteDomainAlias(_.domainAlias.pk),x({msg:e("Domain alias deleted")}),f("close")}finally{c.value=!1}}async function h(){const{valid:s}=await S.value.validate();if(s){c.value=!0;try{if(!t.value.pk)await U.createDomainAlias(t.value),x({msg:e("Domain alias created")});else{const u=JSON.parse(JSON.stringify(t.value));await U.updateDomainAlias(_.domainAlias.pk,u),x({msg:e("Domain alias updated")})}f("close")}finally{c.value=!1}}}return le(()=>{U.getDomains().then(s=>{w.value=s.data}),_.domainAlias&&(t.value=JSON.parse(JSON.stringify(_.domainAlias)))}),(s,u)=>(C(),$(ve,null,{default:l(()=>[a(pe,{ref_key:"vFormRef",ref:S,onSubmit:xe(h,["prevent"])},{default:l(()=>[a(Le,null,{default:l(()=>[v("span",fa,k(p.value),1)]),_:1}),a(Be,null,{default:l(()=>[v("label",pa,k(d(e)("Name")),1),a(oe,{modelValue:t.value.name,"onUpdate:modelValue":u[0]||(u[0]=A=>t.value.name=A),variant:"outlined",density:"compact",rules:[d(Z).required]},null,8,["modelValue","rules"]),v("label",va,k(d(e)("Choose a domain")),1),a(Pe,{modelValue:t.value.target,"onUpdate:modelValue":u[1]||(u[1]=A=>t.value.target=A),items:w.value,"item-title":"name","item-value":"pk",rules:[d(Z).required],"single-line":"",variant:"outlined",density:"compact"},null,8,["modelValue","items","rules"]),a(G,{modelValue:t.value.enabled,"onUpdate:modelValue":u[2]||(u[2]=A=>t.value.enabled=A),label:"Enabled",color:"primary"},null,8,["modelValue"])]),_:1}),a(Re,null,{default:l(()=>[a(Ee),a(N,{loading:c.value,onClick:u[3]||(u[3]=A=>f("close"))},{default:l(()=>[D(k(d(e)("Close")),1)]),_:1},8,["loading"]),i.domainAlias&&i.domainAlias.pk?(C(),$(N,{key:0,color:"error",loading:c.value,onClick:g},{default:l(()=>[D(k(d(e)("Delete")),1)]),_:1},8,["loading"])):E("",!0),a(N,{color:"primary",type:"submit",loading:c.value},{default:l(()=>[D(k(V.value),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},_a={__name:"DomainOptionsForm",props:{modelValue:{type:Object,default:null}},emits:["createAdmin"],setup(i,{expose:b,emit:e}){const{$gettext:f}=M(),x=i,_=e,w=m(),t=m(!1),c=B(()=>x.modelValue);function S(V){_("createAdmin",V)}return b({vFormRef:w}),(V,p)=>(C(),$(pe,{ref_key:"vFormRef",ref:w},{default:l(()=>[a(G,{modelValue:t.value,"onUpdate:modelValue":[p[0]||(p[0]=g=>t.value=g),S],label:d(f)("Create a domain administrator"),color:"primary"},null,8,["modelValue","label"]),a(oe,{modelValue:c.value.domain_admin.username,"onUpdate:modelValue":p[1]||(p[1]=g=>c.value.domain_admin.username=g),label:d(f)("Name"),hint:d(f)("Name of the administrator"),"persistent-hint":"",variant:"outlined",disabled:!t.value,suffix:`@${c.value.name}`,rules:[!t.value||d(Z).required]},null,8,["modelValue","label","hint","disabled","suffix","rules"]),a(Xe,{modelValue:c.value.domain_admin,"onUpdate:modelValue":p[2]||(p[2]=g=>c.value.domain_admin=g),disabled:!t.value},null,8,["modelValue","disabled"]),a(G,{modelValue:c.value.domain_admin.with_mailbox,"onUpdate:modelValue":p[3]||(p[3]=g=>c.value.domain_admin.with_mailbox=g),label:d(f)("With a mailbox"),disabled:!t.value,hint:d(f)("Create a mailbox for the administrator."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"]),a(G,{modelValue:c.value.domain_admin.with_aliases,"onUpdate:modelValue":p[4]||(p[4]=g=>c.value.domain_admin.with_aliases=g),label:d(f)("Create aliases"),disabled:!t.value,hint:d(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(i,{emit:b}){const{$gettext:e}=M(),f=te(),x=de(),_=b,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 c=m(!1),S=m(),V=m(),p=m(),g=m(),h=m(),s=m(),u={general:V,dns:p,limitations:g,options:h,transport:s},A=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"options",title:e("Options")}],q=[{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"?A:q),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 y of s.value.service.settings){const r={key:y.label,value:t.value.transport.settings[`${t.value.transport.service}_${y.name}`]};y.type==="boolean"&&(r.type="yesno"),o.items.push(r)}n.push(o)}else if(t.value.type==="domain"){const o={title:e("Options"),items:[{key:e("Create a domain administrator"),value:c.value,type:"yesno"}]};c.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 j(){_("close")}function W(){navigator.clipboard.writeText(t.value.domain_admin.password).then(()=>{f.displayNotification({msg:e("Password copied to clipboard")})})}function K(n){return u.value[n.name]}function Y(n){return u[n.name].value.vFormRef}async function H(){}function Q(n){c.value=n}async function X(){const n=JSON.parse(JSON.stringify(t.value));c.value||delete n.domain_admin,n.message_limit===""&&delete n.message_limit,n.type==="relaydomain"?s.value.checkSettingTypes(n):delete n.transport;try{const o=await U.createDomain(n);x.push({name:"DomainDetail",params:{id:o.data.pk}}),f.displayNotification({msg:e("Domain created")}),j()}finally{S.value.working=!1}}return(n,o)=>(C(),$(We,{ref_key:"form",ref:S,title:d(e)("New domain"),steps:J.value,"form-getter":K,"get-v-form-ref":Y,"validate-object":H,"summary-sections":R.value,onClose:j,onCreate:X},{"form.general":l(()=>[a(Qe,{ref_key:"general",ref:V,modelValue:t.value,"onUpdate:modelValue":o[0]||(o[0]=y=>t.value=y),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]=y=>t.value=y),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]=y=>t.value=y),class:"ml-4"},null,8,["modelValue"])]),"form.options":l(()=>[a(_a,{ref_key:"options",ref:h,modelValue:t.value,"onUpdate:modelValue":o[3]||(o[3]=y=>t.value=y),class:"ml-4",onCreateAdmin:Q},null,8,["modelValue"])]),"form.transport":l(()=>[a(Ke,{ref_key:"transport",ref:s,modelValue:t.value.transport,"onUpdate:modelValue":o[4]||(o[4]=y=>t.value.transport=y),class:"ml-4"},null,8,["modelValue"])]),"item.random_password":l(({item:y})=>[y.value?(C(),$(P,{key:0,cols:"12",class:"highligth text-white"},{default:l(()=>[a(se,null,{default:l(()=>[a(P,null,{default:l(()=>[v("span",null,k(y.key),1)]),_:2},1024),a(P,{class:"text-right"},{default:l(()=>[D(k(n.$yesno(y.value)),1)]),_:2},1024)]),_:2},1024),a(se,null,{default:l(()=>[a(P,{class:"text-right py-1"},{default:l(()=>[D(k(t.value.domain_admin.password)+" ",1),a(N,{icon:"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:d(e)("Copy to clipboard"),onClick:W},null,8,["title"])]),_:1})]),_:1})]),_:2},1024)):(C(),z(me,{key:1},[a(P,null,{default:l(()=>[v("span",ya,k(y.key),1)]),_:2},1024),a(P,{class:"text-right"},{default:l(()=>[D(k(n.$yesno(y.value)),1)]),_:2},1024)],64))]),_:2},1032,["title","steps","summary-sections"]))}},ga={__name:"DNSStatusChip",props:{status:{type:String,default:"pending"}},setup(i){const b=i,{$gettext:e}=M(),f=B(()=>b.status==="disabled"?e("Disabled"):b.status==="pending"?e("Pending"):b.status==="critical"?e("Problem"):b.status==="ok"?e("Valid"):e("Unknown")),x=B(()=>b.status==="disabled"?"":b.status==="pending"?"info":b.status==="critical"?"error":b.status==="ok"?"success":"warning");return(_,w)=>(C(),$(ee,{color:x.value,size:"small"},{default:l(()=>[D(k(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(),...je({location:"top end"}),...Ie(),...ia(),...Se(),...ze({transition:"scale-rotate-transition"})},"VBadge"),ka=Ce()({name:"VBadge",inheritAttrs:!1,props:Va(),setup(i,b){const{backgroundColorClasses:e,backgroundColorStyles:f}=la(()=>i.color),{roundedClasses:x}=Oe(i),{t:_}=we(),{textColorClasses:w,textColorStyles:t}=oa(()=>i.textColor),{themeClasses:c}=he(),{locationStyles:S}=Me(i,!0,V=>(i.floating?i.dot?2:4:i.dot?8:12)+(["top","bottom"].includes(V)?Number(i.offsetY??0):["left","right"].includes(V)?Number(i.offsetX??0):0));return na(()=>{const V=Number(i.content),p=!i.max||isNaN(V)?i.content:V<=Number(i.max)?V:`${i.max}+`,[g,h]=Ae(b.attrs,["aria-atomic","aria-label","aria-live","role","title"]);return a(i.tag,O({class:["v-badge",{"v-badge--bordered":i.bordered,"v-badge--dot":i.dot,"v-badge--floating":i.floating,"v-badge--inline":i.inline},i.class]},h,{style:i.style}),{default:()=>{var s,u;return[v("div",{class:"v-badge__wrapper"},[(u=(s=b.slots).default)==null?void 0:u.call(s),a(Ge,{transition:i.transition},{default:()=>{var A,q;return[Ne(v("span",O({class:["v-badge__badge",c.value,e.value,x.value,w.value],style:[f.value,t.value,i.inline?{}:S.value],"aria-atomic":"true","aria-label":_(i.label,V),"aria-live":"polite",role:"status"},g),[i.dot?void 0:b.slots.badge?(q=(A=b.slots).badge)==null?void 0:q.call(A):i.icon?a(_e,{icon:i.icon},null):p]),[[Ue,i.modelValue]])]}})])]}})}),{}}}),xa={class:"v-data-table__td v-data-table-column--no-padding v-data-table-column--align-start"},Ca={key:0},Da={class:"text-right"},wa={class:"grey lighten-4"},ha=["colspan"],Aa=["onClick"],Sa={__name:"DomainList",setup(i,{expose:b}){const{$gettext:e}=M(),f=de(),{canSetRole:x}=fe(),_=te(),w=[{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"}];x.value&&w.push({title:e("Actions"),value:"actions",sortable:!1,align:"end"});const t=m({}),c=m(),S=m([]),V=m(!1),p=m(!1),g=m(null),h=m(null),s=m(!1),u=m(!1),A=m(""),q=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 j(){u.value=!1,g.value=null,h.value=null}async function W(n){if(await c.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 y={keep_folder:V.value};await U.deleteDomain(n.pk,y),R(),_.displayNotification({msg:e("Domain deleted")}),V.value=!1}finally{p.value=!1}}}function K(n){f.push({name:"DomainEdit",params:{id:n.pk}})}function Y(n,o){g.value=n,h.value=o,u.value=!0}function H(n,o,y,r){if(y(o)){r(o);return}U.getDomainAliases(n.name).then(F=>{t.value[n.name]=F.data,r(o)})}function Q(n){g.value=n,s.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()}),b({reloadDomains:R}),(n,o)=>{const y=Te("router-link");return C(),$(ve,{class:"mt-6"},{default:l(()=>[a(ua,{modelValue:q.value,"onUpdate:modelValue":o[1]||(o[1]=r=>q.value=r),expanded:J.value,headers:w,items:S.value,"item-value":"name",search:A.value,"show-select":"","expand-on-click":"",loading:p.value},{top:l(()=>[a(ye,{color:"white",flat:""},{default:l(()=>[a(oe,{modelValue:A.value,"onUpdate:modelValue":o[0]||(o[0]=r=>A.value=r),"prepend-inner-icon":"mdi-magnify",placeholder:d(e)("Search"),variant:"outlined","single-line":"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),qe(n.$slots,"extraActions",{},void 0,!0),a(ae,{location:"bottom"},{activator:l(({props:r})=>[a(N,O({variant:"flat","append-icon":"mdi-chevron-down"},r,{size:"small"}),{default:l(()=>[D(k(d(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:r,internalItem:L,isExpanded:F,toggleExpand:ne,isSelected:Ve,toggleSelect:ke})=>[v("tr",null,[v("td",xa,[a(ta,{value:!Ve(L),onClick:T=>ke(L)},null,8,["value","onClick"])]),v("td",null,[a(y,{to:{name:"DomainDetail",params:{id:r.pk}}},{default:l(()=>[D(k(r.name),1)]),_:2},1032,["to"]),r.type==="relaydomain"?(C(),$(ee,{key:0,size:"small",color:"primary",class:"ml-2"},{default:l(()=>[D(k(d(e)("Relay")),1)]),_:1})):E("",!0)]),v("td",null,[a(_e,{color:r.enabled?"success":"error",icon:r.enabled?"mdi-check-circle":"mdi-close-circle",variant:"flat"},null,8,["color","icon"])]),v("td",null,[D(k(r.domainalias_count)+" aliases ",1),r.domainalias_count?(C(),$(N,{key:0,variant:"text",icon:F(L)?"mdi-chevron-up":"mdi-chevron-down",onClick:T=>H(r,L,F,ne)},null,8,["icon","onClick"])):E("",!0)]),v("td",null,[a(ga,{status:r.dns_global_status},null,8,["status"])]),v("td",null,[a(ie,{modelValue:r.allocated_quota_in_percent,"onUpdate:modelValue":T=>r.allocated_quota_in_percent=T},null,8,["modelValue","onUpdate:modelValue"])]),v("td",null,[a(ie,{modelValue:r.allocated_quota_in_percent,"onUpdate:modelValue":T=>r.allocated_quota_in_percent=T},null,8,["modelValue","onUpdate:modelValue"])]),d(x)?(C(),z("td",Ca,[v("div",Da,[a(ae,{"offset-y":""},{activator:l(({props:T})=>[r.opened_alarms_count?(C(),$(ka,{key:0,bordered:"",color:"error",icon:"mdi-bell",overlap:""},{default:l(()=>[a(N,O({icon:"mdi-dots-horizontal",variant:"text"},T),null,16)]),_:2},1024)):(C(),$(N,O({key:1,icon:"mdi-dots-horizontal",variant:"text"},T),null,16))]),default:l(()=>[a(aa,{items:X(r),obj:r},null,8,["items","obj"])]),_:2},1024)])])):E("",!0)])]),"expanded-row":l(({item:r,columns:L})=>[v("tr",wa,[v("td",{colspan:L.length},[(C(!0),z(me,null,Fe(t.value[r.name],F=>(C(),z("span",{key:F.name,class:"mr-4"},[v("a",{href:"#",class:"mr-2",onClick:ne=>Y(r,F)},k(F.name),9,Aa),a(ee,{variant:"flat",size:"x-small",color:"success"},{default:l(()=>o[6]||(o[6]=[D("DNS OK")])),_:1,__:[6]})]))),128))],8,ha)])]),_:3},8,["modelValue","expanded","items","search","loading"]),a(ea,{ref_key:"confirm",ref:c},{default:l(()=>[a(da,{modelValue:V.value,"onUpdate:modelValue":o[2]||(o[2]=r=>V.value=r),label:d(e)("Do not delete domain folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),a(I,{modelValue:u.value,"onUpdate:modelValue":o[3]||(o[3]=r=>u.value=r),persistent:"","max-width":"800px"},{default:l(()=>[a(ge,{"domain-alias":h.value,onClose:j},null,8,["domain-alias"])]),_:1},8,["modelValue"]),a(I,{modelValue:s.value,"onUpdate:modelValue":o[5]||(o[5]=r=>s.value=r),persistent:"","max-width":"800px"},{default:l(()=>[a(Ze,{domain:g.value,"dialog-mode":"",onClose:o[4]||(o[4]=r=>s.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"])]),_:3})}}},$a=ce(Sa,[["__scopeId","data-v-d8d314e4"]]),Na={__name:"DomainsView",setup(i){const b=m(),e=m(!1),f=m(!1),x=m(!1),{$gettext:_}=M(),{canAddDomain:w}=fe(),t=m(),{importContent:c,exportContent:S}=ca();function V(){U.exportAll().then(h=>{S(h.data,"domains",_)})}function p(h){c(U,h,t,_)}const g=()=>{e.value=!1,b.value.reloadDomains()};return(h,s)=>(C(),z("div",null,[a(ye,{flat:""},{default:l(()=>[a(ra,null,{default:l(()=>[D(k(d(_)("Domains")),1)]),_:1})]),_:1}),a(d($a),{ref_key:"domainList",ref:b},{extraActions:l(()=>[d(w)?(C(),$(ae,{key:0,"offset-y":""},{activator:l(({props:u})=>[a(N,O({color:"primary",variant:"outlined"},u,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:l(()=>[D(k(d(_)("New")),1)]),_:2},1040)]),default:l(()=>[a(be,{density:"compact"},{default:l(()=>[a(re,{onClick:s[0]||(s[0]=u=>f.value=!0)},{default:l(()=>[a(ue,null,{default:l(()=>[D(k(d(_)("Domain")),1)]),_:1})]),_:1}),a(re,{onClick:s[1]||(s[1]=u=>e.value=!0)},{default:l(()=>[a(ue,null,{default:l(()=>[D(k(d(_)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1})):E("",!0),d(w)?(C(),$(N,{key:1,class:"mr-2",title:d(_)("Import domains and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:s[2]||(s[2]=u=>x.value=!0)},null,8,["title"])):E("",!0),a(N,{class:"mr-2",title:d(_)("Export domains and aliases to CSV"),variant:"flat",icon:"mdi-file-export-outline",onClick:V},null,8,["title"])]),_:1},512),a(I,{modelValue:f.value,"onUpdate:modelValue":s[4]||(s[4]=u=>f.value=u),fullscreen:"",scrollable:"","z-index":"10"},{default:l(()=>[a(d(ba),{onClose:s[3]||(s[3]=u=>f.value=!1)})]),_:1},8,["modelValue"]),a(I,{modelValue:e.value,"onUpdate:modelValue":s[6]||(s[6]=u=>e.value=u),persistent:"","max-width":"800px"},{default:l(()=>[a(d(ge),{onClose:s[5]||(s[5]=u=>g())})]),_:1},8,["modelValue"]),a(I,{modelValue:x.value,"onUpdate:modelValue":s[8]||(s[8]=u=>x.value=u),persistent:"","max-width":"800px"},{default:l(()=>[a(d(ma),{ref_key:"importForm",ref:t,title:d(_)("Import domains"),onSubmit:p,onClose:s[7]||(s[7]=u=>x.value=!1)},{help:l(()=>s[9]||(s[9]=[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"])]))}},gt=ce(Na,[["__scopeId","data-v-50470732"]]);export{gt as default};
@@ -0,0 +1 @@
1
+ import{i as b,j 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,q as T,B as U,a6 as N,w,F as S,G as R,c as W,J as j,l as K,t as O}from"./index-CTxlYqj4.js";import{V as P}from"./VTextField-CWm47OUI.js";import{a as q,b as G,V as J}from"./forwardRefs-BSESyuUp.js";import{u as H}from"./domains.store-BAoaJY6i.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(P,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:j(l.value===f?"bg-primary-lighten-1":""),onClick:L=>c(i),onMouseenter:L=>l.value=f},{default:w(()=>[y(G,null,{default:w(()=>[K(O(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 +1 @@
1
- import{Q as te,q as O,b as G,m as H,g as w,c as g,o as i,w as s,a,f as m,d as le,a2 as oe,K as se,L as ne,a4 as F,l as p,C as ie,D as re,e as d,p as L,t as v,k as S,F as _,E as z,a0 as ue,a1 as de,A as I}from"./index-BA5nENc7.js";import{a as C}from"./webmail-Cgnpe0EQ.js";import{c as me}from"./contacts-BVgP-Nvk.js";import{V as B,a as q}from"./forwardRefs-DulMu961.js";import{V as f,d as A}from"./VAvatar-BLlAVJo2.js";import{b as K,V as ce,a as pe}from"./VCard-CgG7Sw1Z.js";import{V as ve}from"./VToolbar-J3yNZ_TP.js";import{V as U}from"./VMenu-ds-uYle9.js";import{V as P}from"./VSpacer-DL_DqXyB.js";import{V as fe}from"./VDialog-BZ4gm6K7.js";import"./tag-BQLfwzbO.js";import"./ssrBoot-CTcujE2n.js";import"./VProgressCircular--49P1TOW.js";/* empty css */const D={__name:"ContactCard",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(N){const l=te(N,"modelValue"),E=O(),{$gettext:M}=G(),{displayNotification:n}=H(),c=w(!1),x=async()=>{const V={emails:[{address:l.value.address,type:"other"}]};l.value.name?V.display_name=l.value.name:V.display_name=l.value.address,c.value=!0;let h;try{h=await me.createContact(V),l.value.contact_id=h.data.pk}finally{c.value=!1}n({msg:M("Contact added to address book")})},o=()=>{E.push({name:"ContactList"})};return(V,h)=>(i(),g(K,{"min-width":"300"},{default:s(()=>[a(B,null,{default:s(()=>[a(q,{subtitle:l.value.name?l.value.address:"",title:l.value.name||l.value.address},{append:s(()=>[l.value.contact_id?(i(),g(f,{key:1,icon:"mdi-pencil",variant:"text",loading:c.value,title:m(M)("Update contact"),onClick:o},null,8,["loading","title"])):(i(),g(f,{key:0,color:"secondary",icon:"mdi-card-account-mail-outline",variant:"text",loading:c.value,title:m(M)("Add to contacts"),onClick:x},null,8,["loading","title"]))]),_:1},8,["subtitle","title"])]),_:1})]),_:1}))}},ye={class:"bg-white rounded-lg pa-4 position-relative h-100"},ke={class:"d-flex mt-2"},ge={class:"text-grey text-body-2"},Ve={class:"text-grey"},be={class:"mt-2 text-grey"},_e={key:0},we={key:0,class:"mt-2"},xe=["onClick"],Ne={__name:"EmailView",setup(N){const{$gettext:l}=G(),{displayNotification:E,reloadMailboxCounters:M}=H(),n=ne(),c=O(),x=w(!1),o=w(null),V=w(null),h=w(null),T=w(!1),$=w(!1),y=w(!1);le(()=>{window.addEventListener("resize",R),j()}),oe(()=>{window.removeEventListener("resize",R)}),se(x,()=>{j()});const Q=()=>{c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}})},R=()=>{const u=document.querySelector("iframe"),e=h.value.getBoundingClientRect();u.style.top=`${e.bottom}px`,u.style.width=`${e.width-24}px`,u.style.height=`${window.innerHeight-e.bottom-32}px`},j=()=>{const u={dformat:"html",links:x.value?"1":"0"};C.getEmailContent(n.query.mailbox,n.query.mailid,u).then(e=>{M(),o.value=e.data,F(()=>{const k=document.createElement("iframe");k.classList.add("email-frame"),document.querySelector("iframe").replaceWith(k);const t=k.contentDocument;t.write(o.value.body),t.close(),T.value=!0,F(R)})})},W=(u,e)=>{C.getEmailAttachment(n.query.mailbox,n.query.mailid,e).then(k=>{const t=new Blob([k.data],{type:k.headers["Content-Type"]}),r=document.createElement("a");r.href=URL.createObjectURL(t),r.download=u,r.click(),URL.revokeObjectURL(r.href)})},X=()=>{y.value=!0,C.deleteSelection(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message deleted")})})},Y=()=>{y.value=!0,C.markSelectionAsJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as junk")})})},Z=()=>{y.value=!0,C.markSelectionAsNotJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as not junk")})})},ee=async()=>{if(!V.value){const u=await C.getEmailSource(n.query.mailbox,n.query.mailid);V.value=u.data.source}$.value=!0},J=u=>{const e={...n.query};u&&(e.all=u),c.push({name:"ReplyEmailView",query:e})},ae=()=>{c.push({name:"ForwardEmailView",query:n.query})};return(u,e)=>{var k;return i(),p(_,null,[ie(d("div",ye,[a(ve,{color:"white"},{default:s(()=>[a(f,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:Q}),a(f,{color:"primary",variant:"tonal","prepend-icon":"mdi-reply",onClick:e[1]||(e[1]=()=>J())},{append:s(()=>[a(f,{size:"x-small",variant:"plain"},{default:s(()=>[a(A,{icon:"mdi-chevron-down"}),a(U,{activator:"parent"},{default:s(()=>[a(B,null,{default:s(()=>[a(q,{title:m(l)("Reply all"),onClick:e[0]||(e[0]=()=>J(!0))},null,8,["title"]),a(q,{title:m(l)("Forward"),onClick:ae},null,8,["title"])]),_:1})]),_:1})]),_:1})]),default:s(()=>[S(v(m(l)("Reply"))+" ",1)]),_:1}),a(f,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:y.value,onClick:X},null,8,["loading"]),m(n).params.mailbox!=="Junk"?(i(),g(f,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:y.value,onClick:Y},null,8,["loading"])):(i(),g(f,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:y.value,onClick:Z},null,8,["loading"])),a(f,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:s(()=>[a(A,{icon:"mdi-cog"}),a(U,{activator:"parent"},{default:s(()=>[a(B,{density:"compact"},{default:s(()=>[x.value?(i(),g(q,{key:1,title:m(l)("Disable links"),onClick:e[3]||(e[3]=t=>x.value=!1)},null,8,["title"])):(i(),g(q,{key:0,title:m(l)("Enable links"),onClick:e[2]||(e[2]=t=>x.value=!0)},null,8,["title"])),a(q,{title:m(l)("Display source"),onClick:ee},null,8,["title"])]),_:1})]),_:1})]),_:1})]),_:1}),o.value?(i(),p("div",{key:0,ref_key:"headers",ref:h,class:"bg-white pa-4"},[d("h2",null,v(o.value.subject),1),d("div",ke,[a(U,{key:"sender"},{activator:s(({props:t})=>[d("h3",ue(de(t)),[o.value.from_address.name?(i(),p(_,{key:0},[S(v(o.value.from_address.name)+" ",1),d("span",ge," <"+v(o.value.from_address.address)+"> ",1)],64)):(i(),p(_,{key:1},[S(v(o.value.from_address.address),1)],64))],16)]),default:s(()=>[a(D,{modelValue:o.value.from_address,"onUpdate:modelValue":e[4]||(e[4]=t=>o.value.from_address=t)},null,8,["modelValue"])]),_:1}),a(P),d("span",Ve,v(o.value.date),1)]),d("div",be,[S(v(m(l)("To"))+" ",1),(i(!0),p(_,null,z(o.value.to,(t,r)=>(i(),g(U,{key:`to-${r}`},{activator:s(({props:b})=>[r>0?(i(),p("span",_e,", ")):L("",!0),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(D,{modelValue:o.value.to[r],"onUpdate:modelValue":b=>o.value.to[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),(k=o.value.cc)!=null&&k.length?(i(!0),p(_,{key:0},z(o.value.cc,(t,r)=>(i(),g(U,{key:`cc-${r}`},{activator:s(({props:b})=>[e[7]||(e[7]=d("span",null,", ",-1)),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(D,{modelValue:o.value.cc[r],"onUpdate:modelValue":b=>o.value.cc[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)):L("",!0)]),o.value.attachments.length?(i(),p("div",we,[a(A,{icon:"mdi-paperclip"}),(i(!0),p(_,null,z(o.value.attachments,(t,r)=>(i(),p(_,{key:t.name},[r>0?(i(),p(_,{key:0},[S(", ")],64)):L("",!0),d("a",{href:"#",onClick:b=>W(t.name,t.partnum)},v(t.name),9,xe)],64))),128))])):L("",!0)],512)):L("",!0),e[8]||(e[8]=d("iframe",{class:"email-frame"},null,-1))],512),[[re,T.value]]),a(fe,{modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=t=>$.value=t),"max-width":"1200"},{default:s(()=>[a(K,{title:m(l)("Message source")},{default:s(()=>[a(ce,{class:"text-caption overflow-x-auto"},{default:s(()=>[d("pre",null,v(V.value),1)]),_:1}),a(pe,null,{default:s(()=>[a(P),a(f,{text:m(l)("Close"),onClick:e[5]||(e[5]=t=>$.value=!1)},null,8,["text"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])],64)}}};export{Ne as default};
1
+ import{R as te,s as G,b as O,n as H,g as w,c as g,o as i,w as s,a,f as m,d as le,a3 as oe,L as se,M as ne,a5 as F,m as p,D as ie,E as re,e as d,q as L,t as v,l as S,F as _,G as z,a1 as ue,a2 as de,B as I}from"./index-CTxlYqj4.js";import{a as C}from"./webmail-CGWB-wMk.js";import{c as me}from"./contacts-HeZ9it3d.js";import{V as D,a as q}from"./forwardRefs-BSESyuUp.js";import{V as f,d as A}from"./VAvatar-x_79C0tA.js";import{b as W,V as ce,a as pe}from"./VCard-DRptUN8Y.js";import{V as ve}from"./VToolbar-Cd2iSn8H.js";import{V as R}from"./VMenu-DTm7W1Hp.js";import{V as P}from"./VSpacer-BcQnH0oL.js";import{V as fe}from"./VDialog-DzctVbsK.js";import"./tag-Dx3OexMp.js";import"./ssrBoot-DGgZQEVC.js";import"./VProgressCircular-ubzZW5PC.js";/* empty css */const B={__name:"ContactCard",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(N){const l=te(N,"modelValue"),E=G(),{$gettext:M}=O(),{displayNotification:n}=H(),c=w(!1),x=async()=>{const V={emails:[{address:l.value.address,type:"other"}]};l.value.name?V.display_name=l.value.name:V.display_name=l.value.address,c.value=!0;let h;try{h=await me.createContact(V),l.value.contact_id=h.data.pk}finally{c.value=!1}n({msg:M("Contact added to address book")})},o=()=>{E.push({name:"ContactList"})};return(V,h)=>(i(),g(W,{"min-width":"300"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{subtitle:l.value.name?l.value.address:"",title:l.value.name||l.value.address},{append:s(()=>[l.value.contact_id?(i(),g(f,{key:1,icon:"mdi-pencil",variant:"text",loading:c.value,title:m(M)("Update contact"),onClick:o},null,8,["loading","title"])):(i(),g(f,{key:0,color:"secondary",icon:"mdi-card-account-mail-outline",variant:"text",loading:c.value,title:m(M)("Add to contacts"),onClick:x},null,8,["loading","title"]))]),_:1},8,["subtitle","title"])]),_:1})]),_:1}))}},ye={class:"bg-white rounded-lg pa-4 position-relative h-100"},ke={class:"d-flex mt-2"},ge={class:"text-grey text-body-2"},Ve={class:"text-grey"},be={class:"mt-2 text-grey"},_e={key:0},we={key:0,class:"mt-2"},xe=["onClick"],Ne={__name:"EmailView",setup(N){const{$gettext:l}=O(),{displayNotification:E,reloadMailboxCounters:M}=H(),n=ne(),c=G(),x=w(!1),o=w(null),V=w(null),h=w(null),T=w(!1),U=w(!1),y=w(!1);le(()=>{window.addEventListener("resize",$),j()}),oe(()=>{window.removeEventListener("resize",$)}),se(x,()=>{j()});const K=()=>{c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}})},$=()=>{const u=document.querySelector("iframe"),e=h.value.getBoundingClientRect();u.style.top=`${e.bottom}px`,u.style.width=`${e.width-24}px`,u.style.height=`${window.innerHeight-e.bottom-32}px`},j=()=>{const u={dformat:"html",links:x.value?"1":"0"};C.getEmailContent(n.query.mailbox,n.query.mailid,u).then(e=>{M(),o.value=e.data,F(()=>{const k=document.createElement("iframe");k.classList.add("email-frame"),document.querySelector("iframe").replaceWith(k);const t=k.contentDocument;t.write(o.value.body),t.close(),T.value=!0,F($)})})},Q=(u,e)=>{C.getEmailAttachment(n.query.mailbox,n.query.mailid,e).then(k=>{const t=new Blob([k.data],{type:k.headers["Content-Type"]}),r=document.createElement("a");r.href=URL.createObjectURL(t),r.download=u,r.click(),URL.revokeObjectURL(r.href)})},X=()=>{y.value=!0,C.deleteSelection(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message deleted")})})},Y=()=>{y.value=!0,C.markSelectionAsJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as junk")})})},Z=()=>{y.value=!0,C.markSelectionAsNotJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as not junk")})})},ee=async()=>{if(!V.value){const u=await C.getEmailSource(n.query.mailbox,n.query.mailid);V.value=u.data.source}U.value=!0},J=u=>{const e={...n.query};u&&(e.all=u),c.push({name:"ReplyEmailView",query:e})},ae=()=>{c.push({name:"ForwardEmailView",query:n.query})};return(u,e)=>{var k;return i(),p(_,null,[ie(d("div",ye,[a(ve,{color:"white"},{default:s(()=>[a(f,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:K}),a(f,{color:"primary",variant:"tonal","prepend-icon":"mdi-reply",onClick:e[1]||(e[1]=()=>J())},{append:s(()=>[a(f,{size:"x-small",variant:"plain"},{default:s(()=>[a(A,{icon:"mdi-chevron-down"}),a(R,{activator:"parent"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{title:m(l)("Reply all"),onClick:e[0]||(e[0]=()=>J(!0))},null,8,["title"]),a(q,{title:m(l)("Forward"),onClick:ae},null,8,["title"])]),_:1})]),_:1})]),_:1})]),default:s(()=>[S(v(m(l)("Reply"))+" ",1)]),_:1}),a(f,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:y.value,onClick:X},null,8,["loading"]),m(n).params.mailbox!=="Junk"?(i(),g(f,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:y.value,onClick:Y},null,8,["loading"])):(i(),g(f,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:y.value,onClick:Z},null,8,["loading"])),a(f,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:s(()=>[a(A,{icon:"mdi-cog"}),a(R,{activator:"parent"},{default:s(()=>[a(D,{density:"compact"},{default:s(()=>[x.value?(i(),g(q,{key:1,title:m(l)("Disable links"),onClick:e[3]||(e[3]=t=>x.value=!1)},null,8,["title"])):(i(),g(q,{key:0,title:m(l)("Enable links"),onClick:e[2]||(e[2]=t=>x.value=!0)},null,8,["title"])),a(q,{title:m(l)("Display source"),onClick:ee},null,8,["title"])]),_:1})]),_:1})]),_:1})]),_:1}),o.value?(i(),p("div",{key:0,ref_key:"headers",ref:h,class:"bg-white pa-4"},[d("h2",null,v(o.value.subject),1),d("div",ke,[a(R,{key:"sender"},{activator:s(({props:t})=>[d("h3",ue(de(t)),[o.value.from_address.name?(i(),p(_,{key:0},[S(v(o.value.from_address.name)+" ",1),d("span",ge," <"+v(o.value.from_address.address)+"> ",1)],64)):(i(),p(_,{key:1},[S(v(o.value.from_address.address),1)],64))],16)]),default:s(()=>[a(B,{modelValue:o.value.from_address,"onUpdate:modelValue":e[4]||(e[4]=t=>o.value.from_address=t)},null,8,["modelValue"])]),_:1}),a(P),d("span",Ve,v(o.value.date),1)]),d("div",be,[S(v(m(l)("To"))+" ",1),(i(!0),p(_,null,z(o.value.to,(t,r)=>(i(),g(R,{key:`to-${r}`},{activator:s(({props:b})=>[r>0?(i(),p("span",_e,", ")):L("",!0),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.to[r],"onUpdate:modelValue":b=>o.value.to[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),(k=o.value.cc)!=null&&k.length?(i(!0),p(_,{key:0},z(o.value.cc,(t,r)=>(i(),g(R,{key:`cc-${r}`},{activator:s(({props:b})=>[e[7]||(e[7]=d("span",null,", ",-1)),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.cc[r],"onUpdate:modelValue":b=>o.value.cc[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)):L("",!0)]),o.value.attachments.length?(i(),p("div",we,[a(A,{icon:"mdi-paperclip"}),(i(!0),p(_,null,z(o.value.attachments,(t,r)=>(i(),p(_,{key:t.name},[r>0?(i(),p(_,{key:0},[S(", ")],64)):L("",!0),d("a",{href:"#",onClick:b=>Q(t.name,t.partnum)},v(t.name),9,xe)],64))),128))])):L("",!0)],512)):L("",!0),e[8]||(e[8]=d("iframe",{class:"email-frame"},null,-1))],512),[[re,T.value]]),a(fe,{modelValue:U.value,"onUpdate:modelValue":e[6]||(e[6]=t=>U.value=t),"max-width":"1200"},{default:s(()=>[a(W,{title:m(l)("Message source")},{default:s(()=>[a(ce,{class:"text-caption overflow-x-auto"},{default:s(()=>[d("pre",null,v(V.value),1)]),_:1}),a(pe,null,{default:s(()=>[a(P),a(f,{text:m(l)("Close"),onClick:e[5]||(e[5]=t=>U.value=!1)},null,8,["text"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])],64)}}};export{Ne as default};
@@ -0,0 +1 @@
1
+ import{V as s,a as c}from"./VApp-tsfSFSQl.js";import{r as m,c as t,o as e,w as o,a as r}from"./index-CTxlYqj4.js";import"./tag-Dx3OexMp.js";import"./layout-BFr6o7er.js";import"./ssrBoot-DGgZQEVC.js";const u={__name:"EmptyView",setup(a){return(_,n)=>{const p=m("router-view");return e(),t(s,null,{default:o(()=>[r(p)]),_:1})}}},d={__name:"EmptyLayout",setup(a){return(_,n)=>(e(),t(c,null,{default:o(()=>[r(u)]),_:1}))}};export{d as default};