@aquera/nile-elements 1.9.5 → 1.9.7

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 (565) hide show
  1. package/README.md +9 -0
  2. package/dist/index-178e1e57.cjs.js +2 -0
  3. package/dist/index-178e1e57.cjs.js.map +1 -0
  4. package/dist/index-1faa963c.esm.js +1 -0
  5. package/dist/index-249de90a.esm.js +1 -0
  6. package/dist/index-353172ed.esm.js +1 -0
  7. package/dist/index-6f3fa4ab.esm.js +1 -0
  8. package/dist/index-89c520e9.cjs.js +5 -0
  9. package/dist/index-89c520e9.cjs.js.map +1 -0
  10. package/dist/index-920675c4.esm.js +1 -0
  11. package/dist/index-b387a9f4.cjs.js +2 -0
  12. package/dist/index-b387a9f4.cjs.js.map +1 -0
  13. package/dist/index-cc1385e0.cjs.js +2 -0
  14. package/dist/index-cc1385e0.cjs.js.map +1 -0
  15. package/dist/index-dedc38a6.esm.js +1 -0
  16. package/dist/index-df196058.cjs.js +2 -0
  17. package/dist/index-df196058.cjs.js.map +1 -0
  18. package/dist/index-f956f56d.cjs.js +7 -0
  19. package/dist/index-f956f56d.cjs.js.map +1 -0
  20. package/dist/index.cjs.js +1 -1
  21. package/dist/index.esm.js +1 -1
  22. package/dist/index.js +3802 -664
  23. package/dist/internal/glyph.cjs.js +2 -0
  24. package/dist/internal/glyph.cjs.js.map +1 -0
  25. package/dist/internal/glyph.esm.js +5 -0
  26. package/dist/nile-auto-complete/index.cjs.js +1 -1
  27. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
  28. package/dist/nile-auto-complete/portal-manager.cjs.js +1 -1
  29. package/dist/nile-auto-complete/portal-utils.cjs.js +1 -1
  30. package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
  31. package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -1
  32. package/dist/nile-chip/nile-chip.css.esm.js +8 -1
  33. package/dist/nile-code-editor/extensionSetup.cjs.js +7 -7
  34. package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
  35. package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
  36. package/dist/nile-code-editor/index.cjs.js +1 -1
  37. package/dist/nile-code-editor/index.esm.js +1 -1
  38. package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
  39. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  40. package/dist/nile-code-editor/nile-code-editor.esm.js +4 -4
  41. package/dist/nile-color-picker/index.cjs.js +1 -1
  42. package/dist/nile-color-picker/nile-color-picker.cjs.js +1 -1
  43. package/dist/nile-combobox/index.cjs.js +1 -1
  44. package/dist/nile-combobox/index.esm.js +1 -1
  45. package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
  46. package/dist/nile-combobox/nile-combobox.esm.js +1 -1
  47. package/dist/nile-combobox/portal-manager.cjs.js +1 -1
  48. package/dist/nile-context-menu/index.cjs.js +1 -1
  49. package/dist/nile-context-menu/nile-context-menu.cjs.js +1 -1
  50. package/dist/nile-context-submenu/index.cjs.js +1 -1
  51. package/dist/nile-context-submenu/nile-context-submenu.cjs.js +1 -1
  52. package/dist/nile-detail/index.cjs.js +1 -1
  53. package/dist/nile-detail/index.esm.js +1 -1
  54. package/dist/nile-detail/nile-detail.cjs.js +1 -1
  55. package/dist/nile-detail/nile-detail.esm.js +1 -1
  56. package/dist/nile-dropdown/index.cjs.js +1 -1
  57. package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
  58. package/dist/nile-dropdown/portal-manager.cjs.js +1 -1
  59. package/dist/nile-file-upload/index.cjs.js +1 -1
  60. package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
  61. package/dist/nile-file-upload/nile-file-upload.template.cjs.js +1 -1
  62. package/dist/nile-floating-panel/index.cjs.js +1 -1
  63. package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
  64. package/dist/nile-hero/nile-hero.cjs.js +1 -1
  65. package/dist/nile-hero/nile-hero.cjs.js.map +1 -1
  66. package/dist/nile-hero/nile-hero.css.cjs.js +1 -1
  67. package/dist/nile-hero/nile-hero.css.cjs.js.map +1 -1
  68. package/dist/nile-hero/nile-hero.css.esm.js +14 -14
  69. package/dist/nile-hero/nile-hero.esm.js +1 -1
  70. package/dist/nile-hero-header/nile-hero-header.cjs.js +1 -1
  71. package/dist/nile-hero-header/nile-hero-header.cjs.js.map +1 -1
  72. package/dist/nile-hero-header/nile-hero-header.css.cjs.js +1 -1
  73. package/dist/nile-hero-header/nile-hero-header.css.cjs.js.map +1 -1
  74. package/dist/nile-hero-header/nile-hero-header.css.esm.js +11 -11
  75. package/dist/nile-hero-header/nile-hero-header.esm.js +3 -3
  76. package/dist/nile-lite-tooltip/index.cjs.js +1 -1
  77. package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js +1 -1
  78. package/dist/nile-markdown-editor/index.cjs.js +1 -1
  79. package/dist/nile-markdown-editor/nile-markdown-editor.cjs.js +1 -1
  80. package/dist/nile-popover/index.cjs.js +1 -1
  81. package/dist/nile-popover/nile-popover.cjs.js +1 -1
  82. package/dist/nile-popover/portal-manager.cjs.js +1 -1
  83. package/dist/nile-popup/index.cjs.js +1 -1
  84. package/dist/nile-popup/nile-popup.cjs.js +1 -1
  85. package/dist/nile-rich-text-editor/index.cjs.js +1 -1
  86. package/dist/nile-rich-text-editor/index.esm.js +1 -1
  87. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
  88. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
  89. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
  90. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
  91. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +70 -0
  92. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
  93. package/dist/nile-rich-text-editor/nile-rte-image.cjs.js +3 -0
  94. package/dist/nile-rich-text-editor/nile-rte-image.cjs.js.map +1 -0
  95. package/dist/nile-rich-text-editor/nile-rte-image.esm.js +96 -0
  96. package/dist/nile-select/index.cjs.js +1 -1
  97. package/dist/nile-select/nile-select.cjs.js +1 -1
  98. package/dist/nile-select/portal-manager.cjs.js +1 -1
  99. package/dist/nile-side-bar-action/index.cjs.js +1 -1
  100. package/dist/nile-side-bar-action/nile-side-bar-action.cjs.js +1 -1
  101. package/dist/nile-side-bar-action/portal-manager.cjs.js +1 -1
  102. package/dist/nile-tooltip/index.cjs.js +1 -1
  103. package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
  104. package/dist/nile-virtual-select/index.cjs.js +1 -1
  105. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +1 -1
  106. package/dist/nile-virtual-select/portal-manager.cjs.js +1 -1
  107. package/dist/nile-virtual-select/renderer.cjs.js +1 -1
  108. package/dist/nile-wysiwyg-editor/emoji.cjs.js +2 -0
  109. package/dist/nile-wysiwyg-editor/emoji.cjs.js.map +1 -0
  110. package/dist/nile-wysiwyg-editor/emoji.esm.js +1 -0
  111. package/dist/nile-wysiwyg-editor/engine/commands.cjs.js +2 -0
  112. package/dist/nile-wysiwyg-editor/engine/commands.cjs.js.map +1 -0
  113. package/dist/nile-wysiwyg-editor/engine/commands.esm.js +1 -0
  114. package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js +2 -0
  115. package/dist/nile-wysiwyg-editor/engine/create-state.cjs.js.map +1 -0
  116. package/dist/nile-wysiwyg-editor/engine/create-state.esm.js +1 -0
  117. package/dist/nile-wysiwyg-editor/engine/export.cjs.js +2 -0
  118. package/dist/nile-wysiwyg-editor/engine/export.cjs.js.map +1 -0
  119. package/dist/nile-wysiwyg-editor/engine/export.esm.js +1 -0
  120. package/dist/nile-wysiwyg-editor/engine/index.cjs.js +2 -0
  121. package/dist/nile-wysiwyg-editor/engine/index.cjs.js.map +1 -0
  122. package/dist/nile-wysiwyg-editor/engine/index.esm.js +1 -0
  123. package/dist/nile-wysiwyg-editor/engine/inputrules.cjs.js +2 -0
  124. package/dist/nile-wysiwyg-editor/engine/inputrules.cjs.js.map +1 -0
  125. package/dist/nile-wysiwyg-editor/engine/inputrules.esm.js +1 -0
  126. package/dist/nile-wysiwyg-editor/engine/keymap.cjs.js +2 -0
  127. package/dist/nile-wysiwyg-editor/engine/keymap.cjs.js.map +1 -0
  128. package/dist/nile-wysiwyg-editor/engine/keymap.esm.js +1 -0
  129. package/dist/nile-wysiwyg-editor/engine/markdown-parse.cjs.js +2 -0
  130. package/dist/nile-wysiwyg-editor/engine/markdown-parse.cjs.js.map +1 -0
  131. package/dist/nile-wysiwyg-editor/engine/markdown-parse.esm.js +1 -0
  132. package/dist/nile-wysiwyg-editor/engine/markdown.cjs.js +2 -0
  133. package/dist/nile-wysiwyg-editor/engine/markdown.cjs.js.map +1 -0
  134. package/dist/nile-wysiwyg-editor/engine/markdown.esm.js +1 -0
  135. package/dist/nile-wysiwyg-editor/engine/office-paste.cjs.js +2 -0
  136. package/dist/nile-wysiwyg-editor/engine/office-paste.cjs.js.map +1 -0
  137. package/dist/nile-wysiwyg-editor/engine/office-paste.esm.js +1 -0
  138. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js +2 -0
  139. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.cjs.js.map +1 -0
  140. package/dist/nile-wysiwyg-editor/engine/plugins/code-highlight.esm.js +1 -0
  141. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js +2 -0
  142. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.cjs.js.map +1 -0
  143. package/dist/nile-wysiwyg-editor/engine/plugins/embed-view.esm.js +1 -0
  144. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js +2 -0
  145. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.cjs.js.map +1 -0
  146. package/dist/nile-wysiwyg-editor/engine/plugins/embeds.esm.js +1 -0
  147. package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.cjs.js +2 -0
  148. package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.cjs.js.map +1 -0
  149. package/dist/nile-wysiwyg-editor/engine/plugins/find-replace.esm.js +1 -0
  150. package/dist/nile-wysiwyg-editor/engine/plugins/format-painter.cjs.js +2 -0
  151. package/dist/nile-wysiwyg-editor/engine/plugins/format-painter.cjs.js.map +1 -0
  152. package/dist/nile-wysiwyg-editor/engine/plugins/format-painter.esm.js +1 -0
  153. package/dist/nile-wysiwyg-editor/engine/plugins/image-view.cjs.js +2 -0
  154. package/dist/nile-wysiwyg-editor/engine/plugins/image-view.cjs.js.map +1 -0
  155. package/dist/nile-wysiwyg-editor/engine/plugins/image-view.esm.js +1 -0
  156. package/dist/nile-wysiwyg-editor/engine/plugins/image.cjs.js +2 -0
  157. package/dist/nile-wysiwyg-editor/engine/plugins/image.cjs.js.map +1 -0
  158. package/dist/nile-wysiwyg-editor/engine/plugins/image.esm.js +1 -0
  159. package/dist/nile-wysiwyg-editor/engine/plugins/link.cjs.js +2 -0
  160. package/dist/nile-wysiwyg-editor/engine/plugins/link.cjs.js.map +1 -0
  161. package/dist/nile-wysiwyg-editor/engine/plugins/link.esm.js +1 -0
  162. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js +2 -0
  163. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.cjs.js.map +1 -0
  164. package/dist/nile-wysiwyg-editor/engine/plugins/math-view.esm.js +1 -0
  165. package/dist/nile-wysiwyg-editor/engine/plugins/max-length.cjs.js +2 -0
  166. package/dist/nile-wysiwyg-editor/engine/plugins/max-length.cjs.js.map +1 -0
  167. package/dist/nile-wysiwyg-editor/engine/plugins/max-length.esm.js +1 -0
  168. package/dist/nile-wysiwyg-editor/engine/plugins/paste.cjs.js +2 -0
  169. package/dist/nile-wysiwyg-editor/engine/plugins/paste.cjs.js.map +1 -0
  170. package/dist/nile-wysiwyg-editor/engine/plugins/paste.esm.js +1 -0
  171. package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.cjs.js +2 -0
  172. package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.cjs.js.map +1 -0
  173. package/dist/nile-wysiwyg-editor/engine/plugins/placeholder.esm.js +1 -0
  174. package/dist/nile-wysiwyg-editor/engine/plugins/single-line.cjs.js +2 -0
  175. package/dist/nile-wysiwyg-editor/engine/plugins/single-line.cjs.js.map +1 -0
  176. package/dist/nile-wysiwyg-editor/engine/plugins/single-line.esm.js +1 -0
  177. package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.cjs.js +2 -0
  178. package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.cjs.js.map +1 -0
  179. package/dist/nile-wysiwyg-editor/engine/plugins/suggestions.esm.js +1 -0
  180. package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js +2 -0
  181. package/dist/nile-wysiwyg-editor/engine/plugins/tables.cjs.js.map +1 -0
  182. package/dist/nile-wysiwyg-editor/engine/plugins/tables.esm.js +1 -0
  183. package/dist/nile-wysiwyg-editor/engine/plugins/task-list.cjs.js +2 -0
  184. package/dist/nile-wysiwyg-editor/engine/plugins/task-list.cjs.js.map +1 -0
  185. package/dist/nile-wysiwyg-editor/engine/plugins/task-list.esm.js +1 -0
  186. package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js +2 -0
  187. package/dist/nile-wysiwyg-editor/engine/sanitize.cjs.js.map +1 -0
  188. package/dist/nile-wysiwyg-editor/engine/sanitize.esm.js +1 -0
  189. package/dist/nile-wysiwyg-editor/engine/schema.cjs.js +2 -0
  190. package/dist/nile-wysiwyg-editor/engine/schema.cjs.js.map +1 -0
  191. package/dist/nile-wysiwyg-editor/engine/schema.esm.js +1 -0
  192. package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js +2 -0
  193. package/dist/nile-wysiwyg-editor/engine/selection-state.cjs.js.map +1 -0
  194. package/dist/nile-wysiwyg-editor/engine/selection-state.esm.js +1 -0
  195. package/dist/nile-wysiwyg-editor/engine/serializer.cjs.js +2 -0
  196. package/dist/nile-wysiwyg-editor/engine/serializer.cjs.js.map +1 -0
  197. package/dist/nile-wysiwyg-editor/engine/serializer.esm.js +1 -0
  198. package/dist/nile-wysiwyg-editor/index.cjs.js +2 -0
  199. package/dist/nile-wysiwyg-editor/index.cjs.js.map +1 -0
  200. package/dist/nile-wysiwyg-editor/index.esm.js +1 -0
  201. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +2 -0
  202. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js.map +1 -0
  203. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js +2 -0
  204. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.cjs.js.map +1 -0
  205. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.css.esm.js +780 -0
  206. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.esm.js +97 -0
  207. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js +2 -0
  208. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js.map +1 -0
  209. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.esm.js +1 -0
  210. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js +2 -0
  211. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js.map +1 -0
  212. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js +2 -0
  213. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.cjs.js.map +1 -0
  214. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.esm.js +244 -0
  215. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.esm.js +137 -0
  216. package/dist/nile-wysiwyg-editor/types.cjs.js +2 -0
  217. package/dist/nile-wysiwyg-editor/types.cjs.js.map +1 -0
  218. package/dist/nile-wysiwyg-editor/types.esm.js +1 -0
  219. package/dist/nile-wysiwyg-editor/ui/bookmark-panel.cjs.js +2 -0
  220. package/dist/nile-wysiwyg-editor/ui/bookmark-panel.cjs.js.map +1 -0
  221. package/dist/nile-wysiwyg-editor/ui/bookmark-panel.esm.js +97 -0
  222. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +2 -0
  223. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js.map +1 -0
  224. package/dist/nile-wysiwyg-editor/ui/bubble-menu.esm.js +67 -0
  225. package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js +2 -0
  226. package/dist/nile-wysiwyg-editor/ui/code-block-menu.cjs.js.map +1 -0
  227. package/dist/nile-wysiwyg-editor/ui/code-block-menu.esm.js +65 -0
  228. package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js +2 -0
  229. package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js.map +1 -0
  230. package/dist/nile-wysiwyg-editor/ui/embed-menu.esm.js +64 -0
  231. package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js +2 -0
  232. package/dist/nile-wysiwyg-editor/ui/embed-panel.cjs.js.map +1 -0
  233. package/dist/nile-wysiwyg-editor/ui/embed-panel.esm.js +68 -0
  234. package/dist/nile-wysiwyg-editor/ui/emoji-picker.cjs.js +2 -0
  235. package/dist/nile-wysiwyg-editor/ui/emoji-picker.cjs.js.map +1 -0
  236. package/dist/nile-wysiwyg-editor/ui/emoji-picker.esm.js +96 -0
  237. package/dist/nile-wysiwyg-editor/ui/find-replace.cjs.js +2 -0
  238. package/dist/nile-wysiwyg-editor/ui/find-replace.cjs.js.map +1 -0
  239. package/dist/nile-wysiwyg-editor/ui/find-replace.esm.js +112 -0
  240. package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js +2 -0
  241. package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js.map +1 -0
  242. package/dist/nile-wysiwyg-editor/ui/image-menu.esm.js +64 -0
  243. package/dist/nile-wysiwyg-editor/ui/image-panel.cjs.js +2 -0
  244. package/dist/nile-wysiwyg-editor/ui/image-panel.cjs.js.map +1 -0
  245. package/dist/nile-wysiwyg-editor/ui/image-panel.esm.js +171 -0
  246. package/dist/nile-wysiwyg-editor/ui/insert-menu.cjs.js +2 -0
  247. package/dist/nile-wysiwyg-editor/ui/insert-menu.cjs.js.map +1 -0
  248. package/dist/nile-wysiwyg-editor/ui/insert-menu.esm.js +90 -0
  249. package/dist/nile-wysiwyg-editor/ui/link-editor.cjs.js +2 -0
  250. package/dist/nile-wysiwyg-editor/ui/link-editor.cjs.js.map +1 -0
  251. package/dist/nile-wysiwyg-editor/ui/link-editor.esm.js +114 -0
  252. package/dist/nile-wysiwyg-editor/ui/markdown-panel.cjs.js +2 -0
  253. package/dist/nile-wysiwyg-editor/ui/markdown-panel.cjs.js.map +1 -0
  254. package/dist/nile-wysiwyg-editor/ui/markdown-panel.esm.js +80 -0
  255. package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js +2 -0
  256. package/dist/nile-wysiwyg-editor/ui/math-panel.cjs.js.map +1 -0
  257. package/dist/nile-wysiwyg-editor/ui/math-panel.esm.js +92 -0
  258. package/dist/nile-wysiwyg-editor/ui/shortcut-help.cjs.js +2 -0
  259. package/dist/nile-wysiwyg-editor/ui/shortcut-help.cjs.js.map +1 -0
  260. package/dist/nile-wysiwyg-editor/ui/shortcut-help.esm.js +147 -0
  261. package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js +2 -0
  262. package/dist/nile-wysiwyg-editor/ui/source-view.cjs.js.map +1 -0
  263. package/dist/nile-wysiwyg-editor/ui/source-view.esm.js +79 -0
  264. package/dist/nile-wysiwyg-editor/ui/special-chars.cjs.js +2 -0
  265. package/dist/nile-wysiwyg-editor/ui/special-chars.cjs.js.map +1 -0
  266. package/dist/nile-wysiwyg-editor/ui/special-chars.esm.js +96 -0
  267. package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js +2 -0
  268. package/dist/nile-wysiwyg-editor/ui/suggest-list.cjs.js.map +1 -0
  269. package/dist/nile-wysiwyg-editor/ui/suggest-list.esm.js +67 -0
  270. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js +2 -0
  271. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.cjs.js.map +1 -0
  272. package/dist/nile-wysiwyg-editor/ui/table-grid-picker.esm.js +100 -0
  273. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +2 -0
  274. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js.map +1 -0
  275. package/dist/nile-wysiwyg-editor/ui/table-menu.esm.js +58 -0
  276. package/dist/src/index.d.ts +24 -0
  277. package/dist/src/index.js +19 -0
  278. package/dist/src/index.js.map +1 -1
  279. package/dist/src/internal/glyph.d.ts +6 -0
  280. package/dist/src/internal/glyph.js +13 -0
  281. package/dist/src/internal/glyph.js.map +1 -0
  282. package/dist/src/nile-chip/nile-chip.css.js +8 -1
  283. package/dist/src/nile-chip/nile-chip.css.js.map +1 -1
  284. package/dist/src/nile-code-editor/nile-code-editor.js +3 -3
  285. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  286. package/dist/src/nile-hero/nile-hero.css.js +12 -12
  287. package/dist/src/nile-hero/nile-hero.css.js.map +1 -1
  288. package/dist/src/nile-hero/nile-hero.js +1 -1
  289. package/dist/src/nile-hero/nile-hero.js.map +1 -1
  290. package/dist/src/nile-hero-header/nile-hero-header.css.js +9 -9
  291. package/dist/src/nile-hero-header/nile-hero-header.css.js.map +1 -1
  292. package/dist/src/nile-hero-header/nile-hero-header.js +1 -1
  293. package/dist/src/nile-hero-header/nile-hero-header.js.map +1 -1
  294. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +70 -0
  295. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
  296. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +3 -0
  297. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +81 -3
  298. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
  299. package/dist/src/nile-rich-text-editor/nile-rte-image.d.ts +87 -0
  300. package/dist/src/nile-rich-text-editor/nile-rte-image.js +1073 -0
  301. package/dist/src/nile-rich-text-editor/nile-rte-image.js.map +1 -0
  302. package/dist/src/nile-wysiwyg-editor/emoji.d.ts +5 -0
  303. package/dist/src/nile-wysiwyg-editor/emoji.js +138 -0
  304. package/dist/src/nile-wysiwyg-editor/emoji.js.map +1 -0
  305. package/dist/src/nile-wysiwyg-editor/engine/commands.d.ts +69 -0
  306. package/dist/src/nile-wysiwyg-editor/engine/commands.js +863 -0
  307. package/dist/src/nile-wysiwyg-editor/engine/commands.js.map +1 -0
  308. package/dist/src/nile-wysiwyg-editor/engine/create-state.d.ts +35 -0
  309. package/dist/src/nile-wysiwyg-editor/engine/create-state.js +67 -0
  310. package/dist/src/nile-wysiwyg-editor/engine/create-state.js.map +1 -0
  311. package/dist/src/nile-wysiwyg-editor/engine/export.d.ts +38 -0
  312. package/dist/src/nile-wysiwyg-editor/engine/export.js +208 -0
  313. package/dist/src/nile-wysiwyg-editor/engine/export.js.map +1 -0
  314. package/dist/src/nile-wysiwyg-editor/engine/export.test.d.ts +1 -0
  315. package/dist/src/nile-wysiwyg-editor/engine/export.test.js +96 -0
  316. package/dist/src/nile-wysiwyg-editor/engine/export.test.js.map +1 -0
  317. package/dist/src/nile-wysiwyg-editor/engine/index.d.ts +37 -0
  318. package/dist/src/nile-wysiwyg-editor/engine/index.js +29 -0
  319. package/dist/src/nile-wysiwyg-editor/engine/index.js.map +1 -0
  320. package/dist/src/nile-wysiwyg-editor/engine/inputrules.d.ts +12 -0
  321. package/dist/src/nile-wysiwyg-editor/engine/inputrules.js +144 -0
  322. package/dist/src/nile-wysiwyg-editor/engine/inputrules.js.map +1 -0
  323. package/dist/src/nile-wysiwyg-editor/engine/keymap.d.ts +15 -0
  324. package/dist/src/nile-wysiwyg-editor/engine/keymap.js +94 -0
  325. package/dist/src/nile-wysiwyg-editor/engine/keymap.js.map +1 -0
  326. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.d.ts +22 -0
  327. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.js +287 -0
  328. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.js.map +1 -0
  329. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.test.d.ts +1 -0
  330. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.test.js +106 -0
  331. package/dist/src/nile-wysiwyg-editor/engine/markdown-parse.test.js.map +1 -0
  332. package/dist/src/nile-wysiwyg-editor/engine/markdown.d.ts +10 -0
  333. package/dist/src/nile-wysiwyg-editor/engine/markdown.js +162 -0
  334. package/dist/src/nile-wysiwyg-editor/engine/markdown.js.map +1 -0
  335. package/dist/src/nile-wysiwyg-editor/engine/office-paste.d.ts +13 -0
  336. package/dist/src/nile-wysiwyg-editor/engine/office-paste.js +182 -0
  337. package/dist/src/nile-wysiwyg-editor/engine/office-paste.js.map +1 -0
  338. package/dist/src/nile-wysiwyg-editor/engine/plugins/code-highlight.d.ts +10 -0
  339. package/dist/src/nile-wysiwyg-editor/engine/plugins/code-highlight.js +165 -0
  340. package/dist/src/nile-wysiwyg-editor/engine/plugins/code-highlight.js.map +1 -0
  341. package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.d.ts +17 -0
  342. package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js +69 -0
  343. package/dist/src/nile-wysiwyg-editor/engine/plugins/embed-view.js.map +1 -0
  344. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.d.ts +17 -0
  345. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js +96 -0
  346. package/dist/src/nile-wysiwyg-editor/engine/plugins/embeds.js.map +1 -0
  347. package/dist/src/nile-wysiwyg-editor/engine/plugins/find-replace.d.ts +26 -0
  348. package/dist/src/nile-wysiwyg-editor/engine/plugins/find-replace.js +123 -0
  349. package/dist/src/nile-wysiwyg-editor/engine/plugins/find-replace.js.map +1 -0
  350. package/dist/src/nile-wysiwyg-editor/engine/plugins/format-painter.d.ts +28 -0
  351. package/dist/src/nile-wysiwyg-editor/engine/plugins/format-painter.js +72 -0
  352. package/dist/src/nile-wysiwyg-editor/engine/plugins/format-painter.js.map +1 -0
  353. package/dist/src/nile-wysiwyg-editor/engine/plugins/image-view.d.ts +41 -0
  354. package/dist/src/nile-wysiwyg-editor/engine/plugins/image-view.js +176 -0
  355. package/dist/src/nile-wysiwyg-editor/engine/plugins/image-view.js.map +1 -0
  356. package/dist/src/nile-wysiwyg-editor/engine/plugins/image.d.ts +15 -0
  357. package/dist/src/nile-wysiwyg-editor/engine/plugins/image.js +64 -0
  358. package/dist/src/nile-wysiwyg-editor/engine/plugins/image.js.map +1 -0
  359. package/dist/src/nile-wysiwyg-editor/engine/plugins/link.d.ts +11 -0
  360. package/dist/src/nile-wysiwyg-editor/engine/plugins/link.js +42 -0
  361. package/dist/src/nile-wysiwyg-editor/engine/plugins/link.js.map +1 -0
  362. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.d.ts +18 -0
  363. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js +46 -0
  364. package/dist/src/nile-wysiwyg-editor/engine/plugins/math-view.js.map +1 -0
  365. package/dist/src/nile-wysiwyg-editor/engine/plugins/max-length.d.ts +7 -0
  366. package/dist/src/nile-wysiwyg-editor/engine/plugins/max-length.js +26 -0
  367. package/dist/src/nile-wysiwyg-editor/engine/plugins/max-length.js.map +1 -0
  368. package/dist/src/nile-wysiwyg-editor/engine/plugins/paste.d.ts +31 -0
  369. package/dist/src/nile-wysiwyg-editor/engine/plugins/paste.js +55 -0
  370. package/dist/src/nile-wysiwyg-editor/engine/plugins/paste.js.map +1 -0
  371. package/dist/src/nile-wysiwyg-editor/engine/plugins/placeholder.d.ts +7 -0
  372. package/dist/src/nile-wysiwyg-editor/engine/plugins/placeholder.js +25 -0
  373. package/dist/src/nile-wysiwyg-editor/engine/plugins/placeholder.js.map +1 -0
  374. package/dist/src/nile-wysiwyg-editor/engine/plugins/single-line.d.ts +10 -0
  375. package/dist/src/nile-wysiwyg-editor/engine/plugins/single-line.js +48 -0
  376. package/dist/src/nile-wysiwyg-editor/engine/plugins/single-line.js.map +1 -0
  377. package/dist/src/nile-wysiwyg-editor/engine/plugins/suggestions.d.ts +29 -0
  378. package/dist/src/nile-wysiwyg-editor/engine/plugins/suggestions.js +87 -0
  379. package/dist/src/nile-wysiwyg-editor/engine/plugins/suggestions.js.map +1 -0
  380. package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.d.ts +8 -0
  381. package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js +11 -0
  382. package/dist/src/nile-wysiwyg-editor/engine/plugins/tables.js.map +1 -0
  383. package/dist/src/nile-wysiwyg-editor/engine/plugins/task-list.d.ts +16 -0
  384. package/dist/src/nile-wysiwyg-editor/engine/plugins/task-list.js +49 -0
  385. package/dist/src/nile-wysiwyg-editor/engine/plugins/task-list.js.map +1 -0
  386. package/dist/src/nile-wysiwyg-editor/engine/pm.test.d.ts +1 -0
  387. package/dist/src/nile-wysiwyg-editor/engine/pm.test.js +883 -0
  388. package/dist/src/nile-wysiwyg-editor/engine/pm.test.js.map +1 -0
  389. package/dist/src/nile-wysiwyg-editor/engine/productivity.test.d.ts +1 -0
  390. package/dist/src/nile-wysiwyg-editor/engine/productivity.test.js +129 -0
  391. package/dist/src/nile-wysiwyg-editor/engine/productivity.test.js.map +1 -0
  392. package/dist/src/nile-wysiwyg-editor/engine/sanitize.d.ts +13 -0
  393. package/dist/src/nile-wysiwyg-editor/engine/sanitize.js +155 -0
  394. package/dist/src/nile-wysiwyg-editor/engine/sanitize.js.map +1 -0
  395. package/dist/src/nile-wysiwyg-editor/engine/schema.d.ts +20 -0
  396. package/dist/src/nile-wysiwyg-editor/engine/schema.js +823 -0
  397. package/dist/src/nile-wysiwyg-editor/engine/schema.js.map +1 -0
  398. package/dist/src/nile-wysiwyg-editor/engine/selection-state.d.ts +70 -0
  399. package/dist/src/nile-wysiwyg-editor/engine/selection-state.js +138 -0
  400. package/dist/src/nile-wysiwyg-editor/engine/selection-state.js.map +1 -0
  401. package/dist/src/nile-wysiwyg-editor/engine/serializer.d.ts +18 -0
  402. package/dist/src/nile-wysiwyg-editor/engine/serializer.js +63 -0
  403. package/dist/src/nile-wysiwyg-editor/engine/serializer.js.map +1 -0
  404. package/dist/src/nile-wysiwyg-editor/index.d.ts +3 -0
  405. package/dist/src/nile-wysiwyg-editor/index.js +3 -0
  406. package/dist/src/nile-wysiwyg-editor/index.js.map +1 -0
  407. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.d.ts +1 -0
  408. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js +782 -0
  409. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.js.map +1 -0
  410. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.d.ts +364 -0
  411. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js +2038 -0
  412. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.js.map +1 -0
  413. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.d.ts +1 -0
  414. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js +636 -0
  415. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.js.map +1 -0
  416. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.d.ts +1 -0
  417. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js +2 -0
  418. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.js.map +1 -0
  419. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.d.ts +6 -0
  420. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js +251 -0
  421. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.js.map +1 -0
  422. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.d.ts +41 -0
  423. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js +700 -0
  424. package/dist/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.js.map +1 -0
  425. package/dist/src/nile-wysiwyg-editor/types.d.ts +49 -0
  426. package/dist/src/nile-wysiwyg-editor/types.js +8 -0
  427. package/dist/src/nile-wysiwyg-editor/types.js.map +1 -0
  428. package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.d.ts +20 -0
  429. package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.js +159 -0
  430. package/dist/src/nile-wysiwyg-editor/ui/bookmark-panel.js.map +1 -0
  431. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.d.ts +21 -0
  432. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js +125 -0
  433. package/dist/src/nile-wysiwyg-editor/ui/bubble-menu.js.map +1 -0
  434. package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.d.ts +18 -0
  435. package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.js +107 -0
  436. package/dist/src/nile-wysiwyg-editor/ui/code-block-menu.js.map +1 -0
  437. package/dist/src/nile-wysiwyg-editor/ui/embed-menu.d.ts +19 -0
  438. package/dist/src/nile-wysiwyg-editor/ui/embed-menu.js +123 -0
  439. package/dist/src/nile-wysiwyg-editor/ui/embed-menu.js.map +1 -0
  440. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.d.ts +27 -0
  441. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js +146 -0
  442. package/dist/src/nile-wysiwyg-editor/ui/embed-panel.js.map +1 -0
  443. package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.d.ts +21 -0
  444. package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.js +154 -0
  445. package/dist/src/nile-wysiwyg-editor/ui/emoji-picker.js.map +1 -0
  446. package/dist/src/nile-wysiwyg-editor/ui/find-replace.d.ts +26 -0
  447. package/dist/src/nile-wysiwyg-editor/ui/find-replace.js +178 -0
  448. package/dist/src/nile-wysiwyg-editor/ui/find-replace.js.map +1 -0
  449. package/dist/src/nile-wysiwyg-editor/ui/image-menu.d.ts +18 -0
  450. package/dist/src/nile-wysiwyg-editor/ui/image-menu.js +129 -0
  451. package/dist/src/nile-wysiwyg-editor/ui/image-menu.js.map +1 -0
  452. package/dist/src/nile-wysiwyg-editor/ui/image-panel.d.ts +56 -0
  453. package/dist/src/nile-wysiwyg-editor/ui/image-panel.js +349 -0
  454. package/dist/src/nile-wysiwyg-editor/ui/image-panel.js.map +1 -0
  455. package/dist/src/nile-wysiwyg-editor/ui/insert-menu.d.ts +25 -0
  456. package/dist/src/nile-wysiwyg-editor/ui/insert-menu.js +142 -0
  457. package/dist/src/nile-wysiwyg-editor/ui/insert-menu.js.map +1 -0
  458. package/dist/src/nile-wysiwyg-editor/ui/link-editor.d.ts +30 -0
  459. package/dist/src/nile-wysiwyg-editor/ui/link-editor.js +189 -0
  460. package/dist/src/nile-wysiwyg-editor/ui/link-editor.js.map +1 -0
  461. package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.d.ts +24 -0
  462. package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.js +144 -0
  463. package/dist/src/nile-wysiwyg-editor/ui/markdown-panel.js.map +1 -0
  464. package/dist/src/nile-wysiwyg-editor/ui/math-panel.d.ts +31 -0
  465. package/dist/src/nile-wysiwyg-editor/ui/math-panel.js +172 -0
  466. package/dist/src/nile-wysiwyg-editor/ui/math-panel.js.map +1 -0
  467. package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.d.ts +30 -0
  468. package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.js +296 -0
  469. package/dist/src/nile-wysiwyg-editor/ui/shortcut-help.js.map +1 -0
  470. package/dist/src/nile-wysiwyg-editor/ui/source-view.d.ts +19 -0
  471. package/dist/src/nile-wysiwyg-editor/ui/source-view.js +120 -0
  472. package/dist/src/nile-wysiwyg-editor/ui/source-view.js.map +1 -0
  473. package/dist/src/nile-wysiwyg-editor/ui/special-chars.d.ts +20 -0
  474. package/dist/src/nile-wysiwyg-editor/ui/special-chars.js +199 -0
  475. package/dist/src/nile-wysiwyg-editor/ui/special-chars.js.map +1 -0
  476. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.d.ts +31 -0
  477. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js +133 -0
  478. package/dist/src/nile-wysiwyg-editor/ui/suggest-list.js.map +1 -0
  479. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.d.ts +23 -0
  480. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js +177 -0
  481. package/dist/src/nile-wysiwyg-editor/ui/table-grid-picker.js.map +1 -0
  482. package/dist/src/nile-wysiwyg-editor/ui/table-menu.d.ts +16 -0
  483. package/dist/src/nile-wysiwyg-editor/ui/table-menu.js +101 -0
  484. package/dist/src/nile-wysiwyg-editor/ui/table-menu.js.map +1 -0
  485. package/dist/src/version.js +1 -1
  486. package/dist/src/version.js.map +1 -1
  487. package/dist/tsconfig.tsbuildinfo +1 -1
  488. package/package.json +18 -2
  489. package/src/index.ts +57 -1
  490. package/src/internal/glyph.ts +13 -0
  491. package/src/nile-chip/nile-chip.css.ts +8 -1
  492. package/src/nile-code-editor/nile-code-editor.ts +3 -3
  493. package/src/nile-hero/nile-hero.css.ts +12 -12
  494. package/src/nile-hero/nile-hero.ts +1 -1
  495. package/src/nile-hero-header/nile-hero-header.css.ts +9 -9
  496. package/src/nile-hero-header/nile-hero-header.ts +1 -1
  497. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +70 -0
  498. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +89 -3
  499. package/src/nile-rich-text-editor/nile-rte-image.ts +1132 -0
  500. package/src/nile-wysiwyg-editor/emoji.ts +137 -0
  501. package/src/nile-wysiwyg-editor/engine/commands.ts +1035 -0
  502. package/src/nile-wysiwyg-editor/engine/create-state.ts +117 -0
  503. package/src/nile-wysiwyg-editor/engine/export.test.ts +113 -0
  504. package/src/nile-wysiwyg-editor/engine/export.ts +242 -0
  505. package/src/nile-wysiwyg-editor/engine/index.ts +69 -0
  506. package/src/nile-wysiwyg-editor/engine/inputrules.ts +169 -0
  507. package/src/nile-wysiwyg-editor/engine/keymap.ts +146 -0
  508. package/src/nile-wysiwyg-editor/engine/markdown-parse.test.ts +148 -0
  509. package/src/nile-wysiwyg-editor/engine/markdown-parse.ts +337 -0
  510. package/src/nile-wysiwyg-editor/engine/markdown.ts +165 -0
  511. package/src/nile-wysiwyg-editor/engine/office-paste.ts +199 -0
  512. package/src/nile-wysiwyg-editor/engine/plugins/code-highlight.ts +173 -0
  513. package/src/nile-wysiwyg-editor/engine/plugins/embed-view.ts +85 -0
  514. package/src/nile-wysiwyg-editor/engine/plugins/embeds.ts +99 -0
  515. package/src/nile-wysiwyg-editor/engine/plugins/find-replace.ts +155 -0
  516. package/src/nile-wysiwyg-editor/engine/plugins/format-painter.ts +80 -0
  517. package/src/nile-wysiwyg-editor/engine/plugins/image-view.ts +220 -0
  518. package/src/nile-wysiwyg-editor/engine/plugins/image.ts +80 -0
  519. package/src/nile-wysiwyg-editor/engine/plugins/link.ts +42 -0
  520. package/src/nile-wysiwyg-editor/engine/plugins/math-view.ts +56 -0
  521. package/src/nile-wysiwyg-editor/engine/plugins/max-length.ts +24 -0
  522. package/src/nile-wysiwyg-editor/engine/plugins/paste.ts +74 -0
  523. package/src/nile-wysiwyg-editor/engine/plugins/placeholder.ts +24 -0
  524. package/src/nile-wysiwyg-editor/engine/plugins/single-line.ts +47 -0
  525. package/src/nile-wysiwyg-editor/engine/plugins/suggestions.ts +110 -0
  526. package/src/nile-wysiwyg-editor/engine/plugins/tables.ts +12 -0
  527. package/src/nile-wysiwyg-editor/engine/plugins/task-list.ts +65 -0
  528. package/src/nile-wysiwyg-editor/engine/pm.test.ts +1088 -0
  529. package/src/nile-wysiwyg-editor/engine/productivity.test.ts +163 -0
  530. package/src/nile-wysiwyg-editor/engine/sanitize.ts +156 -0
  531. package/src/nile-wysiwyg-editor/engine/schema.ts +859 -0
  532. package/src/nile-wysiwyg-editor/engine/selection-state.ts +210 -0
  533. package/src/nile-wysiwyg-editor/engine/serializer.ts +78 -0
  534. package/src/nile-wysiwyg-editor/index.ts +3 -0
  535. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.css.ts +782 -0
  536. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.test.ts +750 -0
  537. package/src/nile-wysiwyg-editor/nile-wysiwyg-editor.ts +2155 -0
  538. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.ts +1 -0
  539. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.css.ts +251 -0
  540. package/src/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.ts +772 -0
  541. package/src/nile-wysiwyg-editor/types.ts +83 -0
  542. package/src/nile-wysiwyg-editor/ui/bookmark-panel.ts +155 -0
  543. package/src/nile-wysiwyg-editor/ui/bubble-menu.ts +135 -0
  544. package/src/nile-wysiwyg-editor/ui/code-block-menu.ts +105 -0
  545. package/src/nile-wysiwyg-editor/ui/embed-menu.ts +133 -0
  546. package/src/nile-wysiwyg-editor/ui/embed-panel.ts +143 -0
  547. package/src/nile-wysiwyg-editor/ui/emoji-picker.ts +152 -0
  548. package/src/nile-wysiwyg-editor/ui/find-replace.ts +174 -0
  549. package/src/nile-wysiwyg-editor/ui/image-menu.ts +140 -0
  550. package/src/nile-wysiwyg-editor/ui/image-panel.ts +337 -0
  551. package/src/nile-wysiwyg-editor/ui/insert-menu.ts +142 -0
  552. package/src/nile-wysiwyg-editor/ui/link-editor.ts +180 -0
  553. package/src/nile-wysiwyg-editor/ui/markdown-panel.ts +143 -0
  554. package/src/nile-wysiwyg-editor/ui/math-panel.ts +169 -0
  555. package/src/nile-wysiwyg-editor/ui/shortcut-help.ts +311 -0
  556. package/src/nile-wysiwyg-editor/ui/source-view.ts +119 -0
  557. package/src/nile-wysiwyg-editor/ui/special-chars.ts +209 -0
  558. package/src/nile-wysiwyg-editor/ui/suggest-list.ts +138 -0
  559. package/src/nile-wysiwyg-editor/ui/table-grid-picker.ts +173 -0
  560. package/src/nile-wysiwyg-editor/ui/table-menu.ts +109 -0
  561. package/vscode-html-custom-data.json +491 -1
  562. package/web-dev-server.config.mjs +6 -2
  563. package/dist/index-5fef1a0d.esm.js +0 -1
  564. package/dist/index-8f38fae3.cjs.js +0 -2
  565. package/dist/index-8f38fae3.cjs.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-df196058.cjs.js","sources":["../../../node_modules/prosemirror-keymap/dist/index.js","../../../node_modules/prosemirror-tables/dist/index.js"],"sourcesContent":["import { keyName, base } from 'w3c-keyname';\nimport { Plugin } from 'prosemirror-state';\n\nconst mac = typeof navigator != \"undefined\" && /Mac|iP(hone|[oa]d)/.test(navigator.platform);\nconst windows = typeof navigator != \"undefined\" && /Win/.test(navigator.platform);\nfunction normalizeKeyName(name) {\n let parts = name.split(/-(?!$)/), result = parts[parts.length - 1];\n if (result == \"Space\")\n result = \" \";\n let alt, ctrl, shift, meta;\n for (let i = 0; i < parts.length - 1; i++) {\n let mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod))\n meta = true;\n else if (/^a(lt)?$/i.test(mod))\n alt = true;\n else if (/^(c|ctrl|control)$/i.test(mod))\n ctrl = true;\n else if (/^s(hift)?$/i.test(mod))\n shift = true;\n else if (/^mod$/i.test(mod)) {\n if (mac)\n meta = true;\n else\n ctrl = true;\n }\n else\n throw new Error(\"Unrecognized modifier name: \" + mod);\n }\n if (alt)\n result = \"Alt-\" + result;\n if (ctrl)\n result = \"Ctrl-\" + result;\n if (meta)\n result = \"Meta-\" + result;\n if (shift)\n result = \"Shift-\" + result;\n return result;\n}\nfunction normalize(map) {\n let copy = Object.create(null);\n for (let prop in map)\n copy[normalizeKeyName(prop)] = map[prop];\n return copy;\n}\nfunction modifiers(name, event, shift = true) {\n if (event.altKey)\n name = \"Alt-\" + name;\n if (event.ctrlKey)\n name = \"Ctrl-\" + name;\n if (event.metaKey)\n name = \"Meta-\" + name;\n if (shift && event.shiftKey)\n name = \"Shift-\" + name;\n return name;\n}\n/**\nCreate a keymap plugin for the given set of bindings.\n\nBindings should map key names to [command](https://prosemirror.net/docs/ref/#commands)-style\nfunctions, which will be called with `(EditorState, dispatch,\nEditorView)` arguments, and should return true when they've handled\nthe key. Note that the view argument isn't part of the command\nprotocol, but can be used as an escape hatch if a binding needs to\ndirectly interact with the UI.\n\nKey names may be strings like `\"Shift-Ctrl-Enter\"`—a key\nidentifier prefixed with zero or more modifiers. Key identifiers\nare based on the strings that can appear in\n[`KeyEvent.key`](https:developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key).\nUse lowercase letters to refer to letter keys (or uppercase letters\nif you want shift to be held). You may use `\"Space\"` as an alias\nfor the `\" \"` name.\n\nModifiers can be given in any order. `Shift-` (or `s-`), `Alt-` (or\n`a-`), `Ctrl-` (or `c-` or `Control-`) and `Cmd-` (or `m-` or\n`Meta-`) are recognized. For characters that are created by holding\nshift, the `Shift-` prefix is implied, and should not be added\nexplicitly.\n\nYou can use `Mod-` as a shorthand for `Cmd-` on Mac and `Ctrl-` on\nother platforms.\n\nYou can add multiple keymap plugins to an editor. The order in\nwhich they appear determines their precedence (the ones early in\nthe array get to dispatch first).\n*/\nfunction keymap(bindings) {\n return new Plugin({ props: { handleKeyDown: keydownHandler(bindings) } });\n}\n/**\nGiven a set of bindings (using the same format as\n[`keymap`](https://prosemirror.net/docs/ref/#keymap.keymap)), return a [keydown\nhandler](https://prosemirror.net/docs/ref/#view.EditorProps.handleKeyDown) that handles them.\n*/\nfunction keydownHandler(bindings) {\n let map = normalize(bindings);\n return function (view, event) {\n let name = keyName(event), baseName, direct = map[modifiers(name, event)];\n if (direct && direct(view.state, view.dispatch, view))\n return true;\n // A character key\n if (name.length == 1 && name != \" \") {\n if (event.shiftKey) {\n // In case the name was already modified by shift, try looking\n // it up without its shift modifier\n let noShift = map[modifiers(name, event, false)];\n if (noShift && noShift(view.state, view.dispatch, view))\n return true;\n }\n if ((event.altKey || event.metaKey || event.ctrlKey) &&\n // Ctrl-Alt may be used for AltGr on Windows\n !(windows && event.ctrlKey && event.altKey) &&\n (baseName = base[event.keyCode]) && baseName != name) {\n // Try falling back to the keyCode when there's a modifier\n // active or the character produced isn't ASCII, and our table\n // produces a different name from the the keyCode. See #668,\n // #1060, #1529.\n let fromCode = map[modifiers(baseName, event)];\n if (fromCode && fromCode(view.state, view.dispatch, view))\n return true;\n }\n }\n return false;\n };\n}\n\nexport { keydownHandler, keymap };\n","import { NodeSelection, Plugin, PluginKey, Selection, SelectionRange, TextSelection } from \"prosemirror-state\";\nimport { Fragment, Slice } from \"prosemirror-model\";\nimport { Decoration, DecorationSet } from \"prosemirror-view\";\nimport { keydownHandler } from \"prosemirror-keymap\";\nimport { Transform } from \"prosemirror-transform\";\n\n//#region src/tablemap.ts\nlet readFromCache;\nlet addToCache;\nif (typeof WeakMap != \"undefined\") {\n\tlet cache = /* @__PURE__ */ new WeakMap();\n\treadFromCache = (key) => cache.get(key);\n\taddToCache = (key, value) => {\n\t\tcache.set(key, value);\n\t\treturn value;\n\t};\n} else {\n\tconst cache = [];\n\tconst cacheSize = 10;\n\tlet cachePos = 0;\n\treadFromCache = (key) => {\n\t\tfor (let i = 0; i < cache.length; i += 2) if (cache[i] == key) return cache[i + 1];\n\t};\n\taddToCache = (key, value) => {\n\t\tif (cachePos == cacheSize) cachePos = 0;\n\t\tcache[cachePos++] = key;\n\t\treturn cache[cachePos++] = value;\n\t};\n}\n/**\n* A table map describes the structure of a given table. To avoid\n* recomputing them all the time, they are cached per table node. To\n* be able to do that, positions saved in the map are relative to the\n* start of the table, rather than the start of the document.\n*\n* @public\n*/\nvar TableMap = class {\n\tconstructor(width, height, map, problems) {\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.map = map;\n\t\tthis.problems = problems;\n\t}\n\tfindCell(pos) {\n\t\tfor (let i = 0; i < this.map.length; i++) {\n\t\t\tconst curPos = this.map[i];\n\t\t\tif (curPos != pos) continue;\n\t\t\tconst left = i % this.width;\n\t\t\tconst top = i / this.width | 0;\n\t\t\tlet right = left + 1;\n\t\t\tlet bottom = top + 1;\n\t\t\tfor (let j = 1; right < this.width && this.map[i + j] == curPos; j++) right++;\n\t\t\tfor (let j = 1; bottom < this.height && this.map[i + this.width * j] == curPos; j++) bottom++;\n\t\t\treturn {\n\t\t\t\tleft,\n\t\t\t\ttop,\n\t\t\t\tright,\n\t\t\t\tbottom\n\t\t\t};\n\t\t}\n\t\tthrow new RangeError(`No cell with offset ${pos} found`);\n\t}\n\tcolCount(pos) {\n\t\tfor (let i = 0; i < this.map.length; i++) if (this.map[i] == pos) return i % this.width;\n\t\tthrow new RangeError(`No cell with offset ${pos} found`);\n\t}\n\tnextCell(pos, axis, dir) {\n\t\tconst { left, right, top, bottom } = this.findCell(pos);\n\t\tif (axis == \"horiz\") {\n\t\t\tif (dir < 0 ? left == 0 : right == this.width) return null;\n\t\t\treturn this.map[top * this.width + (dir < 0 ? left - 1 : right)];\n\t\t} else {\n\t\t\tif (dir < 0 ? top == 0 : bottom == this.height) return null;\n\t\t\treturn this.map[left + this.width * (dir < 0 ? top - 1 : bottom)];\n\t\t}\n\t}\n\trectBetween(a, b) {\n\t\tconst { left: leftA, right: rightA, top: topA, bottom: bottomA } = this.findCell(a);\n\t\tconst { left: leftB, right: rightB, top: topB, bottom: bottomB } = this.findCell(b);\n\t\treturn {\n\t\t\tleft: Math.min(leftA, leftB),\n\t\t\ttop: Math.min(topA, topB),\n\t\t\tright: Math.max(rightA, rightB),\n\t\t\tbottom: Math.max(bottomA, bottomB)\n\t\t};\n\t}\n\tcellsInRect(rect) {\n\t\tconst result = [];\n\t\tconst seen = {};\n\t\tfor (let row = rect.top; row < rect.bottom; row++) for (let col = rect.left; col < rect.right; col++) {\n\t\t\tconst index = row * this.width + col;\n\t\t\tconst pos = this.map[index];\n\t\t\tif (seen[pos]) continue;\n\t\t\tseen[pos] = true;\n\t\t\tif (col == rect.left && col && this.map[index - 1] == pos || row == rect.top && row && this.map[index - this.width] == pos) continue;\n\t\t\tresult.push(pos);\n\t\t}\n\t\treturn result;\n\t}\n\tpositionAt(row, col, table) {\n\t\tfor (let i = 0, rowStart = 0;; i++) {\n\t\t\tconst rowEnd = rowStart + table.child(i).nodeSize;\n\t\t\tif (i == row) {\n\t\t\t\tlet index = col + row * this.width;\n\t\t\t\tconst rowEndIndex = (row + 1) * this.width;\n\t\t\t\twhile (index < rowEndIndex && this.map[index] < rowStart) index++;\n\t\t\t\treturn index == rowEndIndex ? rowEnd - 1 : this.map[index];\n\t\t\t}\n\t\t\trowStart = rowEnd;\n\t\t}\n\t}\n\tstatic get(table) {\n\t\treturn readFromCache(table) || addToCache(table, computeMap(table));\n\t}\n};\nfunction computeMap(table) {\n\tif (table.type.spec.tableRole != \"table\") throw new RangeError(\"Not a table node: \" + table.type.name);\n\tconst width = findWidth(table), height = table.childCount;\n\tconst map = [];\n\tlet mapPos = 0;\n\tlet problems = null;\n\tconst colWidths = [];\n\tfor (let i = 0, e = width * height; i < e; i++) map[i] = 0;\n\tfor (let row = 0, pos = 0; row < height; row++) {\n\t\tconst rowNode = table.child(row);\n\t\tpos++;\n\t\tfor (let i = 0;; i++) {\n\t\t\twhile (mapPos < map.length && map[mapPos] != 0) mapPos++;\n\t\t\tif (i == rowNode.childCount) break;\n\t\t\tconst cellNode = rowNode.child(i);\n\t\t\tconst { colspan, rowspan, colwidth } = cellNode.attrs;\n\t\t\tfor (let h = 0; h < rowspan; h++) {\n\t\t\t\tif (h + row >= height) {\n\t\t\t\t\t(problems || (problems = [])).push({\n\t\t\t\t\t\ttype: \"overlong_rowspan\",\n\t\t\t\t\t\tpos,\n\t\t\t\t\t\tn: rowspan - h\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst start = mapPos + h * width;\n\t\t\t\tfor (let w = 0; w < colspan; w++) {\n\t\t\t\t\tif (map[start + w] == 0) map[start + w] = pos;\n\t\t\t\t\telse (problems || (problems = [])).push({\n\t\t\t\t\t\ttype: \"collision\",\n\t\t\t\t\t\trow,\n\t\t\t\t\t\tpos,\n\t\t\t\t\t\tn: colspan - w\n\t\t\t\t\t});\n\t\t\t\t\tconst colW = colwidth && colwidth[w];\n\t\t\t\t\tif (colW) {\n\t\t\t\t\t\tconst widthIndex = (start + w) % width * 2, prev = colWidths[widthIndex];\n\t\t\t\t\t\tif (prev == null || prev != colW && colWidths[widthIndex + 1] == 1) {\n\t\t\t\t\t\t\tcolWidths[widthIndex] = colW;\n\t\t\t\t\t\t\tcolWidths[widthIndex + 1] = 1;\n\t\t\t\t\t\t} else if (prev == colW) colWidths[widthIndex + 1]++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tmapPos += colspan;\n\t\t\tpos += cellNode.nodeSize;\n\t\t}\n\t\tconst expectedPos = (row + 1) * width;\n\t\tlet missing = 0;\n\t\twhile (mapPos < expectedPos) if (map[mapPos++] == 0) missing++;\n\t\tif (missing) (problems || (problems = [])).push({\n\t\t\ttype: \"missing\",\n\t\t\trow,\n\t\t\tn: missing\n\t\t});\n\t\tpos++;\n\t}\n\tif (width === 0 || height === 0) (problems || (problems = [])).push({ type: \"zero_sized\" });\n\tconst tableMap = new TableMap(width, height, map, problems);\n\tlet badWidths = false;\n\tfor (let i = 0; !badWidths && i < colWidths.length; i += 2) if (colWidths[i] != null && colWidths[i + 1] < height) badWidths = true;\n\tif (badWidths) findBadColWidths(tableMap, colWidths, table);\n\treturn tableMap;\n}\nfunction findWidth(table) {\n\tlet width = -1;\n\tlet hasRowSpan = false;\n\tfor (let row = 0; row < table.childCount; row++) {\n\t\tconst rowNode = table.child(row);\n\t\tlet rowWidth = 0;\n\t\tif (hasRowSpan) for (let j = 0; j < row; j++) {\n\t\t\tconst prevRow = table.child(j);\n\t\t\tfor (let i = 0; i < prevRow.childCount; i++) {\n\t\t\t\tconst cell = prevRow.child(i);\n\t\t\t\tif (j + cell.attrs.rowspan > row) rowWidth += cell.attrs.colspan;\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < rowNode.childCount; i++) {\n\t\t\tconst cell = rowNode.child(i);\n\t\t\trowWidth += cell.attrs.colspan;\n\t\t\tif (cell.attrs.rowspan > 1) hasRowSpan = true;\n\t\t}\n\t\tif (width == -1) width = rowWidth;\n\t\telse if (width != rowWidth) width = Math.max(width, rowWidth);\n\t}\n\treturn width;\n}\nfunction findBadColWidths(map, colWidths, table) {\n\tif (!map.problems) map.problems = [];\n\tconst seen = {};\n\tfor (let i = 0; i < map.map.length; i++) {\n\t\tconst pos = map.map[i];\n\t\tif (seen[pos]) continue;\n\t\tseen[pos] = true;\n\t\tconst node = table.nodeAt(pos);\n\t\tif (!node) throw new RangeError(`No cell with offset ${pos} found`);\n\t\tlet updated = null;\n\t\tconst attrs = node.attrs;\n\t\tfor (let j = 0; j < attrs.colspan; j++) {\n\t\t\tconst colWidth = colWidths[(i + j) % map.width * 2];\n\t\t\tif (colWidth != null && (!attrs.colwidth || attrs.colwidth[j] != colWidth)) (updated || (updated = freshColWidth(attrs)))[j] = colWidth;\n\t\t}\n\t\tif (updated) map.problems.unshift({\n\t\t\ttype: \"colwidth mismatch\",\n\t\t\tpos,\n\t\t\tcolwidth: updated\n\t\t});\n\t}\n}\nfunction freshColWidth(attrs) {\n\tif (attrs.colwidth) return attrs.colwidth.slice();\n\tconst result = [];\n\tfor (let i = 0; i < attrs.colspan; i++) result.push(0);\n\treturn result;\n}\n\n//#endregion\n//#region src/schema.ts\nfunction getCellAttrs(dom, extraAttrs) {\n\tif (typeof dom === \"string\") return {};\n\tconst widthAttr = dom.getAttribute(\"data-colwidth\");\n\tconst widths = widthAttr && /^\\d+(,\\d+)*$/.test(widthAttr) ? widthAttr.split(\",\").map((s) => Number(s)) : null;\n\tconst colspan = Number(dom.getAttribute(\"colspan\") || 1);\n\tconst result = {\n\t\tcolspan,\n\t\trowspan: Number(dom.getAttribute(\"rowspan\") || 1),\n\t\tcolwidth: widths && widths.length == colspan ? widths : null\n\t};\n\tfor (const prop in extraAttrs) {\n\t\tconst getter = extraAttrs[prop].getFromDOM;\n\t\tconst value = getter && getter(dom);\n\t\tif (value != null) result[prop] = value;\n\t}\n\treturn result;\n}\nfunction setCellAttrs(node, extraAttrs) {\n\tconst attrs = {};\n\tif (node.attrs.colspan != 1) attrs.colspan = node.attrs.colspan;\n\tif (node.attrs.rowspan != 1) attrs.rowspan = node.attrs.rowspan;\n\tif (node.attrs.colwidth) attrs[\"data-colwidth\"] = node.attrs.colwidth.join(\",\");\n\tfor (const prop in extraAttrs) {\n\t\tconst setter = extraAttrs[prop].setDOMAttr;\n\t\tif (setter) setter(node.attrs[prop], attrs);\n\t}\n\treturn attrs;\n}\nfunction validateColwidth(value) {\n\tif (value === null) return;\n\tif (!Array.isArray(value)) throw new TypeError(\"colwidth must be null or an array\");\n\tfor (const item of value) if (typeof item !== \"number\") throw new TypeError(\"colwidth must be null or an array of numbers\");\n}\n/**\n* This function creates a set of [node\n* specs](http://prosemirror.net/docs/ref/#model.SchemaSpec.nodes) for\n* `table`, `table_row`, and `table_cell` nodes types as used by this\n* module. The result can then be added to the set of nodes when\n* creating a schema.\n*\n* @public\n*/\nfunction tableNodes(options) {\n\tconst extraAttrs = options.cellAttributes || {};\n\tconst cellAttrs = {\n\t\tcolspan: {\n\t\t\tdefault: 1,\n\t\t\tvalidate: \"number\"\n\t\t},\n\t\trowspan: {\n\t\t\tdefault: 1,\n\t\t\tvalidate: \"number\"\n\t\t},\n\t\tcolwidth: {\n\t\t\tdefault: null,\n\t\t\tvalidate: validateColwidth\n\t\t}\n\t};\n\tfor (const prop in extraAttrs) cellAttrs[prop] = {\n\t\tdefault: extraAttrs[prop].default,\n\t\tvalidate: extraAttrs[prop].validate\n\t};\n\treturn {\n\t\ttable: {\n\t\t\tcontent: \"table_row+\",\n\t\t\ttableRole: \"table\",\n\t\t\tisolating: true,\n\t\t\tgroup: options.tableGroup,\n\t\t\tparseDOM: [{ tag: \"table\" }],\n\t\t\ttoDOM() {\n\t\t\t\treturn [\"table\", [\"tbody\", 0]];\n\t\t\t}\n\t\t},\n\t\ttable_row: {\n\t\t\tcontent: \"(table_cell | table_header)*\",\n\t\t\ttableRole: \"row\",\n\t\t\tparseDOM: [{ tag: \"tr\" }],\n\t\t\ttoDOM() {\n\t\t\t\treturn [\"tr\", 0];\n\t\t\t}\n\t\t},\n\t\ttable_cell: {\n\t\t\tcontent: options.cellContent,\n\t\t\tattrs: cellAttrs,\n\t\t\ttableRole: \"cell\",\n\t\t\tisolating: true,\n\t\t\tparseDOM: [{\n\t\t\t\ttag: \"td\",\n\t\t\t\tgetAttrs: (dom) => getCellAttrs(dom, extraAttrs)\n\t\t\t}],\n\t\t\ttoDOM(node) {\n\t\t\t\treturn [\n\t\t\t\t\t\"td\",\n\t\t\t\t\tsetCellAttrs(node, extraAttrs),\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t}\n\t\t},\n\t\ttable_header: {\n\t\t\tcontent: options.cellContent,\n\t\t\tattrs: cellAttrs,\n\t\t\ttableRole: \"header_cell\",\n\t\t\tisolating: true,\n\t\t\tparseDOM: [{\n\t\t\t\ttag: \"th\",\n\t\t\t\tgetAttrs: (dom) => getCellAttrs(dom, extraAttrs)\n\t\t\t}],\n\t\t\ttoDOM(node) {\n\t\t\t\treturn [\n\t\t\t\t\t\"th\",\n\t\t\t\t\tsetCellAttrs(node, extraAttrs),\n\t\t\t\t\t0\n\t\t\t\t];\n\t\t\t}\n\t\t}\n\t};\n}\n/**\n* @public\n*/\nfunction tableNodeTypes(schema) {\n\tlet result = schema.cached.tableNodeTypes;\n\tif (!result) {\n\t\tresult = schema.cached.tableNodeTypes = {};\n\t\tfor (const name in schema.nodes) {\n\t\t\tconst type = schema.nodes[name], role = type.spec.tableRole;\n\t\t\tif (role) result[role] = type;\n\t\t}\n\t}\n\treturn result;\n}\n\n//#endregion\n//#region src/util.ts\n/**\n* @public\n*/\nconst tableEditingKey = new PluginKey(\"selectingCells\");\n/**\n* @public\n*/\nfunction cellAround($pos) {\n\tfor (let d = $pos.depth - 1; d > 0; d--) if ($pos.node(d).type.spec.tableRole == \"row\") return $pos.node(0).resolve($pos.before(d + 1));\n\treturn null;\n}\nfunction cellWrapping($pos) {\n\tfor (let d = $pos.depth; d > 0; d--) {\n\t\tconst role = $pos.node(d).type.spec.tableRole;\n\t\tif (role === \"cell\" || role === \"header_cell\") return $pos.node(d);\n\t}\n\treturn null;\n}\n/**\n* @public\n*/\nfunction isInTable(state) {\n\tconst $head = state.selection.$head;\n\tfor (let d = $head.depth; d > 0; d--) if ($head.node(d).type.spec.tableRole == \"row\") return true;\n\treturn false;\n}\n/**\n* @internal\n*/\nfunction selectionCell(state) {\n\tconst sel = state.selection;\n\tif (\"$anchorCell\" in sel && sel.$anchorCell) return sel.$anchorCell.pos > sel.$headCell.pos ? sel.$anchorCell : sel.$headCell;\n\telse if (\"node\" in sel && sel.node && sel.node.type.spec.tableRole == \"cell\") return sel.$anchor;\n\tconst $cell = cellAround(sel.$head) || cellNear(sel.$head);\n\tif ($cell) return $cell;\n\tthrow new RangeError(`No cell found around position ${sel.head}`);\n}\n/**\n* @public\n*/\nfunction cellNear($pos) {\n\tfor (let after = $pos.nodeAfter, pos = $pos.pos; after; after = after.firstChild, pos++) {\n\t\tconst role = after.type.spec.tableRole;\n\t\tif (role == \"cell\" || role == \"header_cell\") return $pos.doc.resolve(pos);\n\t}\n\tfor (let before = $pos.nodeBefore, pos = $pos.pos; before; before = before.lastChild, pos--) {\n\t\tconst role = before.type.spec.tableRole;\n\t\tif (role == \"cell\" || role == \"header_cell\") return $pos.doc.resolve(pos - before.nodeSize);\n\t}\n}\n/**\n* @public\n*/\nfunction pointsAtCell($pos) {\n\treturn $pos.parent.type.spec.tableRole == \"row\" && !!$pos.nodeAfter;\n}\n/**\n* @public\n*/\nfunction moveCellForward($pos) {\n\treturn $pos.node(0).resolve($pos.pos + $pos.nodeAfter.nodeSize);\n}\n/**\n* @internal\n*/\nfunction inSameTable($cellA, $cellB) {\n\treturn $cellA.depth == $cellB.depth && $cellA.pos >= $cellB.start(-1) && $cellA.pos <= $cellB.end(-1);\n}\n/**\n* @public\n*/\nfunction findCell($pos) {\n\treturn TableMap.get($pos.node(-1)).findCell($pos.pos - $pos.start(-1));\n}\n/**\n* @public\n*/\nfunction colCount($pos) {\n\treturn TableMap.get($pos.node(-1)).colCount($pos.pos - $pos.start(-1));\n}\n/**\n* @public\n*/\nfunction nextCell($pos, axis, dir) {\n\tconst table = $pos.node(-1);\n\tconst map = TableMap.get(table);\n\tconst tableStart = $pos.start(-1);\n\tconst moved = map.nextCell($pos.pos - tableStart, axis, dir);\n\treturn moved == null ? null : $pos.node(0).resolve(tableStart + moved);\n}\n/**\n* @public\n*/\nfunction removeColSpan(attrs, pos, n = 1) {\n\tconst result = {\n\t\t...attrs,\n\t\tcolspan: attrs.colspan - n\n\t};\n\tif (result.colwidth) {\n\t\tresult.colwidth = result.colwidth.slice();\n\t\tresult.colwidth.splice(pos, n);\n\t\tif (!result.colwidth.some((w) => w > 0)) result.colwidth = null;\n\t}\n\treturn result;\n}\n/**\n* @public\n*/\nfunction addColSpan(attrs, pos, n = 1) {\n\tconst result = {\n\t\t...attrs,\n\t\tcolspan: attrs.colspan + n\n\t};\n\tif (result.colwidth) {\n\t\tresult.colwidth = result.colwidth.slice();\n\t\tfor (let i = 0; i < n; i++) result.colwidth.splice(pos, 0, 0);\n\t}\n\treturn result;\n}\n/**\n* @public\n*/\nfunction columnIsHeader(map, table, col) {\n\tconst headerCell = tableNodeTypes(table.type.schema).header_cell;\n\tfor (let row = 0; row < map.height; row++) if (table.nodeAt(map.map[col + row * map.width]).type != headerCell) return false;\n\treturn true;\n}\n\n//#endregion\n//#region src/cellselection.ts\n/**\n* A [`Selection`](http://prosemirror.net/docs/ref/#state.Selection)\n* subclass that represents a cell selection spanning part of a table.\n* With the plugin enabled, these will be created when the user\n* selects across cells, and will be drawn by giving selected cells a\n* `selectedCell` CSS class.\n*\n* @public\n*/\nvar CellSelection = class CellSelection extends Selection {\n\tconstructor($anchorCell, $headCell = $anchorCell) {\n\t\tconst table = $anchorCell.node(-1);\n\t\tconst map = TableMap.get(table);\n\t\tconst tableStart = $anchorCell.start(-1);\n\t\tconst rect = map.rectBetween($anchorCell.pos - tableStart, $headCell.pos - tableStart);\n\t\tconst doc = $anchorCell.node(0);\n\t\tconst cells = map.cellsInRect(rect).filter((p) => p != $headCell.pos - tableStart);\n\t\tcells.unshift($headCell.pos - tableStart);\n\t\tconst ranges = cells.map((pos) => {\n\t\t\tconst cell = table.nodeAt(pos);\n\t\t\tif (!cell) throw new RangeError(`No cell with offset ${pos} found`);\n\t\t\tconst from = tableStart + pos + 1;\n\t\t\treturn new SelectionRange(doc.resolve(from), doc.resolve(from + cell.content.size));\n\t\t});\n\t\tsuper(ranges[0].$from, ranges[0].$to, ranges);\n\t\tthis.$anchorCell = $anchorCell;\n\t\tthis.$headCell = $headCell;\n\t}\n\tmap(doc, mapping) {\n\t\tconst $anchorCell = doc.resolve(mapping.map(this.$anchorCell.pos));\n\t\tconst $headCell = doc.resolve(mapping.map(this.$headCell.pos));\n\t\tif (pointsAtCell($anchorCell) && pointsAtCell($headCell) && inSameTable($anchorCell, $headCell)) {\n\t\t\tconst tableChanged = this.$anchorCell.node(-1) != $anchorCell.node(-1);\n\t\t\tif (tableChanged && this.isRowSelection()) return CellSelection.rowSelection($anchorCell, $headCell);\n\t\t\telse if (tableChanged && this.isColSelection()) return CellSelection.colSelection($anchorCell, $headCell);\n\t\t\telse return new CellSelection($anchorCell, $headCell);\n\t\t}\n\t\treturn TextSelection.between($anchorCell, $headCell);\n\t}\n\tcontent() {\n\t\tconst table = this.$anchorCell.node(-1);\n\t\tconst map = TableMap.get(table);\n\t\tconst tableStart = this.$anchorCell.start(-1);\n\t\tconst rect = map.rectBetween(this.$anchorCell.pos - tableStart, this.$headCell.pos - tableStart);\n\t\tconst seen = {};\n\t\tconst rows = [];\n\t\tfor (let row = rect.top; row < rect.bottom; row++) {\n\t\t\tconst rowContent = [];\n\t\t\tfor (let index = row * map.width + rect.left, col = rect.left; col < rect.right; col++, index++) {\n\t\t\t\tconst pos = map.map[index];\n\t\t\t\tif (seen[pos]) continue;\n\t\t\t\tseen[pos] = true;\n\t\t\t\tconst cellRect = map.findCell(pos);\n\t\t\t\tlet cell = table.nodeAt(pos);\n\t\t\t\tif (!cell) throw new RangeError(`No cell with offset ${pos} found`);\n\t\t\t\tconst extraLeft = rect.left - cellRect.left;\n\t\t\t\tconst extraRight = cellRect.right - rect.right;\n\t\t\t\tif (extraLeft > 0 || extraRight > 0) {\n\t\t\t\t\tlet attrs = cell.attrs;\n\t\t\t\t\tif (extraLeft > 0) attrs = removeColSpan(attrs, 0, extraLeft);\n\t\t\t\t\tif (extraRight > 0) attrs = removeColSpan(attrs, attrs.colspan - extraRight, extraRight);\n\t\t\t\t\tif (cellRect.left < rect.left) {\n\t\t\t\t\t\tcell = cell.type.createAndFill(attrs);\n\t\t\t\t\t\tif (!cell) throw new RangeError(`Could not create cell with attrs ${JSON.stringify(attrs)}`);\n\t\t\t\t\t} else cell = cell.type.create(attrs, cell.content);\n\t\t\t\t}\n\t\t\t\tif (cellRect.top < rect.top || cellRect.bottom > rect.bottom) {\n\t\t\t\t\tconst attrs = {\n\t\t\t\t\t\t...cell.attrs,\n\t\t\t\t\t\trowspan: Math.min(cellRect.bottom, rect.bottom) - Math.max(cellRect.top, rect.top)\n\t\t\t\t\t};\n\t\t\t\t\tif (cellRect.top < rect.top) cell = cell.type.createAndFill(attrs);\n\t\t\t\t\telse cell = cell.type.create(attrs, cell.content);\n\t\t\t\t}\n\t\t\t\trowContent.push(cell);\n\t\t\t}\n\t\t\trows.push(table.child(row).copy(Fragment.from(rowContent)));\n\t\t}\n\t\tconst fragment = this.isColSelection() && this.isRowSelection() ? table : rows;\n\t\treturn new Slice(Fragment.from(fragment), 1, 1);\n\t}\n\treplace(tr, content = Slice.empty) {\n\t\tconst mapFrom = tr.steps.length, ranges = this.ranges;\n\t\tfor (let i = 0; i < ranges.length; i++) {\n\t\t\tconst { $from, $to } = ranges[i], mapping = tr.mapping.slice(mapFrom);\n\t\t\ttr.replace(mapping.map($from.pos), mapping.map($to.pos), i ? Slice.empty : content);\n\t\t}\n\t\tconst sel = Selection.findFrom(tr.doc.resolve(tr.mapping.slice(mapFrom).map(this.to)), -1);\n\t\tif (sel) tr.setSelection(sel);\n\t}\n\treplaceWith(tr, node) {\n\t\tthis.replace(tr, new Slice(Fragment.from(node), 0, 0));\n\t}\n\tforEachCell(f) {\n\t\tconst table = this.$anchorCell.node(-1);\n\t\tconst map = TableMap.get(table);\n\t\tconst tableStart = this.$anchorCell.start(-1);\n\t\tconst cells = map.cellsInRect(map.rectBetween(this.$anchorCell.pos - tableStart, this.$headCell.pos - tableStart));\n\t\tfor (let i = 0; i < cells.length; i++) f(table.nodeAt(cells[i]), tableStart + cells[i]);\n\t}\n\tisColSelection() {\n\t\tconst anchorTop = this.$anchorCell.index(-1);\n\t\tconst headTop = this.$headCell.index(-1);\n\t\tif (Math.min(anchorTop, headTop) > 0) return false;\n\t\tconst anchorBottom = anchorTop + this.$anchorCell.nodeAfter.attrs.rowspan;\n\t\tconst headBottom = headTop + this.$headCell.nodeAfter.attrs.rowspan;\n\t\treturn Math.max(anchorBottom, headBottom) == this.$headCell.node(-1).childCount;\n\t}\n\tstatic colSelection($anchorCell, $headCell = $anchorCell) {\n\t\tconst table = $anchorCell.node(-1);\n\t\tconst map = TableMap.get(table);\n\t\tconst tableStart = $anchorCell.start(-1);\n\t\tconst anchorRect = map.findCell($anchorCell.pos - tableStart);\n\t\tconst headRect = map.findCell($headCell.pos - tableStart);\n\t\tconst doc = $anchorCell.node(0);\n\t\tif (anchorRect.top <= headRect.top) {\n\t\t\tif (anchorRect.top > 0) $anchorCell = doc.resolve(tableStart + map.map[anchorRect.left]);\n\t\t\tif (headRect.bottom < map.height) $headCell = doc.resolve(tableStart + map.map[map.width * (map.height - 1) + headRect.right - 1]);\n\t\t} else {\n\t\t\tif (headRect.top > 0) $headCell = doc.resolve(tableStart + map.map[headRect.left]);\n\t\t\tif (anchorRect.bottom < map.height) $anchorCell = doc.resolve(tableStart + map.map[map.width * (map.height - 1) + anchorRect.right - 1]);\n\t\t}\n\t\treturn new CellSelection($anchorCell, $headCell);\n\t}\n\tisRowSelection() {\n\t\tconst table = this.$anchorCell.node(-1);\n\t\tconst map = TableMap.get(table);\n\t\tconst tableStart = this.$anchorCell.start(-1);\n\t\tconst anchorLeft = map.colCount(this.$anchorCell.pos - tableStart);\n\t\tconst headLeft = map.colCount(this.$headCell.pos - tableStart);\n\t\tif (Math.min(anchorLeft, headLeft) > 0) return false;\n\t\tconst anchorRight = anchorLeft + this.$anchorCell.nodeAfter.attrs.colspan;\n\t\tconst headRight = headLeft + this.$headCell.nodeAfter.attrs.colspan;\n\t\treturn Math.max(anchorRight, headRight) == map.width;\n\t}\n\teq(other) {\n\t\treturn other instanceof CellSelection && other.$anchorCell.pos == this.$anchorCell.pos && other.$headCell.pos == this.$headCell.pos;\n\t}\n\tstatic rowSelection($anchorCell, $headCell = $anchorCell) {\n\t\tconst table = $anchorCell.node(-1);\n\t\tconst map = TableMap.get(table);\n\t\tconst tableStart = $anchorCell.start(-1);\n\t\tconst anchorRect = map.findCell($anchorCell.pos - tableStart);\n\t\tconst headRect = map.findCell($headCell.pos - tableStart);\n\t\tconst doc = $anchorCell.node(0);\n\t\tif (anchorRect.left <= headRect.left) {\n\t\t\tif (anchorRect.left > 0) $anchorCell = doc.resolve(tableStart + map.map[anchorRect.top * map.width]);\n\t\t\tif (headRect.right < map.width) $headCell = doc.resolve(tableStart + map.map[map.width * (headRect.top + 1) - 1]);\n\t\t} else {\n\t\t\tif (headRect.left > 0) $headCell = doc.resolve(tableStart + map.map[headRect.top * map.width]);\n\t\t\tif (anchorRect.right < map.width) $anchorCell = doc.resolve(tableStart + map.map[map.width * (anchorRect.top + 1) - 1]);\n\t\t}\n\t\treturn new CellSelection($anchorCell, $headCell);\n\t}\n\ttoJSON() {\n\t\treturn {\n\t\t\ttype: \"cell\",\n\t\t\tanchor: this.$anchorCell.pos,\n\t\t\thead: this.$headCell.pos\n\t\t};\n\t}\n\tstatic fromJSON(doc, json) {\n\t\treturn new CellSelection(doc.resolve(json.anchor), doc.resolve(json.head));\n\t}\n\tstatic create(doc, anchorCell, headCell = anchorCell) {\n\t\treturn new CellSelection(doc.resolve(anchorCell), doc.resolve(headCell));\n\t}\n\tgetBookmark() {\n\t\treturn new CellBookmark(this.$anchorCell.pos, this.$headCell.pos);\n\t}\n};\nCellSelection.prototype.visible = false;\nSelection.jsonID(\"cell\", CellSelection);\n/**\n* @public\n*/\nvar CellBookmark = class CellBookmark {\n\tconstructor(anchor, head) {\n\t\tthis.anchor = anchor;\n\t\tthis.head = head;\n\t}\n\tmap(mapping) {\n\t\treturn new CellBookmark(mapping.map(this.anchor), mapping.map(this.head));\n\t}\n\tresolve(doc) {\n\t\tconst $anchorCell = doc.resolve(this.anchor), $headCell = doc.resolve(this.head);\n\t\tif ($anchorCell.parent.type.spec.tableRole == \"row\" && $headCell.parent.type.spec.tableRole == \"row\" && $anchorCell.index() < $anchorCell.parent.childCount && $headCell.index() < $headCell.parent.childCount && inSameTable($anchorCell, $headCell)) return new CellSelection($anchorCell, $headCell);\n\t\telse return Selection.near($headCell, 1);\n\t}\n};\nfunction drawCellSelection(state) {\n\tif (!(state.selection instanceof CellSelection)) return null;\n\tconst cells = [];\n\tstate.selection.forEachCell((node, pos) => {\n\t\tcells.push(Decoration.node(pos, pos + node.nodeSize, { class: \"selectedCell\" }));\n\t});\n\treturn DecorationSet.create(state.doc, cells);\n}\nfunction isCellBoundarySelection({ $from, $to }) {\n\tif ($from.pos == $to.pos || $from.pos < $to.pos - 6) return false;\n\tlet afterFrom = $from.pos;\n\tlet beforeTo = $to.pos;\n\tlet depth = $from.depth;\n\tfor (; depth >= 0; depth--, afterFrom++) if ($from.after(depth + 1) < $from.end(depth)) break;\n\tfor (let d = $to.depth; d >= 0; d--, beforeTo--) if ($to.before(d + 1) > $to.start(d)) break;\n\treturn afterFrom == beforeTo && /row|table/.test($from.node(depth).type.spec.tableRole);\n}\nfunction isTextSelectionAcrossCells({ $from, $to }) {\n\tlet fromCellBoundaryNode;\n\tlet toCellBoundaryNode;\n\tfor (let i = $from.depth; i > 0; i--) {\n\t\tconst node = $from.node(i);\n\t\tif (node.type.spec.tableRole === \"cell\" || node.type.spec.tableRole === \"header_cell\") {\n\t\t\tfromCellBoundaryNode = node;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor (let i = $to.depth; i > 0; i--) {\n\t\tconst node = $to.node(i);\n\t\tif (node.type.spec.tableRole === \"cell\" || node.type.spec.tableRole === \"header_cell\") {\n\t\t\ttoCellBoundaryNode = node;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn fromCellBoundaryNode !== toCellBoundaryNode && $to.parentOffset === 0;\n}\nfunction normalizeSelection(state, tr, allowTableNodeSelection) {\n\tconst sel = (tr || state).selection;\n\tconst doc = (tr || state).doc;\n\tlet normalize;\n\tlet role;\n\tif (sel instanceof NodeSelection && (role = sel.node.type.spec.tableRole)) {\n\t\tif (role == \"cell\" || role == \"header_cell\") normalize = CellSelection.create(doc, sel.from);\n\t\telse if (role == \"row\") {\n\t\t\tconst $cell = doc.resolve(sel.from + 1);\n\t\t\tnormalize = CellSelection.rowSelection($cell, $cell);\n\t\t} else if (!allowTableNodeSelection) {\n\t\t\tconst map = TableMap.get(sel.node);\n\t\t\tconst start = sel.from + 1;\n\t\t\tconst lastCell = start + map.map[map.width * map.height - 1];\n\t\t\tnormalize = CellSelection.create(doc, start + 1, lastCell);\n\t\t}\n\t} else if (sel instanceof TextSelection && isCellBoundarySelection(sel)) normalize = TextSelection.create(doc, sel.from);\n\telse if (sel instanceof TextSelection && isTextSelectionAcrossCells(sel)) normalize = TextSelection.create(doc, sel.$from.start(), sel.$from.end());\n\tif (normalize) (tr || (tr = state.tr)).setSelection(normalize);\n\treturn tr;\n}\n\n//#endregion\n//#region src/fixtables.ts\n/**\n* @public\n*/\nconst fixTablesKey = new PluginKey(\"fix-tables\");\n/**\n* Helper for iterating through the nodes in a document that changed\n* compared to the given previous document. Useful for avoiding\n* duplicate work on each transaction.\n*\n* @public\n*/\nfunction changedDescendants(old, cur, offset, f) {\n\tconst oldSize = old.childCount, curSize = cur.childCount;\n\touter: for (let i = 0, j = 0; i < curSize; i++) {\n\t\tconst child = cur.child(i);\n\t\tfor (let scan = j, e = Math.min(oldSize, i + 3); scan < e; scan++) if (old.child(scan) == child) {\n\t\t\tj = scan + 1;\n\t\t\toffset += child.nodeSize;\n\t\t\tcontinue outer;\n\t\t}\n\t\tf(child, offset);\n\t\tif (j < oldSize && old.child(j).sameMarkup(child)) changedDescendants(old.child(j), child, offset + 1, f);\n\t\telse child.nodesBetween(0, child.content.size, f, offset + 1);\n\t\toffset += child.nodeSize;\n\t}\n}\n/**\n* Inspect all tables in the given state's document and return a\n* transaction that fixes them, if necessary. If `oldState` was\n* provided, that is assumed to hold a previous, known-good state,\n* which will be used to avoid re-scanning unchanged parts of the\n* document.\n*\n* @public\n*/\nfunction fixTables(state, oldState) {\n\tlet tr;\n\tconst check = (node, pos) => {\n\t\tif (node.type.spec.tableRole == \"table\") tr = fixTable(state, node, pos, tr);\n\t};\n\tif (!oldState) state.doc.descendants(check);\n\telse if (oldState.doc != state.doc) changedDescendants(oldState.doc, state.doc, 0, check);\n\treturn tr;\n}\nfunction fixTable(state, table, tablePos, tr) {\n\tconst map = TableMap.get(table);\n\tif (!map.problems) return tr;\n\tif (!tr) tr = state.tr;\n\tconst mustAdd = [];\n\tfor (let i = 0; i < map.height; i++) mustAdd.push(0);\n\tfor (let i = 0; i < map.problems.length; i++) {\n\t\tconst prob = map.problems[i];\n\t\tif (prob.type == \"collision\") {\n\t\t\tconst cell = table.nodeAt(prob.pos);\n\t\t\tif (!cell) continue;\n\t\t\tconst attrs = cell.attrs;\n\t\t\tfor (let j = 0; j < attrs.rowspan; j++) mustAdd[prob.row + j] += prob.n;\n\t\t\ttr.setNodeMarkup(tr.mapping.map(tablePos + 1 + prob.pos), null, removeColSpan(attrs, attrs.colspan - prob.n, prob.n));\n\t\t} else if (prob.type == \"missing\") mustAdd[prob.row] += prob.n;\n\t\telse if (prob.type == \"overlong_rowspan\") {\n\t\t\tconst cell = table.nodeAt(prob.pos);\n\t\t\tif (!cell) continue;\n\t\t\ttr.setNodeMarkup(tr.mapping.map(tablePos + 1 + prob.pos), null, {\n\t\t\t\t...cell.attrs,\n\t\t\t\trowspan: cell.attrs.rowspan - prob.n\n\t\t\t});\n\t\t} else if (prob.type == \"colwidth mismatch\") {\n\t\t\tconst cell = table.nodeAt(prob.pos);\n\t\t\tif (!cell) continue;\n\t\t\ttr.setNodeMarkup(tr.mapping.map(tablePos + 1 + prob.pos), null, {\n\t\t\t\t...cell.attrs,\n\t\t\t\tcolwidth: prob.colwidth\n\t\t\t});\n\t\t} else if (prob.type == \"zero_sized\") {\n\t\t\tconst pos = tr.mapping.map(tablePos);\n\t\t\ttr.delete(pos, pos + table.nodeSize);\n\t\t}\n\t}\n\tlet first, last;\n\tfor (let i = 0; i < mustAdd.length; i++) if (mustAdd[i]) {\n\t\tif (first == null) first = i;\n\t\tlast = i;\n\t}\n\tfor (let i = 0, pos = tablePos + 1; i < map.height; i++) {\n\t\tconst row = table.child(i);\n\t\tconst end = pos + row.nodeSize;\n\t\tconst add = mustAdd[i];\n\t\tif (add > 0) {\n\t\t\tlet role = \"cell\";\n\t\t\tif (row.firstChild) role = row.firstChild.type.spec.tableRole;\n\t\t\tconst nodes = [];\n\t\t\tfor (let j = 0; j < add; j++) {\n\t\t\t\tconst node = tableNodeTypes(state.schema)[role].createAndFill();\n\t\t\t\tif (node) nodes.push(node);\n\t\t\t}\n\t\t\tconst side = (i == 0 || first == i - 1) && last == i ? pos + 1 : end - 1;\n\t\t\ttr.insert(tr.mapping.map(side), nodes);\n\t\t}\n\t\tpos = end;\n\t}\n\treturn tr.setMeta(fixTablesKey, { fixTables: true });\n}\n\n//#endregion\n//#region src/utils/convert.ts\n/**\n* This function will transform the table node into a matrix of rows and columns\n* respecting merged cells, for example this table:\n*\n* ```\n* ┌──────┬──────┬─────────────┐\n* │ A1 │ B1 │ C1 │\n* ├──────┼──────┴──────┬──────┤\n* │ A2 │ B2 │ │\n* ├──────┼─────────────┤ D1 │\n* │ A3 │ B3 │ C3 │ │\n* └──────┴──────┴──────┴──────┘\n* ```\n*\n* will be converted to the below:\n*\n* ```javascript\n* [\n* [A1, B1, C1, null],\n* [A2, B2, null, D1],\n* [A3, B3, C3, null],\n* ]\n* ```\n* @internal\n*/\nfunction convertTableNodeToArrayOfRows(tableNode) {\n\tconst map = TableMap.get(tableNode);\n\tconst rows = [];\n\tconst rowCount = map.height;\n\tconst colCount$1 = map.width;\n\tfor (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {\n\t\tconst row = [];\n\t\tfor (let colIndex = 0; colIndex < colCount$1; colIndex++) {\n\t\t\tconst cellIndex = rowIndex * colCount$1 + colIndex;\n\t\t\tconst cellPos = map.map[cellIndex];\n\t\t\tif (rowIndex > 0) {\n\t\t\t\tconst topCellIndex = cellIndex - colCount$1;\n\t\t\t\tif (cellPos === map.map[topCellIndex]) {\n\t\t\t\t\trow.push(null);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (colIndex > 0) {\n\t\t\t\tconst leftCellIndex = cellIndex - 1;\n\t\t\t\tif (cellPos === map.map[leftCellIndex]) {\n\t\t\t\t\trow.push(null);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\trow.push(tableNode.nodeAt(cellPos));\n\t\t}\n\t\trows.push(row);\n\t}\n\treturn rows;\n}\n/**\n* Convert an array of rows to a table node.\n*\n* @internal\n*/\nfunction convertArrayOfRowsToTableNode(tableNode, arrayOfNodes) {\n\tconst newRows = [];\n\tconst map = TableMap.get(tableNode);\n\tconst rowCount = map.height;\n\tconst colCount$1 = map.width;\n\tfor (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {\n\t\tconst oldRow = tableNode.child(rowIndex);\n\t\tconst newCells = [];\n\t\tfor (let colIndex = 0; colIndex < colCount$1; colIndex++) {\n\t\t\tconst cell = arrayOfNodes[rowIndex][colIndex];\n\t\t\tif (!cell) continue;\n\t\t\tconst cellPos = map.map[rowIndex * map.width + colIndex];\n\t\t\tconst oldCell = tableNode.nodeAt(cellPos);\n\t\t\tif (!oldCell) continue;\n\t\t\tconst newCell = oldCell.type.createChecked(cell.attrs, cell.content, cell.marks);\n\t\t\tnewCells.push(newCell);\n\t\t}\n\t\tconst newRow = oldRow.type.createChecked(oldRow.attrs, newCells, oldRow.marks);\n\t\tnewRows.push(newRow);\n\t}\n\treturn tableNode.type.createChecked(tableNode.attrs, newRows, tableNode.marks);\n}\n\n//#endregion\n//#region src/utils/move-row-in-array-of-rows.ts\n/**\n* Move a row in an array of rows.\n*\n* @internal\n*/\nfunction moveRowInArrayOfRows(rows, indexesOrigin, indexesTarget, directionOverride) {\n\tconst direction = indexesOrigin[0] > indexesTarget[0] ? -1 : 1;\n\tconst rowsExtracted = rows.splice(indexesOrigin[0], indexesOrigin.length);\n\tconst positionOffset = rowsExtracted.length % 2 === 0 ? 1 : 0;\n\tlet target;\n\tif (directionOverride === -1 && direction === 1) target = indexesTarget[0] - 1;\n\telse if (directionOverride === 1 && direction === -1) target = indexesTarget[indexesTarget.length - 1] - positionOffset + 1;\n\telse target = direction === -1 ? indexesTarget[0] : indexesTarget[indexesTarget.length - 1] - positionOffset;\n\trows.splice(target, 0, ...rowsExtracted);\n\treturn rows;\n}\n\n//#endregion\n//#region src/utils/query.ts\n/**\n* Checks if the given object is a `CellSelection` instance.\n*\n* @internal\n*/\nfunction isCellSelection(value) {\n\treturn value instanceof CellSelection;\n}\n/**\n* Find the closest table node for a given position.\n*\n* @public\n*/\nfunction findTable($pos) {\n\treturn findParentNode((node) => node.type.spec.tableRole === \"table\", $pos);\n}\n/**\n* Try to find the anchor and head cell in the same table by using the given\n* anchor and head as hit points, or fallback to the selection's anchor and\n* head.\n*\n* @public\n*/\nfunction findCellRange(selection, anchorHit, headHit) {\n\tvar _ref, _ref2;\n\tif (anchorHit == null && headHit == null && isCellSelection(selection)) return [selection.$anchorCell, selection.$headCell];\n\tconst anchor = (_ref = anchorHit !== null && anchorHit !== void 0 ? anchorHit : headHit) !== null && _ref !== void 0 ? _ref : selection.anchor;\n\tconst head = (_ref2 = headHit !== null && headHit !== void 0 ? headHit : anchorHit) !== null && _ref2 !== void 0 ? _ref2 : selection.head;\n\tconst doc = selection.$head.doc;\n\tconst $anchorCell = findCellPos(doc, anchor);\n\tconst $headCell = findCellPos(doc, head);\n\tif ($anchorCell && $headCell && inSameTable($anchorCell, $headCell)) return [$anchorCell, $headCell];\n\treturn null;\n}\n/**\n* Try to find a resolved pos of a cell by using the given pos as a hit point.\n*\n* @public\n*/\nfunction findCellPos(doc, pos) {\n\tconst $pos = doc.resolve(pos);\n\treturn cellAround($pos) || cellNear($pos);\n}\n/**\n* Find the closest parent node that satisfies the predicate.\n*\n* @internal\n*/\nfunction findParentNode(predicate, $pos) {\n\tfor (let depth = $pos.depth; depth >= 0; depth -= 1) {\n\t\tconst node = $pos.node(depth);\n\t\tif (predicate(node)) return {\n\t\t\tnode,\n\t\t\tpos: depth === 0 ? 0 : $pos.before(depth),\n\t\t\tstart: $pos.start(depth),\n\t\t\tdepth\n\t\t};\n\t}\n\treturn null;\n}\n\n//#endregion\n//#region src/utils/get-cells.ts\n/**\n* Returns an array of cells in a column at the specified column index.\n*\n* @internal\n*/\nfunction getCellsInColumn(columnIndex, selection) {\n\tconst table = findTable(selection.$from);\n\tif (!table) return;\n\tconst map = TableMap.get(table.node);\n\tif (columnIndex < 0 || columnIndex > map.width - 1) return;\n\treturn map.cellsInRect({\n\t\tleft: columnIndex,\n\t\tright: columnIndex + 1,\n\t\ttop: 0,\n\t\tbottom: map.height\n\t}).map((nodePos) => {\n\t\tconst node = table.node.nodeAt(nodePos);\n\t\tconst pos = nodePos + table.start;\n\t\treturn {\n\t\t\tpos,\n\t\t\tstart: pos + 1,\n\t\t\tnode,\n\t\t\tdepth: table.depth + 2\n\t\t};\n\t});\n}\n/**\n* Returns an array of cells in a row at the specified row index.\n*\n* @internal\n*/\nfunction getCellsInRow(rowIndex, selection) {\n\tconst table = findTable(selection.$from);\n\tif (!table) return;\n\tconst map = TableMap.get(table.node);\n\tif (rowIndex < 0 || rowIndex > map.height - 1) return;\n\treturn map.cellsInRect({\n\t\tleft: 0,\n\t\tright: map.width,\n\t\ttop: rowIndex,\n\t\tbottom: rowIndex + 1\n\t}).map((nodePos) => {\n\t\tconst node = table.node.nodeAt(nodePos);\n\t\tconst pos = nodePos + table.start;\n\t\treturn {\n\t\t\tpos,\n\t\t\tstart: pos + 1,\n\t\t\tnode,\n\t\t\tdepth: table.depth + 2\n\t\t};\n\t});\n}\n\n//#endregion\n//#region src/utils/selection-range.ts\n/**\n* Returns a range of rectangular selection spanning all merged cells around a\n* column at index `columnIndex`.\n*\n* Original implementation from Atlassian (Apache License 2.0)\n*\n* https://bitbucket.org/atlassian/atlassian-frontend-mirror/src/5f91cb871e8248bc3bae5ddc30bb9fd9200fadbb/editor/editor-tables/src/utils/get-selection-range-in-column.ts#editor/editor-tables/src/utils/get-selection-range-in-column.ts\n*\n* @internal\n*/\nfunction getSelectionRangeInColumn(tr, startColIndex, endColIndex = startColIndex) {\n\tlet startIndex = startColIndex;\n\tlet endIndex = endColIndex;\n\tfor (let i = startColIndex; i >= 0; i--) {\n\t\tconst cells = getCellsInColumn(i, tr.selection);\n\t\tif (cells) cells.forEach((cell) => {\n\t\t\tconst maybeEndIndex = cell.node.attrs.colspan + i - 1;\n\t\t\tif (maybeEndIndex >= startIndex) startIndex = i;\n\t\t\tif (maybeEndIndex > endIndex) endIndex = maybeEndIndex;\n\t\t});\n\t}\n\tfor (let i = startColIndex; i <= endIndex; i++) {\n\t\tconst cells = getCellsInColumn(i, tr.selection);\n\t\tif (cells) cells.forEach((cell) => {\n\t\t\tconst maybeEndIndex = cell.node.attrs.colspan + i - 1;\n\t\t\tif (cell.node.attrs.colspan > 1 && maybeEndIndex > endIndex) endIndex = maybeEndIndex;\n\t\t});\n\t}\n\tconst indexes = [];\n\tfor (let i = startIndex; i <= endIndex; i++) {\n\t\tconst maybeCells = getCellsInColumn(i, tr.selection);\n\t\tif (maybeCells && maybeCells.length > 0) indexes.push(i);\n\t}\n\tstartIndex = indexes[0];\n\tendIndex = indexes[indexes.length - 1];\n\tconst firstSelectedColumnCells = getCellsInColumn(startIndex, tr.selection);\n\tconst firstRowCells = getCellsInRow(0, tr.selection);\n\tif (!firstSelectedColumnCells || !firstRowCells) return;\n\tconst $anchor = tr.doc.resolve(firstSelectedColumnCells[firstSelectedColumnCells.length - 1].pos);\n\tlet headCell;\n\tfor (let i = endIndex; i >= startIndex; i--) {\n\t\tconst columnCells = getCellsInColumn(i, tr.selection);\n\t\tif (columnCells && columnCells.length > 0) {\n\t\t\tfor (let j = firstRowCells.length - 1; j >= 0; j--) if (firstRowCells[j].pos === columnCells[0].pos) {\n\t\t\t\theadCell = columnCells[0];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (headCell) break;\n\t\t}\n\t}\n\tif (!headCell) return;\n\treturn {\n\t\t$anchor,\n\t\t$head: tr.doc.resolve(headCell.pos),\n\t\tindexes\n\t};\n}\n/**\n* Returns a range of rectangular selection spanning all merged cells around a\n* row at index `rowIndex`.\n*\n* Original implementation from Atlassian (Apache License 2.0)\n*\n* https://bitbucket.org/atlassian/atlassian-frontend-mirror/src/5f91cb871e8248bc3bae5ddc30bb9fd9200fadbb/editor/editor-tables/src/utils/get-selection-range-in-row.ts#editor/editor-tables/src/utils/get-selection-range-in-row.ts\n*\n* @internal\n*/\nfunction getSelectionRangeInRow(tr, startRowIndex, endRowIndex = startRowIndex) {\n\tlet startIndex = startRowIndex;\n\tlet endIndex = endRowIndex;\n\tfor (let i = startRowIndex; i >= 0; i--) {\n\t\tconst cells = getCellsInRow(i, tr.selection);\n\t\tif (cells) cells.forEach((cell) => {\n\t\t\tconst maybeEndIndex = cell.node.attrs.rowspan + i - 1;\n\t\t\tif (maybeEndIndex >= startIndex) startIndex = i;\n\t\t\tif (maybeEndIndex > endIndex) endIndex = maybeEndIndex;\n\t\t});\n\t}\n\tfor (let i = startRowIndex; i <= endIndex; i++) {\n\t\tconst cells = getCellsInRow(i, tr.selection);\n\t\tif (cells) cells.forEach((cell) => {\n\t\t\tconst maybeEndIndex = cell.node.attrs.rowspan + i - 1;\n\t\t\tif (cell.node.attrs.rowspan > 1 && maybeEndIndex > endIndex) endIndex = maybeEndIndex;\n\t\t});\n\t}\n\tconst indexes = [];\n\tfor (let i = startIndex; i <= endIndex; i++) {\n\t\tconst maybeCells = getCellsInRow(i, tr.selection);\n\t\tif (maybeCells && maybeCells.length > 0) indexes.push(i);\n\t}\n\tstartIndex = indexes[0];\n\tendIndex = indexes[indexes.length - 1];\n\tconst firstSelectedRowCells = getCellsInRow(startIndex, tr.selection);\n\tconst firstColumnCells = getCellsInColumn(0, tr.selection);\n\tif (!firstSelectedRowCells || !firstColumnCells) return;\n\tconst $anchor = tr.doc.resolve(firstSelectedRowCells[firstSelectedRowCells.length - 1].pos);\n\tlet headCell;\n\tfor (let i = endIndex; i >= startIndex; i--) {\n\t\tconst rowCells = getCellsInRow(i, tr.selection);\n\t\tif (rowCells && rowCells.length > 0) {\n\t\t\tfor (let j = firstColumnCells.length - 1; j >= 0; j--) if (firstColumnCells[j].pos === rowCells[0].pos) {\n\t\t\t\theadCell = rowCells[0];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (headCell) break;\n\t\t}\n\t}\n\tif (!headCell) return;\n\treturn {\n\t\t$anchor,\n\t\t$head: tr.doc.resolve(headCell.pos),\n\t\tindexes\n\t};\n}\n\n//#endregion\n//#region src/utils/transpose.ts\n/**\n* Transposes a 2D array by flipping columns to rows.\n*\n* Transposition is a familiar algebra concept where the matrix is flipped\n* along its diagonal. For more details, see:\n* https://en.wikipedia.org/wiki/Transpose\n*\n* @example\n* ```javascript\n* const arr = [\n* ['a1', 'a2', 'a3'],\n* ['b1', 'b2', 'b3'],\n* ['c1', 'c2', 'c3'],\n* ['d1', 'd2', 'd3'],\n* ];\n*\n* const result = transpose(arr);\n* result === [\n* ['a1', 'b1', 'c1', 'd1'],\n* ['a2', 'b2', 'c2', 'd2'],\n* ['a3', 'b3', 'c3', 'd3'],\n* ]\n* ```\n*/\nfunction transpose(array) {\n\treturn array[0].map((_, i) => {\n\t\treturn array.map((column) => column[i]);\n\t});\n}\n\n//#endregion\n//#region src/utils/move-column.ts\n/**\n* Move a column from index `origin` to index `target`.\n*\n* @internal\n*/\nfunction moveColumn(moveColParams) {\n\tvar _getSelectionRangeInC, _getSelectionRangeInC2;\n\tconst { tr, originIndex, targetIndex, select, pos } = moveColParams;\n\tconst table = findTable(tr.doc.resolve(pos));\n\tif (!table) return false;\n\tconst indexesOriginColumn = (_getSelectionRangeInC = getSelectionRangeInColumn(tr, originIndex)) === null || _getSelectionRangeInC === void 0 ? void 0 : _getSelectionRangeInC.indexes;\n\tconst indexesTargetColumn = (_getSelectionRangeInC2 = getSelectionRangeInColumn(tr, targetIndex)) === null || _getSelectionRangeInC2 === void 0 ? void 0 : _getSelectionRangeInC2.indexes;\n\tif (!indexesOriginColumn || !indexesTargetColumn) return false;\n\tif (indexesOriginColumn.includes(targetIndex)) return false;\n\tconst newTable = moveTableColumn$1(table.node, indexesOriginColumn, indexesTargetColumn, 0);\n\ttr.replaceWith(table.pos, table.pos + table.node.nodeSize, newTable);\n\tif (!select) return true;\n\tconst map = TableMap.get(newTable);\n\tconst start = table.start;\n\tconst index = targetIndex;\n\tconst lastCell = map.positionAt(map.height - 1, index, newTable);\n\tconst $lastCell = tr.doc.resolve(start + lastCell);\n\tconst firstCell = map.positionAt(0, index, newTable);\n\tconst $firstCell = tr.doc.resolve(start + firstCell);\n\ttr.setSelection(CellSelection.colSelection($lastCell, $firstCell));\n\treturn true;\n}\nfunction moveTableColumn$1(table, indexesOrigin, indexesTarget, direction) {\n\tlet rows = transpose(convertTableNodeToArrayOfRows(table));\n\trows = moveRowInArrayOfRows(rows, indexesOrigin, indexesTarget, direction);\n\trows = transpose(rows);\n\treturn convertArrayOfRowsToTableNode(table, rows);\n}\n\n//#endregion\n//#region src/utils/move-row.ts\n/**\n* Move a row from index `origin` to index `target`.\n*\n* @internal\n*/\nfunction moveRow(moveRowParams) {\n\tvar _getSelectionRangeInR, _getSelectionRangeInR2;\n\tconst { tr, originIndex, targetIndex, select, pos } = moveRowParams;\n\tconst table = findTable(tr.doc.resolve(pos));\n\tif (!table) return false;\n\tconst indexesOriginRow = (_getSelectionRangeInR = getSelectionRangeInRow(tr, originIndex)) === null || _getSelectionRangeInR === void 0 ? void 0 : _getSelectionRangeInR.indexes;\n\tconst indexesTargetRow = (_getSelectionRangeInR2 = getSelectionRangeInRow(tr, targetIndex)) === null || _getSelectionRangeInR2 === void 0 ? void 0 : _getSelectionRangeInR2.indexes;\n\tif (!indexesOriginRow || !indexesTargetRow) return false;\n\tif (indexesOriginRow.includes(targetIndex)) return false;\n\tconst newTable = moveTableRow$1(table.node, indexesOriginRow, indexesTargetRow, 0);\n\ttr.replaceWith(table.pos, table.pos + table.node.nodeSize, newTable);\n\tif (!select) return true;\n\tconst map = TableMap.get(newTable);\n\tconst start = table.start;\n\tconst index = targetIndex;\n\tconst lastCell = map.positionAt(index, map.width - 1, newTable);\n\tconst $lastCell = tr.doc.resolve(start + lastCell);\n\tconst firstCell = map.positionAt(index, 0, newTable);\n\tconst $firstCell = tr.doc.resolve(start + firstCell);\n\ttr.setSelection(CellSelection.rowSelection($lastCell, $firstCell));\n\treturn true;\n}\nfunction moveTableRow$1(table, indexesOrigin, indexesTarget, direction) {\n\tlet rows = convertTableNodeToArrayOfRows(table);\n\trows = moveRowInArrayOfRows(rows, indexesOrigin, indexesTarget, direction);\n\treturn convertArrayOfRowsToTableNode(table, rows);\n}\n\n//#endregion\n//#region src/commands.ts\n/**\n* Helper to get the selected rectangle in a table, if any. Adds table\n* map, table node, and table start offset to the object for\n* convenience.\n*\n* @public\n*/\nfunction selectedRect(state) {\n\tconst sel = state.selection;\n\tconst $pos = selectionCell(state);\n\tconst table = $pos.node(-1);\n\tconst tableStart = $pos.start(-1);\n\tconst map = TableMap.get(table);\n\treturn {\n\t\t...sel instanceof CellSelection ? map.rectBetween(sel.$anchorCell.pos - tableStart, sel.$headCell.pos - tableStart) : map.findCell($pos.pos - tableStart),\n\t\ttableStart,\n\t\tmap,\n\t\ttable\n\t};\n}\n/**\n* Add a column at the given position in a table.\n*\n* @public\n*/\nfunction addColumn(tr, { map, tableStart, table }, col) {\n\tlet refColumn = col > 0 ? -1 : 0;\n\tif (columnIsHeader(map, table, col + refColumn)) refColumn = col == 0 || col == map.width ? null : 0;\n\tfor (let row = 0; row < map.height; row++) {\n\t\tconst index = row * map.width + col;\n\t\tif (col > 0 && col < map.width && map.map[index - 1] == map.map[index]) {\n\t\t\tconst pos = map.map[index];\n\t\t\tconst cell = table.nodeAt(pos);\n\t\t\ttr.setNodeMarkup(tr.mapping.map(tableStart + pos), null, addColSpan(cell.attrs, col - map.colCount(pos)));\n\t\t\trow += cell.attrs.rowspan - 1;\n\t\t} else {\n\t\t\tconst type = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map.map[index + refColumn]).type;\n\t\t\tconst pos = map.positionAt(row, col, table);\n\t\t\ttr.insert(tr.mapping.map(tableStart + pos), type.createAndFill());\n\t\t}\n\t}\n\treturn tr;\n}\n/**\n* Command to add a column before the column with the selection.\n*\n* @public\n*/\nfunction addColumnBefore(state, dispatch) {\n\tif (!isInTable(state)) return false;\n\tif (dispatch) {\n\t\tconst rect = selectedRect(state);\n\t\tdispatch(addColumn(state.tr, rect, rect.left));\n\t}\n\treturn true;\n}\n/**\n* Command to add a column after the column with the selection.\n*\n* @public\n*/\nfunction addColumnAfter(state, dispatch) {\n\tif (!isInTable(state)) return false;\n\tif (dispatch) {\n\t\tconst rect = selectedRect(state);\n\t\tdispatch(addColumn(state.tr, rect, rect.right));\n\t}\n\treturn true;\n}\n/**\n* @public\n*/\nfunction removeColumn(tr, { map, table, tableStart }, col) {\n\tconst mapStart = tr.mapping.maps.length;\n\tfor (let row = 0; row < map.height;) {\n\t\tconst index = row * map.width + col;\n\t\tconst pos = map.map[index];\n\t\tconst cell = table.nodeAt(pos);\n\t\tconst attrs = cell.attrs;\n\t\tif (col > 0 && map.map[index - 1] == pos || col < map.width - 1 && map.map[index + 1] == pos) tr.setNodeMarkup(tr.mapping.slice(mapStart).map(tableStart + pos), null, removeColSpan(attrs, col - map.colCount(pos)));\n\t\telse {\n\t\t\tconst start = tr.mapping.slice(mapStart).map(tableStart + pos);\n\t\t\ttr.delete(start, start + cell.nodeSize);\n\t\t}\n\t\trow += attrs.rowspan;\n\t}\n}\n/**\n* Command function that removes the selected columns from a table.\n*\n* @public\n*/\nfunction deleteColumn(state, dispatch) {\n\tif (!isInTable(state)) return false;\n\tif (dispatch) {\n\t\tconst rect = selectedRect(state);\n\t\tconst tr = state.tr;\n\t\tif (rect.left == 0 && rect.right == rect.map.width) return false;\n\t\tfor (let i = rect.right - 1;; i--) {\n\t\t\tremoveColumn(tr, rect, i);\n\t\t\tif (i == rect.left) break;\n\t\t\tconst table = rect.tableStart ? tr.doc.nodeAt(rect.tableStart - 1) : tr.doc;\n\t\t\tif (!table) throw new RangeError(\"No table found\");\n\t\t\trect.table = table;\n\t\t\trect.map = TableMap.get(table);\n\t\t}\n\t\tdispatch(tr);\n\t}\n\treturn true;\n}\n/**\n* @public\n*/\nfunction rowIsHeader(map, table, row) {\n\tvar _table$nodeAt;\n\tconst headerCell = tableNodeTypes(table.type.schema).header_cell;\n\tfor (let col = 0; col < map.width; col++) if (((_table$nodeAt = table.nodeAt(map.map[col + row * map.width])) === null || _table$nodeAt === void 0 ? void 0 : _table$nodeAt.type) != headerCell) return false;\n\treturn true;\n}\n/**\n* @public\n*/\nfunction addRow(tr, { map, tableStart, table }, row) {\n\tlet rowPos = tableStart;\n\tfor (let i = 0; i < row; i++) rowPos += table.child(i).nodeSize;\n\tconst cells = [];\n\tlet refRow = row > 0 ? -1 : 0;\n\tif (rowIsHeader(map, table, row + refRow)) refRow = row == 0 || row == map.height ? null : 0;\n\tfor (let col = 0, index = map.width * row; col < map.width; col++, index++) if (row > 0 && row < map.height && map.map[index] == map.map[index - map.width]) {\n\t\tconst pos = map.map[index];\n\t\tconst attrs = table.nodeAt(pos).attrs;\n\t\ttr.setNodeMarkup(tableStart + pos, null, {\n\t\t\t...attrs,\n\t\t\trowspan: attrs.rowspan + 1\n\t\t});\n\t\tcol += attrs.colspan - 1;\n\t} else {\n\t\tvar _table$nodeAt2;\n\t\tconst type = refRow == null ? tableNodeTypes(table.type.schema).cell : (_table$nodeAt2 = table.nodeAt(map.map[index + refRow * map.width])) === null || _table$nodeAt2 === void 0 ? void 0 : _table$nodeAt2.type;\n\t\tconst node = type === null || type === void 0 ? void 0 : type.createAndFill();\n\t\tif (node) cells.push(node);\n\t}\n\ttr.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));\n\treturn tr;\n}\n/**\n* Add a table row before the selection.\n*\n* @public\n*/\nfunction addRowBefore(state, dispatch) {\n\tif (!isInTable(state)) return false;\n\tif (dispatch) {\n\t\tconst rect = selectedRect(state);\n\t\tdispatch(addRow(state.tr, rect, rect.top));\n\t}\n\treturn true;\n}\n/**\n* Add a table row after the selection.\n*\n* @public\n*/\nfunction addRowAfter(state, dispatch) {\n\tif (!isInTable(state)) return false;\n\tif (dispatch) {\n\t\tconst rect = selectedRect(state);\n\t\tdispatch(addRow(state.tr, rect, rect.bottom));\n\t}\n\treturn true;\n}\n/**\n* @public\n*/\nfunction removeRow(tr, { map, table, tableStart }, row) {\n\tlet rowPos = 0;\n\tfor (let i = 0; i < row; i++) rowPos += table.child(i).nodeSize;\n\tconst nextRow = rowPos + table.child(row).nodeSize;\n\tconst mapFrom = tr.mapping.maps.length;\n\ttr.delete(rowPos + tableStart, nextRow + tableStart);\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (let col = 0, index = row * map.width; col < map.width; col++, index++) {\n\t\tconst pos = map.map[index];\n\t\tif (seen.has(pos)) continue;\n\t\tseen.add(pos);\n\t\tif (row > 0 && pos == map.map[index - map.width]) {\n\t\t\tconst attrs = table.nodeAt(pos).attrs;\n\t\t\ttr.setNodeMarkup(tr.mapping.slice(mapFrom).map(pos + tableStart), null, {\n\t\t\t\t...attrs,\n\t\t\t\trowspan: attrs.rowspan - 1\n\t\t\t});\n\t\t\tcol += attrs.colspan - 1;\n\t\t} else if (row < map.height && pos == map.map[index + map.width]) {\n\t\t\tconst cell = table.nodeAt(pos);\n\t\t\tconst attrs = cell.attrs;\n\t\t\tconst copy = cell.type.create({\n\t\t\t\t...attrs,\n\t\t\t\trowspan: cell.attrs.rowspan - 1\n\t\t\t}, cell.content);\n\t\t\tconst newPos = map.positionAt(row + 1, col, table);\n\t\t\ttr.insert(tr.mapping.slice(mapFrom).map(tableStart + newPos), copy);\n\t\t\tcol += attrs.colspan - 1;\n\t\t}\n\t}\n}\n/**\n* Remove the selected rows from a table.\n*\n* @public\n*/\nfunction deleteRow(state, dispatch) {\n\tif (!isInTable(state)) return false;\n\tif (dispatch) {\n\t\tconst rect = selectedRect(state), tr = state.tr;\n\t\tif (rect.top == 0 && rect.bottom == rect.map.height) return false;\n\t\tfor (let i = rect.bottom - 1;; i--) {\n\t\t\tremoveRow(tr, rect, i);\n\t\t\tif (i == rect.top) break;\n\t\t\tconst table = rect.tableStart ? tr.doc.nodeAt(rect.tableStart - 1) : tr.doc;\n\t\t\tif (!table) throw new RangeError(\"No table found\");\n\t\t\trect.table = table;\n\t\t\trect.map = TableMap.get(rect.table);\n\t\t}\n\t\tdispatch(tr);\n\t}\n\treturn true;\n}\nfunction isEmpty(cell) {\n\tconst c = cell.content;\n\treturn c.childCount == 1 && c.child(0).isTextblock && c.child(0).childCount == 0;\n}\nfunction cellsOverlapRectangle({ width, height, map }, rect) {\n\tlet indexTop = rect.top * width + rect.left, indexLeft = indexTop;\n\tlet indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);\n\tfor (let i = rect.top; i < rect.bottom; i++) {\n\t\tif (rect.left > 0 && map[indexLeft] == map[indexLeft - 1] || rect.right < width && map[indexRight] == map[indexRight + 1]) return true;\n\t\tindexLeft += width;\n\t\tindexRight += width;\n\t}\n\tfor (let i = rect.left; i < rect.right; i++) {\n\t\tif (rect.top > 0 && map[indexTop] == map[indexTop - width] || rect.bottom < height && map[indexBottom] == map[indexBottom + width]) return true;\n\t\tindexTop++;\n\t\tindexBottom++;\n\t}\n\treturn false;\n}\n/**\n* Merge the selected cells into a single cell. Only available when\n* the selected cells' outline forms a rectangle.\n*\n* @public\n*/\nfunction mergeCells(state, dispatch) {\n\tconst sel = state.selection;\n\tif (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos) return false;\n\tconst rect = selectedRect(state), { map } = rect;\n\tif (cellsOverlapRectangle(map, rect)) return false;\n\tif (dispatch) {\n\t\tconst tr = state.tr;\n\t\tconst seen = {};\n\t\tlet content = Fragment.empty;\n\t\tlet mergedPos;\n\t\tlet mergedCell;\n\t\tfor (let row = rect.top; row < rect.bottom; row++) for (let col = rect.left; col < rect.right; col++) {\n\t\t\tconst cellPos = map.map[row * map.width + col];\n\t\t\tconst cell = rect.table.nodeAt(cellPos);\n\t\t\tif (seen[cellPos] || !cell) continue;\n\t\t\tseen[cellPos] = true;\n\t\t\tif (mergedPos == null) {\n\t\t\t\tmergedPos = cellPos;\n\t\t\t\tmergedCell = cell;\n\t\t\t} else {\n\t\t\t\tif (!isEmpty(cell)) content = content.append(cell.content);\n\t\t\t\tconst mapped = tr.mapping.map(cellPos + rect.tableStart);\n\t\t\t\ttr.delete(mapped, mapped + cell.nodeSize);\n\t\t\t}\n\t\t}\n\t\tif (mergedPos == null || mergedCell == null) return true;\n\t\ttr.setNodeMarkup(mergedPos + rect.tableStart, null, {\n\t\t\t...addColSpan(mergedCell.attrs, mergedCell.attrs.colspan, rect.right - rect.left - mergedCell.attrs.colspan),\n\t\t\trowspan: rect.bottom - rect.top\n\t\t});\n\t\tif (content.size > 0) {\n\t\t\tconst end = mergedPos + 1 + mergedCell.content.size;\n\t\t\tconst start = isEmpty(mergedCell) ? mergedPos + 1 : end;\n\t\t\ttr.replaceWith(start + rect.tableStart, end + rect.tableStart, content);\n\t\t}\n\t\ttr.setSelection(new CellSelection(tr.doc.resolve(mergedPos + rect.tableStart)));\n\t\tdispatch(tr);\n\t}\n\treturn true;\n}\n/**\n* Split a selected cell, whose rowpan or colspan is greater than one,\n* into smaller cells. Use the first cell type for the new cells.\n*\n* @public\n*/\nfunction splitCell(state, dispatch) {\n\tconst nodeTypes = tableNodeTypes(state.schema);\n\treturn splitCellWithType(({ node }) => {\n\t\treturn nodeTypes[node.type.spec.tableRole];\n\t})(state, dispatch);\n}\n/**\n* Split a selected cell, whose rowpan or colspan is greater than one,\n* into smaller cells with the cell type (th, td) returned by getType function.\n*\n* @public\n*/\nfunction splitCellWithType(getCellType) {\n\treturn (state, dispatch) => {\n\t\tconst sel = state.selection;\n\t\tlet cellNode;\n\t\tlet cellPos;\n\t\tif (!(sel instanceof CellSelection)) {\n\t\t\tvar _cellAround;\n\t\t\tcellNode = cellWrapping(sel.$from);\n\t\t\tif (!cellNode) return false;\n\t\t\tcellPos = (_cellAround = cellAround(sel.$from)) === null || _cellAround === void 0 ? void 0 : _cellAround.pos;\n\t\t} else {\n\t\t\tif (sel.$anchorCell.pos != sel.$headCell.pos) return false;\n\t\t\tcellNode = sel.$anchorCell.nodeAfter;\n\t\t\tcellPos = sel.$anchorCell.pos;\n\t\t}\n\t\tif (cellNode == null || cellPos == null) return false;\n\t\tif (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) return false;\n\t\tif (dispatch) {\n\t\t\tlet baseAttrs = cellNode.attrs;\n\t\t\tconst attrs = [];\n\t\t\tconst colwidth = baseAttrs.colwidth;\n\t\t\tif (baseAttrs.rowspan > 1) baseAttrs = {\n\t\t\t\t...baseAttrs,\n\t\t\t\trowspan: 1\n\t\t\t};\n\t\t\tif (baseAttrs.colspan > 1) baseAttrs = {\n\t\t\t\t...baseAttrs,\n\t\t\t\tcolspan: 1\n\t\t\t};\n\t\t\tconst rect = selectedRect(state), tr = state.tr;\n\t\t\tfor (let i = 0; i < rect.right - rect.left; i++) attrs.push(colwidth ? {\n\t\t\t\t...baseAttrs,\n\t\t\t\tcolwidth: colwidth && colwidth[i] ? [colwidth[i]] : null\n\t\t\t} : baseAttrs);\n\t\t\tlet lastCell;\n\t\t\tfor (let row = rect.top; row < rect.bottom; row++) {\n\t\t\t\tlet pos = rect.map.positionAt(row, rect.left, rect.table);\n\t\t\t\tif (row == rect.top) pos += cellNode.nodeSize;\n\t\t\t\tfor (let col = rect.left, i = 0; col < rect.right; col++, i++) {\n\t\t\t\t\tif (col == rect.left && row == rect.top) continue;\n\t\t\t\t\ttr.insert(lastCell = tr.mapping.map(pos + rect.tableStart, 1), getCellType({\n\t\t\t\t\t\tnode: cellNode,\n\t\t\t\t\t\trow,\n\t\t\t\t\t\tcol\n\t\t\t\t\t}).createAndFill(attrs[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t\ttr.setNodeMarkup(cellPos, getCellType({\n\t\t\t\tnode: cellNode,\n\t\t\t\trow: rect.top,\n\t\t\t\tcol: rect.left\n\t\t\t}), attrs[0]);\n\t\t\tif (sel instanceof CellSelection) tr.setSelection(new CellSelection(tr.doc.resolve(sel.$anchorCell.pos), lastCell ? tr.doc.resolve(lastCell) : void 0));\n\t\t\tdispatch(tr);\n\t\t}\n\t\treturn true;\n\t};\n}\n/**\n* Returns a command that sets the given attribute to the given value,\n* and is only available when the currently selected cell doesn't\n* already have that attribute set to that value.\n*\n* @public\n*/\nfunction setCellAttr(name, value) {\n\treturn function(state, dispatch) {\n\t\tif (!isInTable(state)) return false;\n\t\tconst $cell = selectionCell(state);\n\t\tif ($cell.nodeAfter.attrs[name] === value) return false;\n\t\tif (dispatch) {\n\t\t\tconst tr = state.tr;\n\t\t\tif (state.selection instanceof CellSelection) state.selection.forEachCell((node, pos) => {\n\t\t\t\tif (node.attrs[name] !== value) tr.setNodeMarkup(pos, null, {\n\t\t\t\t\t...node.attrs,\n\t\t\t\t\t[name]: value\n\t\t\t\t});\n\t\t\t});\n\t\t\telse tr.setNodeMarkup($cell.pos, null, {\n\t\t\t\t...$cell.nodeAfter.attrs,\n\t\t\t\t[name]: value\n\t\t\t});\n\t\t\tdispatch(tr);\n\t\t}\n\t\treturn true;\n\t};\n}\nfunction deprecated_toggleHeader(type) {\n\treturn function(state, dispatch) {\n\t\tif (!isInTable(state)) return false;\n\t\tif (dispatch) {\n\t\t\tconst types = tableNodeTypes(state.schema);\n\t\t\tconst rect = selectedRect(state), tr = state.tr;\n\t\t\tconst cells = rect.map.cellsInRect(type == \"column\" ? {\n\t\t\t\tleft: rect.left,\n\t\t\t\ttop: 0,\n\t\t\t\tright: rect.right,\n\t\t\t\tbottom: rect.map.height\n\t\t\t} : type == \"row\" ? {\n\t\t\t\tleft: 0,\n\t\t\t\ttop: rect.top,\n\t\t\t\tright: rect.map.width,\n\t\t\t\tbottom: rect.bottom\n\t\t\t} : rect);\n\t\t\tconst nodes = cells.map((pos) => rect.table.nodeAt(pos));\n\t\t\tfor (let i = 0; i < cells.length; i++) if (nodes[i].type == types.header_cell) tr.setNodeMarkup(rect.tableStart + cells[i], types.cell, nodes[i].attrs);\n\t\t\tif (tr.steps.length === 0) for (let i = 0; i < cells.length; i++) tr.setNodeMarkup(rect.tableStart + cells[i], types.header_cell, nodes[i].attrs);\n\t\t\tdispatch(tr);\n\t\t}\n\t\treturn true;\n\t};\n}\nfunction isHeaderEnabledByType(type, rect, types) {\n\tconst cellPositions = rect.map.cellsInRect({\n\t\tleft: 0,\n\t\ttop: 0,\n\t\tright: type == \"row\" ? rect.map.width : 1,\n\t\tbottom: type == \"column\" ? rect.map.height : 1\n\t});\n\tfor (let i = 0; i < cellPositions.length; i++) {\n\t\tconst cell = rect.table.nodeAt(cellPositions[i]);\n\t\tif (cell && cell.type !== types.header_cell) return false;\n\t}\n\treturn true;\n}\n/**\n* Toggles between row/column header and normal cells (Only applies to first row/column).\n* For deprecated behavior pass `useDeprecatedLogic` in options with true.\n*\n* @public\n*/\nfunction toggleHeader(type, options) {\n\toptions = options || { useDeprecatedLogic: false };\n\tif (options.useDeprecatedLogic) return deprecated_toggleHeader(type);\n\treturn function(state, dispatch) {\n\t\tif (!isInTable(state)) return false;\n\t\tif (dispatch) {\n\t\t\tconst types = tableNodeTypes(state.schema);\n\t\t\tconst rect = selectedRect(state), tr = state.tr;\n\t\t\tconst isHeaderRowEnabled = isHeaderEnabledByType(\"row\", rect, types);\n\t\t\tconst isHeaderColumnEnabled = isHeaderEnabledByType(\"column\", rect, types);\n\t\t\tconst selectionStartsAt = (type === \"column\" ? isHeaderRowEnabled : type === \"row\" ? isHeaderColumnEnabled : false) ? 1 : 0;\n\t\t\tconst cellsRect = type == \"column\" ? {\n\t\t\t\tleft: 0,\n\t\t\t\ttop: selectionStartsAt,\n\t\t\t\tright: 1,\n\t\t\t\tbottom: rect.map.height\n\t\t\t} : type == \"row\" ? {\n\t\t\t\tleft: selectionStartsAt,\n\t\t\t\ttop: 0,\n\t\t\t\tright: rect.map.width,\n\t\t\t\tbottom: 1\n\t\t\t} : rect;\n\t\t\tconst newType = type == \"column\" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type == \"row\" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;\n\t\t\trect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {\n\t\t\t\tconst cellPos = relativeCellPos + rect.tableStart;\n\t\t\t\tconst cell = tr.doc.nodeAt(cellPos);\n\t\t\t\tif (cell) tr.setNodeMarkup(cellPos, newType, cell.attrs);\n\t\t\t});\n\t\t\tdispatch(tr);\n\t\t}\n\t\treturn true;\n\t};\n}\n/**\n* Toggles whether the selected row contains header cells.\n*\n* @public\n*/\nconst toggleHeaderRow = toggleHeader(\"row\", { useDeprecatedLogic: true });\n/**\n* Toggles whether the selected column contains header cells.\n*\n* @public\n*/\nconst toggleHeaderColumn = toggleHeader(\"column\", { useDeprecatedLogic: true });\n/**\n* Toggles whether the selected cells are header cells.\n*\n* @public\n*/\nconst toggleHeaderCell = toggleHeader(\"cell\", { useDeprecatedLogic: true });\nfunction findNextCell($cell, dir) {\n\tif (dir < 0) {\n\t\tconst before = $cell.nodeBefore;\n\t\tif (before) return $cell.pos - before.nodeSize;\n\t\tfor (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {\n\t\t\tconst rowNode = $cell.node(-1).child(row);\n\t\t\tconst lastChild = rowNode.lastChild;\n\t\t\tif (lastChild) return rowEnd - 1 - lastChild.nodeSize;\n\t\t\trowEnd -= rowNode.nodeSize;\n\t\t}\n\t} else {\n\t\tif ($cell.index() < $cell.parent.childCount - 1) return $cell.pos + $cell.nodeAfter.nodeSize;\n\t\tconst table = $cell.node(-1);\n\t\tfor (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {\n\t\t\tconst rowNode = table.child(row);\n\t\t\tif (rowNode.childCount) return rowStart + 1;\n\t\t\trowStart += rowNode.nodeSize;\n\t\t}\n\t}\n\treturn null;\n}\n/**\n* Returns a command for selecting the next (direction=1) or previous\n* (direction=-1) cell in a table.\n*\n* @public\n*/\nfunction goToNextCell(direction) {\n\treturn function(state, dispatch) {\n\t\tif (!isInTable(state)) return false;\n\t\tconst cell = findNextCell(selectionCell(state), direction);\n\t\tif (cell == null) return false;\n\t\tif (dispatch) {\n\t\t\tconst $cell = state.doc.resolve(cell);\n\t\t\tdispatch(state.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView());\n\t\t}\n\t\treturn true;\n\t};\n}\n/**\n* Deletes the table around the selection, if any.\n*\n* @public\n*/\nfunction deleteTable(state, dispatch) {\n\tconst $pos = state.selection.$anchor;\n\tfor (let d = $pos.depth; d > 0; d--) if ($pos.node(d).type.spec.tableRole == \"table\") {\n\t\tif (dispatch) dispatch(state.tr.delete($pos.before(d), $pos.after(d)).scrollIntoView());\n\t\treturn true;\n\t}\n\treturn false;\n}\n/**\n* Deletes the content of the selected cells, if they are not empty.\n*\n* @public\n*/\nfunction deleteCellSelection(state, dispatch) {\n\tconst sel = state.selection;\n\tif (!(sel instanceof CellSelection)) return false;\n\tif (dispatch) {\n\t\tconst tr = state.tr;\n\t\tconst baseContent = tableNodeTypes(state.schema).cell.createAndFill().content;\n\t\tsel.forEachCell((cell, pos) => {\n\t\t\tif (!cell.content.eq(baseContent)) tr.replace(tr.mapping.map(pos + 1), tr.mapping.map(pos + cell.nodeSize - 1), new Slice(baseContent, 0, 0));\n\t\t});\n\t\tif (tr.docChanged) dispatch(tr);\n\t}\n\treturn true;\n}\n/**\n* Move a table row from index `from` to index `to`.\n*\n* @public\n*/\nfunction moveTableRow(options) {\n\treturn (state, dispatch) => {\n\t\tconst { from: originIndex, to: targetIndex, select = true, pos = state.selection.from } = options;\n\t\tconst tr = state.tr;\n\t\tif (moveRow({\n\t\t\ttr,\n\t\t\toriginIndex,\n\t\t\ttargetIndex,\n\t\t\tselect,\n\t\t\tpos\n\t\t})) {\n\t\t\tdispatch === null || dispatch === void 0 || dispatch(tr);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t};\n}\n/**\n* Move a table column from index `from` to index `to`.\n*\n* @public\n*/\nfunction moveTableColumn(options) {\n\treturn (state, dispatch) => {\n\t\tconst { from: originIndex, to: targetIndex, select = true, pos = state.selection.from } = options;\n\t\tconst tr = state.tr;\n\t\tif (moveColumn({\n\t\t\ttr,\n\t\t\toriginIndex,\n\t\t\ttargetIndex,\n\t\t\tselect,\n\t\t\tpos\n\t\t})) {\n\t\t\tdispatch === null || dispatch === void 0 || dispatch(tr);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t};\n}\n\n//#endregion\n//#region src/copypaste.ts\n/**\n* Get a rectangular area of cells from a slice, or null if the outer\n* nodes of the slice aren't table cells or rows.\n*\n* @internal\n*/\nfunction pastedCells(slice) {\n\tif (slice.size === 0) return null;\n\tlet { content, openStart, openEnd } = slice;\n\twhile (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == \"table\")) {\n\t\topenStart--;\n\t\topenEnd--;\n\t\tcontent = content.child(0).content;\n\t}\n\tconst first = content.child(0);\n\tconst role = first.type.spec.tableRole;\n\tconst schema = first.type.schema, rows = [];\n\tif (role == \"row\") for (let i = 0; i < content.childCount; i++) {\n\t\tlet cells = content.child(i).content;\n\t\tconst left = i ? 0 : Math.max(0, openStart - 1);\n\t\tconst right = i < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);\n\t\tif (left || right) cells = fitSlice(tableNodeTypes(schema).row, new Slice(cells, left, right)).content;\n\t\trows.push(cells);\n\t}\n\telse if (role == \"cell\" || role == \"header_cell\") rows.push(openStart || openEnd ? fitSlice(tableNodeTypes(schema).row, new Slice(content, openStart, openEnd)).content : content);\n\telse return null;\n\treturn ensureRectangular(schema, rows);\n}\nfunction ensureRectangular(schema, rows) {\n\tconst widths = [];\n\tfor (let i = 0; i < rows.length; i++) {\n\t\tconst row = rows[i];\n\t\tfor (let j = row.childCount - 1; j >= 0; j--) {\n\t\t\tconst { rowspan, colspan } = row.child(j).attrs;\n\t\t\tfor (let r = i; r < i + rowspan; r++) widths[r] = (widths[r] || 0) + colspan;\n\t\t}\n\t}\n\tlet width = 0;\n\tfor (let r = 0; r < widths.length; r++) width = Math.max(width, widths[r]);\n\tfor (let r = 0; r < widths.length; r++) {\n\t\tif (r >= rows.length) rows.push(Fragment.empty);\n\t\tif (widths[r] < width) {\n\t\t\tconst empty = tableNodeTypes(schema).cell.createAndFill();\n\t\t\tconst cells = [];\n\t\t\tfor (let i = widths[r]; i < width; i++) cells.push(empty);\n\t\t\trows[r] = rows[r].append(Fragment.from(cells));\n\t\t}\n\t}\n\treturn {\n\t\theight: rows.length,\n\t\twidth,\n\t\trows\n\t};\n}\nfunction fitSlice(nodeType, slice) {\n\tconst node = nodeType.createAndFill();\n\treturn new Transform(node).replace(0, node.content.size, slice).doc;\n}\n/**\n* Clip or extend (repeat) the given set of cells to cover the given\n* width and height. Will clip rowspan/colspan cells at the edges when\n* they stick out.\n*\n* @internal\n*/\nfunction clipCells({ width, height, rows }, newWidth, newHeight) {\n\tif (width != newWidth) {\n\t\tconst added = [];\n\t\tconst newRows = [];\n\t\tfor (let row = 0; row < rows.length; row++) {\n\t\t\tconst frag = rows[row], cells = [];\n\t\t\tfor (let col = added[row] || 0, i = 0; col < newWidth; i++) {\n\t\t\t\tlet cell = frag.child(i % frag.childCount);\n\t\t\t\tif (col + cell.attrs.colspan > newWidth) cell = cell.type.createChecked(removeColSpan(cell.attrs, cell.attrs.colspan, col + cell.attrs.colspan - newWidth), cell.content);\n\t\t\t\tcells.push(cell);\n\t\t\t\tcol += cell.attrs.colspan;\n\t\t\t\tfor (let j = 1; j < cell.attrs.rowspan; j++) added[row + j] = (added[row + j] || 0) + cell.attrs.colspan;\n\t\t\t}\n\t\t\tnewRows.push(Fragment.from(cells));\n\t\t}\n\t\trows = newRows;\n\t\twidth = newWidth;\n\t}\n\tif (height != newHeight) {\n\t\tconst newRows = [];\n\t\tfor (let row = 0, i = 0; row < newHeight; row++, i++) {\n\t\t\tconst cells = [], source = rows[i % height];\n\t\t\tfor (let j = 0; j < source.childCount; j++) {\n\t\t\t\tlet cell = source.child(j);\n\t\t\t\tif (row + cell.attrs.rowspan > newHeight) cell = cell.type.create({\n\t\t\t\t\t...cell.attrs,\n\t\t\t\t\trowspan: Math.max(1, newHeight - cell.attrs.rowspan)\n\t\t\t\t}, cell.content);\n\t\t\t\tcells.push(cell);\n\t\t\t}\n\t\t\tnewRows.push(Fragment.from(cells));\n\t\t}\n\t\trows = newRows;\n\t\theight = newHeight;\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\trows\n\t};\n}\nfunction growTable(tr, map, table, start, width, height, mapFrom) {\n\tconst schema = tr.doc.type.schema;\n\tconst types = tableNodeTypes(schema);\n\tlet empty;\n\tlet emptyHead;\n\tif (width > map.width) for (let row = 0, rowEnd = 0; row < map.height; row++) {\n\t\tconst rowNode = table.child(row);\n\t\trowEnd += rowNode.nodeSize;\n\t\tconst cells = [];\n\t\tlet add;\n\t\tif (rowNode.lastChild == null || rowNode.lastChild.type == types.cell) add = empty || (empty = types.cell.createAndFill());\n\t\telse add = emptyHead || (emptyHead = types.header_cell.createAndFill());\n\t\tfor (let i = map.width; i < width; i++) cells.push(add);\n\t\ttr.insert(tr.mapping.slice(mapFrom).map(rowEnd - 1 + start), cells);\n\t}\n\tif (height > map.height) {\n\t\tconst cells = [];\n\t\tfor (let i = 0, start$1 = (map.height - 1) * map.width; i < Math.max(map.width, width); i++) {\n\t\t\tconst header = i >= map.width ? false : table.nodeAt(map.map[start$1 + i]).type == types.header_cell;\n\t\t\tcells.push(header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty || (empty = types.cell.createAndFill()));\n\t\t}\n\t\tconst emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];\n\t\tfor (let i = map.height; i < height; i++) rows.push(emptyRow);\n\t\ttr.insert(tr.mapping.slice(mapFrom).map(start + table.nodeSize - 2), rows);\n\t}\n\treturn !!(empty || emptyHead);\n}\nfunction isolateHorizontal(tr, map, table, start, left, right, top, mapFrom) {\n\tif (top == 0 || top == map.height) return false;\n\tlet found = false;\n\tfor (let col = left; col < right; col++) {\n\t\tconst index = top * map.width + col, pos = map.map[index];\n\t\tif (map.map[index - map.width] == pos) {\n\t\t\tfound = true;\n\t\t\tconst cell = table.nodeAt(pos);\n\t\t\tconst { top: cellTop, left: cellLeft } = map.findCell(pos);\n\t\t\ttr.setNodeMarkup(tr.mapping.slice(mapFrom).map(pos + start), null, {\n\t\t\t\t...cell.attrs,\n\t\t\t\trowspan: top - cellTop\n\t\t\t});\n\t\t\ttr.insert(tr.mapping.slice(mapFrom).map(map.positionAt(top, cellLeft, table)), cell.type.createAndFill({\n\t\t\t\t...cell.attrs,\n\t\t\t\trowspan: cellTop + cell.attrs.rowspan - top\n\t\t\t}));\n\t\t\tcol += cell.attrs.colspan - 1;\n\t\t}\n\t}\n\treturn found;\n}\nfunction isolateVertical(tr, map, table, start, top, bottom, left, mapFrom) {\n\tif (left == 0 || left == map.width) return false;\n\tlet found = false;\n\tfor (let row = top; row < bottom; row++) {\n\t\tconst index = row * map.width + left, pos = map.map[index];\n\t\tif (map.map[index - 1] == pos) {\n\t\t\tfound = true;\n\t\t\tconst cell = table.nodeAt(pos);\n\t\t\tconst cellLeft = map.colCount(pos);\n\t\t\tconst updatePos = tr.mapping.slice(mapFrom).map(pos + start);\n\t\t\ttr.setNodeMarkup(updatePos, null, removeColSpan(cell.attrs, left - cellLeft, cell.attrs.colspan - (left - cellLeft)));\n\t\t\ttr.insert(updatePos + cell.nodeSize, cell.type.createAndFill(removeColSpan(cell.attrs, 0, left - cellLeft)));\n\t\t\trow += cell.attrs.rowspan - 1;\n\t\t}\n\t}\n\treturn found;\n}\n/**\n* Insert the given set of cells (as returned by `pastedCells`) into a\n* table, at the position pointed at by rect.\n*\n* @internal\n*/\nfunction insertCells(state, dispatch, tableStart, rect, cells) {\n\tlet table = tableStart ? state.doc.nodeAt(tableStart - 1) : state.doc;\n\tif (!table) throw new Error(\"No table found\");\n\tlet map = TableMap.get(table);\n\tconst { top, left } = rect;\n\tconst right = left + cells.width, bottom = top + cells.height;\n\tconst tr = state.tr;\n\tlet mapFrom = 0;\n\tfunction recomp() {\n\t\ttable = tableStart ? tr.doc.nodeAt(tableStart - 1) : tr.doc;\n\t\tif (!table) throw new Error(\"No table found\");\n\t\tmap = TableMap.get(table);\n\t\tmapFrom = tr.mapping.maps.length;\n\t}\n\tif (growTable(tr, map, table, tableStart, right, bottom, mapFrom)) recomp();\n\tif (isolateHorizontal(tr, map, table, tableStart, left, right, top, mapFrom)) recomp();\n\tif (isolateHorizontal(tr, map, table, tableStart, left, right, bottom, mapFrom)) recomp();\n\tif (isolateVertical(tr, map, table, tableStart, top, bottom, left, mapFrom)) recomp();\n\tif (isolateVertical(tr, map, table, tableStart, top, bottom, right, mapFrom)) recomp();\n\tfor (let row = top; row < bottom; row++) {\n\t\tconst from = map.positionAt(row, left, table), to = map.positionAt(row, right, table);\n\t\ttr.replace(tr.mapping.slice(mapFrom).map(from + tableStart), tr.mapping.slice(mapFrom).map(to + tableStart), new Slice(cells.rows[row - top], 0, 0));\n\t}\n\trecomp();\n\ttr.setSelection(new CellSelection(tr.doc.resolve(tableStart + map.positionAt(top, left, table)), tr.doc.resolve(tableStart + map.positionAt(bottom - 1, right - 1, table))));\n\tdispatch(tr);\n}\n\n//#endregion\n//#region src/input.ts\nconst handleKeyDown = keydownHandler({\n\tArrowLeft: arrow(\"horiz\", -1),\n\tArrowRight: arrow(\"horiz\", 1),\n\tArrowUp: arrow(\"vert\", -1),\n\tArrowDown: arrow(\"vert\", 1),\n\t\"Shift-ArrowLeft\": shiftArrow(\"horiz\", -1),\n\t\"Shift-ArrowRight\": shiftArrow(\"horiz\", 1),\n\t\"Shift-ArrowUp\": shiftArrow(\"vert\", -1),\n\t\"Shift-ArrowDown\": shiftArrow(\"vert\", 1),\n\tBackspace: deleteCellSelection,\n\t\"Mod-Backspace\": deleteCellSelection,\n\tDelete: deleteCellSelection,\n\t\"Mod-Delete\": deleteCellSelection\n});\nfunction maybeSetSelection(state, dispatch, selection) {\n\tif (selection.eq(state.selection)) return false;\n\tif (dispatch) dispatch(state.tr.setSelection(selection).scrollIntoView());\n\treturn true;\n}\n/**\n* @internal\n*/\nfunction arrow(axis, dir) {\n\treturn (state, dispatch, view) => {\n\t\tif (!view) return false;\n\t\tconst sel = state.selection;\n\t\tif (sel instanceof CellSelection) return maybeSetSelection(state, dispatch, Selection.near(sel.$headCell, dir));\n\t\tif (axis != \"horiz\" && !sel.empty) return false;\n\t\tconst end = atEndOfCell(view, axis, dir);\n\t\tif (end == null) return false;\n\t\tif (axis == \"horiz\") return maybeSetSelection(state, dispatch, Selection.near(state.doc.resolve(sel.head + dir), dir));\n\t\telse {\n\t\t\tconst $cell = state.doc.resolve(end);\n\t\t\tconst $next = nextCell($cell, axis, dir);\n\t\t\tlet newSel;\n\t\t\tif ($next) newSel = Selection.near($next, 1);\n\t\t\telse if (dir < 0) newSel = Selection.near(state.doc.resolve($cell.before(-1)), -1);\n\t\t\telse newSel = Selection.near(state.doc.resolve($cell.after(-1)), 1);\n\t\t\treturn maybeSetSelection(state, dispatch, newSel);\n\t\t}\n\t};\n}\nfunction shiftArrow(axis, dir) {\n\treturn (state, dispatch, view) => {\n\t\tif (!view) return false;\n\t\tconst sel = state.selection;\n\t\tlet cellSel;\n\t\tif (sel instanceof CellSelection) cellSel = sel;\n\t\telse {\n\t\t\tconst end = atEndOfCell(view, axis, dir);\n\t\t\tif (end == null) return false;\n\t\t\tcellSel = new CellSelection(state.doc.resolve(end));\n\t\t}\n\t\tconst $head = nextCell(cellSel.$headCell, axis, dir);\n\t\tif (!$head) return false;\n\t\treturn maybeSetSelection(state, dispatch, new CellSelection(cellSel.$anchorCell, $head));\n\t};\n}\nfunction handleTripleClick(view, pos) {\n\tconst doc = view.state.doc, $cell = cellAround(doc.resolve(pos));\n\tif (!$cell) return false;\n\tview.dispatch(view.state.tr.setSelection(new CellSelection($cell)));\n\treturn true;\n}\n/**\n* @public\n*/\nfunction handlePaste(view, _, slice) {\n\tif (!isInTable(view.state)) return false;\n\tlet cells = pastedCells(slice);\n\tconst sel = view.state.selection;\n\tif (sel instanceof CellSelection) {\n\t\tif (!cells) cells = {\n\t\t\twidth: 1,\n\t\t\theight: 1,\n\t\t\trows: [Fragment.from(fitSlice(tableNodeTypes(view.state.schema).cell, slice))]\n\t\t};\n\t\tconst table = sel.$anchorCell.node(-1);\n\t\tconst start = sel.$anchorCell.start(-1);\n\t\tconst rect = TableMap.get(table).rectBetween(sel.$anchorCell.pos - start, sel.$headCell.pos - start);\n\t\tcells = clipCells(cells, rect.right - rect.left, rect.bottom - rect.top);\n\t\tinsertCells(view.state, view.dispatch, start, rect, cells);\n\t\treturn true;\n\t} else if (cells) {\n\t\tconst $cell = selectionCell(view.state);\n\t\tconst start = $cell.start(-1);\n\t\tinsertCells(view.state, view.dispatch, start, TableMap.get($cell.node(-1)).findCell($cell.pos - start), cells);\n\t\treturn true;\n\t} else return false;\n}\nfunction handleMouseDown$1(view, startEvent) {\n\tvar _cellUnderMouse;\n\tif (startEvent.button != 0) return;\n\tif (startEvent.ctrlKey || startEvent.metaKey) return;\n\tconst startDOMCell = domInCell(view, startEvent.target);\n\tlet $anchor;\n\tif (startEvent.shiftKey && view.state.selection instanceof CellSelection) {\n\t\tsetCellSelection(view.state.selection.$anchorCell, startEvent);\n\t\tstartEvent.preventDefault();\n\t} else if (startEvent.shiftKey && startDOMCell && ($anchor = cellAround(view.state.selection.$anchor)) != null && ((_cellUnderMouse = cellUnderMouse(view, startEvent)) === null || _cellUnderMouse === void 0 ? void 0 : _cellUnderMouse.pos) != $anchor.pos) {\n\t\tsetCellSelection($anchor, startEvent);\n\t\tstartEvent.preventDefault();\n\t} else if (!startDOMCell) return;\n\tfunction setCellSelection($anchor$1, event) {\n\t\tlet $head = cellUnderMouse(view, event);\n\t\tconst starting = tableEditingKey.getState(view.state) == null;\n\t\tif (!$head || !inSameTable($anchor$1, $head)) if (starting) $head = $anchor$1;\n\t\telse return;\n\t\tconst selection = new CellSelection($anchor$1, $head);\n\t\tif (starting || !view.state.selection.eq(selection)) {\n\t\t\tconst tr = view.state.tr.setSelection(selection);\n\t\t\tif (starting) tr.setMeta(tableEditingKey, $anchor$1.pos);\n\t\t\tview.dispatch(tr);\n\t\t}\n\t}\n\tfunction stop() {\n\t\tview.root.removeEventListener(\"mouseup\", stop);\n\t\tview.root.removeEventListener(\"dragstart\", stop);\n\t\tview.root.removeEventListener(\"mousemove\", move);\n\t\tif (tableEditingKey.getState(view.state) != null) view.dispatch(view.state.tr.setMeta(tableEditingKey, -1));\n\t}\n\tfunction move(_event) {\n\t\tconst event = _event;\n\t\tconst anchor = tableEditingKey.getState(view.state);\n\t\tlet $anchor$1;\n\t\tif (anchor != null) $anchor$1 = view.state.doc.resolve(anchor);\n\t\telse if (domInCell(view, event.target) != startDOMCell) {\n\t\t\t$anchor$1 = cellUnderMouse(view, startEvent);\n\t\t\tif (!$anchor$1) return stop();\n\t\t}\n\t\tif ($anchor$1) setCellSelection($anchor$1, event);\n\t}\n\tview.root.addEventListener(\"mouseup\", stop);\n\tview.root.addEventListener(\"dragstart\", stop);\n\tview.root.addEventListener(\"mousemove\", move);\n}\nfunction atEndOfCell(view, axis, dir) {\n\tif (!(view.state.selection instanceof TextSelection)) return null;\n\tconst { $head } = view.state.selection;\n\tfor (let d = $head.depth - 1; d >= 0; d--) {\n\t\tconst parent = $head.node(d);\n\t\tif ((dir < 0 ? $head.index(d) : $head.indexAfter(d)) != (dir < 0 ? 0 : parent.childCount)) return null;\n\t\tif (parent.type.spec.tableRole == \"cell\" || parent.type.spec.tableRole == \"header_cell\") {\n\t\t\tconst cellPos = $head.before(d);\n\t\t\tconst dirStr = axis == \"vert\" ? dir > 0 ? \"down\" : \"up\" : dir > 0 ? \"right\" : \"left\";\n\t\t\treturn view.endOfTextblock(dirStr) ? cellPos : null;\n\t\t}\n\t}\n\treturn null;\n}\nfunction domInCell(view, dom) {\n\tfor (; dom && dom != view.dom; dom = dom.parentNode) if (dom.nodeName == \"TD\" || dom.nodeName == \"TH\") return dom;\n\treturn null;\n}\nfunction cellUnderMouse(view, event) {\n\tconst mousePos = view.posAtCoords({\n\t\tleft: event.clientX,\n\t\ttop: event.clientY\n\t});\n\tif (!mousePos) return null;\n\tlet { inside, pos } = mousePos;\n\treturn inside >= 0 && cellAround(view.state.doc.resolve(inside)) || cellAround(view.state.doc.resolve(pos));\n}\n\n//#endregion\n//#region src/tableview.ts\n/**\n* @public\n*/\nvar TableView = class {\n\tconstructor(node, defaultCellMinWidth) {\n\t\tthis.node = node;\n\t\tthis.defaultCellMinWidth = defaultCellMinWidth;\n\t\tthis.dom = document.createElement(\"div\");\n\t\tthis.dom.className = \"tableWrapper\";\n\t\tthis.table = this.dom.appendChild(document.createElement(\"table\"));\n\t\tthis.table.style.setProperty(\"--default-cell-min-width\", `${defaultCellMinWidth}px`);\n\t\tthis.colgroup = this.table.appendChild(document.createElement(\"colgroup\"));\n\t\tupdateColumnsOnResize(node, this.colgroup, this.table, defaultCellMinWidth);\n\t\tthis.contentDOM = this.table.appendChild(document.createElement(\"tbody\"));\n\t}\n\tupdate(node) {\n\t\tif (node.type != this.node.type) return false;\n\t\tthis.node = node;\n\t\tupdateColumnsOnResize(node, this.colgroup, this.table, this.defaultCellMinWidth);\n\t\treturn true;\n\t}\n\tignoreMutation(record) {\n\t\treturn record.type == \"attributes\" && (record.target == this.table || this.colgroup.contains(record.target));\n\t}\n};\n/**\n* @public\n*/\nfunction updateColumnsOnResize(node, colgroup, table, defaultCellMinWidth, overrideCol, overrideValue) {\n\tlet totalWidth = 0;\n\tlet fixedWidth = true;\n\tlet nextDOM = colgroup.firstChild;\n\tconst row = node.firstChild;\n\tif (!row) return;\n\tfor (let i = 0, col = 0; i < row.childCount; i++) {\n\t\tconst { colspan, colwidth } = row.child(i).attrs;\n\t\tfor (let j = 0; j < colspan; j++, col++) {\n\t\t\tconst hasWidth = overrideCol == col ? overrideValue : colwidth && colwidth[j];\n\t\t\tconst cssWidth = hasWidth ? hasWidth + \"px\" : \"\";\n\t\t\ttotalWidth += hasWidth || defaultCellMinWidth;\n\t\t\tif (!hasWidth) fixedWidth = false;\n\t\t\tif (!nextDOM) {\n\t\t\t\tconst col$1 = document.createElement(\"col\");\n\t\t\t\tcol$1.style.width = cssWidth;\n\t\t\t\tcolgroup.appendChild(col$1);\n\t\t\t} else {\n\t\t\t\tif (nextDOM.style.width != cssWidth) nextDOM.style.width = cssWidth;\n\t\t\t\tnextDOM = nextDOM.nextSibling;\n\t\t\t}\n\t\t}\n\t}\n\twhile (nextDOM) {\n\t\tvar _nextDOM$parentNode;\n\t\tconst after = nextDOM.nextSibling;\n\t\t(_nextDOM$parentNode = nextDOM.parentNode) === null || _nextDOM$parentNode === void 0 || _nextDOM$parentNode.removeChild(nextDOM);\n\t\tnextDOM = after;\n\t}\n\tif (fixedWidth) {\n\t\ttable.style.width = totalWidth + \"px\";\n\t\ttable.style.minWidth = \"\";\n\t} else {\n\t\ttable.style.width = \"\";\n\t\ttable.style.minWidth = totalWidth + \"px\";\n\t}\n}\n\n//#endregion\n//#region src/columnresizing.ts\n/**\n* @public\n*/\nconst columnResizingPluginKey = new PluginKey(\"tableColumnResizing\");\n/**\n* @public\n*/\nfunction columnResizing({ handleWidth = 5, cellMinWidth = 25, defaultCellMinWidth = 100, View = TableView, lastColumnResizable = true } = {}) {\n\tconst plugin = new Plugin({\n\t\tkey: columnResizingPluginKey,\n\t\tstate: {\n\t\t\tinit(_, state) {\n\t\t\t\tvar _plugin$spec;\n\t\t\t\tconst nodeViews = (_plugin$spec = plugin.spec) === null || _plugin$spec === void 0 || (_plugin$spec = _plugin$spec.props) === null || _plugin$spec === void 0 ? void 0 : _plugin$spec.nodeViews;\n\t\t\t\tconst tableName = tableNodeTypes(state.schema).table.name;\n\t\t\t\tif (View && nodeViews) nodeViews[tableName] = (node, view) => {\n\t\t\t\t\treturn new View(node, defaultCellMinWidth, view);\n\t\t\t\t};\n\t\t\t\treturn new ResizeState(-1, false);\n\t\t\t},\n\t\t\tapply(tr, prev) {\n\t\t\t\treturn prev.apply(tr);\n\t\t\t}\n\t\t},\n\t\tprops: {\n\t\t\tattributes: (state) => {\n\t\t\t\tconst pluginState = columnResizingPluginKey.getState(state);\n\t\t\t\treturn pluginState && pluginState.activeHandle > -1 ? { class: \"resize-cursor\" } : {};\n\t\t\t},\n\t\t\thandleDOMEvents: {\n\t\t\t\tmousemove: (view, event) => {\n\t\t\t\t\thandleMouseMove(view, event, handleWidth, lastColumnResizable);\n\t\t\t\t},\n\t\t\t\tmouseleave: (view) => {\n\t\t\t\t\thandleMouseLeave(view);\n\t\t\t\t},\n\t\t\t\tmousedown: (view, event) => {\n\t\t\t\t\thandleMouseDown(view, event, cellMinWidth, defaultCellMinWidth);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdecorations: (state) => {\n\t\t\t\tconst pluginState = columnResizingPluginKey.getState(state);\n\t\t\t\tif (pluginState && pluginState.activeHandle > -1) return handleDecorations(state, pluginState.activeHandle);\n\t\t\t},\n\t\t\tnodeViews: {}\n\t\t}\n\t});\n\treturn plugin;\n}\n/**\n* @public\n*/\nvar ResizeState = class ResizeState {\n\tconstructor(activeHandle, dragging) {\n\t\tthis.activeHandle = activeHandle;\n\t\tthis.dragging = dragging;\n\t}\n\tapply(tr) {\n\t\tconst state = this;\n\t\tconst action = tr.getMeta(columnResizingPluginKey);\n\t\tif (action && action.setHandle != null) return new ResizeState(action.setHandle, false);\n\t\tif (action && action.setDragging !== void 0) return new ResizeState(state.activeHandle, action.setDragging);\n\t\tif (state.activeHandle > -1 && tr.docChanged) {\n\t\t\tlet handle = tr.mapping.map(state.activeHandle, -1);\n\t\t\tif (!pointsAtCell(tr.doc.resolve(handle))) handle = -1;\n\t\t\treturn new ResizeState(handle, state.dragging);\n\t\t}\n\t\treturn state;\n\t}\n};\nfunction handleMouseMove(view, event, handleWidth, lastColumnResizable) {\n\tif (!view.editable) return;\n\tconst pluginState = columnResizingPluginKey.getState(view.state);\n\tif (!pluginState) return;\n\tif (!pluginState.dragging) {\n\t\tconst target = domCellAround(event.target);\n\t\tlet cell = -1;\n\t\tif (target) {\n\t\t\tconst { left, right } = target.getBoundingClientRect();\n\t\t\tif (event.clientX - left <= handleWidth) cell = edgeCell(view, event, \"left\", handleWidth);\n\t\t\telse if (right - event.clientX <= handleWidth) cell = edgeCell(view, event, \"right\", handleWidth);\n\t\t}\n\t\tif (cell != pluginState.activeHandle) {\n\t\t\tif (!lastColumnResizable && cell !== -1) {\n\t\t\t\tconst $cell = view.state.doc.resolve(cell);\n\t\t\t\tconst table = $cell.node(-1);\n\t\t\t\tconst map = TableMap.get(table);\n\t\t\t\tconst tableStart = $cell.start(-1);\n\t\t\t\tif (map.colCount($cell.pos - tableStart) + $cell.nodeAfter.attrs.colspan - 1 == map.width - 1) return;\n\t\t\t}\n\t\t\tupdateHandle(view, cell);\n\t\t}\n\t}\n}\nfunction handleMouseLeave(view) {\n\tif (!view.editable) return;\n\tconst pluginState = columnResizingPluginKey.getState(view.state);\n\tif (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging) updateHandle(view, -1);\n}\nfunction handleMouseDown(view, event, cellMinWidth, defaultCellMinWidth) {\n\tvar _view$dom$ownerDocume;\n\tif (!view.editable) return false;\n\tconst win = (_view$dom$ownerDocume = view.dom.ownerDocument.defaultView) !== null && _view$dom$ownerDocume !== void 0 ? _view$dom$ownerDocume : window;\n\tconst pluginState = columnResizingPluginKey.getState(view.state);\n\tif (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging) return false;\n\tconst cell = view.state.doc.nodeAt(pluginState.activeHandle);\n\tconst width = currentColWidth(view, pluginState.activeHandle, cell.attrs);\n\tview.dispatch(view.state.tr.setMeta(columnResizingPluginKey, { setDragging: {\n\t\tstartX: event.clientX,\n\t\tstartWidth: width\n\t} }));\n\tfunction finish(event$1) {\n\t\twin.removeEventListener(\"mouseup\", finish);\n\t\twin.removeEventListener(\"mousemove\", move);\n\t\tconst pluginState$1 = columnResizingPluginKey.getState(view.state);\n\t\tif (pluginState$1 === null || pluginState$1 === void 0 ? void 0 : pluginState$1.dragging) {\n\t\t\tupdateColumnWidth(view, pluginState$1.activeHandle, draggedWidth(pluginState$1.dragging, event$1, cellMinWidth));\n\t\t\tview.dispatch(view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null }));\n\t\t}\n\t}\n\tfunction move(event$1) {\n\t\tif (!event$1.which) return finish(event$1);\n\t\tconst pluginState$1 = columnResizingPluginKey.getState(view.state);\n\t\tif (!pluginState$1) return;\n\t\tif (pluginState$1.dragging) {\n\t\t\tconst dragged = draggedWidth(pluginState$1.dragging, event$1, cellMinWidth);\n\t\t\tdisplayColumnWidth(view, pluginState$1.activeHandle, dragged, defaultCellMinWidth);\n\t\t}\n\t}\n\tdisplayColumnWidth(view, pluginState.activeHandle, width, defaultCellMinWidth);\n\twin.addEventListener(\"mouseup\", finish);\n\twin.addEventListener(\"mousemove\", move);\n\tevent.preventDefault();\n\treturn true;\n}\nfunction currentColWidth(view, cellPos, { colspan, colwidth }) {\n\tconst width = colwidth && colwidth[colwidth.length - 1];\n\tif (width) return width;\n\tconst dom = view.domAtPos(cellPos);\n\tlet domWidth = dom.node.childNodes[dom.offset].offsetWidth, parts = colspan;\n\tif (colwidth) {\n\t\tfor (let i = 0; i < colspan; i++) if (colwidth[i]) {\n\t\t\tdomWidth -= colwidth[i];\n\t\t\tparts--;\n\t\t}\n\t}\n\treturn domWidth / parts;\n}\nfunction domCellAround(target) {\n\twhile (target && target.nodeName != \"TD\" && target.nodeName != \"TH\") target = target.classList && target.classList.contains(\"ProseMirror\") ? null : target.parentNode;\n\treturn target;\n}\nfunction edgeCell(view, event, side, handleWidth) {\n\tconst offset = side == \"right\" ? -handleWidth : handleWidth;\n\tconst found = view.posAtCoords({\n\t\tleft: event.clientX + offset,\n\t\ttop: event.clientY\n\t});\n\tif (!found) return -1;\n\tconst { pos } = found;\n\tconst $cell = cellAround(view.state.doc.resolve(pos));\n\tif (!$cell) return -1;\n\tif (side == \"right\") return $cell.pos;\n\tconst map = TableMap.get($cell.node(-1)), start = $cell.start(-1);\n\tconst index = map.map.indexOf($cell.pos - start);\n\treturn index % map.width == 0 ? -1 : start + map.map[index - 1];\n}\nfunction draggedWidth(dragging, event, resizeMinWidth) {\n\tconst offset = event.clientX - dragging.startX;\n\treturn Math.max(resizeMinWidth, dragging.startWidth + offset);\n}\nfunction updateHandle(view, value) {\n\tview.dispatch(view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value }));\n}\nfunction updateColumnWidth(view, cell, width) {\n\tconst $cell = view.state.doc.resolve(cell);\n\tconst table = $cell.node(-1), map = TableMap.get(table), start = $cell.start(-1);\n\tconst col = map.colCount($cell.pos - start) + $cell.nodeAfter.attrs.colspan - 1;\n\tconst tr = view.state.tr;\n\tfor (let row = 0; row < map.height; row++) {\n\t\tconst mapIndex = row * map.width + col;\n\t\tif (row && map.map[mapIndex] == map.map[mapIndex - map.width]) continue;\n\t\tconst pos = map.map[mapIndex];\n\t\tconst attrs = table.nodeAt(pos).attrs;\n\t\tconst index = attrs.colspan == 1 ? 0 : col - map.colCount(pos);\n\t\tif (attrs.colwidth && attrs.colwidth[index] == width) continue;\n\t\tconst colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);\n\t\tcolwidth[index] = width;\n\t\ttr.setNodeMarkup(start + pos, null, {\n\t\t\t...attrs,\n\t\t\tcolwidth\n\t\t});\n\t}\n\tif (tr.docChanged) view.dispatch(tr);\n}\nfunction displayColumnWidth(view, cell, width, defaultCellMinWidth) {\n\tconst $cell = view.state.doc.resolve(cell);\n\tconst table = $cell.node(-1), start = $cell.start(-1);\n\tconst col = TableMap.get(table).colCount($cell.pos - start) + $cell.nodeAfter.attrs.colspan - 1;\n\tlet dom = view.domAtPos($cell.start(-1)).node;\n\twhile (dom && dom.nodeName != \"TABLE\") dom = dom.parentNode;\n\tif (!dom) return;\n\tupdateColumnsOnResize(table, dom.firstChild, dom, defaultCellMinWidth, col, width);\n}\nfunction zeroes(n) {\n\treturn Array(n).fill(0);\n}\nfunction handleDecorations(state, cell) {\n\tconst decorations = [];\n\tconst $cell = state.doc.resolve(cell);\n\tconst table = $cell.node(-1);\n\tif (!table) return DecorationSet.empty;\n\tconst map = TableMap.get(table);\n\tconst start = $cell.start(-1);\n\tconst col = map.colCount($cell.pos - start) + $cell.nodeAfter.attrs.colspan - 1;\n\tfor (let row = 0; row < map.height; row++) {\n\t\tconst index = col + row * map.width;\n\t\tif ((col == map.width - 1 || map.map[index] != map.map[index + 1]) && (row == 0 || map.map[index] != map.map[index - map.width])) {\n\t\t\tvar _columnResizingPlugin;\n\t\t\tconst cellPos = map.map[index];\n\t\t\tconst pos = start + cellPos + table.nodeAt(cellPos).nodeSize - 1;\n\t\t\tconst dom = document.createElement(\"div\");\n\t\t\tdom.className = \"column-resize-handle\";\n\t\t\tif ((_columnResizingPlugin = columnResizingPluginKey.getState(state)) === null || _columnResizingPlugin === void 0 ? void 0 : _columnResizingPlugin.dragging) decorations.push(Decoration.node(start + cellPos, start + cellPos + table.nodeAt(cellPos).nodeSize, { class: \"column-resize-dragging\" }));\n\t\t\tdecorations.push(Decoration.widget(pos, dom));\n\t\t}\n\t}\n\treturn DecorationSet.create(state.doc, decorations);\n}\n\n//#endregion\n//#region src/index.ts\n/**\n* Creates a [plugin](http://prosemirror.net/docs/ref/#state.Plugin)\n* that, when added to an editor, enables cell-selection, handles\n* cell-based copy/paste, and makes sure tables stay well-formed (each\n* row has the same width, and cells don't overlap).\n*\n* You should probably put this plugin near the end of your array of\n* plugins, since it handles mouse and arrow key events in tables\n* rather broadly, and other plugins, like the gap cursor or the\n* column-width dragging plugin, might want to get a turn first to\n* perform more specific behavior.\n*\n* @public\n*/\nfunction tableEditing({ allowTableNodeSelection = false } = {}) {\n\treturn new Plugin({\n\t\tkey: tableEditingKey,\n\t\tstate: {\n\t\t\tinit() {\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tapply(tr, cur) {\n\t\t\t\tconst set = tr.getMeta(tableEditingKey);\n\t\t\t\tif (set != null) return set == -1 ? null : set;\n\t\t\t\tif (cur == null || !tr.docChanged) return cur;\n\t\t\t\tconst { deleted, pos } = tr.mapping.mapResult(cur);\n\t\t\t\treturn deleted ? null : pos;\n\t\t\t}\n\t\t},\n\t\tprops: {\n\t\t\tdecorations: drawCellSelection,\n\t\t\thandleDOMEvents: { mousedown: handleMouseDown$1 },\n\t\t\tcreateSelectionBetween(view) {\n\t\t\t\treturn tableEditingKey.getState(view.state) != null ? view.state.selection : null;\n\t\t\t},\n\t\t\thandleTripleClick,\n\t\t\thandleKeyDown,\n\t\t\thandlePaste\n\t\t},\n\t\tappendTransaction(_, oldState, state) {\n\t\t\treturn normalizeSelection(state, fixTables(state, oldState), allowTableNodeSelection);\n\t\t}\n\t});\n}\n\n//#endregion\nexport { CellBookmark, CellSelection, ResizeState, TableMap, TableView, clipCells as __clipCells, insertCells as __insertCells, pastedCells as __pastedCells, addColSpan, addColumn, addColumnAfter, addColumnBefore, addRow, addRowAfter, addRowBefore, cellAround, cellNear, colCount, columnIsHeader, columnResizing, columnResizingPluginKey, deleteCellSelection, deleteColumn, deleteRow, deleteTable, findCell, findCellPos, findCellRange, findTable, fixTables, fixTablesKey, goToNextCell, handlePaste, inSameTable, isInTable, mergeCells, moveCellForward, moveTableColumn, moveTableRow, nextCell, pointsAtCell, removeColSpan, removeColumn, removeRow, rowIsHeader, selectedRect, selectionCell, setCellAttr, splitCell, splitCellWithType, tableEditing, tableEditingKey, tableNodeTypes, tableNodes, toggleHeader, toggleHeaderCell, toggleHeaderColumn, toggleHeaderRow, updateColumnsOnResize };\n//# sourceMappingURL=index.js.map"],"names":["normalizeKeyName","name","alt","ctrl","shift","meta","parts","split","result","length","i","mod","test","Error","mac","modifiers","event","altKey","ctrlKey","metaKey","shiftKey","keymap","bindings","Plugin","props","handleKeyDown","keydownHandler","map","copy","Object","create","prop","normalize","view","baseName","keyName","direct","state","dispatch","noShift","windows","base","keyCode","fromCode","freshColWidth","attrs","colwidth","slice","colspan","push","getCellAttrs","dom","extraAttrs","widthAttr","getAttribute","widths","s","Number","rowspan","getter","getFromDOM","value","setCellAttrs","node","join","setter","setDOMAttr","validateColwidth","Array","isArray","TypeError","_iterator","_createForOfIteratorHelper","_step","n","done","item","err","e","f","tableNodes","options","cellAttributes","cellAttrs","default","validate","table","content","tableRole","isolating","group","tableGroup","parseDOM","tag","toDOM","table_row","table_cell","cellContent","getAttrs","table_header","tableNodeTypes","schema","cached","nodes","type","role","spec","cellAround","$pos","d","depth","resolve","before","isInTable","$head","selection","selectionCell","sel","$anchorCell","pos","$headCell","$anchor","$cell","after","nodeAfter","firstChild","doc","nodeBefore","lastChild","nodeSize","cellNear","RangeError","concat","head","pointsAtCell","parent","inSameTable","$cellA","$cellB","start","end","nextCell","axis","dir","TableMap","get","tableStart","moved","removeColSpan","arguments","undefined","_objectSpread","splice","some","w","addColSpan","drawCellSelection","CellSelection","cells","forEachCell","Decoration","class","DecorationSet","changedDescendants","old","cur","offset","oldSize","childCount","curSize","outer","j","child","scan","Math","min","sameMarkup","nodesBetween","size","fixTables","oldState","tr","check","o","tablePos","problems","mustAdd","height","prob","cell","nodeAt","row","setNodeMarkup","mapping","delete","first","last","add","createAndFill","side","insert","setMeta","fixTablesKey","fixTable","descendants","selectedRect","rectBetween","findCell","addColumn","col","refColumn","headerCell","header_cell","width","index","colCount","positionAt","addColumnBefore","rect","left","addColumnAfter","right","removeColumn","mapStart","maps","deleteColumn","addRow","rowPos","refRow","_table$nodeAt","rowIsHeader","_table$nodeAt2","t","addRowBefore","top","addRowAfter","bottom","removeRow","nextRow","mapFrom","seen","Set","has","newPos","deleteRow","isEmpty","c","isTextblock","mergeCells","_ref5","indexTop","indexLeft","indexBottom","indexRight","cellsOverlapRectangle","mergedPos","mergedCell","Fragment","empty","cellPos","append","mapped","replaceWith","setSelection","splitCell","nodeTypes","getCellType","cellNode","_cellAround","cellWrapping","$from","baseAttrs","lastCell","isHeaderEnabledByType","types","cellPositions","cellsInRect","toggleHeader","useDeprecatedLogic","steps","deprecated_toggleHeader","isHeaderRowEnabled","isHeaderColumnEnabled","selectionStartsAt","cellsRect","newType","forEach","relativeCellPos","deleteTable","scrollIntoView","deleteCellSelection","baseContent","eq","replace","Slice","docChanged","pastedCells","openStart","openEnd","rows","max","fitSlice","_o22$child$attrs","r","from","ensureRectangular","nodeType","Transform","isolateHorizontal","found","cellTop","cellLeft","isolateVertical","updatePos","insertCells","recomp","p","emptyHead","rowEnd","rowNode","start$1","header","emptyRow","to","maybeSetSelection","arrow","Selection","near","atEndOfCell","$next","newSel","shiftArrow","cellSel","handleTripleClick","handlePaste","_","_ref7","newWidth","newHeight","added","newRows","frag","createChecked","source","clipCells","handleMouseDown$1","startEvent","_cellUnderMouse","button","startDOMCell","domInCell","target","setCellSelection","preventDefault","cellUnderMouse","$anchor$1","starting","tableEditingKey","getState","stop","root","removeEventListener","move","_event","anchor","addEventListener","TextSelection","indexAfter","dirStr","endOfTextblock","parentNode","nodeName","mousePos","posAtCoords","clientX","clientY","inside","updateColumnsOnResize","colgroup","defaultCellMinWidth","overrideCol","overrideValue","totalWidth","fixedWidth","nextDOM","_f$child$attrs","hasWidth","cssWidth","style","nextSibling","col$1","document","createElement","appendChild","_nextDOM$parentNode","removeChild","minWidth","columnResizing","_ref8","_ref8$handleWidth","handleWidth","cellMinWidth","_ref8$defaultCellMinW","_ref8$View","View","TableView","lastColumnResizable","_ref8$lastColumnResiz","plugin","key","columnResizingPluginKey","init","_plugin$spec","nodeViews","tableName","ResizeState","apply","prev","attributes","pluginState","activeHandle","handleDOMEvents","mousemove","editable","dragging","classList","contains","domCellAround","_i28$getBoundingClien","getBoundingClientRect","edgeCell","updateHandle","handleMouseMove","mouseleave","handleMouseLeave","mousedown","_view$dom$ownerDocume","win","ownerDocument","defaultView","window","domAtPos","domWidth","childNodes","offsetWidth","currentColWidth","finish","event$1","pluginState$1","mapIndex","zeroes","a","updateColumnWidth","draggedWidth","setDragging","which","dragged","displayColumnWidth","startX","startWidth","handleMouseDown","decorations","_columnResizingPlugin","className","widget","handleDecorations","indexOf","resizeMinWidth","setHandle","fill","tableEditing","allowTableNodeSelection","_ref10","_ref10$allowTableNode","set","getMeta","_t$mapping$mapResult","mapResult","deleted","createSelectionBetween","appendTransaction","NodeSelection","rowSelection","_ref11","$to","afterFrom","beforeTo","isCellBoundarySelection","_ref12","fromCellBoundaryNode","toCellBoundaryNode","parentOffset","isTextSelectionAcrossCells","normalizeSelection","navigator","platform","WeakMap","cache","readFromCache","addToCache","M","cacheSize","cachePos","y","this","_createClass","curPos","_this$findCell","b","_this$findCell2","leftA","rightA","topA","bottomA","leftB","rightB","topB","bottomB","rowStart","rowEndIndex","hasRowSpan","rowWidth","prevRow","findWidth","mapPos","colWidths","h","colW","widthIndex","expectedPos","missing","tableMap","badWidths","updated","colWidth","unshift","findBadColWidths","computeMap","PluginKey","_e14","filter","ranges","SelectionRange","super","_this","_inherits","tableChanged","isRowSelection","isColSelection","colSelection","between","rowContent","cellRect","extraLeft","extraRight","JSON","stringify","fragment","_r$_e","findFrom","anchorTop","headTop","anchorBottom","headBottom","anchorLeft","headLeft","anchorRight","headRight","other","toJSON","getBookmark","CellBookmark","anchorRect","headRect","fromJSON","json","anchorCell","headCell","prototype","visible","jsonID","_export","toggleHeaderRow","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Backspace","Delete","St","setProperty","contentDOM","update","ignoreMutation","record","action","handle"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -0,0 +1,7 @@
1
+ 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);}System.register(["./index-89c520e9.cjs.js"],function(_export,_context){"use strict";var t,n,e,i,u;function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),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 _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function r(_ref){var n=_ref.rules;var e=new t({state:{init:function init(){return null;},apply:function apply(t,n){var e=t.getMeta(this);return e||(t.selectionSet||t.docChanged?null:n);}},props:{handleTextInput:function handleTextInput(t,i,r,u){return l(t,i,r,u,n,e);},handleDOMEvents:{compositionend:function compositionend(t){setTimeout(function(){var i=t.state.selection.$cursor;i&&l(t,i.pos,i.pos,"",n,e);});}}},isInputRules:!0});return e;}function l(t,n,e,i,r,l){if(t.composing)return!1;var u=t.state,o=u.doc.resolve(n),s=o.parent.textBetween(Math.max(0,o.parentOffset-500),o.parentOffset,null,"")+i;var _loop=function _loop(){var a=r[f];if(!a.inCodeMark&&o.marks().some(function(t){return t.type.spec.code;}))return 0;// continue
2
+ if(o.parent.type.spec.code){if(!a.inCode)return 0;// continue
3
+ }else if("only"===a.inCode)return 0;// continue
4
+ var c=a.match.exec(s);if(!c||c[0].length<i.length)return 0;// continue
5
+ var d=n-(c[0].length-i.length);if(!a.inCodeMark){var _t2=!1;if(u.doc.nodesBetween(d,o.pos,function(n){n.isInline&&n.marks.some(function(t){return t.type.spec.code;})&&(_t2=!0);}),_t2)return 0;// continue
6
+ }var h=a.handler(u,c,d,e);if(h)return{v:(a.undoable&&h.setMeta(l,{transform:h,from:n,to:e,text:i}),t.dispatch(h),!0)};},_ret;for(var f=0;f<r.length;f++){_ret=_loop();if(_ret===0)continue;if(_ret)return _ret.v;}return!1;}function o(t,r){var l=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var u=arguments.length>3?arguments[3]:undefined;return new i(t,function(t,i,o,s){var f=l instanceof Function?l(i):l,a=t.tr["delete"](o,s),c=a.doc.resolve(o).blockRange(),d=c&&n(c,r,f);if(!d)return null;a.wrap(c,d);var h=a.doc.resolve(o-1).nodeBefore;return h&&h.type==r&&e(a.doc,o-1)&&(!u||u(i,h))&&a.join(o-1),a;});}function s(t,n){var e=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;return new i(t,function(t,i,r,l){var u=t.doc.resolve(r),o=e instanceof Function?e(i):e;return u.node(-1).canReplaceWith(u.index(-1),u.indexAfter(-1),n)?t.tr["delete"](r,l).setBlockType(r,r,n,o):null;});}_export({i:r,t:s,w:o});return{setters:[function(_index00aCjsJs){t=_index00aCjsJs.b;n=_index00aCjsJs.f;e=_index00aCjsJs.g;}],execute:function execute(){_export("I",i=/*#__PURE__*/_createClass(function i(t,n){var e=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};_classCallCheck(this,i);var _i;this.match=t,this.match=t,this.handler="string"==typeof n?(_i=n,function(t,n,e,r){var l=_i;if(n[1]){var _t=n[0].lastIndexOf(n[1]);l+=n[0].slice(_t+n[1].length);var _i2=(e+=_t)-r;_i2>0&&(l=n[0].slice(_t-_i2,_t)+l,e=r);}return t.tr.insertText(l,e,r);}):n,this.undoable=!1!==e.undoable,this.inCode=e.inCode||!1,this.inCodeMark=!1!==e.inCodeMark;}));_export("u",u=function u(t,n){var e=t.plugins;for(var _i3=0;_i3<e.length;_i3++){var _r=void 0,_l=e[_i3];if(_l.spec.isInputRules&&(_r=_l.getState(t))){if(n){var _e=t.tr,_i4=_r.transform;for(var _t3=_i4.steps.length-1;_t3>=0;_t3--)_e.step(_i4.steps[_t3].invert(_i4.docs[_t3]));if(_r.text){var _n=_e.doc.resolve(_r.from).marks();_e.replaceWith(_r.from,_r.to,t.schema.text(_r.text,_n));}else _e["delete"](_r.from,_r.to);n(_e);}return!0;}}return!1;});new i(/--$/,"—",{inCodeMark:!1}),new i(/\.\.\.$/,"…",{inCodeMark:!1}),new i(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(")$/,"“",{inCodeMark:!1}),new i(/"$/,"”",{inCodeMark:!1}),new i(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(')$/,"‘",{inCodeMark:!1}),new i(/'$/,"’",{inCodeMark:!1});}};});
7
+ //# sourceMappingURL=index-f956f56d.cjs.js.map