@contember/react-slate-editor-base 2.0.0-alpha.8 → 2.0.0-beta.1

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 (293) hide show
  1. package/dist/development/src/components/RichTextEditor.cjs +3 -3
  2. package/dist/development/src/components/RichTextEditor.cjs.map +1 -1
  3. package/dist/development/src/components/RichTextEditor.js +3 -3
  4. package/dist/development/src/components/RichTextEditor.js.map +1 -1
  5. package/dist/development/src/components/triggers/EditorElementTrigger.cjs.map +1 -1
  6. package/dist/development/src/components/triggers/EditorElementTrigger.js.map +1 -1
  7. package/dist/development/src/components/triggers/EditorGenericTrigger.cjs.map +1 -1
  8. package/dist/development/src/components/triggers/EditorGenericTrigger.js.map +1 -1
  9. package/dist/development/src/components/triggers/EditorMarkTrigger.cjs.map +1 -1
  10. package/dist/development/src/components/triggers/EditorMarkTrigger.js.map +1 -1
  11. package/dist/development/src/components/triggers/EditorWrapNodeTrigger.cjs.map +1 -1
  12. package/dist/development/src/components/triggers/EditorWrapNodeTrigger.js.map +1 -1
  13. package/dist/development/src/editor/createEditor.cjs.map +1 -1
  14. package/dist/development/src/editor/createEditor.js.map +1 -1
  15. package/dist/development/src/editor/createEditorWithEssentials.cjs.map +1 -1
  16. package/dist/development/src/editor/createEditorWithEssentials.js.map +1 -1
  17. package/dist/development/src/editor/index.cjs.map +1 -1
  18. package/dist/development/src/editor/methods/addMarks.cjs.map +1 -1
  19. package/dist/development/src/editor/methods/addMarks.js.map +1 -1
  20. package/dist/development/src/editor/methods/canToggleMark.cjs.map +1 -1
  21. package/dist/development/src/editor/methods/canToggleMark.js.map +1 -1
  22. package/dist/development/src/editor/methods/closest.cjs.map +1 -1
  23. package/dist/development/src/editor/methods/closest.js.map +1 -1
  24. package/dist/development/src/editor/methods/closestBlockEntry.cjs.map +1 -1
  25. package/dist/development/src/editor/methods/ejectElement.cjs.map +1 -1
  26. package/dist/development/src/editor/methods/ejectElement.js.map +1 -1
  27. package/dist/development/src/editor/methods/getElementDataAttributes.cjs.map +1 -1
  28. package/dist/development/src/editor/methods/getElementDataAttributes.js.map +1 -1
  29. package/dist/development/src/editor/methods/getPreviousSibling.cjs.map +1 -1
  30. package/dist/development/src/editor/methods/getPreviousSibling.js.map +1 -1
  31. package/dist/development/src/editor/methods/hasMarks.cjs.map +1 -1
  32. package/dist/development/src/editor/methods/hasMarks.js.map +1 -1
  33. package/dist/development/src/editor/methods/hasParentOfType.cjs.map +1 -1
  34. package/dist/development/src/editor/methods/hasParentOfType.js.map +1 -1
  35. package/dist/development/src/editor/methods/isElementType.cjs.map +1 -1
  36. package/dist/development/src/editor/methods/isElementType.js.map +1 -1
  37. package/dist/development/src/editor/methods/permissivelyDeserializeNodes.cjs.map +1 -1
  38. package/dist/development/src/editor/methods/permissivelyDeserializeNodes.js.map +1 -1
  39. package/dist/development/src/editor/methods/removeMarks.cjs.map +1 -1
  40. package/dist/development/src/editor/methods/removeMarks.js.map +1 -1
  41. package/dist/development/src/editor/methods/serializeNodes.cjs.map +1 -1
  42. package/dist/development/src/editor/methods/serializeNodes.js.map +1 -1
  43. package/dist/development/src/editor/methods/strictlyDeserializeNodes.cjs.map +1 -1
  44. package/dist/development/src/editor/methods/strictlyDeserializeNodes.js.map +1 -1
  45. package/dist/development/src/editor/methods/toLatestFormat.cjs.map +1 -1
  46. package/dist/development/src/editor/methods/toLatestFormat.js.map +1 -1
  47. package/dist/development/src/internal/components/DefaultElement.cjs.map +1 -1
  48. package/dist/development/src/internal/components/DefaultElement.js.map +1 -1
  49. package/dist/development/src/internal/hooks/useRichTextFieldNodes.cjs.map +1 -1
  50. package/dist/development/src/internal/hooks/useRichTextFieldNodes.js.map +1 -1
  51. package/dist/development/src/internal/utils/EditorPasteUtils.cjs.map +1 -1
  52. package/dist/development/src/internal/utils/EditorPasteUtils.js.map +1 -1
  53. package/dist/development/src/internal/utils/parseUrl.cjs.map +1 -1
  54. package/dist/development/src/internal/utils/parseUrl.js.map +1 -1
  55. package/dist/development/src/plugins/attributes/alignment/alignButton.cjs.map +1 -1
  56. package/dist/development/src/plugins/attributes/alignment/alignButton.js.map +1 -1
  57. package/dist/development/src/plugins/behaviour/paste/HtmlDeserializer.cjs.map +1 -1
  58. package/dist/development/src/plugins/behaviour/paste/HtmlDeserializer.js.map +1 -1
  59. package/dist/development/src/plugins/behaviour/paste/createMarkHtmlDeserializer.cjs.map +1 -1
  60. package/dist/development/src/plugins/behaviour/paste/createMarkHtmlDeserializer.js.map +1 -1
  61. package/dist/development/src/plugins/behaviour/paste/withPaste.cjs.map +1 -1
  62. package/dist/development/src/plugins/behaviour/paste/withPaste.js.map +1 -1
  63. package/dist/development/src/plugins/element/anchors/AnchorElement.cjs.map +1 -1
  64. package/dist/development/src/plugins/element/anchors/AnchorElement.js.map +1 -1
  65. package/dist/development/src/plugins/element/anchors/AnchorHtmlDeserializer.cjs.map +1 -1
  66. package/dist/development/src/plugins/element/anchors/AnchorHtmlDeserializer.js.map +1 -1
  67. package/dist/development/src/plugins/element/anchors/AnchorModifications.cjs.map +1 -1
  68. package/dist/development/src/plugins/element/anchors/AnchorModifications.js.map +1 -1
  69. package/dist/development/src/plugins/element/anchors/withAnchors.cjs.map +1 -1
  70. package/dist/development/src/plugins/element/anchors/withAnchors.js.map +1 -1
  71. package/dist/development/src/plugins/element/headings/HeadingElement.cjs.map +1 -1
  72. package/dist/development/src/plugins/element/headings/HeadingElement.js.map +1 -1
  73. package/dist/development/src/plugins/element/headings/HeadingHtmlDeserializer.cjs.map +1 -1
  74. package/dist/development/src/plugins/element/headings/HeadingHtmlDeserializer.js.map +1 -1
  75. package/dist/development/src/plugins/element/headings/withHeadings.cjs.map +1 -1
  76. package/dist/development/src/plugins/element/headings/withHeadings.js.map +1 -1
  77. package/dist/development/src/plugins/element/horizonalRules/HorizontalRuleElement.cjs.map +1 -1
  78. package/dist/development/src/plugins/element/horizonalRules/HorizontalRuleElement.js.map +1 -1
  79. package/dist/development/src/plugins/element/horizonalRules/withHorizontalRules.cjs.map +1 -1
  80. package/dist/development/src/plugins/element/horizonalRules/withHorizontalRules.js.map +1 -1
  81. package/dist/development/src/plugins/element/lists/ListElement.cjs.map +1 -1
  82. package/dist/development/src/plugins/element/lists/ListElement.js.map +1 -1
  83. package/dist/development/src/plugins/element/lists/ListHtmlDeserializer.cjs.map +1 -1
  84. package/dist/development/src/plugins/element/lists/ListHtmlDeserializer.js.map +1 -1
  85. package/dist/development/src/plugins/element/lists/ListItemElement.cjs.map +1 -1
  86. package/dist/development/src/plugins/element/lists/ListItemElement.js.map +1 -1
  87. package/dist/development/src/plugins/element/lists/OrderedListElement.cjs.map +1 -1
  88. package/dist/development/src/plugins/element/lists/UnorderedListElement.cjs.map +1 -1
  89. package/dist/development/src/plugins/element/lists/transforms/dedentListItem.cjs.map +1 -1
  90. package/dist/development/src/plugins/element/lists/transforms/dedentListItem.js.map +1 -1
  91. package/dist/development/src/plugins/element/lists/transforms/indentListItem.cjs.map +1 -1
  92. package/dist/development/src/plugins/element/lists/transforms/indentListItem.js.map +1 -1
  93. package/dist/development/src/plugins/element/lists/transforms/normalizeListElement.cjs.map +1 -1
  94. package/dist/development/src/plugins/element/lists/transforms/normalizeListElement.js.map +1 -1
  95. package/dist/development/src/plugins/element/lists/transforms/toggleListElement.cjs.map +1 -1
  96. package/dist/development/src/plugins/element/lists/transforms/toggleListElement.js.map +1 -1
  97. package/dist/development/src/plugins/element/lists/withLists.cjs.map +1 -1
  98. package/dist/development/src/plugins/element/lists/withLists.js.map +1 -1
  99. package/dist/development/src/plugins/element/paragraphs/ParagraphElement.cjs.map +1 -1
  100. package/dist/development/src/plugins/element/paragraphs/ParagraphElement.js.map +1 -1
  101. package/dist/development/src/plugins/element/paragraphs/withParagraphs.cjs.map +1 -1
  102. package/dist/development/src/plugins/element/paragraphs/withParagraphs.js.map +1 -1
  103. package/dist/development/src/plugins/element/scrollTargets/ScrollTargetElement.cjs.map +1 -1
  104. package/dist/development/src/plugins/element/scrollTargets/ScrollTargetElement.js.map +1 -1
  105. package/dist/development/src/plugins/element/scrollTargets/withScrollTargets.cjs.map +1 -1
  106. package/dist/development/src/plugins/element/scrollTargets/withScrollTargets.js.map +1 -1
  107. package/dist/development/src/plugins/element/tables/TableCellElement.cjs.map +1 -1
  108. package/dist/development/src/plugins/element/tables/TableCellElement.js.map +1 -1
  109. package/dist/development/src/plugins/element/tables/TableElement.cjs.map +1 -1
  110. package/dist/development/src/plugins/element/tables/TableElement.js.map +1 -1
  111. package/dist/development/src/plugins/element/tables/TableElementSelection.cjs.map +1 -1
  112. package/dist/development/src/plugins/element/tables/TableElementSelection.js.map +1 -1
  113. package/dist/development/src/plugins/element/tables/TableHtmlDeserializer.cjs +36 -0
  114. package/dist/development/src/plugins/element/tables/TableHtmlDeserializer.cjs.map +1 -0
  115. package/dist/development/src/plugins/element/tables/TableHtmlDeserializer.js +36 -0
  116. package/dist/development/src/plugins/element/tables/TableHtmlDeserializer.js.map +1 -0
  117. package/dist/development/src/plugins/element/tables/TableModifications.cjs.map +1 -1
  118. package/dist/development/src/plugins/element/tables/TableModifications.js +1 -1
  119. package/dist/development/src/plugins/element/tables/TableModifications.js.map +1 -1
  120. package/dist/development/src/plugins/element/tables/TableRowElement.cjs.map +1 -1
  121. package/dist/development/src/plugins/element/tables/TableRowElement.js.map +1 -1
  122. package/dist/development/src/plugins/element/tables/gaugeTableColumnCount.cjs.map +1 -1
  123. package/dist/development/src/plugins/element/tables/gaugeTableColumnCount.js.map +1 -1
  124. package/dist/development/src/plugins/element/tables/withTables.cjs +2 -0
  125. package/dist/development/src/plugins/element/tables/withTables.cjs.map +1 -1
  126. package/dist/development/src/plugins/element/tables/withTables.js +2 -0
  127. package/dist/development/src/plugins/element/tables/withTables.js.map +1 -1
  128. package/dist/development/src/plugins/text/bold/withBold.cjs.map +1 -1
  129. package/dist/development/src/plugins/text/bold/withBold.js.map +1 -1
  130. package/dist/development/src/plugins/text/code/withCode.cjs.map +1 -1
  131. package/dist/development/src/plugins/text/highlight/withHighlight.cjs.map +1 -1
  132. package/dist/development/src/plugins/text/italic/withItalic.cjs.map +1 -1
  133. package/dist/development/src/plugins/text/italic/withItalic.js.map +1 -1
  134. package/dist/development/src/plugins/text/newline/withNewline.cjs.map +1 -1
  135. package/dist/development/src/plugins/text/newline/withNewline.js.map +1 -1
  136. package/dist/development/src/plugins/text/strikeThrough/withStrikeThrough.cjs.map +1 -1
  137. package/dist/development/src/plugins/text/strikeThrough/withStrikeThrough.js.map +1 -1
  138. package/dist/development/src/plugins/text/underline/withUnderline.cjs.map +1 -1
  139. package/dist/development/src/plugins/text/underline/withUnderline.js.map +1 -1
  140. package/dist/production/src/components/RichTextEditor.cjs +3 -3
  141. package/dist/production/src/components/RichTextEditor.cjs.map +1 -1
  142. package/dist/production/src/components/RichTextEditor.js +3 -3
  143. package/dist/production/src/components/RichTextEditor.js.map +1 -1
  144. package/dist/production/src/components/triggers/EditorElementTrigger.cjs.map +1 -1
  145. package/dist/production/src/components/triggers/EditorElementTrigger.js.map +1 -1
  146. package/dist/production/src/components/triggers/EditorGenericTrigger.cjs.map +1 -1
  147. package/dist/production/src/components/triggers/EditorGenericTrigger.js.map +1 -1
  148. package/dist/production/src/components/triggers/EditorMarkTrigger.cjs.map +1 -1
  149. package/dist/production/src/components/triggers/EditorMarkTrigger.js.map +1 -1
  150. package/dist/production/src/components/triggers/EditorWrapNodeTrigger.cjs.map +1 -1
  151. package/dist/production/src/components/triggers/EditorWrapNodeTrigger.js.map +1 -1
  152. package/dist/production/src/editor/createEditor.cjs.map +1 -1
  153. package/dist/production/src/editor/createEditor.js.map +1 -1
  154. package/dist/production/src/editor/createEditorWithEssentials.cjs.map +1 -1
  155. package/dist/production/src/editor/createEditorWithEssentials.js.map +1 -1
  156. package/dist/production/src/editor/index.cjs.map +1 -1
  157. package/dist/production/src/editor/methods/addMarks.cjs.map +1 -1
  158. package/dist/production/src/editor/methods/addMarks.js.map +1 -1
  159. package/dist/production/src/editor/methods/canToggleMark.cjs.map +1 -1
  160. package/dist/production/src/editor/methods/canToggleMark.js.map +1 -1
  161. package/dist/production/src/editor/methods/closest.cjs.map +1 -1
  162. package/dist/production/src/editor/methods/closest.js.map +1 -1
  163. package/dist/production/src/editor/methods/closestBlockEntry.cjs.map +1 -1
  164. package/dist/production/src/editor/methods/ejectElement.cjs.map +1 -1
  165. package/dist/production/src/editor/methods/ejectElement.js.map +1 -1
  166. package/dist/production/src/editor/methods/getElementDataAttributes.cjs.map +1 -1
  167. package/dist/production/src/editor/methods/getElementDataAttributes.js.map +1 -1
  168. package/dist/production/src/editor/methods/getPreviousSibling.cjs.map +1 -1
  169. package/dist/production/src/editor/methods/getPreviousSibling.js.map +1 -1
  170. package/dist/production/src/editor/methods/hasMarks.cjs.map +1 -1
  171. package/dist/production/src/editor/methods/hasMarks.js.map +1 -1
  172. package/dist/production/src/editor/methods/hasParentOfType.cjs.map +1 -1
  173. package/dist/production/src/editor/methods/hasParentOfType.js.map +1 -1
  174. package/dist/production/src/editor/methods/isElementType.cjs.map +1 -1
  175. package/dist/production/src/editor/methods/isElementType.js.map +1 -1
  176. package/dist/production/src/editor/methods/permissivelyDeserializeNodes.cjs.map +1 -1
  177. package/dist/production/src/editor/methods/permissivelyDeserializeNodes.js.map +1 -1
  178. package/dist/production/src/editor/methods/removeMarks.cjs.map +1 -1
  179. package/dist/production/src/editor/methods/removeMarks.js.map +1 -1
  180. package/dist/production/src/editor/methods/serializeNodes.cjs.map +1 -1
  181. package/dist/production/src/editor/methods/serializeNodes.js.map +1 -1
  182. package/dist/production/src/editor/methods/strictlyDeserializeNodes.cjs.map +1 -1
  183. package/dist/production/src/editor/methods/strictlyDeserializeNodes.js.map +1 -1
  184. package/dist/production/src/editor/methods/toLatestFormat.cjs.map +1 -1
  185. package/dist/production/src/editor/methods/toLatestFormat.js.map +1 -1
  186. package/dist/production/src/internal/components/DefaultElement.cjs.map +1 -1
  187. package/dist/production/src/internal/components/DefaultElement.js.map +1 -1
  188. package/dist/production/src/internal/hooks/useRichTextFieldNodes.cjs.map +1 -1
  189. package/dist/production/src/internal/hooks/useRichTextFieldNodes.js.map +1 -1
  190. package/dist/production/src/internal/utils/EditorPasteUtils.cjs.map +1 -1
  191. package/dist/production/src/internal/utils/EditorPasteUtils.js.map +1 -1
  192. package/dist/production/src/internal/utils/parseUrl.cjs.map +1 -1
  193. package/dist/production/src/internal/utils/parseUrl.js.map +1 -1
  194. package/dist/production/src/plugins/attributes/alignment/alignButton.cjs.map +1 -1
  195. package/dist/production/src/plugins/attributes/alignment/alignButton.js.map +1 -1
  196. package/dist/production/src/plugins/behaviour/paste/HtmlDeserializer.cjs.map +1 -1
  197. package/dist/production/src/plugins/behaviour/paste/HtmlDeserializer.js.map +1 -1
  198. package/dist/production/src/plugins/behaviour/paste/createMarkHtmlDeserializer.cjs.map +1 -1
  199. package/dist/production/src/plugins/behaviour/paste/createMarkHtmlDeserializer.js.map +1 -1
  200. package/dist/production/src/plugins/behaviour/paste/withPaste.cjs.map +1 -1
  201. package/dist/production/src/plugins/behaviour/paste/withPaste.js.map +1 -1
  202. package/dist/production/src/plugins/element/anchors/AnchorElement.cjs.map +1 -1
  203. package/dist/production/src/plugins/element/anchors/AnchorElement.js.map +1 -1
  204. package/dist/production/src/plugins/element/anchors/AnchorHtmlDeserializer.cjs.map +1 -1
  205. package/dist/production/src/plugins/element/anchors/AnchorHtmlDeserializer.js.map +1 -1
  206. package/dist/production/src/plugins/element/anchors/AnchorModifications.cjs.map +1 -1
  207. package/dist/production/src/plugins/element/anchors/AnchorModifications.js.map +1 -1
  208. package/dist/production/src/plugins/element/anchors/withAnchors.cjs.map +1 -1
  209. package/dist/production/src/plugins/element/anchors/withAnchors.js.map +1 -1
  210. package/dist/production/src/plugins/element/headings/HeadingElement.cjs.map +1 -1
  211. package/dist/production/src/plugins/element/headings/HeadingElement.js.map +1 -1
  212. package/dist/production/src/plugins/element/headings/HeadingHtmlDeserializer.cjs.map +1 -1
  213. package/dist/production/src/plugins/element/headings/HeadingHtmlDeserializer.js.map +1 -1
  214. package/dist/production/src/plugins/element/headings/withHeadings.cjs.map +1 -1
  215. package/dist/production/src/plugins/element/headings/withHeadings.js.map +1 -1
  216. package/dist/production/src/plugins/element/horizonalRules/HorizontalRuleElement.cjs.map +1 -1
  217. package/dist/production/src/plugins/element/horizonalRules/HorizontalRuleElement.js.map +1 -1
  218. package/dist/production/src/plugins/element/horizonalRules/withHorizontalRules.cjs.map +1 -1
  219. package/dist/production/src/plugins/element/horizonalRules/withHorizontalRules.js.map +1 -1
  220. package/dist/production/src/plugins/element/lists/ListElement.cjs.map +1 -1
  221. package/dist/production/src/plugins/element/lists/ListElement.js.map +1 -1
  222. package/dist/production/src/plugins/element/lists/ListHtmlDeserializer.cjs.map +1 -1
  223. package/dist/production/src/plugins/element/lists/ListHtmlDeserializer.js.map +1 -1
  224. package/dist/production/src/plugins/element/lists/ListItemElement.cjs.map +1 -1
  225. package/dist/production/src/plugins/element/lists/ListItemElement.js.map +1 -1
  226. package/dist/production/src/plugins/element/lists/OrderedListElement.cjs.map +1 -1
  227. package/dist/production/src/plugins/element/lists/UnorderedListElement.cjs.map +1 -1
  228. package/dist/production/src/plugins/element/lists/transforms/dedentListItem.cjs.map +1 -1
  229. package/dist/production/src/plugins/element/lists/transforms/dedentListItem.js.map +1 -1
  230. package/dist/production/src/plugins/element/lists/transforms/indentListItem.cjs.map +1 -1
  231. package/dist/production/src/plugins/element/lists/transforms/indentListItem.js.map +1 -1
  232. package/dist/production/src/plugins/element/lists/transforms/normalizeListElement.cjs.map +1 -1
  233. package/dist/production/src/plugins/element/lists/transforms/normalizeListElement.js.map +1 -1
  234. package/dist/production/src/plugins/element/lists/transforms/toggleListElement.cjs.map +1 -1
  235. package/dist/production/src/plugins/element/lists/transforms/toggleListElement.js.map +1 -1
  236. package/dist/production/src/plugins/element/lists/withLists.cjs.map +1 -1
  237. package/dist/production/src/plugins/element/lists/withLists.js.map +1 -1
  238. package/dist/production/src/plugins/element/paragraphs/ParagraphElement.cjs.map +1 -1
  239. package/dist/production/src/plugins/element/paragraphs/ParagraphElement.js.map +1 -1
  240. package/dist/production/src/plugins/element/paragraphs/withParagraphs.cjs.map +1 -1
  241. package/dist/production/src/plugins/element/paragraphs/withParagraphs.js.map +1 -1
  242. package/dist/production/src/plugins/element/scrollTargets/ScrollTargetElement.cjs.map +1 -1
  243. package/dist/production/src/plugins/element/scrollTargets/ScrollTargetElement.js.map +1 -1
  244. package/dist/production/src/plugins/element/scrollTargets/withScrollTargets.cjs.map +1 -1
  245. package/dist/production/src/plugins/element/scrollTargets/withScrollTargets.js.map +1 -1
  246. package/dist/production/src/plugins/element/tables/TableCellElement.cjs.map +1 -1
  247. package/dist/production/src/plugins/element/tables/TableCellElement.js.map +1 -1
  248. package/dist/production/src/plugins/element/tables/TableElement.cjs.map +1 -1
  249. package/dist/production/src/plugins/element/tables/TableElement.js.map +1 -1
  250. package/dist/production/src/plugins/element/tables/TableElementSelection.cjs.map +1 -1
  251. package/dist/production/src/plugins/element/tables/TableElementSelection.js.map +1 -1
  252. package/dist/production/src/plugins/element/tables/TableHtmlDeserializer.cjs +36 -0
  253. package/dist/production/src/plugins/element/tables/TableHtmlDeserializer.cjs.map +1 -0
  254. package/dist/production/src/plugins/element/tables/TableHtmlDeserializer.js +36 -0
  255. package/dist/production/src/plugins/element/tables/TableHtmlDeserializer.js.map +1 -0
  256. package/dist/production/src/plugins/element/tables/TableModifications.cjs.map +1 -1
  257. package/dist/production/src/plugins/element/tables/TableModifications.js +1 -1
  258. package/dist/production/src/plugins/element/tables/TableModifications.js.map +1 -1
  259. package/dist/production/src/plugins/element/tables/TableRowElement.cjs.map +1 -1
  260. package/dist/production/src/plugins/element/tables/TableRowElement.js.map +1 -1
  261. package/dist/production/src/plugins/element/tables/gaugeTableColumnCount.cjs.map +1 -1
  262. package/dist/production/src/plugins/element/tables/gaugeTableColumnCount.js.map +1 -1
  263. package/dist/production/src/plugins/element/tables/withTables.cjs +2 -0
  264. package/dist/production/src/plugins/element/tables/withTables.cjs.map +1 -1
  265. package/dist/production/src/plugins/element/tables/withTables.js +2 -0
  266. package/dist/production/src/plugins/element/tables/withTables.js.map +1 -1
  267. package/dist/production/src/plugins/text/bold/withBold.cjs.map +1 -1
  268. package/dist/production/src/plugins/text/bold/withBold.js.map +1 -1
  269. package/dist/production/src/plugins/text/code/withCode.cjs.map +1 -1
  270. package/dist/production/src/plugins/text/highlight/withHighlight.cjs.map +1 -1
  271. package/dist/production/src/plugins/text/italic/withItalic.cjs.map +1 -1
  272. package/dist/production/src/plugins/text/italic/withItalic.js.map +1 -1
  273. package/dist/production/src/plugins/text/newline/withNewline.cjs.map +1 -1
  274. package/dist/production/src/plugins/text/newline/withNewline.js.map +1 -1
  275. package/dist/production/src/plugins/text/strikeThrough/withStrikeThrough.cjs.map +1 -1
  276. package/dist/production/src/plugins/text/strikeThrough/withStrikeThrough.js.map +1 -1
  277. package/dist/production/src/plugins/text/underline/withUnderline.cjs.map +1 -1
  278. package/dist/production/src/plugins/text/underline/withUnderline.js.map +1 -1
  279. package/dist/types/editor/createEditor.d.ts +1 -1
  280. package/dist/types/editor/createEditor.d.ts.map +1 -1
  281. package/dist/types/plugins/element/tables/TableHtmlDeserializer.d.ts +3 -0
  282. package/dist/types/plugins/element/tables/TableHtmlDeserializer.d.ts.map +1 -0
  283. package/dist/types/plugins/element/tables/withTables.d.ts.map +1 -1
  284. package/dist/types/tsconfig.tsbuildinfo +1 -1
  285. package/dist/types/types/plugins.d.ts +1 -2
  286. package/dist/types/types/plugins.d.ts.map +1 -1
  287. package/package.json +10 -9
  288. package/src/components/RichTextEditor.tsx +3 -3
  289. package/src/editor/createEditor.ts +1 -1
  290. package/src/plugins/element/tables/TableHtmlDeserializer.ts +37 -0
  291. package/src/plugins/element/tables/withTables.ts +3 -0
  292. package/src/tsconfig.json +0 -1
  293. package/src/types/plugins.ts +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"toggleListElement.js","sources":["../../../../../../../../packages/react-slate-editor-base/src/plugins/element/lists/transforms/toggleListElement.ts"],"sourcesContent":["import { OrderedListElement, orderedListElementType } from '../OrderedListElement'\nimport { UnorderedListElement, unorderedListElementType } from '../UnorderedListElement'\nimport { Editor, Element as SlateElement, NodeEntry, Text, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../../editor'\nimport { listItemElementType } from '../ListItemElement'\nimport { isListElement } from '../ListElement'\n\nexport const toggleListElement = <T extends OrderedListElement | UnorderedListElement>(\n\teditor: Editor,\n\telementType: T['type'],\n\tsuchThat: Partial<T> | undefined,\n\totherKindOfList: typeof orderedListElementType | typeof unorderedListElementType,\n) => {\n\tif (editor.isElementActive(elementType, suchThat)) {\n\t\tconst closestListEntry = ContemberEditor.closest(editor, {\n\t\t\tmatch: node => SlateElement.isElement(node) && node.type === elementType,\n\t\t}) as NodeEntry<UnorderedListElement | OrderedListElement>\n\t\tif (!closestListEntry) {\n\t\t\treturn\n\t\t}\n\t\treturn Editor.withoutNormalizing(editor, () => {\n\t\t\tconst [closestList, closestListPath] = closestListEntry\n\n\t\t\t// It's important that we iterate backwards because otherwise we'd mangle the paths.\n\t\t\t// We unwrap elements which may have more than one child.\n\t\t\tfor (let i = closestList.children.length - 1; i >= 0; i--) {\n\t\t\t\tconst currentItemPath = [...closestListPath, i]\n\t\t\t\tif (Editor.hasInlines(editor, closestList.children[i] as SlateElement)) {\n\t\t\t\t\tTransforms.wrapNodes(editor, editor.createDefaultElement([]), {\n\t\t\t\t\t\tat: currentItemPath,\n\t\t\t\t\t})\n\t\t\t\t\tTransforms.unwrapNodes(editor, {\n\t\t\t\t\t\tat: [...currentItemPath, 0],\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tTransforms.unwrapNodes(editor, { at: currentItemPath })\n\t\t\t\t}\n\t\t\t}\n\t\t\tTransforms.unwrapNodes(editor, { at: closestListPath })\n\t\t})\n\t}\n\tif (editor.isElementActive(elementType) || editor.isElementActive(otherKindOfList)) {\n\t\t// We're in a list but a different one. Note the lack of 'suchThat'\n\t\tconst closestListEntry = ContemberEditor.closest(editor, {\n\t\t\tmatch: node => isListElement(node),\n\t\t}) as NodeEntry<UnorderedListElement | OrderedListElement>\n\t\tif (!closestListEntry) {\n\t\t\treturn\n\t\t}\n\t\treturn Editor.withoutNormalizing(editor, () => {\n\t\t\tconst [, closestListPath] = closestListEntry\n\t\t\tContemberEditor.ejectElement(editor, closestListPath)\n\t\t\tTransforms.setNodes(editor, { ...suchThat, type: elementType }, { at: closestListPath })\n\t\t})\n\t}\n\n\tconst selection = editor.selection\n\n\tif (!selection) {\n\t\treturn\n\t}\n\n\tconst closestViableParentEntry = ContemberEditor.closestViableBlockContainerEntry(editor)\n\n\tif (!closestViableParentEntry) {\n\t\treturn\n\t}\n\n\tEditor.withoutNormalizing(editor, () => {\n\t\tconst [targetParent, targetParentPath] = closestViableParentEntry\n\n\t\tif (SlateElement.isElement(targetParent) && Editor.hasInlines(editor, targetParent)) {\n\t\t\t// We're deliberately widening the selection to include all the inlines.\n\t\t\tconst listItemPath = [...targetParentPath, 0]\n\n\t\t\t// Not using wrapNodes because it appears to exhibit rather unpredictable treatment of text nodes.\n\t\t\tTransforms.insertNodes(editor, { type: listItemElementType, children: [] }, { at: listItemPath })\n\t\t\tTransforms.moveNodes(editor, {\n\t\t\t\tto: [...listItemPath, 0],\n\t\t\t\tmatch: node => Text.isText(node) || SlateElement.isElement(node) && Editor.isInline(editor, node),\n\t\t\t\tat: {\n\t\t\t\t\tanchor: Editor.start(editor, [...targetParentPath, 1]),\n\t\t\t\t\tfocus: Editor.end(editor, [...targetParentPath, targetParent.children.length]),\n\t\t\t\t},\n\t\t\t})\n\t\t\tTransforms.wrapNodes(editor, { type: elementType, children: [] }, { at: listItemPath })\n\t\t} else {\n\t\t\tconst [selectionStart, selectionEnd] = Editor.edges(editor, selection)\n\t\t\tconst relativeStartIndex = selectionStart.path[targetParentPath.length]\n\t\t\tconst relativeEndIndex = selectionEnd.path[targetParentPath.length]\n\n\t\t\tfor (let i = relativeStartIndex; i <= relativeEndIndex; i++) {\n\t\t\t\tTransforms.wrapNodes(editor, { type: listItemElementType, children: [] }, { at: [...targetParentPath, i] })\n\t\t\t}\n\n\t\t\tconst emptyList: UnorderedListElement | OrderedListElement = {\n\t\t\t\t...suchThat,\n\t\t\t\ttype: elementType as (UnorderedListElement | OrderedListElement)['type'],\n\t\t\t\tchildren: [],\n\t\t\t}\n\t\t\tconst listPath = [...targetParentPath, relativeStartIndex]\n\t\t\tTransforms.insertNodes(editor, emptyList, { at: listPath })\n\n\t\t\tfor (let i = relativeStartIndex; i <= relativeEndIndex; i++) {\n\t\t\t\tTransforms.moveNodes(editor, {\n\t\t\t\t\tto: [...listPath, i - relativeStartIndex],\n\t\t\t\t\t// The path doesn't depend on i because we keep moving the siblings away.\n\t\t\t\t\tat: [...targetParentPath, relativeStartIndex + 1],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t})\n}\n"],"names":["SlateElement"],"mappings":";;;;AAOO,MAAM,oBAAoB,CAChC,QACA,aACA,UACA,oBACI;AACJ,MAAI,OAAO,gBAAgB,aAAa,QAAQ,GAAG;AAC5C,UAAA,mBAAmB,gBAAgB,QAAQ,QAAQ;AAAA,MACxD,OAAO,CAAQ,SAAAA,QAAa,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAAA,CAC7D;AACD,QAAI,CAAC,kBAAkB;AACtB;AAAA,IACD;AACO,WAAA,OAAO,mBAAmB,QAAQ,MAAM;AACxC,YAAA,CAAC,aAAa,eAAe,IAAI;AAIvC,eAAS,IAAI,YAAY,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;AAC1D,cAAM,kBAAkB,CAAC,GAAG,iBAAiB,CAAC;AAC9C,YAAI,OAAO,WAAW,QAAQ,YAAY,SAAS,CAAC,CAAiB,GAAG;AACvE,qBAAW,UAAU,QAAQ,OAAO,qBAAqB,CAAE,CAAA,GAAG;AAAA,YAC7D,IAAI;AAAA,UAAA,CACJ;AACD,qBAAW,YAAY,QAAQ;AAAA,YAC9B,IAAI,CAAC,GAAG,iBAAiB,CAAC;AAAA,UAAA,CAC1B;AAAA,QAAA,OACK;AACN,qBAAW,YAAY,QAAQ,EAAE,IAAI,gBAAiB,CAAA;AAAA,QACvD;AAAA,MACD;AACA,iBAAW,YAAY,QAAQ,EAAE,IAAI,gBAAiB,CAAA;AAAA,IAAA,CACtD;AAAA,EACF;AACA,MAAI,OAAO,gBAAgB,WAAW,KAAK,OAAO,gBAAgB,eAAe,GAAG;AAE7E,UAAA,mBAAmB,gBAAgB,QAAQ,QAAQ;AAAA,MACxD,OAAO,CAAQ,SAAA,cAAc,IAAI;AAAA,IAAA,CACjC;AACD,QAAI,CAAC,kBAAkB;AACtB;AAAA,IACD;AACO,WAAA,OAAO,mBAAmB,QAAQ,MAAM;AACxC,YAAA,CAAG,EAAA,eAAe,IAAI;AACZ,sBAAA,aAAa,QAAQ,eAAe;AACzC,iBAAA,SAAS,QAAQ,EAAE,GAAG,UAAU,MAAM,eAAe,EAAE,IAAI,gBAAiB,CAAA;AAAA,IAAA,CACvF;AAAA,EACF;AAEA,QAAM,YAAY,OAAO;AAEzB,MAAI,CAAC,WAAW;AACf;AAAA,EACD;AAEM,QAAA,2BAA2B,gBAAgB,iCAAiC,MAAM;AAExF,MAAI,CAAC,0BAA0B;AAC9B;AAAA,EACD;AAEO,SAAA,mBAAmB,QAAQ,MAAM;AACjC,UAAA,CAAC,cAAc,gBAAgB,IAAI;AAErC,QAAAA,QAAa,UAAU,YAAY,KAAK,OAAO,WAAW,QAAQ,YAAY,GAAG;AAEpF,YAAM,eAAe,CAAC,GAAG,kBAAkB,CAAC;AAG5C,iBAAW,YAAY,QAAQ,EAAE,MAAM,qBAAqB,UAAU,CAAA,KAAM,EAAE,IAAI,aAAc,CAAA;AAChG,iBAAW,UAAU,QAAQ;AAAA,QAC5B,IAAI,CAAC,GAAG,cAAc,CAAC;AAAA,QACvB,OAAO,CAAA,SAAQ,KAAK,OAAO,IAAI,KAAKA,QAAa,UAAU,IAAI,KAAK,OAAO,SAAS,QAAQ,IAAI;AAAA,QAChG,IAAI;AAAA,UACH,QAAQ,OAAO,MAAM,QAAQ,CAAC,GAAG,kBAAkB,CAAC,CAAC;AAAA,UACrD,OAAO,OAAO,IAAI,QAAQ,CAAC,GAAG,kBAAkB,aAAa,SAAS,MAAM,CAAC;AAAA,QAC9E;AAAA,MAAA,CACA;AACD,iBAAW,UAAU,QAAQ,EAAE,MAAM,aAAa,UAAU,CAAA,KAAM,EAAE,IAAI,aAAc,CAAA;AAAA,IAAA,OAChF;AACN,YAAM,CAAC,gBAAgB,YAAY,IAAI,OAAO,MAAM,QAAQ,SAAS;AACrE,YAAM,qBAAqB,eAAe,KAAK,iBAAiB,MAAM;AACtE,YAAM,mBAAmB,aAAa,KAAK,iBAAiB,MAAM;AAElE,eAAS,IAAI,oBAAoB,KAAK,kBAAkB,KAAK;AAC5D,mBAAW,UAAU,QAAQ,EAAE,MAAM,qBAAqB,UAAU,CAAC,EAAA,GAAK,EAAE,IAAI,CAAC,GAAG,kBAAkB,CAAC,EAAG,CAAA;AAAA,MAC3G;AAEA,YAAM,YAAuD;AAAA,QAC5D,GAAG;AAAA,QACH,MAAM;AAAA,QACN,UAAU,CAAC;AAAA,MAAA;AAEZ,YAAM,WAAW,CAAC,GAAG,kBAAkB,kBAAkB;AACzD,iBAAW,YAAY,QAAQ,WAAW,EAAE,IAAI,UAAU;AAE1D,eAAS,IAAI,oBAAoB,KAAK,kBAAkB,KAAK;AAC5D,mBAAW,UAAU,QAAQ;AAAA,UAC5B,IAAI,CAAC,GAAG,UAAU,IAAI,kBAAkB;AAAA;AAAA,UAExC,IAAI,CAAC,GAAG,kBAAkB,qBAAqB,CAAC;AAAA,QAAA,CAChD;AAAA,MACF;AAAA,IACD;AAAA,EAAA,CACA;AACF;"}
