@atlaskit/editor-plugin-table 1.1.1 → 1.1.3

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 (305) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/index.js +0 -2
  3. package/dist/cjs/plugins/table/commands/clear.js +4 -16
  4. package/dist/cjs/plugins/table/commands/collapse.js +0 -6
  5. package/dist/cjs/plugins/table/commands/go-to-next-cell.js +7 -18
  6. package/dist/cjs/plugins/table/commands/hover.js +7 -37
  7. package/dist/cjs/plugins/table/commands/index.js +0 -8
  8. package/dist/cjs/plugins/table/commands/insert.js +17 -56
  9. package/dist/cjs/plugins/table/commands/misc.js +36 -132
  10. package/dist/cjs/plugins/table/commands/referentiality.js +0 -4
  11. package/dist/cjs/plugins/table/commands/selection.js +21 -87
  12. package/dist/cjs/plugins/table/commands/sort.js +2 -23
  13. package/dist/cjs/plugins/table/commands/split-cell.js +3 -11
  14. package/dist/cjs/plugins/table/commands/toggle.js +8 -34
  15. package/dist/cjs/plugins/table/commands-with-analytics.js +50 -139
  16. package/dist/cjs/plugins/table/create-plugin-config.js +0 -6
  17. package/dist/cjs/plugins/table/event-handlers.js +58 -160
  18. package/dist/cjs/plugins/table/handlers.js +10 -39
  19. package/dist/cjs/plugins/table/index.js +47 -91
  20. package/dist/cjs/plugins/table/nodeviews/OverflowShadowsObserver.js +8 -41
  21. package/dist/cjs/plugins/table/nodeviews/TableComponent.js +95 -191
  22. package/dist/cjs/plugins/table/nodeviews/table.js +12 -70
  23. package/dist/cjs/plugins/table/nodeviews/tableCell.js +15 -39
  24. package/dist/cjs/plugins/table/nodeviews/update-overflow-shadows.js +3 -15
  25. package/dist/cjs/plugins/table/pm-plugins/decorations/plugin.js +0 -18
  26. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/column-controls.js +8 -27
  27. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/column-resizing.js +8 -20
  28. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/compose-decorations.js +1 -3
  29. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/index.js +0 -3
  30. package/dist/cjs/plugins/table/pm-plugins/keymap.js +2 -15
  31. package/dist/cjs/plugins/table/pm-plugins/main.js +20 -72
  32. package/dist/cjs/plugins/table/pm-plugins/plugin-factory.js +25 -42
  33. package/dist/cjs/plugins/table/pm-plugins/plugin-key.js +0 -2
  34. package/dist/cjs/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +8 -8
  35. package/dist/cjs/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +4 -23
  36. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/commands.js +0 -5
  37. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/index.js +0 -5
  38. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.js +4 -13
  39. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +56 -138
  40. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin-key.js +0 -2
  41. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin-state.js +15 -30
  42. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin.js +0 -6
  43. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/util.js +0 -5
  44. package/dist/cjs/plugins/table/pm-plugins/table-local-id.js +13 -44
  45. package/dist/cjs/plugins/table/pm-plugins/table-resizing/commands.js +18 -43
  46. package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +20 -52
  47. package/dist/cjs/plugins/table/pm-plugins/table-resizing/index.js +0 -4
  48. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin-factory.js +0 -10
  49. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin-key.js +0 -2
  50. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin.js +5 -19
  51. package/dist/cjs/plugins/table/pm-plugins/table-resizing/reducer.js +0 -10
  52. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +16 -15
  53. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/column-state.js +8 -28
  54. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/content-width.js +3 -23
  55. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/dom.js +4 -46
  56. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/index.js +0 -9
  57. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/misc.js +51 -40
  58. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-column.js +1 -4
  59. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +17 -73
  60. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +34 -82
  61. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +12 -36
  62. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/unit-to-number.js +0 -2
  63. package/dist/cjs/plugins/table/pm-plugins/table-selection-keymap.js +0 -5
  64. package/dist/cjs/plugins/table/reducer.js +0 -24
  65. package/dist/cjs/plugins/table/toolbar.js +14 -94
  66. package/dist/cjs/plugins/table/transforms/column-width.js +58 -49
  67. package/dist/cjs/plugins/table/transforms/delete-columns.js +11 -76
  68. package/dist/cjs/plugins/table/transforms/delete-rows.js +4 -42
  69. package/dist/cjs/plugins/table/transforms/fix-tables.js +24 -61
  70. package/dist/cjs/plugins/table/transforms/index.js +0 -7
  71. package/dist/cjs/plugins/table/transforms/merge.js +14 -90
  72. package/dist/cjs/plugins/table/transforms/metadata.js +0 -5
  73. package/dist/cjs/plugins/table/transforms/replace-table.js +2 -13
  74. package/dist/cjs/plugins/table/transforms/split.js +18 -32
  75. package/dist/cjs/plugins/table/types.js +0 -11
  76. package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +10 -51
  77. package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +0 -12
  78. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +46 -145
  79. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/index.js +12 -35
  80. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +0 -11
  81. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/DeleteButton.js +5 -12
  82. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.js +3 -16
  83. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/index.js +19 -89
  84. package/dist/cjs/plugins/table/ui/FloatingInsertButton/InsertButton.js +6 -31
  85. package/dist/cjs/plugins/table/ui/FloatingInsertButton/getPopupOptions.js +5 -22
  86. package/dist/cjs/plugins/table/ui/FloatingInsertButton/index.js +25 -80
  87. package/dist/cjs/plugins/table/ui/LayoutButton/index.js +16 -64
  88. package/dist/cjs/plugins/table/ui/TableFloatingControls/CornerControls/index.js +14 -47
  89. package/dist/cjs/plugins/table/ui/TableFloatingControls/NumberColumn/index.js +20 -48
  90. package/dist/cjs/plugins/table/ui/TableFloatingControls/RowControls/index.js +10 -43
  91. package/dist/cjs/plugins/table/ui/TableFloatingControls/index.js +33 -74
  92. package/dist/cjs/plugins/table/ui/common-styles.js +10 -22
  93. package/dist/cjs/plugins/table/ui/consts.js +3 -8
  94. package/dist/cjs/plugins/table/ui/messages.js +0 -3
  95. package/dist/cjs/plugins/table/ui/ui-styles.js +0 -32
  96. package/dist/cjs/plugins/table/utils/analytics.js +4 -19
  97. package/dist/cjs/plugins/table/utils/collapse.js +4 -21
  98. package/dist/cjs/plugins/table/utils/column-controls.js +25 -61
  99. package/dist/cjs/plugins/table/utils/decoration.js +46 -114
  100. package/dist/cjs/plugins/table/utils/dom.js +4 -51
  101. package/dist/cjs/plugins/table/utils/get-allow-add-column-custom-step.js +0 -2
  102. package/dist/cjs/plugins/table/utils/index.js +0 -10
  103. package/dist/cjs/plugins/table/utils/nodes.js +5 -48
  104. package/dist/cjs/plugins/table/utils/paste.js +22 -47
  105. package/dist/cjs/plugins/table/utils/row-controls.js +6 -67
  106. package/dist/cjs/plugins/table/utils/selection.js +3 -36
  107. package/dist/cjs/plugins/table/utils/table.js +0 -11
  108. package/dist/cjs/plugins/table/utils/update-plugin-state-decorations.js +0 -4
  109. package/dist/cjs/plugins/table-plugin.js +0 -3
  110. package/dist/cjs/version.json +1 -1
  111. package/dist/es2019/plugins/table/commands/clear.js +3 -8
  112. package/dist/es2019/plugins/table/commands/collapse.js +0 -3
  113. package/dist/es2019/plugins/table/commands/go-to-next-cell.js +4 -7
  114. package/dist/es2019/plugins/table/commands/hover.js +7 -17
  115. package/dist/es2019/plugins/table/commands/insert.js +16 -36
  116. package/dist/es2019/plugins/table/commands/misc.js +37 -67
  117. package/dist/es2019/plugins/table/commands/selection.js +7 -62
  118. package/dist/es2019/plugins/table/commands/sort.js +0 -12
  119. package/dist/es2019/plugins/table/commands/split-cell.js +0 -4
  120. package/dist/es2019/plugins/table/commands/toggle.js +13 -15
  121. package/dist/es2019/plugins/table/commands-with-analytics.js +4 -14
  122. package/dist/es2019/plugins/table/event-handlers.js +14 -62
  123. package/dist/es2019/plugins/table/handlers.js +16 -26
  124. package/dist/es2019/plugins/table/index.js +12 -25
  125. package/dist/es2019/plugins/table/nodeviews/OverflowShadowsObserver.js +8 -40
  126. package/dist/es2019/plugins/table/nodeviews/TableComponent.js +40 -103
  127. package/dist/es2019/plugins/table/nodeviews/table.js +3 -33
  128. package/dist/es2019/plugins/table/nodeviews/tableCell.js +7 -16
  129. package/dist/es2019/plugins/table/nodeviews/update-overflow-shadows.js +3 -10
  130. package/dist/es2019/plugins/table/pm-plugins/decorations/plugin.js +0 -5
  131. package/dist/es2019/plugins/table/pm-plugins/decorations/utils/column-controls.js +4 -13
  132. package/dist/es2019/plugins/table/pm-plugins/decorations/utils/column-resizing.js +0 -3
  133. package/dist/es2019/plugins/table/pm-plugins/keymap.js +2 -3
  134. package/dist/es2019/plugins/table/pm-plugins/main.js +19 -43
  135. package/dist/es2019/plugins/table/pm-plugins/plugin-factory.js +2 -6
  136. package/dist/es2019/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +8 -3
  137. package/dist/es2019/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +0 -12
  138. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.js +4 -9
  139. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +55 -130
  140. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/plugin-state.js +2 -9
  141. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/util.js +0 -3
  142. package/dist/es2019/plugins/table/pm-plugins/table-local-id.js +20 -39
  143. package/dist/es2019/plugins/table/pm-plugins/table-resizing/commands.js +14 -17
  144. package/dist/es2019/plugins/table/pm-plugins/table-resizing/event-handlers.js +13 -27
  145. package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin-factory.js +2 -4
  146. package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin.js +2 -5
  147. package/dist/es2019/plugins/table/pm-plugins/table-resizing/reducer.js +8 -8
  148. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +14 -3
  149. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/column-state.js +8 -11
  150. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/content-width.js +4 -21
  151. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/dom.js +3 -22
  152. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/misc.js +46 -21
  153. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +31 -61
  154. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +54 -51
  155. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +9 -14
  156. package/dist/es2019/plugins/table/reducer.js +26 -30
  157. package/dist/es2019/plugins/table/toolbar.js +5 -48
  158. package/dist/es2019/plugins/table/transforms/column-width.js +60 -32
  159. package/dist/es2019/plugins/table/transforms/delete-columns.js +17 -58
  160. package/dist/es2019/plugins/table/transforms/delete-rows.js +8 -25
  161. package/dist/es2019/plugins/table/transforms/fix-tables.js +25 -42
  162. package/dist/es2019/plugins/table/transforms/merge.js +22 -70
  163. package/dist/es2019/plugins/table/transforms/metadata.js +3 -2
  164. package/dist/es2019/plugins/table/transforms/replace-table.js +0 -2
  165. package/dist/es2019/plugins/table/transforms/split.js +16 -19
  166. package/dist/es2019/plugins/table/types.js +2 -4
  167. package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +2 -16
  168. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +8 -54
  169. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/index.js +4 -13
  170. package/dist/es2019/plugins/table/ui/FloatingDeleteButton/DeleteButton.js +0 -2
  171. package/dist/es2019/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.js +2 -11
  172. package/dist/es2019/plugins/table/ui/FloatingDeleteButton/index.js +13 -49
  173. package/dist/es2019/plugins/table/ui/FloatingInsertButton/InsertButton.js +0 -8
  174. package/dist/es2019/plugins/table/ui/FloatingInsertButton/getPopupOptions.js +16 -24
  175. package/dist/es2019/plugins/table/ui/FloatingInsertButton/index.js +3 -31
  176. package/dist/es2019/plugins/table/ui/LayoutButton/index.js +2 -29
  177. package/dist/es2019/plugins/table/ui/TableFloatingControls/CornerControls/index.js +0 -12
  178. package/dist/es2019/plugins/table/ui/TableFloatingControls/NumberColumn/index.js +6 -12
  179. package/dist/es2019/plugins/table/ui/TableFloatingControls/RowControls/index.js +0 -9
  180. package/dist/es2019/plugins/table/ui/TableFloatingControls/index.js +4 -19
  181. package/dist/es2019/plugins/table/ui/common-styles.js +11 -7
  182. package/dist/es2019/plugins/table/ui/consts.js +4 -3
  183. package/dist/es2019/plugins/table/ui/ui-styles.js +0 -10
  184. package/dist/es2019/plugins/table/utils/analytics.js +0 -8
  185. package/dist/es2019/plugins/table/utils/collapse.js +3 -14
  186. package/dist/es2019/plugins/table/utils/column-controls.js +22 -37
  187. package/dist/es2019/plugins/table/utils/decoration.js +13 -51
  188. package/dist/es2019/plugins/table/utils/dom.js +3 -19
  189. package/dist/es2019/plugins/table/utils/nodes.js +2 -15
  190. package/dist/es2019/plugins/table/utils/paste.js +17 -22
  191. package/dist/es2019/plugins/table/utils/row-controls.js +12 -45
  192. package/dist/es2019/plugins/table/utils/selection.js +0 -21
  193. package/dist/es2019/plugins/table/utils/table.js +0 -2
  194. package/dist/es2019/version.json +1 -1
  195. package/dist/esm/plugins/table/commands/clear.js +3 -8
  196. package/dist/esm/plugins/table/commands/collapse.js +0 -3
  197. package/dist/esm/plugins/table/commands/go-to-next-cell.js +6 -9
  198. package/dist/esm/plugins/table/commands/hover.js +8 -18
  199. package/dist/esm/plugins/table/commands/insert.js +16 -36
  200. package/dist/esm/plugins/table/commands/misc.js +39 -78
  201. package/dist/esm/plugins/table/commands/selection.js +21 -78
  202. package/dist/esm/plugins/table/commands/sort.js +2 -14
  203. package/dist/esm/plugins/table/commands/split-cell.js +3 -8
  204. package/dist/esm/plugins/table/commands/toggle.js +11 -20
  205. package/dist/esm/plugins/table/commands-with-analytics.js +50 -85
  206. package/dist/esm/plugins/table/create-plugin-config.js +0 -3
  207. package/dist/esm/plugins/table/event-handlers.js +58 -123
  208. package/dist/esm/plugins/table/handlers.js +11 -29
  209. package/dist/esm/plugins/table/index.js +47 -60
  210. package/dist/esm/plugins/table/nodeviews/OverflowShadowsObserver.js +8 -44
  211. package/dist/esm/plugins/table/nodeviews/TableComponent.js +95 -184
  212. package/dist/esm/plugins/table/nodeviews/table.js +12 -52
  213. package/dist/esm/plugins/table/nodeviews/tableCell.js +15 -33
  214. package/dist/esm/plugins/table/nodeviews/update-overflow-shadows.js +3 -10
  215. package/dist/esm/plugins/table/pm-plugins/decorations/plugin.js +0 -5
  216. package/dist/esm/plugins/table/pm-plugins/decorations/utils/column-controls.js +8 -19
  217. package/dist/esm/plugins/table/pm-plugins/decorations/utils/column-resizing.js +8 -13
  218. package/dist/esm/plugins/table/pm-plugins/decorations/utils/compose-decorations.js +1 -1
  219. package/dist/esm/plugins/table/pm-plugins/keymap.js +2 -3
  220. package/dist/esm/plugins/table/pm-plugins/main.js +20 -47
  221. package/dist/esm/plugins/table/pm-plugins/plugin-factory.js +25 -37
  222. package/dist/esm/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +8 -3
  223. package/dist/esm/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +3 -15
  224. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.js +4 -9
  225. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +58 -147
  226. package/dist/esm/plugins/table/pm-plugins/sticky-headers/plugin-state.js +15 -27
  227. package/dist/esm/plugins/table/pm-plugins/sticky-headers/util.js +0 -3
  228. package/dist/esm/plugins/table/pm-plugins/table-local-id.js +14 -37
  229. package/dist/esm/plugins/table/pm-plugins/table-resizing/commands.js +18 -25
  230. package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +20 -36
  231. package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin-factory.js +0 -6
  232. package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin.js +5 -8
  233. package/dist/esm/plugins/table/pm-plugins/table-resizing/reducer.js +0 -7
  234. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +14 -3
  235. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/column-state.js +8 -12
  236. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/content-width.js +5 -22
  237. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/dom.js +4 -23
  238. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/misc.js +49 -26
  239. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +17 -62
  240. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +34 -55
  241. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +12 -24
  242. package/dist/esm/plugins/table/reducer.js +0 -20
  243. package/dist/esm/plugins/table/toolbar.js +13 -63
  244. package/dist/esm/plugins/table/transforms/column-width.js +58 -36
  245. package/dist/esm/plugins/table/transforms/delete-columns.js +11 -62
  246. package/dist/esm/plugins/table/transforms/delete-rows.js +4 -30
  247. package/dist/esm/plugins/table/transforms/fix-tables.js +24 -49
  248. package/dist/esm/plugins/table/transforms/merge.js +16 -75
  249. package/dist/esm/plugins/table/transforms/metadata.js +3 -2
  250. package/dist/esm/plugins/table/transforms/replace-table.js +2 -6
  251. package/dist/esm/plugins/table/transforms/split.js +18 -29
  252. package/dist/esm/plugins/table/types.js +0 -6
  253. package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +10 -31
  254. package/dist/esm/plugins/table/ui/FloatingContextualButton/styles.js +0 -2
  255. package/dist/esm/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +46 -126
  256. package/dist/esm/plugins/table/ui/FloatingContextualMenu/index.js +13 -24
  257. package/dist/esm/plugins/table/ui/FloatingContextualMenu/styles.js +0 -2
  258. package/dist/esm/plugins/table/ui/FloatingDeleteButton/DeleteButton.js +5 -7
  259. package/dist/esm/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.js +3 -13
  260. package/dist/esm/plugins/table/ui/FloatingDeleteButton/index.js +19 -68
  261. package/dist/esm/plugins/table/ui/FloatingInsertButton/InsertButton.js +6 -14
  262. package/dist/esm/plugins/table/ui/FloatingInsertButton/getPopupOptions.js +5 -18
  263. package/dist/esm/plugins/table/ui/FloatingInsertButton/index.js +25 -57
  264. package/dist/esm/plugins/table/ui/LayoutButton/index.js +16 -47
  265. package/dist/esm/plugins/table/ui/TableFloatingControls/CornerControls/index.js +14 -35
  266. package/dist/esm/plugins/table/ui/TableFloatingControls/NumberColumn/index.js +20 -38
  267. package/dist/esm/plugins/table/ui/TableFloatingControls/RowControls/index.js +10 -29
  268. package/dist/esm/plugins/table/ui/TableFloatingControls/index.js +33 -62
  269. package/dist/esm/plugins/table/ui/common-styles.js +9 -10
  270. package/dist/esm/plugins/table/ui/consts.js +4 -3
  271. package/dist/esm/plugins/table/ui/ui-styles.js +0 -12
  272. package/dist/esm/plugins/table/utils/analytics.js +4 -13
  273. package/dist/esm/plugins/table/utils/collapse.js +4 -15
  274. package/dist/esm/plugins/table/utils/column-controls.js +25 -41
  275. package/dist/esm/plugins/table/utils/decoration.js +46 -88
  276. package/dist/esm/plugins/table/utils/dom.js +4 -20
  277. package/dist/esm/plugins/table/utils/nodes.js +5 -18
  278. package/dist/esm/plugins/table/utils/paste.js +24 -29
  279. package/dist/esm/plugins/table/utils/row-controls.js +6 -46
  280. package/dist/esm/plugins/table/utils/selection.js +3 -26
  281. package/dist/esm/plugins/table/utils/table.js +0 -2
  282. package/dist/esm/version.json +1 -1
  283. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/colgroup.d.ts +7 -0
  284. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/misc.d.ts +2 -1
  285. package/dist/types/plugins/table/ui/common-styles.d.ts +1 -0
  286. package/package.json +8 -6
  287. package/src/__tests__/integration/__fixtures__/empty-layout.ts +35 -0
  288. package/src/__tests__/integration/__fixtures__/nested-in-expand.ts +129 -0
  289. package/src/__tests__/integration/horizontal-scroll.ts +489 -0
  290. package/src/__tests__/unit/commands/insert.ts +3 -3
  291. package/src/__tests__/unit/keymap.ts +3 -1
  292. package/src/__tests__/unit/pm-plugins/table-resizing/colgroup.ts +38 -0
  293. package/src/__tests__/unit/pm-plugins/table-resizing/event-handlers.ts +5 -2
  294. package/src/__tests__/visual-regression/__image_snapshots__/cell-options-menu-ts-table-cell-options-menu-delete-column-menu-item-visual-hints-should-be-added-to-the-table-column-on-hover-1-snap.png +2 -2
  295. package/src/__tests__/visual-regression/__image_snapshots__/cell-options-menu-ts-table-cell-options-menu-delete-row-menu-item-visual-hints-should-be-added-to-the-table-row-on-hover-1-snap.png +2 -2
  296. package/src/__tests__/visual-regression/__image_snapshots__/sticky-header-ts-snapshot-test-table-sticky-header-should-align-with-table-cell-when-active-2-snap.png +2 -2
  297. package/src/__tests__/visual-regression/sticky-header.ts +2 -1
  298. package/src/plugins/table/nodeviews/TableComponent.tsx +16 -3
  299. package/src/plugins/table/pm-plugins/table-resizing/commands.ts +6 -2
  300. package/src/plugins/table/pm-plugins/table-resizing/event-handlers.ts +9 -1
  301. package/src/plugins/table/pm-plugins/table-resizing/utils/colgroup.ts +19 -1
  302. package/src/plugins/table/pm-plugins/table-resizing/utils/misc.ts +57 -5
  303. package/src/plugins/table/pm-plugins/table-resizing/utils/resize-logic.ts +2 -2
  304. package/src/plugins/table/transforms/column-width.ts +60 -6
  305. package/src/plugins/table/ui/common-styles.ts +5 -2
