@aquera/nile-elements 1.9.8 → 1.9.9

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 (232) hide show
  1. package/README.md +3 -0
  2. package/dist/{index-249de90a.esm.js → index-289706c7.esm.js} +1 -1
  3. package/dist/{index-df196058.cjs.js → index-d7e6f1c6.cjs.js} +2 -2
  4. package/dist/index-d7e6f1c6.cjs.js.map +1 -0
  5. package/dist/index.cjs.js +1 -1
  6. package/dist/index.esm.js +1 -1
  7. package/dist/index.js +1577 -1275
  8. package/dist/katex-44476ab4.esm.js +1 -0
  9. package/dist/katex-f4186f87.cjs.js +2 -0
  10. package/dist/katex-f4186f87.cjs.js.map +1 -0
  11. package/dist/nile-color-picker/index.cjs.js +1 -1
  12. package/dist/nile-color-picker/index.esm.js +1 -1
  13. package/dist/nile-color-picker/nile-color-picker.cjs.js +1 -1
  14. package/dist/nile-color-picker/nile-color-picker.cjs.js.map +1 -1
  15. package/dist/nile-color-picker/nile-color-picker.esm.js +1 -1
  16. package/dist/nile-wysiwyg-editor/engine/commands.cjs.js +1 -1
  17. package/dist/nile-wysiwyg-editor/engine/commands.cjs.js.map +1 -1
  18. package/dist/nile-wysiwyg-editor/engine/commands.esm.js +1 -1
  19. package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js +1 -1
  20. package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js.map +1 -1
  21. package/dist/nile-wysiwyg-editor/engine/create-state.esm.js +1 -1
  22. package/dist/nile-wysiwyg-editor/engine/index.cjs.js +1 -1
  23. package/dist/nile-wysiwyg-editor/engine/index.esm.js +1 -1
  24. package/dist/nile-wysiwyg-editor/engine/inputrules.cjs.js +1 -1
  25. package/dist/nile-wysiwyg-editor/engine/keymap.cjs.js +1 -1
  26. package/dist/nile-wysiwyg-editor/engine/keymap.esm.js +1 -1
  27. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js +1 -1
  28. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js.map +1 -1
  29. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.esm.js +1 -1
  30. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js +1 -1
  31. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js.map +1 -1
  32. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.esm.js +1 -1
  33. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js +1 -1
  34. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js.map +1 -1
  35. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.esm.js +1 -1
  36. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js +1 -1
  37. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js.map +1 -1
  38. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.esm.js +1 -1
  39. package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.cjs.js +2 -0
  40. package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.cjs.js.map +1 -0
  41. package/dist/nile-wysiwyg-editor/engine/plugins/style-block-view.esm.js +1 -0
  42. package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js +1 -1
  43. package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js.map +1 -1
  44. package/dist/nile-wysiwyg-editor/engine/plugins/tables.esm.js +1 -1
  45. package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js +1 -1
  46. package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js.map +1 -1
  47. package/dist/nile-wysiwyg-editor/engine/sanitize.esm.js +1 -1
  48. package/dist/nile-wysiwyg-editor/engine/schema.cjs.js +1 -1
  49. package/dist/nile-wysiwyg-editor/engine/schema.cjs.js.map +1 -1
  50. package/dist/nile-wysiwyg-editor/engine/schema.esm.js +1 -1
  51. package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js +1 -1
  52. package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js.map +1 -1
  53. package/dist/nile-wysiwyg-editor/engine/selection-state.esm.js +1 -1
  54. package/dist/nile-wysiwyg-editor/index.cjs.js +1 -1
  55. package/dist/nile-wysiwyg-editor/index.esm.js +1 -1
  56. package/dist/nile-wysiwyg-editor/math/katex-renderer.cjs.js +2 -0
  57. package/dist/nile-wysiwyg-editor/math/katex-renderer.cjs.js.map +1 -0
  58. package/dist/nile-wysiwyg-editor/math/katex-renderer.esm.js +1 -0
  59. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +1 -1
  60. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js.map +1 -1
  61. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js +1 -1
  62. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js.map +1 -1
  63. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.esm.js +22 -3
  64. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.esm.js +7 -6
  65. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js +1 -1
  66. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.esm.js +1 -1
  67. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.cjs.js +2 -0
  68. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.cjs.js.map +1 -0
  69. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.esm.js +1 -0
  70. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js +1 -1
  71. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js.map +1 -1
  72. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js +1 -1
  73. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js.map +1 -1
  74. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.esm.js +33 -54
  75. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.esm.js +83 -95
  76. package/dist/nile-wysiwyg-editor/types.cjs.js +1 -1
  77. package/dist/nile-wysiwyg-editor/types.cjs.js.map +1 -1
  78. package/dist/nile-wysiwyg-editor/types.esm.js +1 -1
  79. package/dist/nile-wysiwyg-editor/ui/bubble-item.cjs.js +2 -0
  80. package/dist/nile-wysiwyg-editor/ui/bubble-item.cjs.js.map +1 -0
  81. package/dist/nile-wysiwyg-editor/ui/bubble-item.esm.js +1 -0
  82. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +1 -1
  83. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js.map +1 -1
  84. package/dist/nile-wysiwyg-editor/ui/bubble-menu.esm.js +23 -15
  85. package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js +1 -1
  86. package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js.map +1 -1
  87. package/dist/nile-wysiwyg-editor/ui/code-block-menu.esm.js +3 -3
  88. package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js +1 -1
  89. package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js.map +1 -1
  90. package/dist/nile-wysiwyg-editor/ui/embed-panel.esm.js +2 -2
  91. package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js +1 -1
  92. package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js.map +1 -1
  93. package/dist/nile-wysiwyg-editor/ui/math-panel.esm.js +0 -3
  94. package/dist/nile-wysiwyg-editor/ui/preview.cjs.js +2 -0
  95. package/dist/nile-wysiwyg-editor/ui/preview.cjs.js.map +1 -0
  96. package/dist/nile-wysiwyg-editor/ui/preview.esm.js +8 -0
  97. package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js +1 -1
  98. package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js.map +1 -1
  99. package/dist/nile-wysiwyg-editor/ui/source-view.esm.js +225 -24
  100. package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js +1 -1
  101. package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js.map +1 -1
  102. package/dist/nile-wysiwyg-editor/ui/suggest-list.esm.js +9 -9
  103. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js +1 -1
  104. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js.map +1 -1
  105. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.esm.js +115 -13
  106. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +1 -1
  107. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js.map +1 -1
  108. package/dist/nile-wysiwyg-editor/ui/table-menu.esm.js +13 -12
  109. package/dist/src/index.d.ts +5 -0
  110. package/dist/src/index.js +3 -0
  111. package/dist/src/index.js.map +1 -1
  112. package/dist/src/nile-color-picker/nile-color-picker.d.ts +1 -0
  113. package/dist/src/nile-color-picker/nile-color-picker.js +1 -0
  114. package/dist/src/nile-color-picker/nile-color-picker.js.map +1 -1
  115. package/dist/src/nile-wysiwyg-editor/engine/index.d.ts +1 -0
  116. package/dist/src/nile-wysiwyg-editor/engine/index.js +1 -0
  117. package/dist/src/nile-wysiwyg-editor/engine/index.js.map +1 -1
  118. package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js +3 -0
  119. package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js.map +1 -1
  120. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.d.ts +19 -4
  121. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js +23 -18
  122. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js.map +1 -1
  123. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.d.ts +8 -3
  124. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js +41 -4
  125. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js.map +1 -1
  126. package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.d.ts +17 -0
  127. package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.js +174 -0
  128. package/dist/src/nile-wysiwyg-editor/engine/plugins/style-block-view.js.map +1 -0
  129. package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js +33 -2
  130. package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js.map +1 -1
  131. package/dist/src/nile-wysiwyg-editor/engine/pm.test.js +49 -8
  132. package/dist/src/nile-wysiwyg-editor/engine/pm.test.js.map +1 -1
  133. package/dist/src/nile-wysiwyg-editor/engine/sanitize.d.ts +12 -0
  134. package/dist/src/nile-wysiwyg-editor/engine/sanitize.js +76 -8
  135. package/dist/src/nile-wysiwyg-editor/engine/sanitize.js.map +1 -1
  136. package/dist/src/nile-wysiwyg-editor/engine/schema.d.ts +2 -0
  137. package/dist/src/nile-wysiwyg-editor/engine/schema.js +154 -2
  138. package/dist/src/nile-wysiwyg-editor/engine/schema.js.map +1 -1
  139. package/dist/src/nile-wysiwyg-editor/index.d.ts +5 -0
  140. package/dist/src/nile-wysiwyg-editor/index.js +3 -0
  141. package/dist/src/nile-wysiwyg-editor/index.js.map +1 -1
  142. package/dist/src/nile-wysiwyg-editor/math/katex-renderer.d.ts +38 -0
  143. package/dist/src/nile-wysiwyg-editor/math/katex-renderer.js +40 -0
  144. package/dist/src/nile-wysiwyg-editor/math/katex-renderer.js.map +1 -0
  145. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js +22 -3
  146. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js.map +1 -1
  147. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.d.ts +36 -0
  148. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js +125 -8
  149. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js.map +1 -1
  150. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js +5 -2
  151. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js.map +1 -1
  152. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.d.ts +2 -0
  153. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js +1 -0
  154. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js.map +1 -1
  155. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.d.ts +55 -0
  156. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.js +79 -0
  157. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.js.map +1 -0
  158. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js +33 -54
  159. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js.map +1 -1
  160. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.d.ts +50 -2
  161. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js +158 -102
  162. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js.map +1 -1
  163. package/dist/src/nile-wysiwyg-editor/types.d.ts +4 -2
  164. package/dist/src/nile-wysiwyg-editor/types.js +2 -2
  165. package/dist/src/nile-wysiwyg-editor/types.js.map +1 -1
  166. package/dist/src/nile-wysiwyg-editor/ui/bubble-item.d.ts +48 -0
  167. package/dist/src/nile-wysiwyg-editor/ui/bubble-item.js +69 -0
  168. package/dist/src/nile-wysiwyg-editor/ui/bubble-item.js.map +1 -0
  169. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.d.ts +17 -2
  170. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js +128 -35
  171. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js.map +1 -1
  172. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.d.ts +2 -1
  173. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js +4 -3
  174. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js.map +1 -1
  175. package/dist/src/nile-wysiwyg-editor/ui/math-panel.js +0 -3
  176. package/dist/src/nile-wysiwyg-editor/ui/math-panel.js.map +1 -1
  177. package/dist/src/nile-wysiwyg-editor/ui/preview.d.ts +20 -0
  178. package/dist/src/nile-wysiwyg-editor/ui/preview.js +44 -0
  179. package/dist/src/nile-wysiwyg-editor/ui/preview.js.map +1 -0
  180. package/dist/src/nile-wysiwyg-editor/ui/source-view.d.ts +35 -3
  181. package/dist/src/nile-wysiwyg-editor/ui/source-view.js +337 -24
  182. package/dist/src/nile-wysiwyg-editor/ui/source-view.js.map +1 -1
  183. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.d.ts +1 -0
  184. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js +9 -0
  185. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js.map +1 -1
  186. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.d.ts +13 -2
  187. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js +166 -10
  188. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js.map +1 -1
  189. package/dist/src/nile-wysiwyg-editor/ui/table-menu.d.ts +1 -0
  190. package/dist/src/nile-wysiwyg-editor/ui/table-menu.js +10 -8
  191. package/dist/src/nile-wysiwyg-editor/ui/table-menu.js.map +1 -1
  192. package/dist/src/version.js +1 -1
  193. package/dist/src/version.js.map +1 -1
  194. package/dist/tsconfig.tsbuildinfo +1 -1
  195. package/dist/xml-25c4108a.esm.js +1 -0
  196. package/dist/xml-90fd974e.cjs.js +2 -0
  197. package/dist/xml-90fd974e.cjs.js.map +1 -0
  198. package/package.json +2 -1
  199. package/rollup.config.js +1 -0
  200. package/src/index.ts +8 -0
  201. package/src/nile-color-picker/nile-color-picker.ts +1 -0
  202. package/src/nile-wysiwyg-editor/engine/index.ts +1 -0
  203. package/src/nile-wysiwyg-editor/engine/plugins/embed-view.ts +3 -0
  204. package/src/nile-wysiwyg-editor/engine/plugins/embeds.ts +26 -20
  205. package/src/nile-wysiwyg-editor/engine/plugins/math-view.ts +45 -4
  206. package/src/nile-wysiwyg-editor/engine/plugins/style-block-view.ts +178 -0
  207. package/src/nile-wysiwyg-editor/engine/plugins/tables.ts +34 -2
  208. package/src/nile-wysiwyg-editor/engine/pm.test.ts +58 -8
  209. package/src/nile-wysiwyg-editor/engine/sanitize.ts +71 -8
  210. package/src/nile-wysiwyg-editor/engine/schema.ts +158 -7
  211. package/src/nile-wysiwyg-editor/index.ts +5 -0
  212. package/src/nile-wysiwyg-editor/math/katex-renderer.ts +59 -0
  213. package/src/nile-wysiwyg-editor/math/katex.d.ts +17 -0
  214. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.ts +22 -3
  215. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.ts +5 -2
  216. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.ts +142 -7
  217. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.ts +2 -0
  218. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar-item.ts +68 -0
  219. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.ts +33 -54
  220. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.ts +202 -108
  221. package/src/nile-wysiwyg-editor/types.ts +6 -4
  222. package/src/nile-wysiwyg-editor/ui/bubble-item.ts +60 -0
  223. package/src/nile-wysiwyg-editor/ui/bubble-menu.ts +147 -40
  224. package/src/nile-wysiwyg-editor/ui/embed-panel.ts +4 -3
  225. package/src/nile-wysiwyg-editor/ui/math-panel.ts +0 -3
  226. package/src/nile-wysiwyg-editor/ui/preview.ts +42 -0
  227. package/src/nile-wysiwyg-editor/ui/source-view.ts +339 -31
  228. package/src/nile-wysiwyg-editor/ui/suggest-list.ts +10 -0
  229. package/src/nile-wysiwyg-editor/ui/table-grid-picker.ts +160 -10
  230. package/src/nile-wysiwyg-editor/ui/table-menu.ts +10 -8
  231. package/vscode-html-custom-data.json +75 -6
  232. package/dist/index-df196058.cjs.js.map +0 -1