1
+ {"version":3,"file":"toggleListElement.js","sources":["../../../../../../../../packages/react-slate-editor-base/src/plugins/element/lists/transforms/toggleListElement.ts"],"sourcesContent":["import { OrderedListElement, orderedListElementType } from '../OrderedListElement'\nimport { UnorderedListElement, unorderedListElementType } from '../UnorderedListElement'\nimport { Editor, Element as SlateElement, NodeEntry, Text, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../../editor'\nimport { listItemElementType } from '../ListItemElement'\nimport { isListElement } from '../ListElement'\n\nexport const toggleListElement = <T extends OrderedListElement | UnorderedListElement>(\n\teditor: Editor,\n\telementType: T['type'],\n\tsuchThat: Partial<T> | undefined,\n\totherKindOfList: typeof orderedListElementType | typeof unorderedListElementType,\n) => {\n\tif (editor.isElementActive(elementType, suchThat)) {\n\t\tconst closestListEntry = ContemberEditor.closest(editor, {\n\t\t\tmatch: node => SlateElement.isElement(node) && node.type === elementType,\n\t\t}) as NodeEntry<UnorderedListElement | OrderedListElement>\n\t\tif (!closestListEntry) {\n\t\t\treturn\n\t\t}\n\t\treturn Editor.withoutNormalizing(editor, () => {\n\t\t\tconst [closestList, closestListPath] = closestListEntry\n\n\t\t\t// It's important that we iterate backwards because otherwise we'd mangle the paths.\n\t\t\t// We unwrap elements which may have more than one child.\n\t\t\tfor (let i = closestList.children.length - 1; i >= 0; i--) {\n\t\t\t\tconst currentItemPath = [...closestListPath, i]\n\t\t\t\tif (Editor.hasInlines(editor, closestList.children[i] as SlateElement)) {\n\t\t\t\t\tTransforms.wrapNodes(editor, editor.createDefaultElement([]), {\n\t\t\t\t\t\tat: currentItemPath,\n\t\t\t\t\t})\n\t\t\t\t\tTransforms.unwrapNodes(editor, {\n\t\t\t\t\t\tat: [...currentItemPath, 0],\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tTransforms.unwrapNodes(editor, { at: currentItemPath })\n\t\t\t\t}\n\t\t\t}\n\t\t\tTransforms.unwrapNodes(editor, { at: closestListPath })\n\t\t})\n\t}\n\tif (editor.isElementActive(elementType) || editor.isElementActive(otherKindOfList)) {\n\t\t// We're in a list but a different one. Note the lack of 'suchThat'\n\t\tconst closestListEntry = ContemberEditor.closest(editor, {\n\t\t\tmatch: node => isListElement(node),\n\t\t}) as NodeEntry<UnorderedListElement | OrderedListElement>\n\t\tif (!closestListEntry) {\n\t\t\treturn\n\t\t}\n\t\treturn Editor.withoutNormalizing(editor, () => {\n\t\t\tconst [, closestListPath] = closestListEntry\n\t\t\tContemberEditor.ejectElement(editor, closestListPath)\n\t\t\tTransforms.setNodes(editor, { ...suchThat, type: elementType }, { at: closestListPath })\n\t\t})\n\t}\n\n\tconst selection = editor.selection\n\n\tif (!selection) {\n\t\treturn\n\t}\n\n\tconst closestViableParentEntry = ContemberEditor.closestViableBlockContainerEntry(editor)\n\n\tif (!closestViableParentEntry) {\n\t\treturn\n\t}\n\n\tEditor.withoutNormalizing(editor, () => {\n\t\tconst [targetParent, targetParentPath] = closestViableParentEntry\n\n\t\tif (SlateElement.isElement(targetParent) && Editor.hasInlines(editor, targetParent)) {\n\t\t\t// We're deliberately widening the selection to include all the inlines.\n\t\t\tconst listItemPath = [...targetParentPath, 0]\n\n\t\t\t// Not using wrapNodes because it appears to exhibit rather unpredictable treatment of text nodes.\n\t\t\tTransforms.insertNodes(editor, { type: listItemElementType, children: [] }, { at: listItemPath })\n\t\t\tTransforms.moveNodes(editor, {\n\t\t\t\tto: [...listItemPath, 0],\n\t\t\t\tmatch: node => Text.isText(node) || SlateElement.isElement(node) && Editor.isInline(editor, node),\n\t\t\t\tat: {\n\t\t\t\t\tanchor: Editor.start(editor, [...targetParentPath, 1]),\n\t\t\t\t\tfocus: Editor.end(editor, [...targetParentPath, targetParent.children.length]),\n\t\t\t\t},\n\t\t\t})\n\t\t\tTransforms.wrapNodes(editor, { type: elementType, children: [] }, { at: listItemPath })\n\t\t} else {\n\t\t\tconst [selectionStart, selectionEnd] = Editor.edges(editor, selection)\n\t\t\tconst relativeStartIndex = selectionStart.path[targetParentPath.length]\n\t\t\tconst relativeEndIndex = selectionEnd.path[targetParentPath.length]\n\n\t\t\tfor (let i = relativeStartIndex; i <= relativeEndIndex; i++) {\n\t\t\t\tTransforms.wrapNodes(editor, { type: listItemElementType, children: [] }, { at: [...targetParentPath, i] })\n\t\t\t}\n\n\t\t\tconst emptyList: UnorderedListElement | OrderedListElement = {\n\t\t\t\t...suchThat,\n\t\t\t\ttype: elementType as (UnorderedListElement | OrderedListElement)['type'],\n\t\t\t\tchildren: [],\n\t\t\t}\n\t\t\tconst listPath = [...targetParentPath, relativeStartIndex]\n\t\t\tTransforms.insertNodes(editor, emptyList, { at: listPath })\n\n\t\t\tfor (let i = relativeStartIndex; i <= relativeEndIndex; i++) {\n\t\t\t\tTransforms.moveNodes(editor, {\n\t\t\t\t\tto: [...listPath, i - relativeStartIndex],\n\t\t\t\t\t// The path doesn't depend on i because we keep moving the siblings away.\n\t\t\t\t\tat: [...targetParentPath, relativeStartIndex + 1],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t})\n}\n"],"names":["SlateElement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"withLists.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/lists/withLists.ts"],"sourcesContent":["import {\n\tEditor,\n\tElement as SlateElement,\n\tNode as SlateNode,\n\tPath as SlatePath,\n\tRange as SlateRange,\n\tText,\n\tTransforms,\n} from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { isListItemElement, ListItemElement, listItemElementPlugin } from './ListItemElement'\nimport { OrderedListElement, orderedListElementPlugin } from './OrderedListElement'\nimport { dedentListItem, indentListItem } from './transforms'\nimport { UnorderedListElement, unorderedListElementPlugin } from './UnorderedListElement'\nimport { isListElement } from './ListElement'\nimport { listHtmlDeserializerFactory } from './ListHtmlDeserializer'\nimport { ElementRenderer } from '../../../types'\n\nexport const withLists = ({ renderListItem, renderUnorderedList, renderOrderedList }: {\n\trenderListItem: ElementRenderer<ListItemElement>\n\trenderOrderedList: ElementRenderer<OrderedListElement>\n\trenderUnorderedList: ElementRenderer<UnorderedListElement>\n}) => <E extends Editor>(editor: E): E => {\n\tconst {\n\t\tinsertBreak,\n\t\tonKeyDown,\n\t} = editor\n\n\teditor.registerElement(listItemElementPlugin({ render: renderListItem }))\n\teditor.registerElement(orderedListElementPlugin({ render: renderOrderedList }))\n\teditor.registerElement(unorderedListElementPlugin({ render: renderUnorderedList }))\n\n\teditor.htmlDeserializer.registerPlugin(listHtmlDeserializerFactory())\n\n\tObject.assign<Editor, Partial<Editor>>(editor, {\n\t\tinsertBreak: () => {\n\t\t\tconst { selection } = editor\n\n\t\t\tif (!selection || !SlateRange.isCollapsed(selection)) {\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\t\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor)\n\t\t\tif (closestBlockEntry === undefined) {\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\t\t\tconst [closestBlock, closestBlockPath] = closestBlockEntry\n\n\t\t\tlet containingListItem: ListItemElement\n\t\t\tlet containingListItemPath: SlatePath\n\n\t\t\tif (!isListItemElement(closestBlock)) {\n\t\t\t\tif (closestBlockPath.length < 2) {\n\t\t\t\t\t// This block cannot be inside a list\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\n\t\t\t\tcontainingListItemPath = SlatePath.parent(closestBlockPath)\n\t\t\t\tconst closestListItem = SlateNode.get(editor, containingListItemPath)\n\n\t\t\t\tif (!isListItemElement(closestListItem)) {\n\t\t\t\t\t// The block is not inside a list\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\t\t\t\tcontainingListItem = closestListItem\n\t\t\t} else {\n\t\t\t\tcontainingListItem = closestBlock\n\t\t\t\tcontainingListItemPath = closestBlockPath\n\t\t\t}\n\n\t\t\tif (SlateNode.string(containingListItem) !== '') {\n\t\t\t\treturn Transforms.splitNodes(editor, {\n\t\t\t\t\talways: true,\n\t\t\t\t\tat: selection.focus,\n\t\t\t\t\tmatch: node => isListItemElement(node),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// We're in a list and want to leave this list.\n\n\t\t\tconst containingListPath = SlatePath.parent(containingListItemPath)\n\t\t\tconst containingList = SlateNode.get(editor, containingListPath)\n\n\t\t\tif (!isListElement(containingList)) {\n\t\t\t\t// This shouldn't really happen. It's more of a sanity check.\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\n\t\t\tconst followingListItemPath = SlatePath.next(containingListItemPath)\n\t\t\tconst hasFollowingListItem = SlateNode.has(editor, followingListItemPath)\n\n\t\t\tif (hasFollowingListItem) {\n\t\t\t\tconst followingListItemNode = SlateNode.get(editor, followingListItemPath)\n\t\t\t\tif (!isListItemElement(followingListItemNode)) {\n\t\t\t\t\t// This shouldn't really happen. It's more of a sanity check.\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\t\t\t\tif (containingListItemPath[containingListItemPath.length - 1] === 0) {\n\t\t\t\t\t// We're at the beginning of a list\n\t\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\t// Remove the trailing empty listItem\n\t\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: containingListPath, select: true })\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\t// We're in the middle of a list.\n\t\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tTransforms.splitNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tconst afterListParent = SlatePath.next(containingListPath)\n\t\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: afterListParent, select: true })\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// We're at the end of a list.\n\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\tconst afterListParent = SlatePath.next(containingListPath)\n\t\t\t\t\t// Remove the trailing empty listItem\n\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: afterListParent, select: true })\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tonKeyDown: event => {\n\t\t\t// TODO this should also work for expanded selections\n\t\t\tif (\n\t\t\t\t(event.key !== 'Tab' && event.key !== 'Enter') ||\n\t\t\t\t!editor.selection ||\n\t\t\t\t!SlateRange.isCollapsed(editor.selection)\n\t\t\t) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\t\t\tconst selection = editor.selection\n\t\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor, { at: selection.focus })\n\n\t\t\tif (closestBlockEntry === undefined) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\t\t\tlet [closestBlockElement, closestBlockPath] = closestBlockEntry\n\t\t\tif (!SlateElement.isElement(closestBlockElement)) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\n\t\t\tif (event.key === 'Tab') {\n\t\t\t\tif (editor.isDefaultElement(closestBlockElement)) {\n\t\t\t\t\t[closestBlockElement, closestBlockPath] = Editor.parent(editor, closestBlockPath)\n\t\t\t\t}\n\t\t\t\tif (!isListItemElement(closestBlockElement)) {\n\t\t\t\t\treturn onKeyDown(event)\n\t\t\t\t}\n\t\t\t\tconst succeeded = event.shiftKey\n\t\t\t\t\t? dedentListItem(editor, closestBlockElement, closestBlockPath)\n\t\t\t\t\t: indentListItem(editor, closestBlockElement, closestBlockPath)\n\n\t\t\t\tif (succeeded) {\n\t\t\t\t\treturn event.preventDefault()\n\t\t\t\t}\n\t\t\t} else if (event.key === 'Enter' && event.shiftKey) {\n\t\t\t\tif (editor.isDefaultElement(closestBlockElement)) {\n\t\t\t\t\tconst [listItem] = Editor.parent(editor, closestBlockPath)\n\t\t\t\t\tif (!isListItemElement(listItem)) {\n\t\t\t\t\t\treturn onKeyDown(event)\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\treturn Transforms.splitNodes(editor, {\n\t\t\t\t\t\talways: true,\n\t\t\t\t\t\tat: selection.focus,\n\t\t\t\t\t\tmatch: node => SlateElement.isElement(node) && Editor.isBlock(editor, node) && editor.isDefaultElement(node),\n\t\t\t\t\t})\n\t\t\t\t} else if (isListItemElement(closestBlockElement)) {\n\t\t\t\t\t// We want to create a newline but the closest block is the list item.\n\t\t\t\t\t// This should mean that it only contains inlines. Hence we wrap them in a default element\n\t\t\t\t\t// and then split it.\n\t\t\t\t\tconst [listItemStart, listItemEnd] = Editor.edges(editor, closestBlockPath)\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\treturn Editor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\tTransforms.wrapNodes(editor, editor.createDefaultElement([]), {\n\t\t\t\t\t\t\tmatch: node => Text.isText(node) || (SlateElement.isElement(node) && editor.isInline(node)),\n\t\t\t\t\t\t\tat: {\n\t\t\t\t\t\t\t\tanchor: listItemStart,\n\t\t\t\t\t\t\t\tfocus: listItemEnd,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t\tconst relative = SlatePath.relative(selection.focus.path, closestBlockPath)\n\t\t\t\t\t\tTransforms.splitNodes(editor, {\n\t\t\t\t\t\t\t// The zero should be the newly created default element.\n\t\t\t\t\t\t\tat: {\n\t\t\t\t\t\t\t\tpath: [...closestBlockPath, 0, ...relative],\n\t\t\t\t\t\t\t\toffset: selection.focus.offset,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\talways: true,\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn onKeyDown(event)\n\t\t},\n\t})\n\n\n\n\treturn editor\n}\n"],"names":["listItemElementPlugin","orderedListElementPlugin","unorderedListElementPlugin","listHtmlDeserializerFactory","SlateRange","ContemberEditor","isListItemElement","SlatePath","SlateNode","Transforms","isListElement","Editor","SlateElement","dedentListItem","indentListItem","Text"],"mappings":";;;;;;;;;;;AAkBa,MAAA,YAAY,CAAC,EAAE,gBAAgB,qBAAqB,kBAAkB,MAI7E,CAAmB,WAAiB;AACnC,QAAA;AAAA,IACL;AAAA,IACA;AAAA,EACG,IAAA;AAEJ,SAAO,gBAAgBA,gBAAsB,sBAAA,EAAE,QAAQ,eAAgB,CAAA,CAAC;AACxE,SAAO,gBAAgBC,mBAAyB,yBAAA,EAAE,QAAQ,kBAAmB,CAAA,CAAC;AAC9E,SAAO,gBAAgBC,qBAA2B,2BAAA,EAAE,QAAQ,oBAAqB,CAAA,CAAC;AAE3E,SAAA,iBAAiB,eAAeC,qBAAAA,4BAA6B,CAAA;AAEpE,SAAO,OAAgC,QAAQ;AAAA,IAC9C,aAAa,MAAM;AACZ,YAAA,EAAE,UAAc,IAAA;AAEtB,UAAI,CAAC,aAAa,CAACC,MAAW,MAAA,YAAY,SAAS,GAAG;AACrD,eAAO,YAAY;AAAA,MACpB;AACM,YAAA,oBAAoBC,MAAAA,gBAAgB,kBAAkB,MAAM;AAClE,UAAI,sBAAsB,QAAW;AACpC,eAAO,YAAY;AAAA,MACpB;AACM,YAAA,CAAC,cAAc,gBAAgB,IAAI;AAErC,UAAA;AACA,UAAA;AAEA,UAAA,CAACC,gBAAAA,kBAAkB,YAAY,GAAG;AACjC,YAAA,iBAAiB,SAAS,GAAG;AAEhC,iBAAO,YAAY;AAAA,QACpB;AAEyB,iCAAAC,MAAA,KAAU,OAAO,gBAAgB;AAC1D,cAAM,kBAAkBC,MAAA,KAAU,IAAI,QAAQ,sBAAsB;AAEhE,YAAA,CAACF,gBAAAA,kBAAkB,eAAe,GAAG;AAExC,iBAAO,YAAY;AAAA,QACpB;AACqB,6BAAA;AAAA,MAAA,OACf;AACe,6BAAA;AACI,iCAAA;AAAA,MAC1B;AAEA,UAAIE,WAAU,OAAO,kBAAkB,MAAM,IAAI;AACzC,eAAAC,MAAA,WAAW,WAAW,QAAQ;AAAA,UACpC,QAAQ;AAAA,UACR,IAAI,UAAU;AAAA,UACd,OAAO,CAAQ,SAAAH,gBAAA,kBAAkB,IAAI;AAAA,QAAA,CACrC;AAAA,MACF;AAIM,YAAA,qBAAqBC,MAAAA,KAAU,OAAO,sBAAsB;AAClE,YAAM,iBAAiBC,MAAA,KAAU,IAAI,QAAQ,kBAAkB;AAE3D,UAAA,CAACE,YAAAA,cAAc,cAAc,GAAG;AAEnC,eAAO,YAAY;AAAA,MACpB;AAEM,YAAA,wBAAwBH,MAAAA,KAAU,KAAK,sBAAsB;AACnE,YAAM,uBAAuBC,MAAA,KAAU,IAAI,QAAQ,qBAAqB;AAExE,UAAI,sBAAsB;AACzB,cAAM,wBAAwBA,MAAA,KAAU,IAAI,QAAQ,qBAAqB;AACrE,YAAA,CAACF,gBAAAA,kBAAkB,qBAAqB,GAAG;AAE9C,iBAAO,YAAY;AAAA,QACpB;AACA,YAAI,uBAAuB,uBAAuB,SAAS,CAAC,MAAM,GAAG;AAE7DK,uBAAA,mBAAmB,QAAQ,MAAM;AAEvCF,kBAAA,WAAW,YAAY,QAAQ,EAAE,IAAI,uBAAwB,CAAA;AAC7DA,kBAAA,WAAW,YAAY,QAAQ,OAAO,qBAAqB,CAAC,EAAE,MAAM,GAAA,CAAI,CAAC,GAAG,EAAE,IAAI,oBAAoB,QAAQ,MAAM;AAAA,UAAA,CACpH;AAAA,QAAA,OACK;AAECE,uBAAA,mBAAmB,QAAQ,MAAM;AACvCF,kBAAA,WAAW,YAAY,QAAQ,EAAE,IAAI,uBAAwB,CAAA;AAC7DA,kBAAA,WAAW,WAAW,QAAQ,EAAE,IAAI,uBAAwB,CAAA;AACtD,kBAAA,kBAAkBF,MAAAA,KAAU,KAAK,kBAAkB;AACzDE,kBAAA,WAAW,YAAY,QAAQ,OAAO,qBAAqB,CAAC,EAAE,MAAM,GAAA,CAAI,CAAC,GAAG,EAAE,IAAI,iBAAiB,QAAQ,MAAM;AAAA,UAAA,CACjH;AAAA,QACF;AAAA,MAAA,OACM;AAECE,qBAAA,mBAAmB,QAAQ,MAAM;AACjC,gBAAA,kBAAkBJ,MAAAA,KAAU,KAAK,kBAAkB;AAEzDE,gBAAA,WAAW,YAAY,QAAQ,EAAE,IAAI,uBAAwB,CAAA;AAC7DA,gBAAA,WAAW,YAAY,QAAQ,OAAO,qBAAqB,CAAC,EAAE,MAAM,GAAA,CAAI,CAAC,GAAG,EAAE,IAAI,iBAAiB,QAAQ,MAAM;AAAA,QAAA,CACjH;AAAA,MACF;AAAA,IACD;AAAA,IACA,WAAW,CAAS,UAAA;AAEnB,UACE,MAAM,QAAQ,SAAS,MAAM,QAAQ,WACtC,CAAC,OAAO,aACR,CAACL,MAAA,MAAW,YAAY,OAAO,SAAS,GACvC;AACD,eAAO,UAAU,KAAK;AAAA,MACvB;AACA,YAAM,YAAY,OAAO;AACnB,YAAA,oBAAoBC,sBAAgB,kBAAkB,QAAQ,EAAE,IAAI,UAAU,OAAO;AAE3F,UAAI,sBAAsB,QAAW;AACpC,eAAO,UAAU,KAAK;AAAA,MACvB;AACI,UAAA,CAAC,qBAAqB,gBAAgB,IAAI;AAC9C,UAAI,CAACO,MAAA,QAAa,UAAU,mBAAmB,GAAG;AACjD,eAAO,UAAU,KAAK;AAAA,MACvB;AAEI,UAAA,MAAM,QAAQ,OAAO;AACpB,YAAA,OAAO,iBAAiB,mBAAmB,GAAG;AACjD,WAAC,qBAAqB,gBAAgB,IAAID,MAAAA,OAAO,OAAO,QAAQ,gBAAgB;AAAA,QACjF;AACI,YAAA,CAACL,gBAAAA,kBAAkB,mBAAmB,GAAG;AAC5C,iBAAO,UAAU,KAAK;AAAA,QACvB;AACM,cAAA,YAAY,MAAM,WACrBO,eAAAA,eAAe,QAAQ,qBAAqB,gBAAgB,IAC5DC,eAAAA,eAAe,QAAQ,qBAAqB,gBAAgB;AAE/D,YAAI,WAAW;AACd,iBAAO,MAAM;QACd;AAAA,MACU,WAAA,MAAM,QAAQ,WAAW,MAAM,UAAU;AAC/C,YAAA,OAAO,iBAAiB,mBAAmB,GAAG;AACjD,gBAAM,CAAC,QAAQ,IAAIH,MAAAA,OAAO,OAAO,QAAQ,gBAAgB;AACrD,cAAA,CAACL,gBAAAA,kBAAkB,QAAQ,GAAG;AACjC,mBAAO,UAAU,KAAK;AAAA,UACvB;AACA,gBAAM,eAAe;AACd,iBAAAG,MAAA,WAAW,WAAW,QAAQ;AAAA,YACpC,QAAQ;AAAA,YACR,IAAI,UAAU;AAAA,YACd,OAAO,CAAA,SAAQG,MAAa,QAAA,UAAU,IAAI,KAAKD,MAAAA,OAAO,QAAQ,QAAQ,IAAI,KAAK,OAAO,iBAAiB,IAAI;AAAA,UAAA,CAC3G;AAAA,QAAA,WACSL,gBAAAA,kBAAkB,mBAAmB,GAAG;AAIlD,gBAAM,CAAC,eAAe,WAAW,IAAIK,MAAO,OAAA,MAAM,QAAQ,gBAAgB;AAC1E,gBAAM,eAAe;AACd,iBAAAA,MAAA,OAAO,mBAAmB,QAAQ,MAAM;AAC9CF,kBAAA,WAAW,UAAU,QAAQ,OAAO,qBAAqB,CAAE,CAAA,GAAG;AAAA,cAC7D,OAAO,CAAA,SAAQM,WAAK,OAAO,IAAI,KAAMH,cAAa,UAAU,IAAI,KAAK,OAAO,SAAS,IAAI;AAAA,cACzF,IAAI;AAAA,gBACH,QAAQ;AAAA,gBACR,OAAO;AAAA,cACR;AAAA,YAAA,CACA;AACD,kBAAM,WAAWL,MAAAA,KAAU,SAAS,UAAU,MAAM,MAAM,gBAAgB;AAC1EE,kBAAA,WAAW,WAAW,QAAQ;AAAA;AAAA,cAE7B,IAAI;AAAA,gBACH,MAAM,CAAC,GAAG,kBAAkB,GAAG,GAAG,QAAQ;AAAA,gBAC1C,QAAQ,UAAU,MAAM;AAAA,cACzB;AAAA,cACA,QAAQ;AAAA,YAAA,CACR;AAAA,UAAA,CACD;AAAA,QACF;AAAA,MACD;AACA,aAAO,UAAU,KAAK;AAAA,IACvB;AAAA,EAAA,CACA;AAIM,SAAA;AACR;;"}
1
+ {"version":3,"file":"withLists.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/lists/withLists.ts"],"sourcesContent":["import {\n\tEditor,\n\tElement as SlateElement,\n\tNode as SlateNode,\n\tPath as SlatePath,\n\tRange as SlateRange,\n\tText,\n\tTransforms,\n} from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { isListItemElement, ListItemElement, listItemElementPlugin } from './ListItemElement'\nimport { OrderedListElement, orderedListElementPlugin } from './OrderedListElement'\nimport { dedentListItem, indentListItem } from './transforms'\nimport { UnorderedListElement, unorderedListElementPlugin } from './UnorderedListElement'\nimport { isListElement } from './ListElement'\nimport { listHtmlDeserializerFactory } from './ListHtmlDeserializer'\nimport { ElementRenderer } from '../../../types'\n\nexport const withLists = ({ renderListItem, renderUnorderedList, renderOrderedList }: {\n\trenderListItem: ElementRenderer<ListItemElement>\n\trenderOrderedList: ElementRenderer<OrderedListElement>\n\trenderUnorderedList: ElementRenderer<UnorderedListElement>\n}) => <E extends Editor>(editor: E): E => {\n\tconst {\n\t\tinsertBreak,\n\t\tonKeyDown,\n\t} = editor\n\n\teditor.registerElement(listItemElementPlugin({ render: renderListItem }))\n\teditor.registerElement(orderedListElementPlugin({ render: renderOrderedList }))\n\teditor.registerElement(unorderedListElementPlugin({ render: renderUnorderedList }))\n\n\teditor.htmlDeserializer.registerPlugin(listHtmlDeserializerFactory())\n\n\tObject.assign<Editor, Partial<Editor>>(editor, {\n\t\tinsertBreak: () => {\n\t\t\tconst { selection } = editor\n\n\t\t\tif (!selection || !SlateRange.isCollapsed(selection)) {\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\t\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor)\n\t\t\tif (closestBlockEntry === undefined) {\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\t\t\tconst [closestBlock, closestBlockPath] = closestBlockEntry\n\n\t\t\tlet containingListItem: ListItemElement\n\t\t\tlet containingListItemPath: SlatePath\n\n\t\t\tif (!isListItemElement(closestBlock)) {\n\t\t\t\tif (closestBlockPath.length < 2) {\n\t\t\t\t\t// This block cannot be inside a list\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\n\t\t\t\tcontainingListItemPath = SlatePath.parent(closestBlockPath)\n\t\t\t\tconst closestListItem = SlateNode.get(editor, containingListItemPath)\n\n\t\t\t\tif (!isListItemElement(closestListItem)) {\n\t\t\t\t\t// The block is not inside a list\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\t\t\t\tcontainingListItem = closestListItem\n\t\t\t} else {\n\t\t\t\tcontainingListItem = closestBlock\n\t\t\t\tcontainingListItemPath = closestBlockPath\n\t\t\t}\n\n\t\t\tif (SlateNode.string(containingListItem) !== '') {\n\t\t\t\treturn Transforms.splitNodes(editor, {\n\t\t\t\t\talways: true,\n\t\t\t\t\tat: selection.focus,\n\t\t\t\t\tmatch: node => isListItemElement(node),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// We're in a list and want to leave this list.\n\n\t\t\tconst containingListPath = SlatePath.parent(containingListItemPath)\n\t\t\tconst containingList = SlateNode.get(editor, containingListPath)\n\n\t\t\tif (!isListElement(containingList)) {\n\t\t\t\t// This shouldn't really happen. It's more of a sanity check.\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\n\t\t\tconst followingListItemPath = SlatePath.next(containingListItemPath)\n\t\t\tconst hasFollowingListItem = SlateNode.has(editor, followingListItemPath)\n\n\t\t\tif (hasFollowingListItem) {\n\t\t\t\tconst followingListItemNode = SlateNode.get(editor, followingListItemPath)\n\t\t\t\tif (!isListItemElement(followingListItemNode)) {\n\t\t\t\t\t// This shouldn't really happen. It's more of a sanity check.\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\t\t\t\tif (containingListItemPath[containingListItemPath.length - 1] === 0) {\n\t\t\t\t\t// We're at the beginning of a list\n\t\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\t// Remove the trailing empty listItem\n\t\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: containingListPath, select: true })\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\t// We're in the middle of a list.\n\t\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tTransforms.splitNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tconst afterListParent = SlatePath.next(containingListPath)\n\t\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: afterListParent, select: true })\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// We're at the end of a list.\n\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\tconst afterListParent = SlatePath.next(containingListPath)\n\t\t\t\t\t// Remove the trailing empty listItem\n\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: afterListParent, select: true })\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tonKeyDown: event => {\n\t\t\t// TODO this should also work for expanded selections\n\t\t\tif (\n\t\t\t\t(event.key !== 'Tab' && event.key !== 'Enter') ||\n\t\t\t\t!editor.selection ||\n\t\t\t\t!SlateRange.isCollapsed(editor.selection)\n\t\t\t) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\t\t\tconst selection = editor.selection\n\t\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor, { at: selection.focus })\n\n\t\t\tif (closestBlockEntry === undefined) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\t\t\tlet [closestBlockElement, closestBlockPath] = closestBlockEntry\n\t\t\tif (!SlateElement.isElement(closestBlockElement)) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\n\t\t\tif (event.key === 'Tab') {\n\t\t\t\tif (editor.isDefaultElement(closestBlockElement)) {\n\t\t\t\t\t[closestBlockElement, closestBlockPath] = Editor.parent(editor, closestBlockPath)\n\t\t\t\t}\n\t\t\t\tif (!isListItemElement(closestBlockElement)) {\n\t\t\t\t\treturn onKeyDown(event)\n\t\t\t\t}\n\t\t\t\tconst succeeded = event.shiftKey\n\t\t\t\t\t? dedentListItem(editor, closestBlockElement, closestBlockPath)\n\t\t\t\t\t: indentListItem(editor, closestBlockElement, closestBlockPath)\n\n\t\t\t\tif (succeeded) {\n\t\t\t\t\treturn event.preventDefault()\n\t\t\t\t}\n\t\t\t} else if (event.key === 'Enter' && event.shiftKey) {\n\t\t\t\tif (editor.isDefaultElement(closestBlockElement)) {\n\t\t\t\t\tconst [listItem] = Editor.parent(editor, closestBlockPath)\n\t\t\t\t\tif (!isListItemElement(listItem)) {\n\t\t\t\t\t\treturn onKeyDown(event)\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\treturn Transforms.splitNodes(editor, {\n\t\t\t\t\t\talways: true,\n\t\t\t\t\t\tat: selection.focus,\n\t\t\t\t\t\tmatch: node => SlateElement.isElement(node) && Editor.isBlock(editor, node) && editor.isDefaultElement(node),\n\t\t\t\t\t})\n\t\t\t\t} else if (isListItemElement(closestBlockElement)) {\n\t\t\t\t\t// We want to create a newline but the closest block is the list item.\n\t\t\t\t\t// This should mean that it only contains inlines. Hence we wrap them in a default element\n\t\t\t\t\t// and then split it.\n\t\t\t\t\tconst [listItemStart, listItemEnd] = Editor.edges(editor, closestBlockPath)\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\treturn Editor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\tTransforms.wrapNodes(editor, editor.createDefaultElement([]), {\n\t\t\t\t\t\t\tmatch: node => Text.isText(node) || (SlateElement.isElement(node) && editor.isInline(node)),\n\t\t\t\t\t\t\tat: {\n\t\t\t\t\t\t\t\tanchor: listItemStart,\n\t\t\t\t\t\t\t\tfocus: listItemEnd,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t\tconst relative = SlatePath.relative(selection.focus.path, closestBlockPath)\n\t\t\t\t\t\tTransforms.splitNodes(editor, {\n\t\t\t\t\t\t\t// The zero should be the newly created default element.\n\t\t\t\t\t\t\tat: {\n\t\t\t\t\t\t\t\tpath: [...closestBlockPath, 0, ...relative],\n\t\t\t\t\t\t\t\toffset: selection.focus.offset,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\talways: true,\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn onKeyDown(event)\n\t\t},\n\t})\n\n\n\n\treturn editor\n}\n"],"names":["listItemElementPlugin","orderedListElementPlugin","unorderedListElementPlugin","listHtmlDeserializerFactory","SlateRange","ContemberEditor","isListItemElement","SlatePath","SlateNode","Transforms","isListElement","Editor","SlateElement","dedentListItem","indentListItem","Text"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"withLists.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/lists/withLists.ts"],"sourcesContent":["import {\n\tEditor,\n\tElement as SlateElement,\n\tNode as SlateNode,\n\tPath as SlatePath,\n\tRange as SlateRange,\n\tText,\n\tTransforms,\n} from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { isListItemElement, ListItemElement, listItemElementPlugin } from './ListItemElement'\nimport { OrderedListElement, orderedListElementPlugin } from './OrderedListElement'\nimport { dedentListItem, indentListItem } from './transforms'\nimport { UnorderedListElement, unorderedListElementPlugin } from './UnorderedListElement'\nimport { isListElement } from './ListElement'\nimport { listHtmlDeserializerFactory } from './ListHtmlDeserializer'\nimport { ElementRenderer } from '../../../types'\n\nexport const withLists = ({ renderListItem, renderUnorderedList, renderOrderedList }: {\n\trenderListItem: ElementRenderer<ListItemElement>\n\trenderOrderedList: ElementRenderer<OrderedListElement>\n\trenderUnorderedList: ElementRenderer<UnorderedListElement>\n}) => <E extends Editor>(editor: E): E => {\n\tconst {\n\t\tinsertBreak,\n\t\tonKeyDown,\n\t} = editor\n\n\teditor.registerElement(listItemElementPlugin({ render: renderListItem }))\n\teditor.registerElement(orderedListElementPlugin({ render: renderOrderedList }))\n\teditor.registerElement(unorderedListElementPlugin({ render: renderUnorderedList }))\n\n\teditor.htmlDeserializer.registerPlugin(listHtmlDeserializerFactory())\n\n\tObject.assign<Editor, Partial<Editor>>(editor, {\n\t\tinsertBreak: () => {\n\t\t\tconst { selection } = editor\n\n\t\t\tif (!selection || !SlateRange.isCollapsed(selection)) {\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\t\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor)\n\t\t\tif (closestBlockEntry === undefined) {\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\t\t\tconst [closestBlock, closestBlockPath] = closestBlockEntry\n\n\t\t\tlet containingListItem: ListItemElement\n\t\t\tlet containingListItemPath: SlatePath\n\n\t\t\tif (!isListItemElement(closestBlock)) {\n\t\t\t\tif (closestBlockPath.length < 2) {\n\t\t\t\t\t// This block cannot be inside a list\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\n\t\t\t\tcontainingListItemPath = SlatePath.parent(closestBlockPath)\n\t\t\t\tconst closestListItem = SlateNode.get(editor, containingListItemPath)\n\n\t\t\t\tif (!isListItemElement(closestListItem)) {\n\t\t\t\t\t// The block is not inside a list\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\t\t\t\tcontainingListItem = closestListItem\n\t\t\t} else {\n\t\t\t\tcontainingListItem = closestBlock\n\t\t\t\tcontainingListItemPath = closestBlockPath\n\t\t\t}\n\n\t\t\tif (SlateNode.string(containingListItem) !== '') {\n\t\t\t\treturn Transforms.splitNodes(editor, {\n\t\t\t\t\talways: true,\n\t\t\t\t\tat: selection.focus,\n\t\t\t\t\tmatch: node => isListItemElement(node),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// We're in a list and want to leave this list.\n\n\t\t\tconst containingListPath = SlatePath.parent(containingListItemPath)\n\t\t\tconst containingList = SlateNode.get(editor, containingListPath)\n\n\t\t\tif (!isListElement(containingList)) {\n\t\t\t\t// This shouldn't really happen. It's more of a sanity check.\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\n\t\t\tconst followingListItemPath = SlatePath.next(containingListItemPath)\n\t\t\tconst hasFollowingListItem = SlateNode.has(editor, followingListItemPath)\n\n\t\t\tif (hasFollowingListItem) {\n\t\t\t\tconst followingListItemNode = SlateNode.get(editor, followingListItemPath)\n\t\t\t\tif (!isListItemElement(followingListItemNode)) {\n\t\t\t\t\t// This shouldn't really happen. It's more of a sanity check.\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\t\t\t\tif (containingListItemPath[containingListItemPath.length - 1] === 0) {\n\t\t\t\t\t// We're at the beginning of a list\n\t\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\t// Remove the trailing empty listItem\n\t\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: containingListPath, select: true })\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\t// We're in the middle of a list.\n\t\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tTransforms.splitNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tconst afterListParent = SlatePath.next(containingListPath)\n\t\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: afterListParent, select: true })\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// We're at the end of a list.\n\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\tconst afterListParent = SlatePath.next(containingListPath)\n\t\t\t\t\t// Remove the trailing empty listItem\n\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: afterListParent, select: true })\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tonKeyDown: event => {\n\t\t\t// TODO this should also work for expanded selections\n\t\t\tif (\n\t\t\t\t(event.key !== 'Tab' && event.key !== 'Enter') ||\n\t\t\t\t!editor.selection ||\n\t\t\t\t!SlateRange.isCollapsed(editor.selection)\n\t\t\t) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\t\t\tconst selection = editor.selection\n\t\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor, { at: selection.focus })\n\n\t\t\tif (closestBlockEntry === undefined) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\t\t\tlet [closestBlockElement, closestBlockPath] = closestBlockEntry\n\t\t\tif (!SlateElement.isElement(closestBlockElement)) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\n\t\t\tif (event.key === 'Tab') {\n\t\t\t\tif (editor.isDefaultElement(closestBlockElement)) {\n\t\t\t\t\t[closestBlockElement, closestBlockPath] = Editor.parent(editor, closestBlockPath)\n\t\t\t\t}\n\t\t\t\tif (!isListItemElement(closestBlockElement)) {\n\t\t\t\t\treturn onKeyDown(event)\n\t\t\t\t}\n\t\t\t\tconst succeeded = event.shiftKey\n\t\t\t\t\t? dedentListItem(editor, closestBlockElement, closestBlockPath)\n\t\t\t\t\t: indentListItem(editor, closestBlockElement, closestBlockPath)\n\n\t\t\t\tif (succeeded) {\n\t\t\t\t\treturn event.preventDefault()\n\t\t\t\t}\n\t\t\t} else if (event.key === 'Enter' && event.shiftKey) {\n\t\t\t\tif (editor.isDefaultElement(closestBlockElement)) {\n\t\t\t\t\tconst [listItem] = Editor.parent(editor, closestBlockPath)\n\t\t\t\t\tif (!isListItemElement(listItem)) {\n\t\t\t\t\t\treturn onKeyDown(event)\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\treturn Transforms.splitNodes(editor, {\n\t\t\t\t\t\talways: true,\n\t\t\t\t\t\tat: selection.focus,\n\t\t\t\t\t\tmatch: node => SlateElement.isElement(node) && Editor.isBlock(editor, node) && editor.isDefaultElement(node),\n\t\t\t\t\t})\n\t\t\t\t} else if (isListItemElement(closestBlockElement)) {\n\t\t\t\t\t// We want to create a newline but the closest block is the list item.\n\t\t\t\t\t// This should mean that it only contains inlines. Hence we wrap them in a default element\n\t\t\t\t\t// and then split it.\n\t\t\t\t\tconst [listItemStart, listItemEnd] = Editor.edges(editor, closestBlockPath)\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\treturn Editor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\tTransforms.wrapNodes(editor, editor.createDefaultElement([]), {\n\t\t\t\t\t\t\tmatch: node => Text.isText(node) || (SlateElement.isElement(node) && editor.isInline(node)),\n\t\t\t\t\t\t\tat: {\n\t\t\t\t\t\t\t\tanchor: listItemStart,\n\t\t\t\t\t\t\t\tfocus: listItemEnd,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t\tconst relative = SlatePath.relative(selection.focus.path, closestBlockPath)\n\t\t\t\t\t\tTransforms.splitNodes(editor, {\n\t\t\t\t\t\t\t// The zero should be the newly created default element.\n\t\t\t\t\t\t\tat: {\n\t\t\t\t\t\t\t\tpath: [...closestBlockPath, 0, ...relative],\n\t\t\t\t\t\t\t\toffset: selection.focus.offset,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\talways: true,\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn onKeyDown(event)\n\t\t},\n\t})\n\n\n\n\treturn editor\n}\n"],"names":["SlateRange","SlatePath","SlateNode","SlateElement"],"mappings":"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"}
1
+ {"version":3,"file":"withLists.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/lists/withLists.ts"],"sourcesContent":["import {\n\tEditor,\n\tElement as SlateElement,\n\tNode as SlateNode,\n\tPath as SlatePath,\n\tRange as SlateRange,\n\tText,\n\tTransforms,\n} from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { isListItemElement, ListItemElement, listItemElementPlugin } from './ListItemElement'\nimport { OrderedListElement, orderedListElementPlugin } from './OrderedListElement'\nimport { dedentListItem, indentListItem } from './transforms'\nimport { UnorderedListElement, unorderedListElementPlugin } from './UnorderedListElement'\nimport { isListElement } from './ListElement'\nimport { listHtmlDeserializerFactory } from './ListHtmlDeserializer'\nimport { ElementRenderer } from '../../../types'\n\nexport const withLists = ({ renderListItem, renderUnorderedList, renderOrderedList }: {\n\trenderListItem: ElementRenderer<ListItemElement>\n\trenderOrderedList: ElementRenderer<OrderedListElement>\n\trenderUnorderedList: ElementRenderer<UnorderedListElement>\n}) => <E extends Editor>(editor: E): E => {\n\tconst {\n\t\tinsertBreak,\n\t\tonKeyDown,\n\t} = editor\n\n\teditor.registerElement(listItemElementPlugin({ render: renderListItem }))\n\teditor.registerElement(orderedListElementPlugin({ render: renderOrderedList }))\n\teditor.registerElement(unorderedListElementPlugin({ render: renderUnorderedList }))\n\n\teditor.htmlDeserializer.registerPlugin(listHtmlDeserializerFactory())\n\n\tObject.assign<Editor, Partial<Editor>>(editor, {\n\t\tinsertBreak: () => {\n\t\t\tconst { selection } = editor\n\n\t\t\tif (!selection || !SlateRange.isCollapsed(selection)) {\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\t\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor)\n\t\t\tif (closestBlockEntry === undefined) {\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\t\t\tconst [closestBlock, closestBlockPath] = closestBlockEntry\n\n\t\t\tlet containingListItem: ListItemElement\n\t\t\tlet containingListItemPath: SlatePath\n\n\t\t\tif (!isListItemElement(closestBlock)) {\n\t\t\t\tif (closestBlockPath.length < 2) {\n\t\t\t\t\t// This block cannot be inside a list\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\n\t\t\t\tcontainingListItemPath = SlatePath.parent(closestBlockPath)\n\t\t\t\tconst closestListItem = SlateNode.get(editor, containingListItemPath)\n\n\t\t\t\tif (!isListItemElement(closestListItem)) {\n\t\t\t\t\t// The block is not inside a list\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\t\t\t\tcontainingListItem = closestListItem\n\t\t\t} else {\n\t\t\t\tcontainingListItem = closestBlock\n\t\t\t\tcontainingListItemPath = closestBlockPath\n\t\t\t}\n\n\t\t\tif (SlateNode.string(containingListItem) !== '') {\n\t\t\t\treturn Transforms.splitNodes(editor, {\n\t\t\t\t\talways: true,\n\t\t\t\t\tat: selection.focus,\n\t\t\t\t\tmatch: node => isListItemElement(node),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// We're in a list and want to leave this list.\n\n\t\t\tconst containingListPath = SlatePath.parent(containingListItemPath)\n\t\t\tconst containingList = SlateNode.get(editor, containingListPath)\n\n\t\t\tif (!isListElement(containingList)) {\n\t\t\t\t// This shouldn't really happen. It's more of a sanity check.\n\t\t\t\treturn insertBreak()\n\t\t\t}\n\n\t\t\tconst followingListItemPath = SlatePath.next(containingListItemPath)\n\t\t\tconst hasFollowingListItem = SlateNode.has(editor, followingListItemPath)\n\n\t\t\tif (hasFollowingListItem) {\n\t\t\t\tconst followingListItemNode = SlateNode.get(editor, followingListItemPath)\n\t\t\t\tif (!isListItemElement(followingListItemNode)) {\n\t\t\t\t\t// This shouldn't really happen. It's more of a sanity check.\n\t\t\t\t\treturn insertBreak()\n\t\t\t\t}\n\t\t\t\tif (containingListItemPath[containingListItemPath.length - 1] === 0) {\n\t\t\t\t\t// We're at the beginning of a list\n\t\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\t// Remove the trailing empty listItem\n\t\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: containingListPath, select: true })\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\t// We're in the middle of a list.\n\t\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tTransforms.splitNodes(editor, { at: containingListItemPath })\n\t\t\t\t\t\tconst afterListParent = SlatePath.next(containingListPath)\n\t\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: afterListParent, select: true })\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// We're at the end of a list.\n\t\t\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\t\t\tconst afterListParent = SlatePath.next(containingListPath)\n\t\t\t\t\t// Remove the trailing empty listItem\n\t\t\t\t\tTransforms.removeNodes(editor, { at: containingListItemPath })\n\t\t\t\t\tTransforms.insertNodes(editor, editor.createDefaultElement([{ text: '' }]), { at: afterListParent, select: true })\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tonKeyDown: event => {\n\t\t\t// TODO this should also work for expanded selections\n\t\t\tif (\n\t\t\t\t(event.key !== 'Tab' && event.key !== 'Enter') ||\n\t\t\t\t!editor.selection ||\n\t\t\t\t!SlateRange.isCollapsed(editor.selection)\n\t\t\t) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\t\t\tconst selection = editor.selection\n\t\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor, { at: selection.focus })\n\n\t\t\tif (closestBlockEntry === undefined) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\t\t\tlet [closestBlockElement, closestBlockPath] = closestBlockEntry\n\t\t\tif (!SlateElement.isElement(closestBlockElement)) {\n\t\t\t\treturn onKeyDown(event)\n\t\t\t}\n\n\t\t\tif (event.key === 'Tab') {\n\t\t\t\tif (editor.isDefaultElement(closestBlockElement)) {\n\t\t\t\t\t[closestBlockElement, closestBlockPath] = Editor.parent(editor, closestBlockPath)\n\t\t\t\t}\n\t\t\t\tif (!isListItemElement(closestBlockElement)) {\n\t\t\t\t\treturn onKeyDown(event)\n\t\t\t\t}\n\t\t\t\tconst succeeded = event.shiftKey\n\t\t\t\t\t? dedentListItem(editor, closestBlockElement, closestBlockPath)\n\t\t\t\t\t: indentListItem(editor, closestBlockElement, closestBlockPath)\n\n\t\t\t\tif (succeeded) {\n\t\t\t\t\treturn event.preventDefault()\n\t\t\t\t}\n\t\t\t} else if (event.key === 'Enter' && event.shiftKey) {\n\t\t\t\tif (editor.isDefaultElement(closestBlockElement)) {\n\t\t\t\t\tconst [listItem] = Editor.parent(editor, closestBlockPath)\n\t\t\t\t\tif (!isListItemElement(listItem)) {\n\t\t\t\t\t\treturn onKeyDown(event)\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\treturn Transforms.splitNodes(editor, {\n\t\t\t\t\t\talways: true,\n\t\t\t\t\t\tat: selection.focus,\n\t\t\t\t\t\tmatch: node => SlateElement.isElement(node) && Editor.isBlock(editor, node) && editor.isDefaultElement(node),\n\t\t\t\t\t})\n\t\t\t\t} else if (isListItemElement(closestBlockElement)) {\n\t\t\t\t\t// We want to create a newline but the closest block is the list item.\n\t\t\t\t\t// This should mean that it only contains inlines. Hence we wrap them in a default element\n\t\t\t\t\t// and then split it.\n\t\t\t\t\tconst [listItemStart, listItemEnd] = Editor.edges(editor, closestBlockPath)\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\treturn Editor.withoutNormalizing(editor, () => {\n\t\t\t\t\t\tTransforms.wrapNodes(editor, editor.createDefaultElement([]), {\n\t\t\t\t\t\t\tmatch: node => Text.isText(node) || (SlateElement.isElement(node) && editor.isInline(node)),\n\t\t\t\t\t\t\tat: {\n\t\t\t\t\t\t\t\tanchor: listItemStart,\n\t\t\t\t\t\t\t\tfocus: listItemEnd,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})\n\t\t\t\t\t\tconst relative = SlatePath.relative(selection.focus.path, closestBlockPath)\n\t\t\t\t\t\tTransforms.splitNodes(editor, {\n\t\t\t\t\t\t\t// The zero should be the newly created default element.\n\t\t\t\t\t\t\tat: {\n\t\t\t\t\t\t\t\tpath: [...closestBlockPath, 0, ...relative],\n\t\t\t\t\t\t\t\toffset: selection.focus.offset,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\talways: true,\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn onKeyDown(event)\n\t\t},\n\t})\n\n\n\n\treturn editor\n}\n"],"names":["SlateRange","SlatePath","SlateNode","SlateElement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ParagraphElement.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/paragraphs/ParagraphElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Node as SlateNode, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { AlignDirection } from '../../attributes'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const paragraphElementType = 'paragraph' as const\n\nexport interface ParagraphElement extends SlateElement {\n\ttype: typeof paragraphElementType\n\tisNumbered?: boolean\n\tchildren: SlateEditor['children']\n\talign?: AlignDirection\n}\n\nexport const isParagraphElement = (\n\telement: SlateNode,\n\tsuchThat?: Partial<ParagraphElement>,\n): element is ParagraphElement => ContemberEditor.isElementType(element, paragraphElementType, suchThat)\n\nexport const paragraphElementPlugin = ({ render }: {render: ElementRenderer<ParagraphElement>}): EditorElementPlugin<ParagraphElement> => ({\n\ttype: paragraphElementType,\n\trender,\n\tcanContainAnyBlocks: false,\n\tacceptsAttributes: ({ editor, suchThat }) => {\n\t\treturn 'align' in suchThat\n\t},\n\ttoggleElement: ({ editor, suchThat }) => {\n\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\tconst topLevelNodes = Array.from(ContemberEditor.topLevelNodes(editor))\n\n\t\t\tif (topLevelNodes.every(([node]) => isParagraphElement(node, suchThat))) {\n\t\t\t\tfor (const [, path] of topLevelNodes) {\n\t\t\t\t\tContemberEditor.ejectElement(editor, path)\n\t\t\t\t\tTransforms.setNodes(editor, { type: editor.defaultElementType }, { at: path })\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (const [node, path] of topLevelNodes) {\n\t\t\t\t\tif (isParagraphElement(node, suchThat)) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tContemberEditor.ejectElement(editor, path)\n\t\t\t\t\tconst newProps: Partial<ParagraphElement> = {\n\t\t\t\t\t\t...suchThat,\n\t\t\t\t\t\ttype: paragraphElementType,\n\t\t\t\t\t}\n\t\t\t\t\tTransforms.setNodes(editor, newProps, { at: path })\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t},\n\tnormalizeNode: ({ editor, element, path, preventDefault }) => {\n\t\tfor (const [i, child] of element.children.entries()) {\n\t\t\tif (SlateElement.isElement(child) && Editor.isBlock(editor, child)) {\n\t\t\t\tTransforms.unwrapNodes(editor, { at: [...path, i] })\n\t\t\t\treturn preventDefault()\n\t\t\t}\n\t\t}\n\t},\n})\n"],"names":["ContemberEditor","Editor","Transforms","SlateElement"],"mappings":";;;;AAKO,MAAM,uBAAuB;AASvB,MAAA,qBAAqB,CACjC,SACA,aACiCA,MAAAA,gBAAgB,cAAc,SAAS,sBAAsB,QAAQ;AAEhG,MAAM,yBAAyB,CAAC,EAAE,cAAkG;AAAA,EAC1I,MAAM;AAAA,EACN;AAAA,EACA,qBAAqB;AAAA,EACrB,mBAAmB,CAAC,EAAE,QAAQ,eAAe;AAC5C,WAAO,WAAW;AAAA,EACnB;AAAA,EACA,eAAe,CAAC,EAAE,QAAQ,eAAe;AACjCC,iBAAA,mBAAmB,QAAQ,MAAM;AACvC,YAAM,gBAAgB,MAAM,KAAKD,MAAgB,gBAAA,cAAc,MAAM,CAAC;AAElE,UAAA,cAAc,MAAM,CAAC,CAAC,IAAI,MAAM,mBAAmB,MAAM,QAAQ,CAAC,GAAG;AACxE,mBAAW,CAAA,EAAG,IAAI,KAAK,eAAe;AACrBA,gBAAAA,gBAAA,aAAa,QAAQ,IAAI;AAC9BE,gBAAAA,WAAA,SAAS,QAAQ,EAAE,MAAM,OAAO,sBAAsB,EAAE,IAAI,KAAA,CAAM;AAAA,QAC9E;AAAA,MAAA,OACM;AACN,mBAAW,CAAC,MAAM,IAAI,KAAK,eAAe;AACrC,cAAA,mBAAmB,MAAM,QAAQ,GAAG;AACvC;AAAA,UACD;AACgBF,gBAAAA,gBAAA,aAAa,QAAQ,IAAI;AACzC,gBAAM,WAAsC;AAAA,YAC3C,GAAG;AAAA,YACH,MAAM;AAAA,UAAA;AAEPE,gBAAA,WAAW,SAAS,QAAQ,UAAU,EAAE,IAAI,MAAM;AAAA,QACnD;AAAA,MACD;AAAA,IAAA,CACA;AAAA,EACF;AAAA,EACA,eAAe,CAAC,EAAE,QAAQ,SAAS,MAAM,qBAAqB;AAC7D,eAAW,CAAC,GAAG,KAAK,KAAK,QAAQ,SAAS,WAAW;AAChD,UAAAC,MAAA,QAAa,UAAU,KAAK,KAAKF,aAAO,QAAQ,QAAQ,KAAK,GAAG;AACxDC,yBAAA,YAAY,QAAQ,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,EAAA,CAAG;AACnD,eAAO,eAAe;AAAA,MACvB;AAAA,IACD;AAAA,EACD;AACD;;;;"}
1
+ {"version":3,"file":"ParagraphElement.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/paragraphs/ParagraphElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Node as SlateNode, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { AlignDirection } from '../../attributes'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const paragraphElementType = 'paragraph' as const\n\nexport interface ParagraphElement extends SlateElement {\n\ttype: typeof paragraphElementType\n\tisNumbered?: boolean\n\tchildren: SlateEditor['children']\n\talign?: AlignDirection\n}\n\nexport const isParagraphElement = (\n\telement: SlateNode,\n\tsuchThat?: Partial<ParagraphElement>,\n): element is ParagraphElement => ContemberEditor.isElementType(element, paragraphElementType, suchThat)\n\nexport const paragraphElementPlugin = ({ render }: {render: ElementRenderer<ParagraphElement>}): EditorElementPlugin<ParagraphElement> => ({\n\ttype: paragraphElementType,\n\trender,\n\tcanContainAnyBlocks: false,\n\tacceptsAttributes: ({ editor, suchThat }) => {\n\t\treturn 'align' in suchThat\n\t},\n\ttoggleElement: ({ editor, suchThat }) => {\n\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\tconst topLevelNodes = Array.from(ContemberEditor.topLevelNodes(editor))\n\n\t\t\tif (topLevelNodes.every(([node]) => isParagraphElement(node, suchThat))) {\n\t\t\t\tfor (const [, path] of topLevelNodes) {\n\t\t\t\t\tContemberEditor.ejectElement(editor, path)\n\t\t\t\t\tTransforms.setNodes(editor, { type: editor.defaultElementType }, { at: path })\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (const [node, path] of topLevelNodes) {\n\t\t\t\t\tif (isParagraphElement(node, suchThat)) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tContemberEditor.ejectElement(editor, path)\n\t\t\t\t\tconst newProps: Partial<ParagraphElement> = {\n\t\t\t\t\t\t...suchThat,\n\t\t\t\t\t\ttype: paragraphElementType,\n\t\t\t\t\t}\n\t\t\t\t\tTransforms.setNodes(editor, newProps, { at: path })\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t},\n\tnormalizeNode: ({ editor, element, path, preventDefault }) => {\n\t\tfor (const [i, child] of element.children.entries()) {\n\t\t\tif (SlateElement.isElement(child) && Editor.isBlock(editor, child)) {\n\t\t\t\tTransforms.unwrapNodes(editor, { at: [...path, i] })\n\t\t\t\treturn preventDefault()\n\t\t\t}\n\t\t}\n\t},\n})\n"],"names":["ContemberEditor","Editor","Transforms","SlateElement"],"mappings":";;;;AAKO,MAAM,uBAAuB;AASvB,MAAA,qBAAqB,CACjC,SACA,aACiCA,sBAAgB,cAAc,SAAS,sBAAsB,QAAQ;AAEhG,MAAM,yBAAyB,CAAC,EAAE,cAAkG;AAAA,EAC1I,MAAM;AAAA,EACN;AAAA,EACA,qBAAqB;AAAA,EACrB,mBAAmB,CAAC,EAAE,QAAQ,eAAe;AAC5C,WAAO,WAAW;AAAA,EACnB;AAAA,EACA,eAAe,CAAC,EAAE,QAAQ,eAAe;AACjCC,iBAAA,mBAAmB,QAAQ,MAAM;AACvC,YAAM,gBAAgB,MAAM,KAAKD,MAAAA,gBAAgB,cAAc,MAAM,CAAC;AAElE,UAAA,cAAc,MAAM,CAAC,CAAC,IAAI,MAAM,mBAAmB,MAAM,QAAQ,CAAC,GAAG;AACxE,mBAAW,CAAA,EAAG,IAAI,KAAK,eAAe;AACrBA,gCAAA,aAAa,QAAQ,IAAI;AAC9BE,2BAAA,SAAS,QAAQ,EAAE,MAAM,OAAO,sBAAsB,EAAE,IAAI,MAAM;AAAA,QAAA;AAAA,MAC9E,OACM;AACN,mBAAW,CAAC,MAAM,IAAI,KAAK,eAAe;AACrC,cAAA,mBAAmB,MAAM,QAAQ,GAAG;AACvC;AAAA,UAAA;AAEeF,gCAAA,aAAa,QAAQ,IAAI;AACzC,gBAAM,WAAsC;AAAA,YAC3C,GAAG;AAAA,YACH,MAAM;AAAA,UACP;AACAE,gBAAA,WAAW,SAAS,QAAQ,UAAU,EAAE,IAAI,MAAM;AAAA,QAAA;AAAA,MACnD;AAAA,IACD,CACA;AAAA,EACF;AAAA,EACA,eAAe,CAAC,EAAE,QAAQ,SAAS,MAAM,qBAAqB;AAC7D,eAAW,CAAC,GAAG,KAAK,KAAK,QAAQ,SAAS,WAAW;AAChD,UAAAC,MAAA,QAAa,UAAU,KAAK,KAAKF,aAAO,QAAQ,QAAQ,KAAK,GAAG;AACxDC,yBAAA,YAAY,QAAQ,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG;AACnD,eAAO,eAAe;AAAA,MAAA;AAAA,IACvB;AAAA,EACD;AAEF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ParagraphElement.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/paragraphs/ParagraphElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Node as SlateNode, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { AlignDirection } from '../../attributes'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const paragraphElementType = 'paragraph' as const\n\nexport interface ParagraphElement extends SlateElement {\n\ttype: typeof paragraphElementType\n\tisNumbered?: boolean\n\tchildren: SlateEditor['children']\n\talign?: AlignDirection\n}\n\nexport const isParagraphElement = (\n\telement: SlateNode,\n\tsuchThat?: Partial<ParagraphElement>,\n): element is ParagraphElement => ContemberEditor.isElementType(element, paragraphElementType, suchThat)\n\nexport const paragraphElementPlugin = ({ render }: {render: ElementRenderer<ParagraphElement>}): EditorElementPlugin<ParagraphElement> => ({\n\ttype: paragraphElementType,\n\trender,\n\tcanContainAnyBlocks: false,\n\tacceptsAttributes: ({ editor, suchThat }) => {\n\t\treturn 'align' in suchThat\n\t},\n\ttoggleElement: ({ editor, suchThat }) => {\n\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\tconst topLevelNodes = Array.from(ContemberEditor.topLevelNodes(editor))\n\n\t\t\tif (topLevelNodes.every(([node]) => isParagraphElement(node, suchThat))) {\n\t\t\t\tfor (const [, path] of topLevelNodes) {\n\t\t\t\t\tContemberEditor.ejectElement(editor, path)\n\t\t\t\t\tTransforms.setNodes(editor, { type: editor.defaultElementType }, { at: path })\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (const [node, path] of topLevelNodes) {\n\t\t\t\t\tif (isParagraphElement(node, suchThat)) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tContemberEditor.ejectElement(editor, path)\n\t\t\t\t\tconst newProps: Partial<ParagraphElement> = {\n\t\t\t\t\t\t...suchThat,\n\t\t\t\t\t\ttype: paragraphElementType,\n\t\t\t\t\t}\n\t\t\t\t\tTransforms.setNodes(editor, newProps, { at: path })\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t},\n\tnormalizeNode: ({ editor, element, path, preventDefault }) => {\n\t\tfor (const [i, child] of element.children.entries()) {\n\t\t\tif (SlateElement.isElement(child) && Editor.isBlock(editor, child)) {\n\t\t\t\tTransforms.unwrapNodes(editor, { at: [...path, i] })\n\t\t\t\treturn preventDefault()\n\t\t\t}\n\t\t}\n\t},\n})\n"],"names":["SlateElement"],"mappings":";;AAKO,MAAM,uBAAuB;AASvB,MAAA,qBAAqB,CACjC,SACA,aACiC,gBAAgB,cAAc,SAAS,sBAAsB,QAAQ;AAEhG,MAAM,yBAAyB,CAAC,EAAE,cAAkG;AAAA,EAC1I,MAAM;AAAA,EACN;AAAA,EACA,qBAAqB;AAAA,EACrB,mBAAmB,CAAC,EAAE,QAAQ,eAAe;AAC5C,WAAO,WAAW;AAAA,EACnB;AAAA,EACA,eAAe,CAAC,EAAE,QAAQ,eAAe;AACjC,WAAA,mBAAmB,QAAQ,MAAM;AACvC,YAAM,gBAAgB,MAAM,KAAK,gBAAgB,cAAc,MAAM,CAAC;AAElE,UAAA,cAAc,MAAM,CAAC,CAAC,IAAI,MAAM,mBAAmB,MAAM,QAAQ,CAAC,GAAG;AACxE,mBAAW,CAAA,EAAG,IAAI,KAAK,eAAe;AACrB,0BAAA,aAAa,QAAQ,IAAI;AAC9B,qBAAA,SAAS,QAAQ,EAAE,MAAM,OAAO,sBAAsB,EAAE,IAAI,KAAA,CAAM;AAAA,QAC9E;AAAA,MAAA,OACM;AACN,mBAAW,CAAC,MAAM,IAAI,KAAK,eAAe;AACrC,cAAA,mBAAmB,MAAM,QAAQ,GAAG;AACvC;AAAA,UACD;AACgB,0BAAA,aAAa,QAAQ,IAAI;AACzC,gBAAM,WAAsC;AAAA,YAC3C,GAAG;AAAA,YACH,MAAM;AAAA,UAAA;AAEP,qBAAW,SAAS,QAAQ,UAAU,EAAE,IAAI,MAAM;AAAA,QACnD;AAAA,MACD;AAAA,IAAA,CACA;AAAA,EACF;AAAA,EACA,eAAe,CAAC,EAAE,QAAQ,SAAS,MAAM,qBAAqB;AAC7D,eAAW,CAAC,GAAG,KAAK,KAAK,QAAQ,SAAS,WAAW;AAChD,UAAAA,QAAa,UAAU,KAAK,KAAK,OAAO,QAAQ,QAAQ,KAAK,GAAG;AACxD,mBAAA,YAAY,QAAQ,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,EAAA,CAAG;AACnD,eAAO,eAAe;AAAA,MACvB;AAAA,IACD;AAAA,EACD;AACD;"}
1
+ {"version":3,"file":"ParagraphElement.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/paragraphs/ParagraphElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Node as SlateNode, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { AlignDirection } from '../../attributes'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const paragraphElementType = 'paragraph' as const\n\nexport interface ParagraphElement extends SlateElement {\n\ttype: typeof paragraphElementType\n\tisNumbered?: boolean\n\tchildren: SlateEditor['children']\n\talign?: AlignDirection\n}\n\nexport const isParagraphElement = (\n\telement: SlateNode,\n\tsuchThat?: Partial<ParagraphElement>,\n): element is ParagraphElement => ContemberEditor.isElementType(element, paragraphElementType, suchThat)\n\nexport const paragraphElementPlugin = ({ render }: {render: ElementRenderer<ParagraphElement>}): EditorElementPlugin<ParagraphElement> => ({\n\ttype: paragraphElementType,\n\trender,\n\tcanContainAnyBlocks: false,\n\tacceptsAttributes: ({ editor, suchThat }) => {\n\t\treturn 'align' in suchThat\n\t},\n\ttoggleElement: ({ editor, suchThat }) => {\n\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\tconst topLevelNodes = Array.from(ContemberEditor.topLevelNodes(editor))\n\n\t\t\tif (topLevelNodes.every(([node]) => isParagraphElement(node, suchThat))) {\n\t\t\t\tfor (const [, path] of topLevelNodes) {\n\t\t\t\t\tContemberEditor.ejectElement(editor, path)\n\t\t\t\t\tTransforms.setNodes(editor, { type: editor.defaultElementType }, { at: path })\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (const [node, path] of topLevelNodes) {\n\t\t\t\t\tif (isParagraphElement(node, suchThat)) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tContemberEditor.ejectElement(editor, path)\n\t\t\t\t\tconst newProps: Partial<ParagraphElement> = {\n\t\t\t\t\t\t...suchThat,\n\t\t\t\t\t\ttype: paragraphElementType,\n\t\t\t\t\t}\n\t\t\t\t\tTransforms.setNodes(editor, newProps, { at: path })\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t},\n\tnormalizeNode: ({ editor, element, path, preventDefault }) => {\n\t\tfor (const [i, child] of element.children.entries()) {\n\t\t\tif (SlateElement.isElement(child) && Editor.isBlock(editor, child)) {\n\t\t\t\tTransforms.unwrapNodes(editor, { at: [...path, i] })\n\t\t\t\treturn preventDefault()\n\t\t\t}\n\t\t}\n\t},\n})\n"],"names":["SlateElement"],"mappings":";;AAKO,MAAM,uBAAuB;AASvB,MAAA,qBAAqB,CACjC,SACA,aACiC,gBAAgB,cAAc,SAAS,sBAAsB,QAAQ;AAEhG,MAAM,yBAAyB,CAAC,EAAE,cAAkG;AAAA,EAC1I,MAAM;AAAA,EACN;AAAA,EACA,qBAAqB;AAAA,EACrB,mBAAmB,CAAC,EAAE,QAAQ,eAAe;AAC5C,WAAO,WAAW;AAAA,EACnB;AAAA,EACA,eAAe,CAAC,EAAE,QAAQ,eAAe;AACjC,WAAA,mBAAmB,QAAQ,MAAM;AACvC,YAAM,gBAAgB,MAAM,KAAK,gBAAgB,cAAc,MAAM,CAAC;AAElE,UAAA,cAAc,MAAM,CAAC,CAAC,IAAI,MAAM,mBAAmB,MAAM,QAAQ,CAAC,GAAG;AACxE,mBAAW,CAAA,EAAG,IAAI,KAAK,eAAe;AACrB,0BAAA,aAAa,QAAQ,IAAI;AAC9B,qBAAA,SAAS,QAAQ,EAAE,MAAM,OAAO,sBAAsB,EAAE,IAAI,MAAM;AAAA,QAAA;AAAA,MAC9E,OACM;AACN,mBAAW,CAAC,MAAM,IAAI,KAAK,eAAe;AACrC,cAAA,mBAAmB,MAAM,QAAQ,GAAG;AACvC;AAAA,UAAA;AAEe,0BAAA,aAAa,QAAQ,IAAI;AACzC,gBAAM,WAAsC;AAAA,YAC3C,GAAG;AAAA,YACH,MAAM;AAAA,UACP;AACA,qBAAW,SAAS,QAAQ,UAAU,EAAE,IAAI,MAAM;AAAA,QAAA;AAAA,MACnD;AAAA,IACD,CACA;AAAA,EACF;AAAA,EACA,eAAe,CAAC,EAAE,QAAQ,SAAS,MAAM,qBAAqB;AAC7D,eAAW,CAAC,GAAG,KAAK,KAAK,QAAQ,SAAS,WAAW;AAChD,UAAAA,QAAa,UAAU,KAAK,KAAK,OAAO,QAAQ,QAAQ,KAAK,GAAG;AACxD,mBAAA,YAAY,QAAQ,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG;AACnD,eAAO,eAAe;AAAA,MAAA;AAAA,IACvB;AAAA,EACD;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"withParagraphs.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/paragraphs/withParagraphs.ts"],"sourcesContent":["import { Editor, Element as SlateElement, Point, Range as SlateRange, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { isParagraphElement, ParagraphElement, paragraphElementPlugin, paragraphElementType } from './ParagraphElement'\nimport { paragraphHtmlDeserializer } from './ParagraphHtmlDeserializer'\nimport { ElementRenderer } from '../../../types'\n\nexport const withParagraphs = ({ render }: { render: ElementRenderer<ParagraphElement> }) => <E extends Editor>(editor: E): E => {\n\tconst {\n\t\tcanToggleElement,\n\t\tdeleteBackward,\n\t} = editor\n\n\teditor.registerElement(paragraphElementPlugin({ render }))\n\n\n\teditor.canToggleElement = (elementType, suchThat) => {\n\t\t// This only allows numbered paragraphs at the top level.\n\t\t// TODO this is pretty bad but in order to fix this, we'd also have to fix toggleElement and there's no time now.\n\n\t\tif (elementType !== paragraphElementType || suchThat === undefined) {\n\t\t\treturn canToggleElement(elementType, suchThat)\n\t\t}\n\t\tconst isNumbered = suchThat.isNumbered\n\n\t\tif (isNumbered !== true) {\n\t\t\treturn canToggleElement(elementType, suchThat)\n\t\t}\n\n\t\tif (!editor.selection) {\n\t\t\treturn false\n\t\t}\n\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor)\n\t\tif (closestBlockEntry === undefined) {\n\t\t\treturn true\n\t\t}\n\t\tconst [closestBlockElement, closestBlockPath] = closestBlockEntry\n\n\t\treturn closestBlockPath.length === 1 && SlateElement.isElement(closestBlockElement) && closestBlockElement.type === paragraphElementType\n\t}\n\n\teditor.deleteBackward = unit => {\n\t\tconst selection = editor.selection\n\t\tif (unit !== 'character' || !selection || !SlateRange.isCollapsed(selection) || selection.focus.offset !== 0) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\t// The offset being zero doesn't necessarily imply that selection refers to the start of a paragraph.\n\t\t// It's just a way to early-exit.\n\n\t\tconst closestNumberedEntry = Editor.above<ParagraphElement>(editor, {\n\t\t\tmatch: node => SlateElement.isElement(node) && isParagraphElement(node, { isNumbered: true }),\n\t\t})\n\t\tif (closestNumberedEntry === undefined) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\tconst [, paragraphPath] = closestNumberedEntry\n\t\tconst paragraphStartPoint = Editor.start(editor, paragraphPath)\n\n\t\tif (!Point.equals(paragraphStartPoint, selection.focus)) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\tTransforms.setNodes(\n\t\t\teditor,\n\t\t\t{ isNumbered: null }, // null removes the key altogether\n\t\t\t{ at: paragraphPath },\n\t\t)\n\t}\n\teditor.htmlDeserializer.registerPlugin(paragraphHtmlDeserializer)\n\n\treturn editor\n}\n"],"names":["paragraphElementPlugin","paragraphElementType","ContemberEditor","SlateElement","SlateRange","Editor","isParagraphElement","Point","Transforms","paragraphHtmlDeserializer"],"mappings":";;;;;;AAMO,MAAM,iBAAiB,CAAC,EAAE,OAAO,MAAqD,CAAmB,WAAiB;AAC1H,QAAA;AAAA,IACL;AAAA,IACA;AAAA,EACG,IAAA;AAEJ,SAAO,gBAAgBA,iBAAAA,uBAAuB,EAAE,OAAA,CAAQ,CAAC;AAGlD,SAAA,mBAAmB,CAAC,aAAa,aAAa;AAIhD,QAAA,gBAAgBC,iBAAAA,wBAAwB,aAAa,QAAW;AAC5D,aAAA,iBAAiB,aAAa,QAAQ;AAAA,IAC9C;AACA,UAAM,aAAa,SAAS;AAE5B,QAAI,eAAe,MAAM;AACjB,aAAA,iBAAiB,aAAa,QAAQ;AAAA,IAC9C;AAEI,QAAA,CAAC,OAAO,WAAW;AACf,aAAA;AAAA,IACR;AACM,UAAA,oBAAoBC,MAAAA,gBAAgB,kBAAkB,MAAM;AAClE,QAAI,sBAAsB,QAAW;AAC7B,aAAA;AAAA,IACR;AACM,UAAA,CAAC,qBAAqB,gBAAgB,IAAI;AAEzC,WAAA,iBAAiB,WAAW,KAAMC,MAAA,QAAa,UAAU,mBAAmB,KAAK,oBAAoB,SAASF;EAAA;AAGtH,SAAO,iBAAiB,CAAQ,SAAA;AAC/B,UAAM,YAAY,OAAO;AACzB,QAAI,SAAS,eAAe,CAAC,aAAa,CAACG,MAAA,MAAW,YAAY,SAAS,KAAK,UAAU,MAAM,WAAW,GAAG;AAC7G,aAAO,eAAe,IAAI;AAAA,IAC3B;AAIM,UAAA,uBAAuBC,MAAAA,OAAO,MAAwB,QAAQ;AAAA,MACnE,OAAO,CAAQ,SAAAF,MAAA,QAAa,UAAU,IAAI,KAAKG,iBAAAA,mBAAmB,MAAM,EAAE,YAAY,KAAA,CAAM;AAAA,IAAA,CAC5F;AACD,QAAI,yBAAyB,QAAW;AACvC,aAAO,eAAe,IAAI;AAAA,IAC3B;AACM,UAAA,CAAG,EAAA,aAAa,IAAI;AAC1B,UAAM,sBAAsBD,MAAA,OAAO,MAAM,QAAQ,aAAa;AAE9D,QAAI,CAACE,MAAM,MAAA,OAAO,qBAAqB,UAAU,KAAK,GAAG;AACxD,aAAO,eAAe,IAAI;AAAA,IAC3B;AACWC,UAAAA,WAAA;AAAA,MACV;AAAA,MACA,EAAE,YAAY,KAAK;AAAA;AAAA,MACnB,EAAE,IAAI,cAAc;AAAA,IAAA;AAAA,EACrB;AAEM,SAAA,iBAAiB,eAAeC,0BAAAA,yBAAyB;AAEzD,SAAA;AACR;;"}
1
+ {"version":3,"file":"withParagraphs.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/paragraphs/withParagraphs.ts"],"sourcesContent":["import { Editor, Element as SlateElement, Point, Range as SlateRange, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { isParagraphElement, ParagraphElement, paragraphElementPlugin, paragraphElementType } from './ParagraphElement'\nimport { paragraphHtmlDeserializer } from './ParagraphHtmlDeserializer'\nimport { ElementRenderer } from '../../../types'\n\nexport const withParagraphs = ({ render }: { render: ElementRenderer<ParagraphElement> }) => <E extends Editor>(editor: E): E => {\n\tconst {\n\t\tcanToggleElement,\n\t\tdeleteBackward,\n\t} = editor\n\n\teditor.registerElement(paragraphElementPlugin({ render }))\n\n\n\teditor.canToggleElement = (elementType, suchThat) => {\n\t\t// This only allows numbered paragraphs at the top level.\n\t\t// TODO this is pretty bad but in order to fix this, we'd also have to fix toggleElement and there's no time now.\n\n\t\tif (elementType !== paragraphElementType || suchThat === undefined) {\n\t\t\treturn canToggleElement(elementType, suchThat)\n\t\t}\n\t\tconst isNumbered = suchThat.isNumbered\n\n\t\tif (isNumbered !== true) {\n\t\t\treturn canToggleElement(elementType, suchThat)\n\t\t}\n\n\t\tif (!editor.selection) {\n\t\t\treturn false\n\t\t}\n\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor)\n\t\tif (closestBlockEntry === undefined) {\n\t\t\treturn true\n\t\t}\n\t\tconst [closestBlockElement, closestBlockPath] = closestBlockEntry\n\n\t\treturn closestBlockPath.length === 1 && SlateElement.isElement(closestBlockElement) && closestBlockElement.type === paragraphElementType\n\t}\n\n\teditor.deleteBackward = unit => {\n\t\tconst selection = editor.selection\n\t\tif (unit !== 'character' || !selection || !SlateRange.isCollapsed(selection) || selection.focus.offset !== 0) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\t// The offset being zero doesn't necessarily imply that selection refers to the start of a paragraph.\n\t\t// It's just a way to early-exit.\n\n\t\tconst closestNumberedEntry = Editor.above<ParagraphElement>(editor, {\n\t\t\tmatch: node => SlateElement.isElement(node) && isParagraphElement(node, { isNumbered: true }),\n\t\t})\n\t\tif (closestNumberedEntry === undefined) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\tconst [, paragraphPath] = closestNumberedEntry\n\t\tconst paragraphStartPoint = Editor.start(editor, paragraphPath)\n\n\t\tif (!Point.equals(paragraphStartPoint, selection.focus)) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\tTransforms.setNodes(\n\t\t\teditor,\n\t\t\t{ isNumbered: null }, // null removes the key altogether\n\t\t\t{ at: paragraphPath },\n\t\t)\n\t}\n\teditor.htmlDeserializer.registerPlugin(paragraphHtmlDeserializer)\n\n\treturn editor\n}\n"],"names":["paragraphElementPlugin","paragraphElementType","ContemberEditor","SlateElement","SlateRange","Editor","isParagraphElement","Point","Transforms","paragraphHtmlDeserializer"],"mappings":";;;;;;AAMO,MAAM,iBAAiB,CAAC,EAAE,OAAO,MAAqD,CAAmB,WAAiB;AAC1H,QAAA;AAAA,IACL;AAAA,IACA;AAAA,EAAA,IACG;AAEJ,SAAO,gBAAgBA,iBAAAA,uBAAuB,EAAE,OAAQ,CAAA,CAAC;AAGlD,SAAA,mBAAmB,CAAC,aAAa,aAAa;AAIhD,QAAA,gBAAgBC,iBAAAA,wBAAwB,aAAa,QAAW;AAC5D,aAAA,iBAAiB,aAAa,QAAQ;AAAA,IAAA;AAE9C,UAAM,aAAa,SAAS;AAE5B,QAAI,eAAe,MAAM;AACjB,aAAA,iBAAiB,aAAa,QAAQ;AAAA,IAAA;AAG1C,QAAA,CAAC,OAAO,WAAW;AACf,aAAA;AAAA,IAAA;AAEF,UAAA,oBAAoBC,MAAAA,gBAAgB,kBAAkB,MAAM;AAClE,QAAI,sBAAsB,QAAW;AAC7B,aAAA;AAAA,IAAA;AAEF,UAAA,CAAC,qBAAqB,gBAAgB,IAAI;AAEzC,WAAA,iBAAiB,WAAW,KAAMC,MAAA,QAAa,UAAU,mBAAmB,KAAK,oBAAoB,SAASF,iBAAA;AAAA,EACtH;AAEA,SAAO,iBAAiB,CAAQ,SAAA;AAC/B,UAAM,YAAY,OAAO;AACzB,QAAI,SAAS,eAAe,CAAC,aAAa,CAACG,MAAA,MAAW,YAAY,SAAS,KAAK,UAAU,MAAM,WAAW,GAAG;AAC7G,aAAO,eAAe,IAAI;AAAA,IAAA;AAKrB,UAAA,uBAAuBC,MAAAA,OAAO,MAAwB,QAAQ;AAAA,MACnE,OAAO,CAAQ,SAAAF,MAAA,QAAa,UAAU,IAAI,KAAKG,iBAAAA,mBAAmB,MAAM,EAAE,YAAY,KAAM,CAAA;AAAA,IAAA,CAC5F;AACD,QAAI,yBAAyB,QAAW;AACvC,aAAO,eAAe,IAAI;AAAA,IAAA;AAErB,UAAA,CAAA,EAAG,aAAa,IAAI;AAC1B,UAAM,sBAAsBD,MAAA,OAAO,MAAM,QAAQ,aAAa;AAE9D,QAAI,CAACE,MAAM,MAAA,OAAO,qBAAqB,UAAU,KAAK,GAAG;AACxD,aAAO,eAAe,IAAI;AAAA,IAAA;AAEhBC,UAAAA,WAAA;AAAA,MACV;AAAA,MACA,EAAE,YAAY,KAAK;AAAA;AAAA,MACnB,EAAE,IAAI,cAAc;AAAA,IACrB;AAAA,EACD;AACO,SAAA,iBAAiB,eAAeC,mDAAyB;AAEzD,SAAA;AACR;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"withParagraphs.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/paragraphs/withParagraphs.ts"],"sourcesContent":["import { Editor, Element as SlateElement, Point, Range as SlateRange, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { isParagraphElement, ParagraphElement, paragraphElementPlugin, paragraphElementType } from './ParagraphElement'\nimport { paragraphHtmlDeserializer } from './ParagraphHtmlDeserializer'\nimport { ElementRenderer } from '../../../types'\n\nexport const withParagraphs = ({ render }: { render: ElementRenderer<ParagraphElement> }) => <E extends Editor>(editor: E): E => {\n\tconst {\n\t\tcanToggleElement,\n\t\tdeleteBackward,\n\t} = editor\n\n\teditor.registerElement(paragraphElementPlugin({ render }))\n\n\n\teditor.canToggleElement = (elementType, suchThat) => {\n\t\t// This only allows numbered paragraphs at the top level.\n\t\t// TODO this is pretty bad but in order to fix this, we'd also have to fix toggleElement and there's no time now.\n\n\t\tif (elementType !== paragraphElementType || suchThat === undefined) {\n\t\t\treturn canToggleElement(elementType, suchThat)\n\t\t}\n\t\tconst isNumbered = suchThat.isNumbered\n\n\t\tif (isNumbered !== true) {\n\t\t\treturn canToggleElement(elementType, suchThat)\n\t\t}\n\n\t\tif (!editor.selection) {\n\t\t\treturn false\n\t\t}\n\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor)\n\t\tif (closestBlockEntry === undefined) {\n\t\t\treturn true\n\t\t}\n\t\tconst [closestBlockElement, closestBlockPath] = closestBlockEntry\n\n\t\treturn closestBlockPath.length === 1 && SlateElement.isElement(closestBlockElement) && closestBlockElement.type === paragraphElementType\n\t}\n\n\teditor.deleteBackward = unit => {\n\t\tconst selection = editor.selection\n\t\tif (unit !== 'character' || !selection || !SlateRange.isCollapsed(selection) || selection.focus.offset !== 0) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\t// The offset being zero doesn't necessarily imply that selection refers to the start of a paragraph.\n\t\t// It's just a way to early-exit.\n\n\t\tconst closestNumberedEntry = Editor.above<ParagraphElement>(editor, {\n\t\t\tmatch: node => SlateElement.isElement(node) && isParagraphElement(node, { isNumbered: true }),\n\t\t})\n\t\tif (closestNumberedEntry === undefined) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\tconst [, paragraphPath] = closestNumberedEntry\n\t\tconst paragraphStartPoint = Editor.start(editor, paragraphPath)\n\n\t\tif (!Point.equals(paragraphStartPoint, selection.focus)) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\tTransforms.setNodes(\n\t\t\teditor,\n\t\t\t{ isNumbered: null }, // null removes the key altogether\n\t\t\t{ at: paragraphPath },\n\t\t)\n\t}\n\teditor.htmlDeserializer.registerPlugin(paragraphHtmlDeserializer)\n\n\treturn editor\n}\n"],"names":["SlateElement","SlateRange"],"mappings":";;;;AAMO,MAAM,iBAAiB,CAAC,EAAE,OAAO,MAAqD,CAAmB,WAAiB;AAC1H,QAAA;AAAA,IACL;AAAA,IACA;AAAA,EACG,IAAA;AAEJ,SAAO,gBAAgB,uBAAuB,EAAE,OAAA,CAAQ,CAAC;AAGlD,SAAA,mBAAmB,CAAC,aAAa,aAAa;AAIhD,QAAA,gBAAgB,wBAAwB,aAAa,QAAW;AAC5D,aAAA,iBAAiB,aAAa,QAAQ;AAAA,IAC9C;AACA,UAAM,aAAa,SAAS;AAE5B,QAAI,eAAe,MAAM;AACjB,aAAA,iBAAiB,aAAa,QAAQ;AAAA,IAC9C;AAEI,QAAA,CAAC,OAAO,WAAW;AACf,aAAA;AAAA,IACR;AACM,UAAA,oBAAoB,gBAAgB,kBAAkB,MAAM;AAClE,QAAI,sBAAsB,QAAW;AAC7B,aAAA;AAAA,IACR;AACM,UAAA,CAAC,qBAAqB,gBAAgB,IAAI;AAEzC,WAAA,iBAAiB,WAAW,KAAMA,QAAa,UAAU,mBAAmB,KAAK,oBAAoB,SAAS;AAAA,EAAA;AAGtH,SAAO,iBAAiB,CAAQ,SAAA;AAC/B,UAAM,YAAY,OAAO;AACzB,QAAI,SAAS,eAAe,CAAC,aAAa,CAACC,MAAW,YAAY,SAAS,KAAK,UAAU,MAAM,WAAW,GAAG;AAC7G,aAAO,eAAe,IAAI;AAAA,IAC3B;AAIM,UAAA,uBAAuB,OAAO,MAAwB,QAAQ;AAAA,MACnE,OAAO,CAAQ,SAAAD,QAAa,UAAU,IAAI,KAAK,mBAAmB,MAAM,EAAE,YAAY,KAAA,CAAM;AAAA,IAAA,CAC5F;AACD,QAAI,yBAAyB,QAAW;AACvC,aAAO,eAAe,IAAI;AAAA,IAC3B;AACM,UAAA,CAAG,EAAA,aAAa,IAAI;AAC1B,UAAM,sBAAsB,OAAO,MAAM,QAAQ,aAAa;AAE9D,QAAI,CAAC,MAAM,OAAO,qBAAqB,UAAU,KAAK,GAAG;AACxD,aAAO,eAAe,IAAI;AAAA,IAC3B;AACW,eAAA;AAAA,MACV;AAAA,MACA,EAAE,YAAY,KAAK;AAAA;AAAA,MACnB,EAAE,IAAI,cAAc;AAAA,IAAA;AAAA,EACrB;AAEM,SAAA,iBAAiB,eAAe,yBAAyB;AAEzD,SAAA;AACR;"}
1
+ {"version":3,"file":"withParagraphs.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/paragraphs/withParagraphs.ts"],"sourcesContent":["import { Editor, Element as SlateElement, Point, Range as SlateRange, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { isParagraphElement, ParagraphElement, paragraphElementPlugin, paragraphElementType } from './ParagraphElement'\nimport { paragraphHtmlDeserializer } from './ParagraphHtmlDeserializer'\nimport { ElementRenderer } from '../../../types'\n\nexport const withParagraphs = ({ render }: { render: ElementRenderer<ParagraphElement> }) => <E extends Editor>(editor: E): E => {\n\tconst {\n\t\tcanToggleElement,\n\t\tdeleteBackward,\n\t} = editor\n\n\teditor.registerElement(paragraphElementPlugin({ render }))\n\n\n\teditor.canToggleElement = (elementType, suchThat) => {\n\t\t// This only allows numbered paragraphs at the top level.\n\t\t// TODO this is pretty bad but in order to fix this, we'd also have to fix toggleElement and there's no time now.\n\n\t\tif (elementType !== paragraphElementType || suchThat === undefined) {\n\t\t\treturn canToggleElement(elementType, suchThat)\n\t\t}\n\t\tconst isNumbered = suchThat.isNumbered\n\n\t\tif (isNumbered !== true) {\n\t\t\treturn canToggleElement(elementType, suchThat)\n\t\t}\n\n\t\tif (!editor.selection) {\n\t\t\treturn false\n\t\t}\n\t\tconst closestBlockEntry = ContemberEditor.closestBlockEntry(editor)\n\t\tif (closestBlockEntry === undefined) {\n\t\t\treturn true\n\t\t}\n\t\tconst [closestBlockElement, closestBlockPath] = closestBlockEntry\n\n\t\treturn closestBlockPath.length === 1 && SlateElement.isElement(closestBlockElement) && closestBlockElement.type === paragraphElementType\n\t}\n\n\teditor.deleteBackward = unit => {\n\t\tconst selection = editor.selection\n\t\tif (unit !== 'character' || !selection || !SlateRange.isCollapsed(selection) || selection.focus.offset !== 0) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\t// The offset being zero doesn't necessarily imply that selection refers to the start of a paragraph.\n\t\t// It's just a way to early-exit.\n\n\t\tconst closestNumberedEntry = Editor.above<ParagraphElement>(editor, {\n\t\t\tmatch: node => SlateElement.isElement(node) && isParagraphElement(node, { isNumbered: true }),\n\t\t})\n\t\tif (closestNumberedEntry === undefined) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\tconst [, paragraphPath] = closestNumberedEntry\n\t\tconst paragraphStartPoint = Editor.start(editor, paragraphPath)\n\n\t\tif (!Point.equals(paragraphStartPoint, selection.focus)) {\n\t\t\treturn deleteBackward(unit)\n\t\t}\n\t\tTransforms.setNodes(\n\t\t\teditor,\n\t\t\t{ isNumbered: null }, // null removes the key altogether\n\t\t\t{ at: paragraphPath },\n\t\t)\n\t}\n\teditor.htmlDeserializer.registerPlugin(paragraphHtmlDeserializer)\n\n\treturn editor\n}\n"],"names":["SlateElement","SlateRange"],"mappings":";;;;AAMO,MAAM,iBAAiB,CAAC,EAAE,OAAO,MAAqD,CAAmB,WAAiB;AAC1H,QAAA;AAAA,IACL;AAAA,IACA;AAAA,EAAA,IACG;AAEJ,SAAO,gBAAgB,uBAAuB,EAAE,OAAQ,CAAA,CAAC;AAGlD,SAAA,mBAAmB,CAAC,aAAa,aAAa;AAIhD,QAAA,gBAAgB,wBAAwB,aAAa,QAAW;AAC5D,aAAA,iBAAiB,aAAa,QAAQ;AAAA,IAAA;AAE9C,UAAM,aAAa,SAAS;AAE5B,QAAI,eAAe,MAAM;AACjB,aAAA,iBAAiB,aAAa,QAAQ;AAAA,IAAA;AAG1C,QAAA,CAAC,OAAO,WAAW;AACf,aAAA;AAAA,IAAA;AAEF,UAAA,oBAAoB,gBAAgB,kBAAkB,MAAM;AAClE,QAAI,sBAAsB,QAAW;AAC7B,aAAA;AAAA,IAAA;AAEF,UAAA,CAAC,qBAAqB,gBAAgB,IAAI;AAEzC,WAAA,iBAAiB,WAAW,KAAMA,QAAa,UAAU,mBAAmB,KAAK,oBAAoB,SAAS;AAAA,EACtH;AAEA,SAAO,iBAAiB,CAAQ,SAAA;AAC/B,UAAM,YAAY,OAAO;AACzB,QAAI,SAAS,eAAe,CAAC,aAAa,CAACC,MAAW,YAAY,SAAS,KAAK,UAAU,MAAM,WAAW,GAAG;AAC7G,aAAO,eAAe,IAAI;AAAA,IAAA;AAKrB,UAAA,uBAAuB,OAAO,MAAwB,QAAQ;AAAA,MACnE,OAAO,CAAQ,SAAAD,QAAa,UAAU,IAAI,KAAK,mBAAmB,MAAM,EAAE,YAAY,KAAM,CAAA;AAAA,IAAA,CAC5F;AACD,QAAI,yBAAyB,QAAW;AACvC,aAAO,eAAe,IAAI;AAAA,IAAA;AAErB,UAAA,CAAA,EAAG,aAAa,IAAI;AAC1B,UAAM,sBAAsB,OAAO,MAAM,QAAQ,aAAa;AAE9D,QAAI,CAAC,MAAM,OAAO,qBAAqB,UAAU,KAAK,GAAG;AACxD,aAAO,eAAe,IAAI;AAAA,IAAA;AAEhB,eAAA;AAAA,MACV;AAAA,MACA,EAAE,YAAY,KAAK;AAAA;AAAA,MACnB,EAAE,IAAI,cAAc;AAAA,IACrB;AAAA,EACD;AACO,SAAA,iBAAiB,eAAe,yBAAyB;AAEzD,SAAA;AACR;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollTargetElement.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/scrollTargets/ScrollTargetElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Node as SlateNode, Range as SlateRange, Transforms } from 'slate'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const scrollTargetElementType = 'scrollTarget' as const\n\nexport interface ScrollTargetElement extends SlateElement {\n\ttype: typeof scrollTargetElementType\n\tidentifier: string\n\tchildren: SlateEditor['children']\n}\n\nexport const isScrollTargetElement = (element: SlateNode): element is ScrollTargetElement =>\n\tSlateElement.isElement(element) && element.type === scrollTargetElementType\n\nexport const isScrollTargetElementActive = (editor: Editor) => {\n\tconst [link] = Editor.nodes(editor, { match: isScrollTargetElement })\n\treturn !!link\n}\n\nexport const scrollTargetElementPlugin = ({ render }: { render: ElementRenderer<ScrollTargetElement> }): EditorElementPlugin<ScrollTargetElement> => ({\n\ttype: scrollTargetElementType,\n\trender,\n\tisActive: ({ editor }) => isScrollTargetElementActive(editor),\n\tisInline: true,\n\tisVoid: true,\n\ttoggleElement: ({ editor, suchThat }) => {\n\t\tif (isScrollTargetElementActive(editor)) {\n\t\t\tunwrapScrollTarget(editor)\n\t\t} else {\n\t\t\tlet identifier =\n\t\t\t\tsuchThat?.identifier ??\n\t\t\t\tprompt('Insert the identifier:')\n\n\t\t\tif (!identifier) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\twrapScrollTarget(editor, identifier)\n\t\t}\n\t},\n})\nconst unwrapScrollTarget = (editor: Editor) => {\n\tTransforms.removeNodes(editor, { match: isScrollTargetElement })\n}\nconst wrapScrollTarget = (editor: Editor, identifier: string) => {\n\tif (isScrollTargetElementActive(editor)) {\n\t\tunwrapScrollTarget(editor)\n\t}\n\n\tconst selection = editor.selection\n\tconst isCollapsed = selection ? SlateRange.isCollapsed(selection!) : false\n\tconst ScrollTarget: ScrollTargetElement = {\n\t\ttype: scrollTargetElementType,\n\t\tidentifier,\n\t\tchildren: [{ text: '' }],\n\t}\n\n\tif (!isCollapsed) {\n\t\tTransforms.collapse(editor, { edge: 'start' })\n\t}\n\tTransforms.insertNodes(editor, ScrollTarget)\n}\n"],"names":["SlateElement","Editor","Transforms","SlateRange"],"mappings":";;;AAGO,MAAM,0BAA0B;AAQ1B,MAAA,wBAAwB,CAAC,YACrCA,cAAa,UAAU,OAAO,KAAK,QAAQ,SAAS;AAExC,MAAA,8BAA8B,CAAC,WAAmB;AACxD,QAAA,CAAC,IAAI,IAAIC,aAAO,MAAM,QAAQ,EAAE,OAAO,sBAAA,CAAuB;AACpE,SAAO,CAAC,CAAC;AACV;AAEO,MAAM,4BAA4B,CAAC,EAAE,cAA0G;AAAA,EACrJ,MAAM;AAAA,EACN;AAAA,EACA,UAAU,CAAC,EAAE,aAAa,4BAA4B,MAAM;AAAA,EAC5D,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,eAAe,CAAC,EAAE,QAAQ,eAAe;AACpC,QAAA,4BAA4B,MAAM,GAAG;AACxC,yBAAmB,MAAM;AAAA,IAAA,OACnB;AACN,UAAI,aACH,UAAU,cACV,OAAO,wBAAwB;AAEhC,UAAI,CAAC,YAAY;AAChB;AAAA,MACD;AACA,uBAAiB,QAAQ,UAAU;AAAA,IACpC;AAAA,EACD;AACD;AACA,MAAM,qBAAqB,CAAC,WAAmB;AAC9CC,QAAA,WAAW,YAAY,QAAQ,EAAE,OAAO,sBAAuB,CAAA;AAChE;AACA,MAAM,mBAAmB,CAAC,QAAgB,eAAuB;AAC5D,MAAA,4BAA4B,MAAM,GAAG;AACxC,uBAAmB,MAAM;AAAA,EAC1B;AAEA,QAAM,YAAY,OAAO;AACzB,QAAM,cAAc,YAAYC,MAAAA,MAAW,YAAY,SAAU,IAAI;AACrE,QAAM,eAAoC;AAAA,IACzC,MAAM;AAAA,IACN;AAAA,IACA,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,EAAA;AAGxB,MAAI,CAAC,aAAa;AACjBD,UAAA,WAAW,SAAS,QAAQ,EAAE,MAAM,QAAS,CAAA;AAAA,EAC9C;AACWA,QAAAA,WAAA,YAAY,QAAQ,YAAY;AAC5C;;;;;"}
1
+ {"version":3,"file":"ScrollTargetElement.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/scrollTargets/ScrollTargetElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Node as SlateNode, Range as SlateRange, Transforms } from 'slate'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const scrollTargetElementType = 'scrollTarget' as const\n\nexport interface ScrollTargetElement extends SlateElement {\n\ttype: typeof scrollTargetElementType\n\tidentifier: string\n\tchildren: SlateEditor['children']\n}\n\nexport const isScrollTargetElement = (element: SlateNode): element is ScrollTargetElement =>\n\tSlateElement.isElement(element) && element.type === scrollTargetElementType\n\nexport const isScrollTargetElementActive = (editor: Editor) => {\n\tconst [link] = Editor.nodes(editor, { match: isScrollTargetElement })\n\treturn !!link\n}\n\nexport const scrollTargetElementPlugin = ({ render }: { render: ElementRenderer<ScrollTargetElement> }): EditorElementPlugin<ScrollTargetElement> => ({\n\ttype: scrollTargetElementType,\n\trender,\n\tisActive: ({ editor }) => isScrollTargetElementActive(editor),\n\tisInline: true,\n\tisVoid: true,\n\ttoggleElement: ({ editor, suchThat }) => {\n\t\tif (isScrollTargetElementActive(editor)) {\n\t\t\tunwrapScrollTarget(editor)\n\t\t} else {\n\t\t\tlet identifier =\n\t\t\t\tsuchThat?.identifier ??\n\t\t\t\tprompt('Insert the identifier:')\n\n\t\t\tif (!identifier) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\twrapScrollTarget(editor, identifier)\n\t\t}\n\t},\n})\nconst unwrapScrollTarget = (editor: Editor) => {\n\tTransforms.removeNodes(editor, { match: isScrollTargetElement })\n}\nconst wrapScrollTarget = (editor: Editor, identifier: string) => {\n\tif (isScrollTargetElementActive(editor)) {\n\t\tunwrapScrollTarget(editor)\n\t}\n\n\tconst selection = editor.selection\n\tconst isCollapsed = selection ? SlateRange.isCollapsed(selection!) : false\n\tconst ScrollTarget: ScrollTargetElement = {\n\t\ttype: scrollTargetElementType,\n\t\tidentifier,\n\t\tchildren: [{ text: '' }],\n\t}\n\n\tif (!isCollapsed) {\n\t\tTransforms.collapse(editor, { edge: 'start' })\n\t}\n\tTransforms.insertNodes(editor, ScrollTarget)\n}\n"],"names":["SlateElement","Editor","Transforms","SlateRange"],"mappings":";;;AAGO,MAAM,0BAA0B;AAQ1B,MAAA,wBAAwB,CAAC,YACrCA,MAAA,QAAa,UAAU,OAAO,KAAK,QAAQ,SAAS;AAExC,MAAA,8BAA8B,CAAC,WAAmB;AACxD,QAAA,CAAC,IAAI,IAAIC,aAAO,MAAM,QAAQ,EAAE,OAAO,uBAAuB;AACpE,SAAO,CAAC,CAAC;AACV;AAEO,MAAM,4BAA4B,CAAC,EAAE,cAA0G;AAAA,EACrJ,MAAM;AAAA,EACN;AAAA,EACA,UAAU,CAAC,EAAE,aAAa,4BAA4B,MAAM;AAAA,EAC5D,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,eAAe,CAAC,EAAE,QAAQ,eAAe;AACpC,QAAA,4BAA4B,MAAM,GAAG;AACxC,yBAAmB,MAAM;AAAA,IAAA,OACnB;AACN,UAAI,aACH,UAAU,cACV,OAAO,wBAAwB;AAEhC,UAAI,CAAC,YAAY;AAChB;AAAA,MAAA;AAED,uBAAiB,QAAQ,UAAU;AAAA,IAAA;AAAA,EACpC;AAEF;AACA,MAAM,qBAAqB,CAAC,WAAmB;AAC9CC,QAAAA,WAAW,YAAY,QAAQ,EAAE,OAAO,uBAAuB;AAChE;AACA,MAAM,mBAAmB,CAAC,QAAgB,eAAuB;AAC5D,MAAA,4BAA4B,MAAM,GAAG;AACxC,uBAAmB,MAAM;AAAA,EAAA;AAG1B,QAAM,YAAY,OAAO;AACzB,QAAM,cAAc,YAAYC,MAAAA,MAAW,YAAY,SAAU,IAAI;AACrE,QAAM,eAAoC;AAAA,IACzC,MAAM;AAAA,IACN;AAAA,IACA,UAAU,CAAC,EAAE,MAAM,GAAI,CAAA;AAAA,EACxB;AAEA,MAAI,CAAC,aAAa;AACjBD,UAAAA,WAAW,SAAS,QAAQ,EAAE,MAAM,SAAS;AAAA,EAAA;AAEnCA,mBAAA,YAAY,QAAQ,YAAY;AAC5C;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollTargetElement.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/scrollTargets/ScrollTargetElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Node as SlateNode, Range as SlateRange, Transforms } from 'slate'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const scrollTargetElementType = 'scrollTarget' as const\n\nexport interface ScrollTargetElement extends SlateElement {\n\ttype: typeof scrollTargetElementType\n\tidentifier: string\n\tchildren: SlateEditor['children']\n}\n\nexport const isScrollTargetElement = (element: SlateNode): element is ScrollTargetElement =>\n\tSlateElement.isElement(element) && element.type === scrollTargetElementType\n\nexport const isScrollTargetElementActive = (editor: Editor) => {\n\tconst [link] = Editor.nodes(editor, { match: isScrollTargetElement })\n\treturn !!link\n}\n\nexport const scrollTargetElementPlugin = ({ render }: { render: ElementRenderer<ScrollTargetElement> }): EditorElementPlugin<ScrollTargetElement> => ({\n\ttype: scrollTargetElementType,\n\trender,\n\tisActive: ({ editor }) => isScrollTargetElementActive(editor),\n\tisInline: true,\n\tisVoid: true,\n\ttoggleElement: ({ editor, suchThat }) => {\n\t\tif (isScrollTargetElementActive(editor)) {\n\t\t\tunwrapScrollTarget(editor)\n\t\t} else {\n\t\t\tlet identifier =\n\t\t\t\tsuchThat?.identifier ??\n\t\t\t\tprompt('Insert the identifier:')\n\n\t\t\tif (!identifier) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\twrapScrollTarget(editor, identifier)\n\t\t}\n\t},\n})\nconst unwrapScrollTarget = (editor: Editor) => {\n\tTransforms.removeNodes(editor, { match: isScrollTargetElement })\n}\nconst wrapScrollTarget = (editor: Editor, identifier: string) => {\n\tif (isScrollTargetElementActive(editor)) {\n\t\tunwrapScrollTarget(editor)\n\t}\n\n\tconst selection = editor.selection\n\tconst isCollapsed = selection ? SlateRange.isCollapsed(selection!) : false\n\tconst ScrollTarget: ScrollTargetElement = {\n\t\ttype: scrollTargetElementType,\n\t\tidentifier,\n\t\tchildren: [{ text: '' }],\n\t}\n\n\tif (!isCollapsed) {\n\t\tTransforms.collapse(editor, { edge: 'start' })\n\t}\n\tTransforms.insertNodes(editor, ScrollTarget)\n}\n"],"names":["SlateElement","SlateRange"],"mappings":";AAGO,MAAM,0BAA0B;AAQ1B,MAAA,wBAAwB,CAAC,YACrCA,QAAa,UAAU,OAAO,KAAK,QAAQ,SAAS;AAExC,MAAA,8BAA8B,CAAC,WAAmB;AACxD,QAAA,CAAC,IAAI,IAAI,OAAO,MAAM,QAAQ,EAAE,OAAO,sBAAA,CAAuB;AACpE,SAAO,CAAC,CAAC;AACV;AAEO,MAAM,4BAA4B,CAAC,EAAE,cAA0G;AAAA,EACrJ,MAAM;AAAA,EACN;AAAA,EACA,UAAU,CAAC,EAAE,aAAa,4BAA4B,MAAM;AAAA,EAC5D,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,eAAe,CAAC,EAAE,QAAQ,eAAe;AACpC,QAAA,4BAA4B,MAAM,GAAG;AACxC,yBAAmB,MAAM;AAAA,IAAA,OACnB;AACN,UAAI,aACH,UAAU,cACV,OAAO,wBAAwB;AAEhC,UAAI,CAAC,YAAY;AAChB;AAAA,MACD;AACA,uBAAiB,QAAQ,UAAU;AAAA,IACpC;AAAA,EACD;AACD;AACA,MAAM,qBAAqB,CAAC,WAAmB;AAC9C,aAAW,YAAY,QAAQ,EAAE,OAAO,sBAAuB,CAAA;AAChE;AACA,MAAM,mBAAmB,CAAC,QAAgB,eAAuB;AAC5D,MAAA,4BAA4B,MAAM,GAAG;AACxC,uBAAmB,MAAM;AAAA,EAC1B;AAEA,QAAM,YAAY,OAAO;AACzB,QAAM,cAAc,YAAYC,MAAW,YAAY,SAAU,IAAI;AACrE,QAAM,eAAoC;AAAA,IACzC,MAAM;AAAA,IACN;AAAA,IACA,UAAU,CAAC,EAAE,MAAM,IAAI;AAAA,EAAA;AAGxB,MAAI,CAAC,aAAa;AACjB,eAAW,SAAS,QAAQ,EAAE,MAAM,QAAS,CAAA;AAAA,EAC9C;AACW,aAAA,YAAY,QAAQ,YAAY;AAC5C;"}
1
+ {"version":3,"file":"ScrollTargetElement.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/scrollTargets/ScrollTargetElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Node as SlateNode, Range as SlateRange, Transforms } from 'slate'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const scrollTargetElementType = 'scrollTarget' as const\n\nexport interface ScrollTargetElement extends SlateElement {\n\ttype: typeof scrollTargetElementType\n\tidentifier: string\n\tchildren: SlateEditor['children']\n}\n\nexport const isScrollTargetElement = (element: SlateNode): element is ScrollTargetElement =>\n\tSlateElement.isElement(element) && element.type === scrollTargetElementType\n\nexport const isScrollTargetElementActive = (editor: Editor) => {\n\tconst [link] = Editor.nodes(editor, { match: isScrollTargetElement })\n\treturn !!link\n}\n\nexport const scrollTargetElementPlugin = ({ render }: { render: ElementRenderer<ScrollTargetElement> }): EditorElementPlugin<ScrollTargetElement> => ({\n\ttype: scrollTargetElementType,\n\trender,\n\tisActive: ({ editor }) => isScrollTargetElementActive(editor),\n\tisInline: true,\n\tisVoid: true,\n\ttoggleElement: ({ editor, suchThat }) => {\n\t\tif (isScrollTargetElementActive(editor)) {\n\t\t\tunwrapScrollTarget(editor)\n\t\t} else {\n\t\t\tlet identifier =\n\t\t\t\tsuchThat?.identifier ??\n\t\t\t\tprompt('Insert the identifier:')\n\n\t\t\tif (!identifier) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\twrapScrollTarget(editor, identifier)\n\t\t}\n\t},\n})\nconst unwrapScrollTarget = (editor: Editor) => {\n\tTransforms.removeNodes(editor, { match: isScrollTargetElement })\n}\nconst wrapScrollTarget = (editor: Editor, identifier: string) => {\n\tif (isScrollTargetElementActive(editor)) {\n\t\tunwrapScrollTarget(editor)\n\t}\n\n\tconst selection = editor.selection\n\tconst isCollapsed = selection ? SlateRange.isCollapsed(selection!) : false\n\tconst ScrollTarget: ScrollTargetElement = {\n\t\ttype: scrollTargetElementType,\n\t\tidentifier,\n\t\tchildren: [{ text: '' }],\n\t}\n\n\tif (!isCollapsed) {\n\t\tTransforms.collapse(editor, { edge: 'start' })\n\t}\n\tTransforms.insertNodes(editor, ScrollTarget)\n}\n"],"names":["SlateElement","SlateRange"],"mappings":";AAGO,MAAM,0BAA0B;AAQ1B,MAAA,wBAAwB,CAAC,YACrCA,QAAa,UAAU,OAAO,KAAK,QAAQ,SAAS;AAExC,MAAA,8BAA8B,CAAC,WAAmB;AACxD,QAAA,CAAC,IAAI,IAAI,OAAO,MAAM,QAAQ,EAAE,OAAO,uBAAuB;AACpE,SAAO,CAAC,CAAC;AACV;AAEO,MAAM,4BAA4B,CAAC,EAAE,cAA0G;AAAA,EACrJ,MAAM;AAAA,EACN;AAAA,EACA,UAAU,CAAC,EAAE,aAAa,4BAA4B,MAAM;AAAA,EAC5D,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,eAAe,CAAC,EAAE,QAAQ,eAAe;AACpC,QAAA,4BAA4B,MAAM,GAAG;AACxC,yBAAmB,MAAM;AAAA,IAAA,OACnB;AACN,UAAI,aACH,UAAU,cACV,OAAO,wBAAwB;AAEhC,UAAI,CAAC,YAAY;AAChB;AAAA,MAAA;AAED,uBAAiB,QAAQ,UAAU;AAAA,IAAA;AAAA,EACpC;AAEF;AACA,MAAM,qBAAqB,CAAC,WAAmB;AAC9C,aAAW,YAAY,QAAQ,EAAE,OAAO,uBAAuB;AAChE;AACA,MAAM,mBAAmB,CAAC,QAAgB,eAAuB;AAC5D,MAAA,4BAA4B,MAAM,GAAG;AACxC,uBAAmB,MAAM;AAAA,EAAA;AAG1B,QAAM,YAAY,OAAO;AACzB,QAAM,cAAc,YAAYC,MAAW,YAAY,SAAU,IAAI;AACrE,QAAM,eAAoC;AAAA,IACzC,MAAM;AAAA,IACN;AAAA,IACA,UAAU,CAAC,EAAE,MAAM,GAAI,CAAA;AAAA,EACxB;AAEA,MAAI,CAAC,aAAa;AACjB,eAAW,SAAS,QAAQ,EAAE,MAAM,SAAS;AAAA,EAAA;AAEnC,aAAA,YAAY,QAAQ,YAAY;AAC5C;"}
@@ -1 +1 @@
1
- {"version":3,"file":"withScrollTargets.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/scrollTargets/withScrollTargets.ts"],"sourcesContent":["import { Editor } from 'slate'\nimport { ScrollTargetElement, scrollTargetElementPlugin } from './ScrollTargetElement'\nimport { ElementRenderer } from '../../../types'\n\nexport const withScrollTargets = ({ render }: { render: ElementRenderer<ScrollTargetElement> }) => <E extends Editor>(editor: E): E => {\n\teditor.registerElement(scrollTargetElementPlugin({ render }))\n\treturn editor\n}\n"],"names":["scrollTargetElementPlugin"],"mappings":";;;AAIO,MAAM,oBAAoB,CAAC,EAAE,OAAO,MAAwD,CAAmB,WAAiB;AACtI,SAAO,gBAAgBA,oBAAAA,0BAA0B,EAAE,OAAA,CAAQ,CAAC;AACrD,SAAA;AACR;;"}
1
+ {"version":3,"file":"withScrollTargets.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/scrollTargets/withScrollTargets.ts"],"sourcesContent":["import { Editor } from 'slate'\nimport { ScrollTargetElement, scrollTargetElementPlugin } from './ScrollTargetElement'\nimport { ElementRenderer } from '../../../types'\n\nexport const withScrollTargets = ({ render }: { render: ElementRenderer<ScrollTargetElement> }) => <E extends Editor>(editor: E): E => {\n\teditor.registerElement(scrollTargetElementPlugin({ render }))\n\treturn editor\n}\n"],"names":["scrollTargetElementPlugin"],"mappings":";;;AAIO,MAAM,oBAAoB,CAAC,EAAE,OAAO,MAAwD,CAAmB,WAAiB;AACtI,SAAO,gBAAgBA,oBAAAA,0BAA0B,EAAE,OAAQ,CAAA,CAAC;AACrD,SAAA;AACR;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"withScrollTargets.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/scrollTargets/withScrollTargets.ts"],"sourcesContent":["import { Editor } from 'slate'\nimport { ScrollTargetElement, scrollTargetElementPlugin } from './ScrollTargetElement'\nimport { ElementRenderer } from '../../../types'\n\nexport const withScrollTargets = ({ render }: { render: ElementRenderer<ScrollTargetElement> }) => <E extends Editor>(editor: E): E => {\n\teditor.registerElement(scrollTargetElementPlugin({ render }))\n\treturn editor\n}\n"],"names":[],"mappings":";AAIO,MAAM,oBAAoB,CAAC,EAAE,OAAO,MAAwD,CAAmB,WAAiB;AACtI,SAAO,gBAAgB,0BAA0B,EAAE,OAAA,CAAQ,CAAC;AACrD,SAAA;AACR;"}
1
+ {"version":3,"file":"withScrollTargets.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/scrollTargets/withScrollTargets.ts"],"sourcesContent":["import { Editor } from 'slate'\nimport { ScrollTargetElement, scrollTargetElementPlugin } from './ScrollTargetElement'\nimport { ElementRenderer } from '../../../types'\n\nexport const withScrollTargets = ({ render }: { render: ElementRenderer<ScrollTargetElement> }) => <E extends Editor>(editor: E): E => {\n\teditor.registerElement(scrollTargetElementPlugin({ render }))\n\treturn editor\n}\n"],"names":[],"mappings":";AAIO,MAAM,oBAAoB,CAAC,EAAE,OAAO,MAAwD,CAAmB,WAAiB;AACtI,SAAO,gBAAgB,0BAA0B,EAAE,OAAQ,CAAA,CAAC;AACrD,SAAA;AACR;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableCellElement.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableCellElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Element, Element as SlateElement, Node, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { tableRowElementType } from './TableRowElement'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const tableCellElementType = 'tableCell' as const\n\nexport interface TableCellElement extends SlateElement {\n\ttype: typeof tableCellElementType\n\tchildren: SlateEditor['children']\n\theaderScope?: 'row'\n\tjustify?: 'start' | 'center' | 'end'\n}\n\nexport const isTableCellElement = (element: Node): element is TableCellElement => Element.isElement(element) && element.type === tableCellElementType\n\nexport const createEmptyTableCellElement = () => ({\n\ttype: tableCellElementType,\n\tchildren: [{ text: '' }],\n})\n\n\nexport const tableCellElementPlugin = ({ render }: {render: ElementRenderer<TableCellElement>}): EditorElementPlugin<TableCellElement> => ({\n\ttype: tableCellElementType,\n\trender,\n\tnormalizeNode: ({ element, editor, path, preventDefault }) => {\n\t\tif (element.children.length === 1) {\n\t\t\tconst onlyChild = element.children[0]\n\t\t\tif (SlateElement.isElement(onlyChild) && editor.isDefaultElement(onlyChild)) {\n\t\t\t\tTransforms.unwrapNodes(editor, {\n\t\t\t\t\tat: [...path, 0],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tif (!ContemberEditor.hasParentOfType(editor, [element, path], tableRowElementType)) {\n\t\t\tTransforms.unwrapNodes(editor, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\t\tif (path[path.length - 1] > 0 && element.headerScope) {\n\t\t\tTransforms.setNodes(editor, { headerScope: null }, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\t},\n\tcanContainAnyBlocks: true,\n})\n"],"names":["Element","SlateElement","Transforms","ContemberEditor","tableRowElementType"],"mappings":";;;;;AAKO,MAAM,uBAAuB;AASvB,MAAA,qBAAqB,CAAC,YAA+CA,cAAQ,UAAU,OAAO,KAAK,QAAQ,SAAS;AAE1H,MAAM,8BAA8B,OAAO;AAAA,EACjD,MAAM;AAAA,EACN,UAAU,CAAC,EAAE,MAAM,IAAI;AACxB;AAGO,MAAM,yBAAyB,CAAC,EAAE,cAAkG;AAAA,EAC1I,MAAM;AAAA,EACN;AAAA,EACA,eAAe,CAAC,EAAE,SAAS,QAAQ,MAAM,qBAAqB;AACzD,QAAA,QAAQ,SAAS,WAAW,GAAG;AAC5B,YAAA,YAAY,QAAQ,SAAS,CAAC;AACpC,UAAIC,MAAAA,QAAa,UAAU,SAAS,KAAK,OAAO,iBAAiB,SAAS,GAAG;AAC5EC,cAAA,WAAW,YAAY,QAAQ;AAAA,UAC9B,IAAI,CAAC,GAAG,MAAM,CAAC;AAAA,QAAA,CACf;AAAA,MACF;AAAA,IACD;AACI,QAAA,CAACC,MAAAA,gBAAgB,gBAAgB,QAAQ,CAAC,SAAS,IAAI,GAAGC,gBAAAA,mBAAmB,GAAG;AACnFF,YAAA,WAAW,YAAY,QAAQ,EAAE,IAAI,KAAM,CAAA;AAC3C,aAAO,eAAe;AAAA,IACvB;AACA,QAAI,KAAK,KAAK,SAAS,CAAC,IAAI,KAAK,QAAQ,aAAa;AAC1CA,uBAAA,SAAS,QAAQ,EAAE,aAAa,QAAQ,EAAE,IAAI,KAAA,CAAM;AAC/D,aAAO,eAAe;AAAA,IACvB;AAAA,EACD;AAAA,EACA,qBAAqB;AACtB;;;;;"}
1
+ {"version":3,"file":"TableCellElement.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableCellElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Element, Element as SlateElement, Node, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { tableRowElementType } from './TableRowElement'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const tableCellElementType = 'tableCell' as const\n\nexport interface TableCellElement extends SlateElement {\n\ttype: typeof tableCellElementType\n\tchildren: SlateEditor['children']\n\theaderScope?: 'row'\n\tjustify?: 'start' | 'center' | 'end'\n}\n\nexport const isTableCellElement = (element: Node): element is TableCellElement => Element.isElement(element) && element.type === tableCellElementType\n\nexport const createEmptyTableCellElement = () => ({\n\ttype: tableCellElementType,\n\tchildren: [{ text: '' }],\n})\n\n\nexport const tableCellElementPlugin = ({ render }: {render: ElementRenderer<TableCellElement>}): EditorElementPlugin<TableCellElement> => ({\n\ttype: tableCellElementType,\n\trender,\n\tnormalizeNode: ({ element, editor, path, preventDefault }) => {\n\t\tif (element.children.length === 1) {\n\t\t\tconst onlyChild = element.children[0]\n\t\t\tif (SlateElement.isElement(onlyChild) && editor.isDefaultElement(onlyChild)) {\n\t\t\t\tTransforms.unwrapNodes(editor, {\n\t\t\t\t\tat: [...path, 0],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tif (!ContemberEditor.hasParentOfType(editor, [element, path], tableRowElementType)) {\n\t\t\tTransforms.unwrapNodes(editor, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\t\tif (path[path.length - 1] > 0 && element.headerScope) {\n\t\t\tTransforms.setNodes(editor, { headerScope: null }, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\t},\n\tcanContainAnyBlocks: true,\n})\n"],"names":["Element","SlateElement","Transforms","ContemberEditor","tableRowElementType"],"mappings":";;;;;AAKO,MAAM,uBAAuB;AASvB,MAAA,qBAAqB,CAAC,YAA+CA,MAAA,QAAQ,UAAU,OAAO,KAAK,QAAQ,SAAS;AAE1H,MAAM,8BAA8B,OAAO;AAAA,EACjD,MAAM;AAAA,EACN,UAAU,CAAC,EAAE,MAAM,GAAI,CAAA;AACxB;AAGO,MAAM,yBAAyB,CAAC,EAAE,cAAkG;AAAA,EAC1I,MAAM;AAAA,EACN;AAAA,EACA,eAAe,CAAC,EAAE,SAAS,QAAQ,MAAM,qBAAqB;AACzD,QAAA,QAAQ,SAAS,WAAW,GAAG;AAC5B,YAAA,YAAY,QAAQ,SAAS,CAAC;AACpC,UAAIC,MAAAA,QAAa,UAAU,SAAS,KAAK,OAAO,iBAAiB,SAAS,GAAG;AAC5EC,cAAA,WAAW,YAAY,QAAQ;AAAA,UAC9B,IAAI,CAAC,GAAG,MAAM,CAAC;AAAA,QAAA,CACf;AAAA,MAAA;AAAA,IACF;AAEG,QAAA,CAACC,MAAAA,gBAAgB,gBAAgB,QAAQ,CAAC,SAAS,IAAI,GAAGC,gBAAAA,mBAAmB,GAAG;AACnFF,YAAAA,WAAW,YAAY,QAAQ,EAAE,IAAI,MAAM;AAC3C,aAAO,eAAe;AAAA,IAAA;AAEvB,QAAI,KAAK,KAAK,SAAS,CAAC,IAAI,KAAK,QAAQ,aAAa;AAC1CA,uBAAA,SAAS,QAAQ,EAAE,aAAa,QAAQ,EAAE,IAAI,MAAM;AAC/D,aAAO,eAAe;AAAA,IAAA;AAAA,EAExB;AAAA,EACA,qBAAqB;AACtB;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableCellElement.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableCellElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Element, Element as SlateElement, Node, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { tableRowElementType } from './TableRowElement'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const tableCellElementType = 'tableCell' as const\n\nexport interface TableCellElement extends SlateElement {\n\ttype: typeof tableCellElementType\n\tchildren: SlateEditor['children']\n\theaderScope?: 'row'\n\tjustify?: 'start' | 'center' | 'end'\n}\n\nexport const isTableCellElement = (element: Node): element is TableCellElement => Element.isElement(element) && element.type === tableCellElementType\n\nexport const createEmptyTableCellElement = () => ({\n\ttype: tableCellElementType,\n\tchildren: [{ text: '' }],\n})\n\n\nexport const tableCellElementPlugin = ({ render }: {render: ElementRenderer<TableCellElement>}): EditorElementPlugin<TableCellElement> => ({\n\ttype: tableCellElementType,\n\trender,\n\tnormalizeNode: ({ element, editor, path, preventDefault }) => {\n\t\tif (element.children.length === 1) {\n\t\t\tconst onlyChild = element.children[0]\n\t\t\tif (SlateElement.isElement(onlyChild) && editor.isDefaultElement(onlyChild)) {\n\t\t\t\tTransforms.unwrapNodes(editor, {\n\t\t\t\t\tat: [...path, 0],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tif (!ContemberEditor.hasParentOfType(editor, [element, path], tableRowElementType)) {\n\t\t\tTransforms.unwrapNodes(editor, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\t\tif (path[path.length - 1] > 0 && element.headerScope) {\n\t\t\tTransforms.setNodes(editor, { headerScope: null }, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\t},\n\tcanContainAnyBlocks: true,\n})\n"],"names":["SlateElement"],"mappings":";;;AAKO,MAAM,uBAAuB;AASvB,MAAA,qBAAqB,CAAC,YAA+C,QAAQ,UAAU,OAAO,KAAK,QAAQ,SAAS;AAE1H,MAAM,8BAA8B,OAAO;AAAA,EACjD,MAAM;AAAA,EACN,UAAU,CAAC,EAAE,MAAM,IAAI;AACxB;AAGO,MAAM,yBAAyB,CAAC,EAAE,cAAkG;AAAA,EAC1I,MAAM;AAAA,EACN;AAAA,EACA,eAAe,CAAC,EAAE,SAAS,QAAQ,MAAM,qBAAqB;AACzD,QAAA,QAAQ,SAAS,WAAW,GAAG;AAC5B,YAAA,YAAY,QAAQ,SAAS,CAAC;AACpC,UAAIA,QAAa,UAAU,SAAS,KAAK,OAAO,iBAAiB,SAAS,GAAG;AAC5E,mBAAW,YAAY,QAAQ;AAAA,UAC9B,IAAI,CAAC,GAAG,MAAM,CAAC;AAAA,QAAA,CACf;AAAA,MACF;AAAA,IACD;AACI,QAAA,CAAC,gBAAgB,gBAAgB,QAAQ,CAAC,SAAS,IAAI,GAAG,mBAAmB,GAAG;AACnF,iBAAW,YAAY,QAAQ,EAAE,IAAI,KAAM,CAAA;AAC3C,aAAO,eAAe;AAAA,IACvB;AACA,QAAI,KAAK,KAAK,SAAS,CAAC,IAAI,KAAK,QAAQ,aAAa;AAC1C,iBAAA,SAAS,QAAQ,EAAE,aAAa,QAAQ,EAAE,IAAI,KAAA,CAAM;AAC/D,aAAO,eAAe;AAAA,IACvB;AAAA,EACD;AAAA,EACA,qBAAqB;AACtB;"}
1
+ {"version":3,"file":"TableCellElement.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableCellElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Element, Element as SlateElement, Node, Transforms } from 'slate'\nimport { ContemberEditor } from '../../../editor'\nimport { tableRowElementType } from './TableRowElement'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const tableCellElementType = 'tableCell' as const\n\nexport interface TableCellElement extends SlateElement {\n\ttype: typeof tableCellElementType\n\tchildren: SlateEditor['children']\n\theaderScope?: 'row'\n\tjustify?: 'start' | 'center' | 'end'\n}\n\nexport const isTableCellElement = (element: Node): element is TableCellElement => Element.isElement(element) && element.type === tableCellElementType\n\nexport const createEmptyTableCellElement = () => ({\n\ttype: tableCellElementType,\n\tchildren: [{ text: '' }],\n})\n\n\nexport const tableCellElementPlugin = ({ render }: {render: ElementRenderer<TableCellElement>}): EditorElementPlugin<TableCellElement> => ({\n\ttype: tableCellElementType,\n\trender,\n\tnormalizeNode: ({ element, editor, path, preventDefault }) => {\n\t\tif (element.children.length === 1) {\n\t\t\tconst onlyChild = element.children[0]\n\t\t\tif (SlateElement.isElement(onlyChild) && editor.isDefaultElement(onlyChild)) {\n\t\t\t\tTransforms.unwrapNodes(editor, {\n\t\t\t\t\tat: [...path, 0],\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tif (!ContemberEditor.hasParentOfType(editor, [element, path], tableRowElementType)) {\n\t\t\tTransforms.unwrapNodes(editor, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\t\tif (path[path.length - 1] > 0 && element.headerScope) {\n\t\t\tTransforms.setNodes(editor, { headerScope: null }, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\t},\n\tcanContainAnyBlocks: true,\n})\n"],"names":["SlateElement"],"mappings":";;;AAKO,MAAM,uBAAuB;AASvB,MAAA,qBAAqB,CAAC,YAA+C,QAAQ,UAAU,OAAO,KAAK,QAAQ,SAAS;AAE1H,MAAM,8BAA8B,OAAO;AAAA,EACjD,MAAM;AAAA,EACN,UAAU,CAAC,EAAE,MAAM,GAAI,CAAA;AACxB;AAGO,MAAM,yBAAyB,CAAC,EAAE,cAAkG;AAAA,EAC1I,MAAM;AAAA,EACN;AAAA,EACA,eAAe,CAAC,EAAE,SAAS,QAAQ,MAAM,qBAAqB;AACzD,QAAA,QAAQ,SAAS,WAAW,GAAG;AAC5B,YAAA,YAAY,QAAQ,SAAS,CAAC;AACpC,UAAIA,QAAa,UAAU,SAAS,KAAK,OAAO,iBAAiB,SAAS,GAAG;AAC5E,mBAAW,YAAY,QAAQ;AAAA,UAC9B,IAAI,CAAC,GAAG,MAAM,CAAC;AAAA,QAAA,CACf;AAAA,MAAA;AAAA,IACF;AAEG,QAAA,CAAC,gBAAgB,gBAAgB,QAAQ,CAAC,SAAS,IAAI,GAAG,mBAAmB,GAAG;AACnF,iBAAW,YAAY,QAAQ,EAAE,IAAI,MAAM;AAC3C,aAAO,eAAe;AAAA,IAAA;AAEvB,QAAI,KAAK,KAAK,SAAS,CAAC,IAAI,KAAK,QAAQ,aAAa;AAC1C,iBAAA,SAAS,QAAQ,EAAE,aAAa,QAAQ,EAAE,IAAI,MAAM;AAC/D,aAAO,eAAe;AAAA,IAAA;AAAA,EAExB;AAAA,EACA,qBAAqB;AACtB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableElement.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Element, Node as SlateNode, Node, NodeEntry, Path as SlatePath, Range as SlateRange, Transforms } from 'slate'\nimport { createEmptyTableRowElement, isTableRowElement, TableRowElement, tableRowElementType } from './TableRowElement'\nimport { ContemberEditor } from '../../../editor'\nimport { gaugeTableColumnCount } from './gaugeTableColumnCount'\nimport { createEmptyTableCellElement } from './TableCellElement'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const tableElementType = 'table' as const\n\nexport interface TableElement extends SlateElement {\n\ttype: typeof tableElementType\n\tchildren: SlateEditor['children']\n}\n\nexport const isTableElement = (element: Node): element is TableElement => Element.isElement(element) && element.type === tableElementType\n\nexport const createEmptyTableElement = (rowCount = 3, columnCount = 2) => ({\n\ttype: tableElementType,\n\tchildren: Array.from({ length: rowCount }, () => createEmptyTableRowElement(columnCount)),\n})\n\nexport const getTableElementRowCount = (element: TableElement): number => {\n\treturn element.children.length\n}\n\nexport const getTableElementColumnCount = (element: TableElement): number => {\n\tconst firstRow = element.children[0] as TableRowElement | undefined\n\treturn firstRow?.children.length ?? 0\n}\n\nexport const tableElementPlugin = ({ render }: {render: ElementRenderer<TableElement>}): EditorElementPlugin<TableElement> => ({\n\ttype: tableElementType,\n\trender,\n\tnormalizeNode: ({ editor, element, path, preventDefault }) => {\n\t\tif (element.children.length === 0) {\n\t\t\tTransforms.removeNodes(editor, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\n\t\tlet didTransform = false\n\t\tfor (const [child, childPath] of SlateNode.children(editor, path)) {\n\t\t\tif (SlateElement.isElement(child)) {\n\t\t\t\tif (!isTableRowElement(child)) {\n\t\t\t\t\tContemberEditor.ejectElement(editor, childPath)\n\t\t\t\t\tTransforms.setNodes(editor, { type: tableRowElementType }, { at: childPath })\n\t\t\t\t\tdidTransform = true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tTransforms.removeNodes(editor, { at: path })\n\t\t\t\treturn preventDefault()\n\t\t\t}\n\t\t}\n\t\tif (didTransform) {\n\t\t\treturn preventDefault()\n\t\t}\n\t\tconst columnCount = gaugeTableColumnCount(element)\n\t\tfor (const [row, childPath] of SlateNode.children(editor, path) as Iterable<NodeEntry<TableRowElement>>) {\n\t\t\tconst currentColumnCount = row.children.length\n\t\t\tif (currentColumnCount === columnCount) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// For the first row, we prepend or insert at the start which in most cases will likely preserve the\n\t\t\t// already existing cells' positions.\n\t\t\tif (currentColumnCount > columnCount) {\n\t\t\t\tconst shouldBiasTowardsStart = childPath[childPath.length - 1] === 0\n\t\t\t\tfor (let i = columnCount; i < currentColumnCount; i++) {\n\t\t\t\t\tTransforms.removeNodes(editor, { at: [...childPath, shouldBiasTowardsStart ? 0 : i] })\n\t\t\t\t}\n\t\t\t} else if (currentColumnCount < columnCount) {\n\t\t\t\tconst shouldBiasTowardsStart = childPath[childPath.length - 1] === 0\n\t\t\t\tfor (let i = currentColumnCount; i < columnCount; i++) {\n\t\t\t\t\tTransforms.insertNodes(editor, createEmptyTableCellElement(), {\n\t\t\t\t\t\tat: [...childPath, shouldBiasTowardsStart ? 0 : i],\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tcanContainAnyBlocks: false,\n\ttoggleElement: ({ editor }) => {\n\t\tconst closestTableEntry = Editor.above(editor, {\n\t\t\tmode: 'lowest',\n\t\t\tmatch: matchedNode => SlateElement.isElement(matchedNode) && isTableElement(matchedNode),\n\t\t})\n\t\tif (closestTableEntry) {\n\t\t\treturn\n\t\t}\n\t\tconst { selection } = editor\n\t\tif (!selection || SlateRange.isExpanded(selection)) {\n\t\t\treturn\n\t\t}\n\n\t\tconst closestDefaultEntry: NodeEntry | undefined = Editor.above(editor, {\n\t\t\tat: selection.focus,\n\t\t\tmode: 'lowest',\n\t\t\tmatch: matchedNode => SlateElement.isElement(matchedNode) && editor.isDefaultElement(matchedNode),\n\t\t})\n\t\tif (!closestDefaultEntry) {\n\t\t\treturn\n\t\t}\n\t\tconst [closestDefault, closestDefaultPath] = closestDefaultEntry\n\n\t\tif (closestDefaultPath.length !== 1) {\n\t\t\treturn // We only support tables at the very top level\n\t\t}\n\n\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\tlet targetPath: SlatePath\n\t\t\tif (SlateNode.string(closestDefault) === '') {\n\t\t\t\tTransforms.removeNodes(editor, {\n\t\t\t\t\tat: closestDefaultPath,\n\t\t\t\t})\n\t\t\t\ttargetPath = closestDefaultPath\n\t\t\t} else {\n\t\t\t\ttargetPath = [closestDefaultPath[0] + 1]\n\t\t\t}\n\t\t\tconst table = createEmptyTableElement()\n\n\t\t\tTransforms.insertNodes(editor, table, {\n\t\t\t\tat: targetPath,\n\t\t\t})\n\t\t})\n\t},\n})\n"],"names":["Element","createEmptyTableRowElement","Transforms","SlateNode","SlateElement","isTableRowElement","ContemberEditor","tableRowElementType","gaugeTableColumnCount","createEmptyTableCellElement","Editor","SlateRange"],"mappings":"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"}
1
+ {"version":3,"file":"TableElement.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Element, Node as SlateNode, Node, NodeEntry, Path as SlatePath, Range as SlateRange, Transforms } from 'slate'\nimport { createEmptyTableRowElement, isTableRowElement, TableRowElement, tableRowElementType } from './TableRowElement'\nimport { ContemberEditor } from '../../../editor'\nimport { gaugeTableColumnCount } from './gaugeTableColumnCount'\nimport { createEmptyTableCellElement } from './TableCellElement'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const tableElementType = 'table' as const\n\nexport interface TableElement extends SlateElement {\n\ttype: typeof tableElementType\n\tchildren: SlateEditor['children']\n}\n\nexport const isTableElement = (element: Node): element is TableElement => Element.isElement(element) && element.type === tableElementType\n\nexport const createEmptyTableElement = (rowCount = 3, columnCount = 2) => ({\n\ttype: tableElementType,\n\tchildren: Array.from({ length: rowCount }, () => createEmptyTableRowElement(columnCount)),\n})\n\nexport const getTableElementRowCount = (element: TableElement): number => {\n\treturn element.children.length\n}\n\nexport const getTableElementColumnCount = (element: TableElement): number => {\n\tconst firstRow = element.children[0] as TableRowElement | undefined\n\treturn firstRow?.children.length ?? 0\n}\n\nexport const tableElementPlugin = ({ render }: {render: ElementRenderer<TableElement>}): EditorElementPlugin<TableElement> => ({\n\ttype: tableElementType,\n\trender,\n\tnormalizeNode: ({ editor, element, path, preventDefault }) => {\n\t\tif (element.children.length === 0) {\n\t\t\tTransforms.removeNodes(editor, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\n\t\tlet didTransform = false\n\t\tfor (const [child, childPath] of SlateNode.children(editor, path)) {\n\t\t\tif (SlateElement.isElement(child)) {\n\t\t\t\tif (!isTableRowElement(child)) {\n\t\t\t\t\tContemberEditor.ejectElement(editor, childPath)\n\t\t\t\t\tTransforms.setNodes(editor, { type: tableRowElementType }, { at: childPath })\n\t\t\t\t\tdidTransform = true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tTransforms.removeNodes(editor, { at: path })\n\t\t\t\treturn preventDefault()\n\t\t\t}\n\t\t}\n\t\tif (didTransform) {\n\t\t\treturn preventDefault()\n\t\t}\n\t\tconst columnCount = gaugeTableColumnCount(element)\n\t\tfor (const [row, childPath] of SlateNode.children(editor, path) as Iterable<NodeEntry<TableRowElement>>) {\n\t\t\tconst currentColumnCount = row.children.length\n\t\t\tif (currentColumnCount === columnCount) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// For the first row, we prepend or insert at the start which in most cases will likely preserve the\n\t\t\t// already existing cells' positions.\n\t\t\tif (currentColumnCount > columnCount) {\n\t\t\t\tconst shouldBiasTowardsStart = childPath[childPath.length - 1] === 0\n\t\t\t\tfor (let i = columnCount; i < currentColumnCount; i++) {\n\t\t\t\t\tTransforms.removeNodes(editor, { at: [...childPath, shouldBiasTowardsStart ? 0 : i] })\n\t\t\t\t}\n\t\t\t} else if (currentColumnCount < columnCount) {\n\t\t\t\tconst shouldBiasTowardsStart = childPath[childPath.length - 1] === 0\n\t\t\t\tfor (let i = currentColumnCount; i < columnCount; i++) {\n\t\t\t\t\tTransforms.insertNodes(editor, createEmptyTableCellElement(), {\n\t\t\t\t\t\tat: [...childPath, shouldBiasTowardsStart ? 0 : i],\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tcanContainAnyBlocks: false,\n\ttoggleElement: ({ editor }) => {\n\t\tconst closestTableEntry = Editor.above(editor, {\n\t\t\tmode: 'lowest',\n\t\t\tmatch: matchedNode => SlateElement.isElement(matchedNode) && isTableElement(matchedNode),\n\t\t})\n\t\tif (closestTableEntry) {\n\t\t\treturn\n\t\t}\n\t\tconst { selection } = editor\n\t\tif (!selection || SlateRange.isExpanded(selection)) {\n\t\t\treturn\n\t\t}\n\n\t\tconst closestDefaultEntry: NodeEntry | undefined = Editor.above(editor, {\n\t\t\tat: selection.focus,\n\t\t\tmode: 'lowest',\n\t\t\tmatch: matchedNode => SlateElement.isElement(matchedNode) && editor.isDefaultElement(matchedNode),\n\t\t})\n\t\tif (!closestDefaultEntry) {\n\t\t\treturn\n\t\t}\n\t\tconst [closestDefault, closestDefaultPath] = closestDefaultEntry\n\n\t\tif (closestDefaultPath.length !== 1) {\n\t\t\treturn // We only support tables at the very top level\n\t\t}\n\n\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\tlet targetPath: SlatePath\n\t\t\tif (SlateNode.string(closestDefault) === '') {\n\t\t\t\tTransforms.removeNodes(editor, {\n\t\t\t\t\tat: closestDefaultPath,\n\t\t\t\t})\n\t\t\t\ttargetPath = closestDefaultPath\n\t\t\t} else {\n\t\t\t\ttargetPath = [closestDefaultPath[0] + 1]\n\t\t\t}\n\t\t\tconst table = createEmptyTableElement()\n\n\t\t\tTransforms.insertNodes(editor, table, {\n\t\t\t\tat: targetPath,\n\t\t\t})\n\t\t})\n\t},\n})\n"],"names":["Element","createEmptyTableRowElement","Transforms","SlateNode","SlateElement","isTableRowElement","ContemberEditor","tableRowElementType","gaugeTableColumnCount","createEmptyTableCellElement","Editor","SlateRange"],"mappings":";;;;;;;AAOO,MAAM,mBAAmB;AAOnB,MAAA,iBAAiB,CAAC,YAA2CA,MAAA,QAAQ,UAAU,OAAO,KAAK,QAAQ,SAAS;AAElH,MAAM,0BAA0B,CAAC,WAAW,GAAG,cAAc,OAAO;AAAA,EAC1E,MAAM;AAAA,EACN,UAAU,MAAM,KAAK,EAAE,QAAQ,YAAY,MAAMC,gBAA2B,2BAAA,WAAW,CAAC;AACzF;AAEa,MAAA,0BAA0B,CAAC,YAAkC;AACzE,SAAO,QAAQ,SAAS;AACzB;AAEa,MAAA,6BAA6B,CAAC,YAAkC;AACtE,QAAA,WAAW,QAAQ,SAAS,CAAC;AAC5B,SAAA,UAAU,SAAS,UAAU;AACrC;AAEO,MAAM,qBAAqB,CAAC,EAAE,cAA0F;AAAA,EAC9H,MAAM;AAAA,EACN;AAAA,EACA,eAAe,CAAC,EAAE,QAAQ,SAAS,MAAM,qBAAqB;AACzD,QAAA,QAAQ,SAAS,WAAW,GAAG;AAClCC,YAAAA,WAAW,YAAY,QAAQ,EAAE,IAAI,MAAM;AAC3C,aAAO,eAAe;AAAA,IAAA;AAGvB,QAAI,eAAe;AACR,eAAA,CAAC,OAAO,SAAS,KAAKC,WAAU,SAAS,QAAQ,IAAI,GAAG;AAC9D,UAAAC,MAAA,QAAa,UAAU,KAAK,GAAG;AAC9B,YAAA,CAACC,gBAAAA,kBAAkB,KAAK,GAAG;AACdC,gCAAA,aAAa,QAAQ,SAAS;AACnCJ,2BAAA,SAAS,QAAQ,EAAE,MAAMK,gBAAAA,uBAAuB,EAAE,IAAI,WAAW;AAC7D,yBAAA;AAAA,QAAA;AAAA,MAChB,OACM;AACNL,cAAAA,WAAW,YAAY,QAAQ,EAAE,IAAI,MAAM;AAC3C,eAAO,eAAe;AAAA,MAAA;AAAA,IACvB;AAED,QAAI,cAAc;AACjB,aAAO,eAAe;AAAA,IAAA;AAEjB,UAAA,cAAcM,4CAAsB,OAAO;AACtC,eAAA,CAAC,KAAK,SAAS,KAAKL,WAAU,SAAS,QAAQ,IAAI,GAA2C;AAClG,YAAA,qBAAqB,IAAI,SAAS;AACxC,UAAI,uBAAuB,aAAa;AACvC;AAAA,MAAA;AAKD,UAAI,qBAAqB,aAAa;AACrC,cAAM,yBAAyB,UAAU,UAAU,SAAS,CAAC,MAAM;AACnE,iBAAS,IAAI,aAAa,IAAI,oBAAoB,KAAK;AAC3CD,gBAAAA,WAAA,YAAY,QAAQ,EAAE,IAAI,CAAC,GAAG,WAAW,yBAAyB,IAAI,CAAC,GAAG;AAAA,QAAA;AAAA,MACtF,WACU,qBAAqB,aAAa;AAC5C,cAAM,yBAAyB,UAAU,UAAU,SAAS,CAAC,MAAM;AACnE,iBAAS,IAAI,oBAAoB,IAAI,aAAa,KAAK;AAC3CA,gBAAAA,WAAA,YAAY,QAAQO,iBAAAA,+BAA+B;AAAA,YAC7D,IAAI,CAAC,GAAG,WAAW,yBAAyB,IAAI,CAAC;AAAA,UAAA,CACjD;AAAA,QAAA;AAAA,MACF;AAAA,IACD;AAAA,EAEF;AAAA,EACA,qBAAqB;AAAA,EACrB,eAAe,CAAC,EAAE,aAAa;AACxB,UAAA,oBAAoBC,MAAAA,OAAO,MAAM,QAAQ;AAAA,MAC9C,MAAM;AAAA,MACN,OAAO,CAAe,gBAAAN,MAAA,QAAa,UAAU,WAAW,KAAK,eAAe,WAAW;AAAA,IAAA,CACvF;AACD,QAAI,mBAAmB;AACtB;AAAA,IAAA;AAEK,UAAA,EAAE,cAAc;AACtB,QAAI,CAAC,aAAaO,MAAAA,MAAW,WAAW,SAAS,GAAG;AACnD;AAAA,IAAA;AAGK,UAAA,sBAA6CD,MAAAA,OAAO,MAAM,QAAQ;AAAA,MACvE,IAAI,UAAU;AAAA,MACd,MAAM;AAAA,MACN,OAAO,iBAAeN,cAAa,UAAU,WAAW,KAAK,OAAO,iBAAiB,WAAW;AAAA,IAAA,CAChG;AACD,QAAI,CAAC,qBAAqB;AACzB;AAAA,IAAA;AAEK,UAAA,CAAC,gBAAgB,kBAAkB,IAAI;AAEzC,QAAA,mBAAmB,WAAW,GAAG;AACpC;AAAA,IAAA;AAGMM,iBAAA,mBAAmB,QAAQ,MAAM;AACnC,UAAA;AACJ,UAAIP,WAAU,OAAO,cAAc,MAAM,IAAI;AAC5CD,cAAA,WAAW,YAAY,QAAQ;AAAA,UAC9B,IAAI;AAAA,QAAA,CACJ;AACY,qBAAA;AAAA,MAAA,OACP;AACN,qBAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAAA,MAAA;AAExC,YAAM,QAAQ,wBAAwB;AAE3BA,uBAAA,YAAY,QAAQ,OAAO;AAAA,QACrC,IAAI;AAAA,MAAA,CACJ;AAAA,IAAA,CACD;AAAA,EAAA;AAEH;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableElement.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Element, Node as SlateNode, Node, NodeEntry, Path as SlatePath, Range as SlateRange, Transforms } from 'slate'\nimport { createEmptyTableRowElement, isTableRowElement, TableRowElement, tableRowElementType } from './TableRowElement'\nimport { ContemberEditor } from '../../../editor'\nimport { gaugeTableColumnCount } from './gaugeTableColumnCount'\nimport { createEmptyTableCellElement } from './TableCellElement'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const tableElementType = 'table' as const\n\nexport interface TableElement extends SlateElement {\n\ttype: typeof tableElementType\n\tchildren: SlateEditor['children']\n}\n\nexport const isTableElement = (element: Node): element is TableElement => Element.isElement(element) && element.type === tableElementType\n\nexport const createEmptyTableElement = (rowCount = 3, columnCount = 2) => ({\n\ttype: tableElementType,\n\tchildren: Array.from({ length: rowCount }, () => createEmptyTableRowElement(columnCount)),\n})\n\nexport const getTableElementRowCount = (element: TableElement): number => {\n\treturn element.children.length\n}\n\nexport const getTableElementColumnCount = (element: TableElement): number => {\n\tconst firstRow = element.children[0] as TableRowElement | undefined\n\treturn firstRow?.children.length ?? 0\n}\n\nexport const tableElementPlugin = ({ render }: {render: ElementRenderer<TableElement>}): EditorElementPlugin<TableElement> => ({\n\ttype: tableElementType,\n\trender,\n\tnormalizeNode: ({ editor, element, path, preventDefault }) => {\n\t\tif (element.children.length === 0) {\n\t\t\tTransforms.removeNodes(editor, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\n\t\tlet didTransform = false\n\t\tfor (const [child, childPath] of SlateNode.children(editor, path)) {\n\t\t\tif (SlateElement.isElement(child)) {\n\t\t\t\tif (!isTableRowElement(child)) {\n\t\t\t\t\tContemberEditor.ejectElement(editor, childPath)\n\t\t\t\t\tTransforms.setNodes(editor, { type: tableRowElementType }, { at: childPath })\n\t\t\t\t\tdidTransform = true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tTransforms.removeNodes(editor, { at: path })\n\t\t\t\treturn preventDefault()\n\t\t\t}\n\t\t}\n\t\tif (didTransform) {\n\t\t\treturn preventDefault()\n\t\t}\n\t\tconst columnCount = gaugeTableColumnCount(element)\n\t\tfor (const [row, childPath] of SlateNode.children(editor, path) as Iterable<NodeEntry<TableRowElement>>) {\n\t\t\tconst currentColumnCount = row.children.length\n\t\t\tif (currentColumnCount === columnCount) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// For the first row, we prepend or insert at the start which in most cases will likely preserve the\n\t\t\t// already existing cells' positions.\n\t\t\tif (currentColumnCount > columnCount) {\n\t\t\t\tconst shouldBiasTowardsStart = childPath[childPath.length - 1] === 0\n\t\t\t\tfor (let i = columnCount; i < currentColumnCount; i++) {\n\t\t\t\t\tTransforms.removeNodes(editor, { at: [...childPath, shouldBiasTowardsStart ? 0 : i] })\n\t\t\t\t}\n\t\t\t} else if (currentColumnCount < columnCount) {\n\t\t\t\tconst shouldBiasTowardsStart = childPath[childPath.length - 1] === 0\n\t\t\t\tfor (let i = currentColumnCount; i < columnCount; i++) {\n\t\t\t\t\tTransforms.insertNodes(editor, createEmptyTableCellElement(), {\n\t\t\t\t\t\tat: [...childPath, shouldBiasTowardsStart ? 0 : i],\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tcanContainAnyBlocks: false,\n\ttoggleElement: ({ editor }) => {\n\t\tconst closestTableEntry = Editor.above(editor, {\n\t\t\tmode: 'lowest',\n\t\t\tmatch: matchedNode => SlateElement.isElement(matchedNode) && isTableElement(matchedNode),\n\t\t})\n\t\tif (closestTableEntry) {\n\t\t\treturn\n\t\t}\n\t\tconst { selection } = editor\n\t\tif (!selection || SlateRange.isExpanded(selection)) {\n\t\t\treturn\n\t\t}\n\n\t\tconst closestDefaultEntry: NodeEntry | undefined = Editor.above(editor, {\n\t\t\tat: selection.focus,\n\t\t\tmode: 'lowest',\n\t\t\tmatch: matchedNode => SlateElement.isElement(matchedNode) && editor.isDefaultElement(matchedNode),\n\t\t})\n\t\tif (!closestDefaultEntry) {\n\t\t\treturn\n\t\t}\n\t\tconst [closestDefault, closestDefaultPath] = closestDefaultEntry\n\n\t\tif (closestDefaultPath.length !== 1) {\n\t\t\treturn // We only support tables at the very top level\n\t\t}\n\n\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\tlet targetPath: SlatePath\n\t\t\tif (SlateNode.string(closestDefault) === '') {\n\t\t\t\tTransforms.removeNodes(editor, {\n\t\t\t\t\tat: closestDefaultPath,\n\t\t\t\t})\n\t\t\t\ttargetPath = closestDefaultPath\n\t\t\t} else {\n\t\t\t\ttargetPath = [closestDefaultPath[0] + 1]\n\t\t\t}\n\t\t\tconst table = createEmptyTableElement()\n\n\t\t\tTransforms.insertNodes(editor, table, {\n\t\t\t\tat: targetPath,\n\t\t\t})\n\t\t})\n\t},\n})\n"],"names":["SlateNode","SlateElement","SlateRange"],"mappings":"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"}
1
+ {"version":3,"file":"TableElement.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableElement.ts"],"sourcesContent":["import { Editor as SlateEditor, Editor, Element as SlateElement, Element, Node as SlateNode, Node, NodeEntry, Path as SlatePath, Range as SlateRange, Transforms } from 'slate'\nimport { createEmptyTableRowElement, isTableRowElement, TableRowElement, tableRowElementType } from './TableRowElement'\nimport { ContemberEditor } from '../../../editor'\nimport { gaugeTableColumnCount } from './gaugeTableColumnCount'\nimport { createEmptyTableCellElement } from './TableCellElement'\nimport { EditorElementPlugin, ElementRenderer } from '../../../types'\n\nexport const tableElementType = 'table' as const\n\nexport interface TableElement extends SlateElement {\n\ttype: typeof tableElementType\n\tchildren: SlateEditor['children']\n}\n\nexport const isTableElement = (element: Node): element is TableElement => Element.isElement(element) && element.type === tableElementType\n\nexport const createEmptyTableElement = (rowCount = 3, columnCount = 2) => ({\n\ttype: tableElementType,\n\tchildren: Array.from({ length: rowCount }, () => createEmptyTableRowElement(columnCount)),\n})\n\nexport const getTableElementRowCount = (element: TableElement): number => {\n\treturn element.children.length\n}\n\nexport const getTableElementColumnCount = (element: TableElement): number => {\n\tconst firstRow = element.children[0] as TableRowElement | undefined\n\treturn firstRow?.children.length ?? 0\n}\n\nexport const tableElementPlugin = ({ render }: {render: ElementRenderer<TableElement>}): EditorElementPlugin<TableElement> => ({\n\ttype: tableElementType,\n\trender,\n\tnormalizeNode: ({ editor, element, path, preventDefault }) => {\n\t\tif (element.children.length === 0) {\n\t\t\tTransforms.removeNodes(editor, { at: path })\n\t\t\treturn preventDefault()\n\t\t}\n\n\t\tlet didTransform = false\n\t\tfor (const [child, childPath] of SlateNode.children(editor, path)) {\n\t\t\tif (SlateElement.isElement(child)) {\n\t\t\t\tif (!isTableRowElement(child)) {\n\t\t\t\t\tContemberEditor.ejectElement(editor, childPath)\n\t\t\t\t\tTransforms.setNodes(editor, { type: tableRowElementType }, { at: childPath })\n\t\t\t\t\tdidTransform = true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tTransforms.removeNodes(editor, { at: path })\n\t\t\t\treturn preventDefault()\n\t\t\t}\n\t\t}\n\t\tif (didTransform) {\n\t\t\treturn preventDefault()\n\t\t}\n\t\tconst columnCount = gaugeTableColumnCount(element)\n\t\tfor (const [row, childPath] of SlateNode.children(editor, path) as Iterable<NodeEntry<TableRowElement>>) {\n\t\t\tconst currentColumnCount = row.children.length\n\t\t\tif (currentColumnCount === columnCount) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// For the first row, we prepend or insert at the start which in most cases will likely preserve the\n\t\t\t// already existing cells' positions.\n\t\t\tif (currentColumnCount > columnCount) {\n\t\t\t\tconst shouldBiasTowardsStart = childPath[childPath.length - 1] === 0\n\t\t\t\tfor (let i = columnCount; i < currentColumnCount; i++) {\n\t\t\t\t\tTransforms.removeNodes(editor, { at: [...childPath, shouldBiasTowardsStart ? 0 : i] })\n\t\t\t\t}\n\t\t\t} else if (currentColumnCount < columnCount) {\n\t\t\t\tconst shouldBiasTowardsStart = childPath[childPath.length - 1] === 0\n\t\t\t\tfor (let i = currentColumnCount; i < columnCount; i++) {\n\t\t\t\t\tTransforms.insertNodes(editor, createEmptyTableCellElement(), {\n\t\t\t\t\t\tat: [...childPath, shouldBiasTowardsStart ? 0 : i],\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tcanContainAnyBlocks: false,\n\ttoggleElement: ({ editor }) => {\n\t\tconst closestTableEntry = Editor.above(editor, {\n\t\t\tmode: 'lowest',\n\t\t\tmatch: matchedNode => SlateElement.isElement(matchedNode) && isTableElement(matchedNode),\n\t\t})\n\t\tif (closestTableEntry) {\n\t\t\treturn\n\t\t}\n\t\tconst { selection } = editor\n\t\tif (!selection || SlateRange.isExpanded(selection)) {\n\t\t\treturn\n\t\t}\n\n\t\tconst closestDefaultEntry: NodeEntry | undefined = Editor.above(editor, {\n\t\t\tat: selection.focus,\n\t\t\tmode: 'lowest',\n\t\t\tmatch: matchedNode => SlateElement.isElement(matchedNode) && editor.isDefaultElement(matchedNode),\n\t\t})\n\t\tif (!closestDefaultEntry) {\n\t\t\treturn\n\t\t}\n\t\tconst [closestDefault, closestDefaultPath] = closestDefaultEntry\n\n\t\tif (closestDefaultPath.length !== 1) {\n\t\t\treturn // We only support tables at the very top level\n\t\t}\n\n\t\tEditor.withoutNormalizing(editor, () => {\n\t\t\tlet targetPath: SlatePath\n\t\t\tif (SlateNode.string(closestDefault) === '') {\n\t\t\t\tTransforms.removeNodes(editor, {\n\t\t\t\t\tat: closestDefaultPath,\n\t\t\t\t})\n\t\t\t\ttargetPath = closestDefaultPath\n\t\t\t} else {\n\t\t\t\ttargetPath = [closestDefaultPath[0] + 1]\n\t\t\t}\n\t\t\tconst table = createEmptyTableElement()\n\n\t\t\tTransforms.insertNodes(editor, table, {\n\t\t\t\tat: targetPath,\n\t\t\t})\n\t\t})\n\t},\n})\n"],"names":["SlateNode","SlateElement","SlateRange"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableElementSelection.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableElementSelection.ts"],"sourcesContent":["import { ReactEditor } from 'slate-react'\nimport { Editor, Path as SlatePath, Transforms } from 'slate'\nimport { TableCellElement } from './TableCellElement'\nimport { TableElement } from './TableElement'\n\nexport const selectTableCellContents = (editor: Editor, table: TableElement | SlatePath, rowIndex: number, columnIndex: number) => {\n\tif (!Array.isArray(table)) {\n\t\ttable = ReactEditor.findPath(editor, table)\n\t}\n\tTransforms.select(editor, {\n\t\tanchor: Editor.start(editor, [...table, rowIndex, columnIndex]),\n\t\tfocus: Editor.end(editor, [...table, rowIndex, columnIndex]),\n\t})\n}\n\nexport const getTableCellCoordinates = (editor: Editor, element: TableCellElement) => {\n\tconst cellPath = ReactEditor.findPath(editor, element)\n\treturn cellPath.slice(-2) as [number, number]\n}\n"],"names":["ReactEditor","Transforms","Editor"],"mappings":";;;;AAKO,MAAM,0BAA0B,CAAC,QAAgB,OAAiC,UAAkB,gBAAwB;AAClI,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AAClB,YAAAA,WAAAA,YAAY,SAAS,QAAQ,KAAK;AAAA,EAC3C;AACAC,QAAA,WAAW,OAAO,QAAQ;AAAA,IACzB,QAAQC,MAAAA,OAAO,MAAM,QAAQ,CAAC,GAAG,OAAO,UAAU,WAAW,CAAC;AAAA,IAC9D,OAAOA,MAAAA,OAAO,IAAI,QAAQ,CAAC,GAAG,OAAO,UAAU,WAAW,CAAC;AAAA,EAAA,CAC3D;AACF;AAEa,MAAA,0BAA0B,CAAC,QAAgB,YAA8B;AACrF,QAAM,WAAWF,WAAA,YAAY,SAAS,QAAQ,OAAO;AAC9C,SAAA,SAAS,MAAM,EAAE;AACzB;;;"}
1
+ {"version":3,"file":"TableElementSelection.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableElementSelection.ts"],"sourcesContent":["import { ReactEditor } from 'slate-react'\nimport { Editor, Path as SlatePath, Transforms } from 'slate'\nimport { TableCellElement } from './TableCellElement'\nimport { TableElement } from './TableElement'\n\nexport const selectTableCellContents = (editor: Editor, table: TableElement | SlatePath, rowIndex: number, columnIndex: number) => {\n\tif (!Array.isArray(table)) {\n\t\ttable = ReactEditor.findPath(editor, table)\n\t}\n\tTransforms.select(editor, {\n\t\tanchor: Editor.start(editor, [...table, rowIndex, columnIndex]),\n\t\tfocus: Editor.end(editor, [...table, rowIndex, columnIndex]),\n\t})\n}\n\nexport const getTableCellCoordinates = (editor: Editor, element: TableCellElement) => {\n\tconst cellPath = ReactEditor.findPath(editor, element)\n\treturn cellPath.slice(-2) as [number, number]\n}\n"],"names":["ReactEditor","Transforms","Editor"],"mappings":";;;;AAKO,MAAM,0BAA0B,CAAC,QAAgB,OAAiC,UAAkB,gBAAwB;AAClI,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AAClB,YAAAA,WAAA,YAAY,SAAS,QAAQ,KAAK;AAAA,EAAA;AAE3CC,QAAA,WAAW,OAAO,QAAQ;AAAA,IACzB,QAAQC,MAAAA,OAAO,MAAM,QAAQ,CAAC,GAAG,OAAO,UAAU,WAAW,CAAC;AAAA,IAC9D,OAAOA,aAAO,IAAI,QAAQ,CAAC,GAAG,OAAO,UAAU,WAAW,CAAC;AAAA,EAAA,CAC3D;AACF;AAEa,MAAA,0BAA0B,CAAC,QAAgB,YAA8B;AACrF,QAAM,WAAWF,WAAA,YAAY,SAAS,QAAQ,OAAO;AAC9C,SAAA,SAAS,MAAM,EAAE;AACzB;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableElementSelection.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableElementSelection.ts"],"sourcesContent":["import { ReactEditor } from 'slate-react'\nimport { Editor, Path as SlatePath, Transforms } from 'slate'\nimport { TableCellElement } from './TableCellElement'\nimport { TableElement } from './TableElement'\n\nexport const selectTableCellContents = (editor: Editor, table: TableElement | SlatePath, rowIndex: number, columnIndex: number) => {\n\tif (!Array.isArray(table)) {\n\t\ttable = ReactEditor.findPath(editor, table)\n\t}\n\tTransforms.select(editor, {\n\t\tanchor: Editor.start(editor, [...table, rowIndex, columnIndex]),\n\t\tfocus: Editor.end(editor, [...table, rowIndex, columnIndex]),\n\t})\n}\n\nexport const getTableCellCoordinates = (editor: Editor, element: TableCellElement) => {\n\tconst cellPath = ReactEditor.findPath(editor, element)\n\treturn cellPath.slice(-2) as [number, number]\n}\n"],"names":[],"mappings":";;AAKO,MAAM,0BAA0B,CAAC,QAAgB,OAAiC,UAAkB,gBAAwB;AAClI,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AAClB,YAAA,YAAY,SAAS,QAAQ,KAAK;AAAA,EAC3C;AACA,aAAW,OAAO,QAAQ;AAAA,IACzB,QAAQ,OAAO,MAAM,QAAQ,CAAC,GAAG,OAAO,UAAU,WAAW,CAAC;AAAA,IAC9D,OAAO,OAAO,IAAI,QAAQ,CAAC,GAAG,OAAO,UAAU,WAAW,CAAC;AAAA,EAAA,CAC3D;AACF;AAEa,MAAA,0BAA0B,CAAC,QAAgB,YAA8B;AACrF,QAAM,WAAW,YAAY,SAAS,QAAQ,OAAO;AAC9C,SAAA,SAAS,MAAM,EAAE;AACzB;"}
1
+ {"version":3,"file":"TableElementSelection.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableElementSelection.ts"],"sourcesContent":["import { ReactEditor } from 'slate-react'\nimport { Editor, Path as SlatePath, Transforms } from 'slate'\nimport { TableCellElement } from './TableCellElement'\nimport { TableElement } from './TableElement'\n\nexport const selectTableCellContents = (editor: Editor, table: TableElement | SlatePath, rowIndex: number, columnIndex: number) => {\n\tif (!Array.isArray(table)) {\n\t\ttable = ReactEditor.findPath(editor, table)\n\t}\n\tTransforms.select(editor, {\n\t\tanchor: Editor.start(editor, [...table, rowIndex, columnIndex]),\n\t\tfocus: Editor.end(editor, [...table, rowIndex, columnIndex]),\n\t})\n}\n\nexport const getTableCellCoordinates = (editor: Editor, element: TableCellElement) => {\n\tconst cellPath = ReactEditor.findPath(editor, element)\n\treturn cellPath.slice(-2) as [number, number]\n}\n"],"names":[],"mappings":";;AAKO,MAAM,0BAA0B,CAAC,QAAgB,OAAiC,UAAkB,gBAAwB;AAClI,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AAClB,YAAA,YAAY,SAAS,QAAQ,KAAK;AAAA,EAAA;AAE3C,aAAW,OAAO,QAAQ;AAAA,IACzB,QAAQ,OAAO,MAAM,QAAQ,CAAC,GAAG,OAAO,UAAU,WAAW,CAAC;AAAA,IAC9D,OAAO,OAAO,IAAI,QAAQ,CAAC,GAAG,OAAO,UAAU,WAAW,CAAC;AAAA,EAAA,CAC3D;AACF;AAEa,MAAA,0BAA0B,CAAC,QAAgB,YAA8B;AACrF,QAAM,WAAW,YAAY,SAAS,QAAQ,OAAO;AAC9C,SAAA,SAAS,MAAM,EAAE;AACzB;"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const TableCellElement = require("./TableCellElement.cjs");
4
+ const TableElement = require("./TableElement.cjs");
5
+ const TableRowElement = require("./TableRowElement.cjs");
6
+ const tableHTMLDeserializer = {
7
+ processBlockPaste: ({ element, next, cumulativeTextAttrs }) => {
8
+ if (element.tagName === "TABLE") {
9
+ return [
10
+ {
11
+ type: TableElement.tableElementType,
12
+ children: next(element.childNodes, cumulativeTextAttrs)
13
+ }
14
+ ];
15
+ }
16
+ if (element.tagName === "TR") {
17
+ return [
18
+ {
19
+ type: TableRowElement.tableRowElementType,
20
+ children: next(element.childNodes, cumulativeTextAttrs)
21
+ }
22
+ ];
23
+ }
24
+ if (element.tagName === "TD" || element.tagName === "TH") {
25
+ return [
26
+ {
27
+ type: TableCellElement.tableCellElementType,
28
+ children: next(element.childNodes, cumulativeTextAttrs)
29
+ }
30
+ ];
31
+ }
32
+ return null;
33
+ }
34
+ };
35
+ exports.tableHTMLDeserializer = tableHTMLDeserializer;
36
+ //# sourceMappingURL=TableHtmlDeserializer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHtmlDeserializer.cjs","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableHtmlDeserializer.ts"],"sourcesContent":["import { HtmlDeserializerPlugin } from '../../../types'\nimport { tableCellElementType } from './TableCellElement'\nimport { tableElementType } from './TableElement'\nimport { tableRowElementType } from './TableRowElement'\n\nexport const tableHTMLDeserializer: HtmlDeserializerPlugin = {\n\tprocessBlockPaste: ({ element, next, cumulativeTextAttrs }) => {\n\t\tif (element.tagName === 'TABLE') {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttype: tableElementType,\n\t\t\t\t\tchildren: next(element.childNodes, cumulativeTextAttrs),\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\n\t\tif (element.tagName === 'TR') {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttype: tableRowElementType,\n\t\t\t\t\tchildren: next(element.childNodes, cumulativeTextAttrs),\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\n\t\tif (element.tagName === 'TD' || element.tagName === 'TH') {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttype: tableCellElementType,\n\t\t\t\t\tchildren: next(element.childNodes, cumulativeTextAttrs),\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\n\t\treturn null\n\t},\n}\n"],"names":["tableElementType","tableRowElementType","tableCellElementType"],"mappings":";;;;;AAKO,MAAM,wBAAgD;AAAA,EAC5D,mBAAmB,CAAC,EAAE,SAAS,MAAM,0BAA0B;AAC1D,QAAA,QAAQ,YAAY,SAAS;AACzB,aAAA;AAAA,QACN;AAAA,UACC,MAAMA,aAAA;AAAA,UACN,UAAU,KAAK,QAAQ,YAAY,mBAAmB;AAAA,QAAA;AAAA,MAExD;AAAA,IAAA;AAGG,QAAA,QAAQ,YAAY,MAAM;AACtB,aAAA;AAAA,QACN;AAAA,UACC,MAAMC,gBAAA;AAAA,UACN,UAAU,KAAK,QAAQ,YAAY,mBAAmB;AAAA,QAAA;AAAA,MAExD;AAAA,IAAA;AAGD,QAAI,QAAQ,YAAY,QAAQ,QAAQ,YAAY,MAAM;AAClD,aAAA;AAAA,QACN;AAAA,UACC,MAAMC,iBAAA;AAAA,UACN,UAAU,KAAK,QAAQ,YAAY,mBAAmB;AAAA,QAAA;AAAA,MAExD;AAAA,IAAA;AAGM,WAAA;AAAA,EAAA;AAET;;"}
@@ -0,0 +1,36 @@
1
+ import { tableCellElementType } from "./TableCellElement.js";
2
+ import { tableElementType } from "./TableElement.js";
3
+ import { tableRowElementType } from "./TableRowElement.js";
4
+ const tableHTMLDeserializer = {
5
+ processBlockPaste: ({ element, next, cumulativeTextAttrs }) => {
6
+ if (element.tagName === "TABLE") {
7
+ return [
8
+ {
9
+ type: tableElementType,
10
+ children: next(element.childNodes, cumulativeTextAttrs)
11
+ }
12
+ ];
13
+ }
14
+ if (element.tagName === "TR") {
15
+ return [
16
+ {
17
+ type: tableRowElementType,
18
+ children: next(element.childNodes, cumulativeTextAttrs)
19
+ }
20
+ ];
21
+ }
22
+ if (element.tagName === "TD" || element.tagName === "TH") {
23
+ return [
24
+ {
25
+ type: tableCellElementType,
26
+ children: next(element.childNodes, cumulativeTextAttrs)
27
+ }
28
+ ];
29
+ }
30
+ return null;
31
+ }
32
+ };
33
+ export {
34
+ tableHTMLDeserializer
35
+ };
36
+ //# sourceMappingURL=TableHtmlDeserializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHtmlDeserializer.js","sources":["../../../../../../../packages/react-slate-editor-base/src/plugins/element/tables/TableHtmlDeserializer.ts"],"sourcesContent":["import { HtmlDeserializerPlugin } from '../../../types'\nimport { tableCellElementType } from './TableCellElement'\nimport { tableElementType } from './TableElement'\nimport { tableRowElementType } from './TableRowElement'\n\nexport const tableHTMLDeserializer: HtmlDeserializerPlugin = {\n\tprocessBlockPaste: ({ element, next, cumulativeTextAttrs }) => {\n\t\tif (element.tagName === 'TABLE') {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttype: tableElementType,\n\t\t\t\t\tchildren: next(element.childNodes, cumulativeTextAttrs),\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\n\t\tif (element.tagName === 'TR') {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttype: tableRowElementType,\n\t\t\t\t\tchildren: next(element.childNodes, cumulativeTextAttrs),\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\n\t\tif (element.tagName === 'TD' || element.tagName === 'TH') {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttype: tableCellElementType,\n\t\t\t\t\tchildren: next(element.childNodes, cumulativeTextAttrs),\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\n\t\treturn null\n\t},\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,wBAAgD;AAAA,EAC5D,mBAAmB,CAAC,EAAE,SAAS,MAAM,0BAA0B;AAC1D,QAAA,QAAQ,YAAY,SAAS;AACzB,aAAA;AAAA,QACN;AAAA,UACC,MAAM;AAAA,UACN,UAAU,KAAK,QAAQ,YAAY,mBAAmB;AAAA,QAAA;AAAA,MAExD;AAAA,IAAA;AAGG,QAAA,QAAQ,YAAY,MAAM;AACtB,aAAA;AAAA,QACN;AAAA,UACC,MAAM;AAAA,UACN,UAAU,KAAK,QAAQ,YAAY,mBAAmB;AAAA,QAAA;AAAA,MAExD;AAAA,IAAA;AAGD,QAAI,QAAQ,YAAY,QAAQ,QAAQ,YAAY,MAAM;AAClD,aAAA;AAAA,QACN;AAAA,UACC,MAAM;AAAA,UACN,UAAU,KAAK,QAAQ,YAAY,mBAAmB;AAAA,QAAA;AAAA,MAExD;AAAA,IAAA;AAGM,WAAA;AAAA,EAAA;AAET;"}