@@ -4,66 +4,46 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.updateResizeHandles = exports.isTableControlsButton = exports.isTableContainerOrWrapper = exports.isRowControlsButton = exports.isResizeHandleDecoration = exports.isInsertRowButton = exports.isCornerButton = exports.isColumnControlsDecorations = exports.isCell = exports.hasResizeHandler = exports.getMousePositionVerticalRelativeByElement = exports.getMousePositionHorizontalRelativeByElement = exports.getColumnOrRowIndex = void 0;
7
-
8
7
  var _utils = require("@atlaskit/editor-common/utils");
9
-
10
8
  var _types = require("../types");
11
-
12
9
  var _consts = require("../ui/consts");
13
-
14
10
  var SELECTOR_TABLE_LEAFS = ".".concat(_types.TableCssClassName.TABLE_CELL, ", .").concat(_types.TableCssClassName.TABLE_HEADER_CELL);
15
-
16
11
  var isCell = function isCell(node) {
17
12
  return Boolean(node && (['TH', 'TD'].indexOf(node.tagName) > -1 || !!(0, _utils.closestElement)(node, ".".concat(_types.TableCssClassName.TABLE_HEADER_CELL)) || !!(0, _utils.closestElement)(node, ".".concat(_types.TableCssClassName.TABLE_CELL))));
18
13
  };
