modoboa 2.5.0__py3-none-any.whl → 2.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. modoboa/admin/api/v2/serializers.py +1 -1
  2. modoboa/admin/models/domain.py +1 -1
  3. modoboa/admin/models/mixins.py +3 -1
  4. modoboa/amavis/serializers.py +1 -1
  5. modoboa/autoconfig/__init__.py +0 -0
  6. modoboa/autoconfig/apps.py +6 -0
  7. modoboa/autoconfig/templates/autoconfig/autoconfig.xml +24 -0
  8. modoboa/autoconfig/templates/autoconfig/autodiscover.xml +27 -0
  9. modoboa/autoconfig/tests.py +38 -0
  10. modoboa/autoconfig/urls.py +21 -0
  11. modoboa/autoconfig/views.py +109 -0
  12. modoboa/autoreply/api/v2/tests.py +4 -4
  13. modoboa/calendars/tests.py +8 -8
  14. modoboa/contacts/tests.py +5 -7
  15. modoboa/core/api/v1/tests.py +2 -2
  16. modoboa/core/api/v2/views.py +3 -1
  17. modoboa/core/commands/deploy.py +3 -0
  18. modoboa/core/commands/templates/settings.py.tpl +26 -12
  19. modoboa/core/models.py +1 -1
  20. modoboa/core/tests/test_ldap.py +2 -0
  21. modoboa/core/views/auth.py +27 -8
  22. modoboa/frontend_dist/assets/{AccountAliasForm-BuSy_1n9.js → AccountAliasForm-Bu1I8sLg.js} +1 -1
  23. modoboa/frontend_dist/assets/{AccountEditView-qdJmLM_e.js → AccountEditView-YOpDW-Ob.js} +1 -1
  24. modoboa/frontend_dist/assets/AccountLayout-Cf_FVfvJ.js +1 -0
  25. modoboa/frontend_dist/assets/{AccountPasswordSubForm-DZGt_Xgq.js → AccountPasswordSubForm-B9X5wAXp.js} +1 -1
  26. modoboa/frontend_dist/assets/{AccountView-CO65y0vZ.js → AccountView-DCqbD7oi.js} +1 -1
  27. modoboa/frontend_dist/assets/{AddressBook-BZNUlhek.js → AddressBook-B53LXIsD.js} +1 -1
  28. modoboa/frontend_dist/assets/AdminLayout-DX-RXYiU.js +1 -0
  29. modoboa/frontend_dist/assets/AlarmsView-C0KvogOj.js +1 -0
  30. modoboa/frontend_dist/assets/AliasEditView-BiMPygn9.js +1 -0
  31. modoboa/frontend_dist/assets/AliasEditView-CYDSiX8l.css +1 -0
  32. modoboa/frontend_dist/assets/AliasRecipientForm-BhQfATiS.js +1 -0
  33. modoboa/frontend_dist/assets/{AliasView-GOJ5lyQH.js → AliasView-eIct4lMV.js} +1 -1
  34. modoboa/frontend_dist/assets/{AuditTrailView-fbXmq70e.js → AuditTrailView-FiUNTjpE.js} +1 -1
  35. modoboa/frontend_dist/assets/{CalendarView-LlQQNEPL.js → CalendarView-DbWVDoWq.js} +1 -1
  36. modoboa/frontend_dist/assets/{ChoiceField-B3ReQHVe.js → ChoiceField-17aCFpF6.js} +1 -1
  37. modoboa/frontend_dist/assets/{ComposeEmailForm-Bs1fZXAL.js → ComposeEmailForm-B-BP3lzX.js} +1 -1
  38. modoboa/frontend_dist/assets/ComposeEmailView-6JrFhK1W.js +1 -0
  39. modoboa/frontend_dist/assets/ConfirmDialog-Dr0i2kqK.js +1 -0
  40. modoboa/frontend_dist/assets/ConnectedLayout-irTI2ekJ.js +1 -0
  41. modoboa/frontend_dist/assets/{CreationForm-ORg3fazt.js → CreationForm-BZMhQOez.js} +1 -1
  42. modoboa/frontend_dist/assets/DashboardView-CBpsEG3P.js +1 -0
  43. modoboa/frontend_dist/assets/{DomainAdminList-DVn9x0rB.js → DomainAdminList-BikGujRD.js} +1 -1
  44. modoboa/frontend_dist/assets/{DomainEditView-nAoL64D_.js → DomainEditView-SOvfeZWo.js} +1 -1
  45. modoboa/frontend_dist/assets/{DomainTransportForm-CA-DNUxX.js → DomainTransportForm-CmFZ1Cxm.js} +1 -1
  46. modoboa/frontend_dist/assets/{DomainView-CdXPpwJG.js → DomainView-DasOm4jM.js} +3 -3
  47. modoboa/frontend_dist/assets/{DomainsView-B_59gowf.js → DomainsView-DVJA4-oN.js} +1 -1
  48. modoboa/frontend_dist/assets/{EmailField-CwcwI5xW.js → EmailField-DpBYkqam.js} +1 -1
  49. modoboa/frontend_dist/assets/{EmailView-BshxcfAK.js → EmailView-D9vO7HHB.js} +1 -1
  50. modoboa/frontend_dist/assets/EmptyLayout-Dz3F8c7x.js +1 -0
  51. modoboa/frontend_dist/assets/{FiltersView-Cf20MSTK.js → FiltersView-FjdtF4HL.js} +1 -1
  52. modoboa/frontend_dist/assets/ForwardEmailView-DF5BQJjL.js +1 -0
  53. modoboa/frontend_dist/assets/{HtmlEditor-Bh4c689R.js → HtmlEditor-Zn0wjDog.js} +1 -1
  54. modoboa/frontend_dist/assets/{IdentitiesView-BXAuU1YX.js → IdentitiesView-Cf5eQoKA.js} +1 -1
  55. modoboa/frontend_dist/assets/{IdentitiesView-DPrrRMS5.css → IdentitiesView-D3AAiZLZ.css} +1 -1
  56. modoboa/frontend_dist/assets/{InformationView-Cn5FZW7H.js → InformationView-gEYTQ37R.js} +1 -1
  57. modoboa/frontend_dist/assets/{LoadingData-CdVvm4FI.js → LoadingData-Cxd490P6.js} +1 -1
  58. modoboa/frontend_dist/assets/LoginCallbackView-C9zhejHH.js +1 -0
  59. modoboa/frontend_dist/assets/{LoginView-tHIR4Adc.js → LoginView-sWEH834U.js} +1 -1
  60. modoboa/frontend_dist/assets/{MailboxView-B-aI4XBq.css → MailboxView-CfStlWhk.css} +1 -1
  61. modoboa/frontend_dist/assets/MailboxView-Dn3iDym9.js +1 -0
  62. modoboa/frontend_dist/assets/{MenuItems-PXjiG-fs.js → MenuItems-BRChEdLp.js} +1 -1
  63. modoboa/frontend_dist/assets/{MessageView-Cy4STShm.js → MessageView-CDbJxbxm.js} +1 -1
  64. modoboa/frontend_dist/assets/{MessagesView-DdkuEgfX.js → MessagesView-C_vBxVzN.js} +1 -1
  65. modoboa/frontend_dist/assets/{MigrationsView-CidSEjCF.js → MigrationsView-D6peiQuR.js} +1 -1
  66. modoboa/frontend_dist/assets/{ParametersForm-CAv4SH-E.js → ParametersForm-Dip8Sobe.js} +1 -1
  67. modoboa/frontend_dist/assets/ParametersView-CwI0-9kV.js +1 -0
  68. modoboa/frontend_dist/assets/ParametersView-wFKfiEVR.js +1 -0
  69. modoboa/frontend_dist/assets/{ProviderEditView-CrltAQXl.js → ProviderEditView-EH2NSz3x.js} +1 -1
  70. modoboa/frontend_dist/assets/{ProviderGeneralForm-BYAzVnXM.js → ProviderGeneralForm-CAVNOJp6.js} +1 -1
  71. modoboa/frontend_dist/assets/{ProvidersView-osjIY4Ex.js → ProvidersView-BoH99d3a.js} +1 -1
  72. modoboa/frontend_dist/assets/QuarantineLayout--4g9urq2.js +1 -0
  73. modoboa/frontend_dist/assets/{QuarantineView-D8Qg0MXA.js → QuarantineView-BDzDrWwK.js} +1 -1
  74. modoboa/frontend_dist/assets/ReplyEmailView-D0VgYBnw.js +1 -0
  75. modoboa/frontend_dist/assets/ResourcesForm-C1YGkT8i.js +1 -0
  76. modoboa/frontend_dist/assets/SelfServiceLayout-BYkSLc4n.js +1 -0
  77. modoboa/frontend_dist/assets/{SettingsView-9iNcDhkI.js → SettingsView-Cy5O-88Y.js} +1 -1
  78. modoboa/frontend_dist/assets/{StatisticsView-cHsPyGkL.js → StatisticsView-DtlBQK9z.js} +1 -1
  79. modoboa/frontend_dist/assets/{TimeSerieChart--V83dcJ9.js → TimeSerieChart-DNjvmMDE.js} +1 -1
  80. modoboa/frontend_dist/assets/{TimeSerieChart-CxiwMzE8.css → TimeSerieChart-Dn6Wznn8.css} +1 -1
  81. modoboa/frontend_dist/assets/UserLayout-Cgqq7HVi.js +1 -0
  82. modoboa/frontend_dist/assets/{VAlert-BuaaYN2h.js → VAlert-x6n3drjw.js} +1 -1
  83. modoboa/frontend_dist/assets/{VApp-CKP-6zGP.js → VApp-C74A9rX5.js} +1 -1
  84. modoboa/frontend_dist/assets/{VAutocomplete-Dwv6_Rzq.js → VAutocomplete-Bg2AlW_n.js} +1 -1
  85. modoboa/frontend_dist/assets/{VAvatar-Cmga0vj6.js → VAvatar-J563boKh.js} +1 -1
  86. modoboa/frontend_dist/assets/{VBadge-CixeK87a.js → VBadge-CtEsXuih.js} +1 -1
  87. modoboa/frontend_dist/assets/{VCard-CxH9DWoK.js → VCard-CJ2oGh_i.js} +1 -1
  88. modoboa/frontend_dist/assets/{VCheckbox-62GOpvvP.js → VCheckbox-VicuXIJq.js} +1 -1
  89. modoboa/frontend_dist/assets/{VCheckboxBtn-DMoNtKT8.js → VCheckboxBtn-CLh3m66z.js} +1 -1
  90. modoboa/frontend_dist/assets/{VChip-D_styETR.js → VChip-DvxO74Mw.js} +1 -1
  91. modoboa/frontend_dist/assets/VColorPicker-DcVohVWE.js +1 -0
  92. modoboa/frontend_dist/assets/{VContainer-B46caNs1.js → VContainer-L2EoH3dT.js} +1 -1
  93. modoboa/frontend_dist/assets/{VDataTable-Bh8NbVSx.js → VDataTable-CAT0QYJz.js} +1 -1
  94. modoboa/frontend_dist/assets/{VDataTableServer-BDR5hOmo.js → VDataTableServer-DP13Fhfa.js} +1 -1
  95. modoboa/frontend_dist/assets/{VDataTableVirtual-BOQlNtIG.js → VDataTableVirtual-LVNemzH7.js} +1 -1
  96. modoboa/frontend_dist/assets/{VDialog-BcTg7w6P.js → VDialog-CaQnQSDn.js} +1 -1
  97. modoboa/frontend_dist/assets/{VExpansionPanels-BmH5Jl2Z.js → VExpansionPanels-Dnwgt5uT.js} +1 -1
  98. modoboa/frontend_dist/assets/{VFileInput-BC4yAygd.js → VFileInput-z44hJIWr.js} +1 -1
  99. modoboa/frontend_dist/assets/{VForm-D5iPGkde.js → VForm-BwTUBf4u.js} +1 -1
  100. modoboa/frontend_dist/assets/{VInput-CoDJzvaW.js → VInput-Dpmea5z9.js} +1 -1
  101. modoboa/frontend_dist/assets/{VMenu-gUG70-zD.js → VMenu-DDmBlbM8.js} +1 -1
  102. modoboa/frontend_dist/assets/{VPicker-BXuKT3zB.js → VPicker-Dz7GbXwU.js} +1 -1
  103. modoboa/frontend_dist/assets/{VProgressCircular-BtOPiGCg.js → VProgressCircular-CtqQON49.js} +1 -1
  104. modoboa/frontend_dist/assets/{VRadioGroup-DIFZKSn-.js → VRadioGroup-WW8uMAv4.js} +1 -1
  105. modoboa/frontend_dist/assets/{VRow-ozg66L7j.js → VRow-CAbOSEHS.js} +1 -1
  106. modoboa/frontend_dist/assets/{VSelect-C3RjAa45.js → VSelect-Cdh0qO5m.js} +1 -1
  107. modoboa/frontend_dist/assets/{VSelectionControl-zyz-fJvC.js → VSelectionControl-BN-zQ3C6.js} +1 -1
  108. modoboa/frontend_dist/assets/{VSheet-BNx2X4Mk.js → VSheet-9RDZpWCf.js} +1 -1
  109. modoboa/frontend_dist/assets/VSpacer-BWZq1PhD.js +1 -0
  110. modoboa/frontend_dist/assets/{VSwitch-DwxdeAEq.js → VSwitch-CixaedmQ.js} +1 -1
  111. modoboa/frontend_dist/assets/{VTable-DaLxa4FO.js → VTable-DO7ofPSj.js} +1 -1
  112. modoboa/frontend_dist/assets/{VTabs-BP0Hgsgm.js → VTabs-C1-E1DJE.js} +1 -1
  113. modoboa/frontend_dist/assets/{VTextField-XoGTj1KG.js → VTextField-C9VUP7V9.js} +1 -1
  114. modoboa/frontend_dist/assets/{VTextarea-wBlRMIv_.js → VTextarea-B28SmJ2v.js} +1 -1
  115. modoboa/frontend_dist/assets/{VToolbar-CFZfqeOr.js → VToolbar-Cs-fVa4M.js} +1 -1
  116. modoboa/frontend_dist/assets/VWindowItem-C9PFEbE6.js +1 -0
  117. modoboa/frontend_dist/assets/WebmailLayout-Dp6jIazW.js +1 -0
  118. modoboa/frontend_dist/assets/{accounts-DUzbx6k8.js → accounts-BT429O7P.js} +1 -1
  119. modoboa/frontend_dist/assets/{admin-DewTk2H8.js → admin-Cu5rjY7m.js} +1 -1
  120. modoboa/frontend_dist/assets/{aliases-4sXmjwXp.js → aliases-Q4uTcEh4.js} +1 -1
  121. modoboa/frontend_dist/assets/{amavis-CC0li7_T.js → amavis-Be87kCqw.js} +1 -1
  122. modoboa/frontend_dist/assets/{amavis-DK8SHE6o.js → amavis-Bx0pxvRn.js} +1 -1
  123. modoboa/frontend_dist/assets/{contacts-BjghrPqZ.js → contacts-Dx240BT8.js} +1 -1
  124. modoboa/frontend_dist/assets/{domains-BSawReeu.js → domains-CQv8gtbQ.js} +1 -1
  125. modoboa/frontend_dist/assets/{domains.store-D-vWCEIK.js → domains.store-CfpnnBGo.js} +1 -1
  126. modoboa/frontend_dist/assets/{filter-C82FUCw_.js → filter-C_GJovn5.js} +1 -1
  127. modoboa/frontend_dist/assets/{forwardRefs-cvcnlhoK.js → forwardRefs-DPrLRqxP.js} +1 -1
  128. modoboa/frontend_dist/assets/{global.store-DbkcI5o2.js → global.store-CNChIxQL.js} +1 -1
  129. modoboa/frontend_dist/assets/importExport-7sRHU_3R.js +1 -0
  130. modoboa/frontend_dist/assets/index-YIGRKgNA.js +982 -0
  131. modoboa/frontend_dist/assets/{layout-C5FyYCHK.js → layout-BM4C5b2r.js} +1 -1
  132. modoboa/frontend_dist/assets/{layout.store-NXWtFIwL.js → layout.store-CCOp6tv6.js} +1 -1
  133. modoboa/frontend_dist/assets/{logos-BswdveCV.js → logos-CboXciB_.js} +1 -1
  134. modoboa/frontend_dist/assets/{logs-6CbtfaZS.js → logs-BeuijmJA.js} +1 -1
  135. modoboa/frontend_dist/assets/{parameters-aSQiR7kN.js → parameters-DpVw-Zs4.js} +1 -1
  136. modoboa/frontend_dist/assets/{parameters.store-CzQqVatx.js → parameters.store-DRarkO6b.js} +1 -1
  137. modoboa/frontend_dist/assets/{permissions-DNoefz-n.js → permissions-C33K6cJv.js} +1 -1
  138. modoboa/frontend_dist/assets/{ssrBoot-CKUX4kcb.js → ssrBoot-CpJ-7WlH.js} +1 -1
  139. modoboa/frontend_dist/assets/{tag-B_yWNNJD.js → tag-DV1_zOzl.js} +1 -1
  140. modoboa/frontend_dist/assets/theme-BGzdVPko.js +1 -0
  141. modoboa/frontend_dist/assets/transports-B9mWU1W8.js +1 -0
  142. modoboa/frontend_dist/assets/{webmail-CdU6CD9b.js → webmail-DRyN8JIK.js} +1 -1
  143. modoboa/frontend_dist/index.html +1 -1
  144. modoboa/static/css/offline.css +7 -20
  145. modoboa/templates/registration/base.html +18 -0
  146. modoboa/templates/registration/login.html +1 -1
  147. modoboa/urls.py +1 -0
  148. modoboa/webmail/lib/imaputils.py +2 -2
  149. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/METADATA +6 -6
  150. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/RECORD +155 -147
  151. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/licenses/LICENSE +1 -1
  152. modoboa/frontend_dist/assets/AccountLayout-DrN7vHsX.js +0 -1
  153. modoboa/frontend_dist/assets/AdminLayout-CTNhuwTw.js +0 -1
  154. modoboa/frontend_dist/assets/AlarmsView-DN_JIw9g.js +0 -1
  155. modoboa/frontend_dist/assets/AliasEditView-Cx9410JP.css +0 -1
  156. modoboa/frontend_dist/assets/AliasEditView-DjpPUTp9.js +0 -1
  157. modoboa/frontend_dist/assets/AliasRecipientForm-B1Y8wFdP.js +0 -1
  158. modoboa/frontend_dist/assets/ComposeEmailView-s3LMl3pO.js +0 -1
  159. modoboa/frontend_dist/assets/ConfirmDialog-DY_kUHLG.js +0 -1
  160. modoboa/frontend_dist/assets/ConnectedLayout-UWjiYBNw.js +0 -1
  161. modoboa/frontend_dist/assets/DashboardView-Dplk9itS.js +0 -1
  162. modoboa/frontend_dist/assets/EmptyLayout-DFfhnhLi.js +0 -1
  163. modoboa/frontend_dist/assets/ForwardEmailView-CZG062os.js +0 -1
  164. modoboa/frontend_dist/assets/LoginCallbackView-B9hAH4MI.js +0 -1
  165. modoboa/frontend_dist/assets/MailboxView-Bugu2vhg.js +0 -1
  166. modoboa/frontend_dist/assets/ParametersView-CX7Ffemw.js +0 -1
  167. modoboa/frontend_dist/assets/ParametersView-CrbNcmV3.js +0 -1
  168. modoboa/frontend_dist/assets/QuarantineLayout-B8EcU9vS.js +0 -1
  169. modoboa/frontend_dist/assets/ReplyEmailView-BABPqWhd.js +0 -1
  170. modoboa/frontend_dist/assets/ResourcesForm-OaqdRYVs.js +0 -1
  171. modoboa/frontend_dist/assets/SelfServiceLayout-d277YTGR.js +0 -1
  172. modoboa/frontend_dist/assets/UserLayout-B3sBiTcZ.js +0 -1
  173. modoboa/frontend_dist/assets/VColorPicker-BHscBGQV.js +0 -1
  174. modoboa/frontend_dist/assets/VSpacer-DinPiXs9.js +0 -1
  175. modoboa/frontend_dist/assets/VWindowItem-BB7ETW3b.js +0 -1
  176. modoboa/frontend_dist/assets/WebmailLayout-_Hk1XhVq.js +0 -1
  177. modoboa/frontend_dist/assets/importExport-DzoL4Mvc.js +0 -1
  178. modoboa/frontend_dist/assets/index-BImkz5Jx.js +0 -984
  179. modoboa/frontend_dist/assets/transports-BDNB9wR5.js +0 -1
  180. {modoboa-2.5.0.data → modoboa-2.6.0.data}/scripts/modoboa-admin.py +0 -0
  181. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/WHEEL +0 -0
  182. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/entry_points.txt +0 -0
  183. {modoboa-2.5.0.dist-info → modoboa-2.6.0.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- import{d as U}from"./domains-BSawReeu.js";import{b as O,n as ae,g as m,h as L,d as te,c as w,o as V,w as l,a as t,p as Ve,e as D,t as v,f as r,m as M,k as x,q as me,l as I,F as ue,_ as de,s as be,v as P,r as ge,x as ke}from"./index-BImkz5Jx.js";import{u as pe}from"./permissions-DNoefz-n.js";import{V as ce,r as X}from"./VForm-D5iPGkde.js";import{c as xe,V as we,b as De,a as fe}from"./VCard-CxH9DWoK.js";import{V as le}from"./VTextField-XoGTj1KG.js";import{V as Ce}from"./VSelect-C3RjAa45.js";import{V as J}from"./VSwitch-DwxdeAEq.js";import{V as he}from"./VSpacer-DinPiXs9.js";import{V as $,a as ne}from"./VAvatar-Cmga0vj6.js";import{p as Ae}from"./parameters-aSQiR7kN.js";import{_ as $e}from"./CreationForm-ORg3fazt.js";import{_ as Se,a as Ne,b as Ue,c as Fe}from"./DomainTransportForm-CA-DNUxX.js";import{_ as qe}from"./AccountPasswordSubForm-DZGt_Xgq.js";import{a as E,V as ie}from"./VRow-ozg66L7j.js";import{_ as Le,a as Te}from"./DomainAdminList-DVn9x0rB.js";import{_ as Ee}from"./ConfirmDialog-DY_kUHLG.js";import{V as Z}from"./VChip-D_styETR.js";import{_ as Ie}from"./MenuItems-PXjiG-fs.js";import{V as ee}from"./VMenu-gUG70-zD.js";import{V as Oe}from"./VBadge-CixeK87a.js";import{V as ve,a as Re}from"./VToolbar-CFZfqeOr.js";import{V as _e,a as se,b as re}from"./forwardRefs-cvcnlhoK.js";import{V as Me}from"./VDataTable-Bh8NbVSx.js";import{V as ze}from"./VCheckbox-62GOpvvP.js";import{V as R}from"./VDialog-BcTg7w6P.js";import{_ as Be,i as Pe}from"./importExport-DzoL4Mvc.js";import"./tag-B_yWNNJD.js";import"./VInput-CoDJzvaW.js";import"./VProgressCircular-BtOPiGCg.js";import"./VCheckboxBtn-DMoNtKT8.js";import"./VSelectionControl-zyz-fJvC.js";/* empty css */import"./logos-BswdveCV.js";import"./VWindowItem-BB7ETW3b.js";import"./ssrBoot-CKUX4kcb.js";import"./VContainer-B46caNs1.js";import"./VSheet-BNx2X4Mk.js";import"./ChoiceField-B3ReQHVe.js";import"./transports-BDNB9wR5.js";import"./VAutocomplete-Dwv6_Rzq.js";import"./filter-C82FUCw_.js";import"./accounts-DUzbx6k8.js";import"./VAlert-BuaaYN2h.js";import"./VDataTableVirtual-BOQlNtIG.js";import"./VTable-DaLxa4FO.js";import"./VFileInput-BC4yAygd.js";const Je={class:"headline"},je={class:"m-label"},Ge={class:"m-label"},ye={__name:"DomainAliasForm",props:{domainAlias:{type:Object,default:()=>null}},emits:["close"],setup(S,{emit:b}){const{$gettext:e}=O(),c=b,{displayNotification:k}=ae(),_=S,h=m([]),a=m({enabled:!0}),u=m(!1),A=m(),C=L(()=>_.domainAlias?e("Update"):e("Add")),f=L(()=>_.domainAlias?e("Edit domain alias"):e("Add a new domain alias"));async function y(){u.value=!0;try{await U.deleteDomainAlias(_.domainAlias.pk),k({msg:e("Domain alias deleted")}),c("close")}finally{u.value=!1}}async function N(){const{valid:g}=await A.value.validate();if(g){u.value=!0;try{if(!a.value.pk)await U.createDomainAlias(a.value),k({msg:e("Domain alias created")});else{const s=JSON.parse(JSON.stringify(a.value));await U.updateDomainAlias(_.domainAlias.pk,s),k({msg:e("Domain alias updated")})}c("close")}finally{u.value=!1}}}return te(()=>{U.getDomains().then(g=>{h.value=g.data}),_.domainAlias&&(a.value=JSON.parse(JSON.stringify(_.domainAlias)))}),(g,s)=>(V(),w(fe,null,{default:l(()=>[t(ce,{ref_key:"vFormRef",ref:A,onSubmit:Ve(N,["prevent"])},{default:l(()=>[t(xe,null,{default:l(()=>[D("span",Je,v(f.value),1)]),_:1}),t(we,null,{default:l(()=>[D("label",je,v(r(e)("Name")),1),t(le,{modelValue:a.value.name,"onUpdate:modelValue":s[0]||(s[0]=d=>a.value.name=d),variant:"outlined",density:"compact",rules:[r(X).required]},null,8,["modelValue","rules"]),D("label",Ge,v(r(e)("Choose a domain")),1),t(Ce,{modelValue:a.value.target,"onUpdate:modelValue":s[1]||(s[1]=d=>a.value.target=d),items:h.value,"item-title":"name","item-value":"pk",rules:[r(X).required],"single-line":"",variant:"outlined",density:"compact"},null,8,["modelValue","items","rules"]),t(J,{modelValue:a.value.enabled,"onUpdate:modelValue":s[2]||(s[2]=d=>a.value.enabled=d),label:"Enabled",color:"primary"},null,8,["modelValue"])]),_:1}),t(De,null,{default:l(()=>[t(he),t($,{loading:u.value,onClick:s[3]||(s[3]=d=>c("close"))},{default:l(()=>[x(v(r(e)("Close")),1)]),_:1},8,["loading"]),S.domainAlias&&S.domainAlias.pk?(V(),w($,{key:0,color:"error",loading:u.value,onClick:y},{default:l(()=>[x(v(r(e)("Delete")),1)]),_:1},8,["loading"])):M("",!0),t($,{color:"primary",type:"submit",loading:u.value},{default:l(()=>[x(v(C.value),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},We={__name:"DomainOptionsForm",props:{modelValue:{type:Object,default:null}},emits:["createAdmin"],setup(S,{expose:b,emit:e}){const{$gettext:c}=O(),k=S,_=e,h=m(),a=m(!1),u=L(()=>k.modelValue);function A(C){_("createAdmin",C)}return b({vFormRef:h}),(C,f)=>(V(),w(ce,{ref_key:"vFormRef",ref:h},{default:l(()=>[t(J,{modelValue:a.value,"onUpdate:modelValue":[f[0]||(f[0]=y=>a.value=y),A],label:r(c)("Create a domain administrator"),color:"primary"},null,8,["modelValue","label"]),t(le,{modelValue:u.value.domain_admin.username,"onUpdate:modelValue":f[1]||(f[1]=y=>u.value.domain_admin.username=y),label:r(c)("Name"),hint:r(c)("Name of the administrator"),"persistent-hint":"",variant:"outlined",disabled:!a.value,suffix:`@${u.value.name}`,rules:[!a.value||r(X).required]},null,8,["modelValue","label","hint","disabled","suffix","rules"]),t(qe,{modelValue:u.value.domain_admin,"onUpdate:modelValue":f[2]||(f[2]=y=>u.value.domain_admin=y),disabled:!a.value},null,8,["modelValue","disabled"]),t(J,{modelValue:u.value.domain_admin.with_mailbox,"onUpdate:modelValue":f[3]||(f[3]=y=>u.value.domain_admin.with_mailbox=y),label:r(c)("With a mailbox"),disabled:!a.value,hint:r(c)("Create a mailbox for the administrator."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"]),t(J,{modelValue:u.value.domain_admin.with_aliases,"onUpdate:modelValue":f[4]||(f[4]=y=>u.value.domain_admin.with_aliases=y),label:r(c)("Create aliases"),disabled:!a.value,hint:r(c)("Create standard aliases for the domain."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"])]),_:1},512))}},Ke={class:"text-grey"},Qe={__name:"DomainCreationForm",emits:["close","created"],setup(S,{emit:b}){const{$gettext:e}=O(),c=ae(),k=me(),_=b,a=m({name:"",type:"domain",enabled:!0,enable_dns_checks:!0,enable_dkim:!1,dkim_key_selector:"modoboa",quota:0,default_mailbox_quota:0,domain_admin:{username:"admin",random_password:!1,with_mailbox:!1,with_aliases:!1},transport:{settings:{}}});te(()=>{Ae.getGlobalApplication("admin").then(i=>{const o=i.data.params;a.value.quota=o.default_domain_quota,a.value.default_mailbox_quota=o.default_mailbox_quota,o.default_domain_message_limit!==null&&(a.value.message_limit=o.default_domain_message_limit)})});const u=m(!1),A=m(),C=m(),f=m(),y=m(),N=m(),g=m(),s={general:C,dns:f,limitations:y,options:N,transport:g},d=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"options",title:e("Options")}],z=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"transport",title:e("Transport")}],j=L(()=>a.value.type==="domain"?d:z),T=L(()=>{const i=[{title:e("General"),items:[{key:e("Name"),value:a.value.name},{key:e("Type"),value:a.value.type},{key:e("Enabled"),value:a.value.enabled,type:"yesno"}]},{title:e("DNS"),items:[{key:e("Enable DNS checks"),value:a.value.enable_dns_checks,type:"yesno"},{key:e("Enable DKIM signing"),value:a.value.enable_dkim,type:"yesno"}]},{title:e("Limitations"),items:[{key:e("Quota"),value:a.value.quota},{key:e("Default mailbox quota"),value:a.value.default_mailbox_quota},{key:e("Message sending limit"),value:a.value.message_limit}]}];if(a.value.enable_dkim&&(i[1].items.push({key:e("DKIM key selector"),value:a.value.dkim_key_selector}),i[1].items.push({key:e("DKIM key length"),value:a.value.dkim_key_length})),a.value.type==="relaydomain"&&a.value.transport.service){const o={title:e("Transport"),items:[{key:e("Service"),value:a.value.transport.service}]};for(const p of g.value.service.settings){const n={key:p.label,value:a.value.transport.settings[`${a.value.transport.service}_${p.name}`]};p.type==="boolean"&&(n.type="yesno"),o.items.push(n)}i.push(o)}else if(a.value.type==="domain"){const o={title:e("Options"),items:[{key:e("Create a domain administrator"),value:u.value,type:"yesno"}]};u.value&&o.items.push({key:e("Administrator name"),value:a.value.domain_admin.username},{name:"random_password",key:e("Random password"),value:a.value.domain_admin.random_password,type:"yesno"},{key:e("With mailbox"),value:a.value.domain_admin.with_mailbox,type:"yesno"},{key:e("Create aliases"),value:a.value.domain_admin.with_aliases,type:"yesno"}),i.push(o)}return i});function B(){_("close")}function G(){navigator.clipboard.writeText(a.value.domain_admin.password).then(()=>{c.displayNotification({msg:e("Password copied to clipboard")})})}function W(i){return s.value[i.name]}function K(i){return s[i.name].value.vFormRef}async function Q(){}function H(i){u.value=i}async function Y(){const i=JSON.parse(JSON.stringify(a.value));u.value||delete i.domain_admin,i.message_limit===""&&delete i.message_limit,i.type==="relaydomain"?g.value.checkSettingTypes(i):delete i.transport;try{const o=await U.createDomain(i);k.push({name:"DomainDetail",params:{id:o.data.pk}}),c.displayNotification({msg:e("Domain created")}),B()}finally{A.value.working=!1}}return(i,o)=>(V(),w($e,{ref_key:"form",ref:A,title:r(e)("New domain"),steps:j.value,"form-getter":W,"get-v-form-ref":K,"validate-object":Q,"summary-sections":T.value,onClose:B,onCreate:Y},{"form.general":l(()=>[t(Fe,{ref_key:"general",ref:C,modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=p=>a.value=p),class:"ml-4"},null,8,["modelValue"])]),"form.dns":l(()=>[t(Ue,{ref_key:"dns",ref:f,modelValue:a.value,"onUpdate:modelValue":o[1]||(o[1]=p=>a.value=p),class:"ml-4"},null,8,["modelValue"])]),"form.limitations":l(()=>[t(Ne,{ref_key:"limitations",ref:y,modelValue:a.value,"onUpdate:modelValue":o[2]||(o[2]=p=>a.value=p),class:"ml-4"},null,8,["modelValue"])]),"form.options":l(()=>[t(We,{ref_key:"options",ref:N,modelValue:a.value,"onUpdate:modelValue":o[3]||(o[3]=p=>a.value=p),class:"ml-4",onCreateAdmin:H},null,8,["modelValue"])]),"form.transport":l(()=>[t(Se,{ref_key:"transport",ref:g,modelValue:a.value.transport,"onUpdate:modelValue":o[4]||(o[4]=p=>a.value.transport=p),class:"ml-4"},null,8,["modelValue"])]),"item.random_password":l(({item:p})=>[p.value?(V(),w(E,{key:0,cols:"12",class:"highligth text-white"},{default:l(()=>[t(ie,null,{default:l(()=>[t(E,null,{default:l(()=>[D("span",null,v(p.key),1)]),_:2},1024),t(E,{class:"text-right"},{default:l(()=>[x(v(i.$yesno(p.value)),1)]),_:2},1024)]),_:2},1024),t(ie,null,{default:l(()=>[t(E,{class:"text-right py-1"},{default:l(()=>[x(v(a.value.domain_admin.password)+" ",1),t($,{icon:"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:r(e)("Copy to clipboard"),onClick:G},null,8,["title"])]),_:1})]),_:1})]),_:2},1024)):(V(),I(ue,{key:1},[t(E,null,{default:l(()=>[D("span",Ke,v(p.key),1)]),_:2},1024),t(E,{class:"text-right"},{default:l(()=>[x(v(i.$yesno(p.value)),1)]),_:2},1024)],64))]),_:2},1032,["title","steps","summary-sections"]))}},He={__name:"DNSStatusChip",props:{status:{type:String,default:"pending"}},setup(S){const b=S,{$gettext:e}=O(),c=L(()=>b.status==="disabled"?e("Disabled"):b.status==="pending"?e("Pending"):b.status==="critical"?e("Problem"):b.status==="ok"?e("Valid"):e("Unknown")),k=L(()=>b.status==="disabled"?"":b.status==="pending"?"info":b.status==="critical"?"error":b.status==="ok"?"success":"warning");return(_,h)=>(V(),w(Z,{color:k.value,size:"small"},{default:l(()=>[x(v(c.value),1)]),_:1},8,["color"]))}},Ye={key:1},Xe={key:1},Ze={class:"text-right"},ea={class:"grey lighten-4"},aa=["colspan"],ta={__name:"DomainList",setup(S,{expose:b}){const{$gettext:e}=O(),c=me(),{canSetRole:k}=pe(),_=ae(),h=[{title:e("Name"),key:"name"},{title:e("Enabled"),key:"enabled",width:"5%"},{title:e("Aliases"),key:"data-table-expand",width:"10%"},{title:e("DNS status"),key:"dns_global_status",sortable:!1},{title:e("Sending limit"),key:"message_limit"},{title:e("Quota"),key:"allocated_quota_in_percent"}];k.value&&h.push({title:e("Actions"),value:"actions",sortable:!1,align:"end"});const a=m({}),u=m(),A=m([]),C=m(!1),f=m(!1),y=m(null),N=m(null),g=m(!1),s=m(!1),d=m(""),z=m([]),j=m([]);async function T(){a.value={},f.value=!0;try{const i=await U.getDomains();A.value=i.data}finally{f.value=!1}}function B(){s.value=!1,y.value=null,N.value=null}async function G(i){if(await u.value.open(e("Warning"),e("Do you really want to delete the domain %{ domain }?",{domain:i.name}),{color:"error",cancelLabel:e("No"),agreeLabel:e("Yes")})){f.value=!0;try{const p={keep_folder:C.value};await U.deleteDomain(i.pk,p),T(),_.displayNotification({msg:e("Domain deleted")}),C.value=!1}finally{f.value=!1}}}function W(i){c.push({name:"DomainEdit",params:{id:i.pk}})}function K(i,o){y.value=i,N.value=o,s.value=!0}async function Q(i,o,p,n){if(!p(o)){const q=await U.getDomainAliases(i.name);a.value[i.name]=q.data}}function H(i){y.value=i,g.value=!0}function Y(i){const o=[{label:e("Administrators"),icon:"mdi-account-supervisor",onClick:H},{label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:W},{label:e("Delete"),icon:"mdi-delete-outline",onClick:G,color:"red"}];return i.opened_alarms_count&&o.push({label:e("Alarms"),icon:"mdi-bell",color:"red",onClick:()=>c.push({name:"Alarms"})}),o}return te(()=>{T()}),b({reloadDomains:T}),(i,o)=>{const p=ge("router-link");return V(),w(fe,{class:"mt-6"},{default:l(()=>[t(Me,{modelValue:z.value,"onUpdate:modelValue":o[1]||(o[1]=n=>z.value=n),expanded:j.value,headers:h,items:A.value,"item-value":"pk",search:d.value,"show-select":"","expand-on-click":"",loading:f.value},{top:l(()=>[t(ve,{color:"white",flat:""},{default:l(()=>[t(le,{modelValue:d.value,"onUpdate:modelValue":o[0]||(o[0]=n=>d.value=n),"prepend-inner-icon":"mdi-magnify",placeholder:r(e)("Search"),variant:"outlined","single-line":"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),ke(i.$slots,"extraActions",{},void 0,!0),t(ee,{location:"bottom"},{activator:l(({props:n})=>[t($,P({variant:"flat","append-icon":"mdi-chevron-down"},n,{size:"small"}),{default:l(()=>[x(v(r(e)("Actions")),1)]),_:2},1040)]),default:l(()=>[t(_e,{density:"compact"})]),_:1}),t($,{variant:"text",icon:"mdi-reload",onClick:T})]),_:3})]),"item.name":l(({item:n})=>[t(p,{to:{name:"DomainDetail",params:{id:n.pk}}},{default:l(()=>[x(v(n.name),1)]),_:2},1032,["to"]),n.type==="relaydomain"?(V(),w(Z,{key:0,size:"small",color:"primary",class:"ml-2"},{default:l(()=>[x(v(r(e)("Relay")),1)]),_:1})):M("",!0)]),"item.enabled":l(({item:n})=>[t(Le,{value:n.enabled},null,8,["value"])]),"item.data-table-expand":l(({item:n,internalItem:F,isExpanded:q,toggleExpand:oe})=>[x(v(n.domainalias_count)+" aliases ",1),n.domainalias_count?(V(),w($,{key:0,variant:"text",size:"small",icon:q(F)?"mdi-chevron-up":"mdi-chevron-down",onClick:na=>Q(n,F,q,oe)},null,8,["icon","onClick"])):M("",!0)]),"item.dns_global_status":l(({item:n})=>[t(He,{status:n.dns_global_status},null,8,["status"])]),"item.message_limit":l(({item:n})=>[n.message_limit?(V(),w(ne,{key:0,color:n.sent_messages_in_percent<80?"primary":"warning","model-value":n.sent_messages_in_percent},null,8,["color","model-value"])):(V(),I("span",Ye,v(r(e)("Unlimited")),1))]),"item.allocated_quota_in_percent":l(({item:n})=>[n.quota!=="0"?(V(),w(ne,{key:0,color:n.allocated_quota_in_percent<80?"primary":"warning","model-value":n.allocated_quota_in_percent},null,8,["color","model-value"])):(V(),I("span",Xe,v(r(e)("Unlimited")),1))]),"item.actions":l(({item:n})=>[D("div",Ze,[t(ee,{"offset-y":""},{activator:l(({props:F})=>[n.opened_alarms_count?(V(),w(Oe,{key:0,bordered:"",color:"error",icon:"mdi-bell",overlap:""},{default:l(()=>[t($,P({icon:"mdi-dots-horizontal",variant:"text"},F),null,16)]),_:2},1024)):(V(),w($,P({key:1,icon:"mdi-dots-horizontal",variant:"text"},F),null,16))]),default:l(()=>[t(Ie,{items:Y(n),obj:n},null,8,["items","obj"])]),_:2},1024)])]),"expanded-row":l(({item:n,columns:F})=>[D("tr",ea,[D("td",{colspan:F.length},[(V(!0),I(ue,null,be(a.value[n.name],q=>(V(),I("span",{key:q.name,class:"mr-4"},[t(Z,{class:"mr-2",onClick:oe=>K(n,q)},{default:l(()=>[x(v(q.name),1)]),_:2},1032,["onClick"])]))),128))],8,aa)])]),_:2},1032,["modelValue","expanded","items","search","loading"]),t(Ee,{ref_key:"confirm",ref:u},{default:l(()=>[t(ze,{modelValue:C.value,"onUpdate:modelValue":o[2]||(o[2]=n=>C.value=n),label:r(e)("Do not delete domain folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),t(R,{modelValue:s.value,"onUpdate:modelValue":o[3]||(o[3]=n=>s.value=n),persistent:"","max-width":"800px"},{default:l(()=>[t(ye,{"domain-alias":N.value,onClose:B},null,8,["domain-alias"])]),_:1},8,["modelValue"]),t(R,{modelValue:g.value,"onUpdate:modelValue":o[5]||(o[5]=n=>g.value=n),persistent:"","max-width":"800px"},{default:l(()=>[t(Te,{domain:y.value,"dialog-mode":"",onClose:o[4]||(o[4]=n=>g.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"])]),_:3})}}},la=de(ta,[["__scopeId","data-v-e52ea065"]]),oa={__name:"DomainsView",setup(S){const b=m(),e=m(!1),c=m(!1),k=m(!1),{$gettext:_}=O(),{canAddDomain:h}=pe(),a=m(),{importContent:u,exportContent:A}=Pe();function C(){U.exportAll().then(g=>{A(g.data,"domains",_)})}function f(g){u(U,g,a,_)}const y=()=>{e.value=!1,b.value.reloadDomains()},N=()=>{k.value=!1,b.value.reloadDomains()};return(g,s)=>(V(),I("div",null,[t(ve,{flat:""},{default:l(()=>[t(Re,null,{default:l(()=>[x(v(r(_)("Domains")),1)]),_:1})]),_:1}),t(r(la),{ref_key:"domainList",ref:b},{extraActions:l(()=>[r(h)?(V(),w(ee,{key:0,"offset-y":""},{activator:l(({props:d})=>[t($,P({color:"primary",variant:"outlined"},d,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:l(()=>[x(v(g.$pgettext("male","New")),1)]),_:2},1040)]),default:l(()=>[t(_e,{density:"compact"},{default:l(()=>[t(se,{onClick:s[0]||(s[0]=d=>c.value=!0)},{default:l(()=>[t(re,null,{default:l(()=>[x(v(r(_)("Domain")),1)]),_:1})]),_:1}),t(se,{onClick:s[1]||(s[1]=d=>e.value=!0)},{default:l(()=>[t(re,null,{default:l(()=>[x(v(r(_)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1})):M("",!0),r(h)?(V(),w($,{key:1,class:"mr-2",title:r(_)("Import domains and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:s[2]||(s[2]=d=>k.value=!0)},null,8,["title"])):M("",!0),t($,{class:"mr-2",title:r(_)("Export domains and aliases to CSV"),variant:"flat",icon:"mdi-file-export-outline",onClick:C},null,8,["title"])]),_:1},512),t(R,{modelValue:c.value,"onUpdate:modelValue":s[4]||(s[4]=d=>c.value=d),fullscreen:"",scrollable:"","z-index":"10"},{default:l(()=>[t(r(Qe),{onClose:s[3]||(s[3]=d=>c.value=!1)})]),_:1},8,["modelValue"]),t(R,{modelValue:e.value,"onUpdate:modelValue":s[6]||(s[6]=d=>e.value=d),persistent:"","max-width":"800px"},{default:l(()=>[t(r(ye),{onClose:s[5]||(s[5]=d=>y())})]),_:1},8,["modelValue"]),t(R,{modelValue:k.value,"onUpdate:modelValue":s[7]||(s[7]=d=>k.value=d),persistent:"","max-width":"800px"},{default:l(()=>[t(r(Be),{ref_key:"importForm",ref:a,title:r(_)("Import domains"),onSubmit:f,onClose:N},{help:l(()=>s[8]||(s[8]=[D("ul",null,[D("li",null,[D("em",null,"domain; name; quota; default mailbox quota; enabled")]),D("li",null,[D("em",null,"domainalias; name; targeted domain; enabled")]),D("li",null,[D("em",null,"relaydomain; name; target host; target port; service; enabled; verify recipients")])],-1)])),_:1},8,["title"])]),_:1},8,["modelValue"])]))}},Za=de(oa,[["__scopeId","data-v-de80aa3f"]]);export{Za as default};
1
+ import{d as U}from"./domains-CQv8gtbQ.js";import{b as O,n as ae,h as m,i as L,d as te,c as w,o as V,w as l,a as t,p as Ve,e as D,t as v,f as r,m as M,k as x,q as me,l as I,F as ue,_ as de,s as be,v as P,r as ge,x as ke}from"./index-YIGRKgNA.js";import{u as pe}from"./permissions-C33K6cJv.js";import{V as ce,r as X}from"./VForm-BwTUBf4u.js";import{c as xe,V as we,b as De,a as fe}from"./VCard-CJ2oGh_i.js";import{V as le}from"./VTextField-C9VUP7V9.js";import{V as Ce}from"./VSelect-Cdh0qO5m.js";import{V as J}from"./VSwitch-CixaedmQ.js";import{V as he}from"./VSpacer-BWZq1PhD.js";import{V as $,a as ne}from"./VAvatar-J563boKh.js";import{p as Ae}from"./parameters-DpVw-Zs4.js";import{_ as $e}from"./CreationForm-BZMhQOez.js";import{_ as Se,a as Ne,b as Ue,c as Fe}from"./DomainTransportForm-CmFZ1Cxm.js";import{_ as qe}from"./AccountPasswordSubForm-B9X5wAXp.js";import{a as E,V as ie}from"./VRow-CAbOSEHS.js";import{_ as Le,a as Te}from"./DomainAdminList-BikGujRD.js";import{_ as Ee}from"./ConfirmDialog-Dr0i2kqK.js";import{V as Z}from"./VChip-DvxO74Mw.js";import{_ as Ie}from"./MenuItems-BRChEdLp.js";import{V as ee}from"./VMenu-DDmBlbM8.js";import{V as Oe}from"./VBadge-CtEsXuih.js";import{V as ve,a as Re}from"./VToolbar-Cs-fVa4M.js";import{V as _e,a as se,b as re}from"./forwardRefs-DPrLRqxP.js";import{V as Me}from"./VDataTable-CAT0QYJz.js";import{V as ze}from"./VCheckbox-VicuXIJq.js";import{V as R}from"./VDialog-CaQnQSDn.js";import{_ as Be,i as Pe}from"./importExport-7sRHU_3R.js";import"./tag-DV1_zOzl.js";import"./VInput-Dpmea5z9.js";import"./VProgressCircular-CtqQON49.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VSelectionControl-BN-zQ3C6.js";/* empty css */import"./logos-CboXciB_.js";import"./VWindowItem-C9PFEbE6.js";import"./ssrBoot-CpJ-7WlH.js";import"./VContainer-L2EoH3dT.js";import"./VSheet-9RDZpWCf.js";import"./ChoiceField-17aCFpF6.js";import"./transports-B9mWU1W8.js";import"./VAutocomplete-Bg2AlW_n.js";import"./filter-C_GJovn5.js";import"./accounts-BT429O7P.js";import"./VAlert-x6n3drjw.js";import"./VDataTableVirtual-LVNemzH7.js";import"./VTable-DO7ofPSj.js";import"./VFileInput-z44hJIWr.js";const Je={class:"headline"},je={class:"m-label"},Ge={class:"m-label"},ye={__name:"DomainAliasForm",props:{domainAlias:{type:Object,default:()=>null}},emits:["close"],setup(S,{emit:b}){const{$gettext:e}=O(),c=b,{displayNotification:k}=ae(),_=S,h=m([]),a=m({enabled:!0}),u=m(!1),A=m(),C=L(()=>_.domainAlias?e("Update"):e("Add")),f=L(()=>_.domainAlias?e("Edit domain alias"):e("Add a new domain alias"));async function y(){u.value=!0;try{await U.deleteDomainAlias(_.domainAlias.pk),k({msg:e("Domain alias deleted")}),c("close")}finally{u.value=!1}}async function N(){const{valid:g}=await A.value.validate();if(g){u.value=!0;try{if(!a.value.pk)await U.createDomainAlias(a.value),k({msg:e("Domain alias created")});else{const s=JSON.parse(JSON.stringify(a.value));await U.updateDomainAlias(_.domainAlias.pk,s),k({msg:e("Domain alias updated")})}c("close")}finally{u.value=!1}}}return te(()=>{U.getDomains().then(g=>{h.value=g.data}),_.domainAlias&&(a.value=JSON.parse(JSON.stringify(_.domainAlias)))}),(g,s)=>(V(),w(fe,null,{default:l(()=>[t(ce,{ref_key:"vFormRef",ref:A,onSubmit:Ve(N,["prevent"])},{default:l(()=>[t(xe,null,{default:l(()=>[D("span",Je,v(f.value),1)]),_:1}),t(we,null,{default:l(()=>[D("label",je,v(r(e)("Name")),1),t(le,{modelValue:a.value.name,"onUpdate:modelValue":s[0]||(s[0]=d=>a.value.name=d),variant:"outlined",density:"compact",rules:[r(X).required]},null,8,["modelValue","rules"]),D("label",Ge,v(r(e)("Choose a domain")),1),t(Ce,{modelValue:a.value.target,"onUpdate:modelValue":s[1]||(s[1]=d=>a.value.target=d),items:h.value,"item-title":"name","item-value":"pk",rules:[r(X).required],"single-line":"",variant:"outlined",density:"compact"},null,8,["modelValue","items","rules"]),t(J,{modelValue:a.value.enabled,"onUpdate:modelValue":s[2]||(s[2]=d=>a.value.enabled=d),label:"Enabled",color:"primary"},null,8,["modelValue"])]),_:1}),t(De,null,{default:l(()=>[t(he),t($,{loading:u.value,onClick:s[3]||(s[3]=d=>c("close"))},{default:l(()=>[x(v(r(e)("Close")),1)]),_:1},8,["loading"]),S.domainAlias&&S.domainAlias.pk?(V(),w($,{key:0,color:"error",loading:u.value,onClick:y},{default:l(()=>[x(v(r(e)("Delete")),1)]),_:1},8,["loading"])):M("",!0),t($,{color:"primary",type:"submit",loading:u.value},{default:l(()=>[x(v(C.value),1)]),_:1},8,["loading"])]),_:1})]),_:1},512)]),_:1}))}},We={__name:"DomainOptionsForm",props:{modelValue:{type:Object,default:null}},emits:["createAdmin"],setup(S,{expose:b,emit:e}){const{$gettext:c}=O(),k=S,_=e,h=m(),a=m(!1),u=L(()=>k.modelValue);function A(C){_("createAdmin",C)}return b({vFormRef:h}),(C,f)=>(V(),w(ce,{ref_key:"vFormRef",ref:h},{default:l(()=>[t(J,{modelValue:a.value,"onUpdate:modelValue":[f[0]||(f[0]=y=>a.value=y),A],label:r(c)("Create a domain administrator"),color:"primary"},null,8,["modelValue","label"]),t(le,{modelValue:u.value.domain_admin.username,"onUpdate:modelValue":f[1]||(f[1]=y=>u.value.domain_admin.username=y),label:r(c)("Name"),hint:r(c)("Name of the administrator"),"persistent-hint":"",variant:"outlined",disabled:!a.value,suffix:`@${u.value.name}`,rules:[!a.value||r(X).required]},null,8,["modelValue","label","hint","disabled","suffix","rules"]),t(qe,{modelValue:u.value.domain_admin,"onUpdate:modelValue":f[2]||(f[2]=y=>u.value.domain_admin=y),disabled:!a.value},null,8,["modelValue","disabled"]),t(J,{modelValue:u.value.domain_admin.with_mailbox,"onUpdate:modelValue":f[3]||(f[3]=y=>u.value.domain_admin.with_mailbox=y),label:r(c)("With a mailbox"),disabled:!a.value,hint:r(c)("Create a mailbox for the administrator."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"]),t(J,{modelValue:u.value.domain_admin.with_aliases,"onUpdate:modelValue":f[4]||(f[4]=y=>u.value.domain_admin.with_aliases=y),label:r(c)("Create aliases"),disabled:!a.value,hint:r(c)("Create standard aliases for the domain."),"persistent-hint":"",color:"primary"},null,8,["modelValue","label","disabled","hint"])]),_:1},512))}},Ke={class:"text-grey"},Qe={__name:"DomainCreationForm",emits:["close","created"],setup(S,{emit:b}){const{$gettext:e}=O(),c=ae(),k=me(),_=b,a=m({name:"",type:"domain",enabled:!0,enable_dns_checks:!0,enable_dkim:!1,dkim_key_selector:"modoboa",quota:0,default_mailbox_quota:0,domain_admin:{username:"admin",random_password:!1,with_mailbox:!1,with_aliases:!1},transport:{settings:{}}});te(()=>{Ae.getGlobalApplication("admin").then(i=>{const o=i.data.params;a.value.quota=o.default_domain_quota,a.value.default_mailbox_quota=o.default_mailbox_quota,o.default_domain_message_limit!==null&&(a.value.message_limit=o.default_domain_message_limit)})});const u=m(!1),A=m(),C=m(),f=m(),y=m(),N=m(),g=m(),s={general:C,dns:f,limitations:y,options:N,transport:g},d=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"options",title:e("Options")}],z=[{name:"general",title:e("General")},{name:"dns",title:e("DNS")},{name:"limitations",title:e("Limitations")},{name:"transport",title:e("Transport")}],j=L(()=>a.value.type==="domain"?d:z),T=L(()=>{const i=[{title:e("General"),items:[{key:e("Name"),value:a.value.name},{key:e("Type"),value:a.value.type},{key:e("Enabled"),value:a.value.enabled,type:"yesno"}]},{title:e("DNS"),items:[{key:e("Enable DNS checks"),value:a.value.enable_dns_checks,type:"yesno"},{key:e("Enable DKIM signing"),value:a.value.enable_dkim,type:"yesno"}]},{title:e("Limitations"),items:[{key:e("Quota"),value:a.value.quota},{key:e("Default mailbox quota"),value:a.value.default_mailbox_quota},{key:e("Message sending limit"),value:a.value.message_limit}]}];if(a.value.enable_dkim&&(i[1].items.push({key:e("DKIM key selector"),value:a.value.dkim_key_selector}),i[1].items.push({key:e("DKIM key length"),value:a.value.dkim_key_length})),a.value.type==="relaydomain"&&a.value.transport.service){const o={title:e("Transport"),items:[{key:e("Service"),value:a.value.transport.service}]};for(const p of g.value.service.settings){const n={key:p.label,value:a.value.transport.settings[`${a.value.transport.service}_${p.name}`]};p.type==="boolean"&&(n.type="yesno"),o.items.push(n)}i.push(o)}else if(a.value.type==="domain"){const o={title:e("Options"),items:[{key:e("Create a domain administrator"),value:u.value,type:"yesno"}]};u.value&&o.items.push({key:e("Administrator name"),value:a.value.domain_admin.username},{name:"random_password",key:e("Random password"),value:a.value.domain_admin.random_password,type:"yesno"},{key:e("With mailbox"),value:a.value.domain_admin.with_mailbox,type:"yesno"},{key:e("Create aliases"),value:a.value.domain_admin.with_aliases,type:"yesno"}),i.push(o)}return i});function B(){_("close")}function G(){navigator.clipboard.writeText(a.value.domain_admin.password).then(()=>{c.displayNotification({msg:e("Password copied to clipboard")})})}function W(i){return s.value[i.name]}function K(i){return s[i.name].value.vFormRef}async function Q(){}function H(i){u.value=i}async function Y(){const i=JSON.parse(JSON.stringify(a.value));u.value||delete i.domain_admin,i.message_limit===""&&delete i.message_limit,i.type==="relaydomain"?g.value.checkSettingTypes(i):delete i.transport;try{const o=await U.createDomain(i);k.push({name:"DomainDetail",params:{id:o.data.pk}}),c.displayNotification({msg:e("Domain created")}),B()}finally{A.value.working=!1}}return(i,o)=>(V(),w($e,{ref_key:"form",ref:A,title:r(e)("New domain"),steps:j.value,"form-getter":W,"get-v-form-ref":K,"validate-object":Q,"summary-sections":T.value,onClose:B,onCreate:Y},{"form.general":l(()=>[t(Fe,{ref_key:"general",ref:C,modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=p=>a.value=p),class:"ml-4"},null,8,["modelValue"])]),"form.dns":l(()=>[t(Ue,{ref_key:"dns",ref:f,modelValue:a.value,"onUpdate:modelValue":o[1]||(o[1]=p=>a.value=p),class:"ml-4"},null,8,["modelValue"])]),"form.limitations":l(()=>[t(Ne,{ref_key:"limitations",ref:y,modelValue:a.value,"onUpdate:modelValue":o[2]||(o[2]=p=>a.value=p),class:"ml-4"},null,8,["modelValue"])]),"form.options":l(()=>[t(We,{ref_key:"options",ref:N,modelValue:a.value,"onUpdate:modelValue":o[3]||(o[3]=p=>a.value=p),class:"ml-4",onCreateAdmin:H},null,8,["modelValue"])]),"form.transport":l(()=>[t(Se,{ref_key:"transport",ref:g,modelValue:a.value.transport,"onUpdate:modelValue":o[4]||(o[4]=p=>a.value.transport=p),class:"ml-4"},null,8,["modelValue"])]),"item.random_password":l(({item:p})=>[p.value?(V(),w(E,{key:0,cols:"12",class:"highligth text-white"},{default:l(()=>[t(ie,null,{default:l(()=>[t(E,null,{default:l(()=>[D("span",null,v(p.key),1)]),_:2},1024),t(E,{class:"text-right"},{default:l(()=>[x(v(i.$yesno(p.value)),1)]),_:2},1024)]),_:2},1024),t(ie,null,{default:l(()=>[t(E,{class:"text-right py-1"},{default:l(()=>[x(v(a.value.domain_admin.password)+" ",1),t($,{icon:"mdi-clipboard-multiple-outline",color:"white",variant:"text",title:r(e)("Copy to clipboard"),onClick:G},null,8,["title"])]),_:1})]),_:1})]),_:2},1024)):(V(),I(ue,{key:1},[t(E,null,{default:l(()=>[D("span",Ke,v(p.key),1)]),_:2},1024),t(E,{class:"text-right"},{default:l(()=>[x(v(i.$yesno(p.value)),1)]),_:2},1024)],64))]),_:2},1032,["title","steps","summary-sections"]))}},He={__name:"DNSStatusChip",props:{status:{type:String,default:"pending"}},setup(S){const b=S,{$gettext:e}=O(),c=L(()=>b.status==="disabled"?e("Disabled"):b.status==="pending"?e("Pending"):b.status==="critical"?e("Problem"):b.status==="ok"?e("Valid"):e("Unknown")),k=L(()=>b.status==="disabled"?"":b.status==="pending"?"info":b.status==="critical"?"error":b.status==="ok"?"success":"warning");return(_,h)=>(V(),w(Z,{color:k.value,size:"small"},{default:l(()=>[x(v(c.value),1)]),_:1},8,["color"]))}},Ye={key:1},Xe={key:1},Ze={class:"text-right"},ea={class:"grey lighten-4"},aa=["colspan"],ta={__name:"DomainList",setup(S,{expose:b}){const{$gettext:e}=O(),c=me(),{canSetRole:k}=pe(),_=ae(),h=[{title:e("Name"),key:"name"},{title:e("Enabled"),key:"enabled",width:"5%"},{title:e("Aliases"),key:"data-table-expand",width:"10%"},{title:e("DNS status"),key:"dns_global_status",sortable:!1},{title:e("Sending limit"),key:"message_limit"},{title:e("Quota"),key:"allocated_quota_in_percent"}];k.value&&h.push({title:e("Actions"),value:"actions",sortable:!1,align:"end"});const a=m({}),u=m(),A=m([]),C=m(!1),f=m(!1),y=m(null),N=m(null),g=m(!1),s=m(!1),d=m(""),z=m([]),j=m([]);async function T(){a.value={},f.value=!0;try{const i=await U.getDomains();A.value=i.data}finally{f.value=!1}}function B(){s.value=!1,y.value=null,N.value=null}async function G(i){if(await u.value.open(e("Warning"),e("Do you really want to delete the domain %{ domain }?",{domain:i.name}),{color:"error",cancelLabel:e("No"),agreeLabel:e("Yes")})){f.value=!0;try{const p={keep_folder:C.value};await U.deleteDomain(i.pk,p),T(),_.displayNotification({msg:e("Domain deleted")}),C.value=!1}finally{f.value=!1}}}function W(i){c.push({name:"DomainEdit",params:{id:i.pk}})}function K(i,o){y.value=i,N.value=o,s.value=!0}async function Q(i,o,p,n){if(!p(o)){const q=await U.getDomainAliases(i.name);a.value[i.name]=q.data}}function H(i){y.value=i,g.value=!0}function Y(i){const o=[{label:e("Administrators"),icon:"mdi-account-supervisor",onClick:H},{label:e("Edit"),icon:"mdi-circle-edit-outline",onClick:W},{label:e("Delete"),icon:"mdi-delete-outline",onClick:G,color:"red"}];return i.opened_alarms_count&&o.push({label:e("Alarms"),icon:"mdi-bell",color:"red",onClick:()=>c.push({name:"Alarms"})}),o}return te(()=>{T()}),b({reloadDomains:T}),(i,o)=>{const p=ge("router-link");return V(),w(fe,{class:"mt-6"},{default:l(()=>[t(Me,{modelValue:z.value,"onUpdate:modelValue":o[1]||(o[1]=n=>z.value=n),expanded:j.value,headers:h,items:A.value,"item-value":"pk",search:d.value,"show-select":"","expand-on-click":"",loading:f.value},{top:l(()=>[t(ve,{color:"white",flat:""},{default:l(()=>[t(le,{modelValue:d.value,"onUpdate:modelValue":o[0]||(o[0]=n=>d.value=n),"prepend-inner-icon":"mdi-magnify",placeholder:r(e)("Search"),variant:"outlined","single-line":"","hide-details":"",density:"compact",class:"flex-grow-0 w-33 mr-4"},null,8,["modelValue","placeholder"]),ke(i.$slots,"extraActions",{},void 0,!0),t(ee,{location:"bottom"},{activator:l(({props:n})=>[t($,P({variant:"flat","append-icon":"mdi-chevron-down"},n,{size:"small"}),{default:l(()=>[x(v(r(e)("Actions")),1)]),_:2},1040)]),default:l(()=>[t(_e,{density:"compact"})]),_:1}),t($,{variant:"text",icon:"mdi-reload",onClick:T})]),_:3})]),"item.name":l(({item:n})=>[t(p,{to:{name:"DomainDetail",params:{id:n.pk}}},{default:l(()=>[x(v(n.name),1)]),_:2},1032,["to"]),n.type==="relaydomain"?(V(),w(Z,{key:0,size:"small",color:"primary",class:"ml-2"},{default:l(()=>[x(v(r(e)("Relay")),1)]),_:1})):M("",!0)]),"item.enabled":l(({item:n})=>[t(Le,{value:n.enabled},null,8,["value"])]),"item.data-table-expand":l(({item:n,internalItem:F,isExpanded:q,toggleExpand:oe})=>[x(v(n.domainalias_count)+" aliases ",1),n.domainalias_count?(V(),w($,{key:0,variant:"text",size:"small",icon:q(F)?"mdi-chevron-up":"mdi-chevron-down",onClick:na=>Q(n,F,q,oe)},null,8,["icon","onClick"])):M("",!0)]),"item.dns_global_status":l(({item:n})=>[t(He,{status:n.dns_global_status},null,8,["status"])]),"item.message_limit":l(({item:n})=>[n.message_limit?(V(),w(ne,{key:0,color:n.sent_messages_in_percent<80?"primary":"warning","model-value":n.sent_messages_in_percent},null,8,["color","model-value"])):(V(),I("span",Ye,v(r(e)("Unlimited")),1))]),"item.allocated_quota_in_percent":l(({item:n})=>[n.quota!=="0"?(V(),w(ne,{key:0,color:n.allocated_quota_in_percent<80?"primary":"warning","model-value":n.allocated_quota_in_percent},null,8,["color","model-value"])):(V(),I("span",Xe,v(r(e)("Unlimited")),1))]),"item.actions":l(({item:n})=>[D("div",Ze,[t(ee,{"offset-y":""},{activator:l(({props:F})=>[n.opened_alarms_count?(V(),w(Oe,{key:0,bordered:"",color:"error",icon:"mdi-bell",overlap:""},{default:l(()=>[t($,P({icon:"mdi-dots-horizontal",variant:"text"},F),null,16)]),_:2},1024)):(V(),w($,P({key:1,icon:"mdi-dots-horizontal",variant:"text"},F),null,16))]),default:l(()=>[t(Ie,{items:Y(n),obj:n},null,8,["items","obj"])]),_:2},1024)])]),"expanded-row":l(({item:n,columns:F})=>[D("tr",ea,[D("td",{colspan:F.length},[(V(!0),I(ue,null,be(a.value[n.name],q=>(V(),I("span",{key:q.name,class:"mr-4"},[t(Z,{class:"mr-2",onClick:oe=>K(n,q)},{default:l(()=>[x(v(q.name),1)]),_:2},1032,["onClick"])]))),128))],8,aa)])]),_:2},1032,["modelValue","expanded","items","search","loading"]),t(Ee,{ref_key:"confirm",ref:u},{default:l(()=>[t(ze,{modelValue:C.value,"onUpdate:modelValue":o[2]||(o[2]=n=>C.value=n),label:r(e)("Do not delete domain folder"),"hide-details":""},null,8,["modelValue","label"])]),_:1},512),t(R,{modelValue:s.value,"onUpdate:modelValue":o[3]||(o[3]=n=>s.value=n),persistent:"","max-width":"800px"},{default:l(()=>[t(ye,{"domain-alias":N.value,onClose:B},null,8,["domain-alias"])]),_:1},8,["modelValue"]),t(R,{modelValue:g.value,"onUpdate:modelValue":o[5]||(o[5]=n=>g.value=n),persistent:"","max-width":"800px"},{default:l(()=>[t(Te,{domain:y.value,"dialog-mode":"",onClose:o[4]||(o[4]=n=>g.value=!1)},null,8,["domain"])]),_:1},8,["modelValue"])]),_:3})}}},la=de(ta,[["__scopeId","data-v-e52ea065"]]),oa={__name:"DomainsView",setup(S){const b=m(),e=m(!1),c=m(!1),k=m(!1),{$gettext:_}=O(),{canAddDomain:h}=pe(),a=m(),{importContent:u,exportContent:A}=Pe();function C(){U.exportAll().then(g=>{A(g.data,"domains",_)})}function f(g){u(U,g,a,_)}const y=()=>{e.value=!1,b.value.reloadDomains()},N=()=>{k.value=!1,b.value.reloadDomains()};return(g,s)=>(V(),I("div",null,[t(ve,{flat:""},{default:l(()=>[t(Re,null,{default:l(()=>[x(v(r(_)("Domains")),1)]),_:1})]),_:1}),t(r(la),{ref_key:"domainList",ref:b},{extraActions:l(()=>[r(h)?(V(),w(ee,{key:0,"offset-y":""},{activator:l(({props:d})=>[t($,P({color:"primary",variant:"outlined"},d,{"prepend-icon":"mdi-plus",class:"mr-4"}),{default:l(()=>[x(v(g.$pgettext("male","New")),1)]),_:2},1040)]),default:l(()=>[t(_e,{density:"compact"},{default:l(()=>[t(se,{onClick:s[0]||(s[0]=d=>c.value=!0)},{default:l(()=>[t(re,null,{default:l(()=>[x(v(r(_)("Domain")),1)]),_:1})]),_:1}),t(se,{onClick:s[1]||(s[1]=d=>e.value=!0)},{default:l(()=>[t(re,null,{default:l(()=>[x(v(r(_)("Alias")),1)]),_:1})]),_:1})]),_:1})]),_:1})):M("",!0),r(h)?(V(),w($,{key:1,class:"mr-2",title:r(_)("Import domains and aliases from CSV file"),variant:"flat",icon:"mdi-file-import-outline",onClick:s[2]||(s[2]=d=>k.value=!0)},null,8,["title"])):M("",!0),t($,{class:"mr-2",title:r(_)("Export domains and aliases to CSV"),variant:"flat",icon:"mdi-file-export-outline",onClick:C},null,8,["title"])]),_:1},512),t(R,{modelValue:c.value,"onUpdate:modelValue":s[4]||(s[4]=d=>c.value=d),fullscreen:"",scrollable:"","z-index":"10"},{default:l(()=>[t(r(Qe),{onClose:s[3]||(s[3]=d=>c.value=!1)})]),_:1},8,["modelValue"]),t(R,{modelValue:e.value,"onUpdate:modelValue":s[6]||(s[6]=d=>e.value=d),persistent:"","max-width":"800px"},{default:l(()=>[t(r(ye),{onClose:s[5]||(s[5]=d=>y())})]),_:1},8,["modelValue"]),t(R,{modelValue:k.value,"onUpdate:modelValue":s[7]||(s[7]=d=>k.value=d),persistent:"","max-width":"800px"},{default:l(()=>[t(r(Be),{ref_key:"importForm",ref:a,title:r(_)("Import domains"),onSubmit:f,onClose:N},{help:l(()=>s[8]||(s[8]=[D("ul",null,[D("li",null,[D("em",null,"domain; name; quota; default mailbox quota; enabled")]),D("li",null,[D("em",null,"domainalias; name; targeted domain; enabled")]),D("li",null,[D("em",null,"relaydomain; name; target host; target port; service; enabled; verify recipients")])],-1)])),_:1},8,["title"])]),_:1},8,["modelValue"])]))}},Za=de(oa,[["__scopeId","data-v-de80aa3f"]]);export{Za as default};
@@ -1 +1 @@
1
- import{i as $,_ as b,h as p,g as n,d as F,Z as z,$ as A,a0 as B,l as g,o as d,a as y,m as T,v as U,a1 as N,w,F as S,s as R,c as W,y as K,k as O,t as P}from"./index-BImkz5Jx.js";import{V as j}from"./VTextField-XoGTj1KG.js";import{a as Z,b as q,V as G}from"./forwardRefs-cvcnlhoK.js";import{u as H}from"./domains.store-D-vWCEIK.js";const J={__name:"EmailField",props:{modelValue:{type:String,default:""},allowAdd:{type:Boolean,default:!1},role:{type:String,default:$.USER},errorMsg:{type:Array,default:()=>[]}},emits:["domain-selected","update:model-value"],setup(x,{emit:E}){const h=H(),o=x,V=E,r=p({get(){return o.modelValue},set(e){v.value=[],e.indexOf("@")!==-1?(u.value=e.split("@")[1],o.allowAdd?t.value=s.value.length>0:t.value=!0):t.value=!1,V("update:model-value",e)}}),s=p(()=>Object.values(h.domains).filter(e=>e.name.startsWith(u.value))),v=p({get(){return[...D.value,...o.errorMsg]},set(e){D.value=e}}),u=n(""),l=n(0),t=n(!1),k=n(500),_=n(),D=n([]);function C(e){const a=e.keyCode;a===40||a===34?(t.value?M():(u.value="",t.value=!0),e.preventDefault()):a===38||a===33?(t.value?I():(u.value="",t.value=!0),e.preventDefault()):a===13||a===9?(s.value.length>0?c(s.value[l.value]):o.allowAdd&&c(),e.preventDefault()):a===27&&s.value.length>0&&(t.value=!1,e.preventDefault())}function M(){l.value>=s.value.length-1?l.value=0:l.value+=1}function I(){l.value<=0?l.value=s.value.length-1:l.value-=1}function c(e){e!==void 0&&(r.value=r.value.split("@")[0]+"@"+e.name),t.value=!1,V("domain-selected")}function m(){k.value=_.value.$el.clientWidth}return F(()=>{h.getDomains(),window.addEventListener("resize",m)}),z(()=>{window.removeEventListener("resize",m)}),A(()=>{B(()=>{m()})}),(e,a)=>(d(),g(S,null,[y(j,U({ref_key:"inputRef",ref:_,modelValue:r.value,"onUpdate:modelValue":a[0]||(a[0]=i=>r.value=i),variant:"outlined"},e.$attrs,{"error-messages":v.value,error:v.value.length>0,density:"compact",autocomplete:"new-password",onKeydown:C}),null,16,["modelValue","error-messages","error"]),t.value?(d(),g("div",{key:0,class:"menu",style:N(`width: ${k.value}px;`)},[y(G,{class:"list"},{default:w(()=>[(d(!0),g(S,null,R(s.value,(i,f)=>(d(),W(Z,{key:f,class:K(l.value===f?"bg-primary-lighten-1":""),onClick:L=>c(i),onMouseenter:L=>l.value=f},{default:w(()=>[y(q,null,{default:w(()=>[O(P(i.name),1)]),_:2},1024)]),_:2},1032,["class","onClick","onMouseenter"]))),128))]),_:1})],4)):T("",!0)],64))}},te=b(J,[["__scopeId","data-v-bed4b698"]]);export{te as E};
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-YIGRKgNA.js";import{V as P}from"./VTextField-C9VUP7V9.js";import{a as Z,b as q,V as G}from"./forwardRefs-DPrLRqxP.js";import{u as H}from"./domains.store-CfpnnBGo.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,g as w,c as g,o as i,w as s,a,f as m,d as le,Z as oe,z as se,B as ne,a0 as F,l as p,L as ie,aj as re,e as d,m as L,t as v,k as S,F as _,s as R,X as ue,Y as de,v as I}from"./index-BImkz5Jx.js";import{a as C}from"./webmail-CdU6CD9b.js";import{c as me}from"./contacts-BjghrPqZ.js";import{V as D,a as q}from"./forwardRefs-cvcnlhoK.js";import{V as f,c as A}from"./VAvatar-Cmga0vj6.js";import{a as W,V as ce,b as pe}from"./VCard-CxH9DWoK.js";import{V as ve}from"./VToolbar-CFZfqeOr.js";import{V as U}from"./VMenu-gUG70-zD.js";import{V as P}from"./VSpacer-DinPiXs9.js";import{V as fe}from"./VDialog-BcTg7w6P.js";import"./tag-B_yWNNJD.js";import"./ssrBoot-CKUX4kcb.js";import"./VProgressCircular-BtOPiGCg.js";/* empty css */const B={__name:"ContactCard",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(N){const l=te(N,"modelValue"),E=O(),{$gettext:M}=G(),{displayNotification:n}=H(),c=w(!1),x=async()=>{const V={emails:[{address:l.value.address,type:"other"}]};l.value.name?V.display_name=l.value.name:V.display_name=l.value.address,c.value=!0;let h;try{h=await me.createContact(V),l.value.contact_id=h.data.pk}finally{c.value=!1}n({msg:M("Contact added to address book")})},o=()=>{E.push({name:"ContactList"})};return(V,h)=>(i(),g(W,{"min-width":"300"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{subtitle:l.value.name?l.value.address:"",title:l.value.name||l.value.address},{append:s(()=>[l.value.contact_id?(i(),g(f,{key:1,icon:"mdi-pencil",variant:"text",loading:c.value,title:m(M)("Update contact"),onClick:o},null,8,["loading","title"])):(i(),g(f,{key:0,color:"secondary",icon:"mdi-card-account-mail-outline",variant:"text",loading:c.value,title:m(M)("Add to contacts"),onClick:x},null,8,["loading","title"]))]),_:1},8,["subtitle","title"])]),_:1})]),_:1}))}},ye={class:"bg-white rounded-lg pa-4 position-relative h-100"},ke={class:"d-flex mt-2"},ge={class:"text-grey text-body-2"},Ve={class:"text-grey"},be={class:"mt-2 text-grey"},_e={key:0},we={key:0,class:"mt-2"},xe=["onClick"],Ne={__name:"EmailView",setup(N){const{$gettext:l}=G(),{displayNotification:E,reloadMailboxCounters:M}=H(),n=ne(),c=O(),x=w(!1),o=w(null),V=w(null),h=w(null),T=w(!1),$=w(!1),y=w(!1);le(()=>{window.addEventListener("resize",z),j()}),oe(()=>{window.removeEventListener("resize",z)}),se(x,()=>{j()});const X=()=>{c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}})},z=()=>{const u=document.querySelector("iframe"),e=h.value.getBoundingClientRect();u.style.top=`${e.bottom}px`,u.style.width=`${e.width-24}px`,u.style.height=`${window.innerHeight-e.bottom-32}px`},j=()=>{const u={dformat:"html",links:x.value?"1":"0"};C.getEmailContent(n.query.mailbox,n.query.mailid,u).then(e=>{M(),o.value=e.data,F(()=>{const k=document.createElement("iframe");k.classList.add("email-frame"),document.querySelector("iframe").replaceWith(k);const t=k.contentDocument;t.write(o.value.body),t.close(),T.value=!0,F(z)})})},Y=(u,e)=>{C.getEmailAttachment(n.query.mailbox,n.query.mailid,e).then(k=>{const t=new Blob([k.data],{type:k.headers["Content-Type"]}),r=document.createElement("a");r.href=URL.createObjectURL(t),r.download=u,r.click(),URL.revokeObjectURL(r.href)})},Z=()=>{y.value=!0,C.deleteSelection(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message deleted")})})},K=()=>{y.value=!0,C.markSelectionAsJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as junk")})})},Q=()=>{y.value=!0,C.markSelectionAsNotJunk(n.query.mailbox,[n.query.mailid]).then(()=>{y.value=!1,c.push({name:"MailboxView",query:{mailbox:n.query.mailbox}}),E({msg:l("Message marked as not junk")})})},ee=async()=>{if(!V.value){const u=await C.getEmailSource(n.query.mailbox,n.query.mailid);V.value=u.data.source}$.value=!0},J=u=>{const e={...n.query};u&&(e.all=u),c.push({name:"ReplyEmailView",query:e})},ae=()=>{c.push({name:"ForwardEmailView",query:n.query})};return(u,e)=>{var k;return i(),p(_,null,[ie(d("div",ye,[a(ve,{color:"white"},{default:s(()=>[a(f,{icon:"mdi-arrow-left",size:"small",variant:"flat",onClick:X}),a(f,{color:"primary",variant:"tonal","prepend-icon":"mdi-reply",onClick:e[1]||(e[1]=()=>J())},{append:s(()=>[a(f,{size:"x-small",variant:"plain"},{default:s(()=>[a(A,{icon:"mdi-chevron-down"}),a(U,{activator:"parent"},{default:s(()=>[a(D,null,{default:s(()=>[a(q,{title:m(l)("Reply all"),onClick:e[0]||(e[0]=()=>J(!0))},null,8,["title"]),a(q,{title:m(l)("Forward"),onClick:ae},null,8,["title"])]),_:1})]),_:1})]),_:1})]),default:s(()=>[S(v(m(l)("Reply"))+" ",1)]),_:1}),a(f,{class:"ml-2",color:"error",variant:"tonal",icon:"mdi-trash-can",size:"small",loading:y.value,onClick:Z},null,8,["loading"]),m(n).params.mailbox!=="Junk"?(i(),g(f,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:y.value,onClick:K},null,8,["loading"])):(i(),g(f,{key:1,class:"ml-2",color:"success",variant:"tonal",icon:"mdi-thumb-up",size:"small",loading:y.value,onClick:Q},null,8,["loading"])),a(f,{class:"ml-2",variant:"tonal",icon:"",size:"small"},{default:s(()=>[a(A,{icon:"mdi-cog"}),a(U,{activator:"parent"},{default:s(()=>[a(D,{density:"compact"},{default:s(()=>[x.value?(i(),g(q,{key:1,title:m(l)("Disable links"),onClick:e[3]||(e[3]=t=>x.value=!1)},null,8,["title"])):(i(),g(q,{key:0,title:m(l)("Enable links"),onClick:e[2]||(e[2]=t=>x.value=!0)},null,8,["title"])),a(q,{title:m(l)("Display source"),onClick:ee},null,8,["title"])]),_:1})]),_:1})]),_:1})]),_:1}),o.value?(i(),p("div",{key:0,ref_key:"headers",ref:h,class:"bg-white pa-4"},[d("h2",null,v(o.value.subject),1),d("div",ke,[a(U,{key:"sender"},{activator:s(({props:t})=>[d("h3",ue(de(t)),[o.value.from_address.name?(i(),p(_,{key:0},[S(v(o.value.from_address.name)+" ",1),d("span",ge," <"+v(o.value.from_address.address)+"> ",1)],64)):(i(),p(_,{key:1},[S(v(o.value.from_address.address),1)],64))],16)]),default:s(()=>[a(B,{modelValue:o.value.from_address,"onUpdate:modelValue":e[4]||(e[4]=t=>o.value.from_address=t)},null,8,["modelValue"])]),_:1}),a(P),d("span",Ve,v(o.value.date),1)]),d("div",be,[S(v(m(l)("To"))+" ",1),(i(!0),p(_,null,R(o.value.to,(t,r)=>(i(),g(U,{key:`to-${r}`},{activator:s(({props:b})=>[r>0?(i(),p("span",_e,", ")):L("",!0),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.to[r],"onUpdate:modelValue":b=>o.value.to[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),(k=o.value.cc)!=null&&k.length?(i(!0),p(_,{key:0},R(o.value.cc,(t,r)=>(i(),g(U,{key:`cc-${r}`},{activator:s(({props:b})=>[e[7]||(e[7]=d("span",null,", ",-1)),d("span",I({ref_for:!0},b),v(t.name||t.address),17)]),default:s(()=>[a(B,{modelValue:o.value.cc[r],"onUpdate:modelValue":b=>o.value.cc[r]=b},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024))),128)):L("",!0)]),o.value.attachments.length?(i(),p("div",we,[a(A,{icon:"mdi-paperclip"}),(i(!0),p(_,null,R(o.value.attachments,(t,r)=>(i(),p(_,{key:t.name},[r>0?(i(),p(_,{key:0},[S(", ")],64)):L("",!0),d("a",{href:"#",onClick:b=>Y(t.name,t.partnum)},v(t.name),9,xe)],64))),128))])):L("",!0)],512)):L("",!0),e[8]||(e[8]=d("iframe",{class:"email-frame"},null,-1))],512),[[re,T.value]]),a(fe,{modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=t=>$.value=t),"max-width":"1200"},{default:s(()=>[a(W,{title:m(l)("Message source")},{default:s(()=>[a(ce,{class:"text-caption overflow-x-auto"},{default:s(()=>[d("pre",null,v(V.value),1)]),_:1}),a(pe,null,{default:s(()=>[a(P),a(f,{text:m(l)("Close"),onClick:e[5]||(e[5]=t=>$.value=!1)},null,8,["text"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])],64)}}};export{Ne as default};
1
+ import{A as te,q as O,b as G,n as H,h as w,c as V,o as i,w as s,a,f as m,d as le,Z as oe,z as se,B as ne,a0 as F,l as p,L as ie,aj as re,e as d,m as L,t as v,k as S,F as _,s as R,X as ue,Y as de,v as I}from"./index-YIGRKgNA.js";import{a as C}from"./webmail-DRyN8JIK.js";import{c as me}from"./contacts-Dx240BT8.js";import{V as D,a as q}from"./forwardRefs-DPrLRqxP.js";import{V as f,c as A}from"./VAvatar-J563boKh.js";import{a as W,V as ce,b as pe}from"./VCard-CJ2oGh_i.js";import{V as ve}from"./VToolbar-Cs-fVa4M.js";import{V as U}from"./VMenu-DDmBlbM8.js";import{V as P}from"./VSpacer-BWZq1PhD.js";import{V as fe}from"./VDialog-CaQnQSDn.js";import"./tag-DV1_zOzl.js";import"./ssrBoot-CpJ-7WlH.js";import"./VProgressCircular-CtqQON49.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 g={emails:[{address:l.value.address,type:"other"}]};l.value.name?g.display_name=l.value.name:g.display_name=l.value.address,c.value=!0;let h;try{h=await me.createContact(g),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(g,h)=>(i(),V(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(),V(f,{key:1,icon:"mdi-pencil",variant:"text",loading:c.value,title:m(M)("Update contact"),onClick:o},null,8,["loading","title"])):(i(),V(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"},Ve={class:"text-grey text-body-2"},ge={class:"text-grey"},be={class:"mt-2 text-grey"},_e={key:0},we={key:0,class:"mt-2"},xe=["onClick"],Ne={__name:"EmailView",setup(N){const{$gettext:l}=G(),{displayNotification:E,reloadMailboxCounters:M}=H(),n=ne(),c=O(),x=w(!1),o=w(null),g=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(!g.value){const u=await C.getEmailSource(n.query.mailbox,n.query.mailid);g.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(),V(f,{key:0,class:"ml-2",color:"warning",variant:"tonal",icon:"mdi-fire",size:"small",loading:y.value,onClick:K},null,8,["loading"])):(i(),V(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(),V(q,{key:1,title:m(l)("Disable links"),onClick:e[3]||(e[3]=t=>x.value=!1)},null,8,["title"])):(i(),V(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",Ve," <"+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",ge,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(),V(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(),V(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(g.value),1)]),_:1}),a(pe,null,{default:s(()=>[a(P),a(f,{text:m(l)("Close"),onClick:e[5]||(e[5]=t=>$.value=!1)},null,8,["text"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"])],64)}}};export{Ne as default};
@@ -0,0 +1 @@
1
+ import{V as s,a as c}from"./VApp-C74A9rX5.js";import{r as m,c as t,o as e,w as o,a as r}from"./index-YIGRKgNA.js";import"./tag-DV1_zOzl.js";import"./layout-BM4C5b2r.js";import"./ssrBoot-CpJ-7WlH.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,g as f,c as k,o as c,w as v,a as t,f as l,ad as g,h as ne,z as G,e as $,l as S,m as R,t as L,F as j,s as Z,B as we,q as he,v as ie,k as ee}from"./index-BImkz5Jx.js";import{V as oe,r as N}from"./VForm-D5iPGkde.js";import{V as me,b as de,a as ce}from"./VCard-CxH9DWoK.js";import{V as I}from"./VTextField-XoGTj1KG.js";import{V as fe}from"./VSwitch-DwxdeAEq.js";import{c as ve}from"./forwardRefs-cvcnlhoK.js";import{V as pe}from"./VSpacer-DinPiXs9.js";import{V as F,c as Ce}from"./VAvatar-Cmga0vj6.js";import{a as _e,V as te}from"./VRadioGroup-DIFZKSn-.js";import{V as J}from"./VSelect-C3RjAa45.js";import{V as Se}from"./VCheckbox-62GOpvvP.js";import{_ as re}from"./MenuItems-PXjiG-fs.js";import{V as xe}from"./VToolbar-CFZfqeOr.js";import{V as Ue}from"./VDataTable-Bh8NbVSx.js";import{V as se}from"./VDialog-BcTg7w6P.js";import{V as Ae}from"./VAutocomplete-Dwv6_Rzq.js";import{V as ue}from"./VMenu-gUG70-zD.js";import{V as Ne}from"./VTextarea-wBlRMIv_.js";import"./tag-B_yWNNJD.js";import"./VInput-CoDJzvaW.js";import"./VProgressCircular-BtOPiGCg.js";import"./VSelectionControl-zyz-fJvC.js";import"./ssrBoot-CKUX4kcb.js";/* empty css */import"./VCheckboxBtn-DMoNtKT8.js";import"./VChip-D_styETR.js";import"./VTable-DaLxa4FO.js";import"./filter-C82FUCw_.js";const $e={__name:"FilterSetForm",emits:["close"],setup(P,{emit:O}){const{$gettext:p}=le(),w=O,i=ae(),n=f({}),h=f(),b=f(!1);function a(){h.value.reset(),n.value={},w("close")}async function U(){const{valid:u}=await h.value.validate();if(u){b.value=!0;try{await g.createFilterSet(n.value),i.displayNotification({msg:p("Filter set created")}),a()}finally{b.value=!1}}}return(u,C)=>(c(),k(ce,{title:l(p)("Create a new filter set")},{default:v(()=>[t(me,null,{default:v(()=>[t(oe,{ref_key:"formRef",ref:h},{default:v(()=>[t(I,{modelValue:n.value.name,"onUpdate:modelValue":C[0]||(C[0]=_=>n.value.name=_),label:l(p)("Name"),variant:"outlined",rules:[l(N).required]},null,8,["modelValue","label","rules"]),t(fe,{label:l(p)("Active"),modelValue:n.value.active,"onUpdate:modelValue":C[1]||(C[1]=_=>n.value.active=_),color:"primary"},null,8,["label","modelValue"])]),_:1},512)]),_:1}),t(ve),t(de,null,{default:v(()=>[t(pe),t(F,{text:l(p)("Cancel"),variant:"plain",onClick:a},null,8,["text"]),t(F,{color:"primary",text:l(p)("Create"),onClick:U},null,8,["text"])]),_:1})]),_:1},8,["title"]))}},Re={class:"bg-grey-lighten-4 rounded pa-3"},Te={class:"mt-4 bg-grey-lighten-4 rounded pa-3"},qe={class:"mx-2 d-flex flex-column flex-grow-1"},De={__name:"FilterForm",props:{filterSet:{type:String,default:null},filter:{type:Object,required:!1,default:null}},emits:["close"],setup(P,{emit:O}){const p=P,w=O,i=ae(),{$gettext:n}=le(),h=f({}),b=f([]),a=f([]),U=f(),u=f(x()),C=f(!1),_=ne(()=>p.filter?n("Edit filter"):n("New filter")),M=ne(()=>p.filter?n("Update"):n("Create"));let B;G(()=>p.filter,d=>{d?(u.value=JSON.parse(JSON.stringify(d)),B=d.name):u.value=x()},{immediate:!0});function T(){w("close"),u.value=x()}function x(){return{match_type:"anyof",conditions:[{}],actions:[{args:{}}]}}function H(d){for(const V of b.value)if(V.name===d)return V.operators;return[]}function K(d){for(const V of b.value)if(V.name===u.value.conditions[d].name){for(const r of V.operators)if(r.name===u.value.conditions[d].operator)return r.type==="string"?"text":"number"}}function Q(d){for(const V of a.value)if(V.name===d)return V.args;return[]}function W(){u.value.conditions.push({name:b.value[0].name,operator:b.value[0].operators[0].name})}function z(d){u.value.conditions.splice(d,1)}function A(){u.value.actions.push({name:a.value[0].name,args:{}})}function X(d){u.value.actions.splice(d,1)}async function Y(){const{valid:d}=await U.value.validate();if(!d)return;C.value=!0;let V;const r=JSON.parse(JSON.stringify(u.value));for(const y of r.actions)for(const[m,E]of Object.entries(y.args))typeof E=="boolean"&&!E&&delete y.args[m];try{p.filter?(await g.updateFilter(p.filterSet,B,r),V=n("Filter updated")):(await g.createFilter(p.filterSet,r),V=n("Filter added"))}catch(y){y.response.status===400&&y.response.data&&(h.value=y.response.data);return}finally{C.value=!1}i.displayNotification({msg:V}),T()}return g.getFilterConditionTemplates().then(d=>{b.value=d.data,p.filter||(u.value.conditions[0].name=b.value[0].name,u.value.conditions[0].operator=b.value[0].operators[0].name)}),g.getFilterActionTemplates().then(d=>{a.value=d.data,p.filter||(u.value.actions[0].name=a.value[0].name)}),(d,V)=>(c(),k(ce,{title:_.value},{default:v(()=>[t(me,null,{default:v(()=>[t(oe,{ref_key:"formRef",ref:U},{default:v(()=>[t(I,{modelValue:u.value.name,"onUpdate:modelValue":V[0]||(V[0]=r=>u.value.name=r),label:l(n)("Name"),variant:"outlined",density:"compact",rules:[l(N).required],"error-messages":h.value.name?h.value.name:[]},null,8,["modelValue","label","rules","error-messages"]),$("div",Re,[$("h4",null,L(l(n)("Conditions")),1),t(_e,{modelValue:u.value.match_type,"onUpdate:modelValue":V[1]||(V[1]=r=>u.value.match_type=r),color:"primary",inline:""},{default:v(()=>[t(te,{label:l(n)("All of the following"),value:"allof"},null,8,["label"]),t(te,{label:l(n)("Any of the following"),value:"anyof"},null,8,["label"]),t(te,{label:l(n)("All messages"),value:"all"},null,8,["label"])]),_:1},8,["modelValue"]),u.value.match_type!=="all"?(c(!0),S(j,{key:0},Z(u.value.conditions,(r,y)=>(c(),S("div",{key:`condition-${y}`,class:"d-flex align-start"},[t(J,{modelValue:r.name,"onUpdate:modelValue":m=>r.name=m,label:l(n)("Choose a header"),items:b.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),t(J,{modelValue:r.operator,"onUpdate:modelValue":m=>r.operator=m,label:l(n)("Choose an operator"),items:H(r.name),"item-title":"label","item-value":"name",variant:"outlined",class:"ml-2",density:"compact",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),t(I,{modelValue:r.value,"onUpdate:modelValue":m=>r.value=m,label:l(n)("Value"),variant:"outlined",class:"ml-2",density:"compact",type:K(y),rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","type","rules"]),y===0?(c(),k(F,{key:0,icon:"mdi-plus",variant:"text",title:l(n)("Add condition"),color:"primary",onClick:W},null,8,["title"])):(c(),k(F,{key:1,icon:"mdi-trash-can",variant:"text",title:l(n)("Remove condition"),color:"error",onClick:m=>z(y)},null,8,["title","onClick"]))]))),128)):R("",!0)]),$("div",Te,[$("h4",null,L(l(n)("Actions")),1),(c(!0),S(j,null,Z(u.value.actions,(r,y)=>(c(),S("div",{key:`action-${y}`,class:"d-flex align-start mt-2"},[t(J,{modelValue:r.name,"onUpdate:modelValue":m=>r.name=m,label:l(n)("Choose an action"),items:a.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",class:"flex-grow-0"},null,8,["modelValue","onUpdate:modelValue","label","items"]),$("div",qe,[(c(!0),S(j,null,Z(Q(r.name),(m,E)=>(c(),S(j,{key:`arg-${y}-${E}`},[m.type==="list"?(c(),k(J,{key:0,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,items:m.choices,"item-title":"label",density:"compact",variant:"outlined",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","items","rules"])):R("",!0),m.type==="string"?(c(),k(I,{key:1,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,density:"compact",variant:"outlined",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","rules"])):R("",!0),m.type==="boolean"?(c(),k(Se,{key:2,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,label:m.label,color:"primary",value:m.value,density:"compact"},null,8,["modelValue","onUpdate:modelValue","label","value"])):R("",!0)],64))),128))]),y===0?(c(),k(F,{key:0,icon:"mdi-plus",variant:"text",title:l(n)("Add action"),color:"primary",onClick:A},null,8,["title"])):(c(),k(F,{key:1,icon:"mdi-trash-can",variant:"text",title:l(n)("Remove action"),color:"error",onClick:m=>X(y)},null,8,["title","onClick"]))]))),128))])]),_:1},512)]),_:1}),t(ve),t(de,null,{default:v(()=>[t(pe),t(F,{text:l(n)("Cancel"),variant:"elevated",onClick:T},null,8,["text"]),t(F,{color:"primary",variant:"elevated",text:M.value,loading:C.value,onClick:Y},null,8,["text","loading"])]),_:1})]),_:1},8,["title"]))}},je={class:"pa-4"},Oe={class:"text-h6 font-weight-regular mb-4"},Be={key:0,class:"bg-white mt-4 pa-2"},Ee={class:"d-flex align-center"},vt={__name:"FiltersView",setup(P){const O=he(),p=we(),w=ae(),{$gettext:i}=le(),n=f([]),h=f([]),b=f(""),a=f(),U=f(!1),u=f([]),C=f(),_=f(!1),M=f(!1),B=f(null),T=f(!1),x=f(!1),H=[{title:i("Name"),key:"name"},{title:i("Active"),key:"enabled"},{title:"",key:"filter_actions",align:"end"}];G(a,e=>{e?(A(e.name),p.params.filterset!==e.name&&O.push({name:"AccountFilters",params:{filterset:e.name}})):O.push({name:"AccountFilters"})}),G(_,e=>{e?g.downloadFilterSet(a.value.name).then(o=>{b.value=o.data}):A(a.value.name)}),G(b,()=>{u.value.length&&(u.value=[])});function K(e){let o=e.name;return e.active?o+=" ("+i("active")+")":o+=" ("+i("inactive")+")",o}function Q(){T.value=!1,z()}function W(){x.value=!1,B.value=null,A(a.value.name)}function z(){g.getFilterSets().then(e=>{if(e.data.length>0&&e.data[0].active&&e.data[0].name===null?n.value=e.data.slice(1):n.value=e.data,!a.value&&p.params.filterset){for(const o of n.value)if(o.name===p.params.filterset){a.value=o;break}}})}function A(e){U.value=!0,g.getFilters(e).then(o=>{h.value=o.data,U.value=!1}).catch(o=>{o.response.status===518&&(_.value=!0,w.displayNotification({msg:i("Failed to display template. Using raw mode"),type:"warning"}))})}function X(e){B.value=e,x.value=!0}function Y(e){g.enableFilter(a.value.name,e.name).then(()=>{e.enabled=!0,w.displayNotification({msg:i("Filter enabled")})})}function d(e){g.disableFilter(a.value.name,e.name).then(()=>{e.enabled=!1,w.displayNotification({msg:i("Filter disabled")})})}function V(e){g.deleteFilter(a.value.name,e.name).then(()=>{w.displayNotification({msg:i("Filter removed")}),A(a.value.name)})}async function r(e){await g.moveFilterDown(a.value.name,e.name),A(a.value.name)}async function y(e){await g.moveFilterUp(a.value.name,e.name),A(a.value.name)}async function m(e){await g.activateFilterSet(e.name),w.displayNotification({msg:i("Filter set activated")})}async function E(e){await g.deleteFilterSet(e.name),w.displayNotification({msg:i("Filter set removed")}),a.value=null,z()}async function q(){const{valid:e}=await C.value.validate();if(!e)return;const o={content:b.value};M.value=!0;try{await g.saveFilterSet(a.value.name,o),w.displayNotification({msg:i("Filter set updated")})}catch(s){s.response.status===400&&s.response.data.content&&(u.value=s.response.data.content)}finally{M.value=!1}}async function Ve(e){const o=await g.downloadFilterSet(e.name),s=new Blob([o.data],{type:"text/plain"}),D=document.createElement("a");D.href=URL.createObjectURL(s),D.download=`${e.name}.txt`,D.click(),URL.revokeObjectURL(D.href)}const ye=[{label:i("Edit"),icon:"mdi-circle-edit-outline",onClick:X},{label:i("Delete"),icon:"mdi-delete-outline",onClick:V,color:"red"}];function be(e,o){const s=[...ye];return e.enabled?s.push({label:i("Disable"),icon:"mdi-stop",color:"red",onClick:d}):s.push({label:i("Enable"),icon:"mdi-check",color:"success",onClick:Y}),o!==h.value.length-1&&s.push({label:i("Move down"),icon:"mdi-arrow-down",onClick:r}),o!==0&&s.push({label:i("Move up"),icon:"mdi-arrow-up",onClick:y}),s}const ge=[{label:i("Download filter set"),icon:"mdi-download",onClick:Ve},{label:i("Delete filter set"),color:"error",icon:"mdi-trash-can",onClick:E}];function Fe(){const e=[];return a.value.active||e.push({label:i("Activate filter set"),color:"success",icon:"mdi-check",onClick:m}),e.concat(ge)}return z(),(e,o)=>(c(),S(j,null,[$("div",je,[$("div",Oe,L(l(i)("Message filters")),1),t(xe,{color:"white",flat:""},{default:v(()=>[t(Ae,{modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=s=>a.value=s),label:l(i)("Select a filter set"),items:n.value,"item-title":K,"return-object":"",variant:"outlined","hide-details":"",class:"flex-grow-0",style:{width:"200px"},density:"compact"},null,8,["modelValue","label","items"]),t(F,{color:"primary",icon:"mdi-plus",size:"small",class:"mx-4",title:l(i)("Add filter set"),onClick:o[1]||(o[1]=s=>T.value=!0)},null,8,["title"]),a.value?(c(),k(ue,{key:0},{activator:v(({props:s})=>[t(F,ie({icon:"mdi-dots-vertical"},s,{size:"small",color:"default"}),null,16)]),default:v(()=>[t(re,{items:Fe(),obj:a.value},null,8,["items","obj"])]),_:1})):R("",!0),a.value?(c(),k(fe,{key:1,modelValue:_.value,"onUpdate:modelValue":o[2]||(o[2]=s=>_.value=s),label:l(i)("Raw mode"),color:"primary",class:"ml-4","hide-details":""},null,8,["modelValue","label"])):R("",!0)]),_:1}),a.value?(c(),S("div",Be,[_.value?(c(),S(j,{key:1},[t(oe,{ref_key:"rawFormRef",ref:C},{default:v(()=>[t(Ne,{modelValue:b.value,"onUpdate:modelValue":o[4]||(o[4]=s=>b.value=s),variant:"outlined","auto-grow":"",rules:[l(N).required],"error-messages":u.value},null,8,["modelValue","rules","error-messages"])]),_:1},512),t(F,{color:"success",loading:M.value,class:"mt-2",onClick:q},{default:v(()=>[ee(L(l(i)("Save")),1)]),_:1},8,["loading"])],64)):(c(),S(j,{key:0},[$("div",Ee,[t(F,{color:"primary",title:l(i)("Add new filter"),class:"mx-auto",onClick:o[3]||(o[3]=s=>x.value=!0)},{default:v(()=>[t(Ce,{icon:"mdi-plus"}),ee(" "+L(l(i)("Add")),1)]),_:1},8,["title"])]),t(Ue,{headers:H,items:h.value,loading:U.value},{"item.enabled":v(({item:s})=>[ee(L(e.$yesno(s.enabled)),1)]),"item.filter_actions":v(({index:s,item:D})=>[t(ue,{"offset-y":""},{activator:v(({props:ke})=>[t(F,ie({icon:"mdi-dots-horizontal",variant:"text"},ke),null,16)]),default:v(()=>[t(re,{items:be(D,s),obj:D},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["items","loading"])],64))])):R("",!0)]),t(se,{modelValue:T.value,"onUpdate:modelValue":o[5]||(o[5]=s=>T.value=s),"max-width":"600"},{default:v(()=>[t($e,{onClose:Q})]),_:1},8,["modelValue"]),t(se,{modelValue:x.value,"onUpdate:modelValue":o[6]||(o[6]=s=>x.value=s),"max-width":"800"},{default:v(()=>[a.value?(c(),k(De,{key:0,"filter-set":a.value.name,filter:B.value,onClose:W},null,8,["filter-set","filter"])):R("",!0)]),_:1},8,["modelValue"])],64))}};export{vt as default};
1
+ import{b as le,n as ae,h as f,c as k,o as c,w as v,a as t,f as l,ad as g,i as ne,z as G,e as $,l as S,m as R,t as L,F as j,s as Z,B as we,q as he,v as ie,k as ee}from"./index-YIGRKgNA.js";import{V as oe,r as N}from"./VForm-BwTUBf4u.js";import{V as me,b as de,a as ce}from"./VCard-CJ2oGh_i.js";import{V as I}from"./VTextField-C9VUP7V9.js";import{V as fe}from"./VSwitch-CixaedmQ.js";import{c as ve}from"./forwardRefs-DPrLRqxP.js";import{V as pe}from"./VSpacer-BWZq1PhD.js";import{V as F,c as Ce}from"./VAvatar-J563boKh.js";import{a as _e,V as te}from"./VRadioGroup-WW8uMAv4.js";import{V as J}from"./VSelect-Cdh0qO5m.js";import{V as Se}from"./VCheckbox-VicuXIJq.js";import{_ as re}from"./MenuItems-BRChEdLp.js";import{V as xe}from"./VToolbar-Cs-fVa4M.js";import{V as Ue}from"./VDataTable-CAT0QYJz.js";import{V as se}from"./VDialog-CaQnQSDn.js";import{V as Ae}from"./VAutocomplete-Bg2AlW_n.js";import{V as ue}from"./VMenu-DDmBlbM8.js";import{V as Ne}from"./VTextarea-B28SmJ2v.js";import"./tag-DV1_zOzl.js";import"./VInput-Dpmea5z9.js";import"./VProgressCircular-CtqQON49.js";import"./VSelectionControl-BN-zQ3C6.js";import"./ssrBoot-CpJ-7WlH.js";/* empty css */import"./VCheckboxBtn-CLh3m66z.js";import"./VChip-DvxO74Mw.js";import"./VTable-DO7ofPSj.js";import"./filter-C_GJovn5.js";const $e={__name:"FilterSetForm",emits:["close"],setup(P,{emit:O}){const{$gettext:p}=le(),w=O,i=ae(),n=f({}),h=f(),b=f(!1);function a(){h.value.reset(),n.value={},w("close")}async function U(){const{valid:u}=await h.value.validate();if(u){b.value=!0;try{await g.createFilterSet(n.value),i.displayNotification({msg:p("Filter set created")}),a()}finally{b.value=!1}}}return(u,C)=>(c(),k(ce,{title:l(p)("Create a new filter set")},{default:v(()=>[t(me,null,{default:v(()=>[t(oe,{ref_key:"formRef",ref:h},{default:v(()=>[t(I,{modelValue:n.value.name,"onUpdate:modelValue":C[0]||(C[0]=_=>n.value.name=_),label:l(p)("Name"),variant:"outlined",rules:[l(N).required]},null,8,["modelValue","label","rules"]),t(fe,{label:l(p)("Active"),modelValue:n.value.active,"onUpdate:modelValue":C[1]||(C[1]=_=>n.value.active=_),color:"primary"},null,8,["label","modelValue"])]),_:1},512)]),_:1}),t(ve),t(de,null,{default:v(()=>[t(pe),t(F,{text:l(p)("Cancel"),variant:"plain",onClick:a},null,8,["text"]),t(F,{color:"primary",text:l(p)("Create"),onClick:U},null,8,["text"])]),_:1})]),_:1},8,["title"]))}},Re={class:"bg-grey-lighten-4 rounded pa-3"},Te={class:"mt-4 bg-grey-lighten-4 rounded pa-3"},qe={class:"mx-2 d-flex flex-column flex-grow-1"},De={__name:"FilterForm",props:{filterSet:{type:String,default:null},filter:{type:Object,required:!1,default:null}},emits:["close"],setup(P,{emit:O}){const p=P,w=O,i=ae(),{$gettext:n}=le(),h=f({}),b=f([]),a=f([]),U=f(),u=f(x()),C=f(!1),_=ne(()=>p.filter?n("Edit filter"):n("New filter")),M=ne(()=>p.filter?n("Update"):n("Create"));let B;G(()=>p.filter,d=>{d?(u.value=JSON.parse(JSON.stringify(d)),B=d.name):u.value=x()},{immediate:!0});function T(){w("close"),u.value=x()}function x(){return{match_type:"anyof",conditions:[{}],actions:[{args:{}}]}}function H(d){for(const V of b.value)if(V.name===d)return V.operators;return[]}function K(d){for(const V of b.value)if(V.name===u.value.conditions[d].name){for(const r of V.operators)if(r.name===u.value.conditions[d].operator)return r.type==="string"?"text":"number"}}function Q(d){for(const V of a.value)if(V.name===d)return V.args;return[]}function W(){u.value.conditions.push({name:b.value[0].name,operator:b.value[0].operators[0].name})}function z(d){u.value.conditions.splice(d,1)}function A(){u.value.actions.push({name:a.value[0].name,args:{}})}function X(d){u.value.actions.splice(d,1)}async function Y(){const{valid:d}=await U.value.validate();if(!d)return;C.value=!0;let V;const r=JSON.parse(JSON.stringify(u.value));for(const y of r.actions)for(const[m,E]of Object.entries(y.args))typeof E=="boolean"&&!E&&delete y.args[m];try{p.filter?(await g.updateFilter(p.filterSet,B,r),V=n("Filter updated")):(await g.createFilter(p.filterSet,r),V=n("Filter added"))}catch(y){y.response.status===400&&y.response.data&&(h.value=y.response.data);return}finally{C.value=!1}i.displayNotification({msg:V}),T()}return g.getFilterConditionTemplates().then(d=>{b.value=d.data,p.filter||(u.value.conditions[0].name=b.value[0].name,u.value.conditions[0].operator=b.value[0].operators[0].name)}),g.getFilterActionTemplates().then(d=>{a.value=d.data,p.filter||(u.value.actions[0].name=a.value[0].name)}),(d,V)=>(c(),k(ce,{title:_.value},{default:v(()=>[t(me,null,{default:v(()=>[t(oe,{ref_key:"formRef",ref:U},{default:v(()=>[t(I,{modelValue:u.value.name,"onUpdate:modelValue":V[0]||(V[0]=r=>u.value.name=r),label:l(n)("Name"),variant:"outlined",density:"compact",rules:[l(N).required],"error-messages":h.value.name?h.value.name:[]},null,8,["modelValue","label","rules","error-messages"]),$("div",Re,[$("h4",null,L(l(n)("Conditions")),1),t(_e,{modelValue:u.value.match_type,"onUpdate:modelValue":V[1]||(V[1]=r=>u.value.match_type=r),color:"primary",inline:""},{default:v(()=>[t(te,{label:l(n)("All of the following"),value:"allof"},null,8,["label"]),t(te,{label:l(n)("Any of the following"),value:"anyof"},null,8,["label"]),t(te,{label:l(n)("All messages"),value:"all"},null,8,["label"])]),_:1},8,["modelValue"]),u.value.match_type!=="all"?(c(!0),S(j,{key:0},Z(u.value.conditions,(r,y)=>(c(),S("div",{key:`condition-${y}`,class:"d-flex align-start"},[t(J,{modelValue:r.name,"onUpdate:modelValue":m=>r.name=m,label:l(n)("Choose a header"),items:b.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),t(J,{modelValue:r.operator,"onUpdate:modelValue":m=>r.operator=m,label:l(n)("Choose an operator"),items:H(r.name),"item-title":"label","item-value":"name",variant:"outlined",class:"ml-2",density:"compact",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","items","rules"]),t(I,{modelValue:r.value,"onUpdate:modelValue":m=>r.value=m,label:l(n)("Value"),variant:"outlined",class:"ml-2",density:"compact",type:K(y),rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","label","type","rules"]),y===0?(c(),k(F,{key:0,icon:"mdi-plus",variant:"text",title:l(n)("Add condition"),color:"primary",onClick:W},null,8,["title"])):(c(),k(F,{key:1,icon:"mdi-trash-can",variant:"text",title:l(n)("Remove condition"),color:"error",onClick:m=>z(y)},null,8,["title","onClick"]))]))),128)):R("",!0)]),$("div",Te,[$("h4",null,L(l(n)("Actions")),1),(c(!0),S(j,null,Z(u.value.actions,(r,y)=>(c(),S("div",{key:`action-${y}`,class:"d-flex align-start mt-2"},[t(J,{modelValue:r.name,"onUpdate:modelValue":m=>r.name=m,label:l(n)("Choose an action"),items:a.value,"item-title":"label","item-value":"name",variant:"outlined",density:"compact",class:"flex-grow-0"},null,8,["modelValue","onUpdate:modelValue","label","items"]),$("div",qe,[(c(!0),S(j,null,Z(Q(r.name),(m,E)=>(c(),S(j,{key:`arg-${y}-${E}`},[m.type==="list"?(c(),k(J,{key:0,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,items:m.choices,"item-title":"label",density:"compact",variant:"outlined",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","items","rules"])):R("",!0),m.type==="string"?(c(),k(I,{key:1,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,density:"compact",variant:"outlined",rules:[l(N).required]},null,8,["modelValue","onUpdate:modelValue","rules"])):R("",!0),m.type==="boolean"?(c(),k(Se,{key:2,modelValue:r.args[m.name],"onUpdate:modelValue":q=>r.args[m.name]=q,label:m.label,color:"primary",value:m.value,density:"compact"},null,8,["modelValue","onUpdate:modelValue","label","value"])):R("",!0)],64))),128))]),y===0?(c(),k(F,{key:0,icon:"mdi-plus",variant:"text",title:l(n)("Add action"),color:"primary",onClick:A},null,8,["title"])):(c(),k(F,{key:1,icon:"mdi-trash-can",variant:"text",title:l(n)("Remove action"),color:"error",onClick:m=>X(y)},null,8,["title","onClick"]))]))),128))])]),_:1},512)]),_:1}),t(ve),t(de,null,{default:v(()=>[t(pe),t(F,{text:l(n)("Cancel"),variant:"elevated",onClick:T},null,8,["text"]),t(F,{color:"primary",variant:"elevated",text:M.value,loading:C.value,onClick:Y},null,8,["text","loading"])]),_:1})]),_:1},8,["title"]))}},je={class:"pa-4"},Oe={class:"text-h6 font-weight-regular mb-4"},Be={key:0,class:"bg-white mt-4 pa-2"},Ee={class:"d-flex align-center"},vt={__name:"FiltersView",setup(P){const O=he(),p=we(),w=ae(),{$gettext:i}=le(),n=f([]),h=f([]),b=f(""),a=f(),U=f(!1),u=f([]),C=f(),_=f(!1),M=f(!1),B=f(null),T=f(!1),x=f(!1),H=[{title:i("Name"),key:"name"},{title:i("Active"),key:"enabled"},{title:"",key:"filter_actions",align:"end"}];G(a,e=>{e?(A(e.name),p.params.filterset!==e.name&&O.push({name:"AccountFilters",params:{filterset:e.name}})):O.push({name:"AccountFilters"})}),G(_,e=>{e?g.downloadFilterSet(a.value.name).then(o=>{b.value=o.data}):A(a.value.name)}),G(b,()=>{u.value.length&&(u.value=[])});function K(e){let o=e.name;return e.active?o+=" ("+i("active")+")":o+=" ("+i("inactive")+")",o}function Q(){T.value=!1,z()}function W(){x.value=!1,B.value=null,A(a.value.name)}function z(){g.getFilterSets().then(e=>{if(e.data.length>0&&e.data[0].active&&e.data[0].name===null?n.value=e.data.slice(1):n.value=e.data,!a.value&&p.params.filterset){for(const o of n.value)if(o.name===p.params.filterset){a.value=o;break}}})}function A(e){U.value=!0,g.getFilters(e).then(o=>{h.value=o.data,U.value=!1}).catch(o=>{o.response.status===518&&(_.value=!0,w.displayNotification({msg:i("Failed to display template. Using raw mode"),type:"warning"}))})}function X(e){B.value=e,x.value=!0}function Y(e){g.enableFilter(a.value.name,e.name).then(()=>{e.enabled=!0,w.displayNotification({msg:i("Filter enabled")})})}function d(e){g.disableFilter(a.value.name,e.name).then(()=>{e.enabled=!1,w.displayNotification({msg:i("Filter disabled")})})}function V(e){g.deleteFilter(a.value.name,e.name).then(()=>{w.displayNotification({msg:i("Filter removed")}),A(a.value.name)})}async function r(e){await g.moveFilterDown(a.value.name,e.name),A(a.value.name)}async function y(e){await g.moveFilterUp(a.value.name,e.name),A(a.value.name)}async function m(e){await g.activateFilterSet(e.name),w.displayNotification({msg:i("Filter set activated")})}async function E(e){await g.deleteFilterSet(e.name),w.displayNotification({msg:i("Filter set removed")}),a.value=null,z()}async function q(){const{valid:e}=await C.value.validate();if(!e)return;const o={content:b.value};M.value=!0;try{await g.saveFilterSet(a.value.name,o),w.displayNotification({msg:i("Filter set updated")})}catch(s){s.response.status===400&&s.response.data.content&&(u.value=s.response.data.content)}finally{M.value=!1}}async function Ve(e){const o=await g.downloadFilterSet(e.name),s=new Blob([o.data],{type:"text/plain"}),D=document.createElement("a");D.href=URL.createObjectURL(s),D.download=`${e.name}.txt`,D.click(),URL.revokeObjectURL(D.href)}const ye=[{label:i("Edit"),icon:"mdi-circle-edit-outline",onClick:X},{label:i("Delete"),icon:"mdi-delete-outline",onClick:V,color:"red"}];function be(e,o){const s=[...ye];return e.enabled?s.push({label:i("Disable"),icon:"mdi-stop",color:"red",onClick:d}):s.push({label:i("Enable"),icon:"mdi-check",color:"success",onClick:Y}),o!==h.value.length-1&&s.push({label:i("Move down"),icon:"mdi-arrow-down",onClick:r}),o!==0&&s.push({label:i("Move up"),icon:"mdi-arrow-up",onClick:y}),s}const ge=[{label:i("Download filter set"),icon:"mdi-download",onClick:Ve},{label:i("Delete filter set"),color:"error",icon:"mdi-trash-can",onClick:E}];function Fe(){const e=[];return a.value.active||e.push({label:i("Activate filter set"),color:"success",icon:"mdi-check",onClick:m}),e.concat(ge)}return z(),(e,o)=>(c(),S(j,null,[$("div",je,[$("div",Oe,L(l(i)("Message filters")),1),t(xe,{color:"white",flat:""},{default:v(()=>[t(Ae,{modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=s=>a.value=s),label:l(i)("Select a filter set"),items:n.value,"item-title":K,"return-object":"",variant:"outlined","hide-details":"",class:"flex-grow-0",style:{width:"200px"},density:"compact"},null,8,["modelValue","label","items"]),t(F,{color:"primary",icon:"mdi-plus",size:"small",class:"mx-4",title:l(i)("Add filter set"),onClick:o[1]||(o[1]=s=>T.value=!0)},null,8,["title"]),a.value?(c(),k(ue,{key:0},{activator:v(({props:s})=>[t(F,ie({icon:"mdi-dots-vertical"},s,{size:"small",color:"default"}),null,16)]),default:v(()=>[t(re,{items:Fe(),obj:a.value},null,8,["items","obj"])]),_:1})):R("",!0),a.value?(c(),k(fe,{key:1,modelValue:_.value,"onUpdate:modelValue":o[2]||(o[2]=s=>_.value=s),label:l(i)("Raw mode"),color:"primary",class:"ml-4","hide-details":""},null,8,["modelValue","label"])):R("",!0)]),_:1}),a.value?(c(),S("div",Be,[_.value?(c(),S(j,{key:1},[t(oe,{ref_key:"rawFormRef",ref:C},{default:v(()=>[t(Ne,{modelValue:b.value,"onUpdate:modelValue":o[4]||(o[4]=s=>b.value=s),variant:"outlined","auto-grow":"",rules:[l(N).required],"error-messages":u.value},null,8,["modelValue","rules","error-messages"])]),_:1},512),t(F,{color:"success",loading:M.value,class:"mt-2",onClick:q},{default:v(()=>[ee(L(l(i)("Save")),1)]),_:1},8,["loading"])],64)):(c(),S(j,{key:0},[$("div",Ee,[t(F,{color:"primary",title:l(i)("Add new filter"),class:"mx-auto",onClick:o[3]||(o[3]=s=>x.value=!0)},{default:v(()=>[t(Ce,{icon:"mdi-plus"}),ee(" "+L(l(i)("Add")),1)]),_:1},8,["title"])]),t(Ue,{headers:H,items:h.value,loading:U.value},{"item.enabled":v(({item:s})=>[ee(L(e.$yesno(s.enabled)),1)]),"item.filter_actions":v(({index:s,item:D})=>[t(ue,{"offset-y":""},{activator:v(({props:ke})=>[t(F,ie({icon:"mdi-dots-horizontal",variant:"text"},ke),null,16)]),default:v(()=>[t(re,{items:be(D,s),obj:D},null,8,["items","obj"])]),_:2},1024)]),_:2},1032,["items","loading"])],64))])):R("",!0)]),t(se,{modelValue:T.value,"onUpdate:modelValue":o[5]||(o[5]=s=>T.value=s),"max-width":"600"},{default:v(()=>[t($e,{onClose:Q})]),_:1},8,["modelValue"]),t(se,{modelValue:x.value,"onUpdate:modelValue":o[6]||(o[6]=s=>x.value=s),"max-width":"800"},{default:v(()=>[a.value?(c(),k(De,{key:0,"filter-set":a.value.name,filter:B.value,onClose:W},null,8,["filter-set","filter"])):R("",!0)]),_:1},8,["modelValue"])],64))}};export{vt as default};
@@ -0,0 +1 @@
1
+ import{h as i,B as m,c as p,f as a,o as e}from"./index-YIGRKgNA.js";import{_ as n}from"./ComposeEmailForm-B-BP3lzX.js";import{a as l}from"./webmail-DRyN8JIK.js";import"./index-DuzUMVLM.js";import"./VForm-BwTUBf4u.js";import"./tag-DV1_zOzl.js";import"./VInput-Dpmea5z9.js";import"./VAvatar-J563boKh.js";import"./VProgressCircular-CtqQON49.js";import"./forwardRefs-DPrLRqxP.js";import"./ssrBoot-CpJ-7WlH.js";import"./VCard-CJ2oGh_i.js";import"./VFileInput-z44hJIWr.js";import"./VTextField-C9VUP7V9.js";import"./VChip-DvxO74Mw.js";import"./VTable-DO7ofPSj.js";import"./VSpacer-BWZq1PhD.js";/* empty css */import"./HtmlEditor-Zn0wjDog.js";import"./VTextarea-B28SmJ2v.js";import"./contacts-Dx240BT8.js";import"./VToolbar-Cs-fVa4M.js";import"./VRow-CAbOSEHS.js";import"./VSelect-Cdh0qO5m.js";import"./VMenu-DDmBlbM8.js";import"./VCheckboxBtn-CLh3m66z.js";import"./VSelectionControl-BN-zQ3C6.js";import"./filter-C_GJovn5.js";import"./VDialog-CaQnQSDn.js";const L={__name:"ForwardEmailView",setup(s){const o=m(),r=i();return l.getEmailContent(o.query.mailbox,o.query.mailid,{context:"forward"}).then(t=>{r.value=t.data}),(t,c)=>(e(),p(a(n),{"original-email":r.value},null,8,["original-email"]))}};export{L as default};
@@ -1,4 +1,4 @@
1
- import{ae as Jo,a6 as Ko,d as qo,aw as Qi,af as Uo,g as Jn,aa as _o,bH as Go,bK as Yo,a0 as Xo,f as A,bL as Zo,z as Qo,l as el,o as Cn,e as tl,a as ee,x as nl,c as zr,m as Lr,w as Fr,y as be}from"./index-BImkz5Jx.js";import{V as ue,X as rl,Y as il}from"./VAvatar-Cmga0vj6.js";import{c as Vr}from"./forwardRefs-cvcnlhoK.js";function H(n){this.content=n}H.prototype={constructor:H,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,i=r.find(n),s=r.content.slice();return i==-1?s.push(t||n,e):(s[i+1]=e,t&&(s[i]=t)),new H(s)},remove:function(n){var e=this.find(n);if(e==-1)return this;var t=this.content.slice();return t.splice(e,2),new H(t)},addToStart:function(n,e){return new H([n,e].concat(this.remove(n).content))},addToEnd:function(n,e){var t=this.remove(n).content.slice();return t.push(n,e),new H(t)},addBefore:function(n,e,t){var r=this.remove(e),i=r.content.slice(),s=r.find(n);return i.splice(s==-1?i.length:s,0,e,t),new H(i)},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=H.from(n),n.size?new H(n.content.concat(this.subtract(n).content)):this},append:function(n){return n=H.from(n),n.size?new H(this.subtract(n).content.concat(n.content)):this},subtract:function(n){var e=this;n=H.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}};H.from=function(n){if(n instanceof H)return n;var e=[];if(n)for(var t in n)e.push(t,n[t]);return new H(e)};function es(n,e,t){for(let r=0;;r++){if(r==n.childCount||r==e.childCount)return n.childCount==e.childCount?null:t;let i=n.child(r),s=e.child(r);if(i==s){t+=i.nodeSize;continue}if(!i.sameMarkup(s))return t;if(i.isText&&i.text!=s.text){for(let o=0;i.text[o]==s.text[o];o++)t++;return t}if(i.content.size||s.content.size){let o=es(i.content,s.content,t+1);if(o!=null)return o}t+=i.nodeSize}}function ts(n,e,t,r){for(let i=n.childCount,s=e.childCount;;){if(i==0||s==0)return i==s?null:{a:t,b:r};let o=n.child(--i),l=e.child(--s),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=ts(o.content,l.content,t-1,r-1);if(c)return c}t-=a,r-=a}}class b{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,i=0,s){for(let o=0,l=0;l<t;o++){let a=this.content[o],c=l+a.nodeSize;if(c>e&&r(a,i+l,s||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,i+u)}l=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,r,i){let s="",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?i?typeof i=="function"?i(l):i:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&c||l.isTextblock)&&r&&(o?o=!1:s+=r),s+=c},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,r=e.firstChild,i=this.content.slice(),s=0;for(t.isText&&t.sameMarkup(r)&&(i[i.length-1]=t.withText(t.text+r.text),s=1);s<e.content.length;s++)i.push(e.content[s]);return new b(i,this.size+e.size)}cut(e,t=this.size){if(e==0&&t==this.size)return this;let r=[],i=0;if(t>e)for(let s=0,o=0;o<t;s++){let l=this.content[s],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),i+=l.nodeSize),o=a}return new b(r,i)}cutByIndex(e,t){return e==t?b.empty:e==0&&t==this.content.length?this:new b(this.content.slice(e,t))}replaceChild(e,t){let r=this.content[e];if(r==t)return this;let i=this.content.slice(),s=this.size+t.nodeSize-r.nodeSize;return i[e]=t,new b(i,s)}addToStart(e){return new b([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new b(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 i=this.content[t];e(i,r,t),r+=i.nodeSize}}findDiffStart(e,t=0){return es(this,e,t)}findDiffEnd(e,t=this.size,r=e.size){return ts(this,e,t,r)}findIndex(e,t=-1){if(e==0)return Ft(0,e);if(e==this.size)return Ft(this.content.length,e);if(e>this.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let r=0,i=0;;r++){let s=this.child(r),o=i+s.nodeSize;if(o>=e)return o==e||t>0?Ft(r+1,o):Ft(r,i);i=o}}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 b.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new b(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return b.empty;let t,r=0;for(let i=0;i<e.length;i++){let s=e[i];r+=s.nodeSize,i&&s.isText&&e[i-1].sameMarkup(s)?(t||(t=e.slice(0,i)),t[t.length-1]=s.withText(t[t.length-1].text+s.text)):t&&t.push(s)}return new b(t||e,r)}static from(e){if(!e)return b.empty;if(e instanceof b)return e;if(Array.isArray(e))return this.fromArray(e);if(e.attrs)return new b([e],e.nodeSize);throw new RangeError("Can not convert "+e+" to a Fragment"+(e.nodesBetween?" (looks like multiple versions of prosemirror-model were loaded)":""))}}b.empty=new b([],0);const wn={index:0,offset:0};function Ft(n,e){return wn.index=n,wn.offset=e,wn}function Yt(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(!Yt(n[r],e[r]))return!1}else{for(let r in n)if(!(r in e)||!Yt(n[r],e[r]))return!1;for(let r in e)if(!(r in n))return!1}return!0}let v=class Kn{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,r=!1;for(let i=0;i<e.length;i++){let s=e[i];if(this.eq(s))return e;if(this.type.excludes(s.type))t||(t=e.slice(0,i));else{if(s.type.excludes(this.type))return e;!r&&s.type.rank>this.type.rank&&(t||(t=e.slice(0,i)),t.push(this),r=!0),t&&t.push(s)}}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&&Yt(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 i=r.create(t.attrs);return r.checkAttrs(i.attrs),i}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 Kn.none;if(e instanceof Kn)return[e];let t=e.slice();return t.sort((r,i)=>r.type.rank-i.type.rank),t}};v.none=[];class Xt extends Error{}class k{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=rs(this.content,e+this.openStart,t);return r&&new k(r,this.openStart,this.openEnd)}removeBetween(e,t){return new k(ns(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 k.empty;let r=t.openStart||0,i=t.openEnd||0;if(typeof r!="number"||typeof i!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new k(b.fromJSON(e,t.content),r,i)}static maxOpen(e,t=!0){let r=0,i=0;for(let s=e.firstChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.firstChild)r++;for(let s=e.lastChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.lastChild)i++;return new k(e,r,i)}}k.empty=new k(b.empty,0,0);function ns(n,e,t){let{index:r,offset:i}=n.findIndex(e),s=n.maybeChild(r),{index:o,offset:l}=n.findIndex(t);if(i==e||s.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,s.copy(ns(s.content,e-i-1,t-i-1)))}function rs(n,e,t,r){let{index:i,offset:s}=n.findIndex(e),o=n.maybeChild(i);if(s==e||o.isText)return n.cut(0,e).append(t).append(n.cut(e));let l=rs(o.content,e-s-1,t);return l&&n.replaceChild(i,o.copy(l))}function sl(n,e,t){if(t.openStart>n.depth)throw new Xt("Inserted content deeper than insertion position");if(n.depth-t.openStart!=e.depth-t.openEnd)throw new Xt("Inconsistent open depths");return is(n,e,t,0)}function is(n,e,t,r){let i=n.index(r),s=n.node(r);if(i==e.index(r)&&r<n.depth-t.openStart){let o=is(n,e,t,r+1);return s.copy(s.content.replaceChild(i,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 Ue(o,l.cut(0,n.parentOffset).append(t.content).append(l.cut(e.parentOffset)))}else{let{start:o,end:l}=ol(t,n);return Ue(s,ls(n,o,l,e,r))}else return Ue(s,Zt(n,e,r))}function ss(n,e){if(!e.type.compatibleContent(n.type))throw new Xt("Cannot join "+e.type.name+" onto "+n.type.name)}function qn(n,e,t){let r=n.node(t);return ss(r,e.node(t)),r}function qe(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 St(n,e,t,r){let i=(e||n).node(t),s=0,o=e?e.index(t):i.childCount;n&&(s=n.index(t),n.depth>t?s++:n.textOffset&&(qe(n.nodeAfter,r),s++));for(let l=s;l<o;l++)qe(i.child(l),r);e&&e.depth==t&&e.textOffset&&qe(e.nodeBefore,r)}function Ue(n,e){return n.type.checkContent(e),n.copy(e)}function ls(n,e,t,r,i){let s=n.depth>i&&qn(n,e,i+1),o=r.depth>i&&qn(t,r,i+1),l=[];return St(null,n,i,l),s&&o&&e.index(i)==t.index(i)?(ss(s,o),qe(Ue(s,ls(n,e,t,r,i+1)),l)):(s&&qe(Ue(s,Zt(n,e,i+1)),l),St(e,t,i,l),o&&qe(Ue(o,Zt(t,r,i+1)),l)),St(r,null,i,l),new b(l)}function Zt(n,e,t){let r=[];if(St(null,n,t,r),n.depth>t){let i=qn(n,e,t+1);qe(Ue(i,Zt(n,e,t+1)),r)}return St(e,null,t,r),new b(r)}function ol(n,e){let t=e.depth-n.openStart,i=e.node(t).copy(n.content);for(let s=t-1;s>=0;s--)i=e.node(s).copy(b.from(i));return{start:i.resolveNoCache(n.openStart+t),end:i.resolveNoCache(i.content.size-n.openEnd-t)}}class Tt{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],i=e.child(t);return r?e.child(t).cut(r):i}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],i=t==0?0:this.path[t*3-1]+1;for(let s=0;s<e;s++)i+=r.child(s).nodeSize;return i}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return v.none;if(this.textOffset)return e.child(t).marks;let r=e.maybeChild(t-1),i=e.maybeChild(t);if(!r){let l=r;r=i,i=l}let s=r.marks;for(var o=0;o<s.length;o++)s[o].type.spec.inclusive===!1&&(!i||!s[o].isInSet(i.marks))&&(s=s[o--].removeFromSet(s));return s}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let r=t.marks,i=e.parent.maybeChild(e.index());for(var s=0;s<r.length;s++)r[s].type.spec.inclusive===!1&&(!i||!r[s].isInSet(i.marks))&&(r=r[s--].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 Qt(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=[],i=0,s=t;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(s),c=s-a;if(r.push(o,l,i+a),!c||(o=o.child(l),o.isText))break;s=c-1,i+=a+1}return new Tt(t,r,s)}static resolveCached(e,t){let r=$r.get(e);if(r)for(let s=0;s<r.elts.length;s++){let o=r.elts[s];if(o.pos==t)return o}else $r.set(e,r=new ll);let i=r.elts[r.i]=Tt.resolve(e,t);return r.i=(r.i+1)%al,i}}class ll{constructor(){this.elts=[],this.i=0}}const al=12,$r=new WeakMap;class Qt{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 cl=Object.create(null);let Ie=class Un{constructor(e,t,r,i=v.none){this.type=e,this.attrs=t,this.marks=i,this.content=r||b.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,i=0){this.content.nodesBetween(e,t,r,i,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,i){return this.content.textBetween(e,t,r,i)}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&&Yt(this.attrs,t||e.defaultAttrs||cl)&&v.sameSet(this.marks,r||v.none)}copy(e=null){return e==this.content?this:new Un(this.type,this.attrs,e,this.marks)}mark(e){return e==this.marks?this:new Un(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 k.empty;let i=this.resolve(e),s=this.resolve(t),o=r?0:i.sharedDepth(t),l=i.start(o),c=i.node(o).content.cut(i.pos-l,s.pos-l);return new k(c,i.depth-o,s.depth-o)}replace(e,t,r){return sl(this.resolve(e),this.resolve(t),r)}nodeAt(e){for(let t=this;;){let{index:r,offset:i}=t.content.findIndex(e);if(t=t.maybeChild(r),!t)return null;if(i==e||t.isText)return t;e-=i+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 i=this.content.child(t-1);return{node:i,index:t-1,offset:r-i.nodeSize}}resolve(e){return Tt.resolveCached(this,e)}resolveNoCache(e){return Tt.resolve(this,e)}rangeHasMark(e,t,r){let i=!1;return t>e&&this.nodesBetween(e,t,s=>(r.isInSet(s.marks)&&(i=!0),!i)),i}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()+")"),as(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=b.empty,i=0,s=r.childCount){let o=this.contentMatchAt(e).matchFragment(r,i,s),l=o&&o.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let a=i;a<s;a++)if(!this.type.allowsMarks(r.child(a).marks))return!1;return!0}canReplaceWith(e,t,r,i){if(i&&!this.type.allowsMarks(i))return!1;let s=this.contentMatchAt(e).matchType(r),o=s&&s.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=v.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(!v.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 i=b.fromJSON(e,t.content),s=e.nodeType(t.type).create(t.attrs,i,r);return s.type.checkAttrs(s.attrs),s}};Ie.prototype.text=void 0;class en extends Ie{constructor(e,t,r,i){if(super(e,t,null,i),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):as(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 en(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new en(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 as(n,e){for(let t=n.length-1;t>=0;t--)e=n[t].type.name+"("+e+")";return e}class Xe{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let r=new ul(e,t);if(r.next==null)return Xe.empty;let i=cs(r);r.next&&r.err("Unexpected trailing text");let s=yl(gl(i));return bl(s,r),s}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 i=this;for(let s=t;i&&s<r;s++)i=i.matchType(e.child(s).type);return i}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 i=[this];function s(o,l){let a=o.matchFragment(e,r);if(a&&(!t||a.validEnd))return b.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())&&i.indexOf(d)==-1){i.push(d);let f=s(d,l.concat(u));if(f)return f}}return null}return s(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 i=r.shift(),s=i.match;if(s.matchType(e)){let o=[];for(let l=i;l.type;l=l.via)o.push(l.type);return o.reverse()}for(let o=0;o<s.next.length;o++){let{type:l,next:a}=s.next[o];!l.isLeaf&&!l.hasRequiredAttrs()&&!(l.name in t)&&(!i.type||a.validEnd)&&(r.push({match:l.contentMatch,type:l,via:i}),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 i=0;i<r.next.length;i++)e.indexOf(r.next[i].next)==-1&&t(r.next[i].next)}return t(this),e.map((r,i)=>{let s=i+(r.validEnd?"*":" ")+" ";for(let o=0;o<r.next.length;o++)s+=(o?", ":"")+r.next[o].type.name+"->"+e.indexOf(r.next[o].next);return s}).join(`
1
+ import{ae as Jo,a6 as Ko,d as qo,aw as Qi,af as Uo,h as Jn,aa as _o,bH as Go,bK as Yo,a0 as Xo,f as A,bL as Zo,z as Qo,l as el,o as Cn,e as tl,a as ee,x as nl,c as zr,m as Lr,w as Fr,y as be}from"./index-YIGRKgNA.js";import{V as ue,X as rl,Y as il}from"./VAvatar-J563boKh.js";import{c as Vr}from"./forwardRefs-DPrLRqxP.js";function H(n){this.content=n}H.prototype={constructor:H,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,i=r.find(n),s=r.content.slice();return i==-1?s.push(t||n,e):(s[i+1]=e,t&&(s[i]=t)),new H(s)},remove:function(n){var e=this.find(n);if(e==-1)return this;var t=this.content.slice();return t.splice(e,2),new H(t)},addToStart:function(n,e){return new H([n,e].concat(this.remove(n).content))},addToEnd:function(n,e){var t=this.remove(n).content.slice();return t.push(n,e),new H(t)},addBefore:function(n,e,t){var r=this.remove(e),i=r.content.slice(),s=r.find(n);return i.splice(s==-1?i.length:s,0,e,t),new H(i)},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=H.from(n),n.size?new H(n.content.concat(this.subtract(n).content)):this},append:function(n){return n=H.from(n),n.size?new H(this.subtract(n).content.concat(n.content)):this},subtract:function(n){var e=this;n=H.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}};H.from=function(n){if(n instanceof H)return n;var e=[];if(n)for(var t in n)e.push(t,n[t]);return new H(e)};function es(n,e,t){for(let r=0;;r++){if(r==n.childCount||r==e.childCount)return n.childCount==e.childCount?null:t;let i=n.child(r),s=e.child(r);if(i==s){t+=i.nodeSize;continue}if(!i.sameMarkup(s))return t;if(i.isText&&i.text!=s.text){for(let o=0;i.text[o]==s.text[o];o++)t++;return t}if(i.content.size||s.content.size){let o=es(i.content,s.content,t+1);if(o!=null)return o}t+=i.nodeSize}}function ts(n,e,t,r){for(let i=n.childCount,s=e.childCount;;){if(i==0||s==0)return i==s?null:{a:t,b:r};let o=n.child(--i),l=e.child(--s),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=ts(o.content,l.content,t-1,r-1);if(c)return c}t-=a,r-=a}}class b{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,i=0,s){for(let o=0,l=0;l<t;o++){let a=this.content[o],c=l+a.nodeSize;if(c>e&&r(a,i+l,s||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,i+u)}l=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,r,i){let s="",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?i?typeof i=="function"?i(l):i:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&c||l.isTextblock)&&r&&(o?o=!1:s+=r),s+=c},0),s}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,r=e.firstChild,i=this.content.slice(),s=0;for(t.isText&&t.sameMarkup(r)&&(i[i.length-1]=t.withText(t.text+r.text),s=1);s<e.content.length;s++)i.push(e.content[s]);return new b(i,this.size+e.size)}cut(e,t=this.size){if(e==0&&t==this.size)return this;let r=[],i=0;if(t>e)for(let s=0,o=0;o<t;s++){let l=this.content[s],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),i+=l.nodeSize),o=a}return new b(r,i)}cutByIndex(e,t){return e==t?b.empty:e==0&&t==this.content.length?this:new b(this.content.slice(e,t))}replaceChild(e,t){let r=this.content[e];if(r==t)return this;let i=this.content.slice(),s=this.size+t.nodeSize-r.nodeSize;return i[e]=t,new b(i,s)}addToStart(e){return new b([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new b(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 i=this.content[t];e(i,r,t),r+=i.nodeSize}}findDiffStart(e,t=0){return es(this,e,t)}findDiffEnd(e,t=this.size,r=e.size){return ts(this,e,t,r)}findIndex(e,t=-1){if(e==0)return Ft(0,e);if(e==this.size)return Ft(this.content.length,e);if(e>this.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let r=0,i=0;;r++){let s=this.child(r),o=i+s.nodeSize;if(o>=e)return o==e||t>0?Ft(r+1,o):Ft(r,i);i=o}}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 b.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new b(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return b.empty;let t,r=0;for(let i=0;i<e.length;i++){let s=e[i];r+=s.nodeSize,i&&s.isText&&e[i-1].sameMarkup(s)?(t||(t=e.slice(0,i)),t[t.length-1]=s.withText(t[t.length-1].text+s.text)):t&&t.push(s)}return new b(t||e,r)}static from(e){if(!e)return b.empty;if(e instanceof b)return e;if(Array.isArray(e))return this.fromArray(e);if(e.attrs)return new b([e],e.nodeSize);throw new RangeError("Can not convert "+e+" to a Fragment"+(e.nodesBetween?" (looks like multiple versions of prosemirror-model were loaded)":""))}}b.empty=new b([],0);const wn={index:0,offset:0};function Ft(n,e){return wn.index=n,wn.offset=e,wn}function Yt(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(!Yt(n[r],e[r]))return!1}else{for(let r in n)if(!(r in e)||!Yt(n[r],e[r]))return!1;for(let r in e)if(!(r in n))return!1}return!0}let v=class Kn{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,r=!1;for(let i=0;i<e.length;i++){let s=e[i];if(this.eq(s))return e;if(this.type.excludes(s.type))t||(t=e.slice(0,i));else{if(s.type.excludes(this.type))return e;!r&&s.type.rank>this.type.rank&&(t||(t=e.slice(0,i)),t.push(this),r=!0),t&&t.push(s)}}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&&Yt(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 i=r.create(t.attrs);return r.checkAttrs(i.attrs),i}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 Kn.none;if(e instanceof Kn)return[e];let t=e.slice();return t.sort((r,i)=>r.type.rank-i.type.rank),t}};v.none=[];class Xt extends Error{}class k{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=rs(this.content,e+this.openStart,t);return r&&new k(r,this.openStart,this.openEnd)}removeBetween(e,t){return new k(ns(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 k.empty;let r=t.openStart||0,i=t.openEnd||0;if(typeof r!="number"||typeof i!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new k(b.fromJSON(e,t.content),r,i)}static maxOpen(e,t=!0){let r=0,i=0;for(let s=e.firstChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.firstChild)r++;for(let s=e.lastChild;s&&!s.isLeaf&&(t||!s.type.spec.isolating);s=s.lastChild)i++;return new k(e,r,i)}}k.empty=new k(b.empty,0,0);function ns(n,e,t){let{index:r,offset:i}=n.findIndex(e),s=n.maybeChild(r),{index:o,offset:l}=n.findIndex(t);if(i==e||s.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,s.copy(ns(s.content,e-i-1,t-i-1)))}function rs(n,e,t,r){let{index:i,offset:s}=n.findIndex(e),o=n.maybeChild(i);if(s==e||o.isText)return n.cut(0,e).append(t).append(n.cut(e));let l=rs(o.content,e-s-1,t);return l&&n.replaceChild(i,o.copy(l))}function sl(n,e,t){if(t.openStart>n.depth)throw new Xt("Inserted content deeper than insertion position");if(n.depth-t.openStart!=e.depth-t.openEnd)throw new Xt("Inconsistent open depths");return is(n,e,t,0)}function is(n,e,t,r){let i=n.index(r),s=n.node(r);if(i==e.index(r)&&r<n.depth-t.openStart){let o=is(n,e,t,r+1);return s.copy(s.content.replaceChild(i,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 Ue(o,l.cut(0,n.parentOffset).append(t.content).append(l.cut(e.parentOffset)))}else{let{start:o,end:l}=ol(t,n);return Ue(s,ls(n,o,l,e,r))}else return Ue(s,Zt(n,e,r))}function ss(n,e){if(!e.type.compatibleContent(n.type))throw new Xt("Cannot join "+e.type.name+" onto "+n.type.name)}function qn(n,e,t){let r=n.node(t);return ss(r,e.node(t)),r}function qe(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 St(n,e,t,r){let i=(e||n).node(t),s=0,o=e?e.index(t):i.childCount;n&&(s=n.index(t),n.depth>t?s++:n.textOffset&&(qe(n.nodeAfter,r),s++));for(let l=s;l<o;l++)qe(i.child(l),r);e&&e.depth==t&&e.textOffset&&qe(e.nodeBefore,r)}function Ue(n,e){return n.type.checkContent(e),n.copy(e)}function ls(n,e,t,r,i){let s=n.depth>i&&qn(n,e,i+1),o=r.depth>i&&qn(t,r,i+1),l=[];return St(null,n,i,l),s&&o&&e.index(i)==t.index(i)?(ss(s,o),qe(Ue(s,ls(n,e,t,r,i+1)),l)):(s&&qe(Ue(s,Zt(n,e,i+1)),l),St(e,t,i,l),o&&qe(Ue(o,Zt(t,r,i+1)),l)),St(r,null,i,l),new b(l)}function Zt(n,e,t){let r=[];if(St(null,n,t,r),n.depth>t){let i=qn(n,e,t+1);qe(Ue(i,Zt(n,e,t+1)),r)}return St(e,null,t,r),new b(r)}function ol(n,e){let t=e.depth-n.openStart,i=e.node(t).copy(n.content);for(let s=t-1;s>=0;s--)i=e.node(s).copy(b.from(i));return{start:i.resolveNoCache(n.openStart+t),end:i.resolveNoCache(i.content.size-n.openEnd-t)}}class Tt{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],i=e.child(t);return r?e.child(t).cut(r):i}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],i=t==0?0:this.path[t*3-1]+1;for(let s=0;s<e;s++)i+=r.child(s).nodeSize;return i}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return v.none;if(this.textOffset)return e.child(t).marks;let r=e.maybeChild(t-1),i=e.maybeChild(t);if(!r){let l=r;r=i,i=l}let s=r.marks;for(var o=0;o<s.length;o++)s[o].type.spec.inclusive===!1&&(!i||!s[o].isInSet(i.marks))&&(s=s[o--].removeFromSet(s));return s}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let r=t.marks,i=e.parent.maybeChild(e.index());for(var s=0;s<r.length;s++)r[s].type.spec.inclusive===!1&&(!i||!r[s].isInSet(i.marks))&&(r=r[s--].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 Qt(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=[],i=0,s=t;for(let o=e;;){let{index:l,offset:a}=o.content.findIndex(s),c=s-a;if(r.push(o,l,i+a),!c||(o=o.child(l),o.isText))break;s=c-1,i+=a+1}return new Tt(t,r,s)}static resolveCached(e,t){let r=$r.get(e);if(r)for(let s=0;s<r.elts.length;s++){let o=r.elts[s];if(o.pos==t)return o}else $r.set(e,r=new ll);let i=r.elts[r.i]=Tt.resolve(e,t);return r.i=(r.i+1)%al,i}}class ll{constructor(){this.elts=[],this.i=0}}const al=12,$r=new WeakMap;class Qt{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 cl=Object.create(null);let Ie=class Un{constructor(e,t,r,i=v.none){this.type=e,this.attrs=t,this.marks=i,this.content=r||b.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,i=0){this.content.nodesBetween(e,t,r,i,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,i){return this.content.textBetween(e,t,r,i)}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&&Yt(this.attrs,t||e.defaultAttrs||cl)&&v.sameSet(this.marks,r||v.none)}copy(e=null){return e==this.content?this:new Un(this.type,this.attrs,e,this.marks)}mark(e){return e==this.marks?this:new Un(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 k.empty;let i=this.resolve(e),s=this.resolve(t),o=r?0:i.sharedDepth(t),l=i.start(o),c=i.node(o).content.cut(i.pos-l,s.pos-l);return new k(c,i.depth-o,s.depth-o)}replace(e,t,r){return sl(this.resolve(e),this.resolve(t),r)}nodeAt(e){for(let t=this;;){let{index:r,offset:i}=t.content.findIndex(e);if(t=t.maybeChild(r),!t)return null;if(i==e||t.isText)return t;e-=i+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 i=this.content.child(t-1);return{node:i,index:t-1,offset:r-i.nodeSize}}resolve(e){return Tt.resolveCached(this,e)}resolveNoCache(e){return Tt.resolve(this,e)}rangeHasMark(e,t,r){let i=!1;return t>e&&this.nodesBetween(e,t,s=>(r.isInSet(s.marks)&&(i=!0),!i)),i}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()+")"),as(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=b.empty,i=0,s=r.childCount){let o=this.contentMatchAt(e).matchFragment(r,i,s),l=o&&o.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let a=i;a<s;a++)if(!this.type.allowsMarks(r.child(a).marks))return!1;return!0}canReplaceWith(e,t,r,i){if(i&&!this.type.allowsMarks(i))return!1;let s=this.contentMatchAt(e).matchType(r),o=s&&s.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=v.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(!v.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 i=b.fromJSON(e,t.content),s=e.nodeType(t.type).create(t.attrs,i,r);return s.type.checkAttrs(s.attrs),s}};Ie.prototype.text=void 0;class en extends Ie{constructor(e,t,r,i){if(super(e,t,null,i),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):as(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 en(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new en(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 as(n,e){for(let t=n.length-1;t>=0;t--)e=n[t].type.name+"("+e+")";return e}class Xe{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let r=new ul(e,t);if(r.next==null)return Xe.empty;let i=cs(r);r.next&&r.err("Unexpected trailing text");let s=yl(gl(i));return bl(s,r),s}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 i=this;for(let s=t;i&&s<r;s++)i=i.matchType(e.child(s).type);return i}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 i=[this];function s(o,l){let a=o.matchFragment(e,r);if(a&&(!t||a.validEnd))return b.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())&&i.indexOf(d)==-1){i.push(d);let f=s(d,l.concat(u));if(f)return f}}return null}return s(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 i=r.shift(),s=i.match;if(s.matchType(e)){let o=[];for(let l=i;l.type;l=l.via)o.push(l.type);return o.reverse()}for(let o=0;o<s.next.length;o++){let{type:l,next:a}=s.next[o];!l.isLeaf&&!l.hasRequiredAttrs()&&!(l.name in t)&&(!i.type||a.validEnd)&&(r.push({match:l.contentMatch,type:l,via:i}),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 i=0;i<r.next.length;i++)e.indexOf(r.next[i].next)==-1&&t(r.next[i].next)}return t(this),e.map((r,i)=>{let s=i+(r.validEnd?"*":" ")+" ";for(let o=0;o<r.next.length;o++)s+=(o?", ":"")+r.next[o].type.name+"->"+e.indexOf(r.next[o].next);return s}).join(`
2
2
  `)}}Xe.empty=new Xe(!0);class ul{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 cs(n){let e=[];do e.push(dl(n));while(n.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function dl(n){let e=[];do e.push(fl(n));while(n.next&&n.next!=")"&&n.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function fl(n){let e=ml(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=hl(n,e);else break;return e}function Hr(n){/\D/.test(n.next)&&n.err("Expected number, got '"+n.next+"'");let e=Number(n.next);return n.pos++,e}function hl(n,e){let t=Hr(n),r=t;return n.eat(",")&&(n.next!="}"?r=Hr(n):r=-1),n.eat("}")||n.err("Unclosed braced range"),{type:"range",min:t,max:r,expr:e}}function pl(n,e){let t=n.nodeTypes,r=t[e];if(r)return[r];let i=[];for(let s in t){let o=t[s];o.isInGroup(e)&&i.push(o)}return i.length==0&&n.err("No node type or group '"+e+"' found"),i}function ml(n){if(n.eat("(")){let e=cs(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=pl(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 gl(n){let e=[[]];return i(s(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 i(o,l){o.forEach(a=>a.to=l)}function s(o,l){if(o.type=="choice")return o.exprs.reduce((a,c)=>a.concat(s(c,l)),[]);if(o.type=="seq")for(let a=0;;a++){let c=s(o.exprs[a],l);if(a==o.exprs.length-1)return c;i(c,l=t())}else if(o.type=="star"){let a=t();return r(l,a),i(s(o.expr,a),a),[r(a)]}else if(o.type=="plus"){let a=t();return i(s(o.expr,l),a),i(s(o.expr,a),a),[r(a)]}else{if(o.type=="opt")return[r(l)].concat(s(o.expr,l));if(o.type=="range"){let a=l;for(let c=0;c<o.min;c++){let u=t();i(s(o.expr,a),u),a=u}if(o.max==-1)i(s(o.expr,a),a);else for(let c=o.min;c<o.max;c++){let u=t();r(a,u),i(s(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 us(n,e){return e-n}function Wr(n,e){let t=[];return r(e),t.sort(us);function r(i){let s=n[i];if(s.length==1&&!s[0].term)return r(s[0].to);t.push(i);for(let o=0;o<s.length;o++){let{term:l,to:a}=s[o];!l&&t.indexOf(a)==-1&&r(a)}}}function yl(n){let e=Object.create(null);return t(Wr(n,0));function t(r){let i=[];r.forEach(o=>{n[o].forEach(({term:l,to:a})=>{if(!l)return;let c;for(let u=0;u<i.length;u++)i[u][0]==l&&(c=i[u][1]);Wr(n,a).forEach(u=>{c||i.push([l,c=[]]),c.indexOf(u)==-1&&c.push(u)})})});let s=e[r.join(",")]=new Xe(r.indexOf(n.length-1)>-1);for(let o=0;o<i.length;o++){let l=i[o][1].sort(us);s.next.push({type:i[o][0],next:e[l.join(",")]||t(l)})}return s}}function bl(n,e){for(let t=0,r=[n];t<r.length;t++){let i=r[t],s=!i.validEnd,o=[];for(let l=0;l<i.next.length;l++){let{type:a,next:c}=i.next[l];o.push(a.name),s&&!(a.isText||a.hasRequiredAttrs())&&(s=!1),r.indexOf(c)==-1&&r.push(c)}s&&e.err("Only non-generatable nodes ("+o.join(", ")+") in a required position (see https://prosemirror.net/docs/guide/#generatable)")}}function ds(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 fs(n,e){let t=Object.create(null);for(let r in n){let i=e&&e[r];if(i===void 0){let s=n[r];if(s.hasDefault)i=s.default;else throw new RangeError("No value supplied for attribute "+r)}t[r]=i}return t}function hs(n,e,t,r){for(let i in e)if(!(i in n))throw new RangeError(`Unsupported attribute ${i} for ${t} of type ${i}`);for(let i in n){let s=n[i];s.validate&&s.validate(e[i])}}function ps(n,e){let t=Object.create(null);if(e)for(let r in e)t[r]=new xl(n,r,e[r]);return t}let jr=class ms{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=ps(e,r.attrs),this.defaultAttrs=ds(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==Xe.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:fs(this.attrs,e)}create(e=null,t,r){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new Ie(this,this.computeAttrs(e),b.from(t),v.setFrom(r))}createChecked(e=null,t,r){return t=b.from(t),this.checkContent(t),new Ie(this,this.computeAttrs(e),t,v.setFrom(r))}createAndFill(e=null,t,r){if(e=this.computeAttrs(e),t=b.from(t),t.size){let o=this.contentMatch.fillBefore(t);if(!o)return null;t=o.append(t)}let i=this.contentMatch.matchFragment(t),s=i&&i.fillBefore(b.empty,!0);return s?new Ie(this,e,t.append(s),v.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){hs(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:v.none:e}static compile(e,t){let r=Object.create(null);e.forEach((s,o)=>r[s]=new ms(s,t,o));let i=t.spec.topNode||"doc";if(!r[i])throw new RangeError("Schema is missing its top node type ('"+i+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let s in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}};function kl(n,e,t){let r=t.split("|");return i=>{let s=i===null?"null":typeof i;if(r.indexOf(s)<0)throw new RangeError(`Expected value of type ${r} for attribute ${e} on type ${n}, got ${s}`)}}class xl{constructor(e,t,r){this.hasDefault=Object.prototype.hasOwnProperty.call(r,"default"),this.default=r.default,this.validate=typeof r.validate=="string"?kl(e,t,r.validate):r.validate}get isRequired(){return!this.hasDefault}}class un{constructor(e,t,r,i){this.name=e,this.rank=t,this.schema=r,this.spec=i,this.attrs=ps(e,i.attrs),this.excluded=null;let s=ds(this.attrs);this.instance=s?new v(this,s):null}create(e=null){return!e&&this.instance?this.instance:new v(this,fs(this.attrs,e))}static compile(e,t){let r=Object.create(null),i=0;return e.forEach((s,o)=>r[s]=new un(s,i++,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){hs(this.attrs,e,"mark",this.name)}excludes(e){return this.excluded.indexOf(e)>-1}}class gs{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let i in e)t[i]=e[i];t.nodes=H.from(e.nodes),t.marks=H.from(e.marks||{}),this.nodes=jr.compile(this.spec.nodes,this),this.marks=un.compile(this.spec.marks,this);let r=Object.create(null);for(let i in this.nodes){if(i in this.marks)throw new RangeError(i+" can not be both a node and a mark");let s=this.nodes[i],o=s.spec.content||"",l=s.spec.marks;if(s.contentMatch=r[o]||(r[o]=Xe.parse(o,this.nodes)),s.inlineContent=s.contentMatch.inlineContent,s.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!s.isInline||!s.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=s}s.markSet=l=="_"?null:l?Jr(this,l.split(" ")):l==""||!s.inlineContent?[]:null}for(let i in this.marks){let s=this.marks[i],o=s.spec.excludes;s.excluded=o==null?[s]:o==""?[]:Jr(this,o.split(" "))}this.nodeFromJSON=this.nodeFromJSON.bind(this),this.markFromJSON=this.markFromJSON.bind(this),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,t=null,r,i){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof jr){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,i)}text(e,t){let r=this.nodes.text;return new en(r,r.defaultAttrs,e,v.setFrom(t))}mark(e,t){return typeof e=="string"&&(e=this.marks[e]),e.create(t)}nodeFromJSON(e){return Ie.fromJSON(this,e)}markFromJSON(e){return v.fromJSON(this,e)}nodeType(e){let t=this.nodes[e];if(!t)throw new RangeError("Unknown node type: "+e);return t}}function Jr(n,e){let t=[];for(let r=0;r<e.length;r++){let i=e[r],s=n.marks[i],o=s;if(s)t.push(s);else for(let l in n.marks){let a=n.marks[l];(i=="_"||a.spec.group&&a.spec.group.split(" ").indexOf(i)>-1)&&t.push(o=a)}if(!o)throw new SyntaxError("Unknown mark type: '"+e[r]+"'")}return t}function Sl(n){return n.tag!=null}function Ml(n){return n.style!=null}class Re{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let r=this.matchedStyles=[];t.forEach(i=>{if(Sl(i))this.tags.push(i);else if(Ml(i)){let s=/[^=]*/.exec(i.style)[0];r.indexOf(s)<0&&r.push(s),this.styles.push(i)}}),this.normalizeLists=!this.tags.some(i=>{if(!/^(ul|ol)\b/.test(i.tag)||!i.node)return!1;let s=e.nodes[i.node];return s.contentMatch.matchType(s)})}parse(e,t={}){let r=new qr(this,t,!1);return r.addAll(e,v.none,t.from,t.to),r.finish()}parseSlice(e,t={}){let r=new qr(this,t,!0);return r.addAll(e,v.none,t.from,t.to),k.maxOpen(r.finish())}matchTag(e,t,r){for(let i=r?this.tags.indexOf(r)+1:0;i<this.tags.length;i++){let s=this.tags[i];if(Tl(e,s.tag)&&(s.namespace===void 0||e.namespaceURI==s.namespace)&&(!s.context||t.matchesContext(s.context))){if(s.getAttrs){let o=s.getAttrs(e);if(o===!1)continue;s.attrs=o||void 0}return s}}}matchStyle(e,t,r,i){for(let s=i?this.styles.indexOf(i)+1:0;s<this.styles.length;s++){let o=this.styles[s],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(i){let s=i.priority==null?50:i.priority,o=0;for(;o<t.length;o++){let l=t[o];if((l.priority==null?50:l.priority)<s)break}t.splice(o,0,i)}for(let i in e.marks){let s=e.marks[i].spec.parseDOM;s&&s.forEach(o=>{r(o=Ur(o)),o.mark||o.ignore||o.clearMark||(o.mark=i)})}for(let i in e.nodes){let s=e.nodes[i].spec.parseDOM;s&&s.forEach(o=>{r(o=Ur(o)),o.node||o.ignore||o.mark||(o.node=i)})}return t}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new Re(e,Re.schemaRules(e)))}}const ys={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},Cl={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},bs={ol:!0,ul:!0},Ot=1,_n=2,Mt=4;function Kr(n,e,t){return e!=null?(e?Ot:0)|(e==="full"?_n:0):n&&n.whitespace=="pre"?Ot|_n:t&~Mt}class Vt{constructor(e,t,r,i,s,o){this.type=e,this.attrs=t,this.marks=r,this.solid=i,this.options=o,this.content=[],this.activeMarks=v.none,this.match=s||(o&Mt?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(b.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let r=this.type.contentMatch,i;return(i=r.findWrapping(e.type))?(this.match=r,i):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&Ot)){let r=this.content[this.content.length-1],i;if(r&&r.isText&&(i=/[ \t\r\n\u000c]+$/.exec(r.text))){let s=r;r.text.length==i[0].length?this.content.pop():this.content[this.content.length-1]=s.withText(s.text.slice(0,s.text.length-i[0].length))}}let t=b.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(b.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&&!ys.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class qr{constructor(e,t,r){this.parser=e,this.options=t,this.isOpen=r,this.open=0,this.localPreserveWS=!1;let i=t.topNode,s,o=Kr(null,t.preserveWhitespace,0)|(r?Mt:0);i?s=new Vt(i.type,i.attrs,v.none,!0,t.topMatch||i.type.contentMatch,o):r?s=new Vt(null,null,v.none,!0,null,o):s=new Vt(e.schema.topNodeType,null,v.none,!0,null,o),this.nodes=[s],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,i=this.top,s=i.options&_n?"full":this.localPreserveWS||(i.options&Ot)>0;if(s==="full"||i.inlineContext(e)||/[^ \t\r\n\u000c]/.test(r)){if(s)s!=="full"?r=r.replace(/\r?\n|\r/g," "):r=r.replace(/\r\n?/g,`
3
3
  `);else if(r=r.replace(/[ \t\r\n\u000c]+/g," "),/^[ \t\r\n\u000c]/.test(r)&&this.open==this.nodes.length-1){let o=i.content[i.content.length-1],l=e.previousSibling;(!o||l&&l.nodeName=="BR"||o.isText&&/[ \t\r\n\u000c]$/.test(o.text))&&(r=r.slice(1))}r&&this.insertNode(this.parser.schema.text(r),t,!/\S/.test(r)),this.findInText(e)}else this.findInside(e)}addElement(e,t,r){let i=this.localPreserveWS,s=this.top;(e.tagName=="PRE"||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let o=e.nodeName.toLowerCase(),l;bs.hasOwnProperty(o)&&this.parser.normalizeLists&&wl(e);let a=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(l=this.parser.matchTag(e,this,r));e:if(a?a.ignore:Cl.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(ys.hasOwnProperty(o))s.content.length&&s.content[0].isInline&&this.open&&(this.open--,s=this.top),c=!0,s.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(s),this.needsBlock=u}else{let c=this.readStyles(e,t);c&&this.addElementByRule(e,a,c,a.consuming===!1?l:void 0)}this.localPreserveWS=i}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 i=0;i<this.parser.matchedStyles.length;i++){let s=this.parser.matchedStyles[i],o=r.getPropertyValue(s);if(o)for(let l=void 0;;){let a=this.parser.matchStyle(s,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,i){let s,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&&(s=!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(i)this.addElement(e,r,i);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)}s&&this.sync(l)&&this.open--}addAll(e,t,r,i){let s=r||0;for(let o=r?e.childNodes[r]:e.firstChild,l=i==null?null:e.childNodes[i];o!=l;o=o.nextSibling,++s)this.findAtPoint(e,s),this.addDOM(o,t);this.findAtPoint(e,s)}findPlace(e,t,r){let i,s;for(let o=this.open,l=0;o>=0;o--){let a=this.nodes[o],c=a.findWrapping(e);if(c&&(!i||i.length>c.length+l)&&(i=c,s=a,!c.length))break;if(a.solid){if(r)break;l+=2}}if(!i)return null;this.sync(s);for(let o=0;o<i.length;o++)t=this.enterInner(i[o],null,t,!1);return t}insertNode(e,t,r){if(e.isInline&&this.needsBlock&&!this.top.type){let s=this.textblockFromContext();s&&(t=this.enterInner(s,null,t))}let i=this.findPlace(e,t,r);if(i){this.closeExtra();let s=this.top;s.match&&(s.match=s.match.matchType(e.type));let o=v.none;for(let l of i.concat(e.marks))(s.type?s.type.allowsMarkType(l.type):_r(l.type,e.type))&&(o=l.addToSet(o));return s.content.push(e.mark(o)),!0}return!1}enter(e,t,r,i){let s=this.findPlace(e.create(t),r,!1);return s&&(s=this.enterInner(e,t,r,!0,i)),s}enterInner(e,t,r,i=!1,s){this.closeExtra();let o=this.top;o.match=o.match&&o.match.matchType(e);let l=Kr(e,s,o.options);o.options&Mt&&o.content.length==0&&(l|=Mt);let a=v.none;return r=r.filter(c=>(o.type?o.type.allowsMarkType(c.type):_r(c.type,e))?(a=c.addToSet(a),!1):!0),this.nodes.push(new Vt(e,t,a,i,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|=Ot)}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 i=r.length-1;i>=0;i--)e+=r[i].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 i=0;i<this.find.length;i++)this.find[i].pos==null&&e.nodeType==1&&e.contains(this.find[i].node)&&t.compareDocumentPosition(this.find[i].node)&(r?2:4)&&(this.find[i].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,i=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),s=-(r?r.depth+1:0)+(i?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>=s;a--)if(o(l-1,a))return!0;return!1}else{let u=a>0||a==0&&i?this.nodes[a].type:r&&a>=s?r.node(a-s).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 wl(n){for(let e=n.firstChild,t=null;e;e=e.nextSibling){let r=e.nodeType==1?e.nodeName.toLowerCase():null;r&&bs.hasOwnProperty(r)&&t?(t.appendChild(e),e=t):r=="li"?t=e:r&&(t=null)}}function Tl(n,e){return(n.matches||n.msMatchesSelector||n.webkitMatchesSelector||n.mozMatchesSelector).call(n,e)}function Ur(n){let e={};for(let t in n)e[t]=n[t];return e}function _r(n,e){let t=e.schema.nodes;for(let r in t){let i=t[r];if(!i.allowsMarkType(n))continue;let s=[],o=l=>{s.push(l);for(let a=0;a<l.edgeCount;a++){let{type:c,next:u}=l.edge(a);if(c==e||s.indexOf(u)<0&&o(u))return!0}};if(o(i.contentMatch))return!0}}class rt{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},r){r||(r=Tn(t).createDocumentFragment());let i=r,s=[];return e.forEach(o=>{if(s.length||o.marks.length){let l=0,a=0;for(;l<s.length&&a<o.marks.length;){let c=o.marks[a];if(!this.marks[c.type.name]){a++;continue}if(!c.eq(s[l][0])||c.type.spec.spanning===!1)break;l++,a++}for(;l<s.length;)i=s.pop()[1];for(;a<o.marks.length;){let c=o.marks[a++],u=this.serializeMark(c,o.isInline,t);u&&(s.push([c,i]),i.appendChild(u.dom),i=u.contentDOM||u.dom)}}i.appendChild(this.serializeNodeInner(o,t))}),r}serializeNodeInner(e,t){let{dom:r,contentDOM:i}=qt(Tn(t),this.nodes[e.type.name](e),null,e.attrs);if(i){if(e.isLeaf)throw new RangeError("Content hole not allowed in a leaf node spec");this.serializeFragment(e.content,t,i)}return r}serializeNode(e,t={}){let r=this.serializeNodeInner(e,t);for(let i=e.marks.length-1;i>=0;i--){let s=this.serializeMark(e.marks[i],e.isInline,t);s&&((s.contentDOM||s.dom).appendChild(r),r=s.dom)}return r}serializeMark(e,t,r={}){let i=this.marks[e.type.name];return i&&qt(Tn(r),i(e,t),null,e.attrs)}static renderSpec(e,t,r=null,i){return qt(e,t,r,i)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new rt(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let t=Gr(e.nodes);return t.text||(t.text=r=>r.text),t}static marksFromSchema(e){return Gr(e.marks)}}function Gr(n){let e={};for(let t in n){let r=n[t].spec.toDOM;r&&(e[t]=r)}return e}function Tn(n){return n.document||window.document}const Yr=new WeakMap;function Ol(n){let e=Yr.get(n);return e===void 0&&Yr.set(n,e=Nl(n)),e}function Nl(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 i=0;i<r.length;i++)t(r[i]);else for(let i in r)t(r[i])}return t(n),e}function qt(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 i=e[0],s;if(typeof i!="string")throw new RangeError("Invalid array passed to renderSpec");if(r&&(s=Ol(r))&&s.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=i.indexOf(" ");o>0&&(t=i.slice(0,o),i=i.slice(o+1));let l,a=t?n.createElementNS(t,i):n.createElement(i),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]):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}=qt(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 ks=65535,xs=Math.pow(2,16);function El(n,e){return n+e*xs}function Xr(n){return n&ks}function Al(n){return(n-(n&ks))/xs}const Ss=1,Ms=2,Ut=4,Cs=8;class Gn{constructor(e,t,r){this.pos=e,this.delInfo=t,this.recover=r}get deleted(){return(this.delInfo&Cs)>0}get deletedBefore(){return(this.delInfo&(Ss|Ut))>0}get deletedAfter(){return(this.delInfo&(Ms|Ut))>0}get deletedAcross(){return(this.delInfo&Ut)>0}}class ie{constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&ie.empty)return ie.empty}recover(e){let t=0,r=Xr(e);if(!this.inverted)for(let i=0;i<r;i++)t+=this.ranges[i*3+2]-this.ranges[i*3+1];return this.ranges[r*3]+t+Al(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 i=0,s=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?i:0);if(a>e)break;let c=this.ranges[l+s],u=this.ranges[l+o],d=a+c;if(e<=d){let f=c?e==a?-1:e==d?1:t:t,h=a+i+(f<0?0:u);if(r)return h;let p=e==(t<0?a:d)?null:El(l/3,e-a),m=e==a?Ms:e==d?Ss:Ut;return(t<0?e!=a:e!=d)&&(m|=Cs),new Gn(h,m,p)}i+=u-c}return r?e+i:new Gn(e+i,0,null)}touches(e,t){let r=0,i=Xr(t),s=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+s],u=a+c;if(e<=u&&l==i*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 i=0,s=0;i<this.ranges.length;i+=3){let o=this.ranges[i],l=o-(this.inverted?s:0),a=o+(this.inverted?0:s),c=this.ranges[i+t],u=this.ranges[i+r];e(l,l+c,a,a+u),s+=u-c}}invert(){return new ie(this.ranges,!this.inverted)}toString(){return(this.inverted?"-":"")+JSON.stringify(this.ranges)}static offset(e){return e==0?ie.empty:new ie(e<0?[0,-e,0]:[0,0,e])}}ie.empty=new ie([]);class Nt{constructor(e,t,r=0,i=e?e.length:0){this.mirror=t,this.from=r,this.to=i,this._maps=e||[],this.ownData=!(e||t)}get maps(){return this._maps}slice(e=0,t=this.maps.length){return new Nt(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 i=e.getMirror(t);this.appendMap(e._maps[t],i!=null&&i<t?r+i: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 i=e.getMirror(t);this.appendMap(e._maps[t].invert(),i!=null&&i>t?r-i-1:void 0)}}invert(){let e=new Nt;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 i=0;for(let s=this.from;s<this.to;s++){let o=this._maps[s],l=o.mapResult(e,t);if(l.recover!=null){let a=this.getMirror(s);if(a!=null&&a>s&&a<this.to){s=a,e=this._maps[a].recover(l.recover);continue}}i|=l.delInfo,e=l.pos}return r?e:new Gn(e,i,null)}}const On=Object.create(null);class _{getMap(){return ie.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw new RangeError("Invalid input for Step.fromJSON");let r=On[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 On)throw new RangeError("Duplicate use of step JSON ID "+e);return On[e]=t,t.prototype.jsonID=e,t}}class P{constructor(e,t){this.doc=e,this.failed=t}static ok(e){return new P(e,null)}static fail(e){return new P(null,e)}static fromReplace(e,t,r,i){try{return P.ok(e.replace(t,r,i))}catch(s){if(s instanceof Xt)return P.fail(s.message);throw s}}}function dr(n,e,t){let r=[];for(let i=0;i<n.childCount;i++){let s=n.child(i);s.content.size&&(s=s.copy(dr(s.content,e,s))),s.isInline&&(s=e(s,t,i)),r.push(s)}return b.fromArray(r)}class Ae extends _{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),i=r.node(r.sharedDepth(this.to)),s=new k(dr(t.content,(o,l)=>!o.isAtom||!l.type.allowsMarkType(this.mark.type)?o:o.mark(this.mark.addToSet(o.marks)),i),t.openStart,t.openEnd);return P.fromReplace(e,this.from,this.to,s)}invert(){return new pe(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 Ae(t.pos,r.pos,this.mark)}merge(e){return e instanceof Ae&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Ae(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 Ae(t.from,t.to,e.markFromJSON(t.mark))}}_.jsonID("addMark",Ae);class pe extends _{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 k(dr(t.content,i=>i.mark(this.mark.removeFromSet(i.marks)),e),t.openStart,t.openEnd);return P.fromReplace(e,this.from,this.to,r)}invert(){return new Ae(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 pe(t.pos,r.pos,this.mark)}merge(e){return e instanceof pe&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new pe(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 pe(t.from,t.to,e.markFromJSON(t.mark))}}_.jsonID("removeMark",pe);class ve extends _{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return P.fail("No node at mark step's position");let r=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return P.fromReplace(e,this.pos,this.pos+1,new k(b.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 i=0;i<t.marks.length;i++)if(!t.marks[i].isInSet(r))return new ve(this.pos,t.marks[i]);return new ve(this.pos,this.mark)}}return new Ze(this.pos,this.mark)}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new ve(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 ve(t.pos,e.markFromJSON(t.mark))}}_.jsonID("addNodeMark",ve);class Ze extends _{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return P.fail("No node at mark step's position");let r=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return P.fromReplace(e,this.pos,this.pos+1,new k(b.from(r),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new ve(this.pos,this.mark)}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new Ze(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 Ze(t.pos,e.markFromJSON(t.mark))}}_.jsonID("removeNodeMark",Ze);class L extends _{constructor(e,t,r,i=!1){super(),this.from=e,this.to=t,this.slice=r,this.structure=i}apply(e){return this.structure&&Yn(e,this.from,this.to)?P.fail("Structure replace would overwrite content"):P.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new ie([this.from,this.to-this.from,this.slice.size])}invert(e){return new L(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 L(t.pos,Math.max(t.pos,r.pos),this.slice,this.structure)}merge(e){if(!(e instanceof L)||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?k.empty:new k(this.slice.content.append(e.slice.content),this.slice.openStart,e.slice.openEnd);return new L(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?k.empty:new k(e.slice.content.append(this.slice.content),e.slice.openStart,this.slice.openEnd);return new L(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 L(t.from,t.to,k.fromJSON(e,t.slice),!!t.structure)}}_.jsonID("replace",L);class F extends _{constructor(e,t,r,i,s,o,l=!1){super(),this.from=e,this.to=t,this.gapFrom=r,this.gapTo=i,this.slice=s,this.insert=o,this.structure=l}apply(e){if(this.structure&&(Yn(e,this.from,this.gapFrom)||Yn(e,this.gapTo,this.to)))return P.fail("Structure gap-replace would overwrite content");let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return P.fail("Gap is not a flat range");let r=this.slice.insertAt(this.insert,t.content);return r?P.fromReplace(e,this.from,this.to,r):P.fail("Content does not fit in gap")}getMap(){return new ie([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 F(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),i=this.from==this.gapFrom?t.pos:e.map(this.gapFrom,-1),s=this.to==this.gapTo?r.pos:e.map(this.gapTo,1);return t.deletedAcross&&r.deletedAcross||i<t.pos||s>r.pos?null:new F(t.pos,r.pos,i,s,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 F(t.from,t.to,t.gapFrom,t.gapTo,k.fromJSON(e,t.slice),t.insert,!!t.structure)}}_.jsonID("replaceAround",F);function Yn(n,e,t){let r=n.resolve(e),i=t-e,s=r.depth;for(;i>0&&s>0&&r.indexAfter(s)==r.node(s).childCount;)s--,i--;if(i>0){let o=r.node(s).maybeChild(r.indexAfter(s));for(;i>0;){if(!o||o.isLeaf)return!0;o=o.firstChild,i--}}return!1}function vl(n,e,t,r){let i=[],s=[],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:i.push(o=new pe(f,h,d[m])));l&&l.to==f?l.to=h:s.push(l=new Ae(f,h,r))}}),i.forEach(a=>n.step(a)),s.forEach(a=>n.step(a))}function Dl(n,e,t,r){let i=[],s=0;n.doc.nodesBetween(e,t,(o,l)=>{if(!o.isInline)return;s++;let a=null;if(r instanceof un){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<i.length;h++){let p=i[h];p.step==s-1&&d.eq(i[h].style)&&(f=p)}f?(f.to=c,f.step=s):i.push({style:d,from:Math.max(l,e),to:c,step:s})}}}),i.forEach(o=>n.step(new pe(o.from,o.to,o.style)))}function fr(n,e,t,r=t.contentMatch,i=!0){let s=n.doc.nodeAt(e),o=[],l=e+1;for(let a=0;a<s.childCount;a++){let c=s.child(a),u=l+c.nodeSize,d=r.matchType(c.type);if(!d)o.push(new L(l,u,k.empty));else{r=d;for(let f=0;f<c.marks.length;f++)t.allowsMarkType(c.marks[f].type)||n.step(new pe(l,u,c.marks[f]));if(i&&c.isText&&t.whitespace!="pre"){let f,h=/\r?\n|\r/g,p;for(;f=h.exec(c.text);)p||(p=new k(b.from(t.schema.text(" ",t.allowedMarks(c.marks))),0,0)),o.push(new L(l+f.index,l+f.index+f[0].length,p))}}l=u}if(!r.validEnd){let a=r.fillBefore(b.empty,!0);n.replace(l,l,new k(a,0,0))}for(let a=o.length-1;a>=0;a--)n.step(o[a])}function Il(n,e,t){return(e==0||n.canReplace(e,n.childCount))&&(t==n.childCount||n.canReplace(0,t))}function gt(n){let t=n.parent.content.cutByIndex(n.startIndex,n.endIndex);for(let r=n.depth;;--r){let i=n.$from.node(r),s=n.$from.index(r),o=n.$to.indexAfter(r);if(r<n.depth&&i.canReplace(s,o,t))return r;if(r==0||i.type.spec.isolating||!Il(i,s,o))break}return null}function Rl(n,e,t){let{$from:r,$to:i,depth:s}=e,o=r.before(s+1),l=i.after(s+1),a=o,c=l,u=b.empty,d=0;for(let p=s,m=!1;p>t;p--)m||r.index(p)>0?(m=!0,u=b.from(r.node(p).copy(u)),d++):a--;let f=b.empty,h=0;for(let p=s,m=!1;p>t;p--)m||i.after(p+1)<i.end(p)?(m=!0,f=b.from(i.node(p).copy(f)),h++):c++;n.step(new F(a,c,o,l,new k(u.append(f),d,h),u.size-d,!0))}function hr(n,e,t=null,r=n){let i=Pl(n,e),s=i&&Bl(r,e);return s?i.map(Zr).concat({type:e,attrs:t}).concat(s.map(Zr)):null}function Zr(n){return{type:n,attrs:null}}function Pl(n,e){let{parent:t,startIndex:r,endIndex:i}=n,s=t.contentMatchAt(r).findWrapping(e);if(!s)return null;let o=s.length?s[0]:e;return t.canReplaceWith(r,i,o)?s:null}function Bl(n,e){let{parent:t,startIndex:r,endIndex:i}=n,s=t.child(r),o=e.contentMatch.findWrapping(s.type);if(!o)return null;let a=(o.length?o[o.length-1]:e).contentMatch;for(let c=r;a&&c<i;c++)a=a.matchType(t.child(c).type);return!a||!a.validEnd?null:o}function zl(n,e,t){let r=b.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=b.from(t[o].type.create(t[o].attrs,r))}let i=e.start,s=e.end;n.step(new F(i,s,i,s,new k(r,0,0),t.length,!0))}function Ll(n,e,t,r,i){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let s=n.steps.length;n.doc.nodesBetween(e,t,(o,l)=>{let a=typeof i=="function"?i(o):i;if(o.isTextblock&&!o.hasMarkup(r,a)&&Fl(n.doc,n.mapping.slice(s).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&&Ts(n,o,l,s),fr(n,n.mapping.slice(s).map(l,1),r,void 0,c===null);let u=n.mapping.slice(s),d=u.map(l,1),f=u.map(l+o.nodeSize,1);return n.step(new F(d,f,d+1,f-1,new k(b.from(r.create(a,null,o.marks)),0,0),1,!0)),c===!0&&ws(n,o,l,s),!1}})}function ws(n,e,t,r){e.forEach((i,s)=>{if(i.isText){let o,l=/\r?\n|\r/g;for(;o=l.exec(i.text);){let a=n.mapping.slice(r).map(t+1+s+o.index);n.replaceWith(a,a+1,e.type.schema.linebreakReplacement.create())}}})}function Ts(n,e,t,r){e.forEach((i,s)=>{if(i.type==i.type.schema.linebreakReplacement){let o=n.mapping.slice(r).map(t+1+s);n.replaceWith(o,o+1,e.type.schema.text(`