@@ -1,2 +1,2 @@
1
- System.register(["../../index-89c520e9.cjs.js","../../index-df196058.cjs.js","../../index-cc1385e0.cjs.js","../../index-178e1e57.cjs.js"],function(_export,_context){"use strict";var t,e,l,r,a,n,i,s,o,u,c,g,_F$attrs,d,p,f,m,b,y,w,A,j,N,F,z,S,q,H,I,C,E,G,R;function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1;}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r;}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return;}finally{if(o)throw n;}}return a;}}function _arrayWithHoles(r){if(Array.isArray(r))return r;}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable;})),t.push.apply(t,o);}return t;}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));});}return e;}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function h(t,e){var l={};for(var _e in t)l[_e]=t[_e];for(var _t in e)l[_t]=e[_t];return l;}function M(a){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;return function(o,u){var _o$selection=o.selection,c=_o$selection.$from,g=_o$selection.$to,d=c.blockRange(g);if(!d)return!1;var p=u?o.tr:null;return!!function(a,n,o){var u=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;var c=!1,g=n,d=n.$from.doc;if(n.depth>=2&&n.$from.node(n.depth-1).type.compatibleContent(o)&&0==n.startIndex){if(0==n.$from.index(n.depth-1))return!1;var _t2=d.resolve(n.start-2);g=new r(_t2,_t2,n.depth),n.endIndex<n.parent.childCount&&(n=new r(n.$from,d.resolve(n.$to.end(n.depth)),n.depth)),c=!0;}var p=i(g,o,u,n);if(!p)return!1;a&&function(r,a,n,i,o){var u=l.empty;for(var _t3=n.length-1;_t3>=0;_t3--)u=l.from(n[_t3].type.create(n[_t3].attrs,u));r.step(new t(a.start-(i?2:0),a.end,a.start,a.end,new e(u,0,0),n.length,!0));var c=0;for(var _t4=0;_t4<n.length;_t4++)n[_t4].type==o&&(c=_t4+1);var g=n.length-c,d=a.start+n.length-(i?2:0),p=a.parent;for(var _t5=a.startIndex,_e2=a.endIndex,_l=!0;_t5<_e2;_t5++,_l=!1)!_l&&s(r.doc,d,g)&&(r.split(d,g),d+=2*g),d+=p.child(_t5).nodeSize;}(a,n,p,c,o);return!0;}(p,d,a,n)&&(u&&u(p.scrollIntoView()),!0);};}function O(t,r){return function(a,n){var _a$selection=a.selection,i=_a$selection.$from,u=_a$selection.$to,c=_a$selection.node;if(c&&c.isBlock||i.depth<2||!i.sameParent(u))return!1;var g=i.node(-1);if(g.type!=t)return!1;if(0==i.parent.content.size&&i.node(-1).childCount==i.indexAfter(-1)){if(3==i.depth||i.node(-3).type!=t||i.index(-2)!=i.node(-2).childCount-1)return!1;if(n){var _r=l.empty,_s=i.index(-1)?1:i.index(-2)?2:3;for(var _t6=i.depth-_s;_t6>=i.depth-3;_t6--)_r=l.from(i.node(_t6).copy(_r));var _u=i.indexAfter(-1)<i.node(-2).childCount?1:i.indexAfter(-2)<i.node(-3).childCount?2:3;_r=_r.append(l.from(t.createAndFill()));var _c=i.before(i.depth-(_s-1)),_g=a.tr.replace(_c,i.after(-_u),new e(_r,4-_s,0)),_d=-1;_g.doc.nodesBetween(_c,_g.doc.content.size,function(t,e){if(_d>-1)return!1;t.isTextblock&&0==t.content.size&&(_d=e+1);}),_d>-1&&_g.setSelection(o.near(_g.doc.resolve(_d))),n(_g.scrollIntoView());}return!0;}var d=u.pos==i.end()?g.contentMatchAt(0).defaultType:null,p=a.tr["delete"](i.pos,u.pos),f=d?[r?{type:t,attrs:r}:null,{type:d}]:void 0;return!!s(p.doc,i.pos,2,f)&&(n&&n(p.split(i.pos,2,f).scrollIntoView()),!0);};}function D(i){return function(s,o){var _s$selection=s.selection,u=_s$selection.$from,c=_s$selection.$to,g=u.blockRange(c,function(t){return t.childCount>0&&t.firstChild.type==i;});return!!g&&(!o||(u.node(g.depth-1).type==i?function(i,s,o,u){var c=i.tr,g=u.end,d=u.$to.end(u.depth);g<d&&(c.step(new t(g-1,d,g,d,new e(l.from(o.create(null,u.parent.copy())),1,0),1,!0)),u=new r(c.doc.resolve(u.$from.pos),c.doc.resolve(d),u.depth));var p=a(u);if(null==p)return!1;c.lift(u,p);var f=c.doc.resolve(c.mapping.map(g,-1)-1);n(c.doc,f.pos)&&f.nodeBefore.type==f.nodeAfter.type&&c.join(f.pos);return s(c.scrollIntoView()),!0;}(s,o,i,g):function(r,a,n){var i=r.tr,s=n.parent;for(var _t7=n.end,_e3=n.endIndex-1,_l2=n.startIndex;_e3>_l2;_e3--)_t7-=s.child(_e3).nodeSize,i["delete"](_t7-1,_t7+1);var o=i.doc.resolve(n.start),u=o.nodeAfter;if(i.mapping.map(n.end)!=n.start+o.nodeAfter.nodeSize)return!1;var c=0==n.startIndex,g=n.endIndex==s.childCount,d=o.node(-1),p=o.index(-1);if(!d.canReplace(p+(c?0:1),p+1,u.content.append(g?l.empty:l.from(s))))return!1;var f=o.pos,m=f+u.nodeSize;return i.step(new t(f-(c?1:0),m+(g?1:0),f+1,m-1,new e((c?l.empty:l.from(s.copy(l.empty))).append(g?l.empty:l.from(s.copy(l.empty))),c?0:1,g?0:1),c?0:1)),a(i.scrollIntoView()),!0;}(s,o,g)));};}function k(r){return function(a,n){var _a$selection2=a.selection,i=_a$selection2.$from,s=_a$selection2.$to,o=i.blockRange(s,function(t){return t.childCount>0&&t.firstChild.type==r;});if(!o)return!1;var u=o.startIndex;if(0==u)return!1;var c=o.parent,g=c.child(u-1);if(g.type!=r)return!1;if(n){var _i=g.lastChild&&g.lastChild.type==c.type,_s2=l.from(_i?r.create():null),_u2=new e(l.from(r.create(null,l.from(c.type.create(null,_s2)))),_i?3:1,0),_d2=o.start,_p=o.end;n(a.tr.step(new t(_d2-(_i?3:1),_p,_d2,_p,_u2,1,!0)).scrollIntoView());}return!0;};}function _(t){var e=t.style.textAlign||t.getAttribute("align")||"";return w.includes(e)?e:null;}function $(t){var e=t.style.marginInlineStart||t.style.marginLeft||"",l=parseFloat(e);return!Number.isFinite(l)||l<=0?0:Math.min(8,Math.round(l/40));}function x(t){var e=t.style.lineHeight.trim();if(!e||"normal"===e)return null;var l=parseFloat(e);return!Number.isFinite(l)||l<=0?null:e.endsWith("%")?String(l/100):e;}function v(t){var _t$align;var e=[],l=function(t){return t?"text-align: ".concat(t):null;}((_t$align=t.align)!==null&&_t$align!==void 0?_t$align:null);return l&&e.push(l),t.indent&&e.push("margin-inline-start: ".concat(40*t.indent,"px")),t.lineHeight&&e.push("line-height: ".concat(t.lineHeight)),e.length?e.join("; "):null;}_export({a:k,l:D,s:O,w:M});return{setters:[function(_index00aCjsJs){t=_index00aCjsJs.R;e=_index00aCjsJs.d;l=_index00aCjsJs.F;r=_index00aCjsJs.h;a=_index00aCjsJs.l;n=_index00aCjsJs.g;i=_index00aCjsJs.f;s=_index00aCjsJs.i;o=_index00aCjsJs.S;u=_index00aCjsJs.O;c=_index00aCjsJs.j;},function(_index001CjsJs){g=_index001CjsJs.a;},function(_index009CjsJs){},function(_index007CjsJs){}],execute:function execute(){d=["ol",0],p=["ul",0],f=["li",0],m={attrs:{order:{"default":1,validate:"number"}},parseDOM:[{tag:"ol",getAttrs:function getAttrs(t){return{order:t.hasAttribute("start")?+t.getAttribute("start"):1};}}],toDOM:function toDOM(t){return 1==t.attrs.order?d:["ol",{start:t.attrs.order},0];}},b={parseDOM:[{tag:"ul"}],toDOM:function toDOM(){return p;}},y={parseDOM:[{tag:"li"}],toDOM:function toDOM(){return f;},defining:!0};w=["left","center","right","justify"];_export("b",A=8);j={doc:{content:"block+"},paragraph:{content:"inline*",group:"block",attrs:{align:{"default":null},indent:{"default":0},lineHeight:{"default":null}},parseDOM:[{tag:"p",getAttrs:function getAttrs(t){return{align:_(t),indent:$(t),lineHeight:x(t)};}}],toDOM:function toDOM(t){var e=v(t.attrs);return e?["p",{style:e},0]:["p",0];}},heading:{content:"inline*",group:"block",defining:!0,attrs:{level:{"default":1},align:{"default":null},indent:{"default":0},lineHeight:{"default":null}},parseDOM:[1,2,3,4,5,6].map(function(t){return{tag:"h".concat(t),getAttrs:function getAttrs(e){return{level:t,align:_(e),indent:$(e),lineHeight:x(e)};}};}),toDOM:function toDOM(t){var e=v(t.attrs);return e?["h".concat(t.attrs.level),{style:e},0]:["h".concat(t.attrs.level),0];}},blockquote:{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"blockquote"}],toDOM:function toDOM(){return["blockquote",0];}},horizontal_rule:{group:"block",parseDOM:[{tag:"hr"}],toDOM:function toDOM(){return["hr"];}},text:{group:"inline"},hard_break:{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM:function toDOM(){return["br"];}},code_block:{content:"text*",group:"block",marks:"",code:!0,defining:!0,attrs:{language:{"default":null}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs:function getAttrs(t){return{language:t.getAttribute("data-language")};}}],toDOM:function toDOM(t){var e={"class":"nile-wysiwyg__code-block"};return t.attrs.language&&(e["data-language"]=t.attrs.language),["pre",e,["code",0]];}},image:{inline:!0,group:"inline",draggable:!0,attrs:{src:{},alt:{"default":null},title:{"default":null},width:{"default":null}},parseDOM:[{tag:"img[src]",getAttrs:function getAttrs(t){var _t$getAttribute;var e=parseFloat(t.style.width),l=parseFloat((_t$getAttribute=t.getAttribute("width"))!==null&&_t$getAttribute!==void 0?_t$getAttribute:""),r=Number.isFinite(e)?Math.round(e):Number.isFinite(l)?Math.round(l):null;return{src:t.getAttribute("src"),alt:t.getAttribute("alt"),title:t.getAttribute("title"),width:r&&r>0?r:null};}}],toDOM:function toDOM(t){var _t$attrs=t.attrs,e=_t$attrs.src,l=_t$attrs.alt,r=_t$attrs.title,a=_t$attrs.width,n={src:e};return l&&(n.alt=l),r&&(n.title=r),a&&(n.style="width: ".concat(a,"px")),["img",n];}},figure:{group:"block",content:"inline*",defining:!0,isolating:!0,attrs:{src:{},alt:{"default":null},title:{"default":null},width:{"default":null},align:{"default":null}},parseDOM:[{tag:"figure",contentElement:"figcaption",getAttrs:function getAttrs(t){var e=t.querySelector("img[src]");if(!e)return!1;var l=parseFloat(e.style.width||t.style.width),r=t.getAttribute("data-align");return{src:e.getAttribute("src"),alt:e.getAttribute("alt"),title:e.getAttribute("title"),width:Number.isFinite(l)&&l>0?Math.round(l):null,align:"left"===r||"center"===r||"right"===r?r:null};}}],toDOM:function toDOM(t){var _t$attrs2=t.attrs,e=_t$attrs2.src,l=_t$attrs2.alt,r=_t$attrs2.title,a=_t$attrs2.width,n=_t$attrs2.align,i={"class":"nile-wysiwyg__figure"};n&&(i["data-align"]=n);var s=[];a&&s.push("width: ".concat(a,"px")),"center"===n?s.push("margin-left: auto; margin-right: auto"):"right"===n&&s.push("margin-left: auto; margin-right: 0"),s.length&&(i.style=s.join("; "));var o={src:e,style:"width: 100%"};return l&&(o.alt=l),r&&(o.title=r),["figure",i,["img",o],["figcaption",{"class":"nile-wysiwyg__figcaption"},0]];}},task_list:{content:"task_item+",group:"block",parseDOM:[{tag:"ul[data-task-list]",priority:51}],toDOM:function toDOM(){return["ul",{"data-task-list":"true","class":"nile-wysiwyg__task-list"},0];}},task_item:{content:"paragraph block*",defining:!0,attrs:{checked:{"default":!1}},parseDOM:[{tag:"li[data-task-item]",priority:51,getAttrs:function getAttrs(t){return{checked:"true"===t.getAttribute("data-checked")};}}],toDOM:function toDOM(t){return["li",{"data-task-item":"true","data-checked":String(t.attrs.checked),"class":"nile-wysiwyg__task-item"},0];}},embed:{group:"block",atom:!0,selectable:!0,draggable:!0,attrs:{src:{},provider:{"default":null},title:{"default":null},width:{"default":null},align:{"default":null}},parseDOM:[{tag:"div[data-embed-provider]",getAttrs:function getAttrs(t){var _t$getAttribute2,_exec;var e=t.querySelector("iframe[src]");if(!e)return!1;var l=(_t$getAttribute2=t.getAttribute("data-width"))!==null&&_t$getAttribute2!==void 0?_t$getAttribute2:(_exec=/^(\d+)px$/.exec(t.style.width))===null||_exec===void 0?void 0:_exec[1],r=l?parseInt(l,10):NaN,a=t.getAttribute("data-align");return{src:e.getAttribute("src"),provider:t.getAttribute("data-embed-provider"),title:e.getAttribute("title"),width:Number.isFinite(r)&&r>0?r:null,align:"left"===a||"center"===a||"right"===a?a:null};}},{tag:"iframe[src]",getAttrs:function getAttrs(t){var _t$getAttribute3;var e=parseInt((_t$getAttribute3=t.getAttribute("width"))!==null&&_t$getAttribute3!==void 0?_t$getAttribute3:"",10);return{src:t.getAttribute("src"),title:t.getAttribute("title"),width:Number.isFinite(e)&&e>0?e:null};}}],toDOM:function toDOM(t){var _t$attrs3=t.attrs,e=_t$attrs3.src,l=_t$attrs3.provider,r=_t$attrs3.title,a=_t$attrs3.width,n=_t$attrs3.align,i={src:e,frameborder:"0",allowfullscreen:"true",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"};r&&(i.title=r);var s={"class":"nile-wysiwyg__embed","data-embed-provider":l!==null&&l!==void 0?l:"generic"},o=[];return a&&(s["data-width"]=String(a),o.push("width: ".concat(a,"px"),"max-width: 100%")),n&&(s["data-align"]=n,"center"===n?o.push("margin-left: auto","margin-right: auto"):"right"===n&&o.push("margin-left: auto","margin-right: 0")),o.length&&(s.style=o.join("; ")),["div",s,["iframe",i]];}},bookmark:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{id:{}},parseDOM:[{tag:"a[data-bookmark]",priority:60,getAttrs:function getAttrs(t){var e=t.getAttribute("id")||t.getAttribute("name");return!!e&&{id:e};}},{tag:"a[id]",getAttrs:function getAttrs(t){return!t.hasAttribute("href")&&{id:t.getAttribute("id")};}},{tag:"a[name]",getAttrs:function getAttrs(t){return!t.hasAttribute("href")&&{id:t.getAttribute("name")};}}],toDOM:function toDOM(t){return["a",{id:t.attrs.id,"data-bookmark":"true"}];}},mention:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{trigger:{"default":"@"},key:{},label:{}},parseDOM:[{tag:"span[data-mention-key]",getAttrs:function getAttrs(t){var _t$textContent;return{trigger:t.getAttribute("data-mention-trigger")||"@",key:t.getAttribute("data-mention-key"),label:t.getAttribute("data-mention-label")||((_t$textContent=t.textContent)===null||_t$textContent===void 0?void 0:_t$textContent.slice(1))||""};}}],toDOM:function toDOM(t){var _t$attrs4=t.attrs,e=_t$attrs4.trigger,l=_t$attrs4.key,r=_t$attrs4.label;return["span",{"class":"nile-wysiwyg__mention","data-mention-trigger":e,"data-mention-key":l,"data-mention-label":r},"".concat(e).concat(r)];}},merge_field:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{id:{},label:{"default":null}},parseDOM:[{tag:"span[data-merge-field]",getAttrs:function getAttrs(t){var e=t.getAttribute("data-merge-field");return!!e&&{id:e,label:t.getAttribute("data-merge-label")||t.textContent||null};}}],toDOM:function toDOM(t){var _t$attrs5=t.attrs,e=_t$attrs5.id,l=_t$attrs5.label;return["span",{"class":"nile-wysiwyg__merge-field","data-merge-field":e,"data-merge-label":l!==null&&l!==void 0?l:""},l||"{{".concat(e,"}}")];}},math:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{latex:{},display:{"default":"inline"}},parseDOM:[{tag:"span[data-math]",getAttrs:function getAttrs(t){return{latex:t.getAttribute("data-math")||t.textContent||"",display:"block"===t.getAttribute("data-math-display")?"block":"inline"};}}],toDOM:function toDOM(t){var _t$attrs6=t.attrs,e=_t$attrs6.latex,l=_t$attrs6.display;return["span",{"class":"nile-wysiwyg__math","data-math":e,"data-math-display":l},e];}}},N=g({tableGroup:"block",cellContent:"block+",cellAttributes:{background:{"default":null,getFromDOM:function getFromDOM(t){return t.style.backgroundColor||null;},setDOMAttr:function setDOMAttr(t,e){t&&(e.style="".concat(e.style||"","background-color: ").concat(t,";"));}}}}),F=N.table,z=_objectSpread(_objectSpread({},F),{},{attrs:_objectSpread(_objectSpread({},(_F$attrs=F.attrs)!==null&&_F$attrs!==void 0?_F$attrs:{}),{},{layout:{"default":!1}}),parseDOM:[{tag:"table",getAttrs:function getAttrs(t){return{layout:"presentation"===t.getAttribute("role")||t.hasAttribute("data-layout")};}}],toDOM:function toDOM(t){return t.attrs.layout?["table",{role:"presentation","data-layout":"true"},["tbody",0]]:["table",["tbody",0]];}}),S={link:{attrs:{href:{},title:{"default":null},target:{"default":null}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs:function getAttrs(t){return{href:t.getAttribute("href"),title:t.getAttribute("title"),target:t.getAttribute("target")};}}],toDOM:function toDOM(t){var _t$attrs7=t.attrs,e=_t$attrs7.href,l=_t$attrs7.title,r=_t$attrs7.target,a={href:e};return l&&(a.title=l),r&&(a.target=r,"_blank"===r&&(a.rel="noopener noreferrer")),["a",a,0];}},bold:{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:function getAttrs(t){return"normal"!==t.style.fontWeight&&null;}},{style:"font-weight",getAttrs:function getAttrs(t){return /^(bold(er)?|[5-9]\d{2,})$/.test(t)&&null;}}],toDOM:function toDOM(){return["strong",0];}},italic:{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style=italic"}],toDOM:function toDOM(){return["em",0];}},underline:{parseDOM:[{tag:"u"},{style:"text-decoration",getAttrs:function getAttrs(t){return t.includes("underline")&&null;}},{style:"text-decoration-line",getAttrs:function getAttrs(t){return t.includes("underline")&&null;}}],toDOM:function toDOM(){return["u",0];}},strike:{parseDOM:[{tag:"s"},{tag:"strike"},{tag:"del"},{style:"text-decoration",getAttrs:function getAttrs(t){return t.includes("line-through")&&null;}},{style:"text-decoration-line",getAttrs:function getAttrs(t){return t.includes("line-through")&&null;}}],toDOM:function toDOM(){return["s",0];}},subscript:{excludes:"subscript superscript",parseDOM:[{tag:"sub"},{style:"vertical-align=sub"}],toDOM:function toDOM(){return["sub",0];}},superscript:{excludes:"subscript superscript",parseDOM:[{tag:"sup"},{style:"vertical-align=super"}],toDOM:function toDOM(){return["sup",0];}},code:{parseDOM:[{tag:"code"}],toDOM:function toDOM(){return["code",{"class":"nile-wysiwyg__inline-code"},0];}},text_color:{attrs:{color:{}},parseDOM:[{style:"color",getAttrs:function getAttrs(t){return!!t&&{color:t};}}],toDOM:function toDOM(t){return["span",{style:"color: ".concat(t.attrs.color)},0];}},bg_color:{attrs:{color:{}},parseDOM:[{style:"background-color",getAttrs:function getAttrs(t){return!(!t||"transparent"===t)&&{color:t};}}],toDOM:function toDOM(t){return["span",{style:"background-color: ".concat(t.attrs.color)},0];}},font_family:{attrs:{family:{}},parseDOM:[{style:"font-family",getAttrs:function getAttrs(t){return!!t&&{family:t};}}],toDOM:function toDOM(t){return["span",{style:"font-family: ".concat(t.attrs.family)},0];}},font_size:{attrs:{size:{}},parseDOM:[{style:"font-size",getAttrs:function getAttrs(t){return!!t&&{size:t};}}],toDOM:function toDOM(t){return["span",{style:"font-size: ".concat(t.attrs.size)},0];}}},q=["disc","circle","square"],H={1:"decimal",a:"lower-alpha",A:"upper-alpha",i:"lower-roman",I:"upper-roman"},I=Object.fromEntries(Object.entries(H).map(function(_ref){var _ref2=_slicedToArray(_ref,2),t=_ref2[0],e=_ref2[1];return[e,t];})),_export("M",C="multilevel"),E={content:"list_item+",group:"block",attrs:{style:{"default":null}},parseDOM:[{tag:"ul",getAttrs:function getAttrs(t){var e=t.style.listStyleType;return{style:q.includes(e)?e:null};}}],toDOM:function toDOM(t){return t.attrs.style?["ul",{style:"list-style-type: ".concat(t.attrs.style)},0]:["ul",0];}},G={content:"list_item+",group:"block",attrs:{order:{"default":1},style:{"default":null}},parseDOM:[{tag:"ol",getAttrs:function getAttrs(t){var _t$getAttribute4,_H$e;var e=(_t$getAttribute4=t.getAttribute("type"))!==null&&_t$getAttribute4!==void 0?_t$getAttribute4:"",l=t.style.listStyleType,r=t.getAttribute("data-list-style")===C?C:(_H$e=H[e])!==null&&_H$e!==void 0?_H$e:Object.values(H).includes(l)?l:null,a=Number(t.getAttribute("start"));return{order:Number.isFinite(a)&&a>0?a:1,style:r};}}],toDOM:function toDOM(t){var e={};return 1!==t.attrs.order&&(e.start=String(t.attrs.order)),t.attrs.style===C?e["data-list-style"]=C:t.attrs.style&&I[t.attrs.style]&&(e.type=I[t.attrs.style]),["ol",e,0];}};_export("d",R=function(){var t=function(t,e,l){return t.append({ordered_list:h(m,{content:"list_item+",group:l}),bullet_list:h(b,{content:"list_item+",group:l}),list_item:h(y,{content:e})});}(u.from(j),"paragraph block*","block").update("bullet_list",E).update("ordered_list",G).append(N).update("table",z);return new c({nodes:t,marks:u.from(S)});}());}};});
1
+ System.register(["../../index-89c520e9.cjs.js","../../index-d7e6f1c6.cjs.js","./plugins/embeds.cjs.js","../../index-cc1385e0.cjs.js","../../index-178e1e57.cjs.js"],function(_export,_context){"use strict";var t,e,l,r,n,a,i,s,o,u,c,g,d,f,_R$attrs,p,m,b,y,h,M,A,x,F,q,E,B,G,P,R,W,J,K,L,Q,T,U,V,X;function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest();}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1;}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r;}finally{try{if(!f&&null!=t["return"]&&(u=t["return"](),Object(u)!==u))return;}finally{if(o)throw n;}}return a;}}function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r);}function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}function _toArray(r){return _arrayWithHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r);}function _arrayWithHoles(r){if(Array.isArray(r))return r;}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable;})),t.push.apply(t,o);}return t;}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));});}return e;}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function O(t,e){var l={};for(var _e in t)l[_e]=t[_e];for(var _t in e)l[_t]=e[_t];return l;}function D(n){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;return function(o,u){var _o$selection=o.selection,c=_o$selection.$from,g=_o$selection.$to,d=c.blockRange(g);if(!d)return!1;var f=u?o.tr:null;return!!function(n,a,o){var u=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;var c=!1,g=a,d=a.$from.doc;if(a.depth>=2&&a.$from.node(a.depth-1).type.compatibleContent(o)&&0==a.startIndex){if(0==a.$from.index(a.depth-1))return!1;var _t2=d.resolve(a.start-2);g=new r(_t2,_t2,a.depth),a.endIndex<a.parent.childCount&&(a=new r(a.$from,d.resolve(a.$to.end(a.depth)),a.depth)),c=!0;}var f=i(g,o,u,a);if(!f)return!1;n&&function(r,n,a,i,o){var u=l.empty;for(var _t3=a.length-1;_t3>=0;_t3--)u=l.from(a[_t3].type.create(a[_t3].attrs,u));r.step(new t(n.start-(i?2:0),n.end,n.start,n.end,new e(u,0,0),a.length,!0));var c=0;for(var _t4=0;_t4<a.length;_t4++)a[_t4].type==o&&(c=_t4+1);var g=a.length-c,d=n.start+a.length-(i?2:0),f=n.parent;for(var _t5=n.startIndex,_e2=n.endIndex,_l=!0;_t5<_e2;_t5++,_l=!1)!_l&&s(r.doc,d,g)&&(r.split(d,g),d+=2*g),d+=f.child(_t5).nodeSize;}(n,a,f,c,o);return!0;}(f,d,n,a)&&(u&&u(f.scrollIntoView()),!0);};}function k(t,r){return function(n,a){var _n$selection=n.selection,i=_n$selection.$from,u=_n$selection.$to,c=_n$selection.node;if(c&&c.isBlock||i.depth<2||!i.sameParent(u))return!1;var g=i.node(-1);if(g.type!=t)return!1;if(0==i.parent.content.size&&i.node(-1).childCount==i.indexAfter(-1)){if(3==i.depth||i.node(-3).type!=t||i.index(-2)!=i.node(-2).childCount-1)return!1;if(a){var _r=l.empty,_s=i.index(-1)?1:i.index(-2)?2:3;for(var _t6=i.depth-_s;_t6>=i.depth-3;_t6--)_r=l.from(i.node(_t6).copy(_r));var _u=i.indexAfter(-1)<i.node(-2).childCount?1:i.indexAfter(-2)<i.node(-3).childCount?2:3;_r=_r.append(l.from(t.createAndFill()));var _c=i.before(i.depth-(_s-1)),_g=n.tr.replace(_c,i.after(-_u),new e(_r,4-_s,0)),_d=-1;_g.doc.nodesBetween(_c,_g.doc.content.size,function(t,e){if(_d>-1)return!1;t.isTextblock&&0==t.content.size&&(_d=e+1);}),_d>-1&&_g.setSelection(o.near(_g.doc.resolve(_d))),a(_g.scrollIntoView());}return!0;}var d=u.pos==i.end()?g.contentMatchAt(0).defaultType:null,f=n.tr["delete"](i.pos,u.pos),p=d?[r?{type:t,attrs:r}:null,{type:d}]:void 0;return!!s(f.doc,i.pos,2,p)&&(a&&a(f.split(i.pos,2,p).scrollIntoView()),!0);};}function w(i){return function(s,o){var _s$selection=s.selection,u=_s$selection.$from,c=_s$selection.$to,g=u.blockRange(c,function(t){return t.childCount>0&&t.firstChild.type==i;});return!!g&&(!o||(u.node(g.depth-1).type==i?function(i,s,o,u){var c=i.tr,g=u.end,d=u.$to.end(u.depth);g<d&&(c.step(new t(g-1,d,g,d,new e(l.from(o.create(null,u.parent.copy())),1,0),1,!0)),u=new r(c.doc.resolve(u.$from.pos),c.doc.resolve(d),u.depth));var f=n(u);if(null==f)return!1;c.lift(u,f);var p=c.doc.resolve(c.mapping.map(g,-1)-1);a(c.doc,p.pos)&&p.nodeBefore.type==p.nodeAfter.type&&c.join(p.pos);return s(c.scrollIntoView()),!0;}(s,o,i,g):function(r,n,a){var i=r.tr,s=a.parent;for(var _t7=a.end,_e3=a.endIndex-1,_l2=a.startIndex;_e3>_l2;_e3--)_t7-=s.child(_e3).nodeSize,i["delete"](_t7-1,_t7+1);var o=i.doc.resolve(a.start),u=o.nodeAfter;if(i.mapping.map(a.end)!=a.start+o.nodeAfter.nodeSize)return!1;var c=0==a.startIndex,g=a.endIndex==s.childCount,d=o.node(-1),f=o.index(-1);if(!d.canReplace(f+(c?0:1),f+1,u.content.append(g?l.empty:l.from(s))))return!1;var p=o.pos,m=p+u.nodeSize;return i.step(new t(p-(c?1:0),m+(g?1:0),p+1,m-1,new e((c?l.empty:l.from(s.copy(l.empty))).append(g?l.empty:l.from(s.copy(l.empty))),c?0:1,g?0:1),c?0:1)),n(i.scrollIntoView()),!0;}(s,o,g)));};}function _(r){return function(n,a){var _n$selection2=n.selection,i=_n$selection2.$from,s=_n$selection2.$to,o=i.blockRange(s,function(t){return t.childCount>0&&t.firstChild.type==r;});if(!o)return!1;var u=o.startIndex;if(0==u)return!1;var c=o.parent,g=c.child(u-1);if(g.type!=r)return!1;if(a){var _i=g.lastChild&&g.lastChild.type==c.type,_s2=l.from(_i?r.create():null),_u2=new e(l.from(r.create(null,l.from(c.type.create(null,_s2)))),_i?3:1,0),_d2=o.start,_f=o.end;a(n.tr.step(new t(_d2-(_i?3:1),_f,_d2,_f,_u2,1,!0)).scrollIntoView());}return!0;};}function $(t){var e=t.style.textAlign||t.getAttribute("align")||"";return A.includes(e)?e:null;}function v(t){var e=t.style.marginInlineStart||t.style.marginLeft||"",l=parseFloat(e);return!Number.isFinite(l)||l<=0?0:Math.min(8,Math.round(l/40));}function j(t){var e=t.style.lineHeight.trim();if(!e||"normal"===e)return null;var l=parseFloat(e);return!Number.isFinite(l)||l<=0?null:e.endsWith("%")?String(l/100):e;}function N(t){var _t$align;var e=[],l=function(t){return t?"text-align: ".concat(t):null;}((_t$align=t.align)!==null&&_t$align!==void 0?_t$align:null);return l&&e.push(l),t.indent&&e.push("margin-inline-start: ".concat(40*t.indent,"px")),t.lineHeight&&e.push("line-height: ".concat(t.lineHeight)),e.length?e.join("; "):null;}function I(t){if(!t)return null;var e=t.split(/\s+/).filter(function(t){return t&&!F.test(t);});return e.length?e.join(" "):null;}function z(t){return t&&!F.test(t)?t:null;}function C(t){return{htmlClass:I(t.getAttribute("class")),htmlId:z(t.getAttribute("id"))};}function S(t){if(!("tag"in t)||"style"in t)return t;var e=t.getAttrs;return _objectSpread(_objectSpread({},t),{},{getAttrs:function getAttrs(t){var l=e?e(t):null;return!1!==l&&_objectSpread(_objectSpread({},l!==null&&l!==void 0?l:{}),C(t));}});}function H(t){var _t$attrs,_t$parseDOM;return _objectSpread(_objectSpread({},t),{},{attrs:_objectSpread(_objectSpread({},(_t$attrs=t.attrs)!==null&&_t$attrs!==void 0?_t$attrs:{}),q),parseDOM:(_t$parseDOM=t.parseDOM)===null||_t$parseDOM===void 0?void 0:_t$parseDOM.map(S),toDOM:(e=t.toDOM,e?function(t){for(var _len=arguments.length,l=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){l[_key-1]=arguments[_key];}var r=e.apply(void 0,[t].concat(l)),n=t.attrs.htmlClass,a=t.attrs.htmlId;if(!Array.isArray(r)||!n&&!a)return r;var _r2=_toArray(r),i=_r2[0],s=_r2.slice(1);var o={},u=s;return s.length&&s[0]&&"object"==_typeof(s[0])&&!Array.isArray(s[0])&&(o=_objectSpread({},s[0]),u=s.slice(1)),n&&(o["class"]=o["class"]?"".concat(o["class"]," ").concat(n):n),a&&(o.id=a),[i,o].concat(_toConsumableArray(u));}:e)});var e;}_export({a:_,l:w,s:k,w:D});return{setters:[function(_index00aCjsJs){t=_index00aCjsJs.R;e=_index00aCjsJs.d;l=_index00aCjsJs.F;r=_index00aCjsJs.h;n=_index00aCjsJs.l;a=_index00aCjsJs.g;i=_index00aCjsJs.f;s=_index00aCjsJs.i;o=_index00aCjsJs.S;u=_index00aCjsJs.O;c=_index00aCjsJs.j;},function(_index001CjsJs){g=_index001CjsJs.a;},function(_pluginsEmbedsCjsJs){d=_pluginsEmbedsCjsJs.E;f=_pluginsEmbedsCjsJs.a;},function(_index009CjsJs){},function(_index007CjsJs){}],execute:function execute(){p=["ol",0],m=["ul",0],b=["li",0],y={attrs:{order:{"default":1,validate:"number"}},parseDOM:[{tag:"ol",getAttrs:function getAttrs(t){return{order:t.hasAttribute("start")?+t.getAttribute("start"):1};}}],toDOM:function toDOM(t){return 1==t.attrs.order?p:["ol",{start:t.attrs.order},0];}},h={parseDOM:[{tag:"ul"}],toDOM:function toDOM(){return m;}},M={parseDOM:[{tag:"li"}],toDOM:function toDOM(){return b;},defining:!0};A=["left","center","right","justify"];_export("b",x=8);F=/^(?:nile-wysiwyg|ProseMirror)/;q={htmlClass:{"default":null},htmlId:{"default":null}};E=["paragraph","heading","blockquote","code_block","bullet_list","ordered_list","list_item","table","table_row","table_cell","table_header"],B=["link","bold","italic","underline","strike","code","subscript","superscript"],G={doc:{content:"block+"},paragraph:{content:"inline*",group:"block",attrs:{align:{"default":null},indent:{"default":0},lineHeight:{"default":null}},parseDOM:[{tag:"p",getAttrs:function getAttrs(t){return{align:$(t),indent:v(t),lineHeight:j(t)};}}],toDOM:function toDOM(t){var e=N(t.attrs);return e?["p",{style:e},0]:["p",0];}},heading:{content:"inline*",group:"block",defining:!0,attrs:{level:{"default":1},align:{"default":null},indent:{"default":0},lineHeight:{"default":null}},parseDOM:[1,2,3,4,5,6].map(function(t){return{tag:"h".concat(t),getAttrs:function getAttrs(e){return{level:t,align:$(e),indent:v(e),lineHeight:j(e)};}};}),toDOM:function toDOM(t){var e=N(t.attrs);return e?["h".concat(t.attrs.level),{style:e},0]:["h".concat(t.attrs.level),0];}},blockquote:{content:"block+",group:"block",defining:!0,parseDOM:[{tag:"blockquote"}],toDOM:function toDOM(){return["blockquote",0];}},horizontal_rule:{group:"block",parseDOM:[{tag:"hr"}],toDOM:function toDOM(){return["hr"];}},text:{group:"inline"},hard_break:{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM:function toDOM(){return["br"];}},code_block:{content:"text*",group:"block",marks:"",code:!0,defining:!0,attrs:{language:{"default":null}},parseDOM:[{tag:"pre",preserveWhitespace:"full",getAttrs:function getAttrs(t){return{language:t.getAttribute("data-language")};}}],toDOM:function toDOM(t){var e={"class":"nile-wysiwyg__code-block"};return t.attrs.language&&(e["data-language"]=t.attrs.language),["pre",e,["code",0]];}},image:{inline:!0,group:"inline",draggable:!0,attrs:{src:{},alt:{"default":null},title:{"default":null},width:{"default":null}},parseDOM:[{tag:"img[src]",getAttrs:function getAttrs(t){var _t$getAttribute;var e=parseFloat(t.style.width),l=parseFloat((_t$getAttribute=t.getAttribute("width"))!==null&&_t$getAttribute!==void 0?_t$getAttribute:""),r=Number.isFinite(e)?Math.round(e):Number.isFinite(l)?Math.round(l):null;return{src:t.getAttribute("src"),alt:t.getAttribute("alt"),title:t.getAttribute("title"),width:r&&r>0?r:null};}}],toDOM:function toDOM(t){var _t$attrs2=t.attrs,e=_t$attrs2.src,l=_t$attrs2.alt,r=_t$attrs2.title,n=_t$attrs2.width,a={src:e};return l&&(a.alt=l),r&&(a.title=r),n&&(a.style="width: ".concat(n,"px")),["img",a];}},figure:{group:"block",content:"inline*",defining:!0,isolating:!0,attrs:{src:{},alt:{"default":null},title:{"default":null},width:{"default":null},align:{"default":null}},parseDOM:[{tag:"figure",contentElement:"figcaption",getAttrs:function getAttrs(t){var e=t.querySelector("img[src]");if(!e)return!1;var l=parseFloat(e.style.width||t.style.width),r=t.getAttribute("data-align");return{src:e.getAttribute("src"),alt:e.getAttribute("alt"),title:e.getAttribute("title"),width:Number.isFinite(l)&&l>0?Math.round(l):null,align:"left"===r||"center"===r||"right"===r?r:null};}}],toDOM:function toDOM(t){var _t$attrs3=t.attrs,e=_t$attrs3.src,l=_t$attrs3.alt,r=_t$attrs3.title,n=_t$attrs3.width,a=_t$attrs3.align,i={"class":"nile-wysiwyg__figure"};a&&(i["data-align"]=a);var s=[];n&&s.push("width: ".concat(n,"px")),"center"===a?s.push("margin-left: auto; margin-right: auto"):"right"===a&&s.push("margin-left: auto; margin-right: 0"),s.length&&(i.style=s.join("; "));var o={src:e,style:"width: 100%"};return l&&(o.alt=l),r&&(o.title=r),["figure",i,["img",o],["figcaption",{"class":"nile-wysiwyg__figcaption"},0]];}},task_list:{content:"task_item+",group:"block",parseDOM:[{tag:"ul[data-task-list]",priority:51}],toDOM:function toDOM(){return["ul",{"data-task-list":"true","class":"nile-wysiwyg__task-list"},0];}},task_item:{content:"paragraph block*",defining:!0,attrs:{checked:{"default":!1}},parseDOM:[{tag:"li[data-task-item]",priority:51,getAttrs:function getAttrs(t){return{checked:"true"===t.getAttribute("data-checked")};}}],toDOM:function toDOM(t){return["li",{"data-task-item":"true","data-checked":String(t.attrs.checked),"class":"nile-wysiwyg__task-item"},0];}},embed:{group:"block",atom:!0,selectable:!0,draggable:!0,attrs:{src:{},provider:{"default":null},title:{"default":null},width:{"default":null},align:{"default":null}},parseDOM:[{tag:"div[data-embed-provider]",getAttrs:function getAttrs(t){var _t$getAttribute2,_exec;var e=t.querySelector("iframe[src]");if(!e)return!1;var l=(_t$getAttribute2=t.getAttribute("data-width"))!==null&&_t$getAttribute2!==void 0?_t$getAttribute2:(_exec=/^(\d+)px$/.exec(t.style.width))===null||_exec===void 0?void 0:_exec[1],r=l?parseInt(l,10):NaN,n=t.getAttribute("data-align");return{src:e.getAttribute("src"),provider:t.getAttribute("data-embed-provider"),title:e.getAttribute("title"),width:Number.isFinite(r)&&r>0?r:null,align:"left"===n||"center"===n||"right"===n?n:null};}},{tag:"iframe[src]",getAttrs:function getAttrs(t){var _t$getAttribute3;var e=parseInt((_t$getAttribute3=t.getAttribute("width"))!==null&&_t$getAttribute3!==void 0?_t$getAttribute3:"",10);return{src:t.getAttribute("src"),title:t.getAttribute("title"),width:Number.isFinite(e)&&e>0?e:null};}}],toDOM:function toDOM(t){var _t$attrs4=t.attrs,e=_t$attrs4.src,l=_t$attrs4.provider,r=_t$attrs4.title,n=_t$attrs4.width,a=_t$attrs4.align,i={src:e,frameborder:"0",allowfullscreen:"true",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",sandbox:d,referrerpolicy:f};r&&(i.title=r);var s={"class":"nile-wysiwyg__embed","data-embed-provider":l!==null&&l!==void 0?l:"generic"},o=[];return n&&(s["data-width"]=String(n),o.push("width: ".concat(n,"px"),"max-width: 100%")),a&&(s["data-align"]=a,"center"===a?o.push("margin-left: auto","margin-right: auto"):"right"===a&&o.push("margin-left: auto","margin-right: 0")),o.length&&(s.style=o.join("; ")),["div",s,["iframe",i]];}},styleBlock:{group:"block",atom:!0,selectable:!0,attrs:{css:{"default":""}},parseDOM:[{tag:"style",getAttrs:function getAttrs(t){var _t$textContent;return{css:(_t$textContent=t.textContent)!==null&&_t$textContent!==void 0?_t$textContent:""};}}],toDOM:function toDOM(t){return["style",t.attrs.css];}},bookmark:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{id:{}},parseDOM:[{tag:"a[data-bookmark]",priority:60,getAttrs:function getAttrs(t){var e=t.getAttribute("id")||t.getAttribute("name");return!!e&&{id:e};}},{tag:"a[id]",getAttrs:function getAttrs(t){return!t.hasAttribute("href")&&{id:t.getAttribute("id")};}},{tag:"a[name]",getAttrs:function getAttrs(t){return!t.hasAttribute("href")&&{id:t.getAttribute("name")};}}],toDOM:function toDOM(t){return["a",{id:t.attrs.id,"data-bookmark":"true"}];}},mention:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{trigger:{"default":"@"},key:{},label:{}},parseDOM:[{tag:"span[data-mention-key]",getAttrs:function getAttrs(t){var _t$textContent2;return{trigger:t.getAttribute("data-mention-trigger")||"@",key:t.getAttribute("data-mention-key"),label:t.getAttribute("data-mention-label")||((_t$textContent2=t.textContent)===null||_t$textContent2===void 0?void 0:_t$textContent2.slice(1))||""};}}],toDOM:function toDOM(t){var _t$attrs5=t.attrs,e=_t$attrs5.trigger,l=_t$attrs5.key,r=_t$attrs5.label;return["span",{"class":"nile-wysiwyg__mention","data-mention-trigger":e,"data-mention-key":l,"data-mention-label":r},"".concat(e).concat(r)];}},merge_field:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{id:{},label:{"default":null}},parseDOM:[{tag:"span[data-merge-field]",getAttrs:function getAttrs(t){var e=t.getAttribute("data-merge-field");return!!e&&{id:e,label:t.getAttribute("data-merge-label")||t.textContent||null};}}],toDOM:function toDOM(t){var _t$attrs6=t.attrs,e=_t$attrs6.id,l=_t$attrs6.label;return["span",{"class":"nile-wysiwyg__merge-field","data-merge-field":e,"data-merge-label":l!==null&&l!==void 0?l:""},l||"{{".concat(e,"}}")];}},math:{inline:!0,group:"inline",atom:!0,selectable:!0,attrs:{latex:{},display:{"default":"inline"}},parseDOM:[{tag:"span[data-math]",getAttrs:function getAttrs(t){return{latex:t.getAttribute("data-math")||t.textContent||"",display:"block"===t.getAttribute("data-math-display")?"block":"inline"};}}],toDOM:function toDOM(t){var _t$attrs7=t.attrs,e=_t$attrs7.latex,l=_t$attrs7.display;return["span",{"class":"nile-wysiwyg__math","data-math":e,"data-math-display":l},e];}}},P=g({tableGroup:"block",cellContent:"block+",cellAttributes:{background:{"default":null,getFromDOM:function getFromDOM(t){return t.style.backgroundColor||null;},setDOMAttr:function setDOMAttr(t,e){t&&(e.style="".concat(e.style||"","background-color: ").concat(t,";"));}}}}),R=P.table,W=_objectSpread(_objectSpread({},R),{},{attrs:_objectSpread(_objectSpread({},(_R$attrs=R.attrs)!==null&&_R$attrs!==void 0?_R$attrs:{}),{},{layout:{"default":!1}}),parseDOM:[{tag:"table",getAttrs:function getAttrs(t){return{layout:"presentation"===t.getAttribute("role")||t.hasAttribute("data-layout")};}}],toDOM:function toDOM(t){return t.attrs.layout?["table",{role:"presentation","data-layout":"true"},["tbody",0]]:["table",["tbody",0]];}}),J={link:{attrs:{href:{},title:{"default":null},target:{"default":null}},inclusive:!1,parseDOM:[{tag:"a[href]",getAttrs:function getAttrs(t){return{href:t.getAttribute("href"),title:t.getAttribute("title"),target:t.getAttribute("target")};}}],toDOM:function toDOM(t){var _t$attrs8=t.attrs,e=_t$attrs8.href,l=_t$attrs8.title,r=_t$attrs8.target,n={href:e};return l&&(n.title=l),r&&(n.target=r,"_blank"===r&&(n.rel="noopener noreferrer")),["a",n,0];}},bold:{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:function getAttrs(t){return"normal"!==t.style.fontWeight&&null;}},{style:"font-weight",getAttrs:function getAttrs(t){return /^(bold(er)?|[5-9]\d{2,})$/.test(t)&&null;}}],toDOM:function toDOM(){return["strong",0];}},italic:{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style=italic"}],toDOM:function toDOM(){return["em",0];}},underline:{parseDOM:[{tag:"u"},{style:"text-decoration",getAttrs:function getAttrs(t){return t.includes("underline")&&null;}},{style:"text-decoration-line",getAttrs:function getAttrs(t){return t.includes("underline")&&null;}}],toDOM:function toDOM(){return["u",0];}},strike:{parseDOM:[{tag:"s"},{tag:"strike"},{tag:"del"},{style:"text-decoration",getAttrs:function getAttrs(t){return t.includes("line-through")&&null;}},{style:"text-decoration-line",getAttrs:function getAttrs(t){return t.includes("line-through")&&null;}}],toDOM:function toDOM(){return["s",0];}},subscript:{excludes:"subscript superscript",parseDOM:[{tag:"sub"},{style:"vertical-align=sub"}],toDOM:function toDOM(){return["sub",0];}},superscript:{excludes:"subscript superscript",parseDOM:[{tag:"sup"},{style:"vertical-align=super"}],toDOM:function toDOM(){return["sup",0];}},code:{parseDOM:[{tag:"code"}],toDOM:function toDOM(){return["code",{"class":"nile-wysiwyg__inline-code"},0];}},html_span:{attrs:{htmlClass:{"default":null},htmlId:{"default":null}},parseDOM:[{tag:"span",priority:5,getAttrs:function getAttrs(t){var e=I(t.getAttribute("class")),l=z(t.getAttribute("id"));return!(!e&&!l)&&{htmlClass:e,htmlId:l};}}],toDOM:function toDOM(t){var e={};return t.attrs.htmlClass&&(e["class"]=t.attrs.htmlClass),t.attrs.htmlId&&(e.id=t.attrs.htmlId),["span",e,0];}},text_color:{attrs:{color:{}},parseDOM:[{style:"color",getAttrs:function getAttrs(t){return!!t&&{color:t};}}],toDOM:function toDOM(t){return["span",{style:"color: ".concat(t.attrs.color)},0];}},bg_color:{attrs:{color:{}},parseDOM:[{style:"background-color",getAttrs:function getAttrs(t){return!(!t||"transparent"===t)&&{color:t};}}],toDOM:function toDOM(t){return["span",{style:"background-color: ".concat(t.attrs.color)},0];}},font_family:{attrs:{family:{}},parseDOM:[{style:"font-family",getAttrs:function getAttrs(t){return!!t&&{family:t};}}],toDOM:function toDOM(t){return["span",{style:"font-family: ".concat(t.attrs.family)},0];}},font_size:{attrs:{size:{}},parseDOM:[{style:"font-size",getAttrs:function getAttrs(t){return!!t&&{size:t};}}],toDOM:function toDOM(t){return["span",{style:"font-size: ".concat(t.attrs.size)},0];}}},K=["disc","circle","square"],L={1:"decimal",a:"lower-alpha",A:"upper-alpha",i:"lower-roman",I:"upper-roman"},Q=Object.fromEntries(Object.entries(L).map(function(_ref){var _ref2=_slicedToArray(_ref,2),t=_ref2[0],e=_ref2[1];return[e,t];})),_export("M",T="multilevel"),U={content:"list_item+",group:"block",attrs:{style:{"default":null}},parseDOM:[{tag:"ul",getAttrs:function getAttrs(t){var e=t.style.listStyleType;return{style:K.includes(e)?e:null};}}],toDOM:function toDOM(t){return t.attrs.style?["ul",{style:"list-style-type: ".concat(t.attrs.style)},0]:["ul",0];}},V={content:"list_item+",group:"block",attrs:{order:{"default":1},style:{"default":null}},parseDOM:[{tag:"ol",getAttrs:function getAttrs(t){var _t$getAttribute4,_L$e;var e=(_t$getAttribute4=t.getAttribute("type"))!==null&&_t$getAttribute4!==void 0?_t$getAttribute4:"",l=t.style.listStyleType,r=t.getAttribute("data-list-style")===T?T:(_L$e=L[e])!==null&&_L$e!==void 0?_L$e:Object.values(L).includes(l)?l:null,n=Number(t.getAttribute("start"));return{order:Number.isFinite(n)&&n>0?n:1,style:r};}}],toDOM:function toDOM(t){var e={};return 1!==t.attrs.order&&(e.start=String(t.attrs.order)),t.attrs.style===T?e["data-list-style"]=T:t.attrs.style&&Q[t.attrs.style]&&(e.type=Q[t.attrs.style]),["ol",e,0];}};_export("d",X=function(){var t=function(t,e,l){return t.append({ordered_list:O(y,{content:"list_item+",group:l}),bullet_list:O(h,{content:"list_item+",group:l}),list_item:O(M,{content:e})});}(u.from(G),"paragraph block*","block").update("bullet_list",U).update("ordered_list",V).append(P).update("table",W);for(var _i2=0,_E=E;_i2<_E.length;_i2++){var _e4=_E[_i2];var _l3=t.get(_e4);_l3&&(t=t.update(_e4,H(_l3)));}var e=u.from(J);for(var _i3=0,_B=B;_i3<_B.length;_i3++){var _t8=_B[_i3];var _l4=e.get(_t8);_l4&&(e=e.update(_t8,H(_l4)));}return new c({nodes:t,marks:e});}());}};});
2
2
  //# sourceMappingURL=schema.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.cjs.js","sources":["../../../../../node_modules/prosemirror-schema-list/dist/index.js","../../../../src/nile-wysiwyg-editor/engine/schema.ts"],"sourcesContent":["import { findWrapping, ReplaceAroundStep, canSplit, liftTarget, canJoin } from 'prosemirror-transform';\nimport { NodeRange, Fragment, Slice } from 'prosemirror-model';\nimport { Selection } from 'prosemirror-state';\n\nconst olDOM = [\"ol\", 0], ulDOM = [\"ul\", 0], liDOM = [\"li\", 0];\n/**\nAn ordered list [node spec](https://prosemirror.net/docs/ref/#model.NodeSpec). Has a single\nattribute, `order`, which determines the number at which the list\nstarts counting, and defaults to 1. Represented as an `<ol>`\nelement.\n*/\nconst orderedList = {\n attrs: { order: { default: 1, validate: \"number\" } },\n parseDOM: [{ tag: \"ol\", getAttrs(dom) {\n return { order: dom.hasAttribute(\"start\") ? +dom.getAttribute(\"start\") : 1 };\n } }],\n toDOM(node) {\n return node.attrs.order == 1 ? olDOM : [\"ol\", { start: node.attrs.order }, 0];\n }\n};\n/**\nA bullet list node spec, represented in the DOM as `<ul>`.\n*/\nconst bulletList = {\n parseDOM: [{ tag: \"ul\" }],\n toDOM() { return ulDOM; }\n};\n/**\nA list item (`<li>`) spec.\n*/\nconst listItem = {\n parseDOM: [{ tag: \"li\" }],\n toDOM() { return liDOM; },\n defining: true\n};\nfunction add(obj, props) {\n let copy = {};\n for (let prop in obj)\n copy[prop] = obj[prop];\n for (let prop in props)\n copy[prop] = props[prop];\n return copy;\n}\n/**\nConvenience function for adding list-related node types to a map\nspecifying the nodes for a schema. Adds\n[`orderedList`](https://prosemirror.net/docs/ref/#schema-list.orderedList) as `\"ordered_list\"`,\n[`bulletList`](https://prosemirror.net/docs/ref/#schema-list.bulletList) as `\"bullet_list\"`, and\n[`listItem`](https://prosemirror.net/docs/ref/#schema-list.listItem) as `\"list_item\"`.\n\n`itemContent` determines the content expression for the list items.\nIf you want the commands defined in this module to apply to your\nlist structure, it should have a shape like `\"paragraph block*\"` or\n`\"paragraph (ordered_list | bullet_list)*\"`. `listGroup` can be\ngiven to assign a group name to the list node types, for example\n`\"block\"`.\n*/\nfunction addListNodes(nodes, itemContent, listGroup) {\n return nodes.append({\n ordered_list: add(orderedList, { content: \"list_item+\", group: listGroup }),\n bullet_list: add(bulletList, { content: \"list_item+\", group: listGroup }),\n list_item: add(listItem, { content: itemContent })\n });\n}\n/**\nReturns a command function that wraps the selection in a list with\nthe given type an attributes. If `dispatch` is null, only return a\nvalue to indicate whether this is possible, but don't actually\nperform the change.\n*/\nfunction wrapInList(listType, attrs = null) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to);\n if (!range)\n return false;\n let tr = dispatch ? state.tr : null;\n if (!wrapRangeInList(tr, range, listType, attrs))\n return false;\n if (dispatch)\n dispatch(tr.scrollIntoView());\n return true;\n };\n}\n/**\nTry to wrap the given node range in a list of the given type.\nReturn `true` when this is possible, `false` otherwise. When `tr`\nis non-null, the wrapping is added to that transaction. When it is\n`null`, the function only queries whether the wrapping is\npossible.\n*/\nfunction wrapRangeInList(tr, range, listType, attrs = null) {\n let doJoin = false, outerRange = range, doc = range.$from.doc;\n // This is at the top of an existing list item\n if (range.depth >= 2 && range.$from.node(range.depth - 1).type.compatibleContent(listType) && range.startIndex == 0) {\n // Don't do anything if this is the top of the list\n if (range.$from.index(range.depth - 1) == 0)\n return false;\n let $insert = doc.resolve(range.start - 2);\n outerRange = new NodeRange($insert, $insert, range.depth);\n if (range.endIndex < range.parent.childCount)\n range = new NodeRange(range.$from, doc.resolve(range.$to.end(range.depth)), range.depth);\n doJoin = true;\n }\n let wrap = findWrapping(outerRange, listType, attrs, range);\n if (!wrap)\n return false;\n if (tr)\n doWrapInList(tr, range, wrap, doJoin, listType);\n return true;\n}\nfunction doWrapInList(tr, range, wrappers, joinBefore, listType) {\n let content = Fragment.empty;\n for (let i = wrappers.length - 1; i >= 0; i--)\n content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));\n tr.step(new ReplaceAroundStep(range.start - (joinBefore ? 2 : 0), range.end, range.start, range.end, new Slice(content, 0, 0), wrappers.length, true));\n let found = 0;\n for (let i = 0; i < wrappers.length; i++)\n if (wrappers[i].type == listType)\n found = i + 1;\n let splitDepth = wrappers.length - found;\n let splitPos = range.start + wrappers.length - (joinBefore ? 2 : 0), parent = range.parent;\n for (let i = range.startIndex, e = range.endIndex, first = true; i < e; i++, first = false) {\n if (!first && canSplit(tr.doc, splitPos, splitDepth)) {\n tr.split(splitPos, splitDepth);\n splitPos += 2 * splitDepth;\n }\n splitPos += parent.child(i).nodeSize;\n }\n return tr;\n}\n/**\nBuild a command that splits a non-empty textblock at the top level\nof a list item by also splitting that list item.\n*/\nfunction splitListItem(itemType, itemAttrs) {\n return function (state, dispatch) {\n let { $from, $to, node } = state.selection;\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to))\n return false;\n let grandParent = $from.node(-1);\n if (grandParent.type != itemType)\n return false;\n if ($from.parent.content.size == 0 && $from.node(-1).childCount == $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if ($from.depth == 3 || $from.node(-3).type != itemType ||\n $from.index(-2) != $from.node(-2).childCount - 1)\n return false;\n if (dispatch) {\n let wrap = Fragment.empty;\n let depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3;\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d--)\n wrap = Fragment.from($from.node(d).copy(wrap));\n let depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1\n : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3;\n // Add a second list item with an empty default start node\n wrap = wrap.append(Fragment.from(itemType.createAndFill()));\n let start = $from.before($from.depth - (depthBefore - 1));\n let tr = state.tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0));\n let sel = -1;\n tr.doc.nodesBetween(start, tr.doc.content.size, (node, pos) => {\n if (sel > -1)\n return false;\n if (node.isTextblock && node.content.size == 0)\n sel = pos + 1;\n });\n if (sel > -1)\n tr.setSelection(Selection.near(tr.doc.resolve(sel)));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n let nextType = $to.pos == $from.end() ? grandParent.contentMatchAt(0).defaultType : null;\n let tr = state.tr.delete($from.pos, $to.pos);\n let types = nextType ? [itemAttrs ? { type: itemType, attrs: itemAttrs } : null, { type: nextType }] : undefined;\n if (!canSplit(tr.doc, $from.pos, 2, types))\n return false;\n if (dispatch)\n dispatch(tr.split($from.pos, 2, types).scrollIntoView());\n return true;\n };\n}\n/**\nActs like [`splitListItem`](https://prosemirror.net/docs/ref/#schema-list.splitListItem), but\nwithout resetting the set of active marks at the cursor.\n*/\nfunction splitListItemKeepMarks(itemType, itemAttrs) {\n let split = splitListItem(itemType, itemAttrs);\n return (state, dispatch) => {\n return split(state, dispatch && (tr => {\n let marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\n if (marks)\n tr.ensureMarks(marks);\n dispatch(tr);\n }));\n };\n}\n/**\nCreate a command to lift the list item around the selection up into\na wrapping list.\n*/\nfunction liftListItem(itemType) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to, node => node.childCount > 0 && node.firstChild.type == itemType);\n if (!range)\n return false;\n if (!dispatch)\n return true;\n if ($from.node(range.depth - 1).type == itemType) // Inside a parent list\n return liftToOuterList(state, dispatch, itemType, range);\n else // Outer list node\n return liftOutOfList(state, dispatch, range);\n };\n}\nfunction liftToOuterList(state, dispatch, itemType, range) {\n let tr = state.tr, end = range.end, endOfList = range.$to.end(range.depth);\n if (end < endOfList) {\n // There are siblings after the lifted items, which must become\n // children of the last item\n tr.step(new ReplaceAroundStep(end - 1, endOfList, end, endOfList, new Slice(Fragment.from(itemType.create(null, range.parent.copy())), 1, 0), 1, true));\n range = new NodeRange(tr.doc.resolve(range.$from.pos), tr.doc.resolve(endOfList), range.depth);\n }\n const target = liftTarget(range);\n if (target == null)\n return false;\n tr.lift(range, target);\n let $after = tr.doc.resolve(tr.mapping.map(end, -1) - 1);\n if (canJoin(tr.doc, $after.pos) && $after.nodeBefore.type == $after.nodeAfter.type)\n tr.join($after.pos);\n dispatch(tr.scrollIntoView());\n return true;\n}\nfunction liftOutOfList(state, dispatch, range) {\n let tr = state.tr, list = range.parent;\n // Merge the list items into a single big item\n for (let pos = range.end, i = range.endIndex - 1, e = range.startIndex; i > e; i--) {\n pos -= list.child(i).nodeSize;\n tr.delete(pos - 1, pos + 1);\n }\n let $start = tr.doc.resolve(range.start), item = $start.nodeAfter;\n if (tr.mapping.map(range.end) != range.start + $start.nodeAfter.nodeSize)\n return false;\n let atStart = range.startIndex == 0, atEnd = range.endIndex == list.childCount;\n let parent = $start.node(-1), indexBefore = $start.index(-1);\n if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, item.content.append(atEnd ? Fragment.empty : Fragment.from(list))))\n return false;\n let start = $start.pos, end = start + item.nodeSize;\n // Strip off the surrounding list. At the sides where we're not at\n // the end of the list, the existing list is closed. At sides where\n // this is the end, it is overwritten to its end.\n tr.step(new ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, new Slice((atStart ? Fragment.empty : Fragment.from(list.copy(Fragment.empty)))\n .append(atEnd ? Fragment.empty : Fragment.from(list.copy(Fragment.empty))), atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1));\n dispatch(tr.scrollIntoView());\n return true;\n}\n/**\nCreate a command to sink the list item around the selection down\ninto an inner list.\n*/\nfunction sinkListItem(itemType) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to, node => node.childCount > 0 && node.firstChild.type == itemType);\n if (!range)\n return false;\n let startIndex = range.startIndex;\n if (startIndex == 0)\n return false;\n let parent = range.parent, nodeBefore = parent.child(startIndex - 1);\n if (nodeBefore.type != itemType)\n return false;\n if (dispatch) {\n let nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type == parent.type;\n let inner = Fragment.from(nestedBefore ? itemType.create() : null);\n let slice = new Slice(Fragment.from(itemType.create(null, Fragment.from(parent.type.create(null, inner)))), nestedBefore ? 3 : 1, 0);\n let before = range.start, after = range.end;\n dispatch(state.tr.step(new ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after, before, after, slice, 1, true))\n .scrollIntoView());\n }\n return true;\n };\n}\n\nexport { addListNodes, bulletList, liftListItem, listItem, orderedList, sinkListItem, splitListItem, splitListItemKeepMarks, wrapInList, wrapRangeInList };\n","import { Schema, NodeSpec, MarkSpec } from 'prosemirror-model';\nimport { addListNodes } from 'prosemirror-schema-list';\nimport { tableNodes } from 'prosemirror-tables';\nimport OrderedMap from 'orderedmap';\n\nexport type Alignment = 'left' | 'center' | 'right' | 'justify';\n\nconst ALIGN_VALUES: Alignment[] = ['left', 'center', 'right', 'justify'];\n\nfunction getAlignFromDom(dom: HTMLElement): Alignment | null {\n const value = dom.style.textAlign || dom.getAttribute('align') || '';\n return (ALIGN_VALUES as string[]).includes(value) ? (value as Alignment) : null;\n}\n\nfunction alignStyle(align: Alignment | null): string | null {\n return align ? `text-align: ${align}` : null;\n}\n\n/** Indent depth in 40px steps, like CKEditor/Google Docs. */\nexport const INDENT_STEP_PX = 40;\nexport const MAX_INDENT = 8;\n\nfunction getIndentFromDom(dom: HTMLElement): number {\n const raw = dom.style.marginInlineStart || dom.style.marginLeft || '';\n const px = parseFloat(raw);\n if (!Number.isFinite(px) || px <= 0) return 0;\n return Math.min(MAX_INDENT, Math.round(px / INDENT_STEP_PX));\n}\n\n/**\n * Line height as a unitless multiplier string ('1.5'). Percentages are\n * converted; px values pass through as-is so pasted content keeps its look.\n */\nfunction getLineHeightFromDom(dom: HTMLElement): string | null {\n const raw = dom.style.lineHeight.trim();\n if (!raw || raw === 'normal') return null;\n const num = parseFloat(raw);\n if (!Number.isFinite(num) || num <= 0) return null;\n if (raw.endsWith('%')) return String(num / 100);\n return raw;\n}\n\n/** Combined style string for align + indent + line-height textblock attrs. */\nfunction blockStyle(attrs: {\n align?: Alignment | null;\n indent?: number;\n lineHeight?: string | null;\n}): string | null {\n const parts: string[] = [];\n const align = alignStyle(attrs.align ?? null);\n if (align) parts.push(align);\n if (attrs.indent) parts.push(`margin-inline-start: ${attrs.indent * INDENT_STEP_PX}px`);\n if (attrs.lineHeight) parts.push(`line-height: ${attrs.lineHeight}`);\n return parts.length ? parts.join('; ') : null;\n}\n\n/**\n * Block nodes. `align` is modeled as an attribute on textblocks rather than a\n * wrapper node so alignment survives block-type changes (heading <-> paragraph).\n */\nconst nodes: Record<string, NodeSpec> = {\n doc: {\n content: 'block+',\n },\n\n paragraph: {\n content: 'inline*',\n group: 'block',\n attrs: {\n align: { default: null },\n indent: { default: 0 },\n lineHeight: { default: null },\n },\n parseDOM: [\n {\n tag: 'p',\n getAttrs: (dom: HTMLElement) => ({\n align: getAlignFromDom(dom),\n indent: getIndentFromDom(dom),\n lineHeight: getLineHeightFromDom(dom),\n }),\n },\n ],\n toDOM(node) {\n const style = blockStyle(node.attrs);\n return style ? ['p', { style }, 0] : ['p', 0];\n },\n },\n\n heading: {\n content: 'inline*',\n group: 'block',\n defining: true,\n attrs: {\n level: { default: 1 },\n align: { default: null },\n indent: { default: 0 },\n lineHeight: { default: null },\n },\n parseDOM: [1, 2, 3, 4, 5, 6].map(level => ({\n tag: `h${level}`,\n getAttrs: (dom: HTMLElement) => ({\n level,\n align: getAlignFromDom(dom),\n indent: getIndentFromDom(dom),\n lineHeight: getLineHeightFromDom(dom),\n }),\n })),\n toDOM(node) {\n const style = blockStyle(node.attrs);\n return style ? [`h${node.attrs.level}`, { style }, 0] : [`h${node.attrs.level}`, 0];\n },\n },\n\n blockquote: {\n content: 'block+',\n group: 'block',\n defining: true,\n parseDOM: [{ tag: 'blockquote' }],\n toDOM() {\n return ['blockquote', 0];\n },\n },\n\n horizontal_rule: {\n group: 'block',\n parseDOM: [{ tag: 'hr' }],\n toDOM() {\n return ['hr'];\n },\n },\n\n text: {\n group: 'inline',\n },\n\n hard_break: {\n inline: true,\n group: 'inline',\n selectable: false,\n parseDOM: [{ tag: 'br' }],\n toDOM() {\n return ['br'];\n },\n },\n\n code_block: {\n content: 'text*',\n group: 'block',\n marks: '',\n code: true,\n defining: true,\n attrs: { language: { default: null } },\n parseDOM: [\n {\n tag: 'pre',\n preserveWhitespace: 'full',\n getAttrs: (dom: HTMLElement) => ({\n language: dom.getAttribute('data-language'),\n }),\n },\n ],\n toDOM(node) {\n const attrs: Record<string, string> = { class: 'nile-wysiwyg__code-block' };\n if (node.attrs.language) attrs['data-language'] = node.attrs.language;\n return ['pre', attrs, ['code', 0]];\n },\n },\n\n /**\n * ProseMirror's canonical inline image, extended with a `width` attr (px)\n * written by the drag-resize handles.\n */\n image: {\n inline: true,\n group: 'inline',\n draggable: true,\n attrs: {\n src: {},\n alt: { default: null },\n title: { default: null },\n width: { default: null },\n },\n parseDOM: [\n {\n tag: 'img[src]',\n getAttrs: (dom: HTMLElement) => {\n const styleWidth = parseFloat(dom.style.width);\n const attrWidth = parseFloat(dom.getAttribute('width') ?? '');\n const width = Number.isFinite(styleWidth)\n ? Math.round(styleWidth)\n : Number.isFinite(attrWidth)\n ? Math.round(attrWidth)\n : null;\n return {\n src: dom.getAttribute('src'),\n alt: dom.getAttribute('alt'),\n title: dom.getAttribute('title'),\n width: width && width > 0 ? width : null,\n };\n },\n },\n ],\n toDOM(node) {\n const { src, alt, title, width } = node.attrs;\n const attrs: Record<string, string> = { src };\n if (alt) attrs.alt = alt;\n if (title) attrs.title = title;\n if (width) attrs.style = `width: ${width}px`;\n return ['img', attrs];\n },\n },\n\n /**\n * Captioned image: a block figure whose inline content is the caption. The\n * image itself lives in the attrs (TipTap-style), so the node stays valid\n * ProseMirror content — a node can't mix an inline img child with a block\n * figcaption child.\n */\n figure: {\n group: 'block',\n content: 'inline*',\n defining: true,\n isolating: true,\n attrs: {\n src: {},\n alt: { default: null },\n title: { default: null },\n width: { default: null },\n align: { default: null },\n },\n parseDOM: [\n {\n tag: 'figure',\n contentElement: 'figcaption',\n getAttrs: (dom: HTMLElement) => {\n const img = dom.querySelector('img[src]') as HTMLElement | null;\n if (!img) return false;\n const styleWidth = parseFloat(img.style.width || dom.style.width);\n const align = dom.getAttribute('data-align');\n return {\n src: img.getAttribute('src'),\n alt: img.getAttribute('alt'),\n title: img.getAttribute('title'),\n width:\n Number.isFinite(styleWidth) && styleWidth > 0\n ? Math.round(styleWidth)\n : null,\n align: align === 'left' || align === 'center' || align === 'right' ? align : null,\n };\n },\n },\n ],\n toDOM(node) {\n const { src, alt, title, width, align } = node.attrs;\n const figureAttrs: Record<string, string> = { class: 'nile-wysiwyg__figure' };\n if (align) figureAttrs['data-align'] = align;\n const styles: string[] = [];\n if (width) styles.push(`width: ${width}px`);\n if (align === 'center') styles.push('margin-left: auto; margin-right: auto');\n else if (align === 'right') styles.push('margin-left: auto; margin-right: 0');\n if (styles.length) figureAttrs.style = styles.join('; ');\n const imgAttrs: Record<string, string> = { src, style: 'width: 100%' };\n if (alt) imgAttrs.alt = alt;\n if (title) imgAttrs.title = title;\n return [\n 'figure',\n figureAttrs,\n ['img', imgAttrs],\n ['figcaption', { class: 'nile-wysiwyg__figcaption' }, 0],\n ];\n },\n },\n\n /**\n * Checklists. Serialized as <ul data-task-list><li data-task-item\n * data-checked> so they survive HTML round-trips; the live checkbox is an\n * editor-only NodeView. parseDOM priority 51 beats the generic li rule.\n */\n task_list: {\n content: 'task_item+',\n group: 'block',\n parseDOM: [{ tag: 'ul[data-task-list]', priority: 51 }],\n toDOM() {\n return ['ul', { 'data-task-list': 'true', class: 'nile-wysiwyg__task-list' }, 0];\n },\n },\n\n task_item: {\n content: 'paragraph block*',\n defining: true,\n attrs: { checked: { default: false } },\n parseDOM: [\n {\n tag: 'li[data-task-item]',\n priority: 51,\n getAttrs: (dom: HTMLElement) => ({\n checked: dom.getAttribute('data-checked') === 'true',\n }),\n },\n ],\n toDOM(node) {\n return [\n 'li',\n {\n 'data-task-item': 'true',\n 'data-checked': String(node.attrs.checked),\n class: 'nile-wysiwyg__task-item',\n },\n 0,\n ];\n },\n },\n\n /**\n * Provider embeds (YouTube/Vimeo/Loom) as block atoms. The iframe sits in\n * a wrapper div for aspect-ratio styling and a click-to-select overlay.\n */\n embed: {\n group: 'block',\n atom: true,\n selectable: true,\n draggable: true,\n attrs: {\n src: {},\n provider: { default: null },\n title: { default: null },\n /** Rendered width in px (drag-resize); null = default size. */\n width: { default: null },\n /** Block alignment: 'left' | 'center' | 'right' | null. */\n align: { default: null },\n },\n parseDOM: [\n {\n tag: 'div[data-embed-provider]',\n getAttrs: (dom: HTMLElement) => {\n const iframe = dom.querySelector('iframe[src]');\n if (!iframe) return false;\n const widthAttr =\n dom.getAttribute('data-width') ?? /^(\\d+)px$/.exec(dom.style.width)?.[1];\n const width = widthAttr ? parseInt(widthAttr, 10) : NaN;\n const align = dom.getAttribute('data-align');\n return {\n src: iframe.getAttribute('src'),\n provider: dom.getAttribute('data-embed-provider'),\n title: iframe.getAttribute('title'),\n width: Number.isFinite(width) && width > 0 ? width : null,\n align: align === 'left' || align === 'center' || align === 'right' ? align : null,\n };\n },\n },\n {\n tag: 'iframe[src]',\n getAttrs: (dom: HTMLElement) => {\n const width = parseInt(dom.getAttribute('width') ?? '', 10);\n return {\n src: dom.getAttribute('src'),\n title: dom.getAttribute('title'),\n width: Number.isFinite(width) && width > 0 ? width : null,\n };\n },\n },\n ],\n toDOM(node) {\n const { src, provider, title, width, align } = node.attrs;\n const iframeAttrs: Record<string, string> = {\n src,\n frameborder: '0',\n allowfullscreen: 'true',\n allow: 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture',\n };\n if (title) iframeAttrs.title = title;\n const wrapperAttrs: Record<string, string> = {\n class: 'nile-wysiwyg__embed',\n 'data-embed-provider': provider ?? 'generic',\n };\n const styles: string[] = [];\n if (width) {\n wrapperAttrs['data-width'] = String(width);\n styles.push(`width: ${width}px`, 'max-width: 100%');\n }\n if (align) {\n wrapperAttrs['data-align'] = align;\n if (align === 'center') styles.push('margin-left: auto', 'margin-right: auto');\n else if (align === 'right') styles.push('margin-left: auto', 'margin-right: 0');\n }\n if (styles.length) wrapperAttrs.style = styles.join('; ');\n return ['div', wrapperAttrs, ['iframe', iframeAttrs]];\n },\n },\n\n /**\n * Bookmark: a named in-text anchor (`<a id=\"…\">`) for intra-document\n * navigation. Invisible in serialized output; the editor draws a flag\n * marker via CSS so it can be selected and deleted.\n */\n bookmark: {\n inline: true,\n group: 'inline',\n atom: true,\n selectable: true,\n attrs: { id: {} },\n parseDOM: [\n {\n tag: 'a[data-bookmark]',\n priority: 60,\n getAttrs: (dom: HTMLElement) => {\n const id = dom.getAttribute('id') || dom.getAttribute('name');\n return id ? { id } : false;\n },\n },\n // Anchors without an href are bookmarks (`<a id>` / legacy `<a name>`).\n {\n tag: 'a[id]',\n getAttrs: (dom: HTMLElement) =>\n dom.hasAttribute('href') ? false : { id: dom.getAttribute('id') },\n },\n {\n tag: 'a[name]',\n getAttrs: (dom: HTMLElement) =>\n dom.hasAttribute('href') ? false : { id: dom.getAttribute('name') },\n },\n ],\n toDOM(node) {\n return ['a', { id: node.attrs.id, 'data-bookmark': 'true' }];\n },\n },\n\n /** Inline atom for @-style mentions. The label renders as `${trigger}${label}`. */\n mention: {\n inline: true,\n group: 'inline',\n atom: true,\n selectable: true,\n attrs: {\n trigger: { default: '@' },\n key: {},\n label: {},\n },\n parseDOM: [\n {\n tag: 'span[data-mention-key]',\n getAttrs: (dom: HTMLElement) => ({\n trigger: dom.getAttribute('data-mention-trigger') || '@',\n key: dom.getAttribute('data-mention-key'),\n label:\n dom.getAttribute('data-mention-label') || dom.textContent?.slice(1) || '',\n }),\n },\n ],\n toDOM(node) {\n const { trigger, key, label } = node.attrs;\n return [\n 'span',\n {\n class: 'nile-wysiwyg__mention',\n 'data-mention-trigger': trigger,\n 'data-mention-key': key,\n 'data-mention-label': label,\n },\n `${trigger}${label}`,\n ];\n },\n },\n\n /**\n * Merge field: an inline atom placeholder for mail-merge / personalization\n * (e.g. `{{first_name}}`). Stores a stable `id` and a human `label`; renders\n * the label (falling back to `{{id}}`) as a non-editable chip.\n */\n merge_field: {\n inline: true,\n group: 'inline',\n atom: true,\n selectable: true,\n attrs: { id: {}, label: { default: null } },\n parseDOM: [\n {\n tag: 'span[data-merge-field]',\n getAttrs: (dom: HTMLElement) => {\n const id = dom.getAttribute('data-merge-field');\n if (!id) return false;\n return {\n id,\n label: dom.getAttribute('data-merge-label') || dom.textContent || null,\n };\n },\n },\n ],\n toDOM(node) {\n const { id, label } = node.attrs;\n return [\n 'span',\n {\n class: 'nile-wysiwyg__merge-field',\n 'data-merge-field': id,\n 'data-merge-label': label ?? '',\n },\n label || `{{${id}}}`,\n ];\n },\n },\n\n /**\n * Math: an inline atom holding a LaTeX source string. Rendering is pluggable\n * via the editor's `mathRenderer` (KaTeX/MathJax, or MathML). Without a\n * renderer the raw LaTeX is shown in a math-styled chip. `display` chooses\n * inline vs. block presentation.\n */\n math: {\n inline: true,\n group: 'inline',\n atom: true,\n selectable: true,\n attrs: { latex: {}, display: { default: 'inline' } },\n parseDOM: [\n {\n tag: 'span[data-math]',\n getAttrs: (dom: HTMLElement) => ({\n latex: dom.getAttribute('data-math') || dom.textContent || '',\n display: dom.getAttribute('data-math-display') === 'block' ? 'block' : 'inline',\n }),\n },\n ],\n toDOM(node) {\n const { latex, display } = node.attrs;\n return [\n 'span',\n {\n class: 'nile-wysiwyg__math',\n 'data-math': latex,\n 'data-math-display': display,\n },\n latex,\n ];\n },\n },\n};\n\n/** Table nodes from prosemirror-tables, with cell background support. */\nconst tableNodeSpecs = tableNodes({\n tableGroup: 'block',\n cellContent: 'block+',\n cellAttributes: {\n background: {\n default: null,\n getFromDOM(dom) {\n return (dom as HTMLElement).style.backgroundColor || null;\n },\n setDOMAttr(value, attrs) {\n if (value) {\n attrs.style = `${(attrs.style as string) || ''}background-color: ${value};`;\n }\n },\n },\n },\n});\n\n/**\n * The table spec extended with a `layout` attr: layout tables (structured\n * layouts, e.g. for email HTML) serialize as `role=\"presentation\"` and render\n * borderless, with dashed guides visible only while editing.\n */\nconst baseTableSpec = tableNodeSpecs.table;\nconst tableSpec: NodeSpec = {\n ...baseTableSpec,\n attrs: { ...(baseTableSpec.attrs ?? {}), layout: { default: false } },\n parseDOM: [\n {\n tag: 'table',\n getAttrs: (dom: HTMLElement) => ({\n layout:\n dom.getAttribute('role') === 'presentation' || dom.hasAttribute('data-layout'),\n }),\n },\n ],\n toDOM(node) {\n return node.attrs.layout\n ? ['table', { role: 'presentation', 'data-layout': 'true' }, ['tbody', 0]]\n : ['table', ['tbody', 0]];\n },\n};\n\n/**\n * Marks. Order matters: marks later in the map render closer to the text.\n * Each styling mark parses from both semantic tags AND inline `style=`\n * declarations so pasted Word/Google Docs content keeps its formatting.\n */\nconst marks: Record<string, MarkSpec> = {\n link: {\n attrs: {\n href: {},\n title: { default: null },\n target: { default: null },\n },\n inclusive: false,\n parseDOM: [\n {\n tag: 'a[href]',\n getAttrs: (dom: HTMLElement) => ({\n href: dom.getAttribute('href'),\n title: dom.getAttribute('title'),\n target: dom.getAttribute('target'),\n }),\n },\n ],\n toDOM(mark) {\n const { href, title, target } = mark.attrs;\n const attrs: Record<string, string> = { href };\n if (title) attrs.title = title;\n if (target) {\n attrs.target = target;\n if (target === '_blank') attrs.rel = 'noopener noreferrer';\n }\n return ['a', attrs, 0];\n },\n },\n\n bold: {\n parseDOM: [\n { tag: 'strong' },\n // Google Docs wraps everything in <b style=\"font-weight: normal\">\n {\n tag: 'b',\n getAttrs: (dom: HTMLElement) => dom.style.fontWeight !== 'normal' && null,\n },\n {\n style: 'font-weight',\n getAttrs: (value: string) => /^(bold(er)?|[5-9]\\d{2,})$/.test(value) && null,\n },\n ],\n toDOM() {\n return ['strong', 0];\n },\n },\n\n italic: {\n parseDOM: [\n { tag: 'i' },\n { tag: 'em' },\n { style: 'font-style=italic' },\n ],\n toDOM() {\n return ['em', 0];\n },\n },\n\n underline: {\n parseDOM: [\n { tag: 'u' },\n {\n style: 'text-decoration',\n getAttrs: (value: string) => value.includes('underline') && null,\n },\n {\n style: 'text-decoration-line',\n getAttrs: (value: string) => value.includes('underline') && null,\n },\n ],\n toDOM() {\n return ['u', 0];\n },\n },\n\n strike: {\n parseDOM: [\n { tag: 's' },\n { tag: 'strike' },\n { tag: 'del' },\n {\n style: 'text-decoration',\n getAttrs: (value: string) => value.includes('line-through') && null,\n },\n {\n style: 'text-decoration-line',\n getAttrs: (value: string) => value.includes('line-through') && null,\n },\n ],\n toDOM() {\n return ['s', 0];\n },\n },\n\n /** Mutually exclusive vertical-shift marks (formulas, footnote refs). */\n subscript: {\n excludes: 'subscript superscript',\n parseDOM: [{ tag: 'sub' }, { style: 'vertical-align=sub' }],\n toDOM() {\n return ['sub', 0];\n },\n },\n\n superscript: {\n excludes: 'subscript superscript',\n parseDOM: [{ tag: 'sup' }, { style: 'vertical-align=super' }],\n toDOM() {\n return ['sup', 0];\n },\n },\n\n code: {\n parseDOM: [{ tag: 'code' }],\n toDOM() {\n return ['code', { class: 'nile-wysiwyg__inline-code' }, 0];\n },\n },\n\n text_color: {\n attrs: { color: {} },\n parseDOM: [\n {\n style: 'color',\n getAttrs: (value: string) => (value ? { color: value } : false),\n },\n ],\n toDOM(mark) {\n return ['span', { style: `color: ${mark.attrs.color}` }, 0];\n },\n },\n\n bg_color: {\n attrs: { color: {} },\n parseDOM: [\n {\n style: 'background-color',\n getAttrs: (value: string) =>\n value && value !== 'transparent' ? { color: value } : false,\n },\n ],\n toDOM(mark) {\n return ['span', { style: `background-color: ${mark.attrs.color}` }, 0];\n },\n },\n\n font_family: {\n attrs: { family: {} },\n parseDOM: [\n {\n style: 'font-family',\n getAttrs: (value: string) => (value ? { family: value } : false),\n },\n ],\n toDOM(mark) {\n return ['span', { style: `font-family: ${mark.attrs.family}` }, 0];\n },\n },\n\n font_size: {\n attrs: { size: {} },\n parseDOM: [\n {\n style: 'font-size',\n getAttrs: (value: string) => (value ? { size: value } : false),\n },\n ],\n toDOM(mark) {\n return ['span', { style: `font-size: ${mark.attrs.size}` }, 0];\n },\n },\n};\n\n/** Bullet markers CSS understands; anything else falls back to default. */\nexport const BULLET_STYLES = ['disc', 'circle', 'square'] as const;\n\n/** Numbering styles, keyed by the HTML `type` attribute letter. */\nexport const ORDERED_STYLES: Record<string, string> = {\n '1': 'decimal',\n a: 'lower-alpha',\n A: 'upper-alpha',\n i: 'lower-roman',\n I: 'upper-roman',\n};\n\nconst STYLE_TO_TYPE: Record<string, string> = Object.fromEntries(\n Object.entries(ORDERED_STYLES).map(([type, style]) => [style, type])\n);\n\n/**\n * Legal-style continuous numbering (1, 1.1, 1.1.1). Not a CSS\n * list-style-type: it serializes as `data-list-style=\"multilevel\"` and is\n * rendered with CSS counters (see the editor stylesheet). Consumers rendering\n * the output need the same counter rules.\n */\nexport const MULTILEVEL_STYLE = 'multilevel';\n\n/** List specs from prosemirror-schema-list, extended with style attrs. */\nconst bulletListSpec: NodeSpec = {\n content: 'list_item+',\n group: 'block',\n attrs: { style: { default: null } },\n parseDOM: [\n {\n tag: 'ul',\n getAttrs: (dom: HTMLElement) => {\n const style = dom.style.listStyleType;\n return {\n style: (BULLET_STYLES as readonly string[]).includes(style) ? style : null,\n };\n },\n },\n ],\n toDOM(node) {\n return node.attrs.style\n ? ['ul', { style: `list-style-type: ${node.attrs.style}` }, 0]\n : ['ul', 0];\n },\n};\n\nconst orderedListSpec: NodeSpec = {\n content: 'list_item+',\n group: 'block',\n attrs: { order: { default: 1 }, style: { default: null } },\n parseDOM: [\n {\n tag: 'ol',\n getAttrs: (dom: HTMLElement) => {\n const type = dom.getAttribute('type') ?? '';\n const cssStyle = dom.style.listStyleType;\n const style =\n dom.getAttribute('data-list-style') === MULTILEVEL_STYLE\n ? MULTILEVEL_STYLE\n : ORDERED_STYLES[type] ??\n (Object.values(ORDERED_STYLES).includes(cssStyle) ? cssStyle : null);\n const start = Number(dom.getAttribute('start'));\n return {\n order: Number.isFinite(start) && start > 0 ? start : 1,\n style,\n };\n },\n },\n ],\n toDOM(node) {\n const attrs: Record<string, string> = {};\n if (node.attrs.order !== 1) attrs.start = String(node.attrs.order);\n if (node.attrs.style === MULTILEVEL_STYLE) {\n attrs['data-list-style'] = MULTILEVEL_STYLE;\n } else if (node.attrs.style && STYLE_TO_TYPE[node.attrs.style]) {\n attrs.type = STYLE_TO_TYPE[node.attrs.style];\n }\n return ['ol', attrs, 0];\n },\n};\n\n/** Builds the editor schema. List nodes are added via prosemirror-schema-list. */\nexport function createSchema(): Schema {\n const nodeMap = addListNodes(\n OrderedMap.from(nodes),\n 'paragraph block*',\n 'block'\n )\n .update('bullet_list', bulletListSpec)\n .update('ordered_list', orderedListSpec)\n .append(tableNodeSpecs)\n .update('table', tableSpec);\n return new Schema({ nodes: nodeMap, marks: OrderedMap.from(marks) });\n}\n\n/** A shared default schema instance. */\nexport const defaultSchema = createSchema();\n"],"names":["add","obj","props","copy","prop","wrapInList","listType","attrs","arguments","length","undefined","state","dispatch","_o$selection","selection","range","$from","$to","blockRange","tr","doJoin","outerRange","doc","depth","node","type","compatibleContent","startIndex","index","$insert","resolve","start","NodeRange","endIndex","parent","childCount","end","wrap","findWrapping","wrappers","joinBefore","content","Fragment","empty","i","from","create","step","ReplaceAroundStep","Slice","found","splitDepth","splitPos","e","first","canSplit","split","child","nodeSize","doWrapInList","wrapRangeInList","scrollIntoView","splitListItem","itemType","itemAttrs","_a$selection","isBlock","sameParent","grandParent","size","indexAfter","depthBefore","d","depthAfter","append","createAndFill","before","replace","after","sel","nodesBetween","pos","isTextblock","setSelection","Selection","near","nextType","contentMatchAt","defaultType","delete","types","liftListItem","_s$selection","firstChild","endOfList","target","liftTarget","lift","$after","mapping","map","canJoin","nodeBefore","nodeAfter","join","liftToOuterList","list","$start","item","atStart","atEnd","indexBefore","canReplace","liftOutOfList","sinkListItem","_a$selection2","nestedBefore","lastChild","inner","slice","getAlignFromDom","dom","value","style","textAlign","getAttribute","ALIGN_VALUES","includes","getIndentFromDom","raw","marginInlineStart","marginLeft","px","parseFloat","Number","isFinite","Math","min","round","getLineHeightFromDom","lineHeight","trim","num","endsWith","String","blockStyle","parts","align","concat","alignStyle","push","indent","_export","a","olDOM","ulDOM","liDOM","orderedList","order","default","validate","parseDOM","tag","getAttrs","hasAttribute","toDOM","bulletList","listItem","defining","MAX_INDENT","nodes","paragraph","group","heading","level","blockquote","horizontal_rule","text","hard_break","inline","selectable","code_block","marks","code","language","preserveWhitespace","class","image","draggable","src","alt","title","width","styleWidth","attrWidth","_t$getAttribute","_t$attrs","figure","isolating","contentElement","img","querySelector","_t$attrs2","figureAttrs","styles","imgAttrs","task_list","priority","task_item","checked","embed","atom","provider","_t$getAttribute2","_exec","iframe","widthAttr","exec","parseInt","NaN","_t$getAttribute3","_t$attrs3","iframeAttrs","frameborder","allowfullscreen","allow","wrapperAttrs","bookmark","id","mention","trigger","key","label","_t$textContent","textContent","_t$attrs4","merge_field","_t$attrs5","math","latex","display","_t$attrs6","tableNodeSpecs","tableNodes","tableGroup","cellContent","cellAttributes","background","getFromDOM","backgroundColor","setDOMAttr","baseTableSpec","table","tableSpec","layout","role","link","href","inclusive","mark","_t$attrs7","rel","bold","fontWeight","test","italic","underline","strike","subscript","excludes","superscript","text_color","color","bg_color","font_family","family","font_size","BULLET_STYLES","ORDERED_STYLES","A","I","STYLE_TO_TYPE","Object","fromEntries","entries","_ref","_ref2","_slicedToArray","MULTILEVEL_STYLE","bulletListSpec","listStyleType","orderedListSpec","_t$getAttribute4","_H$e","cssStyle","values","r","defaultSchema","nodeMap","itemContent","listGroup","ordered_list","bullet_list","list_item","addListNodes","OrderedMap","update","Schema","createSchema"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"schema.cjs.js","sources":["../../../../../node_modules/prosemirror-schema-list/dist/index.js","../../../../src/nile-wysiwyg-editor/engine/schema.ts"],"sourcesContent":["import { findWrapping, ReplaceAroundStep, canSplit, liftTarget, canJoin } from 'prosemirror-transform';\nimport { NodeRange, Fragment, Slice } from 'prosemirror-model';\nimport { Selection } from 'prosemirror-state';\n\nconst olDOM = [\"ol\", 0], ulDOM = [\"ul\", 0], liDOM = [\"li\", 0];\n/**\nAn ordered list [node spec](https://prosemirror.net/docs/ref/#model.NodeSpec). Has a single\nattribute, `order`, which determines the number at which the list\nstarts counting, and defaults to 1. Represented as an `<ol>`\nelement.\n*/\nconst orderedList = {\n attrs: { order: { default: 1, validate: \"number\" } },\n parseDOM: [{ tag: \"ol\", getAttrs(dom) {\n return { order: dom.hasAttribute(\"start\") ? +dom.getAttribute(\"start\") : 1 };\n } }],\n toDOM(node) {\n return node.attrs.order == 1 ? olDOM : [\"ol\", { start: node.attrs.order }, 0];\n }\n};\n/**\nA bullet list node spec, represented in the DOM as `<ul>`.\n*/\nconst bulletList = {\n parseDOM: [{ tag: \"ul\" }],\n toDOM() { return ulDOM; }\n};\n/**\nA list item (`<li>`) spec.\n*/\nconst listItem = {\n parseDOM: [{ tag: \"li\" }],\n toDOM() { return liDOM; },\n defining: true\n};\nfunction add(obj, props) {\n let copy = {};\n for (let prop in obj)\n copy[prop] = obj[prop];\n for (let prop in props)\n copy[prop] = props[prop];\n return copy;\n}\n/**\nConvenience function for adding list-related node types to a map\nspecifying the nodes for a schema. Adds\n[`orderedList`](https://prosemirror.net/docs/ref/#schema-list.orderedList) as `\"ordered_list\"`,\n[`bulletList`](https://prosemirror.net/docs/ref/#schema-list.bulletList) as `\"bullet_list\"`, and\n[`listItem`](https://prosemirror.net/docs/ref/#schema-list.listItem) as `\"list_item\"`.\n\n`itemContent` determines the content expression for the list items.\nIf you want the commands defined in this module to apply to your\nlist structure, it should have a shape like `\"paragraph block*\"` or\n`\"paragraph (ordered_list | bullet_list)*\"`. `listGroup` can be\ngiven to assign a group name to the list node types, for example\n`\"block\"`.\n*/\nfunction addListNodes(nodes, itemContent, listGroup) {\n return nodes.append({\n ordered_list: add(orderedList, { content: \"list_item+\", group: listGroup }),\n bullet_list: add(bulletList, { content: \"list_item+\", group: listGroup }),\n list_item: add(listItem, { content: itemContent })\n });\n}\n/**\nReturns a command function that wraps the selection in a list with\nthe given type an attributes. If `dispatch` is null, only return a\nvalue to indicate whether this is possible, but don't actually\nperform the change.\n*/\nfunction wrapInList(listType, attrs = null) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to);\n if (!range)\n return false;\n let tr = dispatch ? state.tr : null;\n if (!wrapRangeInList(tr, range, listType, attrs))\n return false;\n if (dispatch)\n dispatch(tr.scrollIntoView());\n return true;\n };\n}\n/**\nTry to wrap the given node range in a list of the given type.\nReturn `true` when this is possible, `false` otherwise. When `tr`\nis non-null, the wrapping is added to that transaction. When it is\n`null`, the function only queries whether the wrapping is\npossible.\n*/\nfunction wrapRangeInList(tr, range, listType, attrs = null) {\n let doJoin = false, outerRange = range, doc = range.$from.doc;\n // This is at the top of an existing list item\n if (range.depth >= 2 && range.$from.node(range.depth - 1).type.compatibleContent(listType) && range.startIndex == 0) {\n // Don't do anything if this is the top of the list\n if (range.$from.index(range.depth - 1) == 0)\n return false;\n let $insert = doc.resolve(range.start - 2);\n outerRange = new NodeRange($insert, $insert, range.depth);\n if (range.endIndex < range.parent.childCount)\n range = new NodeRange(range.$from, doc.resolve(range.$to.end(range.depth)), range.depth);\n doJoin = true;\n }\n let wrap = findWrapping(outerRange, listType, attrs, range);\n if (!wrap)\n return false;\n if (tr)\n doWrapInList(tr, range, wrap, doJoin, listType);\n return true;\n}\nfunction doWrapInList(tr, range, wrappers, joinBefore, listType) {\n let content = Fragment.empty;\n for (let i = wrappers.length - 1; i >= 0; i--)\n content = Fragment.from(wrappers[i].type.create(wrappers[i].attrs, content));\n tr.step(new ReplaceAroundStep(range.start - (joinBefore ? 2 : 0), range.end, range.start, range.end, new Slice(content, 0, 0), wrappers.length, true));\n let found = 0;\n for (let i = 0; i < wrappers.length; i++)\n if (wrappers[i].type == listType)\n found = i + 1;\n let splitDepth = wrappers.length - found;\n let splitPos = range.start + wrappers.length - (joinBefore ? 2 : 0), parent = range.parent;\n for (let i = range.startIndex, e = range.endIndex, first = true; i < e; i++, first = false) {\n if (!first && canSplit(tr.doc, splitPos, splitDepth)) {\n tr.split(splitPos, splitDepth);\n splitPos += 2 * splitDepth;\n }\n splitPos += parent.child(i).nodeSize;\n }\n return tr;\n}\n/**\nBuild a command that splits a non-empty textblock at the top level\nof a list item by also splitting that list item.\n*/\nfunction splitListItem(itemType, itemAttrs) {\n return function (state, dispatch) {\n let { $from, $to, node } = state.selection;\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to))\n return false;\n let grandParent = $from.node(-1);\n if (grandParent.type != itemType)\n return false;\n if ($from.parent.content.size == 0 && $from.node(-1).childCount == $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if ($from.depth == 3 || $from.node(-3).type != itemType ||\n $from.index(-2) != $from.node(-2).childCount - 1)\n return false;\n if (dispatch) {\n let wrap = Fragment.empty;\n let depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3;\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d--)\n wrap = Fragment.from($from.node(d).copy(wrap));\n let depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1\n : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3;\n // Add a second list item with an empty default start node\n wrap = wrap.append(Fragment.from(itemType.createAndFill()));\n let start = $from.before($from.depth - (depthBefore - 1));\n let tr = state.tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0));\n let sel = -1;\n tr.doc.nodesBetween(start, tr.doc.content.size, (node, pos) => {\n if (sel > -1)\n return false;\n if (node.isTextblock && node.content.size == 0)\n sel = pos + 1;\n });\n if (sel > -1)\n tr.setSelection(Selection.near(tr.doc.resolve(sel)));\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n let nextType = $to.pos == $from.end() ? grandParent.contentMatchAt(0).defaultType : null;\n let tr = state.tr.delete($from.pos, $to.pos);\n let types = nextType ? [itemAttrs ? { type: itemType, attrs: itemAttrs } : null, { type: nextType }] : undefined;\n if (!canSplit(tr.doc, $from.pos, 2, types))\n return false;\n if (dispatch)\n dispatch(tr.split($from.pos, 2, types).scrollIntoView());\n return true;\n };\n}\n/**\nActs like [`splitListItem`](https://prosemirror.net/docs/ref/#schema-list.splitListItem), but\nwithout resetting the set of active marks at the cursor.\n*/\nfunction splitListItemKeepMarks(itemType, itemAttrs) {\n let split = splitListItem(itemType, itemAttrs);\n return (state, dispatch) => {\n return split(state, dispatch && (tr => {\n let marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());\n if (marks)\n tr.ensureMarks(marks);\n dispatch(tr);\n }));\n };\n}\n/**\nCreate a command to lift the list item around the selection up into\na wrapping list.\n*/\nfunction liftListItem(itemType) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to, node => node.childCount > 0 && node.firstChild.type == itemType);\n if (!range)\n return false;\n if (!dispatch)\n return true;\n if ($from.node(range.depth - 1).type == itemType) // Inside a parent list\n return liftToOuterList(state, dispatch, itemType, range);\n else // Outer list node\n return liftOutOfList(state, dispatch, range);\n };\n}\nfunction liftToOuterList(state, dispatch, itemType, range) {\n let tr = state.tr, end = range.end, endOfList = range.$to.end(range.depth);\n if (end < endOfList) {\n // There are siblings after the lifted items, which must become\n // children of the last item\n tr.step(new ReplaceAroundStep(end - 1, endOfList, end, endOfList, new Slice(Fragment.from(itemType.create(null, range.parent.copy())), 1, 0), 1, true));\n range = new NodeRange(tr.doc.resolve(range.$from.pos), tr.doc.resolve(endOfList), range.depth);\n }\n const target = liftTarget(range);\n if (target == null)\n return false;\n tr.lift(range, target);\n let $after = tr.doc.resolve(tr.mapping.map(end, -1) - 1);\n if (canJoin(tr.doc, $after.pos) && $after.nodeBefore.type == $after.nodeAfter.type)\n tr.join($after.pos);\n dispatch(tr.scrollIntoView());\n return true;\n}\nfunction liftOutOfList(state, dispatch, range) {\n let tr = state.tr, list = range.parent;\n // Merge the list items into a single big item\n for (let pos = range.end, i = range.endIndex - 1, e = range.startIndex; i > e; i--) {\n pos -= list.child(i).nodeSize;\n tr.delete(pos - 1, pos + 1);\n }\n let $start = tr.doc.resolve(range.start), item = $start.nodeAfter;\n if (tr.mapping.map(range.end) != range.start + $start.nodeAfter.nodeSize)\n return false;\n let atStart = range.startIndex == 0, atEnd = range.endIndex == list.childCount;\n let parent = $start.node(-1), indexBefore = $start.index(-1);\n if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, item.content.append(atEnd ? Fragment.empty : Fragment.from(list))))\n return false;\n let start = $start.pos, end = start + item.nodeSize;\n // Strip off the surrounding list. At the sides where we're not at\n // the end of the list, the existing list is closed. At sides where\n // this is the end, it is overwritten to its end.\n tr.step(new ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, new Slice((atStart ? Fragment.empty : Fragment.from(list.copy(Fragment.empty)))\n .append(atEnd ? Fragment.empty : Fragment.from(list.copy(Fragment.empty))), atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1));\n dispatch(tr.scrollIntoView());\n return true;\n}\n/**\nCreate a command to sink the list item around the selection down\ninto an inner list.\n*/\nfunction sinkListItem(itemType) {\n return function (state, dispatch) {\n let { $from, $to } = state.selection;\n let range = $from.blockRange($to, node => node.childCount > 0 && node.firstChild.type == itemType);\n if (!range)\n return false;\n let startIndex = range.startIndex;\n if (startIndex == 0)\n return false;\n let parent = range.parent, nodeBefore = parent.child(startIndex - 1);\n if (nodeBefore.type != itemType)\n return false;\n if (dispatch) {\n let nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type == parent.type;\n let inner = Fragment.from(nestedBefore ? itemType.create() : null);\n let slice = new Slice(Fragment.from(itemType.create(null, Fragment.from(parent.type.create(null, inner)))), nestedBefore ? 3 : 1, 0);\n let before = range.start, after = range.end;\n dispatch(state.tr.step(new ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after, before, after, slice, 1, true))\n .scrollIntoView());\n }\n return true;\n };\n}\n\nexport { addListNodes, bulletList, liftListItem, listItem, orderedList, sinkListItem, splitListItem, splitListItemKeepMarks, wrapInList, wrapRangeInList };\n","import { Schema, NodeSpec, MarkSpec, Attrs, DOMOutputSpec, ParseRule } from 'prosemirror-model';\nimport { addListNodes } from 'prosemirror-schema-list';\nimport { tableNodes } from 'prosemirror-tables';\nimport OrderedMap from 'orderedmap';\nimport { EMBED_SANDBOX, EMBED_REFERRER_POLICY } from './plugins/embeds';\n\nexport type Alignment = 'left' | 'center' | 'right' | 'justify';\n\nconst ALIGN_VALUES: Alignment[] = ['left', 'center', 'right', 'justify'];\n\nfunction getAlignFromDom(dom: HTMLElement): Alignment | null {\n const value = dom.style.textAlign || dom.getAttribute('align') || '';\n return (ALIGN_VALUES as string[]).includes(value) ? (value as Alignment) : null;\n}\n\nfunction alignStyle(align: Alignment | null): string | null {\n return align ? `text-align: ${align}` : null;\n}\n\n/** Indent depth in 40px steps, like CKEditor/Google Docs. */\nexport const INDENT_STEP_PX = 40;\nexport const MAX_INDENT = 8;\n\nfunction getIndentFromDom(dom: HTMLElement): number {\n const raw = dom.style.marginInlineStart || dom.style.marginLeft || '';\n const px = parseFloat(raw);\n if (!Number.isFinite(px) || px <= 0) return 0;\n return Math.min(MAX_INDENT, Math.round(px / INDENT_STEP_PX));\n}\n\n/**\n * Line height as a unitless multiplier string ('1.5'). Percentages are\n * converted; px values pass through as-is so pasted content keeps its look.\n */\nfunction getLineHeightFromDom(dom: HTMLElement): string | null {\n const raw = dom.style.lineHeight.trim();\n if (!raw || raw === 'normal') return null;\n const num = parseFloat(raw);\n if (!Number.isFinite(num) || num <= 0) return null;\n if (raw.endsWith('%')) return String(num / 100);\n return raw;\n}\n\n/** Combined style string for align + indent + line-height textblock attrs. */\nfunction blockStyle(attrs: {\n align?: Alignment | null;\n indent?: number;\n lineHeight?: string | null;\n}): string | null {\n const parts: string[] = [];\n const align = alignStyle(attrs.align ?? null);\n if (align) parts.push(align);\n if (attrs.indent) parts.push(`margin-inline-start: ${attrs.indent * INDENT_STEP_PX}px`);\n if (attrs.lineHeight) parts.push(`line-height: ${attrs.lineHeight}`);\n return parts.length ? parts.join('; ') : null;\n}\n\n/* -------------------------------------------------------------------------\n * Author class / id passthrough\n *\n * Content elements keep the `class` and `id` an author gave them, so class/id\n * CSS (e.g. a scoped author <style> block) can target the document. Values that\n * collide with the editor's own internal names are dropped so content can never\n * impersonate or restyle the chrome; the editor's own classes (emitted in\n * toDOM) are always preserved and merged with the author's.\n * ------------------------------------------------------------------------- */\n\nconst RESERVED_NAME = /^(?:nile-wysiwyg|ProseMirror)/;\n\nexport function cleanClass(value: string | null): string | null {\n if (!value) return null;\n const kept = value.split(/\\s+/).filter(token => token && !RESERVED_NAME.test(token));\n return kept.length ? kept.join(' ') : null;\n}\n\nexport function cleanId(value: string | null): string | null {\n return value && !RESERVED_NAME.test(value) ? value : null;\n}\n\nconst HTML_ATTR_SPEC = { htmlClass: { default: null }, htmlId: { default: null } };\n\nfunction readHtmlAttrs(dom: HTMLElement): { htmlClass: string | null; htmlId: string | null } {\n return {\n htmlClass: cleanClass(dom.getAttribute('class')),\n htmlId: cleanId(dom.getAttribute('id')),\n };\n}\n\n/** Wraps a tag-based parse rule so it also captures author class/id. Rules\n * keyed by `style` (whose getAttrs receives a value string, not an element)\n * pass through untouched. */\nfunction augmentParseRule(rule: ParseRule): ParseRule {\n if (!('tag' in rule) || 'style' in rule) return rule;\n const inner = rule.getAttrs;\n return {\n ...rule,\n getAttrs(dom: HTMLElement) {\n const base = inner ? inner(dom) : null;\n if (base === false) return false;\n return { ...(base ?? {}), ...readHtmlAttrs(dom) };\n },\n } as ParseRule;\n}\n\n/** Wraps a toDOM so stored class/id are written back onto the element, merged\n * with any class the spec emits itself. Handles the `[tag]`, `[tag, attrs]`,\n * `[tag, 0]`, and `[tag, attrs, …children]` output shapes. */\nfunction augmentToDOM(\n toDOM?: (node: { attrs: Attrs }, ...rest: unknown[]) => DOMOutputSpec\n): ((node: { attrs: Attrs }, ...rest: unknown[]) => DOMOutputSpec) | undefined {\n if (!toDOM) return toDOM;\n return (node, ...rest) => {\n const out = toDOM(node, ...rest);\n const cls = node.attrs.htmlClass as string | null;\n const id = node.attrs.htmlId as string | null;\n if (!Array.isArray(out) || (!cls && !id)) return out;\n const [tag, ...tail] = out as unknown[];\n let attrs: Record<string, unknown> = {};\n let children = tail;\n if (tail.length && tail[0] && typeof tail[0] === 'object' && !Array.isArray(tail[0])) {\n attrs = { ...(tail[0] as Record<string, unknown>) };\n children = tail.slice(1);\n }\n if (cls) attrs.class = attrs.class ? `${attrs.class as string} ${cls}` : cls;\n if (id) attrs.id = id;\n return [tag, attrs, ...children] as DOMOutputSpec;\n };\n}\n\n/** Adds `htmlClass`/`htmlId` attrs plus parse/serialize support to a spec. */\nfunction withHtmlAttrs<S extends NodeSpec | MarkSpec>(spec: S): S {\n return {\n ...spec,\n attrs: { ...(spec.attrs ?? {}), ...HTML_ATTR_SPEC },\n parseDOM: spec.parseDOM?.map(augmentParseRule),\n toDOM: augmentToDOM(spec.toDOM as never) as never,\n };\n}\n\n/** Content nodes/marks that carry author class/id. Excludes structural leaves\n * (doc, text), atoms with bespoke DOM (image, embeds, mentions, math, …) and\n * style-only marks (their spans are covered by `html_span`). */\nconst HTML_ATTR_NODES = [\n 'paragraph', 'heading', 'blockquote', 'code_block',\n 'bullet_list', 'ordered_list', 'list_item',\n 'table', 'table_row', 'table_cell', 'table_header',\n];\nconst HTML_ATTR_MARKS = [\n 'link', 'bold', 'italic', 'underline', 'strike', 'code', 'subscript', 'superscript',\n];\n\n/**\n * Block nodes. `align` is modeled as an attribute on textblocks rather than a\n * wrapper node so alignment survives block-type changes (heading <-> paragraph).\n */\nconst nodes: Record<string, NodeSpec> = {\n doc: {\n content: 'block+',\n },\n\n paragraph: {\n content: 'inline*',\n group: 'block',\n attrs: {\n align: { default: null },\n indent: { default: 0 },\n lineHeight: { default: null },\n },\n parseDOM: [\n {\n tag: 'p',\n getAttrs: (dom: HTMLElement) => ({\n align: getAlignFromDom(dom),\n indent: getIndentFromDom(dom),\n lineHeight: getLineHeightFromDom(dom),\n }),\n },\n ],\n toDOM(node) {\n const style = blockStyle(node.attrs);\n return style ? ['p', { style }, 0] : ['p', 0];\n },\n },\n\n heading: {\n content: 'inline*',\n group: 'block',\n defining: true,\n attrs: {\n level: { default: 1 },\n align: { default: null },\n indent: { default: 0 },\n lineHeight: { default: null },\n },\n parseDOM: [1, 2, 3, 4, 5, 6].map(level => ({\n tag: `h${level}`,\n getAttrs: (dom: HTMLElement) => ({\n level,\n align: getAlignFromDom(dom),\n indent: getIndentFromDom(dom),\n lineHeight: getLineHeightFromDom(dom),\n }),\n })),\n toDOM(node) {\n const style = blockStyle(node.attrs);\n return style ? [`h${node.attrs.level}`, { style }, 0] : [`h${node.attrs.level}`, 0];\n },\n },\n\n blockquote: {\n content: 'block+',\n group: 'block',\n defining: true,\n parseDOM: [{ tag: 'blockquote' }],\n toDOM() {\n return ['blockquote', 0];\n },\n },\n\n horizontal_rule: {\n group: 'block',\n parseDOM: [{ tag: 'hr' }],\n toDOM() {\n return ['hr'];\n },\n },\n\n text: {\n group: 'inline',\n },\n\n hard_break: {\n inline: true,\n group: 'inline',\n selectable: false,\n parseDOM: [{ tag: 'br' }],\n toDOM() {\n return ['br'];\n },\n },\n\n code_block: {\n content: 'text*',\n group: 'block',\n marks: '',\n code: true,\n defining: true,\n attrs: { language: { default: null } },\n parseDOM: [\n {\n tag: 'pre',\n preserveWhitespace: 'full',\n getAttrs: (dom: HTMLElement) => ({\n language: dom.getAttribute('data-language'),\n }),\n },\n ],\n toDOM(node) {\n const attrs: Record<string, string> = { class: 'nile-wysiwyg__code-block' };\n if (node.attrs.language) attrs['data-language'] = node.attrs.language;\n return ['pre', attrs, ['code', 0]];\n },\n },\n\n /**\n * ProseMirror's canonical inline image, extended with a `width` attr (px)\n * written by the drag-resize handles.\n */\n image: {\n inline: true,\n group: 'inline',\n draggable: true,\n attrs: {\n src: {},\n alt: { default: null },\n title: { default: null },\n width: { default: null },\n },\n parseDOM: [\n {\n tag: 'img[src]',\n getAttrs: (dom: HTMLElement) => {\n const styleWidth = parseFloat(dom.style.width);\n const attrWidth = parseFloat(dom.getAttribute('width') ?? '');\n const width = Number.isFinite(styleWidth)\n ? Math.round(styleWidth)\n : Number.isFinite(attrWidth)\n ? Math.round(attrWidth)\n : null;\n return {\n src: dom.getAttribute('src'),\n alt: dom.getAttribute('alt'),\n title: dom.getAttribute('title'),\n width: width && width > 0 ? width : null,\n };\n },\n },\n ],\n toDOM(node) {\n const { src, alt, title, width } = node.attrs;\n const attrs: Record<string, string> = { src };\n if (alt) attrs.alt = alt;\n if (title) attrs.title = title;\n if (width) attrs.style = `width: ${width}px`;\n return ['img', attrs];\n },\n },\n\n /**\n * Captioned image: a block figure whose inline content is the caption. The\n * image itself lives in the attrs (TipTap-style), so the node stays valid\n * ProseMirror content — a node can't mix an inline img child with a block\n * figcaption child.\n */\n figure: {\n group: 'block',\n content: 'inline*',\n defining: true,\n isolating: true,\n attrs: {\n src: {},\n alt: { default: null },\n title: { default: null },\n width: { default: null },\n align: { default: null },\n },\n parseDOM: [\n {\n tag: 'figure',\n contentElement: 'figcaption',\n getAttrs: (dom: HTMLElement) => {\n const img = dom.querySelector('img[src]') as HTMLElement | null;\n if (!img) return false;\n const styleWidth = parseFloat(img.style.width || dom.style.width);\n const align = dom.getAttribute('data-align');\n return {\n src: img.getAttribute('src'),\n alt: img.getAttribute('alt'),\n title: img.getAttribute('title'),\n width:\n Number.isFinite(styleWidth) && styleWidth > 0\n ? Math.round(styleWidth)\n : null,\n align: align === 'left' || align === 'center' || align === 'right' ? align : null,\n };\n },\n },\n ],\n toDOM(node) {\n const { src, alt, title, width, align } = node.attrs;\n const figureAttrs: Record<string, string> = { class: 'nile-wysiwyg__figure' };\n if (align) figureAttrs['data-align'] = align;\n const styles: string[] = [];\n if (width) styles.push(`width: ${width}px`);\n if (align === 'center') styles.push('margin-left: auto; margin-right: auto');\n else if (align === 'right') styles.push('margin-left: auto; margin-right: 0');\n if (styles.length) figureAttrs.style = styles.join('; ');\n const imgAttrs: Record<string, string> = { src, style: 'width: 100%' };\n if (alt) imgAttrs.alt = alt;\n if (title) imgAttrs.title = title;\n return [\n 'figure',\n figureAttrs,\n ['img', imgAttrs],\n ['figcaption', { class: 'nile-wysiwyg__figcaption' }, 0],\n ];\n },\n },\n\n /**\n * Checklists. Serialized as <ul data-task-list><li data-task-item\n * data-checked> so they survive HTML round-trips; the live checkbox is an\n * editor-only NodeView. parseDOM priority 51 beats the generic li rule.\n */\n task_list: {\n content: 'task_item+',\n group: 'block',\n parseDOM: [{ tag: 'ul[data-task-list]', priority: 51 }],\n toDOM() {\n return ['ul', { 'data-task-list': 'true', class: 'nile-wysiwyg__task-list' }, 0];\n },\n },\n\n task_item: {\n content: 'paragraph block*',\n defining: true,\n attrs: { checked: { default: false } },\n parseDOM: [\n {\n tag: 'li[data-task-item]',\n priority: 51,\n getAttrs: (dom: HTMLElement) => ({\n checked: dom.getAttribute('data-checked') === 'true',\n }),\n },\n ],\n toDOM(node) {\n return [\n 'li',\n {\n 'data-task-item': 'true',\n 'data-checked': String(node.attrs.checked),\n class: 'nile-wysiwyg__task-item',\n },\n 0,\n ];\n },\n },\n\n /**\n * Provider embeds (YouTube/Vimeo/Loom) as block atoms. The iframe sits in\n * a wrapper div for aspect-ratio styling and a click-to-select overlay.\n */\n embed: {\n group: 'block',\n atom: true,\n selectable: true,\n draggable: true,\n attrs: {\n src: {},\n provider: { default: null },\n title: { default: null },\n /** Rendered width in px (drag-resize); null = default size. */\n width: { default: null },\n /** Block alignment: 'left' | 'center' | 'right' | null. */\n align: { default: null },\n },\n parseDOM: [\n {\n tag: 'div[data-embed-provider]',\n getAttrs: (dom: HTMLElement) => {\n const iframe = dom.querySelector('iframe[src]');\n if (!iframe) return false;\n const widthAttr =\n dom.getAttribute('data-width') ?? /^(\\d+)px$/.exec(dom.style.width)?.[1];\n const width = widthAttr ? parseInt(widthAttr, 10) : NaN;\n const align = dom.getAttribute('data-align');\n return {\n src: iframe.getAttribute('src'),\n provider: dom.getAttribute('data-embed-provider'),\n title: iframe.getAttribute('title'),\n width: Number.isFinite(width) && width > 0 ? width : null,\n align: align === 'left' || align === 'center' || align === 'right' ? align : null,\n };\n },\n },\n {\n tag: 'iframe[src]',\n getAttrs: (dom: HTMLElement) => {\n const width = parseInt(dom.getAttribute('width') ?? '', 10);\n return {\n src: dom.getAttribute('src'),\n title: dom.getAttribute('title'),\n width: Number.isFinite(width) && width > 0 ? width : null,\n };\n },\n },\n ],\n toDOM(node) {\n const { src, provider, title, width, align } = node.attrs;\n const iframeAttrs: Record<string, string> = {\n src,\n frameborder: '0',\n allowfullscreen: 'true',\n allow: 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture',\n sandbox: EMBED_SANDBOX,\n referrerpolicy: EMBED_REFERRER_POLICY,\n };\n if (title) iframeAttrs.title = title;\n const wrapperAttrs: Record<string, string> = {\n class: 'nile-wysiwyg__embed',\n 'data-embed-provider': provider ?? 'generic',\n };\n const styles: string[] = [];\n if (width) {\n wrapperAttrs['data-width'] = String(width);\n styles.push(`width: ${width}px`, 'max-width: 100%');\n }\n if (align) {\n wrapperAttrs['data-align'] = align;\n if (align === 'center') styles.push('margin-left: auto', 'margin-right: auto');\n else if (align === 'right') styles.push('margin-left: auto', 'margin-right: 0');\n }\n if (styles.length) wrapperAttrs.style = styles.join('; ');\n return ['div', wrapperAttrs, ['iframe', iframeAttrs]];\n },\n },\n\n /**\n * Author-supplied `<style>` block, entered via the HTML source view. The CSS\n * is sanitized on the way in (see sanitizeCss) — `@import`, `expression()`\n * and external `url()` are neutralized — then stored verbatim and serialized\n * straight back to a `<style>` element. A node view renders it live in the\n * editor with a small chip so the otherwise-invisible block stays selectable.\n */\n styleBlock: {\n group: 'block',\n atom: true,\n selectable: true,\n attrs: { css: { default: '' } },\n parseDOM: [\n {\n tag: 'style',\n getAttrs: (dom: HTMLElement) => ({ css: dom.textContent ?? '' }),\n },\n ],\n toDOM(node) {\n return ['style', node.attrs.css];\n },\n },\n\n /**\n * Bookmark: a named in-text anchor (`<a id=\"…\">`) for intra-document\n * navigation. Invisible in serialized output; the editor draws a flag\n * marker via CSS so it can be selected and deleted.\n */\n bookmark: {\n inline: true,\n group: 'inline',\n atom: true,\n selectable: true,\n attrs: { id: {} },\n parseDOM: [\n {\n tag: 'a[data-bookmark]',\n priority: 60,\n getAttrs: (dom: HTMLElement) => {\n const id = dom.getAttribute('id') || dom.getAttribute('name');\n return id ? { id } : false;\n },\n },\n // Anchors without an href are bookmarks (`<a id>` / legacy `<a name>`).\n {\n tag: 'a[id]',\n getAttrs: (dom: HTMLElement) =>\n dom.hasAttribute('href') ? false : { id: dom.getAttribute('id') },\n },\n {\n tag: 'a[name]',\n getAttrs: (dom: HTMLElement) =>\n dom.hasAttribute('href') ? false : { id: dom.getAttribute('name') },\n },\n ],\n toDOM(node) {\n return ['a', { id: node.attrs.id, 'data-bookmark': 'true' }];\n },\n },\n\n /** Inline atom for @-style mentions. The label renders as `${trigger}${label}`. */\n mention: {\n inline: true,\n group: 'inline',\n atom: true,\n selectable: true,\n attrs: {\n trigger: { default: '@' },\n key: {},\n label: {},\n },\n parseDOM: [\n {\n tag: 'span[data-mention-key]',\n getAttrs: (dom: HTMLElement) => ({\n trigger: dom.getAttribute('data-mention-trigger') || '@',\n key: dom.getAttribute('data-mention-key'),\n label:\n dom.getAttribute('data-mention-label') || dom.textContent?.slice(1) || '',\n }),\n },\n ],\n toDOM(node) {\n const { trigger, key, label } = node.attrs;\n return [\n 'span',\n {\n class: 'nile-wysiwyg__mention',\n 'data-mention-trigger': trigger,\n 'data-mention-key': key,\n 'data-mention-label': label,\n },\n `${trigger}${label}`,\n ];\n },\n },\n\n /**\n * Merge field: an inline atom placeholder for mail-merge / personalization\n * (e.g. `{{first_name}}`). Stores a stable `id` and a human `label`; renders\n * the label (falling back to `{{id}}`) as a non-editable chip.\n */\n merge_field: {\n inline: true,\n group: 'inline',\n atom: true,\n selectable: true,\n attrs: { id: {}, label: { default: null } },\n parseDOM: [\n {\n tag: 'span[data-merge-field]',\n getAttrs: (dom: HTMLElement) => {\n const id = dom.getAttribute('data-merge-field');\n if (!id) return false;\n return {\n id,\n label: dom.getAttribute('data-merge-label') || dom.textContent || null,\n };\n },\n },\n ],\n toDOM(node) {\n const { id, label } = node.attrs;\n return [\n 'span',\n {\n class: 'nile-wysiwyg__merge-field',\n 'data-merge-field': id,\n 'data-merge-label': label ?? '',\n },\n label || `{{${id}}}`,\n ];\n },\n },\n\n /**\n * Math: an inline atom holding a LaTeX source string. Rendering is pluggable\n * via the editor's `mathRenderer` (KaTeX/MathJax, or MathML). Without a\n * renderer the raw LaTeX is shown in a math-styled chip. `display` chooses\n * inline vs. block presentation.\n */\n math: {\n inline: true,\n group: 'inline',\n atom: true,\n selectable: true,\n attrs: { latex: {}, display: { default: 'inline' } },\n parseDOM: [\n {\n tag: 'span[data-math]',\n getAttrs: (dom: HTMLElement) => ({\n latex: dom.getAttribute('data-math') || dom.textContent || '',\n display: dom.getAttribute('data-math-display') === 'block' ? 'block' : 'inline',\n }),\n },\n ],\n toDOM(node) {\n const { latex, display } = node.attrs;\n return [\n 'span',\n {\n class: 'nile-wysiwyg__math',\n 'data-math': latex,\n 'data-math-display': display,\n },\n latex,\n ];\n },\n },\n};\n\n/** Table nodes from prosemirror-tables, with cell background support. */\nconst tableNodeSpecs = tableNodes({\n tableGroup: 'block',\n cellContent: 'block+',\n cellAttributes: {\n background: {\n default: null,\n getFromDOM(dom) {\n return (dom as HTMLElement).style.backgroundColor || null;\n },\n setDOMAttr(value, attrs) {\n if (value) {\n attrs.style = `${(attrs.style as string) || ''}background-color: ${value};`;\n }\n },\n },\n },\n});\n\n/**\n * The table spec extended with a `layout` attr: layout tables (structured\n * layouts, e.g. for email HTML) serialize as `role=\"presentation\"` and render\n * borderless, with dashed guides visible only while editing.\n */\nconst baseTableSpec = tableNodeSpecs.table;\nconst tableSpec: NodeSpec = {\n ...baseTableSpec,\n attrs: { ...(baseTableSpec.attrs ?? {}), layout: { default: false } },\n parseDOM: [\n {\n tag: 'table',\n getAttrs: (dom: HTMLElement) => ({\n layout:\n dom.getAttribute('role') === 'presentation' || dom.hasAttribute('data-layout'),\n }),\n },\n ],\n toDOM(node) {\n return node.attrs.layout\n ? ['table', { role: 'presentation', 'data-layout': 'true' }, ['tbody', 0]]\n : ['table', ['tbody', 0]];\n },\n};\n\n/**\n * Marks. Order matters: marks later in the map render closer to the text.\n * Each styling mark parses from both semantic tags AND inline `style=`\n * declarations so pasted Word/Google Docs content keeps its formatting.\n */\nconst marks: Record<string, MarkSpec> = {\n link: {\n attrs: {\n href: {},\n title: { default: null },\n target: { default: null },\n },\n inclusive: false,\n parseDOM: [\n {\n tag: 'a[href]',\n getAttrs: (dom: HTMLElement) => ({\n href: dom.getAttribute('href'),\n title: dom.getAttribute('title'),\n target: dom.getAttribute('target'),\n }),\n },\n ],\n toDOM(mark) {\n const { href, title, target } = mark.attrs;\n const attrs: Record<string, string> = { href };\n if (title) attrs.title = title;\n if (target) {\n attrs.target = target;\n if (target === '_blank') attrs.rel = 'noopener noreferrer';\n }\n return ['a', attrs, 0];\n },\n },\n\n bold: {\n parseDOM: [\n { tag: 'strong' },\n // Google Docs wraps everything in <b style=\"font-weight: normal\">\n {\n tag: 'b',\n getAttrs: (dom: HTMLElement) => dom.style.fontWeight !== 'normal' && null,\n },\n {\n style: 'font-weight',\n getAttrs: (value: string) => /^(bold(er)?|[5-9]\\d{2,})$/.test(value) && null,\n },\n ],\n toDOM() {\n return ['strong', 0];\n },\n },\n\n italic: {\n parseDOM: [\n { tag: 'i' },\n { tag: 'em' },\n { style: 'font-style=italic' },\n ],\n toDOM() {\n return ['em', 0];\n },\n },\n\n underline: {\n parseDOM: [\n { tag: 'u' },\n {\n style: 'text-decoration',\n getAttrs: (value: string) => value.includes('underline') && null,\n },\n {\n style: 'text-decoration-line',\n getAttrs: (value: string) => value.includes('underline') && null,\n },\n ],\n toDOM() {\n return ['u', 0];\n },\n },\n\n strike: {\n parseDOM: [\n { tag: 's' },\n { tag: 'strike' },\n { tag: 'del' },\n {\n style: 'text-decoration',\n getAttrs: (value: string) => value.includes('line-through') && null,\n },\n {\n style: 'text-decoration-line',\n getAttrs: (value: string) => value.includes('line-through') && null,\n },\n ],\n toDOM() {\n return ['s', 0];\n },\n },\n\n /** Mutually exclusive vertical-shift marks (formulas, footnote refs). */\n subscript: {\n excludes: 'subscript superscript',\n parseDOM: [{ tag: 'sub' }, { style: 'vertical-align=sub' }],\n toDOM() {\n return ['sub', 0];\n },\n },\n\n superscript: {\n excludes: 'subscript superscript',\n parseDOM: [{ tag: 'sup' }, { style: 'vertical-align=super' }],\n toDOM() {\n return ['sup', 0];\n },\n },\n\n code: {\n parseDOM: [{ tag: 'code' }],\n toDOM() {\n return ['code', { class: 'nile-wysiwyg__inline-code' }, 0];\n },\n },\n\n /** Carries an author `class`/`id` on an inline `<span>` that has no other\n * meaning, so class/id CSS can target runs of text. Low priority so styled\n * spans (color/font marks) and atom spans (mention/merge/math) win. */\n html_span: {\n attrs: { htmlClass: { default: null }, htmlId: { default: null } },\n parseDOM: [\n {\n tag: 'span',\n priority: 5,\n getAttrs: (dom: HTMLElement) => {\n const htmlClass = cleanClass(dom.getAttribute('class'));\n const htmlId = cleanId(dom.getAttribute('id'));\n return htmlClass || htmlId ? { htmlClass, htmlId } : false;\n },\n },\n ],\n toDOM(mark) {\n const attrs: Record<string, string> = {};\n if (mark.attrs.htmlClass) attrs.class = mark.attrs.htmlClass;\n if (mark.attrs.htmlId) attrs.id = mark.attrs.htmlId;\n return ['span', attrs, 0];\n },\n },\n\n text_color: {\n attrs: { color: {} },\n parseDOM: [\n {\n style: 'color',\n getAttrs: (value: string) => (value ? { color: value } : false),\n },\n ],\n toDOM(mark) {\n return ['span', { style: `color: ${mark.attrs.color}` }, 0];\n },\n },\n\n bg_color: {\n attrs: { color: {} },\n parseDOM: [\n {\n style: 'background-color',\n getAttrs: (value: string) =>\n value && value !== 'transparent' ? { color: value } : false,\n },\n ],\n toDOM(mark) {\n return ['span', { style: `background-color: ${mark.attrs.color}` }, 0];\n },\n },\n\n font_family: {\n attrs: { family: {} },\n parseDOM: [\n {\n style: 'font-family',\n getAttrs: (value: string) => (value ? { family: value } : false),\n },\n ],\n toDOM(mark) {\n return ['span', { style: `font-family: ${mark.attrs.family}` }, 0];\n },\n },\n\n font_size: {\n attrs: { size: {} },\n parseDOM: [\n {\n style: 'font-size',\n getAttrs: (value: string) => (value ? { size: value } : false),\n },\n ],\n toDOM(mark) {\n return ['span', { style: `font-size: ${mark.attrs.size}` }, 0];\n },\n },\n};\n\n/** Bullet markers CSS understands; anything else falls back to default. */\nexport const BULLET_STYLES = ['disc', 'circle', 'square'] as const;\n\n/** Numbering styles, keyed by the HTML `type` attribute letter. */\nexport const ORDERED_STYLES: Record<string, string> = {\n '1': 'decimal',\n a: 'lower-alpha',\n A: 'upper-alpha',\n i: 'lower-roman',\n I: 'upper-roman',\n};\n\nconst STYLE_TO_TYPE: Record<string, string> = Object.fromEntries(\n Object.entries(ORDERED_STYLES).map(([type, style]) => [style, type])\n);\n\n/**\n * Legal-style continuous numbering (1, 1.1, 1.1.1). Not a CSS\n * list-style-type: it serializes as `data-list-style=\"multilevel\"` and is\n * rendered with CSS counters (see the editor stylesheet). Consumers rendering\n * the output need the same counter rules.\n */\nexport const MULTILEVEL_STYLE = 'multilevel';\n\n/** List specs from prosemirror-schema-list, extended with style attrs. */\nconst bulletListSpec: NodeSpec = {\n content: 'list_item+',\n group: 'block',\n attrs: { style: { default: null } },\n parseDOM: [\n {\n tag: 'ul',\n getAttrs: (dom: HTMLElement) => {\n const style = dom.style.listStyleType;\n return {\n style: (BULLET_STYLES as readonly string[]).includes(style) ? style : null,\n };\n },\n },\n ],\n toDOM(node) {\n return node.attrs.style\n ? ['ul', { style: `list-style-type: ${node.attrs.style}` }, 0]\n : ['ul', 0];\n },\n};\n\nconst orderedListSpec: NodeSpec = {\n content: 'list_item+',\n group: 'block',\n attrs: { order: { default: 1 }, style: { default: null } },\n parseDOM: [\n {\n tag: 'ol',\n getAttrs: (dom: HTMLElement) => {\n const type = dom.getAttribute('type') ?? '';\n const cssStyle = dom.style.listStyleType;\n const style =\n dom.getAttribute('data-list-style') === MULTILEVEL_STYLE\n ? MULTILEVEL_STYLE\n : ORDERED_STYLES[type] ??\n (Object.values(ORDERED_STYLES).includes(cssStyle) ? cssStyle : null);\n const start = Number(dom.getAttribute('start'));\n return {\n order: Number.isFinite(start) && start > 0 ? start : 1,\n style,\n };\n },\n },\n ],\n toDOM(node) {\n const attrs: Record<string, string> = {};\n if (node.attrs.order !== 1) attrs.start = String(node.attrs.order);\n if (node.attrs.style === MULTILEVEL_STYLE) {\n attrs['data-list-style'] = MULTILEVEL_STYLE;\n } else if (node.attrs.style && STYLE_TO_TYPE[node.attrs.style]) {\n attrs.type = STYLE_TO_TYPE[node.attrs.style];\n }\n return ['ol', attrs, 0];\n },\n};\n\n/** Builds the editor schema. List nodes are added via prosemirror-schema-list. */\nexport function createSchema(): Schema {\n let nodeMap = addListNodes(OrderedMap.from(nodes), 'paragraph block*', 'block')\n .update('bullet_list', bulletListSpec)\n .update('ordered_list', orderedListSpec)\n .append(tableNodeSpecs)\n .update('table', tableSpec);\n // Thread author class/id through the content nodes and marks (applied last so\n // it also wraps the list/table specs pulled in from external packages).\n for (const name of HTML_ATTR_NODES) {\n const spec = nodeMap.get(name);\n if (spec) nodeMap = nodeMap.update(name, withHtmlAttrs(spec));\n }\n let markMap = OrderedMap.from<MarkSpec>(marks);\n for (const name of HTML_ATTR_MARKS) {\n const spec = markMap.get(name);\n if (spec) markMap = markMap.update(name, withHtmlAttrs(spec));\n }\n return new Schema({ nodes: nodeMap, marks: markMap });\n}\n\n/** A shared default schema instance. */\nexport const defaultSchema = createSchema();\n"],"names":["add","obj","props","copy","prop","wrapInList","listType","attrs","state","dispatch","_o$selection","selection","range","$from","$to","blockRange","tr","arguments","length","undefined","doJoin","outerRange","doc","depth","node","type","compatibleContent","startIndex","index","$insert","resolve","start","NodeRange","endIndex","parent","childCount","end","wrap","findWrapping","wrappers","joinBefore","content","Fragment","empty","i","from","create","step","ReplaceAroundStep","Slice","found","splitDepth","splitPos","e","first","canSplit","split","child","nodeSize","doWrapInList","wrapRangeInList","scrollIntoView","splitListItem","itemType","itemAttrs","_n$selection","isBlock","sameParent","grandParent","size","indexAfter","depthBefore","d","depthAfter","append","createAndFill","before","replace","after","sel","nodesBetween","pos","isTextblock","setSelection","Selection","near","nextType","contentMatchAt","defaultType","delete","types","liftListItem","_s$selection","firstChild","endOfList","target","liftTarget","lift","$after","mapping","map","canJoin","nodeBefore","nodeAfter","join","liftToOuterList","list","$start","item","atStart","atEnd","indexBefore","canReplace","liftOutOfList","sinkListItem","_n$selection2","nestedBefore","lastChild","inner","slice","getAlignFromDom","dom","value","style","textAlign","getAttribute","ALIGN_VALUES","includes","getIndentFromDom","raw","marginInlineStart","marginLeft","px","parseFloat","Number","isFinite","Math","min","round","getLineHeightFromDom","lineHeight","trim","num","endsWith","String","blockStyle","parts","align","alignStyle","_t$align","push","indent","concat","cleanClass","kept","filter","token","RESERVED_NAME","test","cleanId","readHtmlAttrs","htmlClass","htmlId","augmentParseRule","rule","getAttrs","_objectSpread","base","withHtmlAttrs","spec","_t$attrs","HTML_ATTR_SPEC","parseDOM","toDOM","_len","rest","Array","_key","out","cls","id","isArray","_r2","_toArray","tag","tail","children","class","_export","a","olDOM","ulDOM","liDOM","orderedList","order","default","validate","hasAttribute","bulletList","listItem","defining","MAX_INDENT","HTML_ATTR_NODES","HTML_ATTR_MARKS","nodes","paragraph","group","heading","level","blockquote","horizontal_rule","text","hard_break","inline","selectable","code_block","marks","code","language","preserveWhitespace","image","draggable","src","alt","title","width","styleWidth","attrWidth","_t$attrs2","figure","isolating","contentElement","img","querySelector","_t$attrs3","figureAttrs","styles","imgAttrs","task_list","priority","task_item","checked","embed","atom","provider","iframe","widthAttr","exec","_exec","parseInt","NaN","_t$getAttribute3","_t$attrs4","iframeAttrs","frameborder","allowfullscreen","allow","sandbox","EMBED_SANDBOX","referrerpolicy","EMBED_REFERRER_POLICY","wrapperAttrs","styleBlock","css","textContent","bookmark","mention","trigger","key","label","_t$attrs5","merge_field","_t$attrs6","math","latex","display","_t$attrs7","tableNodeSpecs","tableNodes","tableGroup","cellContent","cellAttributes","background","getFromDOM","backgroundColor","setDOMAttr","baseTableSpec","table","tableSpec","_R$attrs","layout","role","link","href","inclusive","mark","_t$attrs8","rel","bold","fontWeight","italic","underline","strike","subscript","excludes","superscript","html_span","text_color","color","bg_color","font_family","family","font_size","BULLET_STYLES","ORDERED_STYLES","A","I","STYLE_TO_TYPE","Object","fromEntries","entries","_ref","_ref2","_slicedToArray","MULTILEVEL_STYLE","bulletListSpec","listStyleType","orderedListSpec","_t$getAttribute4","_L$e","cssStyle","values","defaultSchema","nodeMap","itemContent","listGroup","ordered_list","bullet_list","list_item","addListNodes","OrderedMap","update","_i2","_E","name","get","markMap","_i3","_B","Schema","createSchema"],"mappings":"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","x_google_ignoreList":[0]}