19
-
20
14
  exports.isCell = isCell;
21
-
22
15
  var isCornerButton = function isCornerButton(node) {
23
16
  return (0, _utils.containsClassName)(node, _types.TableCssClassName.CONTROLS_CORNER_BUTTON);
24
17
  };
25
-
26
18
  exports.isCornerButton = isCornerButton;
27
-
28
19
  var isInsertRowButton = function isInsertRowButton(node) {
29
20
  return (0, _utils.containsClassName)(node, _types.TableCssClassName.CONTROLS_INSERT_ROW) || (0, _utils.closestElement)(node, ".".concat(_types.TableCssClassName.CONTROLS_INSERT_ROW)) || (0, _utils.containsClassName)(node, _types.TableCssClassName.CONTROLS_BUTTON_OVERLAY) && (0, _utils.closestElement)(node, ".".concat(_types.TableCssClassName.ROW_CONTROLS));
30
21
  };
31
-
32
22
  exports.isInsertRowButton = isInsertRowButton;
33
-
34
23
  var getColumnOrRowIndex = function getColumnOrRowIndex(target) {
35
24
  return [parseInt(target.getAttribute('data-start-index') || '-1', 10), parseInt(target.getAttribute('data-end-index') || '-1', 10)];
36
25
  };
37
-
38
26
  exports.getColumnOrRowIndex = getColumnOrRowIndex;
