modoboa 2.6.4__py3-none-any.whl → 2.6.5__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 (186) hide show
  1. modoboa/autoreply/models.py +4 -4
  2. modoboa/frontend_dist/assets/{AccountAliasForm-tLHotdIR.js → AccountAliasForm-B-hTKSFr.js} +1 -1
  3. modoboa/frontend_dist/assets/{AccountEditView-DnQIIg47.js → AccountEditView-LkP_qhf_.js} +1 -1
  4. modoboa/frontend_dist/assets/AccountLayout-APeC9bsN.js +1 -0
  5. modoboa/frontend_dist/assets/{AccountPasswordSubForm-DpADntAL.js → AccountPasswordSubForm-D4vB2yQK.js} +1 -1
  6. modoboa/frontend_dist/assets/{AccountView-CJBGh9Oe.js → AccountView-CloBP1BY.js} +1 -1
  7. modoboa/frontend_dist/assets/{AddressBook-CrFqzlzZ.js → AddressBook-C03MXg3y.js} +1 -1
  8. modoboa/frontend_dist/assets/{AdminLayout-BbCt7YxX.js → AdminLayout-DFmyKOo6.js} +1 -1
  9. modoboa/frontend_dist/assets/{AlarmsView-CIlt_IKQ.js → AlarmsView-CFhH0I5d.js} +1 -1
  10. modoboa/frontend_dist/assets/{AliasEditView-n75NEN_s.js → AliasEditView-BVjNJekt.js} +1 -1
  11. modoboa/frontend_dist/assets/{AliasRecipientForm-jjj5yJJw.js → AliasRecipientForm-CZ_SvjtG.js} +1 -1
  12. modoboa/frontend_dist/assets/{AliasView-DFIvPeIm.js → AliasView-DvvI6cV9.js} +1 -1
  13. modoboa/frontend_dist/assets/{AuditTrailView-sWnED3E9.js → AuditTrailView-Cyq25Jle.js} +1 -1
  14. modoboa/frontend_dist/assets/CalendarView-C_dSXRp9.js +1 -0
  15. modoboa/frontend_dist/assets/{ChoiceField-RDT6XcnX.js → ChoiceField-BPhUvoyr.js} +1 -1
  16. modoboa/frontend_dist/assets/{ComposeEmailForm-G3sXQAwI.js → ComposeEmailForm-Ns5SYs4J.js} +1 -1
  17. modoboa/frontend_dist/assets/ComposeEmailView-DgUfiWEH.js +1 -0
  18. modoboa/frontend_dist/assets/{ConfirmDialog-Du7aqKbR.js → ConfirmDialog-BMIg94-U.js} +1 -1
  19. modoboa/frontend_dist/assets/{ConnectedLayout-BHWaBAzH.js → ConnectedLayout-CSXdVJtV.js} +1 -1
  20. modoboa/frontend_dist/assets/{CreationForm-CjtILq0_.js → CreationForm-CaAZYATm.js} +1 -1
  21. modoboa/frontend_dist/assets/{DashboardView-DFNwusDZ.js → DashboardView-DErmyUoy.js} +1 -1
  22. modoboa/frontend_dist/assets/{DomainAdminList-BjtfbhRj.js → DomainAdminList-BO8_4Cwt.js} +1 -1
  23. modoboa/frontend_dist/assets/{DomainEditView-Cq5Ea4RW.js → DomainEditView-BXylM4aB.js} +1 -1
  24. modoboa/frontend_dist/assets/{DomainTransportForm-DAXJGNLA.js → DomainTransportForm-Ccw5BXyM.js} +1 -1
  25. modoboa/frontend_dist/assets/{DomainView-BfpK7U14.js → DomainView-Bd5XQI-1.js} +1 -1
  26. modoboa/frontend_dist/assets/{DomainsView-CYxLy-3Y.js → DomainsView-CC1EwRId.js} +1 -1
  27. modoboa/frontend_dist/assets/{EmailField-DmPc4pyP.js → EmailField-BFgga4zp.js} +1 -1
  28. modoboa/frontend_dist/assets/{EmailView-BE3vYZtJ.js → EmailView-DPWTch_6.js} +1 -1
  29. modoboa/frontend_dist/assets/EmptyLayout-DAw7fAab.js +1 -0
  30. modoboa/frontend_dist/assets/{FiltersView-Dps3_fAh.js → FiltersView-Cg9lkLw0.js} +1 -1
  31. modoboa/frontend_dist/assets/ForwardEmailView-Dd1sxgaP.js +1 -0
  32. modoboa/frontend_dist/assets/{HtmlEditor-D753fIAJ.js → HtmlEditor-DNn3CY-w.js} +1 -1
  33. modoboa/frontend_dist/assets/{IdentitiesView-CoGBVhZx.js → IdentitiesView-CiHIQ9Qt.js} +1 -1
  34. modoboa/frontend_dist/assets/{InformationView-eB2ayeLD.js → InformationView-Cc0aBA5j.js} +1 -1
  35. modoboa/frontend_dist/assets/{LoadingData-Tm56XNwj.js → LoadingData-CnQ_aVqa.js} +1 -1
  36. modoboa/frontend_dist/assets/{LoginCallbackView-DjCHUgz5.js → LoginCallbackView-Nh_gmh8e.js} +1 -1
  37. modoboa/frontend_dist/assets/{LoginView-D0r4XBEl.js → LoginView-BtC9BHuJ.js} +1 -1
  38. modoboa/frontend_dist/assets/{MailboxView-DNokO2WZ.js → MailboxView-DplC0IXR.js} +1 -1
  39. modoboa/frontend_dist/assets/{MenuItems-dl38msRA.js → MenuItems-efx2rqwT.js} +1 -1
  40. modoboa/frontend_dist/assets/{MessageView-BWh9BqzS.js → MessageView-C1Goz-hY.js} +1 -1
  41. modoboa/frontend_dist/assets/{MessagesView-BZ7NUOwo.js → MessagesView-CesYYZ9f.js} +1 -1
  42. modoboa/frontend_dist/assets/{MigrationsView-DcOVgmcH.js → MigrationsView-DSBk8T0y.js} +1 -1
  43. modoboa/frontend_dist/assets/{ParametersForm-y02-GM0r.js → ParametersForm-BegEnkQM.js} +1 -1
  44. modoboa/frontend_dist/assets/ParametersView-B8W_PAiz.js +1 -0
  45. modoboa/frontend_dist/assets/ParametersView-Dsx2M_g9.js +1 -0
  46. modoboa/frontend_dist/assets/ProviderEditView-PEAr7MA1.js +1 -0
  47. modoboa/frontend_dist/assets/ProviderGeneralForm-BAELnXh6.js +1 -0
  48. modoboa/frontend_dist/assets/ProvidersView-CHvQf3Vv.js +1 -0
  49. modoboa/frontend_dist/assets/QuarantineLayout-BWEaBK48.js +1 -0
  50. modoboa/frontend_dist/assets/{QuarantineView-BOXSobRz.js → QuarantineView-BzjeDhTm.js} +1 -1
  51. modoboa/frontend_dist/assets/ReplyEmailView-CwQ9jsce.js +1 -0
  52. modoboa/frontend_dist/assets/{ResourcesForm-D0YBapCG.js → ResourcesForm-noC3AXd9.js} +1 -1
  53. modoboa/frontend_dist/assets/SelfServiceLayout-DQgRMu0L.js +1 -0
  54. modoboa/frontend_dist/assets/{SettingsView-DIvKGRBY.css → SettingsView-DJTdIeRK.css} +1 -1
  55. modoboa/frontend_dist/assets/{SettingsView-DMuaKagM.js → SettingsView-Dgwpfd8O.js} +2 -2
  56. modoboa/frontend_dist/assets/{StatisticsView-CyY_CNcI.js → StatisticsView-BZkVSh5o.js} +1 -1
  57. modoboa/frontend_dist/assets/{TimeSerieChart-BTDBH33K.js → TimeSerieChart-BXJwhTMO.js} +1 -1
  58. modoboa/frontend_dist/assets/UserLayout-CWK9ICfE.js +1 -0
  59. modoboa/frontend_dist/assets/{VAlert-CNys_LUS.js → VAlert-Buv8Z5G4.js} +1 -1
  60. modoboa/frontend_dist/assets/{VApp-B0vRc3-6.js → VApp-CiIBWB_Q.js} +1 -1
  61. modoboa/frontend_dist/assets/{VAutocomplete-Huaz_-hf.js → VAutocomplete-DcNqTIie.js} +1 -1
  62. modoboa/frontend_dist/assets/{VAvatar-JdJfoK0C.js → VAvatar-BsHplcRP.js} +1 -1
  63. modoboa/frontend_dist/assets/{VBadge-Cg5iu5LG.js → VBadge-CavP_E2g.js} +1 -1
  64. modoboa/frontend_dist/assets/{VCard-BoH6kjPa.js → VCard-D7AwBs4w.js} +1 -1
  65. modoboa/frontend_dist/assets/{VCheckbox-CCLOJFKF.js → VCheckbox-CKW9lz5i.js} +1 -1
  66. modoboa/frontend_dist/assets/{VCheckboxBtn-Ccl786Rg.js → VCheckboxBtn-B5evxN9K.js} +1 -1
  67. modoboa/frontend_dist/assets/{VColorPicker-452uc3tY.js → VColorPicker-Bsrz8yif.js} +1 -1
  68. modoboa/frontend_dist/assets/{VContainer-DKMcKasC.js → VContainer-DY9021j4.js} +1 -1
  69. modoboa/frontend_dist/assets/{VDataTable-BkLLfcQK.js → VDataTable-ocZo8ju0.js} +1 -1
  70. modoboa/frontend_dist/assets/{VDataTableServer-B_6fWBA3.js → VDataTableServer-CJfpYXQW.js} +1 -1
  71. modoboa/frontend_dist/assets/{VDataTableVirtual-Ike7oqcC.js → VDataTableVirtual-Cr8yw49k.js} +1 -1
  72. modoboa/frontend_dist/assets/{VDialog-DIUeAIpw.js → VDialog-CUMh3paI.js} +1 -1
  73. modoboa/frontend_dist/assets/{VExpansionPanels-BeMgiS7A.js → VExpansionPanels-CkwHiKsA.js} +1 -1
  74. modoboa/frontend_dist/assets/{VFileInput-Dvj95FL5.js → VFileInput-D5qlksIG.js} +1 -1
  75. modoboa/frontend_dist/assets/{VForm-DkphQD3e.js → VForm-ClJU5x_v.js} +1 -1
  76. modoboa/frontend_dist/assets/{VInput-CbqehdOu.js → VInput-DhzSMFXh.js} +1 -1
  77. modoboa/frontend_dist/assets/{VMenu-B6SCtOwT.js → VMenu-B53a3gm6.js} +1 -1
  78. modoboa/frontend_dist/assets/{VPicker-BUx70Wjg.js → VPicker-B928ZVJQ.js} +1 -1
  79. modoboa/frontend_dist/assets/{VProgressCircular-DTDGzl2O.js → VProgressCircular-viI3jDXe.js} +1 -1
  80. modoboa/frontend_dist/assets/{VRadioGroup-CS9ULZ1c.js → VRadioGroup-C0bqFrYg.js} +1 -1
  81. modoboa/frontend_dist/assets/{VRow-CuVZGqBj.js → VRow-DyK_Mj7R.js} +1 -1
  82. modoboa/frontend_dist/assets/{VSelect-D5IXDPEX.js → VSelect-y0E5_vPn.js} +1 -1
  83. modoboa/frontend_dist/assets/{VSelectionControl-uKY9Zull.js → VSelectionControl-Dkms9_P5.js} +1 -1
  84. modoboa/frontend_dist/assets/{VSheet-HeHw6g5_.js → VSheet-DQkh_hsX.js} +1 -1
  85. modoboa/frontend_dist/assets/VSpacer-CBqB9uSt.js +1 -0
  86. modoboa/frontend_dist/assets/{VSwitch-Dh_dserW.js → VSwitch-D4xdR9jz.js} +1 -1
  87. modoboa/frontend_dist/assets/{VTable-gDsAUSLX.js → VTable-D8ZwwC_B.js} +1 -1
  88. modoboa/frontend_dist/assets/{VTabs-5XSICLQP.js → VTabs-D2c0KeF2.js} +1 -1
  89. modoboa/frontend_dist/assets/{VTextField-QXQFhKxm.js → VTextField-DvvH1ciR.js} +1 -1
  90. modoboa/frontend_dist/assets/{VTextarea-Bdy4UKmV.js → VTextarea-DHtXtzqP.js} +1 -1
  91. modoboa/frontend_dist/assets/{VToolbar-CyrYSqJZ.js → VToolbar-pvLQtmbU.js} +1 -1
  92. modoboa/frontend_dist/assets/{VWindowItem-kZpArwK1.js → VWindowItem-DErNPSH8.js} +1 -1
  93. modoboa/frontend_dist/assets/{WebmailLayout-CNUHODnw.js → WebmailLayout-D7J-QJ-0.js} +1 -1
  94. modoboa/frontend_dist/assets/{accounts-DqbBlaLK.js → accounts-BZBqbAmd.js} +1 -1
  95. modoboa/frontend_dist/assets/{admin-D36m_nXq.js → admin-uCrKjpln.js} +1 -1
  96. modoboa/frontend_dist/assets/{aliases-BtyF8GC8.js → aliases-CFwFkX45.js} +1 -1
  97. modoboa/frontend_dist/assets/{amavis-B4QhM5Fa.js → amavis-B4ScfQsG.js} +1 -1
  98. modoboa/frontend_dist/assets/{amavis-DySmsCJQ.js → amavis-DCy0U0TD.js} +1 -1
  99. modoboa/frontend_dist/assets/{contacts-Df8ptuMn.js → contacts-DKmh2q-4.js} +1 -1
  100. modoboa/frontend_dist/assets/{domains-CSxtTvUh.js → domains-CDE4_LDF.js} +1 -1
  101. modoboa/frontend_dist/assets/domains.store-a9Y5UlDV.js +1 -0
  102. modoboa/frontend_dist/assets/{filter-DHKXX97M.js → filter-BVvMTmPG.js} +1 -1
  103. modoboa/frontend_dist/assets/{global.store-DYMmGKpn.js → global.store-Bha4Z76j.js} +1 -1
  104. modoboa/frontend_dist/assets/{importExport-C-adpHJX.js → importExport-EgijWlC1.js} +1 -1
  105. modoboa/frontend_dist/assets/index-BjibLozh.js +995 -0
  106. modoboa/frontend_dist/assets/{index-Bp9Fb67E.js → index-Dwg6jPTX.js} +1 -1
  107. modoboa/frontend_dist/assets/{language.store-_-zrrEiS.js → language.store-DGuI8jG0.js} +1 -1
  108. modoboa/frontend_dist/assets/languages-Cge6pECg.js +1 -0
  109. modoboa/frontend_dist/assets/{layout-CjSP_k58.js → layout-5PvsmkGR.js} +1 -1
  110. modoboa/frontend_dist/assets/{layout.store-CF5WRevH.js → layout.store-DJVcXtxk.js} +1 -1
  111. modoboa/frontend_dist/assets/{logos-95XYS6uH.js → logos-CMmd0hOG.js} +1 -1
  112. modoboa/frontend_dist/assets/{logs-CyU_PIDh.js → logs-D2GOydPZ.js} +1 -1
  113. modoboa/frontend_dist/assets/{parameters-BxAXBXU1.js → parameters-DJdlq9sh.js} +1 -1
  114. modoboa/frontend_dist/assets/{parameters.store-CATOSoQZ.js → parameters.store-DH3pPlaT.js} +1 -1
  115. modoboa/frontend_dist/assets/{permissions-cSkGqV3M.js → permissions-CgFJFhCp.js} +1 -1
  116. modoboa/frontend_dist/assets/{ssrBoot-05WtbG6H.js → ssrBoot-ChTB-PYP.js} +1 -1
  117. modoboa/frontend_dist/assets/{tag-BmV84V2s.js → tag-CvrHE14f.js} +1 -1
  118. modoboa/frontend_dist/assets/{theme-myV4ekXo.js → theme-DFzlhSh5.js} +1 -1
  119. modoboa/frontend_dist/assets/transports-BUSYxSF4.js +1 -0
  120. modoboa/frontend_dist/assets/{webmail-B7MNMkv_.js → webmail-HVg3ZHC0.js} +1 -1
  121. modoboa/frontend_dist/assets/{webmail.store-Cm-h6hhE.js → webmail.store-D-d88s4w.js} +1 -1
  122. modoboa/frontend_dist/index.html +1 -1
  123. modoboa/imap_migration/api/v2/serializers.py +13 -0
  124. modoboa/imap_migration/tests.py +7 -0
  125. modoboa/locale/br/LC_MESSAGES/django.po +487 -79
  126. modoboa/locale/cs/LC_MESSAGES/django.po +420 -75
  127. modoboa/locale/cs_CZ/LC_MESSAGES/django.po +534 -139
  128. modoboa/locale/de/LC_MESSAGES/django.mo +0 -0
  129. modoboa/locale/de/LC_MESSAGES/django.po +853 -220
  130. modoboa/locale/de_DE/LC_MESSAGES/django.po +476 -77
  131. modoboa/locale/el_GR/LC_MESSAGES/django.po +558 -154
  132. modoboa/locale/en/LC_MESSAGES/django.po +418 -75
  133. modoboa/locale/es/LC_MESSAGES/django.po +543 -151
  134. modoboa/locale/es_MX/LC_MESSAGES/django.po +418 -75
  135. modoboa/locale/fi/LC_MESSAGES/django.po +491 -79
  136. modoboa/locale/fr/LC_MESSAGES/django.mo +0 -0
  137. modoboa/locale/fr/LC_MESSAGES/django.po +420 -76
  138. modoboa/locale/hu/LC_MESSAGES/django.po +418 -75
  139. modoboa/locale/it/LC_MESSAGES/django.po +540 -141
  140. modoboa/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  141. modoboa/locale/ja_JP/LC_MESSAGES/django.po +735 -180
  142. modoboa/locale/ka/LC_MESSAGES/django.po +418 -75
  143. modoboa/locale/nl_NL/LC_MESSAGES/django.po +544 -152
  144. modoboa/locale/no/LC_MESSAGES/django.po +418 -75
  145. modoboa/locale/pl_PL/LC_MESSAGES/django.po +564 -162
  146. modoboa/locale/pt_BR/LC_MESSAGES/django.po +567 -157
  147. modoboa/locale/pt_PT/LC_MESSAGES/django.po +521 -132
  148. modoboa/locale/ro_RO/LC_MESSAGES/django.po +498 -79
  149. modoboa/locale/ru/LC_MESSAGES/django.po +530 -137
  150. modoboa/locale/si/LC_MESSAGES/django.po +418 -75
  151. modoboa/locale/sk/LC_MESSAGES/django.po +420 -75
  152. modoboa/locale/sk_SK/LC_MESSAGES/django.po +420 -75
  153. modoboa/locale/sl_SI/LC_MESSAGES/django.po +441 -80
  154. modoboa/locale/sv/LC_MESSAGES/django.po +556 -152
  155. modoboa/locale/tr/LC_MESSAGES/django.po +470 -77
  156. modoboa/locale/tr_TR/LC_MESSAGES/django.po +454 -75
  157. modoboa/locale/uk/LC_MESSAGES/django.po +420 -75
  158. modoboa/locale/zh/LC_MESSAGES/django.po +417 -75
  159. modoboa/locale/zh_CN/LC_MESSAGES/django.po +417 -75
  160. modoboa/locale/zh_TW/LC_MESSAGES/django.po +486 -77
  161. {modoboa-2.6.4.dist-info → modoboa-2.6.5.dist-info}/METADATA +1 -1
  162. {modoboa-2.6.4.dist-info → modoboa-2.6.5.dist-info}/RECORD +167 -167
  163. modoboa/frontend_dist/assets/AccountLayout-B2HptJzY.js +0 -1
  164. modoboa/frontend_dist/assets/CalendarView-DSCBIvef.js +0 -1
  165. modoboa/frontend_dist/assets/ComposeEmailView-Ce1CtFjD.js +0 -1
  166. modoboa/frontend_dist/assets/EmptyLayout-DMwKNHfI.js +0 -1
  167. modoboa/frontend_dist/assets/ForwardEmailView-C0I00eXf.js +0 -1
  168. modoboa/frontend_dist/assets/ParametersView-B6abt-LH.js +0 -1
  169. modoboa/frontend_dist/assets/ParametersView-v0YS6WU4.js +0 -1
  170. modoboa/frontend_dist/assets/ProviderEditView-BaL9mKxJ.js +0 -1
  171. modoboa/frontend_dist/assets/ProviderGeneralForm-eoHMDO5v.js +0 -1
  172. modoboa/frontend_dist/assets/ProvidersView-Zu-G35u7.js +0 -1
  173. modoboa/frontend_dist/assets/QuarantineLayout-BHiiksnP.js +0 -1
  174. modoboa/frontend_dist/assets/ReplyEmailView-JmSiNWPy.js +0 -1
  175. modoboa/frontend_dist/assets/SelfServiceLayout-DUmQzUDk.js +0 -1
  176. modoboa/frontend_dist/assets/UserLayout-DwxcQr4L.js +0 -1
  177. modoboa/frontend_dist/assets/VSpacer-BUxSSJbH.js +0 -1
  178. modoboa/frontend_dist/assets/domains.store-D4ZqCQ-O.js +0 -1
  179. modoboa/frontend_dist/assets/index-B1bntsLR.js +0 -995
  180. modoboa/frontend_dist/assets/languages-CxjoT69j.js +0 -1
  181. modoboa/frontend_dist/assets/transports-ChdHV5hX.js +0 -1
  182. {modoboa-2.6.4.data → modoboa-2.6.5.data}/scripts/modoboa-admin.py +0 -0
  183. {modoboa-2.6.4.dist-info → modoboa-2.6.5.dist-info}/WHEEL +0 -0
  184. {modoboa-2.6.4.dist-info → modoboa-2.6.5.dist-info}/entry_points.txt +0 -0
  185. {modoboa-2.6.4.dist-info → modoboa-2.6.5.dist-info}/licenses/LICENSE +0 -0
  186. {modoboa-2.6.4.dist-info → modoboa-2.6.5.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- import{d as E}from"./domains-CSxtTvUh.js";import{b as J,n as ne,h as n,i as I,d as ie,c as A,o as V,w as l,a,p as we,e as $,t as c,f as i,m as H,k as h,q as ce,l as j,F as fe,_ as ve,s as he,v as X,r as Ce,x as Ae}from"./index-B1bntsLR.js";import{u as _e}from"./permissions-cSkGqV3M.js";import{d as $e}from"./index-Bp9Fb67E.js";import{V as ye,r as te}from"./VForm-DkphQD3e.js";import{c as Se,V as Ue,b as Ne,a as ge}from"./VCard-BoH6kjPa.js";import{V as se}from"./VTextField-QXQFhKxm.js";import{V as Fe}from"./VAutocomplete-Huaz_-hf.js";import{V as Z}from"./VSwitch-Dh_dserW.js";import{V as qe}from"./VSpacer-BUxSSJbH.js";import{V as q,a as me}from"./VAvatar-JdJfoK0C.js";import{p as Le}from"./parameters-BxAXBXU1.js";import{_ as Te}from"./CreationForm-CjtILq0_.js";import{_ as Ee,a as Re,b as Oe,c as Pe}from"./DomainTransportForm-DAXJGNLA.js";import{_ as ze}from"./AccountPasswordSubForm-DpADntAL.js";import{a as B,V as ue}from"./VRow-CuVZGqBj.js";import{_ as Ie,a as Me}from"./DomainAdminList-BjtfbhRj.js";import{_ as Be}from"./ConfirmDialog-Du7aqKbR.js";import{V as le}from"./VSelect-D5IXDPEX.js";import{_ as je}from"./MenuItems-dl38msRA.js";import{V as oe,a as be,b as de,c as pe}from"./VMenu-B6SCtOwT.js";import{V as Je}from"./VBadge-Cg5iu5LG.js";import{V as Ve,a as Ge}from"./VToolbar-CyrYSqJZ.js";import{V as We}from"./VDataTableServer-B_6fWBA3.js";import{V as Ke}from"./VCheckbox-CCLOJFKF.js";import{V as Q}from"./VDialog-DIUeAIpw.js";import{_ as Qe,i as He}from"./importExport-C-adpHJX.js";import"./tag-BmV84V2s.js";import"./VInput-CbqehdOu.js";import"./VProgressCircular-DTDGzl2O.js";import"./filter-DHKXX97M.js";import"./VCheckboxBtn-Ccl786Rg.js";import"./VSelectionControl-uKY9Zull.js";/* empty css */import"./logos-95XYS6uH.js";import"./VWindowItem-kZpArwK1.js";import"./ssrBoot-05WtbG6H.js";import"./VContainer-DKMcKasC.js";import"./VSheet-HeHw6g5_.js";import"./ChoiceField-RDT6XcnX.js";import"./transports-ChdHV5hX.js";import"./accounts-DqbBlaLK.js";import"./VAlert-CNys_LUS.js";import"./VDataTableVirtual-Ike7oqcC.js";import"./VDataTable-BkLLfcQK.js";import"./VTable-gDsAUSLX.js";import"./VFileInput-Dvj95FL5.js";const Ye={class:"headline"},Xe={class:"m-label"},Ze={class:"m-label"},ke={__name:"DomainAliasForm",props:{domainAlias:{type:Object,default:()=>null}},emits:["close","aliasDeleted"],setup(T,{emit:k}){const{$gettext:e}=J(),d=k,{displayNotification:w}=ne(),f=T,U=n([]),t=n({enabled:!0}),r=n(!1),F=n(),C=n(""),v=I(()=>f.domainAlias?e("Update"):e("Add")),_=I(()=>f.domainAlias?e("Edit domain alias"):e("Add a new domain alias"));async function L(){r.value=!0;try{await E.deleteDomainAlias(f.domainAlias.pk),w({msg:e("Domain alias deleted")}),d("aliasDeleted"),d("close")}finally{r.value=!1}}function D(){const N={page_size:0};C.value&&(N.search=C.value),E.getDomains(N).then(x=>{U.value=x.data.results})}const m=$e(D,500);async function g(){const{valid:N}=await F.value.validate();if(N){r.value=!0;try{if(!t.value.pk)await E.createDomainAlias(t.value),w({msg:e("Domain alias created")});else{const x=JSON.parse(JSON.stringify(t.value));await E.updateDomainAlias(f.domainAlias.pk,x),w({msg:e("Domain alias updated")})}d("close")}finally{r.value=!1}}}return ie(()=>{D(),f.domainAlias&&(t.value=JSON.parse(JSON.stringify(f.domainAlias)))}),(N,x)=>(V(),A(ge,null,{default:l(()=>[a(ye,{ref_key:"vFormRef",ref:F,onSubmit:we(g,["prevent"])},{default:l(()=>[a(Se,null,{default:l(()=>[$("span",Ye,c(_.value),1)]),_:1}),a(Ue,null,{default:l(()=>[$("label",Xe,c(i(e)("Name")),1),a(se,{modelValue:t.value.name,"onUpdate:modelValue":x[0]||(x[0]=S=>t.value.name=S),variant:"outlined",density:"compact",rules:[i(te).required]},null,8,["modelValue","rules"]),$("label",Ze,c(i(e)("Choose a domain")),1),a(Fe,{modelValue:t.value.target,"onUpdate:modelValue":x[1]||(x[1]=S=>t.value.target=S),search:C.value,"onUpdate:search":[x[2]||(x[2]=S=>C.value=S),i(m)],items:U.value,"item-title":"name","item-value":"pk",rules:[i(te).required],variant:"outlined",density:"compact",clearable:""},null,8,["modelValue","search","items","rules","onUpdate:search"]),a(Z,{modelValue:t.value.enabled,"onUpdate:modelValue":x[3]||(x[3]=S=>t.value.enabled=S),label:"Enabled",color:"primary"},null,8,["modelValue"])]),_:1}),a(Ne,null,{default:l(()=>[a(qe),a(q,{loading:r.value,onClick:x[4]||(x[4]=S=>d("close"))},{default:l(()=>[h(c(i(e)("Close")),1)]),_:1},8,["loading"]),T.domainAlias&&T.domainAlias.pk?(V(),A(q,{key:0,color:"error",loading:r.value,onClick:L},{default:l(()=>[h(c(i(e)("Delete")),1)]),_:1},8,["loading"])):H("",!0),a(q,{color:"primary",type:"submit",loading:r.value},{default:l(()=>[h(c(v.value),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},ea={__name:"DomainOptionsForm",props:{modelValue:{type:Object,default:null}},emits:["createAdmin"],setup(T,{expose:k,emit:e}){const{$gettext:d}=J(),w=T,f=e,U=n(),t=n(!1),r=I(()=>w.modelValue);function F(C){f("createAdmin",C)}return k({vFormRef:U}),(C,v)=>(V(),A(ye,{ref_key:"vFormRef",ref:U},{default:l(()=>[a(Z,{modelValue:t.value,"onUpdate:modelValue":[v[0]||(v[0]=_=>t.value=_),F],label:i(d)("Create a domain administrator"),color:"primary"},null,8,["modelValue","label"]),a(se,{modelValue:r.value.domain_admin.username,"onUpdate:modelValue":v[1]||(v[1]=_=>r.value.domain_admin.username=_),label:i(d)("Name"),hint:i(d)("Name of the administrator"),"persistent-hint":"",variant:"outlined",disabled:!t.value,suffix:`@${r.value.name}`,rules:[!t.value||i(te).required]},null,8,["modelValue","label","hint","disabled","suffix","rules"]),a(ze,{modelValue:r.value.domain_admin,"onUpdate:modelValue":v[2]||(v[2]=_=>r.value.domain_admin=_),disabled:!t.value},null,8,["modelValue","disabled"]),a(Z,{modelValue:r.value.domain_admin.with_mailbox,"onUpdate:modelValue":v[3]||(v[3]=_=>r.value.domain_admin.with_mailbox=_),label:i(d)("With a mailbox"),disabled:!t.value,hint:i(d)("Create a mailbox for the administrator."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"]),a(Z,{modelValue:r.value.domain_admin.with_aliases,"onUpdate:modelValue":v[4]||(v[4]=_=>r.value.domain_admin.with_aliases=_),label:i(d)("Create aliases"),disabled:!t.value,hint:i(d)("Create standard aliases for the domain."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"])]),_:1},512))}},aa={class:"text-grey"},ta={__name:"DomainCreationForm",emits:["close","created"],setup(T,{emit:k}){const{$gettext:e}=J(),d=ne(),w=ce(),f=k,t=n({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:{}}});ie(()=>{Le.getGlobalApplication("admin").then(u=>{const p=u.data.params;t.value.quota=p.default_domain_quota,t.value.default_mailbox_quota=p.default_mailbox_quota,p.default_domain_message_limit!==null&&(t.value.message_limit=p.default_domain_message_limit)})});const r=n(!1),F=n(),C=n(),v=n(),_=n(),L=n(),D=n(),m={general:C,dns:v,limitations:_,options:L,transport:D},g=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"options",title:e("Options")}],N=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"transport",title:e("Transport")}],x=I(()=>t.value.type==="domain"?g:N),S=I(()=>{const u=[{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&&(u[1].items.push({key:e("DKIM key selector"),value:t.value.dkim_key_selector}),u[1].items.push({key:e("DKIM key length"),value:t.value.dkim_key_length})),t.value.type==="relaydomain"&&t.value.transport.service){const p={title:e("Transport"),items:[{key:e("Service"),value:t.value.transport.service}]};for(const b of D.value.service.settings){const Y={key:b.label,value:t.value.transport.settings[`${t.value.transport.service}_${b.name}`]};b.type==="boolean"&&(Y.type="yesno"),p.items.push(Y)}u.push(p)}else if(t.value.type==="domain"){const p={title:e("Options"),items:[{key:e("Create a domain administrator"),value:r.value,type:"yesno"}]};r.value&&p.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"}),u.push(p)}return u});function G(){f("close")}function W(){navigator.clipboard.writeText(t.value.domain_admin.password).then(()=>{d.displayNotification({msg:e("Password copied to clipboard")})})}function K(u){return m.value[u.name]}function M(u){return m[u.name].value.vFormRef}async function R(){}function ee(u){r.value=u}async function ae(){const u=JSON.parse(JSON.stringify(t.value));r.value||delete u.domain_admin,u.message_limit===""&&delete u.message_limit,u.type==="relaydomain"?D.value.checkSettingTypes(u):delete u.transport;try{const p=await E.createDomain(u);w.push({name:"DomainDetail",params:{id:p.data.pk}}),d.displayNotification({msg:e("Domain created")}),G()}finally{F.value.working=!1}}return(u,p)=>(V(),A(Te,{ref_key:"form",ref:F,title:i(e)("New domain"),steps:x.value,"form-getter":K,"get-v-form-ref":M,"validate-object":R,"summary-sections":S.value,onClose:G,onCreate:ae},{"form.general":l(()=>[a(Pe,{ref_key:"general",ref:C,modelValue:t.value,"onUpdate:modelValue":p[0]||(p[0]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.dns":l(()=>[a(Oe,{ref_key:"dns",ref:v,modelValue:t.value,"onUpdate:modelValue":p[1]||(p[1]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.limitations":l(()=>[a(Re,{ref_key:"limitations",ref:_,modelValue:t.value,"onUpdate:modelValue":p[2]||(p[2]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.options":l(()=>[a(ea,{ref_key:"options",ref:L,modelValue:t.value,"onUpdate:modelValue":p[3]||(p[3]=b=>t.value=b),class:"ml-4",onCreateAdmin:ee},null,8,["modelValue"])]),"form.transport":l(()=>[a(Ee,{ref_key:"transport",ref:D,modelValue:t.value.transport,"onUpdate:modelValue":p[4]||(p[4]=b=>t.value.transport=b),class:"ml-4"},null,8,["modelValue"])]),"item.random_password":l(({item:b})=>[b.value?(V(),A(B,{key:0,cols:"12",class:"highligth text-white"},{default:l(()=>[a(ue,null,{default:l(()=>[a(B,null,{default:l(()=>[$("span",null,c(b.key),1)]),_:2},1024),a(B,{class:"text-right"},{default:l(()=>[h(c(u.$yesno(b.value)),1)]),_:2},1024)]),_:2},1024),a(ue,null,{default:l(()=>[a(B,{class:"text-right py-1"},{default:l(()=>[h(c(t.value.domain_admin.password)+" ",1),a(q,{icon:"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:i(e)("Copy to clipboard"),onClick:W},null,8,["title"])]),_:1})]),_:1})]),_:2},1024)):(V(),j(fe,{key:1},[a(B,null,{default:l(()=>[$("span",aa,c(b.key),1)]),_:2},1024),a(B,{class:"text-right"},{default:l(()=>[h(c(u.$yesno(b.value)),1)]),_:2},1024)],64))]),_:2},1032,["title","steps","summary-sections"]))}},la={__name:"DNSStatusChip",props:{status:{type:String,default:"pending"}},setup(T){const k=T,{$gettext:e}=J(),d=I(()=>k.status==="disabled"?e("Disabled"):k.status==="pending"?e("Pending"):k.status==="critical"?e("Problem"):k.status==="ok"?e("Valid"):e("Unknown")),w=I(()=>k.status==="disabled"?"":k.status==="pending"?"info":k.status==="critical"?"error":k.status==="ok"?"success":"warning");return(f,U)=>(V(),A(le,{color:w.value,size:"small"},{default:l(()=>[h(c(d.value),1)]),_:1},8,["color"]))}},oa={key:1},na={key:1},ia={class:"text-right"},sa={class:"grey lighten-4"},ra=["colspan"],ma={__name:"DomainList",setup(T,{expose:k}){const{$gettext:e}=J(),d=ce(),{canSetRole:w}=_e(),f=ne(),U=[{title:e("Name"),key:"name"},{title:e("Enabled"),key:"enabled",width:"5%"},{title:e("Aliases"),key:"data-table-expand",width:"10%"},{title:e("DNS status"),key:"dns_global_status",sortable:!1},{title:e("Sending limit"),key:"message_limit"},{title:e("Quota"),key:"allocated_quota_in_percent",sortable:!1}],t=[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"}];w.value&&U.push({title:e("Actions"),value:"actions",sortable:!1,align:"end"});const r=n({}),F=n(),C=n([]),v=n(!1),_=n(!1),L=n(null),D=n(null),m=n(!1),g=n(!1),N=n(""),x=n([]),S=n([]),G=n(0),W=n(1),K=n(10),M=n([]);async function R(){const y={page:W.value||1,page_size:K.value||10};M.value&&M.value.length&&(y.ordering=M.value.map(s=>s.order!=="asc"?`-${s.key}`:s.key).join(",")),N.value!==""&&(y.search=N.value),r.value={},_.value=!0,S.value=[];try{const s=await E.getDomains(y);C.value=s.data.results,G.value=s.data.count}finally{_.value=!1}}async function ee({page:y,itemsPerPage:s,sortBy:z}){W.value=y,K.value=s,M.value=z,await R()}function ae(){g.value=!1,L.value=null,D.value=null}async function u(y){if(await F.value.open(e("Warning"),e("Do you really want to delete the domain %{ domain }?",{domain:y.name}),{color:"error",cancelLabel:e("No"),agreeLabel:e("Yes")})){_.value=!0;try{const z={keep_folder:v.value};await E.deleteDomain(y.pk,z),R(),f.displayNotification({msg:e("Domain deleted")}),v.value=!1}finally{_.value=!1}}}function p(y){d.push({name:"DomainEdit",params:{id:y.pk}})}function b(y,s){L.value=y,D.value=s,g.value=!0}async function Y(y,s,z,o){if(!z(s)){const P=await E.getDomainAliases(y.name);r.value[y.name]=P.data}o(s)}function xe(y){L.value=y,m.value=!0}function De(y){const s=[{label:e("Administrators"),icon:"mdi-account-supervisor",onClick:xe},{label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:p},{label:e("Delete"),icon:"mdi-delete-outline",onClick:u,color:"red"}];return y.opened_alarms_count&&s.push({label:e("Alarms"),icon:"mdi-bell",color:"red",onClick:()=>d.push({name:"Alarms",query:{search:y.name}})}),s}return ie(()=>{R()}),k({reloadDomains:R}),(y,s)=>{const z=Ce("router-link");return V(),A(ge,{class:"mt-6"},{default:l(()=>[a(We,{modelValue:x.value,"onUpdate:modelValue":s[1]||(s[1]=o=>x.value=o),expanded:S.value,"onUpdate:expanded":s[2]||(s[2]=o=>S.value=o),headers:U,items:C.value,"items-length":G.value,page:W.value,"items-per-page":K.value,"items-per-page-options":t,"item-value":"pk",search:N.value,"show-select":"","show-expand":"",loading:_.value,"onUpdate:options":ee},{top:l(()=>[a(Ve,{color:"white",flat:""},{default:l(()=>[a(se,{modelValue:N.value,"onUpdate:modelValue":s[0]||(s[0]=o=>N.value=o),"prepend-inner-icon":"mdi-magnify",placeholder:i(e)("Search"),variant:"outlined","single-line":"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),Ae(y.$slots,"extraActions",{},void 0,!0),a(oe,{location:"bottom"},{activator:l(({props:o})=>[a(q,X({variant:"flat","append-icon":"mdi-chevron-down"},o,{size:"small"}),{default:l(()=>[h(c(i(e)("Actions")),1)]),_:1},16)]),default:l(()=>[a(be,{density:"compact"})]),_:1}),a(q,{variant:"text",icon:"mdi-reload",onClick:R})]),_:3})]),"item.name":l(({item:o})=>[a(z,{to:{name:"DomainDetail",params:{id:o.pk}}},{default:l(()=>[h(c(o.name),1)]),_:2},1032,["to"]),o.type==="relaydomain"?(V(),A(le,{key:0,size:"small",color:"primary",class:"ml-2"},{default:l(()=>[h(c(i(e)("Relay")),1)]),_:1})):H("",!0)]),"item.enabled":l(({item:o})=>[a(Ie,{value:o.enabled},null,8,["value"])]),"item.data-table-expand":l(({item:o,internalItem:O,isExpanded:P,toggleExpand:re})=>[h(c(o.domainalias_count)+" aliases ",1),o.domainalias_count?(V(),A(q,{key:0,variant:"text",size:"small",icon:P(O)?"mdi-chevron-up":"mdi-chevron-down",onClick:pa=>Y(o,O,P,re)},null,8,["icon","onClick"])):H("",!0)]),"item.dns_global_status":l(({item:o})=>[a(la,{status:o.dns_global_status},null,8,["status"])]),"item.message_limit":l(({item:o})=>[o.message_limit?(V(),A(me,{key:0,color:o.sent_messages_in_percent<80?"primary":"warning","model-value":o.sent_messages_in_percent},null,8,["color","model-value"])):(V(),j("span",oa,c(i(e)("Unlimited")),1))]),"item.allocated_quota_in_percent":l(({item:o})=>[o.quota!=="0"?(V(),A(me,{key:0,color:o.allocated_quota_in_percent<80?"primary":"warning","model-value":o.allocated_quota_in_percent},null,8,["color","model-value"])):(V(),j("span",na,c(i(e)("Unlimited")),1))]),"item.actions":l(({item:o})=>[$("div",ia,[a(oe,{"offset-y":""},{activator:l(({props:O})=>[o.opened_alarms_count?(V(),A(Je,{key:0,bordered:"",color:"error",icon:"mdi-bell",overlap:""},{default:l(()=>[a(q,X({icon:"mdi-dots-horizontal",variant:"text"},O),null,16)]),_:2},1024)):(V(),A(q,X({key:1,icon:"mdi-dots-horizontal",variant:"text"},O),null,16))]),default:l(()=>[a(je,{items:De(o),obj:o},null,8,["items","obj"])]),_:2},1024)])]),"expanded-row":l(({item:o,columns:O})=>[$("tr",sa,[$("td",{colspan:O.length},[(V(!0),j(fe,null,he(r.value[o.name],P=>(V(),j("span",{key:P.name,class:"mr-4"},[a(le,{class:"mr-2",onClick:re=>b(o,P)},{default:l(()=>[h(c(P.name),1)]),_:2},1032,["onClick"])]))),128))],8,ra)])]),_:2},1032,["modelValue","expanded","items","items-length","page","items-per-page","search","loading"]),a(Be,{ref_key:"confirm",ref:F},{default:l(()=>[a(Ke,{modelValue:v.value,"onUpdate:modelValue":s[3]||(s[3]=o=>v.value=o),label:i(e)("Do not delete domain folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),a(Q,{modelValue:g.value,"onUpdate:modelValue":s[4]||(s[4]=o=>g.value=o),persistent:"","max-width":"800px"},{default:l(()=>[a(ke,{"domain-alias":D.value,onClose:ae,onAliasDeleted:R},null,8,["domain-alias"])]),_:1},8,["modelValue"]),a(Q,{modelValue:m.value,"onUpdate:modelValue":s[6]||(s[6]=o=>m.value=o),persistent:"","max-width":"800px"},{default:l(()=>[a(Me,{domain:L.value,"dialog-mode":"",onClose:s[5]||(s[5]=o=>m.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"])]),_:3})}}},ua=ve(ma,[["__scopeId","data-v-f195dac6"]]),da={__name:"DomainsView",setup(T){const k=n(),e=n(!1),d=n(!1),w=n(!1),{$gettext:f}=J(),{canAddDomain:U}=_e(),t=n(),{importContent:r,exportContent:F}=He();function C(){E.exportAll().then(D=>{F(D.data,"domains",f)})}function v(D){r(E,D,t,f)}const _=()=>{e.value=!1,k.value.reloadDomains()},L=()=>{w.value=!1,k.value.reloadDomains()};return(D,m)=>(V(),j("div",null,[a(Ve,{flat:""},{default:l(()=>[a(Ge,null,{default:l(()=>[h(c(i(f)("Domains")),1)]),_:1})]),_:1}),a(i(ua),{ref_key:"domainList",ref:k},{extraActions:l(()=>[i(U)?(V(),A(oe,{key:0,"offset-y":""},{activator:l(({props:g})=>[a(q,X({color:"primary",variant:"outlined"},g,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:l(()=>[h(c(D.$pgettext("male","New")),1)]),_:1},16)]),default:l(()=>[a(be,{density:"compact"},{default:l(()=>[a(de,{onClick:m[0]||(m[0]=g=>d.value=!0)},{default:l(()=>[a(pe,null,{default:l(()=>[h(c(i(f)("Domain")),1)]),_:1})]),_:1}),a(de,{onClick:m[1]||(m[1]=g=>e.value=!0)},{default:l(()=>[a(pe,null,{default:l(()=>[h(c(i(f)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1})):H("",!0),i(U)?(V(),A(q,{key:1,class:"mr-2",title:i(f)("Import domains and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:m[2]||(m[2]=g=>w.value=!0)},null,8,["title"])):H("",!0),a(q,{class:"mr-2",title:i(f)("Export domains and aliases to CSV"),variant:"flat",icon:"mdi-file-export-outline",onClick:C},null,8,["title"])]),_:1},512),a(Q,{modelValue:d.value,"onUpdate:modelValue":m[4]||(m[4]=g=>d.value=g),fullscreen:"",scrollable:"","z-index":"10"},{default:l(()=>[a(i(ta),{onClose:m[3]||(m[3]=g=>d.value=!1)})]),_:1},8,["modelValue"]),a(Q,{modelValue:e.value,"onUpdate:modelValue":m[6]||(m[6]=g=>e.value=g),persistent:"","max-width":"800px"},{default:l(()=>[a(i(ke),{onClose:m[5]||(m[5]=g=>_())})]),_:1},8,["modelValue"]),a(Q,{modelValue:w.value,"onUpdate:modelValue":m[7]||(m[7]=g=>w.value=g),persistent:"","max-width":"800px"},{default:l(()=>[a(i(Qe),{ref_key:"importForm",ref:t,title:i(f)("Import domains"),onSubmit:v,onClose:L},{help:l(()=>[...m[8]||(m[8]=[$("ul",null,[$("li",null,[$("em",null,"domain; name; quota; default mailbox quota; enabled")]),$("li",null,[$("em",null,"domainalias; name; targeted domain; enabled")]),$("li",null,[$("em",null,"relaydomain; name; target host; target port; service; enabled; verify recipients")])],-1)])]),_:1},8,["title"])]),_:1},8,["modelValue"])]))}},it=ve(da,[["__scopeId","data-v-de80aa3f"]]);export{it as default};
1
+ import{d as E}from"./domains-CDE4_LDF.js";import{b as J,n as ne,h as n,i as I,d as ie,c as A,o as V,w as l,a,p as we,e as $,t as c,f as i,m as H,k as h,q as ce,l as j,F as fe,_ as ve,s as he,v as X,r as Ce,x as Ae}from"./index-BjibLozh.js";import{u as _e}from"./permissions-CgFJFhCp.js";import{d as $e}from"./index-Dwg6jPTX.js";import{V as ye,r as te}from"./VForm-ClJU5x_v.js";import{c as Se,V as Ue,b as Ne,a as ge}from"./VCard-D7AwBs4w.js";import{V as se}from"./VTextField-DvvH1ciR.js";import{V as Fe}from"./VAutocomplete-DcNqTIie.js";import{V as Z}from"./VSwitch-D4xdR9jz.js";import{V as qe}from"./VSpacer-CBqB9uSt.js";import{V as q,a as me}from"./VAvatar-BsHplcRP.js";import{p as Le}from"./parameters-DJdlq9sh.js";import{_ as Te}from"./CreationForm-CaAZYATm.js";import{_ as Ee,a as Re,b as Oe,c as Pe}from"./DomainTransportForm-Ccw5BXyM.js";import{_ as ze}from"./AccountPasswordSubForm-D4vB2yQK.js";import{a as B,V as ue}from"./VRow-DyK_Mj7R.js";import{_ as Ie,a as Me}from"./DomainAdminList-BO8_4Cwt.js";import{_ as Be}from"./ConfirmDialog-BMIg94-U.js";import{V as le}from"./VSelect-y0E5_vPn.js";import{_ as je}from"./MenuItems-efx2rqwT.js";import{V as oe,a as be,b as de,c as pe}from"./VMenu-B53a3gm6.js";import{V as Je}from"./VBadge-CavP_E2g.js";import{V as Ve,a as Ge}from"./VToolbar-pvLQtmbU.js";import{V as We}from"./VDataTableServer-CJfpYXQW.js";import{V as Ke}from"./VCheckbox-CKW9lz5i.js";import{V as Q}from"./VDialog-CUMh3paI.js";import{_ as Qe,i as He}from"./importExport-EgijWlC1.js";import"./tag-CvrHE14f.js";import"./VInput-DhzSMFXh.js";import"./VProgressCircular-viI3jDXe.js";import"./filter-BVvMTmPG.js";import"./VCheckboxBtn-B5evxN9K.js";import"./VSelectionControl-Dkms9_P5.js";/* empty css */import"./logos-CMmd0hOG.js";import"./VWindowItem-DErNPSH8.js";import"./ssrBoot-ChTB-PYP.js";import"./VContainer-DY9021j4.js";import"./VSheet-DQkh_hsX.js";import"./ChoiceField-BPhUvoyr.js";import"./transports-BUSYxSF4.js";import"./accounts-BZBqbAmd.js";import"./VAlert-Buv8Z5G4.js";import"./VDataTableVirtual-Cr8yw49k.js";import"./VDataTable-ocZo8ju0.js";import"./VTable-D8ZwwC_B.js";import"./VFileInput-D5qlksIG.js";const Ye={class:"headline"},Xe={class:"m-label"},Ze={class:"m-label"},ke={__name:"DomainAliasForm",props:{domainAlias:{type:Object,default:()=>null}},emits:["close","aliasDeleted"],setup(T,{emit:k}){const{$gettext:e}=J(),d=k,{displayNotification:w}=ne(),f=T,U=n([]),t=n({enabled:!0}),r=n(!1),F=n(),C=n(""),v=I(()=>f.domainAlias?e("Update"):e("Add")),_=I(()=>f.domainAlias?e("Edit domain alias"):e("Add a new domain alias"));async function L(){r.value=!0;try{await E.deleteDomainAlias(f.domainAlias.pk),w({msg:e("Domain alias deleted")}),d("aliasDeleted"),d("close")}finally{r.value=!1}}function D(){const N={page_size:0};C.value&&(N.search=C.value),E.getDomains(N).then(x=>{U.value=x.data.results})}const m=$e(D,500);async function g(){const{valid:N}=await F.value.validate();if(N){r.value=!0;try{if(!t.value.pk)await E.createDomainAlias(t.value),w({msg:e("Domain alias created")});else{const x=JSON.parse(JSON.stringify(t.value));await E.updateDomainAlias(f.domainAlias.pk,x),w({msg:e("Domain alias updated")})}d("close")}finally{r.value=!1}}}return ie(()=>{D(),f.domainAlias&&(t.value=JSON.parse(JSON.stringify(f.domainAlias)))}),(N,x)=>(V(),A(ge,null,{default:l(()=>[a(ye,{ref_key:"vFormRef",ref:F,onSubmit:we(g,["prevent"])},{default:l(()=>[a(Se,null,{default:l(()=>[$("span",Ye,c(_.value),1)]),_:1}),a(Ue,null,{default:l(()=>[$("label",Xe,c(i(e)("Name")),1),a(se,{modelValue:t.value.name,"onUpdate:modelValue":x[0]||(x[0]=S=>t.value.name=S),variant:"outlined",density:"compact",rules:[i(te).required]},null,8,["modelValue","rules"]),$("label",Ze,c(i(e)("Choose a domain")),1),a(Fe,{modelValue:t.value.target,"onUpdate:modelValue":x[1]||(x[1]=S=>t.value.target=S),search:C.value,"onUpdate:search":[x[2]||(x[2]=S=>C.value=S),i(m)],items:U.value,"item-title":"name","item-value":"pk",rules:[i(te).required],variant:"outlined",density:"compact",clearable:""},null,8,["modelValue","search","items","rules","onUpdate:search"]),a(Z,{modelValue:t.value.enabled,"onUpdate:modelValue":x[3]||(x[3]=S=>t.value.enabled=S),label:"Enabled",color:"primary"},null,8,["modelValue"])]),_:1}),a(Ne,null,{default:l(()=>[a(qe),a(q,{loading:r.value,onClick:x[4]||(x[4]=S=>d("close"))},{default:l(()=>[h(c(i(e)("Close")),1)]),_:1},8,["loading"]),T.domainAlias&&T.domainAlias.pk?(V(),A(q,{key:0,color:"error",loading:r.value,onClick:L},{default:l(()=>[h(c(i(e)("Delete")),1)]),_:1},8,["loading"])):H("",!0),a(q,{color:"primary",type:"submit",loading:r.value},{default:l(()=>[h(c(v.value),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},ea={__name:"DomainOptionsForm",props:{modelValue:{type:Object,default:null}},emits:["createAdmin"],setup(T,{expose:k,emit:e}){const{$gettext:d}=J(),w=T,f=e,U=n(),t=n(!1),r=I(()=>w.modelValue);function F(C){f("createAdmin",C)}return k({vFormRef:U}),(C,v)=>(V(),A(ye,{ref_key:"vFormRef",ref:U},{default:l(()=>[a(Z,{modelValue:t.value,"onUpdate:modelValue":[v[0]||(v[0]=_=>t.value=_),F],label:i(d)("Create a domain administrator"),color:"primary"},null,8,["modelValue","label"]),a(se,{modelValue:r.value.domain_admin.username,"onUpdate:modelValue":v[1]||(v[1]=_=>r.value.domain_admin.username=_),label:i(d)("Name"),hint:i(d)("Name of the administrator"),"persistent-hint":"",variant:"outlined",disabled:!t.value,suffix:`@${r.value.name}`,rules:[!t.value||i(te).required]},null,8,["modelValue","label","hint","disabled","suffix","rules"]),a(ze,{modelValue:r.value.domain_admin,"onUpdate:modelValue":v[2]||(v[2]=_=>r.value.domain_admin=_),disabled:!t.value},null,8,["modelValue","disabled"]),a(Z,{modelValue:r.value.domain_admin.with_mailbox,"onUpdate:modelValue":v[3]||(v[3]=_=>r.value.domain_admin.with_mailbox=_),label:i(d)("With a mailbox"),disabled:!t.value,hint:i(d)("Create a mailbox for the administrator."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"]),a(Z,{modelValue:r.value.domain_admin.with_aliases,"onUpdate:modelValue":v[4]||(v[4]=_=>r.value.domain_admin.with_aliases=_),label:i(d)("Create aliases"),disabled:!t.value,hint:i(d)("Create standard aliases for the domain."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"])]),_:1},512))}},aa={class:"text-grey"},ta={__name:"DomainCreationForm",emits:["close","created"],setup(T,{emit:k}){const{$gettext:e}=J(),d=ne(),w=ce(),f=k,t=n({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:{}}});ie(()=>{Le.getGlobalApplication("admin").then(u=>{const p=u.data.params;t.value.quota=p.default_domain_quota,t.value.default_mailbox_quota=p.default_mailbox_quota,p.default_domain_message_limit!==null&&(t.value.message_limit=p.default_domain_message_limit)})});const r=n(!1),F=n(),C=n(),v=n(),_=n(),L=n(),D=n(),m={general:C,dns:v,limitations:_,options:L,transport:D},g=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"options",title:e("Options")}],N=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"transport",title:e("Transport")}],x=I(()=>t.value.type==="domain"?g:N),S=I(()=>{const u=[{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&&(u[1].items.push({key:e("DKIM key selector"),value:t.value.dkim_key_selector}),u[1].items.push({key:e("DKIM key length"),value:t.value.dkim_key_length})),t.value.type==="relaydomain"&&t.value.transport.service){const p={title:e("Transport"),items:[{key:e("Service"),value:t.value.transport.service}]};for(const b of D.value.service.settings){const Y={key:b.label,value:t.value.transport.settings[`${t.value.transport.service}_${b.name}`]};b.type==="boolean"&&(Y.type="yesno"),p.items.push(Y)}u.push(p)}else if(t.value.type==="domain"){const p={title:e("Options"),items:[{key:e("Create a domain administrator"),value:r.value,type:"yesno"}]};r.value&&p.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"}),u.push(p)}return u});function G(){f("close")}function W(){navigator.clipboard.writeText(t.value.domain_admin.password).then(()=>{d.displayNotification({msg:e("Password copied to clipboard")})})}function K(u){return m.value[u.name]}function M(u){return m[u.name].value.vFormRef}async function R(){}function ee(u){r.value=u}async function ae(){const u=JSON.parse(JSON.stringify(t.value));r.value||delete u.domain_admin,u.message_limit===""&&delete u.message_limit,u.type==="relaydomain"?D.value.checkSettingTypes(u):delete u.transport;try{const p=await E.createDomain(u);w.push({name:"DomainDetail",params:{id:p.data.pk}}),d.displayNotification({msg:e("Domain created")}),G()}finally{F.value.working=!1}}return(u,p)=>(V(),A(Te,{ref_key:"form",ref:F,title:i(e)("New domain"),steps:x.value,"form-getter":K,"get-v-form-ref":M,"validate-object":R,"summary-sections":S.value,onClose:G,onCreate:ae},{"form.general":l(()=>[a(Pe,{ref_key:"general",ref:C,modelValue:t.value,"onUpdate:modelValue":p[0]||(p[0]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.dns":l(()=>[a(Oe,{ref_key:"dns",ref:v,modelValue:t.value,"onUpdate:modelValue":p[1]||(p[1]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.limitations":l(()=>[a(Re,{ref_key:"limitations",ref:_,modelValue:t.value,"onUpdate:modelValue":p[2]||(p[2]=b=>t.value=b),class:"ml-4"},null,8,["modelValue"])]),"form.options":l(()=>[a(ea,{ref_key:"options",ref:L,modelValue:t.value,"onUpdate:modelValue":p[3]||(p[3]=b=>t.value=b),class:"ml-4",onCreateAdmin:ee},null,8,["modelValue"])]),"form.transport":l(()=>[a(Ee,{ref_key:"transport",ref:D,modelValue:t.value.transport,"onUpdate:modelValue":p[4]||(p[4]=b=>t.value.transport=b),class:"ml-4"},null,8,["modelValue"])]),"item.random_password":l(({item:b})=>[b.value?(V(),A(B,{key:0,cols:"12",class:"highligth text-white"},{default:l(()=>[a(ue,null,{default:l(()=>[a(B,null,{default:l(()=>[$("span",null,c(b.key),1)]),_:2},1024),a(B,{class:"text-right"},{default:l(()=>[h(c(u.$yesno(b.value)),1)]),_:2},1024)]),_:2},1024),a(ue,null,{default:l(()=>[a(B,{class:"text-right py-1"},{default:l(()=>[h(c(t.value.domain_admin.password)+" ",1),a(q,{icon:"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:i(e)("Copy to clipboard"),onClick:W},null,8,["title"])]),_:1})]),_:1})]),_:2},1024)):(V(),j(fe,{key:1},[a(B,null,{default:l(()=>[$("span",aa,c(b.key),1)]),_:2},1024),a(B,{class:"text-right"},{default:l(()=>[h(c(u.$yesno(b.value)),1)]),_:2},1024)],64))]),_:2},1032,["title","steps","summary-sections"]))}},la={__name:"DNSStatusChip",props:{status:{type:String,default:"pending"}},setup(T){const k=T,{$gettext:e}=J(),d=I(()=>k.status==="disabled"?e("Disabled"):k.status==="pending"?e("Pending"):k.status==="critical"?e("Problem"):k.status==="ok"?e("Valid"):e("Unknown")),w=I(()=>k.status==="disabled"?"":k.status==="pending"?"info":k.status==="critical"?"error":k.status==="ok"?"success":"warning");return(f,U)=>(V(),A(le,{color:w.value,size:"small"},{default:l(()=>[h(c(d.value),1)]),_:1},8,["color"]))}},oa={key:1},na={key:1},ia={class:"text-right"},sa={class:"grey lighten-4"},ra=["colspan"],ma={__name:"DomainList",setup(T,{expose:k}){const{$gettext:e}=J(),d=ce(),{canSetRole:w}=_e(),f=ne(),U=[{title:e("Name"),key:"name"},{title:e("Enabled"),key:"enabled",width:"5%"},{title:e("Aliases"),key:"data-table-expand",width:"10%"},{title:e("DNS status"),key:"dns_global_status",sortable:!1},{title:e("Sending limit"),key:"message_limit"},{title:e("Quota"),key:"allocated_quota_in_percent",sortable:!1}],t=[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"}];w.value&&U.push({title:e("Actions"),value:"actions",sortable:!1,align:"end"});const r=n({}),F=n(),C=n([]),v=n(!1),_=n(!1),L=n(null),D=n(null),m=n(!1),g=n(!1),N=n(""),x=n([]),S=n([]),G=n(0),W=n(1),K=n(10),M=n([]);async function R(){const y={page:W.value||1,page_size:K.value||10};M.value&&M.value.length&&(y.ordering=M.value.map(s=>s.order!=="asc"?`-${s.key}`:s.key).join(",")),N.value!==""&&(y.search=N.value),r.value={},_.value=!0,S.value=[];try{const s=await E.getDomains(y);C.value=s.data.results,G.value=s.data.count}finally{_.value=!1}}async function ee({page:y,itemsPerPage:s,sortBy:z}){W.value=y,K.value=s,M.value=z,await R()}function ae(){g.value=!1,L.value=null,D.value=null}async function u(y){if(await F.value.open(e("Warning"),e("Do you really want to delete the domain %{ domain }?",{domain:y.name}),{color:"error",cancelLabel:e("No"),agreeLabel:e("Yes")})){_.value=!0;try{const z={keep_folder:v.value};await E.deleteDomain(y.pk,z),R(),f.displayNotification({msg:e("Domain deleted")}),v.value=!1}finally{_.value=!1}}}function p(y){d.push({name:"DomainEdit",params:{id:y.pk}})}function b(y,s){L.value=y,D.value=s,g.value=!0}async function Y(y,s,z,o){if(!z(s)){const P=await E.getDomainAliases(y.name);r.value[y.name]=P.data}o(s)}function xe(y){L.value=y,m.value=!0}function De(y){const s=[{label:e("Administrators"),icon:"mdi-account-supervisor",onClick:xe},{label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:p},{label:e("Delete"),icon:"mdi-delete-outline",onClick:u,color:"red"}];return y.opened_alarms_count&&s.push({label:e("Alarms"),icon:"mdi-bell",color:"red",onClick:()=>d.push({name:"Alarms",query:{search:y.name}})}),s}return ie(()=>{R()}),k({reloadDomains:R}),(y,s)=>{const z=Ce("router-link");return V(),A(ge,{class:"mt-6"},{default:l(()=>[a(We,{modelValue:x.value,"onUpdate:modelValue":s[1]||(s[1]=o=>x.value=o),expanded:S.value,"onUpdate:expanded":s[2]||(s[2]=o=>S.value=o),headers:U,items:C.value,"items-length":G.value,page:W.value,"items-per-page":K.value,"items-per-page-options":t,"item-value":"pk",search:N.value,"show-select":"","show-expand":"",loading:_.value,"onUpdate:options":ee},{top:l(()=>[a(Ve,{color:"white",flat:""},{default:l(()=>[a(se,{modelValue:N.value,"onUpdate:modelValue":s[0]||(s[0]=o=>N.value=o),"prepend-inner-icon":"mdi-magnify",placeholder:i(e)("Search"),variant:"outlined","single-line":"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),Ae(y.$slots,"extraActions",{},void 0,!0),a(oe,{location:"bottom"},{activator:l(({props:o})=>[a(q,X({variant:"flat","append-icon":"mdi-chevron-down"},o,{size:"small"}),{default:l(()=>[h(c(i(e)("Actions")),1)]),_:1},16)]),default:l(()=>[a(be,{density:"compact"})]),_:1}),a(q,{variant:"text",icon:"mdi-reload",onClick:R})]),_:3})]),"item.name":l(({item:o})=>[a(z,{to:{name:"DomainDetail",params:{id:o.pk}}},{default:l(()=>[h(c(o.name),1)]),_:2},1032,["to"]),o.type==="relaydomain"?(V(),A(le,{key:0,size:"small",color:"primary",class:"ml-2"},{default:l(()=>[h(c(i(e)("Relay")),1)]),_:1})):H("",!0)]),"item.enabled":l(({item:o})=>[a(Ie,{value:o.enabled},null,8,["value"])]),"item.data-table-expand":l(({item:o,internalItem:O,isExpanded:P,toggleExpand:re})=>[h(c(o.domainalias_count)+" aliases ",1),o.domainalias_count?(V(),A(q,{key:0,variant:"text",size:"small",icon:P(O)?"mdi-chevron-up":"mdi-chevron-down",onClick:pa=>Y(o,O,P,re)},null,8,["icon","onClick"])):H("",!0)]),"item.dns_global_status":l(({item:o})=>[a(la,{status:o.dns_global_status},null,8,["status"])]),"item.message_limit":l(({item:o})=>[o.message_limit?(V(),A(me,{key:0,color:o.sent_messages_in_percent<80?"primary":"warning","model-value":o.sent_messages_in_percent},null,8,["color","model-value"])):(V(),j("span",oa,c(i(e)("Unlimited")),1))]),"item.allocated_quota_in_percent":l(({item:o})=>[o.quota!=="0"?(V(),A(me,{key:0,color:o.allocated_quota_in_percent<80?"primary":"warning","model-value":o.allocated_quota_in_percent},null,8,["color","model-value"])):(V(),j("span",na,c(i(e)("Unlimited")),1))]),"item.actions":l(({item:o})=>[$("div",ia,[a(oe,{"offset-y":""},{activator:l(({props:O})=>[o.opened_alarms_count?(V(),A(Je,{key:0,bordered:"",color:"error",icon:"mdi-bell",overlap:""},{default:l(()=>[a(q,X({icon:"mdi-dots-horizontal",variant:"text"},O),null,16)]),_:2},1024)):(V(),A(q,X({key:1,icon:"mdi-dots-horizontal",variant:"text"},O),null,16))]),default:l(()=>[a(je,{items:De(o),obj:o},null,8,["items","obj"])]),_:2},1024)])]),"expanded-row":l(({item:o,columns:O})=>[$("tr",sa,[$("td",{colspan:O.length},[(V(!0),j(fe,null,he(r.value[o.name],P=>(V(),j("span",{key:P.name,class:"mr-4"},[a(le,{class:"mr-2",onClick:re=>b(o,P)},{default:l(()=>[h(c(P.name),1)]),_:2},1032,["onClick"])]))),128))],8,ra)])]),_:2},1032,["modelValue","expanded","items","items-length","page","items-per-page","search","loading"]),a(Be,{ref_key:"confirm",ref:F},{default:l(()=>[a(Ke,{modelValue:v.value,"onUpdate:modelValue":s[3]||(s[3]=o=>v.value=o),label:i(e)("Do not delete domain folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),a(Q,{modelValue:g.value,"onUpdate:modelValue":s[4]||(s[4]=o=>g.value=o),persistent:"","max-width":"800px"},{default:l(()=>[a(ke,{"domain-alias":D.value,onClose:ae,onAliasDeleted:R},null,8,["domain-alias"])]),_:1},8,["modelValue"]),a(Q,{modelValue:m.value,"onUpdate:modelValue":s[6]||(s[6]=o=>m.value=o),persistent:"","max-width":"800px"},{default:l(()=>[a(Me,{domain:L.value,"dialog-mode":"",onClose:s[5]||(s[5]=o=>m.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"])]),_:3})}}},ua=ve(ma,[["__scopeId","data-v-f195dac6"]]),da={__name:"DomainsView",setup(T){const k=n(),e=n(!1),d=n(!1),w=n(!1),{$gettext:f}=J(),{canAddDomain:U}=_e(),t=n(),{importContent:r,exportContent:F}=He();function C(){E.exportAll().then(D=>{F(D.data,"domains",f)})}function v(D){r(E,D,t,f)}const _=()=>{e.value=!1,k.value.reloadDomains()},L=()=>{w.value=!1,k.value.reloadDomains()};return(D,m)=>(V(),j("div",null,[a(Ve,{flat:""},{default:l(()=>[a(Ge,null,{default:l(()=>[h(c(i(f)("Domains")),1)]),_:1})]),_:1}),a(i(ua),{ref_key:"domainList",ref:k},{extraActions:l(()=>[i(U)?(V(),A(oe,{key:0,"offset-y":""},{activator:l(({props:g})=>[a(q,X({color:"primary",variant:"outlined"},g,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:l(()=>[h(c(D.$pgettext("male","New")),1)]),_:1},16)]),default:l(()=>[a(be,{density:"compact"},{default:l(()=>[a(de,{onClick:m[0]||(m[0]=g=>d.value=!0)},{default:l(()=>[a(pe,null,{default:l(()=>[h(c(i(f)("Domain")),1)]),_:1})]),_:1}),a(de,{onClick:m[1]||(m[1]=g=>e.value=!0)},{default:l(()=>[a(pe,null,{default:l(()=>[h(c(i(f)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1})):H("",!0),i(U)?(V(),A(q,{key:1,class:"mr-2",title:i(f)("Import domains and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:m[2]||(m[2]=g=>w.value=!0)},null,8,["title"])):H("",!0),a(q,{class:"mr-2",title:i(f)("Export domains and aliases to CSV"),variant:"flat",icon:"mdi-file-export-outline",onClick:C},null,8,["title"])]),_:1},512),a(Q,{modelValue:d.value,"onUpdate:modelValue":m[4]||(m[4]=g=>d.value=g),fullscreen:"",scrollable:"","z-index":"10"},{default:l(()=>[a(i(ta),{onClose:m[3]||(m[3]=g=>d.value=!1)})]),_:1},8,["modelValue"]),a(Q,{modelValue:e.value,"onUpdate:modelValue":m[6]||(m[6]=g=>e.value=g),persistent:"","max-width":"800px"},{default:l(()=>[a(i(ke),{onClose:m[5]||(m[5]=g=>_())})]),_:1},8,["modelValue"]),a(Q,{modelValue:w.value,"onUpdate:modelValue":m[7]||(m[7]=g=>w.value=g),persistent:"","max-width":"800px"},{default:l(()=>[a(i(Qe),{ref_key:"importForm",ref:t,title:i(f)("Import domains"),onSubmit:v,onClose:L},{help:l(()=>[...m[8]||(m[8]=[$("ul",null,[$("li",null,[$("em",null,"domain; name; quota; default mailbox quota; enabled")]),$("li",null,[$("em",null,"domainalias; name; targeted domain; enabled")]),$("li",null,[$("em",null,"relaydomain; name; target host; target port; service; enabled; verify recipients")])],-1)])]),_:1},8,["title"])]),_:1},8,["modelValue"])]))}},it=ve(da,[["__scopeId","data-v-de80aa3f"]]);export{it as default};
@@ -1 +1 @@
1
- import{j as $,_ as b,i as p,h as n,d as F,Z as z,$ as A,a0 as B,l as g,o as d,a as y,m as T,v as U,a1 as N,w,F as S,s as R,c as W,y as j,k as K,t as O}from"./index-B1bntsLR.js";import{V as P}from"./VTextField-QXQFhKxm.js";import{b as Z,c as q,a as G}from"./VMenu-B6SCtOwT.js";import{u as H}from"./domains.store-D4ZqCQ-O.js";const J={__name:"EmailField",props:{modelValue:{type:String,default:""},allowAdd:{type:Boolean,default:!1},role:{type:String,default:$.USER},errorMsg:{type:Array,default:()=>[]}},emits:["domain-selected","update:model-value"],setup(x,{emit:E}){const h=H(),o=x,V=E,r=p({get(){return o.modelValue},set(e){v.value=[],e.indexOf("@")!==-1?(u.value=e.split("@")[1],o.allowAdd?t.value=s.value.length>0:t.value=!0):t.value=!1,V("update:model-value",e)}}),s=p(()=>Object.values(h.domains).filter(e=>e.name.startsWith(u.value))),v=p({get(){return[...D.value,...o.errorMsg]},set(e){D.value=e}}),u=n(""),l=n(0),t=n(!1),k=n(500),_=n(),D=n([]);function C(e){const a=e.keyCode;a===40||a===34?(t.value?M():(u.value="",t.value=!0),e.preventDefault()):a===38||a===33?(t.value?I():(u.value="",t.value=!0),e.preventDefault()):a===13||a===9?(s.value.length>0?c(s.value[l.value]):o.allowAdd&&c(),e.preventDefault()):a===27&&s.value.length>0&&(t.value=!1,e.preventDefault())}function M(){l.value>=s.value.length-1?l.value=0:l.value+=1}function I(){l.value<=0?l.value=s.value.length-1:l.value-=1}function c(e){e!==void 0&&(r.value=r.value.split("@")[0]+"@"+e.name),t.value=!1,V("domain-selected")}function m(){k.value=_.value.$el.clientWidth}return F(()=>{h.getDomains(),window.addEventListener("resize",m)}),z(()=>{window.removeEventListener("resize",m)}),A(()=>{B(()=>{m()})}),(e,a)=>(d(),g(S,null,[y(P,U({ref_key:"inputRef",ref:_,modelValue:r.value,"onUpdate:modelValue":a[0]||(a[0]=i=>r.value=i),variant:"outlined"},e.$attrs,{"error-messages":v.value,error:v.value.length>0,density:"compact",autocomplete:"new-password",onKeydown:C}),null,16,["modelValue","error-messages","error"]),t.value?(d(),g("div",{key:0,class:"menu",style:N(`width: ${k.value}px;`)},[y(G,{class:"list"},{default:w(()=>[(d(!0),g(S,null,R(s.value,(i,f)=>(d(),W(Z,{key:f,class:j(l.value===f?"bg-primary-lighten-1":""),onClick:L=>c(i),onMouseenter:L=>l.value=f},{default:w(()=>[y(q,null,{default:w(()=>[K(O(i.name),1)]),_:2},1024)]),_:2},1032,["class","onClick","onMouseenter"]))),128))]),_:1})],4)):T("",!0)],64))}},te=b(J,[["__scopeId","data-v-bed4b698"]]);export{te as E};
1
+ import{j as $,_ as b,i as p,h as n,d as F,Z as z,$ as A,a0 as B,l as g,o as d,a as y,m as T,v as U,a1 as N,w,F as S,s as R,c as W,y as j,k as K,t as O}from"./index-BjibLozh.js";import{V as P}from"./VTextField-DvvH1ciR.js";import{b as Z,c as q,a as G}from"./VMenu-B53a3gm6.js";import{u as H}from"./domains.store-a9Y5UlDV.js";const J={__name:"EmailField",props:{modelValue:{type:String,default:""},allowAdd:{type:Boolean,default:!1},role:{type:String,default:$.USER},errorMsg:{type:Array,default:()=>[]}},emits:["domain-selected","update:model-value"],setup(x,{emit:E}){const h=H(),o=x,V=E,r=p({get(){return o.modelValue},set(e){v.value=[],e.indexOf("@")!==-1?(u.value=e.split("@")[1],o.allowAdd?t.value=s.value.length>0:t.value=!0):t.value=!1,V("update:model-value",e)}}),s=p(()=>Object.values(h.domains).filter(e=>e.name.startsWith(u.value))),v=p({get(){return[...D.value,...o.errorMsg]},set(e){D.value=e}}),u=n(""),l=n(0),t=n(!1),k=n(500),_=n(),D=n([]);function C(e){const a=e.keyCode;a===40||a===34?(t.value?M():(u.value="",t.value=!0),e.preventDefault()):a===38||a===33?(t.value?I():(u.value="",t.value=!0),e.preventDefault()):a===13||a===9?(s.value.length>0?c(s.value[l.value]):o.allowAdd&&c(),e.preventDefault()):a===27&&s.value.length>0&&(t.value=!1,e.preventDefault())}function M(){l.value>=s.value.length-1?l.value=0:l.value+=1}function I(){l.value<=0?l.value=s.value.length-1:l.value-=1}function c(e){e!==void 0&&(r.value=r.value.split("@")[0]+"@"+e.name),t.value=!1,V("domain-selected")}function m(){k.value=_.value.$el.clientWidth}return F(()=>{h.getDomains(),window.addEventListener("resize",m)}),z(()=>{window.removeEventListener("resize",m)}),A(()=>{B(()=>{m()})}),(e,a)=>(d(),g(S,null,[y(P,U({ref_key:"inputRef",ref:_,modelValue:r.value,"onUpdate:modelValue":a[0]||(a[0]=i=>r.value=i),variant:"outlined"},e.$attrs,{"error-messages":v.value,error:v.value.length>0,density:"compact",autocomplete:"new-password",onKeydown:C}),null,16,["modelValue","error-messages","error"]),t.value?(d(),g("div",{key:0,class:"menu",style:N(`width: ${k.value}px;`)},[y(G,{class:"list"},{default:w(()=>[(d(!0),g(S,null,R(s.value,(i,f)=>(d(),W(Z,{key:f,class:j(l.value===f?"bg-primary-lighten-1":""),onClick:L=>c(i),onMouseenter:L=>l.value=f},{default:w(()=>[y(q,null,{default:w(()=>[K(O(i.name),1)]),_:2},1024)]),_:2},1032,["class","onClick","onMouseenter"]))),128))]),_:1})],4)):T("",!0)],64))}},te=b(J,[["__scopeId","data-v-bed4b698"]]);export{te as E};
@@ -1 +1 @@
1
- import{A as te,q as O,b as G,n as H,h as w,c as g,o as i,w as s,a,f as m,d as le,Z as oe,z as se,B as ne,a0 as F,l as p,L as ie,am as re,e as d,m as L,t as v,k as S,F as _,s as R,X as ue,Y as de,v as I}from"./index-B1bntsLR.js";import{a as C}from"./webmail-B7MNMkv_.js";import{c as me}from"./contacts-Df8ptuMn.js";import{a as D,b as q,V as U}from"./VMenu-B6SCtOwT.js";import{V as f,c as A}from"./VAvatar-JdJfoK0C.js";import{a as W,V as ce,b as pe}from"./VCard-BoH6kjPa.js";import{V as ve}from"./VToolbar-CyrYSqJZ.js";import{V as P}from"./VSpacer-BUxSSJbH.js";import{V as fe}from"./VDialog-DIUeAIpw.js";import"./tag-BmV84V2s.js";import"./ssrBoot-05WtbG6H.js";import"./VProgressCircular-DTDGzl2O.js";/* empty css */const B={__name:"ContactCard",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(N){const l=te(N,"modelValue"),E=O(),{$gettext:M}=G(),{displayNotification:n}=H(),c=w(!1),x=async()=>{const V={emails:[{address:l.value.address,type:"other"}]};l.value.name?V.display_name=l.value.name:V.display_name=l.value.address,c.value=!0;let h;try{h=await me.createContact(V),l.value.contact_id=h.data.pk}finally{c.value=!1}n({msg:M("Contact added to address book")})},o=()=>{E.push({name:"ContactList"})};return(V,h)=>(i(),g(W,{"min-width":"300"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{subtitle:l.value.name?l.value.address:"",title:l.value.name||l.value.address},{append:s(()=>[l.value.contact_id?(i(),g(f,{key:1,icon:"mdi-pencil",variant:"text",loading:c.value,title:m(M)("Update contact"),onClick:o},null,8,["loading","title"])):(i(),g(f,{key:0,color:"secondary",icon:"mdi-card-account-mail-outline",variant:"text",loading:c.value,title:m(M)("Add to contacts"),onClick:x},null,8,["loading","title"]))]),_:1},8,["subtitle","title"])]),_:1})]),_:1}))}},ye={class:"bg-white rounded-lg pa-4 position-relative h-100"},ke={class:"d-flex mt-2"},ge={class:"text-grey text-body-2"},Ve={class:"text-grey"},be={class:"mt-2 text-grey"},_e={key:0},we={key:0,class:"mt-2"},xe=["onClick"],De={__name:"EmailView",setup(N){const{$gettext:l}=G(),{displayNotification:E,reloadMailboxCounters:M}=H(),n=ne(),c=O(),x=w(!1),o=w(null),V=w(null),h=w(null),T=w(!1),$=w(!1),y=w(!1);le(()=>{window.addEventListener("resize",z),j()}),oe(()=>{window.removeEventListener("resize",z)}),se(x,()=>{j()});const X=()=>{c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}})},z=()=>{const u=document.querySelector("iframe"),e=h.value.getBoundingClientRect();u.style.top=`${e.bottom}px`,u.style.width=`${e.width-24}px`,u.style.height=`${window.innerHeight-e.bottom-32}px`},j=()=>{const u={dformat:"html",links:x.value?"1":"0"};C.getEmailContent(n.query.mailbox,n.query.mailid,u).then(e=>{M(),o.value=e.data,F(()=>{const k=document.createElement("iframe");k.classList.add("email-frame"),document.querySelector("iframe").replaceWith(k);const t=k.contentDocument;t.write(o.value.body),t.close(),T.value=!0,F(z)})})},Y=(u,e)=>{C.getEmailAttachment(n.query.mailbox,n.query.mailid,e).then(k=>{const t=new Blob([k.data],{type:k.headers["Content-Type"]}),r=document.createElement("a");r.href=URL.createObjectURL(t),r.download=u,r.click(),URL.revokeObjectURL(r.href)})},Z=()=>{y.value=!0,C.deleteSelection(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message deleted")})})},K=()=>{y.value=!0,C.markSelectionAsJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as junk")})})},Q=()=>{y.value=!0,C.markSelectionAsNotJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as not junk")})})},ee=async()=>{if(!V.value){const u=await C.getEmailSource(n.query.mailbox,n.query.mailid);V.value=u.data.source}$.value=!0},J=u=>{const e={...n.query};u&&(e.all=u),c.push({name:"ReplyEmailView",query:e})},ae=()=>{c.push({name:"ForwardEmailView",query:n.query})};return(u,e)=>{var k;return i(),p(_,null,[ie(d("div",ye,[a(ve,{color:"white"},{default:s(()=>[a(f,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:X}),a(f,{color:"primary",variant:"tonal","prepend-icon":"mdi-reply",onClick:e[1]||(e[1]=()=>J())},{append:s(()=>[a(f,{size:"x-small",variant:"plain"},{default:s(()=>[a(A,{icon:"mdi-chevron-down"}),a(U,{activator:"parent"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{title:m(l)("Reply all"),onClick:e[0]||(e[0]=()=>J(!0))},null,8,["title"]),a(q,{title:m(l)("Forward"),onClick:ae},null,8,["title"])]),_:1})]),_:1})]),_:1})]),default:s(()=>[S(v(m(l)("Reply"))+" ",1)]),_:1}),a(f,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:y.value,onClick:Z},null,8,["loading"]),m(n).params.mailbox!=="Junk"?(i(),g(f,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:y.value,onClick:K},null,8,["loading"])):(i(),g(f,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:y.value,onClick:Q},null,8,["loading"])),a(f,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:s(()=>[a(A,{icon:"mdi-cog"}),a(U,{activator:"parent"},{default:s(()=>[a(D,{density:"compact"},{default:s(()=>[x.value?(i(),g(q,{key:1,title:m(l)("Disable links"),onClick:e[3]||(e[3]=t=>x.value=!1)},null,8,["title"])):(i(),g(q,{key:0,title:m(l)("Enable links"),onClick:e[2]||(e[2]=t=>x.value=!0)},null,8,["title"])),a(q,{title:m(l)("Display source"),onClick:ee},null,8,["title"])]),_:1})]),_:1})]),_:1})]),_:1}),o.value?(i(),p("div",{key:0,ref_key:"headers",ref:h,class:"bg-white pa-4"},[d("h2",null,v(o.value.subject),1),d("div",ke,[a(U,{key:"sender"},{activator:s(({props:t})=>[d("h3",ue(de(t)),[o.value.from_address.name?(i(),p(_,{key:0},[S(v(o.value.from_address.name)+" ",1),d("span",ge," <"+v(o.value.from_address.address)+"> ",1)],64)):(i(),p(_,{key:1},[S(v(o.value.from_address.address),1)],64))],16)]),default:s(()=>[a(B,{modelValue:o.value.from_address,"onUpdate:modelValue":e[4]||(e[4]=t=>o.value.from_address=t)},null,8,["modelValue"])]),_:1}),a(P),d("span",Ve,v(o.value.date),1)]),d("div",be,[S(v(m(l)("To"))+" ",1),(i(!0),p(_,null,R(o.value.to,(t,r)=>(i(),g(U,{key:`to-${r}`},{activator:s(({props:b})=>[r>0?(i(),p("span",_e,", ")):L("",!0),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.to[r],"onUpdate:modelValue":b=>o.value.to[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),(k=o.value.cc)!=null&&k.length?(i(!0),p(_,{key:0},R(o.value.cc,(t,r)=>(i(),g(U,{key:`cc-${r}`},{activator:s(({props:b})=>[e[7]||(e[7]=d("span",null,", ",-1)),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.cc[r],"onUpdate:modelValue":b=>o.value.cc[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)):L("",!0)]),o.value.attachments.length?(i(),p("div",we,[a(A,{icon:"mdi-paperclip"}),(i(!0),p(_,null,R(o.value.attachments,(t,r)=>(i(),p(_,{key:t.name},[r>0?(i(),p(_,{key:0},[S(", ")],64)):L("",!0),d("a",{href:"#",onClick:b=>Y(t.name,t.partnum)},v(t.name),9,xe)],64))),128))])):L("",!0)],512)):L("",!0),e[8]||(e[8]=d("iframe",{class:"email-frame"},null,-1))],512),[[re,T.value]]),a(fe,{modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=t=>$.value=t),"max-width":"1200"},{default:s(()=>[a(W,{title:m(l)("Message source")},{default:s(()=>[a(ce,{class:"text-caption overflow-x-auto"},{default:s(()=>[d("pre",null,v(V.value),1)]),_:1}),a(pe,null,{default:s(()=>[a(P),a(f,{text:m(l)("Close"),onClick:e[5]||(e[5]=t=>$.value=!1)},null,8,["text"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])],64)}}};export{De as default};
1
+ import{A as te,q as O,b as G,n as H,h as w,c as g,o as i,w as s,a,f as m,d as le,Z as oe,z as se,B as ne,a0 as F,l as p,L as ie,am as re,e as d,m as L,t as v,k as S,F as _,s as R,X as ue,Y as de,v as I}from"./index-BjibLozh.js";import{a as C}from"./webmail-HVg3ZHC0.js";import{c as me}from"./contacts-DKmh2q-4.js";import{a as D,b as q,V as U}from"./VMenu-B53a3gm6.js";import{V as f,c as A}from"./VAvatar-BsHplcRP.js";import{a as W,V as ce,b as pe}from"./VCard-D7AwBs4w.js";import{V as ve}from"./VToolbar-pvLQtmbU.js";import{V as P}from"./VSpacer-CBqB9uSt.js";import{V as fe}from"./VDialog-CUMh3paI.js";import"./tag-CvrHE14f.js";import"./ssrBoot-ChTB-PYP.js";import"./VProgressCircular-viI3jDXe.js";/* empty css */const B={__name:"ContactCard",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(N){const l=te(N,"modelValue"),E=O(),{$gettext:M}=G(),{displayNotification:n}=H(),c=w(!1),x=async()=>{const V={emails:[{address:l.value.address,type:"other"}]};l.value.name?V.display_name=l.value.name:V.display_name=l.value.address,c.value=!0;let h;try{h=await me.createContact(V),l.value.contact_id=h.data.pk}finally{c.value=!1}n({msg:M("Contact added to address book")})},o=()=>{E.push({name:"ContactList"})};return(V,h)=>(i(),g(W,{"min-width":"300"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{subtitle:l.value.name?l.value.address:"",title:l.value.name||l.value.address},{append:s(()=>[l.value.contact_id?(i(),g(f,{key:1,icon:"mdi-pencil",variant:"text",loading:c.value,title:m(M)("Update contact"),onClick:o},null,8,["loading","title"])):(i(),g(f,{key:0,color:"secondary",icon:"mdi-card-account-mail-outline",variant:"text",loading:c.value,title:m(M)("Add to contacts"),onClick:x},null,8,["loading","title"]))]),_:1},8,["subtitle","title"])]),_:1})]),_:1}))}},ye={class:"bg-white rounded-lg pa-4 position-relative h-100"},ke={class:"d-flex mt-2"},ge={class:"text-grey text-body-2"},Ve={class:"text-grey"},be={class:"mt-2 text-grey"},_e={key:0},we={key:0,class:"mt-2"},xe=["onClick"],De={__name:"EmailView",setup(N){const{$gettext:l}=G(),{displayNotification:E,reloadMailboxCounters:M}=H(),n=ne(),c=O(),x=w(!1),o=w(null),V=w(null),h=w(null),T=w(!1),$=w(!1),y=w(!1);le(()=>{window.addEventListener("resize",z),j()}),oe(()=>{window.removeEventListener("resize",z)}),se(x,()=>{j()});const X=()=>{c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}})},z=()=>{const u=document.querySelector("iframe"),e=h.value.getBoundingClientRect();u.style.top=`${e.bottom}px`,u.style.width=`${e.width-24}px`,u.style.height=`${window.innerHeight-e.bottom-32}px`},j=()=>{const u={dformat:"html",links:x.value?"1":"0"};C.getEmailContent(n.query.mailbox,n.query.mailid,u).then(e=>{M(),o.value=e.data,F(()=>{const k=document.createElement("iframe");k.classList.add("email-frame"),document.querySelector("iframe").replaceWith(k);const t=k.contentDocument;t.write(o.value.body),t.close(),T.value=!0,F(z)})})},Y=(u,e)=>{C.getEmailAttachment(n.query.mailbox,n.query.mailid,e).then(k=>{const t=new Blob([k.data],{type:k.headers["Content-Type"]}),r=document.createElement("a");r.href=URL.createObjectURL(t),r.download=u,r.click(),URL.revokeObjectURL(r.href)})},Z=()=>{y.value=!0,C.deleteSelection(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message deleted")})})},K=()=>{y.value=!0,C.markSelectionAsJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as junk")})})},Q=()=>{y.value=!0,C.markSelectionAsNotJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as not junk")})})},ee=async()=>{if(!V.value){const u=await C.getEmailSource(n.query.mailbox,n.query.mailid);V.value=u.data.source}$.value=!0},J=u=>{const e={...n.query};u&&(e.all=u),c.push({name:"ReplyEmailView",query:e})},ae=()=>{c.push({name:"ForwardEmailView",query:n.query})};return(u,e)=>{var k;return i(),p(_,null,[ie(d("div",ye,[a(ve,{color:"white"},{default:s(()=>[a(f,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:X}),a(f,{color:"primary",variant:"tonal","prepend-icon":"mdi-reply",onClick:e[1]||(e[1]=()=>J())},{append:s(()=>[a(f,{size:"x-small",variant:"plain"},{default:s(()=>[a(A,{icon:"mdi-chevron-down"}),a(U,{activator:"parent"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{title:m(l)("Reply all"),onClick:e[0]||(e[0]=()=>J(!0))},null,8,["title"]),a(q,{title:m(l)("Forward"),onClick:ae},null,8,["title"])]),_:1})]),_:1})]),_:1})]),default:s(()=>[S(v(m(l)("Reply"))+" ",1)]),_:1}),a(f,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:y.value,onClick:Z},null,8,["loading"]),m(n).params.mailbox!=="Junk"?(i(),g(f,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:y.value,onClick:K},null,8,["loading"])):(i(),g(f,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:y.value,onClick:Q},null,8,["loading"])),a(f,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:s(()=>[a(A,{icon:"mdi-cog"}),a(U,{activator:"parent"},{default:s(()=>[a(D,{density:"compact"},{default:s(()=>[x.value?(i(),g(q,{key:1,title:m(l)("Disable links"),onClick:e[3]||(e[3]=t=>x.value=!1)},null,8,["title"])):(i(),g(q,{key:0,title:m(l)("Enable links"),onClick:e[2]||(e[2]=t=>x.value=!0)},null,8,["title"])),a(q,{title:m(l)("Display source"),onClick:ee},null,8,["title"])]),_:1})]),_:1})]),_:1})]),_:1}),o.value?(i(),p("div",{key:0,ref_key:"headers",ref:h,class:"bg-white pa-4"},[d("h2",null,v(o.value.subject),1),d("div",ke,[a(U,{key:"sender"},{activator:s(({props:t})=>[d("h3",ue(de(t)),[o.value.from_address.name?(i(),p(_,{key:0},[S(v(o.value.from_address.name)+" ",1),d("span",ge," <"+v(o.value.from_address.address)+"> ",1)],64)):(i(),p(_,{key:1},[S(v(o.value.from_address.address),1)],64))],16)]),default:s(()=>[a(B,{modelValue:o.value.from_address,"onUpdate:modelValue":e[4]||(e[4]=t=>o.value.from_address=t)},null,8,["modelValue"])]),_:1}),a(P),d("span",Ve,v(o.value.date),1)]),d("div",be,[S(v(m(l)("To"))+" ",1),(i(!0),p(_,null,R(o.value.to,(t,r)=>(i(),g(U,{key:`to-${r}`},{activator:s(({props:b})=>[r>0?(i(),p("span",_e,", ")):L("",!0),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.to[r],"onUpdate:modelValue":b=>o.value.to[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),(k=o.value.cc)!=null&&k.length?(i(!0),p(_,{key:0},R(o.value.cc,(t,r)=>(i(),g(U,{key:`cc-${r}`},{activator:s(({props:b})=>[e[7]||(e[7]=d("span",null,", ",-1)),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.cc[r],"onUpdate:modelValue":b=>o.value.cc[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)):L("",!0)]),o.value.attachments.length?(i(),p("div",we,[a(A,{icon:"mdi-paperclip"}),(i(!0),p(_,null,R(o.value.attachments,(t,r)=>(i(),p(_,{key:t.name},[r>0?(i(),p(_,{key:0},[S(", ")],64)):L("",!0),d("a",{href:"#",onClick:b=>Y(t.name,t.partnum)},v(t.name),9,xe)],64))),128))])):L("",!0)],512)):L("",!0),e[8]||(e[8]=d("iframe",{class:"email-frame"},null,-1))],512),[[re,T.value]]),a(fe,{modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=t=>$.value=t),"max-width":"1200"},{default:s(()=>[a(W,{title:m(l)("Message source")},{default:s(()=>[a(ce,{class:"text-caption overflow-x-auto"},{default:s(()=>[d("pre",null,v(V.value),1)]),_:1}),a(pe,null,{default:s(()=>[a(P),a(f,{text:m(l)("Close"),onClick:e[5]||(e[5]=t=>$.value=!1)},null,8,["text"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])],64)}}};export{De as default};
@@ -0,0 +1 @@
1
+ import{V as s,a as c}from"./VApp-CiIBWB_Q.js";import{r as m,c as t,o as e,w as o,a as r}from"./index-BjibLozh.js";import"./tag-CvrHE14f.js";import"./layout-5PvsmkGR.js";import"./ssrBoot-ChTB-PYP.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};
@@ -1 +1 @@
1
- import{b as le,n as ae,h as d,c as k,o as c,w as f,a as l,f as n,ae as V,i as ie,z as P,e as j,l as _,m as A,t as z,F as J,s as Z,B as _e,q as Se,g as xe,v as ne,k as ee}from"./index-B1bntsLR.js";import{V as oe,r as U}from"./VForm-DkphQD3e.js";import{V as me,b as ce,a as de}from"./VCard-BoH6kjPa.js";import{V as H}from"./VTextField-QXQFhKxm.js";import{V as fe}from"./VSwitch-Dh_dserW.js";import{d as ve,V as re}from"./VMenu-B6SCtOwT.js";import{V as pe}from"./VSpacer-BUxSSJbH.js";import{V as g,c as Ue}from"./VAvatar-JdJfoK0C.js";import{a as Ae,V as te}from"./VRadioGroup-CS9ULZ1c.js";import{a as I}from"./VSelect-D5IXDPEX.js";import{V as Ne}from"./VCheckbox-CCLOJFKF.js";import{_ as se}from"./MenuItems-dl38msRA.js";import{V as $e}from"./VToolbar-CyrYSqJZ.js";import{V as Re}from"./VDataTable-BkLLfcQK.js";import{V as ue}from"./VDialog-DIUeAIpw.js";import{V as De}from"./VAutocomplete-Huaz_-hf.js";import{V as Te}from"./VTextarea-Bdy4UKmV.js";import"./tag-BmV84V2s.js";import"./VInput-CbqehdOu.js";import"./VProgressCircular-DTDGzl2O.js";import"./VSelectionControl-uKY9Zull.js";import"./ssrBoot-05WtbG6H.js";/* empty css */import"./VCheckboxBtn-Ccl786Rg.js";import"./VTable-gDsAUSLX.js";import"./filter-DHKXX97M.js";const qe={__name:"FilterSetForm",emits:["close"],setup(K,{emit:O}){const{$gettext:p}=le(),B=O,N=ae(),a=d({}),o=d(),b=d(!1);function F(){o.value.reset(),a.value={},B("close")}async function h(){const{valid:e}=await o.value.validate();if(e){b.value=!0;try{await V.createFilterSet(a.value),N.displayNotification({msg:p("Filter set created")}),F()}finally{b.value=!1}}}return(e,w)=>(c(),k(de,{title:n(p)("Create a new filter set")},{default:f(()=>[l(me,null,{default:f(()=>[l(oe,{ref_key:"formRef",ref:o},{default:f(()=>[l(H,{modelValue:a.value.name,"onUpdate:modelValue":w[0]||(w[0]=C=>a.value.name=C),label:n(p)("Name"),variant:"outlined",rules:[n(U).required]},null,8,["modelValue","label","rules"]),l(fe,{label:n(p)("Active"),modelValue:a.value.active,"onUpdate:modelValue":w[1]||(w[1]=C=>a.value.active=C),color:"primary"},null,8,["label","modelValue"])]),_:1},512)]),_:1}),l(ve),l(ce,null,{default:f(()=>[l(pe),l(g,{text:n(p)("Cancel"),variant:"plain",onClick:F},null,8,["text"]),l(g,{color:"primary",text:n(p)("Create"),onClick:h},null,8,["text"])]),_:1})]),_:1},8,["title"]))}},je={class:"bg-grey-lighten-4 rounded pa-3"},Oe={class:"mt-4 bg-grey-lighten-4 rounded pa-3"},Be={class:"mx-2 d-flex flex-column flex-grow-1"},Ee={__name:"FilterForm",props:{filterSet:{type:String,default:null},filter:{type:Object,required:!1,default:null}},emits:["close"],setup(K,{emit:O}){const p=K,B=O,N=ae(),{$gettext:a}=le(),o=d({}),b=d([]),F=d([]),h=d(),e=d($()),w=d(!1),C=ie(()=>p.filter?a("Edit filter"):a("New filter")),G=ie(()=>p.filter?a("Update"):a("Create"));let S;P(()=>p.filter,m=>{m?(e.value=JSON.parse(JSON.stringify(m)),S=m.name):e.value=$()},{immediate:!0});function E(){B("close"),e.value=$()}function $(){return{match_type:"anyof",conditions:[{}],actions:[{args:{}}]}}function L(m){for(const v of b.value)if(v.name===m)return v.operators;return[]}function R(m){for(const v of b.value)if(v.name===e.value.conditions[m].name){for(const r of v.operators)if(r.name===e.value.conditions[m].operator)return r.type==="string"?"text":"number"}}function Q(m){for(const v of F.value)if(v.name===m)return v.args;return[]}function W(){e.value.conditions.push({name:b.value[0].name,operator:b.value[0].operators[0].name})}function X(m){e.value.conditions.splice(m,1)}function Y(){e.value.actions.push({name:F.value[0].name,args:{}})}function D(m){e.value.actions.splice(m,1)}async function x(){const{valid:m}=await h.value.validate();if(!m)return;w.value=!0;let v;const r=JSON.parse(JSON.stringify(e.value));for(const y of r.actions)for(const[u,M]of Object.entries(y.args))typeof M=="boolean"&&!M&&delete y.args[u];try{p.filter?(await V.updateFilter(p.filterSet,S,r),v=a("Filter updated")):(await V.createFilter(p.filterSet,r),v=a("Filter added"))}catch(y){y.response.status===400&&y.response.data&&(o.value=y.response.data);return}finally{w.value=!1}N.displayNotification({msg:v}),E()}return V.getFilterConditionTemplates().then(m=>{b.value=m.data,p.filter||(e.value.conditions[0].name=b.value[0].name,e.value.conditions[0].operator=b.value[0].operators[0].name)}),V.getFilterActionTemplates().then(m=>{F.value=m.data,p.filter||(e.value.actions[0].name=F.value[0].name)}),(m,v)=>(c(),k(de,{title:C.value},{default:f(()=>[l(me,null,{default:f(()=>[l(oe,{ref_key:"formRef",ref:h},{default:f(()=>[l(H,{modelValue:e.value.name,"onUpdate:modelValue":v[0]||(v[0]=r=>e.value.name=r),label:n(a)("Name"),variant:"outlined",density:"compact",rules:[n(U).required],"error-messages":o.value.name?o.value.name:[]},null,8,["modelValue","label","rules","error-messages"]),j("div",je,[j("h4",null,z(n(a)("Conditions")),1),l(Ae,{modelValue:e.value.match_type,"onUpdate:modelValue":v[1]||(v[1]=r=>e.value.match_type=r),color:"primary",inline:""},{default:f(()=>[l(te,{label:n(a)("All of the following"),value:"allof"},null,8,["label"]),l(te,{label:n(a)("Any of the following"),value:"anyof"},null,8,["label"]),l(te,{label:n(a)("All messages"),value:"all"},null,8,["label"])]),_:1},8,["modelValue"]),e.value.match_type!=="all"?(c(!0),_(J,{key:0},Z(e.value.conditions,(r,y)=>(c(),_("div",{key:`condition-${y}`,class:"d-flex align-start"},[l(I,{modelValue:r.name,"onUpdate:modelValue":u=>r.name=u,label:n(a)("Choose a header"),items:b.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),l(I,{modelValue:r.operator,"onUpdate:modelValue":u=>r.operator=u,label:n(a)("Choose an operator"),items:L(r.name),"item-title":"label","item-value":"name",variant:"outlined",class:"ml-2",density:"compact",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),l(H,{modelValue:r.value,"onUpdate:modelValue":u=>r.value=u,label:n(a)("Value"),variant:"outlined",class:"ml-2",density:"compact",type:R(y),rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","label","type","rules"]),y===0?(c(),k(g,{key:0,icon:"mdi-plus",variant:"text",title:n(a)("Add condition"),color:"primary",onClick:W},null,8,["title"])):(c(),k(g,{key:1,icon:"mdi-trash-can",variant:"text",title:n(a)("Remove condition"),color:"error",onClick:u=>X(y)},null,8,["title","onClick"]))]))),128)):A("",!0)]),j("div",Oe,[j("h4",null,z(n(a)("Actions")),1),(c(!0),_(J,null,Z(e.value.actions,(r,y)=>(c(),_("div",{key:`action-${y}`,class:"d-flex align-start mt-2"},[l(I,{modelValue:r.name,"onUpdate:modelValue":u=>r.name=u,label:n(a)("Choose an action"),items:F.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",class:"flex-grow-0"},null,8,["modelValue","onUpdate:modelValue","label","items"]),j("div",Be,[(c(!0),_(J,null,Z(Q(r.name),(u,M)=>(c(),_(J,{key:`arg-${y}-${M}`},[u.type==="list"?(c(),k(I,{key:0,modelValue:r.args[u.name],"onUpdate:modelValue":T=>r.args[u.name]=T,items:u.choices,"item-title":"label",density:"compact",variant:"outlined",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","items","rules"])):A("",!0),u.type==="string"?(c(),k(H,{key:1,modelValue:r.args[u.name],"onUpdate:modelValue":T=>r.args[u.name]=T,density:"compact",variant:"outlined",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","rules"])):A("",!0),u.type==="boolean"?(c(),k(Ne,{key:2,modelValue:r.args[u.name],"onUpdate:modelValue":T=>r.args[u.name]=T,label:u.label,color:"primary",value:u.value,density:"compact"},null,8,["modelValue","onUpdate:modelValue","label","value"])):A("",!0)],64))),128))]),y===0?(c(),k(g,{key:0,icon:"mdi-plus",variant:"text",title:n(a)("Add action"),color:"primary",onClick:Y},null,8,["title"])):(c(),k(g,{key:1,icon:"mdi-trash-can",variant:"text",title:n(a)("Remove action"),color:"error",onClick:u=>D(y)},null,8,["title","onClick"]))]))),128))])]),_:1},512)]),_:1}),l(ve),l(ce,null,{default:f(()=>[l(pe),l(g,{text:n(a)("Cancel"),variant:"elevated",onClick:E},null,8,["text"]),l(g,{color:"primary",variant:"elevated",text:G.value,loading:w.value,onClick:x},null,8,["text","loading"])]),_:1})]),_:1},8,["title"]))}},Le={class:"pa-4"},Me={class:"text-h6 font-weight-regular mb-4"},ze={key:0,class:"bg-white mt-4 pa-2"},Je={class:"d-flex align-center"},yt={__name:"FiltersView",async setup(K){let O,p;const B=Se(),N=_e(),a=ae(),{$gettext:o}=le(),b=d([]),F=d([]),h=d(""),e=d(),w=d(!1),C=d([]),G=d(),S=d(!1),E=d(!1),$=d(null),L=d(!1),R=d(!1),Q=[{title:o("Name"),key:"name"},{title:o("Active"),key:"enabled"},{title:"",key:"filter_actions",align:"end"}];P(e,t=>{t?(x(t.name),N.params.filterset!==t.name&&B.push({name:"AccountFilters",params:{filterset:t.name}})):B.push({name:"AccountFilters"})}),P(S,t=>{t?V.downloadFilterSet(e.value.name).then(i=>{h.value=i.data}):x(e.value.name)}),P(h,()=>{C.value.length&&(C.value=[])});function W(t){let i=t.name;return t.active?i+=" ("+o("active")+")":i+=" ("+o("inactive")+")",i}async function X(){L.value=!1,await D()}function Y(){R.value=!1,$.value=null,x(e.value.name)}async function D(){const t=await V.getFilterSets();if(t.data.length>0&&t.data[0].active&&t.data[0].name===null?b.value=t.data.slice(1):b.value=t.data,N.params.filterset){for(const i of b.value)if(i.name===N.params.filterset){e.value=i;break}}else for(const i of b.value)if(i.name){e.value=i;break}}function x(t){w.value=!0,V.getFilters(t).then(i=>{F.value=i.data,w.value=!1}).catch(i=>{i.response.status===518&&(S.value=!0,a.displayNotification({msg:o("Failed to display template. Using raw mode"),type:"warning"}))})}function m(t){$.value=t,R.value=!0}function v(t){V.enableFilter(e.value.name,t.name).then(()=>{t.enabled=!0,a.displayNotification({msg:o("Filter enabled")})})}function r(t){V.disableFilter(e.value.name,t.name).then(()=>{t.enabled=!1,a.displayNotification({msg:o("Filter disabled")})})}function y(t){V.deleteFilter(e.value.name,t.name).then(()=>{a.displayNotification({msg:o("Filter removed")}),x(e.value.name)})}async function u(t){await V.moveFilterDown(e.value.name,t.name),x(e.value.name)}async function M(t){await V.moveFilterUp(e.value.name,t.name),x(e.value.name)}async function T(t){await V.activateFilterSet(t.name),await D(),a.displayNotification({msg:o("Filter set activated")})}async function ye(){await V.deactivateActiveFilterSet(),await D(),a.displayNotification({msg:o("Active filter set deactivated")})}async function Ve(t){await V.deleteFilterSet(t.name),a.displayNotification({msg:o("Filter set removed")}),e.value=null,await D()}async function be(){const{valid:t}=await G.value.validate();if(!t)return;const i={content:h.value};E.value=!0;try{await V.saveFilterSet(e.value.name,i),a.displayNotification({msg:o("Filter set updated")})}catch(s){s.response.status===400&&s.response.data.content&&(C.value=s.response.data.content)}finally{E.value=!1}}async function ge(t){const i=await V.downloadFilterSet(t.name),s=new Blob([i.data],{type:"text/plain"}),q=document.createElement("a");q.href=URL.createObjectURL(s),q.download=`${t.name}.txt`,q.click(),URL.revokeObjectURL(q.href)}const Fe=[{label:o("Edit"),icon:"mdi-circle-edit-outline",onClick:m},{label:o("Delete"),icon:"mdi-delete-outline",onClick:y,color:"red"}];function we(t,i){const s=[...Fe];return t.enabled?s.push({label:o("Disable"),icon:"mdi-stop",color:"red",onClick:r}):s.push({label:o("Enable"),icon:"mdi-check",color:"success",onClick:v}),i!==F.value.length-1&&s.push({label:o("Move down"),icon:"mdi-arrow-down",onClick:u}),i!==0&&s.push({label:o("Move up"),icon:"mdi-arrow-up",onClick:M}),s}const ke=[{label:o("Download filter set"),icon:"mdi-download",onClick:ge},{label:o("Delete filter set"),color:"error",icon:"mdi-trash-can",onClick:Ve}];function he(){const t=[];return e.value.active?t.push({label:o("Deactivate filter set"),color:"error",icon:"mdi-close",onClick:ye}):t.push({label:o("Activate filter set"),color:"success",icon:"mdi-check",onClick:T}),t.concat(ke)}return[O,p]=xe(()=>D()),await O,p(),(t,i)=>(c(),_("div",Le,[j("div",Me,z(n(o)("Message filters")),1),l($e,{color:"white",flat:"",class:"px-4"},{default:f(()=>[l(De,{modelValue:e.value,"onUpdate:modelValue":i[0]||(i[0]=s=>e.value=s),label:n(o)("Select a filter set"),items:b.value,"item-title":W,"return-object":"",variant:"outlined","hide-details":"",class:"flex-grow-0",style:{width:"200px"},density:"compact"},null,8,["modelValue","label","items"]),l(g,{color:"primary",icon:"mdi-plus",size:"small",class:"mx-4",title:n(o)("Add filter set"),onClick:i[1]||(i[1]=s=>L.value=!0)},null,8,["title"]),e.value?(c(),k(re,{key:0},{activator:f(({props:s})=>[l(g,ne({icon:"mdi-dots-vertical"},s,{size:"small",color:"default"}),null,16)]),default:f(()=>[l(se,{items:he(),obj:e.value},null,8,["items","obj"])]),_:1})):A("",!0),e.value?(c(),k(fe,{key:1,modelValue:S.value,"onUpdate:modelValue":i[2]||(i[2]=s=>S.value=s),label:n(o)("Raw mode"),color:"primary",class:"ml-4","hide-details":""},null,8,["modelValue","label"])):A("",!0)]),_:1}),e.value?(c(),_("div",ze,[S.value?(c(),_(J,{key:1},[l(oe,{ref_key:"rawFormRef",ref:G},{default:f(()=>[l(Te,{modelValue:h.value,"onUpdate:modelValue":i[4]||(i[4]=s=>h.value=s),variant:"outlined","auto-grow":"",rules:[n(U).required],"error-messages":C.value},null,8,["modelValue","rules","error-messages"])]),_:1},512),l(g,{color:"success",loading:E.value,class:"mt-2",onClick:be},{default:f(()=>[ee(z(n(o)("Save")),1)]),_:1},8,["loading"])],64)):(c(),_(J,{key:0},[j("div",Je,[l(g,{color:"primary",title:n(o)("Add new filter"),class:"mx-auto",variant:"outlined",onClick:i[3]||(i[3]=s=>R.value=!0)},{default:f(()=>[l(Ue,{icon:"mdi-plus"}),ee(" "+z(n(o)("New")),1)]),_:1},8,["title"])]),l(Re,{headers:Q,items:F.value,loading:w.value},{"item.enabled":f(({item:s})=>[ee(z(t.$yesno(s.enabled)),1)]),"item.filter_actions":f(({index:s,item:q})=>[l(re,{"offset-y":""},{activator:f(({props:Ce})=>[l(g,ne({icon:"mdi-dots-horizontal",variant:"text"},Ce),null,16)]),default:f(()=>[l(se,{items:we(q,s),obj:q},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["items","loading"])],64))])):A("",!0),l(ue,{modelValue:L.value,"onUpdate:modelValue":i[5]||(i[5]=s=>L.value=s),"max-width":"600"},{default:f(()=>[l(qe,{onClose:X})]),_:1},8,["modelValue"]),l(ue,{modelValue:R.value,"onUpdate:modelValue":i[6]||(i[6]=s=>R.value=s),"max-width":"800"},{default:f(()=>[e.value?(c(),k(Ee,{key:0,"filter-set":e.value.name,filter:$.value,onClose:Y},null,8,["filter-set","filter"])):A("",!0)]),_:1},8,["modelValue"])]))}};export{yt as default};
1
+ import{b as le,n as ae,h as d,c as k,o as c,w as f,a as l,f as n,ae as V,i as ie,z as P,e as j,l as _,m as A,t as z,F as J,s as Z,B as _e,q as Se,g as xe,v as ne,k as ee}from"./index-BjibLozh.js";import{V as oe,r as U}from"./VForm-ClJU5x_v.js";import{V as me,b as ce,a as de}from"./VCard-D7AwBs4w.js";import{V as H}from"./VTextField-DvvH1ciR.js";import{V as fe}from"./VSwitch-D4xdR9jz.js";import{d as ve,V as re}from"./VMenu-B53a3gm6.js";import{V as pe}from"./VSpacer-CBqB9uSt.js";import{V as g,c as Ue}from"./VAvatar-BsHplcRP.js";import{a as Ae,V as te}from"./VRadioGroup-C0bqFrYg.js";import{a as I}from"./VSelect-y0E5_vPn.js";import{V as Ne}from"./VCheckbox-CKW9lz5i.js";import{_ as se}from"./MenuItems-efx2rqwT.js";import{V as $e}from"./VToolbar-pvLQtmbU.js";import{V as Re}from"./VDataTable-ocZo8ju0.js";import{V as ue}from"./VDialog-CUMh3paI.js";import{V as De}from"./VAutocomplete-DcNqTIie.js";import{V as Te}from"./VTextarea-DHtXtzqP.js";import"./tag-CvrHE14f.js";import"./VInput-DhzSMFXh.js";import"./VProgressCircular-viI3jDXe.js";import"./VSelectionControl-Dkms9_P5.js";import"./ssrBoot-ChTB-PYP.js";/* empty css */import"./VCheckboxBtn-B5evxN9K.js";import"./VTable-D8ZwwC_B.js";import"./filter-BVvMTmPG.js";const qe={__name:"FilterSetForm",emits:["close"],setup(K,{emit:O}){const{$gettext:p}=le(),B=O,N=ae(),a=d({}),o=d(),b=d(!1);function F(){o.value.reset(),a.value={},B("close")}async function h(){const{valid:e}=await o.value.validate();if(e){b.value=!0;try{await V.createFilterSet(a.value),N.displayNotification({msg:p("Filter set created")}),F()}finally{b.value=!1}}}return(e,w)=>(c(),k(de,{title:n(p)("Create a new filter set")},{default:f(()=>[l(me,null,{default:f(()=>[l(oe,{ref_key:"formRef",ref:o},{default:f(()=>[l(H,{modelValue:a.value.name,"onUpdate:modelValue":w[0]||(w[0]=C=>a.value.name=C),label:n(p)("Name"),variant:"outlined",rules:[n(U).required]},null,8,["modelValue","label","rules"]),l(fe,{label:n(p)("Active"),modelValue:a.value.active,"onUpdate:modelValue":w[1]||(w[1]=C=>a.value.active=C),color:"primary"},null,8,["label","modelValue"])]),_:1},512)]),_:1}),l(ve),l(ce,null,{default:f(()=>[l(pe),l(g,{text:n(p)("Cancel"),variant:"plain",onClick:F},null,8,["text"]),l(g,{color:"primary",text:n(p)("Create"),onClick:h},null,8,["text"])]),_:1})]),_:1},8,["title"]))}},je={class:"bg-grey-lighten-4 rounded pa-3"},Oe={class:"mt-4 bg-grey-lighten-4 rounded pa-3"},Be={class:"mx-2 d-flex flex-column flex-grow-1"},Ee={__name:"FilterForm",props:{filterSet:{type:String,default:null},filter:{type:Object,required:!1,default:null}},emits:["close"],setup(K,{emit:O}){const p=K,B=O,N=ae(),{$gettext:a}=le(),o=d({}),b=d([]),F=d([]),h=d(),e=d($()),w=d(!1),C=ie(()=>p.filter?a("Edit filter"):a("New filter")),G=ie(()=>p.filter?a("Update"):a("Create"));let S;P(()=>p.filter,m=>{m?(e.value=JSON.parse(JSON.stringify(m)),S=m.name):e.value=$()},{immediate:!0});function E(){B("close"),e.value=$()}function $(){return{match_type:"anyof",conditions:[{}],actions:[{args:{}}]}}function L(m){for(const v of b.value)if(v.name===m)return v.operators;return[]}function R(m){for(const v of b.value)if(v.name===e.value.conditions[m].name){for(const r of v.operators)if(r.name===e.value.conditions[m].operator)return r.type==="string"?"text":"number"}}function Q(m){for(const v of F.value)if(v.name===m)return v.args;return[]}function W(){e.value.conditions.push({name:b.value[0].name,operator:b.value[0].operators[0].name})}function X(m){e.value.conditions.splice(m,1)}function Y(){e.value.actions.push({name:F.value[0].name,args:{}})}function D(m){e.value.actions.splice(m,1)}async function x(){const{valid:m}=await h.value.validate();if(!m)return;w.value=!0;let v;const r=JSON.parse(JSON.stringify(e.value));for(const y of r.actions)for(const[u,M]of Object.entries(y.args))typeof M=="boolean"&&!M&&delete y.args[u];try{p.filter?(await V.updateFilter(p.filterSet,S,r),v=a("Filter updated")):(await V.createFilter(p.filterSet,r),v=a("Filter added"))}catch(y){y.response.status===400&&y.response.data&&(o.value=y.response.data);return}finally{w.value=!1}N.displayNotification({msg:v}),E()}return V.getFilterConditionTemplates().then(m=>{b.value=m.data,p.filter||(e.value.conditions[0].name=b.value[0].name,e.value.conditions[0].operator=b.value[0].operators[0].name)}),V.getFilterActionTemplates().then(m=>{F.value=m.data,p.filter||(e.value.actions[0].name=F.value[0].name)}),(m,v)=>(c(),k(de,{title:C.value},{default:f(()=>[l(me,null,{default:f(()=>[l(oe,{ref_key:"formRef",ref:h},{default:f(()=>[l(H,{modelValue:e.value.name,"onUpdate:modelValue":v[0]||(v[0]=r=>e.value.name=r),label:n(a)("Name"),variant:"outlined",density:"compact",rules:[n(U).required],"error-messages":o.value.name?o.value.name:[]},null,8,["modelValue","label","rules","error-messages"]),j("div",je,[j("h4",null,z(n(a)("Conditions")),1),l(Ae,{modelValue:e.value.match_type,"onUpdate:modelValue":v[1]||(v[1]=r=>e.value.match_type=r),color:"primary",inline:""},{default:f(()=>[l(te,{label:n(a)("All of the following"),value:"allof"},null,8,["label"]),l(te,{label:n(a)("Any of the following"),value:"anyof"},null,8,["label"]),l(te,{label:n(a)("All messages"),value:"all"},null,8,["label"])]),_:1},8,["modelValue"]),e.value.match_type!=="all"?(c(!0),_(J,{key:0},Z(e.value.conditions,(r,y)=>(c(),_("div",{key:`condition-${y}`,class:"d-flex align-start"},[l(I,{modelValue:r.name,"onUpdate:modelValue":u=>r.name=u,label:n(a)("Choose a header"),items:b.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),l(I,{modelValue:r.operator,"onUpdate:modelValue":u=>r.operator=u,label:n(a)("Choose an operator"),items:L(r.name),"item-title":"label","item-value":"name",variant:"outlined",class:"ml-2",density:"compact",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),l(H,{modelValue:r.value,"onUpdate:modelValue":u=>r.value=u,label:n(a)("Value"),variant:"outlined",class:"ml-2",density:"compact",type:R(y),rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","label","type","rules"]),y===0?(c(),k(g,{key:0,icon:"mdi-plus",variant:"text",title:n(a)("Add condition"),color:"primary",onClick:W},null,8,["title"])):(c(),k(g,{key:1,icon:"mdi-trash-can",variant:"text",title:n(a)("Remove condition"),color:"error",onClick:u=>X(y)},null,8,["title","onClick"]))]))),128)):A("",!0)]),j("div",Oe,[j("h4",null,z(n(a)("Actions")),1),(c(!0),_(J,null,Z(e.value.actions,(r,y)=>(c(),_("div",{key:`action-${y}`,class:"d-flex align-start mt-2"},[l(I,{modelValue:r.name,"onUpdate:modelValue":u=>r.name=u,label:n(a)("Choose an action"),items:F.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",class:"flex-grow-0"},null,8,["modelValue","onUpdate:modelValue","label","items"]),j("div",Be,[(c(!0),_(J,null,Z(Q(r.name),(u,M)=>(c(),_(J,{key:`arg-${y}-${M}`},[u.type==="list"?(c(),k(I,{key:0,modelValue:r.args[u.name],"onUpdate:modelValue":T=>r.args[u.name]=T,items:u.choices,"item-title":"label",density:"compact",variant:"outlined",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","items","rules"])):A("",!0),u.type==="string"?(c(),k(H,{key:1,modelValue:r.args[u.name],"onUpdate:modelValue":T=>r.args[u.name]=T,density:"compact",variant:"outlined",rules:[n(U).required]},null,8,["modelValue","onUpdate:modelValue","rules"])):A("",!0),u.type==="boolean"?(c(),k(Ne,{key:2,modelValue:r.args[u.name],"onUpdate:modelValue":T=>r.args[u.name]=T,label:u.label,color:"primary",value:u.value,density:"compact"},null,8,["modelValue","onUpdate:modelValue","label","value"])):A("",!0)],64))),128))]),y===0?(c(),k(g,{key:0,icon:"mdi-plus",variant:"text",title:n(a)("Add action"),color:"primary",onClick:Y},null,8,["title"])):(c(),k(g,{key:1,icon:"mdi-trash-can",variant:"text",title:n(a)("Remove action"),color:"error",onClick:u=>D(y)},null,8,["title","onClick"]))]))),128))])]),_:1},512)]),_:1}),l(ve),l(ce,null,{default:f(()=>[l(pe),l(g,{text:n(a)("Cancel"),variant:"elevated",onClick:E},null,8,["text"]),l(g,{color:"primary",variant:"elevated",text:G.value,loading:w.value,onClick:x},null,8,["text","loading"])]),_:1})]),_:1},8,["title"]))}},Le={class:"pa-4"},Me={class:"text-h6 font-weight-regular mb-4"},ze={key:0,class:"bg-white mt-4 pa-2"},Je={class:"d-flex align-center"},yt={__name:"FiltersView",async setup(K){let O,p;const B=Se(),N=_e(),a=ae(),{$gettext:o}=le(),b=d([]),F=d([]),h=d(""),e=d(),w=d(!1),C=d([]),G=d(),S=d(!1),E=d(!1),$=d(null),L=d(!1),R=d(!1),Q=[{title:o("Name"),key:"name"},{title:o("Active"),key:"enabled"},{title:"",key:"filter_actions",align:"end"}];P(e,t=>{t?(x(t.name),N.params.filterset!==t.name&&B.push({name:"AccountFilters",params:{filterset:t.name}})):B.push({name:"AccountFilters"})}),P(S,t=>{t?V.downloadFilterSet(e.value.name).then(i=>{h.value=i.data}):x(e.value.name)}),P(h,()=>{C.value.length&&(C.value=[])});function W(t){let i=t.name;return t.active?i+=" ("+o("active")+")":i+=" ("+o("inactive")+")",i}async function X(){L.value=!1,await D()}function Y(){R.value=!1,$.value=null,x(e.value.name)}async function D(){const t=await V.getFilterSets();if(t.data.length>0&&t.data[0].active&&t.data[0].name===null?b.value=t.data.slice(1):b.value=t.data,N.params.filterset){for(const i of b.value)if(i.name===N.params.filterset){e.value=i;break}}else for(const i of b.value)if(i.name){e.value=i;break}}function x(t){w.value=!0,V.getFilters(t).then(i=>{F.value=i.data,w.value=!1}).catch(i=>{i.response.status===518&&(S.value=!0,a.displayNotification({msg:o("Failed to display template. Using raw mode"),type:"warning"}))})}function m(t){$.value=t,R.value=!0}function v(t){V.enableFilter(e.value.name,t.name).then(()=>{t.enabled=!0,a.displayNotification({msg:o("Filter enabled")})})}function r(t){V.disableFilter(e.value.name,t.name).then(()=>{t.enabled=!1,a.displayNotification({msg:o("Filter disabled")})})}function y(t){V.deleteFilter(e.value.name,t.name).then(()=>{a.displayNotification({msg:o("Filter removed")}),x(e.value.name)})}async function u(t){await V.moveFilterDown(e.value.name,t.name),x(e.value.name)}async function M(t){await V.moveFilterUp(e.value.name,t.name),x(e.value.name)}async function T(t){await V.activateFilterSet(t.name),await D(),a.displayNotification({msg:o("Filter set activated")})}async function ye(){await V.deactivateActiveFilterSet(),await D(),a.displayNotification({msg:o("Active filter set deactivated")})}async function Ve(t){await V.deleteFilterSet(t.name),a.displayNotification({msg:o("Filter set removed")}),e.value=null,await D()}async function be(){const{valid:t}=await G.value.validate();if(!t)return;const i={content:h.value};E.value=!0;try{await V.saveFilterSet(e.value.name,i),a.displayNotification({msg:o("Filter set updated")})}catch(s){s.response.status===400&&s.response.data.content&&(C.value=s.response.data.content)}finally{E.value=!1}}async function ge(t){const i=await V.downloadFilterSet(t.name),s=new Blob([i.data],{type:"text/plain"}),q=document.createElement("a");q.href=URL.createObjectURL(s),q.download=`${t.name}.txt`,q.click(),URL.revokeObjectURL(q.href)}const Fe=[{label:o("Edit"),icon:"mdi-circle-edit-outline",onClick:m},{label:o("Delete"),icon:"mdi-delete-outline",onClick:y,color:"red"}];function we(t,i){const s=[...Fe];return t.enabled?s.push({label:o("Disable"),icon:"mdi-stop",color:"red",onClick:r}):s.push({label:o("Enable"),icon:"mdi-check",color:"success",onClick:v}),i!==F.value.length-1&&s.push({label:o("Move down"),icon:"mdi-arrow-down",onClick:u}),i!==0&&s.push({label:o("Move up"),icon:"mdi-arrow-up",onClick:M}),s}const ke=[{label:o("Download filter set"),icon:"mdi-download",onClick:ge},{label:o("Delete filter set"),color:"error",icon:"mdi-trash-can",onClick:Ve}];function he(){const t=[];return e.value.active?t.push({label:o("Deactivate filter set"),color:"error",icon:"mdi-close",onClick:ye}):t.push({label:o("Activate filter set"),color:"success",icon:"mdi-check",onClick:T}),t.concat(ke)}return[O,p]=xe(()=>D()),await O,p(),(t,i)=>(c(),_("div",Le,[j("div",Me,z(n(o)("Message filters")),1),l($e,{color:"white",flat:"",class:"px-4"},{default:f(()=>[l(De,{modelValue:e.value,"onUpdate:modelValue":i[0]||(i[0]=s=>e.value=s),label:n(o)("Select a filter set"),items:b.value,"item-title":W,"return-object":"",variant:"outlined","hide-details":"",class:"flex-grow-0",style:{width:"200px"},density:"compact"},null,8,["modelValue","label","items"]),l(g,{color:"primary",icon:"mdi-plus",size:"small",class:"mx-4",title:n(o)("Add filter set"),onClick:i[1]||(i[1]=s=>L.value=!0)},null,8,["title"]),e.value?(c(),k(re,{key:0},{activator:f(({props:s})=>[l(g,ne({icon:"mdi-dots-vertical"},s,{size:"small",color:"default"}),null,16)]),default:f(()=>[l(se,{items:he(),obj:e.value},null,8,["items","obj"])]),_:1})):A("",!0),e.value?(c(),k(fe,{key:1,modelValue:S.value,"onUpdate:modelValue":i[2]||(i[2]=s=>S.value=s),label:n(o)("Raw mode"),color:"primary",class:"ml-4","hide-details":""},null,8,["modelValue","label"])):A("",!0)]),_:1}),e.value?(c(),_("div",ze,[S.value?(c(),_(J,{key:1},[l(oe,{ref_key:"rawFormRef",ref:G},{default:f(()=>[l(Te,{modelValue:h.value,"onUpdate:modelValue":i[4]||(i[4]=s=>h.value=s),variant:"outlined","auto-grow":"",rules:[n(U).required],"error-messages":C.value},null,8,["modelValue","rules","error-messages"])]),_:1},512),l(g,{color:"success",loading:E.value,class:"mt-2",onClick:be},{default:f(()=>[ee(z(n(o)("Save")),1)]),_:1},8,["loading"])],64)):(c(),_(J,{key:0},[j("div",Je,[l(g,{color:"primary",title:n(o)("Add new filter"),class:"mx-auto",variant:"outlined",onClick:i[3]||(i[3]=s=>R.value=!0)},{default:f(()=>[l(Ue,{icon:"mdi-plus"}),ee(" "+z(n(o)("New")),1)]),_:1},8,["title"])]),l(Re,{headers:Q,items:F.value,loading:w.value},{"item.enabled":f(({item:s})=>[ee(z(t.$yesno(s.enabled)),1)]),"item.filter_actions":f(({index:s,item:q})=>[l(re,{"offset-y":""},{activator:f(({props:Ce})=>[l(g,ne({icon:"mdi-dots-horizontal",variant:"text"},Ce),null,16)]),default:f(()=>[l(se,{items:we(q,s),obj:q},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["items","loading"])],64))])):A("",!0),l(ue,{modelValue:L.value,"onUpdate:modelValue":i[5]||(i[5]=s=>L.value=s),"max-width":"600"},{default:f(()=>[l(qe,{onClose:X})]),_:1},8,["modelValue"]),l(ue,{modelValue:R.value,"onUpdate:modelValue":i[6]||(i[6]=s=>R.value=s),"max-width":"800"},{default:f(()=>[e.value?(c(),k(Ee,{key:0,"filter-set":e.value.name,filter:$.value,onClose:Y},null,8,["filter-set","filter"])):A("",!0)]),_:1},8,["modelValue"])]))}};export{yt as default};
@@ -0,0 +1 @@
1
+ import{h as i,B as m,c as p,f as a,o as e}from"./index-BjibLozh.js";import{_ as n}from"./ComposeEmailForm-Ns5SYs4J.js";import{a as l}from"./webmail-HVg3ZHC0.js";import"./index-Dwg6jPTX.js";import"./VForm-ClJU5x_v.js";import"./tag-CvrHE14f.js";import"./VInput-DhzSMFXh.js";import"./VAvatar-BsHplcRP.js";import"./VProgressCircular-viI3jDXe.js";import"./VMenu-B53a3gm6.js";import"./ssrBoot-ChTB-PYP.js";import"./VCard-D7AwBs4w.js";import"./VFileInput-D5qlksIG.js";import"./VTextField-DvvH1ciR.js";import"./VSelect-y0E5_vPn.js";import"./VCheckboxBtn-B5evxN9K.js";import"./VSelectionControl-Dkms9_P5.js";import"./VTable-D8ZwwC_B.js";import"./VSpacer-CBqB9uSt.js";/* empty css */import"./HtmlEditor-DNn3CY-w.js";import"./VTextarea-DHtXtzqP.js";import"./contacts-DKmh2q-4.js";import"./VToolbar-pvLQtmbU.js";import"./VRow-DyK_Mj7R.js";import"./filter-BVvMTmPG.js";import"./VDialog-CUMh3paI.js";const J={__name:"ForwardEmailView",setup(s){const o=m(),r=i();return l.getEmailContent(o.query.mailbox,o.query.mailid,{context:"forward"}).then(t=>{r.value=t.data}),(t,c)=>(e(),p(a(n),{"original-email":r.value},null,8,["original-email"]))}};export{J as default};
@@ -1,4 +1,4 @@
1
- import{af as Pc,a6 as Bc,d as zc,aB as ol,ag as $c,h as ms,aa as Fc,bM as Vc,bQ as Hc,a0 as jc,f as P,bR as Wc,z as _c,l as Kc,o as Vr,e as Uc,a as le,x as qc,c as Di,m as Ri,w as Li,y as Ne}from"./index-B1bntsLR.js";import{V as Se,Y as Jc,Z as Gc}from"./VAvatar-JdJfoK0C.js";import{d as Pi}from"./VMenu-B6SCtOwT.js";function Y(n){this.content=n}Y.prototype={constructor:Y,find:function(n){for(var e=0;e<this.content.length;e+=2)if(this.content[e]===n)return e;return-1},get:function(n){var e=this.find(n);return e==-1?void 0:this.content[e+1]},update:function(n,e,t){var r=t&&t!=n?this.remove(t):this,s=r.find(n),i=r.content.slice();return s==-1?i.push(t||n,e):(i[s+1]=e,t&&(i[s]=t)),new Y(i)},remove:function(n){var e=this.find(n);if(e==-1)return this;var t=this.content.slice();return t.splice(e,2),new Y(t)},addToStart:function(n,e){return new Y([n,e].concat(this.remove(n).content))},addToEnd:function(n,e){var t=this.remove(n).content.slice();return t.push(n,e),new Y(t)},addBefore:function(n,e,t){var r=this.remove(e),s=r.content.slice(),i=r.find(n);return s.splice(i==-1?s.length:i,0,e,t),new Y(s)},forEach:function(n){for(var e=0;e<this.content.length;e+=2)n(this.content[e],this.content[e+1])},prepend:function(n){return n=Y.from(n),n.size?new Y(n.content.concat(this.subtract(n).content)):this},append:function(n){return n=Y.from(n),n.size?new Y(this.subtract(n).content.concat(n.content)):this},subtract:function(n){var e=this;n=Y.from(n);for(var t=0;t<n.content.length;t+=2)e=e.remove(n.content[t]);return e},toObject:function(){var n={};return this.forEach(function(e,t){n[e]=t}),n},get size(){return this.content.length>>1}};Y.from=function(n){if(n instanceof Y)return n;var e=[];if(n)for(var t in n)e.push(t,n[t]);return new Y(e)};function ll(n,e,t){for(let r=0;;r++){if(r==n.childCount||r==e.childCount)return n.childCount==e.childCount?null:t;let s=n.child(r),i=e.child(r);if(s==i){t+=s.nodeSize;continue}if(!s.sameMarkup(i))return t;if(s.isText&&s.text!=i.text){for(let o=0;s.text[o]==i.text[o];o++)t++;return t}if(s.content.size||i.content.size){let o=ll(s.content,i.content,t+1);if(o!=null)return o}t+=s.nodeSize}}function al(n,e,t,r){for(let s=n.childCount,i=e.childCount;;){if(s==0||i==0)return s==i?null:{a:t,b:r};let o=n.child(--s),l=e.child(--i),a=o.nodeSize;if(o==l){t-=a,r-=a;continue}if(!o.sameMarkup(l))return{a:t,b:r};if(o.isText&&o.text!=l.text){let c=0,u=Math.min(o.text.length,l.text.length);for(;c<u&&o.text[o.text.length-c-1]==l.text[l.text.length-c-1];)c++,t--,r--;return{a:t,b:r}}if(o.content.size||l.content.size){let c=al(o.content,l.content,t-1,r-1);if(c)return c}t-=a,r-=a}}class k{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let r=0;r<e.length;r++)this.size+=e[r].nodeSize}nodesBetween(e,t,r,s=0,i){for(let o=0,l=0;l<t;o++){let a=this.content[o],c=l+a.nodeSize;if(c>e&&r(a,s+l,i||null,o)!==!1&&a.content.size){let u=l+1;a.nodesBetween(Math.max(0,e-u),Math.min(a.content.size,t-u),r,s+u)}l=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,r,s){let i="",o=!0;return this.nodesBetween(e,t,(l,a)=>{let c=l.isText?l.text.slice(Math.max(e,a)-a,t-a):l.isLeaf?s?typeof s=="function"?s(l):s:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&c||l.isTextblock)&&r&&(o?o=!1:i+=r),i+=c},0),i}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,r=e.firstChild,s=this.content.slice(),i=0;for(t.isText&&t.sameMarkup(r)&&(s[s.length-1]=t.withText(t.text+r.text),i=1);i<e.content.length;i++)s.push(e.content[i]);return new k(s,this.size+e.size)}cut(e,t=this.size){if(e==0&&t==this.size)return this;let r=[],s=0;if(t>e)for(let i=0,o=0;o<t;i++){let l=this.content[i],a=o+l.nodeSize;a>e&&((o<e||a>t)&&(l.isText?l=l.cut(Math.max(0,e-o),Math.min(l.text.length,t-o)):l=l.cut(Math.max(0,e-o-1),Math.min(l.content.size,t-o-1))),r.push(l),s+=l.nodeSize),o=a}return new k(r,s)}cutByIndex(e,t){return e==t?k.empty:e==0&&t==this.content.length?this:new k(this.content.slice(e,t))}replaceChild(e,t){let r=this.content[e];if(r==t)return this;let s=this.content.slice(),i=this.size+t.nodeSize-r.nodeSize;return s[e]=t,new k(s,i)}addToStart(e){return new k([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new k(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+" out of range for "+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,r=0;t<this.content.length;t++){let s=this.content[t];e(s,r,t),r+=s.nodeSize}}findDiffStart(e,t=0){return ll(this,e,t)}findDiffEnd(e,t=this.size,r=e.size){return al(this,e,t,r)}findIndex(e){if(e==0)return Sn(0,e);if(e==this.size)return Sn(this.content.length,e);if(e>this.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,r=0;;t++){let s=this.child(t),i=r+s.nodeSize;if(i>=e)return i==e?Sn(t+1,i):Sn(t,r);r=i}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return k.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new k(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return k.empty;let t,r=0;for(let s=0;s<e.length;s++){let i=e[s];r+=i.nodeSize,s&&i.isText&&e[s-1].sameMarkup(i)?(t||(t=e.slice(0,s)),t[t.length-1]=i.withText(t[t.length-1].text+i.text)):t&&t.push(i)}return new k(t||e,r)}static from(e){if(!e)return k.empty;if(e instanceof k)return e;if(Array.isArray(e))return this.fromArray(e);if(e.attrs)return new k([e],e.nodeSize);throw new RangeError("Can not convert "+e+" to a Fragment"+(e.nodesBetween?" (looks like multiple versions of prosemirror-model were loaded)":""))}}k.empty=new k([],0);const Hr={index:0,offset:0};function Sn(n,e){return Hr.index=n,Hr.offset=e,Hr}function zn(n,e){if(n===e)return!0;if(!(n&&typeof n=="object")||!(e&&typeof e=="object"))return!1;let t=Array.isArray(n);if(Array.isArray(e)!=t)return!1;if(t){if(n.length!=e.length)return!1;for(let r=0;r<n.length;r++)if(!zn(n[r],e[r]))return!1}else{for(let r in n)if(!(r in e)||!zn(n[r],e[r]))return!1;for(let r in e)if(!(r in n))return!1}return!0}let B=class gs{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,r=!1;for(let s=0;s<e.length;s++){let i=e[s];if(this.eq(i))return e;if(this.type.excludes(i.type))t||(t=e.slice(0,s));else{if(i.type.excludes(this.type))return e;!r&&i.type.rank>this.type.rank&&(t||(t=e.slice(0,s)),t.push(this),r=!0),t&&t.push(i)}}return t||(t=e.slice()),r||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&zn(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Mark.fromJSON");let r=e.marks[t.type];if(!r)throw new RangeError(`There is no mark type ${t.type} in this schema`);let s=r.create(t.attrs);return r.checkAttrs(s.attrs),s}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let r=0;r<e.length;r++)if(!e[r].eq(t[r]))return!1;return!0}static setFrom(e){if(!e||Array.isArray(e)&&e.length==0)return gs.none;if(e instanceof gs)return[e];let t=e.slice();return t.sort((r,s)=>r.type.rank-s.type.rank),t}};B.none=[];class $n extends Error{}class S{constructor(e,t,r){this.content=e,this.openStart=t,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let r=ul(this.content,e+this.openStart,t);return r&&new S(r,this.openStart,this.openEnd)}removeBetween(e,t){return new S(cl(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return S.empty;let r=t.openStart||0,s=t.openEnd||0;if(typeof r!="number"||typeof s!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new S(k.fromJSON(e,t.content),r,s)}static maxOpen(e,t=!0){let r=0,s=0;for(let i=e.firstChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.firstChild)r++;for(let i=e.lastChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.lastChild)s++;return new S(e,r,s)}}S.empty=new S(k.empty,0,0);function cl(n,e,t){let{index:r,offset:s}=n.findIndex(e),i=n.maybeChild(r),{index:o,offset:l}=n.findIndex(t);if(s==e||i.isText){if(l!=t&&!n.child(o).isText)throw new RangeError("Removing non-flat range");return n.cut(0,e).append(n.cut(t))}if(r!=o)throw new RangeError("Removing non-flat range");return n.replaceChild(r,i.copy(cl(i.content,e-s-1,t-s-1)))}function ul(n,e,t,r){let{index:s,offset:i}=n.findIndex(e),o=n.maybeChild(s);if(i==e||o.isText)return r&&!r.canReplace(s,s,t)?null:n.cut(0,e).append(t).append(n.cut(e));let l=ul(o.content,e-i-1,t,o);return l&&n.replaceChild(s,o.copy(l))}function Yc(n,e,t){if(t.openStart>n.depth)throw new $n("Inserted content deeper than insertion position");if(n.depth-t.openStart!=e.depth-t.openEnd)throw new $n("Inconsistent open depths");return dl(n,e,t,0)}function dl(n,e,t,r){let s=n.index(r),i=n.node(r);if(s==e.index(r)&&r<n.depth-t.openStart){let o=dl(n,e,t,r+1);return i.copy(i.content.replaceChild(s,o))}else if(t.content.size)if(!t.openStart&&!t.openEnd&&n.depth==r&&e.depth==r){let o=n.parent,l=o.content;return pt(o,l.cut(0,n.parentOffset).append(t.content).append(l.cut(e.parentOffset)))}else{let{start:o,end:l}=Qc(t,n);return pt(i,hl(n,o,l,e,r))}else return pt(i,Fn(n,e,r))}function fl(n,e){if(!e.type.compatibleContent(n.type))throw new $n("Cannot join "+e.type.name+" onto "+n.type.name)}function ys(n,e,t){let r=n.node(t);return fl(r,e.node(t)),r}function ht(n,e){let t=e.length-1;t>=0&&n.isText&&n.sameMarkup(e[t])?e[t]=n.withText(e[t].text+n.text):e.push(n)}function Yt(n,e,t,r){let s=(e||n).node(t),i=0,o=e?e.index(t):s.childCount;n&&(i=n.index(t),n.depth>t?i++:n.textOffset&&(ht(n.nodeAfter,r),i++));for(let l=i;l<o;l++)ht(s.child(l),r);e&&e.depth==t&&e.textOffset&&ht(e.nodeBefore,r)}function pt(n,e){return n.type.checkContent(e),n.copy(e)}function hl(n,e,t,r,s){let i=n.depth>s&&ys(n,e,s+1),o=r.depth>s&&ys(t,r,s+1),l=[];return Yt(null,n,s,l),i&&o&&e.index(s)==t.index(s)?(fl(i,o),ht(pt(i,hl(n,e,t,r,s+1)),l)):(i&&ht(pt(i,Fn(n,e,s+1)),l),Yt(e,t,s,l),o&&ht(pt(o,Fn(t,r,s+1)),l)),Yt(r,null,s,l),new k(l)}function Fn(n,e,t){let r=[];if(Yt(null,n,t,r),n.depth>t){let s=ys(n,e,t+1);ht(pt(s,Fn(n,e,t+1)),r)}return Yt(e,null,t,r),new k(r)}function Qc(n,e){let t=e.depth-n.openStart,s=e.node(t).copy(n.content);for(let i=t-1;i>=0;i--)s=e.node(i).copy(k.from(s));return{start:s.resolveNoCache(n.openStart+t),end:s.resolveNoCache(s.content.size-n.openEnd-t)}}class ln{constructor(e,t,r){this.pos=e,this.path=t,this.parentOffset=r,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],s=e.child(t);return r?e.child(t).cut(r):s}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let r=this.path[t*3],s=t==0?0:this.path[t*3-1]+1;for(let i=0;i<e;i++)s+=r.child(i).nodeSize;return s}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return B.none;if(this.textOffset)return e.child(t).marks;let r=e.maybeChild(t-1),s=e.maybeChild(t);if(!r){let l=r;r=s,s=l}let i=r.marks;for(var o=0;o<i.length;o++)i[o].type.spec.inclusive===!1&&(!s||!i[o].isInSet(s.marks))&&(i=i[o--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let r=t.marks,s=e.parent.maybeChild(e.index());for(var i=0;i<r.length;i++)r[i].type.spec.inclusive===!1&&(!s||!r[i].isInSet(s.marks))&&(r=r[i--].removeFromSet(r));return r}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let r=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);r>=0;r--)if(e.pos<=this.end(r)&&(!t||t(this.node(r))))return new Vn(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e="";for(let t=1;t<=this.depth;t++)e+=(e?"/":"")+this.node(t).type.name+"_"+this.index(t-1);return e+":"+this.parentOffset}static resolve(e,t){if(!(t>=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let r=[],s=0,i=t;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(i),c=i-a;if(r.push(o,l,s+a),!c||(o=o.child(l),o.isText))break;i=c-1,s+=a+1}return new ln(t,r,i)}static resolveCached(e,t){let r=Bi.get(e);if(r)for(let i=0;i<r.elts.length;i++){let o=r.elts[i];if(o.pos==t)return o}else Bi.set(e,r=new Xc);let s=r.elts[r.i]=ln.resolve(e,t);return r.i=(r.i+1)%Zc,s}}class Xc{constructor(){this.elts=[],this.i=0}}const Zc=12,Bi=new WeakMap;class Vn{constructor(e,t,r){this.$from=e,this.$to=t,this.depth=r}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}}const eu=Object.create(null);class Me{constructor(e,t,r,s=B.none){this.type=e,this.attrs=t,this.marks=s,this.content=r||k.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,r,s=0){this.content.nodesBetween(e,t,r,s,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,"")}textBetween(e,t,r,s){return this.content.textBetween(e,t,r,s)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,r){return this.type==e&&zn(this.attrs,t||e.defaultAttrs||eu)&&B.sameSet(this.marks,r||B.none)}copy(e=null){return e==this.content?this:new Me(this.type,this.attrs,e,this.marks)}mark(e){return e==this.marks?this:new Me(this.type,this.attrs,this.content,e)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,r=!1){if(e==t)return S.empty;let s=this.resolve(e),i=this.resolve(t),o=r?0:s.sharedDepth(t),l=s.start(o),c=s.node(o).content.cut(s.pos-l,i.pos-l);return new S(c,s.depth-o,i.depth-o)}replace(e,t,r){return Yc(this.resolve(e),this.resolve(t),r)}nodeAt(e){for(let t=this;;){let{index:r,offset:s}=t.content.findIndex(e);if(t=t.maybeChild(r),!t)return null;if(s==e||t.isText)return t;e-=s+1}}childAfter(e){let{index:t,offset:r}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:r}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:r}=this.content.findIndex(e);if(r<e)return{node:this.content.child(t),index:t,offset:r};let s=this.content.child(t-1);return{node:s,index:t-1,offset:r-s.nodeSize}}resolve(e){return ln.resolveCached(this,e)}resolveNoCache(e){return ln.resolve(this,e)}rangeHasMark(e,t,r){let s=!1;return t>e&&this.nodesBetween(e,t,i=>(r.isInSet(i.marks)&&(s=!0),!s)),s}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),pl(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,r=k.empty,s=0,i=r.childCount){let o=this.contentMatchAt(e).matchFragment(r,s,i),l=o&&o.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let a=s;a<i;a++)if(!this.type.allowsMarks(r.child(a).marks))return!1;return!0}canReplaceWith(e,t,r,s){if(s&&!this.type.allowsMarks(s))return!1;let i=this.contentMatchAt(e).matchType(r),o=i&&i.matchFragment(this.content,t);return o?o.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=B.none;for(let t=0;t<this.marks.length;t++){let r=this.marks[t];r.type.checkAttrs(r.attrs),e=r.addToSet(e)}if(!B.sameSet(e,this.marks))throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(t=>t.type.name)}`);this.content.forEach(t=>t.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(t=>t.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let r;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=t.marks.map(e.markFromJSON)}if(t.type=="text"){if(typeof t.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(t.text,r)}let s=k.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,s,r);return i.type.checkAttrs(i.attrs),i}}Me.prototype.text=void 0;class Hn extends Me{constructor(e,t,r,s){if(super(e,t,null,s),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):pl(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new Hn(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new Hn(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function pl(n,e){for(let t=n.length-1;t>=0;t--)e=n[t].type.name+"("+e+")";return e}class kt{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let r=new tu(e,t);if(r.next==null)return kt.empty;let s=ml(r);r.next&&r.err("Unexpected trailing text");let i=au(lu(s));return cu(i,r),i}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,r=e.childCount){let s=this;for(let i=t;s&&i<r;i++)s=s.matchType(e.child(i).type);return s}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let r=0;r<e.next.length;r++)if(this.next[t].type==e.next[r].type)return!0;return!1}fillBefore(e,t=!1,r=0){let s=[this];function i(o,l){let a=o.matchFragment(e,r);if(a&&(!t||a.validEnd))return k.from(l.map(c=>c.createAndFill()));for(let c=0;c<o.next.length;c++){let{type:u,next:d}=o.next[c];if(!(u.isText||u.hasRequiredAttrs())&&s.indexOf(d)==-1){s.push(d);let f=i(d,l.concat(u));if(f)return f}}return null}return i(this,[])}findWrapping(e){for(let r=0;r<this.wrapCache.length;r+=2)if(this.wrapCache[r]==e)return this.wrapCache[r+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),r=[{match:this,type:null,via:null}];for(;r.length;){let s=r.shift(),i=s.match;if(i.matchType(e)){let o=[];for(let l=s;l.type;l=l.via)o.push(l.type);return o.reverse()}for(let o=0;o<i.next.length;o++){let{type:l,next:a}=i.next[o];!l.isLeaf&&!l.hasRequiredAttrs()&&!(l.name in t)&&(!s.type||a.validEnd)&&(r.push({match:l.contentMatch,type:l,via:s}),t[l.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(r){e.push(r);for(let s=0;s<r.next.length;s++)e.indexOf(r.next[s].next)==-1&&t(r.next[s].next)}return t(this),e.map((r,s)=>{let i=s+(r.validEnd?"*":" ")+" ";for(let o=0;o<r.next.length;o++)i+=(o?", ":"")+r.next[o].type.name+"->"+e.indexOf(r.next[o].next);return i}).join(`
1
+ import{af as Pc,a6 as Bc,d as zc,aB as ol,ag as $c,h as ms,aa as Fc,bM as Vc,bQ as Hc,a0 as jc,f as P,bR as Wc,z as _c,l as Kc,o as Vr,e as Uc,a as le,x as qc,c as Di,m as Ri,w as Li,y as Ne}from"./index-BjibLozh.js";import{V as Se,Y as Jc,Z as Gc}from"./VAvatar-BsHplcRP.js";import{d as Pi}from"./VMenu-B53a3gm6.js";function Y(n){this.content=n}Y.prototype={constructor:Y,find:function(n){for(var e=0;e<this.content.length;e+=2)if(this.content[e]===n)return e;return-1},get:function(n){var e=this.find(n);return e==-1?void 0:this.content[e+1]},update:function(n,e,t){var r=t&&t!=n?this.remove(t):this,s=r.find(n),i=r.content.slice();return s==-1?i.push(t||n,e):(i[s+1]=e,t&&(i[s]=t)),new Y(i)},remove:function(n){var e=this.find(n);if(e==-1)return this;var t=this.content.slice();return t.splice(e,2),new Y(t)},addToStart:function(n,e){return new Y([n,e].concat(this.remove(n).content))},addToEnd:function(n,e){var t=this.remove(n).content.slice();return t.push(n,e),new Y(t)},addBefore:function(n,e,t){var r=this.remove(e),s=r.content.slice(),i=r.find(n);return s.splice(i==-1?s.length:i,0,e,t),new Y(s)},forEach:function(n){for(var e=0;e<this.content.length;e+=2)n(this.content[e],this.content[e+1])},prepend:function(n){return n=Y.from(n),n.size?new Y(n.content.concat(this.subtract(n).content)):this},append:function(n){return n=Y.from(n),n.size?new Y(this.subtract(n).content.concat(n.content)):this},subtract:function(n){var e=this;n=Y.from(n);for(var t=0;t<n.content.length;t+=2)e=e.remove(n.content[t]);return e},toObject:function(){var n={};return this.forEach(function(e,t){n[e]=t}),n},get size(){return this.content.length>>1}};Y.from=function(n){if(n instanceof Y)return n;var e=[];if(n)for(var t in n)e.push(t,n[t]);return new Y(e)};function ll(n,e,t){for(let r=0;;r++){if(r==n.childCount||r==e.childCount)return n.childCount==e.childCount?null:t;let s=n.child(r),i=e.child(r);if(s==i){t+=s.nodeSize;continue}if(!s.sameMarkup(i))return t;if(s.isText&&s.text!=i.text){for(let o=0;s.text[o]==i.text[o];o++)t++;return t}if(s.content.size||i.content.size){let o=ll(s.content,i.content,t+1);if(o!=null)return o}t+=s.nodeSize}}function al(n,e,t,r){for(let s=n.childCount,i=e.childCount;;){if(s==0||i==0)return s==i?null:{a:t,b:r};let o=n.child(--s),l=e.child(--i),a=o.nodeSize;if(o==l){t-=a,r-=a;continue}if(!o.sameMarkup(l))return{a:t,b:r};if(o.isText&&o.text!=l.text){let c=0,u=Math.min(o.text.length,l.text.length);for(;c<u&&o.text[o.text.length-c-1]==l.text[l.text.length-c-1];)c++,t--,r--;return{a:t,b:r}}if(o.content.size||l.content.size){let c=al(o.content,l.content,t-1,r-1);if(c)return c}t-=a,r-=a}}class k{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let r=0;r<e.length;r++)this.size+=e[r].nodeSize}nodesBetween(e,t,r,s=0,i){for(let o=0,l=0;l<t;o++){let a=this.content[o],c=l+a.nodeSize;if(c>e&&r(a,s+l,i||null,o)!==!1&&a.content.size){let u=l+1;a.nodesBetween(Math.max(0,e-u),Math.min(a.content.size,t-u),r,s+u)}l=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,r,s){let i="",o=!0;return this.nodesBetween(e,t,(l,a)=>{let c=l.isText?l.text.slice(Math.max(e,a)-a,t-a):l.isLeaf?s?typeof s=="function"?s(l):s:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&c||l.isTextblock)&&r&&(o?o=!1:i+=r),i+=c},0),i}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,r=e.firstChild,s=this.content.slice(),i=0;for(t.isText&&t.sameMarkup(r)&&(s[s.length-1]=t.withText(t.text+r.text),i=1);i<e.content.length;i++)s.push(e.content[i]);return new k(s,this.size+e.size)}cut(e,t=this.size){if(e==0&&t==this.size)return this;let r=[],s=0;if(t>e)for(let i=0,o=0;o<t;i++){let l=this.content[i],a=o+l.nodeSize;a>e&&((o<e||a>t)&&(l.isText?l=l.cut(Math.max(0,e-o),Math.min(l.text.length,t-o)):l=l.cut(Math.max(0,e-o-1),Math.min(l.content.size,t-o-1))),r.push(l),s+=l.nodeSize),o=a}return new k(r,s)}cutByIndex(e,t){return e==t?k.empty:e==0&&t==this.content.length?this:new k(this.content.slice(e,t))}replaceChild(e,t){let r=this.content[e];if(r==t)return this;let s=this.content.slice(),i=this.size+t.nodeSize-r.nodeSize;return s[e]=t,new k(s,i)}addToStart(e){return new k([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new k(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw new RangeError("Index "+e+" out of range for "+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,r=0;t<this.content.length;t++){let s=this.content[t];e(s,r,t),r+=s.nodeSize}}findDiffStart(e,t=0){return ll(this,e,t)}findDiffEnd(e,t=this.size,r=e.size){return al(this,e,t,r)}findIndex(e){if(e==0)return Sn(0,e);if(e==this.size)return Sn(this.content.length,e);if(e>this.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,r=0;;t++){let s=this.child(t),i=r+s.nodeSize;if(i>=e)return i==e?Sn(t+1,i):Sn(t,r);r=i}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return k.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new k(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return k.empty;let t,r=0;for(let s=0;s<e.length;s++){let i=e[s];r+=i.nodeSize,s&&i.isText&&e[s-1].sameMarkup(i)?(t||(t=e.slice(0,s)),t[t.length-1]=i.withText(t[t.length-1].text+i.text)):t&&t.push(i)}return new k(t||e,r)}static from(e){if(!e)return k.empty;if(e instanceof k)return e;if(Array.isArray(e))return this.fromArray(e);if(e.attrs)return new k([e],e.nodeSize);throw new RangeError("Can not convert "+e+" to a Fragment"+(e.nodesBetween?" (looks like multiple versions of prosemirror-model were loaded)":""))}}k.empty=new k([],0);const Hr={index:0,offset:0};function Sn(n,e){return Hr.index=n,Hr.offset=e,Hr}function zn(n,e){if(n===e)return!0;if(!(n&&typeof n=="object")||!(e&&typeof e=="object"))return!1;let t=Array.isArray(n);if(Array.isArray(e)!=t)return!1;if(t){if(n.length!=e.length)return!1;for(let r=0;r<n.length;r++)if(!zn(n[r],e[r]))return!1}else{for(let r in n)if(!(r in e)||!zn(n[r],e[r]))return!1;for(let r in e)if(!(r in n))return!1}return!0}let B=class gs{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,r=!1;for(let s=0;s<e.length;s++){let i=e[s];if(this.eq(i))return e;if(this.type.excludes(i.type))t||(t=e.slice(0,s));else{if(i.type.excludes(this.type))return e;!r&&i.type.rank>this.type.rank&&(t||(t=e.slice(0,s)),t.push(this),r=!0),t&&t.push(i)}}return t||(t=e.slice()),r||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&zn(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Mark.fromJSON");let r=e.marks[t.type];if(!r)throw new RangeError(`There is no mark type ${t.type} in this schema`);let s=r.create(t.attrs);return r.checkAttrs(s.attrs),s}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let r=0;r<e.length;r++)if(!e[r].eq(t[r]))return!1;return!0}static setFrom(e){if(!e||Array.isArray(e)&&e.length==0)return gs.none;if(e instanceof gs)return[e];let t=e.slice();return t.sort((r,s)=>r.type.rank-s.type.rank),t}};B.none=[];class $n extends Error{}class S{constructor(e,t,r){this.content=e,this.openStart=t,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let r=ul(this.content,e+this.openStart,t);return r&&new S(r,this.openStart,this.openEnd)}removeBetween(e,t){return new S(cl(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return S.empty;let r=t.openStart||0,s=t.openEnd||0;if(typeof r!="number"||typeof s!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new S(k.fromJSON(e,t.content),r,s)}static maxOpen(e,t=!0){let r=0,s=0;for(let i=e.firstChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.firstChild)r++;for(let i=e.lastChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.lastChild)s++;return new S(e,r,s)}}S.empty=new S(k.empty,0,0);function cl(n,e,t){let{index:r,offset:s}=n.findIndex(e),i=n.maybeChild(r),{index:o,offset:l}=n.findIndex(t);if(s==e||i.isText){if(l!=t&&!n.child(o).isText)throw new RangeError("Removing non-flat range");return n.cut(0,e).append(n.cut(t))}if(r!=o)throw new RangeError("Removing non-flat range");return n.replaceChild(r,i.copy(cl(i.content,e-s-1,t-s-1)))}function ul(n,e,t,r){let{index:s,offset:i}=n.findIndex(e),o=n.maybeChild(s);if(i==e||o.isText)return r&&!r.canReplace(s,s,t)?null:n.cut(0,e).append(t).append(n.cut(e));let l=ul(o.content,e-i-1,t,o);return l&&n.replaceChild(s,o.copy(l))}function Yc(n,e,t){if(t.openStart>n.depth)throw new $n("Inserted content deeper than insertion position");if(n.depth-t.openStart!=e.depth-t.openEnd)throw new $n("Inconsistent open depths");return dl(n,e,t,0)}function dl(n,e,t,r){let s=n.index(r),i=n.node(r);if(s==e.index(r)&&r<n.depth-t.openStart){let o=dl(n,e,t,r+1);return i.copy(i.content.replaceChild(s,o))}else if(t.content.size)if(!t.openStart&&!t.openEnd&&n.depth==r&&e.depth==r){let o=n.parent,l=o.content;return pt(o,l.cut(0,n.parentOffset).append(t.content).append(l.cut(e.parentOffset)))}else{let{start:o,end:l}=Qc(t,n);return pt(i,hl(n,o,l,e,r))}else return pt(i,Fn(n,e,r))}function fl(n,e){if(!e.type.compatibleContent(n.type))throw new $n("Cannot join "+e.type.name+" onto "+n.type.name)}function ys(n,e,t){let r=n.node(t);return fl(r,e.node(t)),r}function ht(n,e){let t=e.length-1;t>=0&&n.isText&&n.sameMarkup(e[t])?e[t]=n.withText(e[t].text+n.text):e.push(n)}function Yt(n,e,t,r){let s=(e||n).node(t),i=0,o=e?e.index(t):s.childCount;n&&(i=n.index(t),n.depth>t?i++:n.textOffset&&(ht(n.nodeAfter,r),i++));for(let l=i;l<o;l++)ht(s.child(l),r);e&&e.depth==t&&e.textOffset&&ht(e.nodeBefore,r)}function pt(n,e){return n.type.checkContent(e),n.copy(e)}function hl(n,e,t,r,s){let i=n.depth>s&&ys(n,e,s+1),o=r.depth>s&&ys(t,r,s+1),l=[];return Yt(null,n,s,l),i&&o&&e.index(s)==t.index(s)?(fl(i,o),ht(pt(i,hl(n,e,t,r,s+1)),l)):(i&&ht(pt(i,Fn(n,e,s+1)),l),Yt(e,t,s,l),o&&ht(pt(o,Fn(t,r,s+1)),l)),Yt(r,null,s,l),new k(l)}function Fn(n,e,t){let r=[];if(Yt(null,n,t,r),n.depth>t){let s=ys(n,e,t+1);ht(pt(s,Fn(n,e,t+1)),r)}return Yt(e,null,t,r),new k(r)}function Qc(n,e){let t=e.depth-n.openStart,s=e.node(t).copy(n.content);for(let i=t-1;i>=0;i--)s=e.node(i).copy(k.from(s));return{start:s.resolveNoCache(n.openStart+t),end:s.resolveNoCache(s.content.size-n.openEnd-t)}}class ln{constructor(e,t,r){this.pos=e,this.path=t,this.parentOffset=r,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let r=this.pos-this.path[this.path.length-1],s=e.child(t);return r?e.child(t).cut(r):s}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let r=this.path[t*3],s=t==0?0:this.path[t*3-1]+1;for(let i=0;i<e;i++)s+=r.child(i).nodeSize;return s}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return B.none;if(this.textOffset)return e.child(t).marks;let r=e.maybeChild(t-1),s=e.maybeChild(t);if(!r){let l=r;r=s,s=l}let i=r.marks;for(var o=0;o<i.length;o++)i[o].type.spec.inclusive===!1&&(!s||!i[o].isInSet(s.marks))&&(i=i[o--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let r=t.marks,s=e.parent.maybeChild(e.index());for(var i=0;i<r.length;i++)r[i].type.spec.inclusive===!1&&(!s||!r[i].isInSet(s.marks))&&(r=r[i--].removeFromSet(r));return r}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let r=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);r>=0;r--)if(e.pos<=this.end(r)&&(!t||t(this.node(r))))return new Vn(this,e,r);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e="";for(let t=1;t<=this.depth;t++)e+=(e?"/":"")+this.node(t).type.name+"_"+this.index(t-1);return e+":"+this.parentOffset}static resolve(e,t){if(!(t>=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let r=[],s=0,i=t;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(i),c=i-a;if(r.push(o,l,s+a),!c||(o=o.child(l),o.isText))break;i=c-1,s+=a+1}return new ln(t,r,i)}static resolveCached(e,t){let r=Bi.get(e);if(r)for(let i=0;i<r.elts.length;i++){let o=r.elts[i];if(o.pos==t)return o}else Bi.set(e,r=new Xc);let s=r.elts[r.i]=ln.resolve(e,t);return r.i=(r.i+1)%Zc,s}}class Xc{constructor(){this.elts=[],this.i=0}}const Zc=12,Bi=new WeakMap;class Vn{constructor(e,t,r){this.$from=e,this.$to=t,this.depth=r}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}}const eu=Object.create(null);class Me{constructor(e,t,r,s=B.none){this.type=e,this.attrs=t,this.marks=s,this.content=r||k.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,r,s=0){this.content.nodesBetween(e,t,r,s,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,"")}textBetween(e,t,r,s){return this.content.textBetween(e,t,r,s)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,r){return this.type==e&&zn(this.attrs,t||e.defaultAttrs||eu)&&B.sameSet(this.marks,r||B.none)}copy(e=null){return e==this.content?this:new Me(this.type,this.attrs,e,this.marks)}mark(e){return e==this.marks?this:new Me(this.type,this.attrs,this.content,e)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,r=!1){if(e==t)return S.empty;let s=this.resolve(e),i=this.resolve(t),o=r?0:s.sharedDepth(t),l=s.start(o),c=s.node(o).content.cut(s.pos-l,i.pos-l);return new S(c,s.depth-o,i.depth-o)}replace(e,t,r){return Yc(this.resolve(e),this.resolve(t),r)}nodeAt(e){for(let t=this;;){let{index:r,offset:s}=t.content.findIndex(e);if(t=t.maybeChild(r),!t)return null;if(s==e||t.isText)return t;e-=s+1}}childAfter(e){let{index:t,offset:r}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:r}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:r}=this.content.findIndex(e);if(r<e)return{node:this.content.child(t),index:t,offset:r};let s=this.content.child(t-1);return{node:s,index:t-1,offset:r-s.nodeSize}}resolve(e){return ln.resolveCached(this,e)}resolveNoCache(e){return ln.resolve(this,e)}rangeHasMark(e,t,r){let s=!1;return t>e&&this.nodesBetween(e,t,i=>(r.isInSet(i.marks)&&(s=!0),!s)),s}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),pl(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,r=k.empty,s=0,i=r.childCount){let o=this.contentMatchAt(e).matchFragment(r,s,i),l=o&&o.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let a=s;a<i;a++)if(!this.type.allowsMarks(r.child(a).marks))return!1;return!0}canReplaceWith(e,t,r,s){if(s&&!this.type.allowsMarks(s))return!1;let i=this.contentMatchAt(e).matchType(r),o=i&&i.matchFragment(this.content,t);return o?o.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=B.none;for(let t=0;t<this.marks.length;t++){let r=this.marks[t];r.type.checkAttrs(r.attrs),e=r.addToSet(e)}if(!B.sameSet(e,this.marks))throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(t=>t.type.name)}`);this.content.forEach(t=>t.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(t=>t.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let r;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=t.marks.map(e.markFromJSON)}if(t.type=="text"){if(typeof t.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(t.text,r)}let s=k.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,s,r);return i.type.checkAttrs(i.attrs),i}}Me.prototype.text=void 0;class Hn extends Me{constructor(e,t,r,s){if(super(e,t,null,s),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):pl(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new Hn(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new Hn(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function pl(n,e){for(let t=n.length-1;t>=0;t--)e=n[t].type.name+"("+e+")";return e}class kt{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let r=new tu(e,t);if(r.next==null)return kt.empty;let s=ml(r);r.next&&r.err("Unexpected trailing text");let i=au(lu(s));return cu(i,r),i}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,r=e.childCount){let s=this;for(let i=t;s&&i<r;i++)s=s.matchType(e.child(i).type);return s}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let r=0;r<e.next.length;r++)if(this.next[t].type==e.next[r].type)return!0;return!1}fillBefore(e,t=!1,r=0){let s=[this];function i(o,l){let a=o.matchFragment(e,r);if(a&&(!t||a.validEnd))return k.from(l.map(c=>c.createAndFill()));for(let c=0;c<o.next.length;c++){let{type:u,next:d}=o.next[c];if(!(u.isText||u.hasRequiredAttrs())&&s.indexOf(d)==-1){s.push(d);let f=i(d,l.concat(u));if(f)return f}}return null}return i(this,[])}findWrapping(e){for(let r=0;r<this.wrapCache.length;r+=2)if(this.wrapCache[r]==e)return this.wrapCache[r+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),r=[{match:this,type:null,via:null}];for(;r.length;){let s=r.shift(),i=s.match;if(i.matchType(e)){let o=[];for(let l=s;l.type;l=l.via)o.push(l.type);return o.reverse()}for(let o=0;o<i.next.length;o++){let{type:l,next:a}=i.next[o];!l.isLeaf&&!l.hasRequiredAttrs()&&!(l.name in t)&&(!s.type||a.validEnd)&&(r.push({match:l.contentMatch,type:l,via:s}),t[l.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(r){e.push(r);for(let s=0;s<r.next.length;s++)e.indexOf(r.next[s].next)==-1&&t(r.next[s].next)}return t(this),e.map((r,s)=>{let i=s+(r.validEnd?"*":" ")+" ";for(let o=0;o<r.next.length;o++)i+=(o?", ":"")+r.next[o].type.name+"->"+e.indexOf(r.next[o].next);return i}).join(`
2
2
  `)}}kt.empty=new kt(!0);class tu{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function ml(n){let e=[];do e.push(nu(n));while(n.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function nu(n){let e=[];do e.push(ru(n));while(n.next&&n.next!=")"&&n.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function ru(n){let e=ou(n);for(;;)if(n.eat("+"))e={type:"plus",expr:e};else if(n.eat("*"))e={type:"star",expr:e};else if(n.eat("?"))e={type:"opt",expr:e};else if(n.eat("{"))e=su(n,e);else break;return e}function zi(n){/\D/.test(n.next)&&n.err("Expected number, got '"+n.next+"'");let e=Number(n.next);return n.pos++,e}function su(n,e){let t=zi(n),r=t;return n.eat(",")&&(n.next!="}"?r=zi(n):r=-1),n.eat("}")||n.err("Unclosed braced range"),{type:"range",min:t,max:r,expr:e}}function iu(n,e){let t=n.nodeTypes,r=t[e];if(r)return[r];let s=[];for(let i in t){let o=t[i];o.isInGroup(e)&&s.push(o)}return s.length==0&&n.err("No node type or group '"+e+"' found"),s}function ou(n){if(n.eat("(")){let e=ml(n);return n.eat(")")||n.err("Missing closing paren"),e}else if(/\W/.test(n.next))n.err("Unexpected token '"+n.next+"'");else{let e=iu(n,n.next).map(t=>(n.inline==null?n.inline=t.isInline:n.inline!=t.isInline&&n.err("Mixing inline and block content"),{type:"name",value:t}));return n.pos++,e.length==1?e[0]:{type:"choice",exprs:e}}}function lu(n){let e=[[]];return s(i(n,0),t()),e;function t(){return e.push([])-1}function r(o,l,a){let c={term:a,to:l};return e[o].push(c),c}function s(o,l){o.forEach(a=>a.to=l)}function i(o,l){if(o.type=="choice")return o.exprs.reduce((a,c)=>a.concat(i(c,l)),[]);if(o.type=="seq")for(let a=0;;a++){let c=i(o.exprs[a],l);if(a==o.exprs.length-1)return c;s(c,l=t())}else if(o.type=="star"){let a=t();return r(l,a),s(i(o.expr,a),a),[r(a)]}else if(o.type=="plus"){let a=t();return s(i(o.expr,l),a),s(i(o.expr,a),a),[r(a)]}else{if(o.type=="opt")return[r(l)].concat(i(o.expr,l));if(o.type=="range"){let a=l;for(let c=0;c<o.min;c++){let u=t();s(i(o.expr,a),u),a=u}if(o.max==-1)s(i(o.expr,a),a);else for(let c=o.min;c<o.max;c++){let u=t();r(a,u),s(i(o.expr,a),u),a=u}return[r(a)]}else{if(o.type=="name")return[r(l,void 0,o.value)];throw new Error("Unknown expr type")}}}}function gl(n,e){return e-n}function $i(n,e){let t=[];return r(e),t.sort(gl);function r(s){let i=n[s];if(i.length==1&&!i[0].term)return r(i[0].to);t.push(s);for(let o=0;o<i.length;o++){let{term:l,to:a}=i[o];!l&&t.indexOf(a)==-1&&r(a)}}}function au(n){let e=Object.create(null);return t($i(n,0));function t(r){let s=[];r.forEach(o=>{n[o].forEach(({term:l,to:a})=>{if(!l)return;let c;for(let u=0;u<s.length;u++)s[u][0]==l&&(c=s[u][1]);$i(n,a).forEach(u=>{c||s.push([l,c=[]]),c.indexOf(u)==-1&&c.push(u)})})});let i=e[r.join(",")]=new kt(r.indexOf(n.length-1)>-1);for(let o=0;o<s.length;o++){let l=s[o][1].sort(gl);i.next.push({type:s[o][0],next:e[l.join(",")]||t(l)})}return i}}function cu(n,e){for(let t=0,r=[n];t<r.length;t++){let s=r[t],i=!s.validEnd,o=[];for(let l=0;l<s.next.length;l++){let{type:a,next:c}=s.next[l];o.push(a.name),i&&!(a.isText||a.hasRequiredAttrs())&&(i=!1),r.indexOf(c)==-1&&r.push(c)}i&&e.err("Only non-generatable nodes ("+o.join(", ")+") in a required position (see https://prosemirror.net/docs/guide/#generatable)")}}function yl(n){let e=Object.create(null);for(let t in n){let r=n[t];if(!r.hasDefault)return null;e[t]=r.default}return e}function kl(n,e){let t=Object.create(null);for(let r in n){let s=e&&e[r];if(s===void 0){let i=n[r];if(i.hasDefault)s=i.default;else throw new RangeError("No value supplied for attribute "+r)}t[r]=s}return t}function bl(n,e,t,r){for(let s in e)if(!(s in n))throw new RangeError(`Unsupported attribute ${s} for ${t} of type ${s}`);for(let s in n){let i=n[s];i.validate&&i.validate(e[s])}}function xl(n,e){let t=Object.create(null);if(e)for(let r in e)t[r]=new du(n,r,e[r]);return t}let Fi=class Sl{constructor(e,t,r){this.name=e,this.schema=t,this.spec=r,this.markSet=null,this.groups=r.group?r.group.split(" "):[],this.attrs=xl(e,r.attrs),this.defaultAttrs=yl(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(r.inline||e=="text"),this.isText=e=="text"}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==kt.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:kl(this.attrs,e)}create(e=null,t,r){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new Me(this,this.computeAttrs(e),k.from(t),B.setFrom(r))}createChecked(e=null,t,r){return t=k.from(t),this.checkContent(t),new Me(this,this.computeAttrs(e),t,B.setFrom(r))}createAndFill(e=null,t,r){if(e=this.computeAttrs(e),t=k.from(t),t.size){let o=this.contentMatch.fillBefore(t);if(!o)return null;t=o.append(t)}let s=this.contentMatch.matchFragment(t),i=s&&s.fillBefore(k.empty,!0);return i?new Me(this,e,t.append(i),B.setFrom(r)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let r=0;r<e.childCount;r++)if(!this.allowsMarks(e.child(r).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw new RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){bl(this.attrs,e,"node",this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;t<e.length;t++)if(!this.allowsMarkType(e[t].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let t;for(let r=0;r<e.length;r++)this.allowsMarkType(e[r].type)?t&&t.push(e[r]):t||(t=e.slice(0,r));return t?t.length?t:B.none:e}static compile(e,t){let r=Object.create(null);e.forEach((i,o)=>r[i]=new Sl(i,t,o));let s=t.spec.topNode||"doc";if(!r[s])throw new RangeError("Schema is missing its top node type ('"+s+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let i in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}};function uu(n,e,t){let r=t.split("|");return s=>{let i=s===null?"null":typeof s;if(r.indexOf(i)<0)throw new RangeError(`Expected value of type ${r} for attribute ${e} on type ${n}, got ${i}`)}}class du{constructor(e,t,r){this.hasDefault=Object.prototype.hasOwnProperty.call(r,"default"),this.default=r.default,this.validate=typeof r.validate=="string"?uu(e,t,r.validate):r.validate}get isRequired(){return!this.hasDefault}}class Tr{constructor(e,t,r,s){this.name=e,this.rank=t,this.schema=r,this.spec=s,this.attrs=xl(e,s.attrs),this.excluded=null;let i=yl(this.attrs);this.instance=i?new B(this,i):null}create(e=null){return!e&&this.instance?this.instance:new B(this,kl(this.attrs,e))}static compile(e,t){let r=Object.create(null),s=0;return e.forEach((i,o)=>r[i]=new Tr(i,s++,t,o)),r}removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slice(0,t).concat(e.slice(t+1)),t--);return e}isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}checkAttrs(e){bl(this.attrs,e,"mark",this.name)}excludes(e){return this.excluded.indexOf(e)>-1}}class wl{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let s in e)t[s]=e[s];t.nodes=Y.from(e.nodes),t.marks=Y.from(e.marks||{}),this.nodes=Fi.compile(this.spec.nodes,this),this.marks=Tr.compile(this.spec.marks,this);let r=Object.create(null);for(let s in this.nodes){if(s in this.marks)throw new RangeError(s+" can not be both a node and a mark");let i=this.nodes[s],o=i.spec.content||"",l=i.spec.marks;if(i.contentMatch=r[o]||(r[o]=kt.parse(o,this.nodes)),i.inlineContent=i.contentMatch.inlineContent,i.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!i.isInline||!i.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=i}i.markSet=l=="_"?null:l?Vi(this,l.split(" ")):l==""||!i.inlineContent?[]:null}for(let s in this.marks){let i=this.marks[s],o=i.spec.excludes;i.excluded=o==null?[i]:o==""?[]:Vi(this,o.split(" "))}this.nodeFromJSON=s=>Me.fromJSON(this,s),this.markFromJSON=s=>B.fromJSON(this,s),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,t=null,r,s){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof Fi){if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}else throw new RangeError("Invalid node type: "+e);return e.createChecked(t,r,s)}text(e,t){let r=this.nodes.text;return new Hn(r,r.defaultAttrs,e,B.setFrom(t))}mark(e,t){return typeof e=="string"&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw new RangeError("Unknown node type: "+e);return t}}function Vi(n,e){let t=[];for(let r=0;r<e.length;r++){let s=e[r],i=n.marks[s],o=i;if(i)t.push(i);else for(let l in n.marks){let a=n.marks[l];(s=="_"||a.spec.group&&a.spec.group.split(" ").indexOf(s)>-1)&&t.push(o=a)}if(!o)throw new SyntaxError("Unknown mark type: '"+e[r]+"'")}return t}function fu(n){return n.tag!=null}function hu(n){return n.style!=null}class Qe{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let r=this.matchedStyles=[];t.forEach(s=>{if(fu(s))this.tags.push(s);else if(hu(s)){let i=/[^=]*/.exec(s.style)[0];r.indexOf(i)<0&&r.push(i),this.styles.push(s)}}),this.normalizeLists=!this.tags.some(s=>{if(!/^(ul|ol)\b/.test(s.tag)||!s.node)return!1;let i=e.nodes[s.node];return i.contentMatch.matchType(i)})}parse(e,t={}){let r=new ji(this,t,!1);return r.addAll(e,B.none,t.from,t.to),r.finish()}parseSlice(e,t={}){let r=new ji(this,t,!0);return r.addAll(e,B.none,t.from,t.to),S.maxOpen(r.finish())}matchTag(e,t,r){for(let s=r?this.tags.indexOf(r)+1:0;s<this.tags.length;s++){let i=this.tags[s];if(gu(e,i.tag)&&(i.namespace===void 0||e.namespaceURI==i.namespace)&&(!i.context||t.matchesContext(i.context))){if(i.getAttrs){let o=i.getAttrs(e);if(o===!1)continue;i.attrs=o||void 0}return i}}}matchStyle(e,t,r,s){for(let i=s?this.styles.indexOf(s)+1:0;i<this.styles.length;i++){let o=this.styles[i],l=o.style;if(!(l.indexOf(e)!=0||o.context&&!r.matchesContext(o.context)||l.length>e.length&&(l.charCodeAt(e.length)!=61||l.slice(e.length+1)!=t))){if(o.getAttrs){let a=o.getAttrs(t);if(a===!1)continue;o.attrs=a||void 0}return o}}}static schemaRules(e){let t=[];function r(s){let i=s.priority==null?50:s.priority,o=0;for(;o<t.length;o++){let l=t[o];if((l.priority==null?50:l.priority)<i)break}t.splice(o,0,s)}for(let s in e.marks){let i=e.marks[s].spec.parseDOM;i&&i.forEach(o=>{r(o=Wi(o)),o.mark||o.ignore||o.clearMark||(o.mark=s)})}for(let s in e.nodes){let i=e.nodes[s].spec.parseDOM;i&&i.forEach(o=>{r(o=Wi(o)),o.node||o.ignore||o.mark||(o.node=s)})}return t}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new Qe(e,Qe.schemaRules(e)))}}const Cl={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},pu={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},Ml={ol:!0,ul:!0},an=1,ks=2,Qt=4;function Hi(n,e,t){return e!=null?(e?an:0)|(e==="full"?ks:0):n&&n.whitespace=="pre"?an|ks:t&~Qt}class wn{constructor(e,t,r,s,i,o){this.type=e,this.attrs=t,this.marks=r,this.solid=s,this.options=o,this.content=[],this.activeMarks=B.none,this.match=i||(o&Qt?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(k.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let r=this.type.contentMatch,s;return(s=r.findWrapping(e.type))?(this.match=r,s):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&an)){let r=this.content[this.content.length-1],s;if(r&&r.isText&&(s=/[ \t\r\n\u000c]+$/.exec(r.text))){let i=r;r.text.length==s[0].length?this.content.pop():this.content[this.content.length-1]=i.withText(i.text.slice(0,i.text.length-s[0].length))}}let t=k.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(k.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!Cl.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class ji{constructor(e,t,r){this.parser=e,this.options=t,this.isOpen=r,this.open=0,this.localPreserveWS=!1;let s=t.topNode,i,o=Hi(null,t.preserveWhitespace,0)|(r?Qt:0);s?i=new wn(s.type,s.attrs,B.none,!0,t.topMatch||s.type.contentMatch,o):r?i=new wn(null,null,B.none,!0,null,o):i=new wn(e.schema.topNodeType,null,B.none,!0,null,o),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let r=e.nodeValue,s=this.top,i=s.options&ks?"full":this.localPreserveWS||(s.options&an)>0,{schema:o}=this.parser;if(i==="full"||s.inlineContext(e)||/[^ \t\r\n\u000c]/.test(r)){if(i)if(i==="full")r=r.replace(/\r\n?/g,`
3
3
  `);else if(o.linebreakReplacement&&/[\r\n]/.test(r)&&this.top.findWrapping(o.linebreakReplacement.create())){let l=r.split(/\r?\n|\r/);for(let a=0;a<l.length;a++)a&&this.insertNode(o.linebreakReplacement.create(),t,!0),l[a]&&this.insertNode(o.text(l[a]),t,!/\S/.test(l[a]));r=""}else r=r.replace(/\r?\n|\r/g," ");else if(r=r.replace(/[ \t\r\n\u000c]+/g," "),/^[ \t\r\n\u000c]/.test(r)&&this.open==this.nodes.length-1){let l=s.content[s.content.length-1],a=e.previousSibling;(!l||a&&a.nodeName=="BR"||l.isText&&/[ \t\r\n\u000c]$/.test(l.text))&&(r=r.slice(1))}r&&this.insertNode(o.text(r),t,!/\S/.test(r)),this.findInText(e)}else this.findInside(e)}addElement(e,t,r){let s=this.localPreserveWS,i=this.top;(e.tagName=="PRE"||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let o=e.nodeName.toLowerCase(),l;Ml.hasOwnProperty(o)&&this.parser.normalizeLists&&mu(e);let a=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(l=this.parser.matchTag(e,this,r));e:if(a?a.ignore:pu.hasOwnProperty(o))this.findInside(e),this.ignoreFallback(e,t);else if(!a||a.skip||a.closeParent){a&&a.closeParent?this.open=Math.max(0,this.open-1):a&&a.skip.nodeType&&(e=a.skip);let c,u=this.needsBlock;if(Cl.hasOwnProperty(o))i.content.length&&i.content[0].isInline&&this.open&&(this.open--,i=this.top),c=!0,i.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break e}let d=a&&a.skip?t:this.readStyles(e,t);d&&this.addAll(e,d),c&&this.sync(i),this.needsBlock=u}else{let c=this.readStyles(e,t);c&&this.addElementByRule(e,a,c,a.consuming===!1?l:void 0)}this.localPreserveWS=s}leafFallback(e,t){e.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
4
4
  `),t)}ignoreFallback(e,t){e.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"),t,!0)}readStyles(e,t){let r=e.style;if(r&&r.length)for(let s=0;s<this.parser.matchedStyles.length;s++){let i=this.parser.matchedStyles[s],o=r.getPropertyValue(i);if(o)for(let l=void 0;;){let a=this.parser.matchStyle(i,o,this,l);if(!a)break;if(a.ignore)return null;if(a.clearMark?t=t.filter(c=>!a.clearMark(c)):t=t.concat(this.parser.schema.marks[a.mark].create(a.attrs)),a.consuming===!1)l=a;else break}}return t}addElementByRule(e,t,r,s){let i,o;if(t.node)if(o=this.parser.schema.nodes[t.node],o.isLeaf)this.insertNode(o.create(t.attrs),r,e.nodeName=="BR")||this.leafFallback(e,r);else{let a=this.enter(o,t.attrs||null,r,t.preserveWhitespace);a&&(i=!0,r=a)}else{let a=this.parser.schema.marks[t.mark];r=r.concat(a.create(t.attrs))}let l=this.top;if(o&&o.isLeaf)this.findInside(e);else if(s)this.addElement(e,r,s);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(a=>this.insertNode(a,r,!1));else{let a=e;typeof t.contentElement=="string"?a=e.querySelector(t.contentElement):typeof t.contentElement=="function"?a=t.contentElement(e):t.contentElement&&(a=t.contentElement),this.findAround(e,a,!0),this.addAll(a,r),this.findAround(e,a,!1)}i&&this.sync(l)&&this.open--}addAll(e,t,r,s){let i=r||0;for(let o=r?e.childNodes[r]:e.firstChild,l=s==null?null:e.childNodes[s];o!=l;o=o.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(o,t);this.findAtPoint(e,i)}findPlace(e,t,r){let s,i;for(let o=this.open,l=0;o>=0;o--){let a=this.nodes[o],c=a.findWrapping(e);if(c&&(!s||s.length>c.length+l)&&(s=c,i=a,!c.length))break;if(a.solid){if(r)break;l+=2}}if(!s)return null;this.sync(i);for(let o=0;o<s.length;o++)t=this.enterInner(s[o],null,t,!1);return t}insertNode(e,t,r){if(e.isInline&&this.needsBlock&&!this.top.type){let i=this.textblockFromContext();i&&(t=this.enterInner(i,null,t))}let s=this.findPlace(e,t,r);if(s){this.closeExtra();let i=this.top;i.match&&(i.match=i.match.matchType(e.type));let o=B.none;for(let l of s.concat(e.marks))(i.type?i.type.allowsMarkType(l.type):_i(l.type,e.type))&&(o=l.addToSet(o));return i.content.push(e.mark(o)),!0}return!1}enter(e,t,r,s){let i=this.findPlace(e.create(t),r,!1);return i&&(i=this.enterInner(e,t,r,!0,s)),i}enterInner(e,t,r,s=!1,i){this.closeExtra();let o=this.top;o.match=o.match&&o.match.matchType(e);let l=Hi(e,i,o.options);o.options&Qt&&o.content.length==0&&(l|=Qt);let a=B.none;return r=r.filter(c=>(o.type?o.type.allowsMarkType(c.type):_i(c.type,e))?(a=c.addToSet(a),!1):!0),this.nodes.push(new wn(e,t,a,s,null,l)),this.open++,r}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--){if(this.nodes[t]==e)return this.open=t,!0;this.localPreserveWS&&(this.nodes[t].options|=an)}return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let r=this.nodes[t].content;for(let s=r.length-1;s>=0;s--)e+=r[s].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let r=0;r<this.find.length;r++)this.find[r].node==e&&this.find[r].offset==t&&(this.find[r].pos=this.currentPos)}findInside(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].pos==null&&e.nodeType==1&&e.contains(this.find[t].node)&&(this.find[t].pos=this.currentPos)}findAround(e,t,r){if(e!=t&&this.find)for(let s=0;s<this.find.length;s++)this.find[s].pos==null&&e.nodeType==1&&e.contains(this.find[s].node)&&t.compareDocumentPosition(this.find[s].node)&(r?2:4)&&(this.find[s].pos=this.currentPos)}findInText(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].node==e&&(this.find[t].pos=this.currentPos-(e.nodeValue.length-this.find[t].offset))}matchesContext(e){if(e.indexOf("|")>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split("/"),r=this.options.context,s=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),i=-(r?r.depth+1:0)+(s?0:1),o=(l,a)=>{for(;l>=0;l--){let c=t[l];if(c==""){if(l==t.length-1||l==0)continue;for(;a>=i;a--)if(o(l-1,a))return!0;return!1}else{let u=a>0||a==0&&s?this.nodes[a].type:r&&a>=i?r.node(a-i).type:null;if(!u||u.name!=c&&!u.isInGroup(c))return!1;a--}}return!0};return o(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let r=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(r&&r.isTextblock&&r.defaultAttrs)return r}for(let t in this.parser.schema.nodes){let r=this.parser.schema.nodes[t];if(r.isTextblock&&r.defaultAttrs)return r}}}function mu(n){for(let e=n.firstChild,t=null;e;e=e.nextSibling){let r=e.nodeType==1?e.nodeName.toLowerCase():null;r&&Ml.hasOwnProperty(r)&&t?(t.appendChild(e),e=t):r=="li"?t=e:r&&(t=null)}}function gu(n,e){return(n.matches||n.msMatchesSelector||n.webkitMatchesSelector||n.mozMatchesSelector).call(n,e)}function Wi(n){let e={};for(let t in n)e[t]=n[t];return e}function _i(n,e){let t=e.schema.nodes;for(let r in t){let s=t[r];if(!s.allowsMarkType(n))continue;let i=[],o=l=>{i.push(l);for(let a=0;a<l.edgeCount;a++){let{type:c,next:u}=l.edge(a);if(c==e||i.indexOf(u)<0&&o(u))return!0}};if(o(s.contentMatch))return!0}}class Ct{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},r){r||(r=jr(t).createDocumentFragment());let s=r,i=[];return e.forEach(o=>{if(i.length||o.marks.length){let l=0,a=0;for(;l<i.length&&a<o.marks.length;){let c=o.marks[a];if(!this.marks[c.type.name]){a++;continue}if(!c.eq(i[l][0])||c.type.spec.spanning===!1)break;l++,a++}for(;l<i.length;)s=i.pop()[1];for(;a<o.marks.length;){let c=o.marks[a++],u=this.serializeMark(c,o.isInline,t);u&&(i.push([c,s]),s.appendChild(u.dom),s=u.contentDOM||u.dom)}}s.appendChild(this.serializeNodeInner(o,t))}),r}serializeNodeInner(e,t){let{dom:r,contentDOM:s}=Dn(jr(t),this.nodes[e.type.name](e),null,e.attrs);if(s){if(e.isLeaf)throw new RangeError("Content hole not allowed in a leaf node spec");this.serializeFragment(e.content,t,s)}return r}serializeNode(e,t={}){let r=this.serializeNodeInner(e,t);for(let s=e.marks.length-1;s>=0;s--){let i=this.serializeMark(e.marks[s],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(r),r=i.dom)}return r}serializeMark(e,t,r={}){let s=this.marks[e.type.name];return s&&Dn(jr(r),s(e,t),null,e.attrs)}static renderSpec(e,t,r=null,s){return Dn(e,t,r,s)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new Ct(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let t=Ki(e.nodes);return t.text||(t.text=r=>r.text),t}static marksFromSchema(e){return Ki(e.marks)}}function Ki(n){let e={};for(let t in n){let r=n[t].spec.toDOM;r&&(e[t]=r)}return e}function jr(n){return n.document||window.document}const Ui=new WeakMap;function yu(n){let e=Ui.get(n);return e===void 0&&Ui.set(n,e=ku(n)),e}function ku(n){let e=null;function t(r){if(r&&typeof r=="object")if(Array.isArray(r))if(typeof r[0]=="string")e||(e=[]),e.push(r);else for(let s=0;s<r.length;s++)t(r[s]);else for(let s in r)t(r[s])}return t(n),e}function Dn(n,e,t,r){if(typeof e=="string")return{dom:n.createTextNode(e)};if(e.nodeType!=null)return{dom:e};if(e.dom&&e.dom.nodeType!=null)return e;let s=e[0],i;if(typeof s!="string")throw new RangeError("Invalid array passed to renderSpec");if(r&&(i=yu(r))&&i.indexOf(e)>-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let o=s.indexOf(" ");o>0&&(t=s.slice(0,o),s=s.slice(o+1));let l,a=t?n.createElementNS(t,s):n.createElement(s),c=e[1],u=1;if(c&&typeof c=="object"&&c.nodeType==null&&!Array.isArray(c)){u=2;for(let d in c)if(c[d]!=null){let f=d.indexOf(" ");f>0?a.setAttributeNS(d.slice(0,f),d.slice(f+1),c[d]):d=="style"&&a.style?a.style.cssText=c[d]:a.setAttribute(d,c[d])}}for(let d=u;d<e.length;d++){let f=e[d];if(f===0){if(d<e.length-1||d>u)throw new RangeError("Content hole must be the only child of its parent node");return{dom:a,contentDOM:a}}else{let{dom:h,contentDOM:p}=Dn(n,f,t,r);if(a.appendChild(h),p){if(l)throw new RangeError("Multiple content holes");l=p}}}return{dom:a,contentDOM:l}}const Tl=65535,vl=Math.pow(2,16);function bu(n,e){return n+e*vl}function qi(n){return n&Tl}function xu(n){return(n-(n&Tl))/vl}const El=1,Al=2,Rn=4,Ol=8;class bs{constructor(e,t,r){this.pos=e,this.delInfo=t,this.recover=r}get deleted(){return(this.delInfo&Ol)>0}get deletedBefore(){return(this.delInfo&(El|Rn))>0}get deletedAfter(){return(this.delInfo&(Al|Rn))>0}get deletedAcross(){return(this.delInfo&Rn)>0}}class de{constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&de.empty)return de.empty}recover(e){let t=0,r=qi(e);if(!this.inverted)for(let s=0;s<r;s++)t+=this.ranges[s*3+2]-this.ranges[s*3+1];return this.ranges[r*3]+t+xu(e)}mapResult(e,t=1){return this._map(e,t,!1)}map(e,t=1){return this._map(e,t,!0)}_map(e,t,r){let s=0,i=this.inverted?2:1,o=this.inverted?1:2;for(let l=0;l<this.ranges.length;l+=3){let a=this.ranges[l]-(this.inverted?s:0);if(a>e)break;let c=this.ranges[l+i],u=this.ranges[l+o],d=a+c;if(e<=d){let f=c?e==a?-1:e==d?1:t:t,h=a+s+(f<0?0:u);if(r)return h;let p=e==(t<0?a:d)?null:bu(l/3,e-a),m=e==a?Al:e==d?El:Rn;return(t<0?e!=a:e!=d)&&(m|=Ol),new bs(h,m,p)}s+=u-c}return r?e+s:new bs(e+s,0,null)}touches(e,t){let r=0,s=qi(t),i=this.inverted?2:1,o=this.inverted?1:2;for(let l=0;l<this.ranges.length;l+=3){let a=this.ranges[l]-(this.inverted?r:0);if(a>e)break;let c=this.ranges[l+i],u=a+c;if(e<=u&&l==s*3)return!0;r+=this.ranges[l+o]-c}return!1}forEach(e){let t=this.inverted?2:1,r=this.inverted?1:2;for(let s=0,i=0;s<this.ranges.length;s+=3){let o=this.ranges[s],l=o-(this.inverted?i:0),a=o+(this.inverted?0:i),c=this.ranges[s+t],u=this.ranges[s+r];e(l,l+c,a,a+u),i+=u-c}}invert(){return new de(this.ranges,!this.inverted)}toString(){return(this.inverted?"-":"")+JSON.stringify(this.ranges)}static offset(e){return e==0?de.empty:new de(e<0?[0,-e,0]:[0,0,e])}}de.empty=new de([]);class cn{constructor(e,t,r=0,s=e?e.length:0){this.mirror=t,this.from=r,this.to=s,this._maps=e||[],this.ownData=!(e||t)}get maps(){return this._maps}slice(e=0,t=this.maps.length){return new cn(this._maps,this.mirror,e,t)}appendMap(e,t){this.ownData||(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),this.ownData=!0),this.to=this._maps.push(e),t!=null&&this.setMirror(this._maps.length-1,t)}appendMapping(e){for(let t=0,r=this._maps.length;t<e._maps.length;t++){let s=e.getMirror(t);this.appendMap(e._maps[t],s!=null&&s<t?r+s:void 0)}}getMirror(e){if(this.mirror){for(let t=0;t<this.mirror.length;t++)if(this.mirror[t]==e)return this.mirror[t+(t%2?-1:1)]}}setMirror(e,t){this.mirror||(this.mirror=[]),this.mirror.push(e,t)}appendMappingInverted(e){for(let t=e.maps.length-1,r=this._maps.length+e._maps.length;t>=0;t--){let s=e.getMirror(t);this.appendMap(e._maps[t].invert(),s!=null&&s>t?r-s-1:void 0)}}invert(){let e=new cn;return e.appendMappingInverted(this),e}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let r=this.from;r<this.to;r++)e=this._maps[r].map(e,t);return e}mapResult(e,t=1){return this._map(e,t,!1)}_map(e,t,r){let s=0;for(let i=this.from;i<this.to;i++){let o=this._maps[i],l=o.mapResult(e,t);if(l.recover!=null){let a=this.getMirror(i);if(a!=null&&a>i&&a<this.to){i=a,e=this._maps[a].recover(l.recover);continue}}s|=l.delInfo,e=l.pos}return r?e:new bs(e,s,null)}}const Wr=Object.create(null);class te{getMap(){return de.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw new RangeError("Invalid input for Step.fromJSON");let r=Wr[t.stepType];if(!r)throw new RangeError(`No step type ${t.stepType} defined`);return r.fromJSON(e,t)}static jsonID(e,t){if(e in Wr)throw new RangeError("Duplicate use of step JSON ID "+e);return Wr[e]=t,t.prototype.jsonID=e,t}}class _{constructor(e,t){this.doc=e,this.failed=t}static ok(e){return new _(e,null)}static fail(e){return new _(null,e)}static fromReplace(e,t,r,s){try{return _.ok(e.replace(t,r,s))}catch(i){if(i instanceof $n)return _.fail(i.message);throw i}}}function Ks(n,e,t){let r=[];for(let s=0;s<n.childCount;s++){let i=n.child(s);i.content.size&&(i=i.copy(Ks(i.content,e,i))),i.isInline&&(i=e(i,t,s)),r.push(i)}return k.fromArray(r)}class Je extends te{constructor(e,t,r){super(),this.from=e,this.to=t,this.mark=r}apply(e){let t=e.slice(this.from,this.to),r=e.resolve(this.from),s=r.node(r.sharedDepth(this.to)),i=new S(Ks(t.content,(o,l)=>!o.isAtom||!l.type.allowsMarkType(this.mark.type)?o:o.mark(this.mark.addToSet(o.marks)),s),t.openStart,t.openEnd);return _.fromReplace(e,this.from,this.to,i)}invert(){return new Ce(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deleted&&r.deleted||t.pos>=r.pos?null:new Je(t.pos,r.pos,this.mark)}merge(e){return e instanceof Je&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Je(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new Je(t.from,t.to,e.markFromJSON(t.mark))}}te.jsonID("addMark",Je);class Ce extends te{constructor(e,t,r){super(),this.from=e,this.to=t,this.mark=r}apply(e){let t=e.slice(this.from,this.to),r=new S(Ks(t.content,s=>s.mark(this.mark.removeFromSet(s.marks)),e),t.openStart,t.openEnd);return _.fromReplace(e,this.from,this.to,r)}invert(){return new Je(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deleted&&r.deleted||t.pos>=r.pos?null:new Ce(t.pos,r.pos,this.mark)}merge(e){return e instanceof Ce&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Ce(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new Ce(t.from,t.to,e.markFromJSON(t.mark))}}te.jsonID("removeMark",Ce);class Ge extends te{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return _.fail("No node at mark step's position");let r=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return _.fromReplace(e,this.pos,this.pos+1,new S(k.from(r),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);if(t){let r=this.mark.addToSet(t.marks);if(r.length==t.marks.length){for(let s=0;s<t.marks.length;s++)if(!t.marks[s].isInSet(r))return new Ge(this.pos,t.marks[s]);return new Ge(this.pos,this.mark)}}return new bt(this.pos,this.mark)}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new Ge(t.pos,this.mark)}toJSON(){return{stepType:"addNodeMark",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,t){if(typeof t.pos!="number")throw new RangeError("Invalid input for AddNodeMarkStep.fromJSON");return new Ge(t.pos,e.markFromJSON(t.mark))}}te.jsonID("addNodeMark",Ge);class bt extends te{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return _.fail("No node at mark step's position");let r=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return _.fromReplace(e,this.pos,this.pos+1,new S(k.from(r),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new Ge(this.pos,this.mark)}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new bt(t.pos,this.mark)}toJSON(){return{stepType:"removeNodeMark",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,t){if(typeof t.pos!="number")throw new RangeError("Invalid input for RemoveNodeMarkStep.fromJSON");return new bt(t.pos,e.markFromJSON(t.mark))}}te.jsonID("removeNodeMark",bt);class q extends te{constructor(e,t,r,s=!1){super(),this.from=e,this.to=t,this.slice=r,this.structure=s}apply(e){return this.structure&&xs(e,this.from,this.to)?_.fail("Structure replace would overwrite content"):_.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new de([this.from,this.to-this.from,this.slice.size])}invert(e){return new q(this.from,this.from+this.slice.size,e.slice(this.from,this.to))}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1);return t.deletedAcross&&r.deletedAcross?null:new q(t.pos,Math.max(t.pos,r.pos),this.slice,this.structure)}merge(e){if(!(e instanceof q)||e.structure||this.structure)return null;if(this.from+this.slice.size==e.from&&!this.slice.openEnd&&!e.slice.openStart){let t=this.slice.size+e.slice.size==0?S.empty:new S(this.slice.content.append(e.slice.content),this.slice.openStart,e.slice.openEnd);return new q(this.from,this.to+(e.to-e.from),t,this.structure)}else if(e.to==this.from&&!this.slice.openStart&&!e.slice.openEnd){let t=this.slice.size+e.slice.size==0?S.empty:new S(e.slice.content.append(this.slice.content),e.slice.openStart,this.slice.openEnd);return new q(e.from,this.to,t,this.structure)}else return null}toJSON(){let e={stepType:"replace",from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number")throw new RangeError("Invalid input for ReplaceStep.fromJSON");return new q(t.from,t.to,S.fromJSON(e,t.slice),!!t.structure)}}te.jsonID("replace",q);class J extends te{constructor(e,t,r,s,i,o,l=!1){super(),this.from=e,this.to=t,this.gapFrom=r,this.gapTo=s,this.slice=i,this.insert=o,this.structure=l}apply(e){if(this.structure&&(xs(e,this.from,this.gapFrom)||xs(e,this.gapTo,this.to)))return _.fail("Structure gap-replace would overwrite content");let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return _.fail("Gap is not a flat range");let r=this.slice.insertAt(this.insert,t.content);return r?_.fromReplace(e,this.from,this.to,r):_.fail("Content does not fit in gap")}getMap(){return new de([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(e){let t=this.gapTo-this.gapFrom;return new J(this.from,this.from+this.slice.size+t,this.from+this.insert,this.from+this.insert+t,e.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(e){let t=e.mapResult(this.from,1),r=e.mapResult(this.to,-1),s=this.from==this.gapFrom?t.pos:e.map(this.gapFrom,-1),i=this.to==this.gapTo?r.pos:e.map(this.gapTo,1);return t.deletedAcross&&r.deletedAcross||s<t.pos||i>r.pos?null:new J(t.pos,r.pos,s,i,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if(typeof t.from!="number"||typeof t.to!="number"||typeof t.gapFrom!="number"||typeof t.gapTo!="number"||typeof t.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new J(t.from,t.to,t.gapFrom,t.gapTo,S.fromJSON(e,t.slice),t.insert,!!t.structure)}}te.jsonID("replaceAround",J);function xs(n,e,t){let r=n.resolve(e),s=t-e,i=r.depth;for(;s>0&&i>0&&r.indexAfter(i)==r.node(i).childCount;)i--,s--;if(s>0){let o=r.node(i).maybeChild(r.indexAfter(i));for(;s>0;){if(!o||o.isLeaf)return!0;o=o.firstChild,s--}}return!1}function Su(n,e,t,r){let s=[],i=[],o,l;n.doc.nodesBetween(e,t,(a,c,u)=>{if(!a.isInline)return;let d=a.marks;if(!r.isInSet(d)&&u.type.allowsMarkType(r.type)){let f=Math.max(c,e),h=Math.min(c+a.nodeSize,t),p=r.addToSet(d);for(let m=0;m<d.length;m++)d[m].isInSet(p)||(o&&o.to==f&&o.mark.eq(d[m])?o.to=h:s.push(o=new Ce(f,h,d[m])));l&&l.to==f?l.to=h:i.push(l=new Je(f,h,r))}}),s.forEach(a=>n.step(a)),i.forEach(a=>n.step(a))}function wu(n,e,t,r){let s=[],i=0;n.doc.nodesBetween(e,t,(o,l)=>{if(!o.isInline)return;i++;let a=null;if(r instanceof Tr){let c=o.marks,u;for(;u=r.isInSet(c);)(a||(a=[])).push(u),c=u.removeFromSet(c)}else r?r.isInSet(o.marks)&&(a=[r]):a=o.marks;if(a&&a.length){let c=Math.min(l+o.nodeSize,t);for(let u=0;u<a.length;u++){let d=a[u],f;for(let h=0;h<s.length;h++){let p=s[h];p.step==i-1&&d.eq(s[h].style)&&(f=p)}f?(f.to=c,f.step=i):s.push({style:d,from:Math.max(l,e),to:c,step:i})}}}),s.forEach(o=>n.step(new Ce(o.from,o.to,o.style)))}function Us(n,e,t,r=t.contentMatch,s=!0){let i=n.doc.nodeAt(e),o=[],l=e+1;for(let a=0;a<i.childCount;a++){let c=i.child(a),u=l+c.nodeSize,d=r.matchType(c.type);if(!d)o.push(new q(l,u,S.empty));else{r=d;for(let f=0;f<c.marks.length;f++)t.allowsMarkType(c.marks[f].type)||n.step(new Ce(l,u,c.marks[f]));if(s&&c.isText&&t.whitespace!="pre"){let f,h=/\r?\n|\r/g,p;for(;f=h.exec(c.text);)p||(p=new S(k.from(t.schema.text(" ",t.allowedMarks(c.marks))),0,0)),o.push(new q(l+f.index,l+f.index+f[0].length,p))}}l=u}if(!r.validEnd){let a=r.fillBefore(k.empty,!0);n.replace(l,l,new S(a,0,0))}for(let a=o.length-1;a>=0;a--)n.step(o[a])}function Cu(n,e,t){return(e==0||n.canReplace(e,n.childCount))&&(t==n.childCount||n.canReplace(0,t))}function jt(n){let t=n.parent.content.cutByIndex(n.startIndex,n.endIndex);for(let r=n.depth,s=0,i=0;;--r){let o=n.$from.node(r),l=n.$from.index(r)+s,a=n.$to.indexAfter(r)-i;if(r<n.depth&&o.canReplace(l,a,t))return r;if(r==0||o.type.spec.isolating||!Cu(o,l,a))break;l&&(s=1),a<o.childCount&&(i=1)}return null}function Mu(n,e,t){let{$from:r,$to:s,depth:i}=e,o=r.before(i+1),l=s.after(i+1),a=o,c=l,u=k.empty,d=0;for(let p=i,m=!1;p>t;p--)m||r.index(p)>0?(m=!0,u=k.from(r.node(p).copy(u)),d++):a--;let f=k.empty,h=0;for(let p=i,m=!1;p>t;p--)m||s.after(p+1)<s.end(p)?(m=!0,f=k.from(s.node(p).copy(f)),h++):c++;n.step(new J(a,c,o,l,new S(u.append(f),d,h),u.size-d,!0))}function qs(n,e,t=null,r=n){let s=Tu(n,e),i=s&&vu(r,e);return i?s.map(Ji).concat({type:e,attrs:t}).concat(i.map(Ji)):null}function Ji(n){return{type:n,attrs:null}}function Tu(n,e){let{parent:t,startIndex:r,endIndex:s}=n,i=t.contentMatchAt(r).findWrapping(e);if(!i)return null;let o=i.length?i[0]:e;return t.canReplaceWith(r,s,o)?i:null}function vu(n,e){let{parent:t,startIndex:r,endIndex:s}=n,i=t.child(r),o=e.contentMatch.findWrapping(i.type);if(!o)return null;let a=(o.length?o[o.length-1]:e).contentMatch;for(let c=r;a&&c<s;c++)a=a.matchType(t.child(c).type);return!a||!a.validEnd?null:o}function Eu(n,e,t){let r=k.empty;for(let o=t.length-1;o>=0;o--){if(r.size){let l=t[o].type.contentMatch.matchFragment(r);if(!l||!l.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}r=k.from(t[o].type.create(t[o].attrs,r))}let s=e.start,i=e.end;n.step(new J(s,i,s,i,new S(r,0,0),t.length,!0))}function Au(n,e,t,r,s){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let i=n.steps.length;n.doc.nodesBetween(e,t,(o,l)=>{let a=typeof s=="function"?s(o):s;if(o.isTextblock&&!o.hasMarkup(r,a)&&Ou(n.doc,n.mapping.slice(i).map(l),r)){let c=null;if(r.schema.linebreakReplacement){let h=r.whitespace=="pre",p=!!r.contentMatch.matchType(r.schema.linebreakReplacement);h&&!p?c=!1:!h&&p&&(c=!0)}c===!1&&Il(n,o,l,i),Us(n,n.mapping.slice(i).map(l,1),r,void 0,c===null);let u=n.mapping.slice(i),d=u.map(l,1),f=u.map(l+o.nodeSize,1);return n.step(new J(d,f,d+1,f-1,new S(k.from(r.create(a,null,o.marks)),0,0),1,!0)),c===!0&&Nl(n,o,l,i),!1}})}function Nl(n,e,t,r){e.forEach((s,i)=>{if(s.isText){let o,l=/\r?\n|\r/g;for(;o=l.exec(s.text);){let a=n.mapping.slice(r).map(t+1+i+o.index);n.replaceWith(a,a+1,e.type.schema.linebreakReplacement.create())}}})}function Il(n,e,t,r){e.forEach((s,i)=>{if(s.type==s.type.schema.linebreakReplacement){let o=n.mapping.slice(r).map(t+1+i);n.replaceWith(o,o+1,e.type.schema.text(`