39
-
40
27
  var isColumnControlsDecorations = function isColumnControlsDecorations(node) {
41
28
  return (0, _utils.containsClassName)(node, _types.TableCssClassName.COLUMN_CONTROLS_DECORATIONS);
42
29
  };
43
-
44
30
  exports.isColumnControlsDecorations = isColumnControlsDecorations;
45
-
46
31
  var isRowControlsButton = function isRowControlsButton(node) {
47
32
  return (0, _utils.containsClassName)(node, _types.TableCssClassName.ROW_CONTROLS_BUTTON) || (0, _utils.containsClassName)(node, _types.TableCssClassName.NUMBERED_COLUMN_BUTTON);
48
33
  };
49
-
50
34
  exports.isRowControlsButton = isRowControlsButton;
51
-
52
35
  var isResizeHandleDecoration = function isResizeHandleDecoration(node) {
53
36
  return (0, _utils.containsClassName)(node, _types.TableCssClassName.RESIZE_HANDLE_DECORATION);
54
37
  };
55
-
56
38
  exports.isResizeHandleDecoration = isResizeHandleDecoration;
57
-
58
39
  var isTableControlsButton = function isTableControlsButton(node) {
59
40
  return (0, _utils.containsClassName)(node, _types.TableCssClassName.CONTROLS_BUTTON) || (0, _utils.containsClassName)(node, _types.TableCssClassName.ROW_CONTROLS_BUTTON_WRAP);
60
41
  };
61
-
62
42
  exports.isTableControlsButton = isTableControlsButton;
63
-
64
43
  var isTableContainerOrWrapper = function isTableContainerOrWrapper(node) {
65
44
  return (0, _utils.containsClassName)(node, _types.TableCssClassName.TABLE_CONTAINER) || (0, _utils.containsClassName)(node, _types.TableCssClassName.TABLE_NODE_WRAPPER);
66
45
  };
46
+
67
47
  /*
68
48
  * This function returns which side of a given element the mouse cursor is,
69
49
  * using as a base the half of the width by default, for example:
@@ -117,20 +97,14 @@ var isTableContainerOrWrapper = function isTableContainerOrWrapper(node) {
117
97
  *
118
98
  * the same is valid to the right side.
119
99
  */
120
-
121
-
122
100
  exports.isTableContainerOrWrapper = isTableContainerOrWrapper;
123
-
124
101
  var getMousePositionHorizontalRelativeByElement = function getMousePositionHorizontalRelativeByElement(mouseEvent, mouseMoveOptimization, elementContentRects, gapInPixels) {
125
102
  var element = mouseEvent.target;
126
-
127
103
  if (element instanceof HTMLElement) {
128
104
  var width, x;
129
105
  var closestCell = element.closest(SELECTOR_TABLE_LEAFS);
130
-
131
106
  if (mouseMoveOptimization) {
132
107
  var _closestCell$id, _elementContentRects$, _elementContentRects$2;
133
-
134
108
  var id = (_closestCell$id = closestCell === null || closestCell === void 0 ? void 0 : closestCell.id) !== null && _closestCell$id !== void 0 ? _closestCell$id : '';
135
109
  width = (_elementContentRects$ = elementContentRects === null || elementContentRects === void 0 ? void 0 : (_elementContentRects$2 = elementContentRects[id]) === null || _elementContentRects$2 === void 0 ? void 0 : _elementContentRects$2.width) !== null && _elementContentRects$ !== void 0 ? _elementContentRects$ : 0;
136
110
  x = mouseEvent.offsetX;
@@ -140,11 +114,9 @@ var getMousePositionHorizontalRelativeByElement = function getMousePositionHoriz
140
114
  var left = elementRect.left;
141
115
  x = mouseEvent.clientX - left;
142
116
  }
143
-
144
117
  if (width <= 0) {
145
118
  return null;
146
119
  }
147
-
148
120
  if (!gapInPixels) {
149
121
  return x / width > 0.5 ? 'right' : 'left';
150
122
  } else {
@@ -155,68 +127,49 @@ var getMousePositionHorizontalRelativeByElement = function getMousePositionHoriz
155
127
  }
156
128
  }
157
129
  }
158
-
159
130
  return null;
160
131
  };
161
-
162
132
  exports.getMousePositionHorizontalRelativeByElement = getMousePositionHorizontalRelativeByElement;
163
-
164
133
  var getMousePositionVerticalRelativeByElement = function getMousePositionVerticalRelativeByElement(mouseEvent) {
165
134
  var element = mouseEvent.target;
166
-
167
135
  if (element instanceof HTMLElement) {
168
136
  var elementRect = element.getBoundingClientRect();
169
-
170
137
  if (elementRect.height <= 0) {
171
138
  return null;
172
139
  }
173
-
174
140
  var y = mouseEvent.clientY - elementRect.top;
175
141
  return y / elementRect.height > 0.5 ? 'bottom' : 'top';
176
142
  }
177
-
178
143
  return null;
179
144
  };
180
-
181
145
  exports.getMousePositionVerticalRelativeByElement = getMousePositionVerticalRelativeByElement;
182
-
183
146
  var updateResizeHandles = function updateResizeHandles(tableRef) {
184
147
  if (!tableRef) {
185
148
  return;
186
149
  }
187
-
188
- var height = tableRef.offsetHeight + _consts.tableToolbarSize; // see ED-7600
189
-
150
+ var height = tableRef.offsetHeight + _consts.tableToolbarSize;
151
+ // see ED-7600
190
152
  var nodes = Array.from(tableRef.querySelectorAll(".".concat(_types.TableCssClassName.RESIZE_HANDLE)));
191
-
192
153
  if (!nodes || !nodes.length) {
193
154
  return;
194
155
  }
195
-
196
156
  nodes.forEach(function (node) {
197
157
  node.style.height = "".concat(height, "px");
198
158
  });
199
159
  };
200
-
201
160
  exports.updateResizeHandles = updateResizeHandles;
202
-
203
161
  var hasResizeHandler = function hasResizeHandler(_ref) {
204
162
  var columnEndIndexTarget = _ref.columnEndIndexTarget,
205
- target = _ref.target;
163
+ target = _ref.target;
206
164
  var tableElement = (0, _utils.closestElement)(target, 'table');
207
-
208
165
  if (!tableElement) {
209
166
  return false;
210
167
  }
211
-
212
168
  var query = [".".concat(_types.TableCssClassName.RESIZE_HANDLE_DECORATION), "[data-end-index=\"".concat(columnEndIndexTarget, "\"]")];
213
169
  var decorationElement = tableElement.querySelectorAll(query.join(''));
214
-
215
170
  if (!decorationElement || decorationElement.length === 0) {
216
171
  return false;
217
172
  }
218
-
219
173
  return true;
220
174
  };
221
-
222
175
  exports.hasResizeHandler = hasResizeHandler;
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getAllowAddColumnCustomStep = getAllowAddColumnCustomStep;
7
-
8
7
  var _pluginFactory = require("../pm-plugins/plugin-factory");
9
-
10
8
  function getAllowAddColumnCustomStep(state) {
11
9
  var tablePluginState = (0, _pluginFactory.getPluginState)(state);
12
10
  return Boolean(tablePluginState) && Boolean(tablePluginState.pluginConfig.allowAddColumnWithCustomStep);
@@ -333,23 +333,13 @@ Object.defineProperty(exports, "updateResizeHandles", {
333
333
  return _dom.updateResizeHandles;
334
334
  }
335
335
  });
336
-
337
336
  var _selection = require("./selection");
338
-
339
337
  var _decoration = require("./decoration");
340
-
341
338
  var _nodes = require("./nodes");
342
-
343
339
  var _paste = require("./paste");
344
-
345
340
  var _dom = require("./dom");
346
-
347
341
  var _columnControls = require("./column-controls");
348
-
349
342
  var _rowControls = require("./row-controls");
350
-
351
343
  var _analytics = require("./analytics");
352
-
353
344
  var _table = require("./table");
354
-
355
345
  var _updatePluginStateDecorations = require("./update-plugin-state-decorations");
@@ -1,43 +1,31 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.tablesHaveDifferentNoOfColumns = exports.tablesHaveDifferentColumnWidths = exports.isLayoutSupported = exports.isIsolating = exports.getTableWidth = exports.containsHeaderRow = exports.containsHeaderColumn = exports.checkIfNumberColumnEnabled = exports.checkIfHeaderRowEnabled = exports.checkIfHeaderColumnEnabled = void 0;
9
-
10
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
9
  var _tableMap = require("@atlaskit/editor-tables/table-map");
13
-
14
10
  var _prosemirrorUtils = require("prosemirror-utils");
15
-
16
11
  var _utils = require("@atlaskit/editor-tables/utils");
17
-
18
12
  var _pluginKey = require("../pm-plugins/plugin-key");
19
-
20
13
  var isIsolating = function isIsolating(node) {
21
14
  return !!node.type.spec.isolating;
22
15
  };
23
-
24
16
  exports.isIsolating = isIsolating;
25
-
26
17
  var containsHeaderColumn = function containsHeaderColumn(table) {
27
- var map = _tableMap.TableMap.get(table); // Get cell positions for first column.
28
-
29
-
18
+ var map = _tableMap.TableMap.get(table);
19
+ // Get cell positions for first column.
30
20
  var cellPositions = map.cellsInRect({
31
21
  left: 0,
32
22
  top: 0,
33
23
  right: 1,
34
24
  bottom: map.height
35
25
  });
36
-
37
26
  for (var i = 0; i < cellPositions.length; i++) {
38
27
  try {
39
28
  var cell = table.nodeAt(cellPositions[i]);
40
-
41
29
  if (cell && cell.type !== table.type.schema.nodes.tableHeader) {
42
30
  return false;
43
31
  }
@@ -45,109 +33,78 @@ var containsHeaderColumn = function containsHeaderColumn(table) {
45
33
  return false;
46
34
  }
47
35
  }
48
-
49
36
  return true;
50
37
  };
51
-
52
38
  exports.containsHeaderColumn = containsHeaderColumn;
53
-
54
39
  var containsHeaderRow = function containsHeaderRow(table) {
55
40
  var map = _tableMap.TableMap.get(table);
56
-
57
41
  for (var i = 0; i < map.width; i++) {
58
42
  var cell = table.nodeAt(map.map[i]);
59
-
60
43
  if (cell && cell.type !== table.type.schema.nodes.tableHeader) {
61
44
  return false;
62
45
  }
63
46
  }
64
-
65
47
  return true;
66
48
  };
67
-
68
49
  exports.containsHeaderRow = containsHeaderRow;
69
-
70
50
  var checkIfHeaderColumnEnabled = function checkIfHeaderColumnEnabled(selection) {
71
51
  return filterNearSelection(selection, _utils.findTable, containsHeaderColumn, false);
72
52
  };
73
-
74
53
  exports.checkIfHeaderColumnEnabled = checkIfHeaderColumnEnabled;
75
-
76
54
  var checkIfHeaderRowEnabled = function checkIfHeaderRowEnabled(selection) {
77
55
  return filterNearSelection(selection, _utils.findTable, containsHeaderRow, false);
78
56
  };
79
-
80
57
  exports.checkIfHeaderRowEnabled = checkIfHeaderRowEnabled;
81
-
82
58
  var checkIfNumberColumnEnabled = function checkIfNumberColumnEnabled(selection) {
83
59
  return filterNearSelection(selection, _utils.findTable, function (table) {
84
60
  return !!table.attrs.isNumberColumnEnabled;
85
61
  }, false);
86
62
  };
87
-
88
63
  exports.checkIfNumberColumnEnabled = checkIfNumberColumnEnabled;
89
-
90
64
  var isLayoutSupported = function isLayoutSupported(state) {
91
65
  var permittedLayouts = _pluginKey.pluginKey.getState(state).pluginConfig.permittedLayouts;
92
-
93
66
  var _state$schema$nodes = state.schema.nodes,
94
- bodiedExtension = _state$schema$nodes.bodiedExtension,
95
- layoutSection = _state$schema$nodes.layoutSection,
96
- expand = _state$schema$nodes.expand;
67
+ bodiedExtension = _state$schema$nodes.bodiedExtension,
68
+ layoutSection = _state$schema$nodes.layoutSection,
69
+ expand = _state$schema$nodes.expand;
97
70
  return !(0, _prosemirrorUtils.hasParentNodeOfType)([expand, layoutSection, bodiedExtension])(state.selection) && permittedLayouts && (permittedLayouts === 'all' || permittedLayouts.indexOf('default') > -1 && permittedLayouts.indexOf('wide') > -1 && permittedLayouts.indexOf('full-page') > -1);
98
71
  };
99
-
100
72
  exports.isLayoutSupported = isLayoutSupported;
101
-
102
73
  var getTableWidth = function getTableWidth(node) {
103
74
  return getTableWidths(node).reduce(function (acc, current) {
104
75
  return acc + current;
105
76
  }, 0);
106
77
  };
107
-
108
78
  exports.getTableWidth = getTableWidth;
109
-
110
79
  var tablesHaveDifferentColumnWidths = function tablesHaveDifferentColumnWidths(currentTable, previousTable) {
111
80
  var currentTableWidths = getTableWidths(currentTable);
112
81
  var previousTableWidths = getTableWidths(previousTable);
113
-
114
82
  if (currentTableWidths.length !== previousTableWidths.length) {
115
83
  return true;
116
84
  }
117
-
118
85
  var sameWidths = currentTableWidths.every(function (value, index) {
119
86
  return value === previousTableWidths[index];
120
87
  });
121
88
  return sameWidths === false;
122
89
  };
123
-
124
90
  exports.tablesHaveDifferentColumnWidths = tablesHaveDifferentColumnWidths;
125
-
126
91
  var tablesHaveDifferentNoOfColumns = function tablesHaveDifferentNoOfColumns(currentTable, previousTable) {
127
92
  var prevMap = _tableMap.TableMap.get(previousTable);
128
-
129
93
  var currentMap = _tableMap.TableMap.get(currentTable);
130
-
131
94
  return prevMap.width !== currentMap.width;
132
95
  };
133
-
134
96
  exports.tablesHaveDifferentNoOfColumns = tablesHaveDifferentNoOfColumns;
135
-
136
97
  function filterNearSelection(selection, findNode, predicate, defaultValue) {
137
98
  var found = findNode(selection);
138
-
139
99
  if (!found) {
140
100
  return defaultValue;
141
101
  }
142
-
143
102
  return predicate(found.node, found.pos);
144
103
  }
145
-
146
104
  function getTableWidths(node) {
147
105
  if (!node.content.firstChild) {
148
106
  return [];
149
107
  }
150
-
151
108
  var tableWidths = [];
152
109
  node.content.firstChild.content.forEach(function (cell) {
153
110
  if (Array.isArray(cell.attrs.colwidth)) {
@@ -1,146 +1,121 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.isHeaderRowRequired = isHeaderRowRequired;
9
8
  exports.unwrapContentFromTable = exports.transformSliceToRemoveOpenTable = exports.transformSliceToFixHardBreakProblemOnCopyFromCell = exports.transformSliceToCorrectEmptyTableCells = exports.removeTableFromLastChild = exports.removeTableFromFirstChild = void 0;
10
-
11
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
-
13
10
  var _prosemirrorModel = require("prosemirror-model");
14
-
15
11
  var _prosemirrorUtils = require("prosemirror-utils");
16
-
17
12
  var _utils = require("@atlaskit/editor-common/utils");
18
-
19
13
  var _pluginFactory = require("../pm-plugins/plugin-factory");
20
-
21
14
  // lifts up the content of each cell, returning an array of nodes
22
15
  var unwrapContentFromTable = function unwrapContentFromTable(maybeTable) {
23
16
  var schema = maybeTable.type.schema;
24
-
25
17
  if (maybeTable.type === schema.nodes.table) {
26
18
  var content = [];
27
19
  var _schema$nodes = schema.nodes,
28
- tableCell = _schema$nodes.tableCell,
29
- tableHeader = _schema$nodes.tableHeader;
20
+ tableCell = _schema$nodes.tableCell,
21
+ tableHeader = _schema$nodes.tableHeader;
30
22
  maybeTable.descendants(function (maybeCell) {
31
23
  if (maybeCell.type === tableCell || maybeCell.type === tableHeader) {
32
24
  content.push.apply(content, (0, _toConsumableArray2.default)((0, _prosemirrorUtils.flatten)(maybeCell, false).map(function (child) {
33
25
  return child.node;
34
26
  })));
35
27
  }
36
-
37
28
  return true;
38
29
  });
39
30
  return content;
40
31
  }
41
-
42
32
  return maybeTable;
43
33
  };
44
-
45
34
  exports.unwrapContentFromTable = unwrapContentFromTable;
46
-
47
35
  var removeTableFromFirstChild = function removeTableFromFirstChild(node, i) {
48
36
  return i === 0 ? unwrapContentFromTable(node) : node;
49
37
  };
50
-
51
38
  exports.removeTableFromFirstChild = removeTableFromFirstChild;
52
-
53
39
  var removeTableFromLastChild = function removeTableFromLastChild(node, i, fragment) {
54
40
  return i === fragment.childCount - 1 ? unwrapContentFromTable(node) : node;
55
41
  };
42
+
56
43
  /**
57
44
  * When we copy from a table cell with a hardBreak at the end,
58
45
  * the slice generated will come with a hardBreak outside of the table.
59
46
  * This code will look for that pattern and fix it.
60
47
  */
61
-
62
-
63
48
  exports.removeTableFromLastChild = removeTableFromLastChild;
64
-
65
49
  var transformSliceToFixHardBreakProblemOnCopyFromCell = function transformSliceToFixHardBreakProblemOnCopyFromCell(slice, schema) {
66
50
  var _schema$nodes2 = schema.nodes,
67
- paragraph = _schema$nodes2.paragraph,
68
- table = _schema$nodes2.table,
69
- hardBreak = _schema$nodes2.hardBreak;
51
+ paragraph = _schema$nodes2.paragraph,
52
+ table = _schema$nodes2.table,
53
+ hardBreak = _schema$nodes2.hardBreak;
70
54
  var emptyParagraphNode = paragraph.createAndFill();
71
55
  var hardBreakNode = hardBreak === null || hardBreak === void 0 ? void 0 : hardBreak.createAndFill();
72
56
  var paragraphNodeSize = emptyParagraphNode ? emptyParagraphNode.nodeSize : 0;
73
57
  var hardBreakNodeSize = hardBreakNode ? hardBreakNode.nodeSize : 0;
74
58
  var paragraphWithHardBreakSize = paragraphNodeSize + hardBreakNodeSize;
75
-
76
59
  if (slice.content.childCount === 2 && slice.content.firstChild && slice.content.lastChild && slice.content.firstChild.type === table && slice.content.lastChild.type === paragraph && slice.content.lastChild.nodeSize === paragraphWithHardBreakSize) {
77
60
  var nodes = unwrapContentFromTable(slice.content.firstChild);
78
-
79
61
  if (nodes instanceof Array) {
80
- return new _prosemirrorModel.Slice(_prosemirrorModel.Fragment.from( // keep only the content and discard the hardBreak
62
+ return new _prosemirrorModel.Slice(_prosemirrorModel.Fragment.from(
63
+ // keep only the content and discard the hardBreak
81
64
  nodes[0]), slice.openStart, slice.openEnd);
82
65
  }
83
66
  }
84
-
85
67
  return slice;
86
68
  };
87
-
88
69
  exports.transformSliceToFixHardBreakProblemOnCopyFromCell = transformSliceToFixHardBreakProblemOnCopyFromCell;
89
-
90
70
  var transformSliceToRemoveOpenTable = function transformSliceToRemoveOpenTable(slice, schema) {
91
71
  var _slice$content$firstC6;
92
-
93
72
  // we're removing the table, tableRow and tableCell reducing the open depth by 3
94
- var depthDecrement = 3; // Case 1: A slice entirely within a single CELL
73
+ var depthDecrement = 3;
95
74
 
96
- if ( // starts and ends inside of a cell
97
- slice.openStart >= 4 && slice.openEnd >= 4 && // slice is a table node
75
+ // Case 1: A slice entirely within a single CELL
76
+ if (
77
+ // starts and ends inside of a cell
78
+ slice.openStart >= 4 && slice.openEnd >= 4 &&
79
+ // slice is a table node
98
80
  slice.content.childCount === 1 && slice.content.firstChild.type === schema.nodes.table) {
99
81
  var _slice$content$firstC, _slice$content$firstC2, _slice$content$firstC3, _slice$content$firstC4, _slice$content$firstC5;
100
-
101
82
  // prosemirror-view has a bug that it duplicates table entry when selecting multiple paragraphs in a table cell.
102
83
  // https://github.com/ProseMirror/prosemirror/issues/1270
103
84
  // The structure becomes
104
85
  // table(genuine) > tableRow(genuine) > table(duplicated) > tableRow(duplicated) > tableCell/tableHeader(genuine) > contents(genuine)
105
86
  // As we are removing wrapping table anyway, we keep duplicated table and tableRow for simplicity
106
87
  var cleaned = slice;
107
-
108
88
  if (((_slice$content$firstC = slice.content.firstChild) === null || _slice$content$firstC === void 0 ? void 0 : (_slice$content$firstC2 = _slice$content$firstC.content) === null || _slice$content$firstC2 === void 0 ? void 0 : (_slice$content$firstC3 = _slice$content$firstC2.firstChild) === null || _slice$content$firstC3 === void 0 ? void 0 : (_slice$content$firstC4 = _slice$content$firstC3.content) === null || _slice$content$firstC4 === void 0 ? void 0 : (_slice$content$firstC5 = _slice$content$firstC4.firstChild) === null || _slice$content$firstC5 === void 0 ? void 0 : _slice$content$firstC5.type) === schema.nodes.table) {
109
89
  cleaned = new _prosemirrorModel.Slice(slice.content.firstChild.content.firstChild.content, slice.openStart - 2, slice.openEnd - 2);
110
90
  }
111
-
112
91
  return new _prosemirrorModel.Slice((0, _utils.flatmap)(cleaned.content, unwrapContentFromTable), cleaned.openStart - depthDecrement, cleaned.openEnd - depthDecrement);
113
- } // Case 2: A slice starting within a CELL and ending outside the table
114
-
92
+ }
115
93
 
116
- if ( // starts inside of a cell but ends outside of the starting table
117
- slice.openStart >= 4 && // slice starts from a table node (and spans across more than one node)
94
+ // Case 2: A slice starting within a CELL and ending outside the table
95
+ if (
96
+ // starts inside of a cell but ends outside of the starting table
97
+ slice.openStart >= 4 &&
98
+ // slice starts from a table node (and spans across more than one node)
118
99
  slice.content.childCount > 1 && ((_slice$content$firstC6 = slice.content.firstChild) === null || _slice$content$firstC6 === void 0 ? void 0 : _slice$content$firstC6.type) === schema.nodes.table) {
119
100
  // repoint the slice's cutting depth so that cell content where the slice starts
120
101
  // does not get lifted out of the cell on paste
121
102
  return new _prosemirrorModel.Slice(slice.content, 1, slice.openEnd);
122
103
  }
123
-
124
104
  return slice;
125
105
  };
126
-
127
106
  exports.transformSliceToRemoveOpenTable = transformSliceToRemoveOpenTable;
128
-
129
107
  var transformSliceToCorrectEmptyTableCells = function transformSliceToCorrectEmptyTableCells(slice, schema) {
130
108
  var _schema$nodes3 = schema.nodes,
131
- tableCell = _schema$nodes3.tableCell,
132
- tableHeader = _schema$nodes3.tableHeader;
109
+ tableCell = _schema$nodes3.tableCell,
110
+ tableHeader = _schema$nodes3.tableHeader;
133
111
  return (0, _utils.mapSlice)(slice, function (node) {
134
112
  if (node && (node.type === tableCell || node.type === tableHeader) && !node.content.childCount) {
135
113
  return node.type.createAndFill(node.attrs) || node;
136
114
  }
137
-
138
115
  return node;
139
116
  });
140
117
  };
141
-
142
118
  exports.transformSliceToCorrectEmptyTableCells = transformSliceToCorrectEmptyTableCells;
143
-
144
119
  function isHeaderRowRequired(state) {
145
120
  var tableState = (0, _pluginFactory.getPluginState)(state);
146
121
  return tableState && tableState.pluginConfig.isHeaderRowRequired;