@atlaskit/editor-plugin-table 1.1.0 → 1.1.2

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 (284) hide show
  1. package/CHANGELOG.md +12 -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 +82 -188
  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 +12 -42
  46. package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +16 -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 +0 -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 +15 -36
  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 +15 -71
  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 +12 -45
  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 +6 -19
  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 +27 -100
  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 +7 -15
  144. package/dist/es2019/plugins/table/pm-plugins/table-resizing/event-handlers.js +9 -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 +0 -4
  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 +10 -18
  153. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +29 -59
  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 +16 -28
  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 +6 -5
  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 +82 -181
  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 +12 -24
  230. package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +16 -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 +0 -4
  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 +15 -23
  239. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +15 -60
  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 +12 -32
  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 +6 -7
  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/package.json +2 -2
  284. package/src/__tests__/visual-regression/cell-options-menu.ts +1 -12
@@ -29,9 +29,9 @@ export const getResizeState = ({
29
29
  tableWidth,
30
30
  overflow
31
31
  };
32
- } // Getting the resize state from DOM
33
-
32
+ }
34
33
 
34
+ // Getting the resize state from DOM
35
35
  const colgroupChildren = insertColgroupFromNode(tableRef, table);
36
36
  const cols = Array.from(colgroupChildren).map((_, index) => {
37
37
  const cellsRefs = getCellsRefsInColumn(index, table, start, domAtPos);
@@ -47,8 +47,9 @@ export const getResizeState = ({
47
47
  tableWidth,
48
48
  overflow
49
49
  };
50
- }; // updates Colgroup DOM node with new widths
50
+ };
51
51
 
52
+ // updates Colgroup DOM node with new widths
52
53
  export const updateColgroup = (state, tableRef) => {
53
54
  const cols = tableRef.querySelectorAll('col');
54
55
  state.cols.filter(column => column && !!column.width) // if width is 0, we dont want to apply that.
@@ -56,72 +57,77 @@ export const updateColgroup = (state, tableRef) => {
56
57
  if (cols[i]) {
57
58
  cols[i].style.width = `${column.width}px`;
58
59
  }
59
- }); // colgroup has updated, reflect new widths in sticky header
60
+ });
60
61
 
62
+ // colgroup has updated, reflect new widths in sticky header
61
63
  syncStickyRowToTable(tableRef);
62
64
  };
63
65
  export const getTotalWidth = ({
64
66
  cols
65
67
  }) => {
66
68
  return cols.reduce((totalWidth, col) => totalWidth + col.width, 0);
67
- }; // adjust columns to take up the total width
68
- // difference in total columns widths vs table width happens due to the "Math.floor"
69
+ };
69
70
 
71
+ // adjust columns to take up the total width
72
+ // difference in total columns widths vs table width happens due to the "Math.floor"
70
73
  export const adjustColumnsWidths = (resizeState, maxSize) => {
71
74
  const totalWidth = getTotalWidth(resizeState);
72
75
  const diff = maxSize - totalWidth;
73
-
74
76
  if (diff > 0 || diff < 0 && Math.abs(diff) < tableCellMinWidth) {
75
77
  let updated = false;
76
- return { ...resizeState,
78
+ return {
79
+ ...resizeState,
77
80
  cols: resizeState.cols.map(col => {
78
81
  if (!updated && col.width + diff > col.minWidth) {
79
82
  updated = true;
80
- return { ...col,
83
+ return {
84
+ ...col,
81
85
  width: col.width + diff
82
86
  };
83
87
  }
84
-
85
88
  return col;
86
89
  })
87
90
  };
88
91
  }
89
-
90
92
  return resizeState;
91
93
  };
92
94
  export const evenAllColumnsWidths = resizeState => {
93
95
  const maxSize = getTotalWidth(resizeState);
94
96
  const evenWidth = Math.floor(maxSize / resizeState.cols.length);
95
- const cols = resizeState.cols.map(col => ({ ...col,
97
+ const cols = resizeState.cols.map(col => ({
98
+ ...col,
96
99
  width: evenWidth
97
100
  }));
98
- return adjustColumnsWidths({ ...resizeState,
101
+ return adjustColumnsWidths({
102
+ ...resizeState,
99
103
  cols
100
104
  }, maxSize);
101
105
  };
102
-
103
106
  const getSpace = (columns, start, end) => columns.slice(start, end).map(col => col.width).reduce((sum, width) => sum + width, 0);
104
-
105
107
  export const evenSelectedColumnsWidths = (resizeState, rect) => {
106
108
  const cols = resizeState.cols;
107
109
  const selectedSpace = getSpace(cols, rect.left, rect.right);
108
110
  const allSpace = getSpace(cols, 0, cols.length);
109
111
  const allWidth = allSpace / cols.length;
110
- const width = selectedSpace / (rect.right - rect.left); // Result equals even distribution of all columns -
111
- // unset widths of all columns
112
+ const width = selectedSpace / (rect.right - rect.left);
112
113
 
114
+ // Result equals even distribution of all columns -
115
+ // unset widths of all columns
113
116
  if (allWidth === width) {
114
- return { ...resizeState,
117
+ return {
118
+ ...resizeState,
115
119
  widths: cols.map(() => width),
116
- cols: resizeState.cols.map(col => ({ ...col,
120
+ cols: resizeState.cols.map(col => ({
121
+ ...col,
117
122
  width: 0
118
123
  }))
119
124
  };
120
125
  }
121
-
122
- return { ...resizeState,
126
+ return {
127
+ ...resizeState,
123
128
  widths: cols.map((col, i) => i >= rect.left && i < rect.right ? width : col.width),
124
- cols: cols.map((col, i) => ({ ...col,
129
+ cols: cols.map((col, i) => ({
130
+ ...col,
125
131
  width: i >= rect.left && i < rect.right ? width : col.width
126
132
  }))
127
133
  };
@@ -135,89 +141,90 @@ export const bulkColumnsResize = (resizeState, columnsIndexes, sourceColumnIndex
135
141
  const cols = resizeState.cols.map(col => {
136
142
  if (columnsIndexes.indexOf(col.index) > -1) {
137
143
  const diff = col.width - sourceCol.width;
138
-
139
144
  if (diff !== 0) {
140
145
  widthsDiffs.push(diff);
141
146
  }
142
-
143
- return { ...col,
147
+ return {
148
+ ...col,
144
149
  width: sourceCol.width
145
150
  };
146
151
  }
147
-
148
152
  return col;
149
153
  });
150
- let newState = { ...resizeState,
154
+ let newState = {
155
+ ...resizeState,
151
156
  cols: cols.map(col => {
152
- if (columnsIndexes.indexOf(col.index) > -1 || // take from prev columns only if dragging the first handle to the left
157
+ if (columnsIndexes.indexOf(col.index) > -1 ||
158
+ // take from prev columns only if dragging the first handle to the left
153
159
  columnsIndexes.indexOf(sourceColumnIndex) > -1 && col.index < colIndex) {
154
160
  return col;
155
161
  }
156
-
157
162
  while (widthsDiffs.length) {
158
163
  const diff = widthsDiffs.shift() || 0;
159
164
  const column = seenColumns[col.index] || col;
160
165
  const maybeWidth = column.width + diff;
161
-
162
166
  if (maybeWidth > column.minWidth) {
163
- seenColumns[column.index] = { ...column,
167
+ seenColumns[column.index] = {
168
+ ...column,
164
169
  width: maybeWidth
165
170
  };
166
171
  } else {
167
172
  widthsDiffs.push(maybeWidth - column.minWidth);
168
- seenColumns[column.index] = { ...column,
173
+ seenColumns[column.index] = {
174
+ ...column,
169
175
  width: column.minWidth
170
176
  };
171
177
  break;
172
178
  }
173
179
  }
174
-
175
180
  return seenColumns[col.index] || col;
176
181
  })
177
- }; // minimum possible table widths at the current layout
178
-
179
- const minTableWidth = resizeState.maxSize; // new table widths after bulk resize
180
-
181
- const newTotalWidth = getTotalWidth(newState); // when all columns are selected, what do we do when sum of columns widths is lower than min possible table widths?
182
+ };
182
183
 
184
+ // minimum possible table widths at the current layout
185
+ const minTableWidth = resizeState.maxSize;
186
+ // new table widths after bulk resize
187
+ const newTotalWidth = getTotalWidth(newState);
188
+ // when all columns are selected, what do we do when sum of columns widths is lower than min possible table widths?
183
189
  if (columnsIndexes.length === resizeState.cols.length && newTotalWidth < minTableWidth) {
184
190
  // table is not in overflow -> normal resize of a single column
185
191
  if (currentTableWidth === minTableWidth) {
186
192
  return resizeState;
187
- } // table is in overflow: keep the dragged column at its widths and evenly distribute columns
193
+ }
194
+ // table is in overflow: keep the dragged column at its widths and evenly distribute columns
188
195
  // to recover from overflow state
189
196
  else {
190
197
  const columnWidth = Math.floor((minTableWidth - sourceCol.width) / (newState.cols.length - 1));
191
- newState = { ...resizeState,
198
+ newState = {
199
+ ...resizeState,
192
200
  cols: newState.cols.map(col => {
193
201
  if (col.index === sourceCol.index) {
194
202
  return col;
195
203
  }
196
-
197
- return { ...col,
204
+ return {
205
+ ...col,
198
206
  width: columnWidth
199
207
  };
200
208
  })
201
209
  };
202
210
  }
203
- } // fix total table widths by adding missing pixels to columns widths here and there
204
-
211
+ }
205
212
 
213
+ // fix total table widths by adding missing pixels to columns widths here and there
206
214
  return adjustColumnsWidths(newState, resizeState.maxSize);
207
215
  };
208
216
  export const areColumnsEven = resizeState => {
209
217
  const newResizeState = evenAllColumnsWidths(resizeState);
210
218
  return newResizeState.cols.every((col, i) => col.width === resizeState.cols[i].width);
211
- }; // Get the layout
219
+ };
212
220
 
221
+ // Get the layout
213
222
  export const normaliseTableLayout = input => {
214
223
  switch (input) {
215
224
  case 'wide':
216
225
  return input;
217
-
218
226
  case 'full-width':
219
227
  return input;
220
-
221
228
  default:
222
229
  return 'default';
223
230
  }
@@ -228,18 +235,14 @@ export const getNewResizeStateFromSelectedColumns = (rect, state, domAtPos, getE
228
235
  totalColumnCount,
229
236
  table
230
237
  } = getSelectedTableInfo(state.selection);
231
-
232
238
  if (!table) {
233
239
  return;
234
240
  }
235
-
236
241
  const maybeTable = domAtPos(table.start).node;
237
242
  const tableRef = maybeTable.closest('table');
238
-
239
243
  if (!tableRef) {
240
244
  return;
241
245
  }
242
-
243
246
  const layout = normaliseTableLayout(tableRef === null || tableRef === void 0 ? void 0 : tableRef.dataset.layout);
244
247
  const maxSize = getTableMaxWidth({
245
248
  table: table.node,
@@ -11,6 +11,7 @@ export const scale = (tableRef, options, domAtPos) => {
11
11
  * isBreakoutEnabled === true -> default center aligned
12
12
  * isBreakoutEnabled === false -> full width mode
13
13
  */
14
+
14
15
  const {
15
16
  node,
16
17
  containerWidth,
@@ -27,14 +28,13 @@ export const scale = (tableRef, options, domAtPos) => {
27
28
  const previousMaxSize = getLayoutSize(prevNode.attrs.layout, previousContainerWidth, {
28
29
  isBreakoutEnabled
29
30
  });
30
- let newWidth = maxSize; // adjust table width if layout is updated
31
+ let newWidth = maxSize;
31
32
 
33
+ // adjust table width if layout is updated
32
34
  const hasOverflow = prevTableWidth > previousMaxSize;
33
-
34
35
  if (layoutChanged && hasOverflow) {
35
36
  // No keep overflow if the old content can be in the new size
36
37
  const canFitInNewSize = prevTableWidth < maxSize;
37
-
38
38
  if (canFitInNewSize) {
39
39
  newWidth = maxSize;
40
40
  } else {
@@ -43,11 +43,9 @@ export const scale = (tableRef, options, domAtPos) => {
43
43
  newWidth = Math.floor(newWidth * overflowScale);
44
44
  }
45
45
  }
46
-
47
46
  if (node.attrs.isNumberColumnEnabled) {
48
47
  newWidth -= akEditorTableNumberColumnWidth;
49
48
  }
50
-
51
49
  const resizeState = getResizeState({
52
50
  minWidth: tableCellMinWidth,
53
51
  maxSize,
@@ -67,17 +65,17 @@ export const scaleWithParent = (tableRef, parentWidth, table, start, domAtPos) =
67
65
  start,
68
66
  domAtPos
69
67
  });
70
-
71
68
  if (table.attrs.isNumberColumnEnabled) {
72
69
  parentWidth -= akEditorTableNumberColumnWidth;
73
70
  }
74
-
75
71
  return scaleTableTo(resizeState, Math.floor(parentWidth));
76
- }; // Scales the table to a given size and updates its colgroup DOM node
72
+ };
77
73
 
74
+ // Scales the table to a given size and updates its colgroup DOM node
78
75
  export function scaleTableTo(state, maxSize) {
79
76
  const scaleFactor = maxSize / getTotalWidth(state);
80
- let newState = { ...state,
77
+ let newState = {
78
+ ...state,
81
79
  maxSize,
82
80
  cols: state.cols.map(col => {
83
81
  const {
@@ -85,21 +83,18 @@ export function scaleTableTo(state, maxSize) {
85
83
  width
86
84
  } = col;
87
85
  let newColWidth = Math.floor(width * scaleFactor);
88
-
89
86
  if (newColWidth < minWidth) {
90
87
  newColWidth = minWidth;
91
88
  }
92
-
93
- return { ...col,
89
+ return {
90
+ ...col,
94
91
  width: newColWidth
95
92
  };
96
93
  })
97
94
  };
98
95
  let newTotalWidth = getTotalWidth(newState);
99
-
100
96
  if (newTotalWidth > maxSize) {
101
97
  newState = reduceSpace(newState, newTotalWidth - maxSize);
102
98
  }
103
-
104
99
  return adjustColumnsWidths(newState, maxSize);
105
100
  }
@@ -2,91 +2,87 @@ import { defaultTableSelection } from './pm-plugins/default-table-selection';
2
2
  export default ((pluginState, action) => {
3
3
  switch (action.type) {
4
4
  case 'TOGGLE_HEADER_COLUMN':
5
- return { ...pluginState,
5
+ return {
6
+ ...pluginState,
6
7
  isHeaderColumnEnabled: !pluginState.isHeaderColumnEnabled
7
8
  };
8
-
9
9
  case 'TOGGLE_HEADER_ROW':
10
- return { ...pluginState,
10
+ return {
11
+ ...pluginState,
11
12
  isHeaderRowEnabled: !pluginState.isHeaderRowEnabled
12
13
  };
13
-
14
14
  case 'CLEAR_HOVER_SELECTION':
15
- return { ...pluginState,
15
+ return {
16
+ ...pluginState,
16
17
  ...action.data,
17
18
  ...defaultTableSelection
18
19
  };
19
-
20
20
  case 'SELECT_COLUMN':
21
- return { ...pluginState,
21
+ return {
22
+ ...pluginState,
22
23
  ...action.data,
23
24
  isContextualMenuOpen: false
24
25
  };
25
-
26
26
  case 'SET_TARGET_CELL_POSITION':
27
- return { ...pluginState,
27
+ return {
28
+ ...pluginState,
28
29
  ...action.data,
29
30
  isContextualMenuOpen: false
30
31
  };
31
-
32
32
  case 'SET_TABLE_LAYOUT':
33
- return { ...pluginState,
33
+ return {
34
+ ...pluginState,
34
35
  ...action.data
35
36
  };
36
-
37
37
  case 'TOGGLE_CONTEXTUAL_MENU':
38
- return { ...pluginState,
38
+ return {
39
+ ...pluginState,
39
40
  isContextualMenuOpen: !pluginState.isContextualMenuOpen
40
41
  };
41
-
42
42
  case 'SHOW_INSERT_ROW_BUTTON':
43
43
  if (action.data.insertRowButtonIndex === pluginState.insertRowButtonIndex) {
44
44
  return pluginState;
45
45
  }
46
-
47
- return { ...pluginState,
46
+ return {
47
+ ...pluginState,
48
48
  ...action.data,
49
49
  insertColumnButtonIndex: undefined // We need to assure that column is not shown
50
-
51
50
  };
52
51
 
53
52
  case 'SHOW_INSERT_COLUMN_BUTTON':
54
53
  if (action.data.insertColumnButtonIndex === pluginState.insertColumnButtonIndex) {
55
54
  return pluginState;
56
55
  }
57
-
58
- return { ...pluginState,
56
+ return {
57
+ ...pluginState,
59
58
  ...action.data,
60
59
  insertRowButtonIndex: undefined // We need to assure that row is not shown
61
-
62
60
  };
63
61
 
64
62
  case 'HIDE_INSERT_COLUMN_OR_ROW_BUTTON':
65
63
  if (pluginState.insertRowButtonIndex !== undefined || pluginState.insertColumnButtonIndex !== undefined) {
66
- return { ...pluginState,
64
+ return {
65
+ ...pluginState,
67
66
  insertRowButtonIndex: undefined,
68
67
  insertColumnButtonIndex: undefined
69
68
  };
70
69
  }
71
-
72
70
  return pluginState;
73
-
74
71
  case 'HIDE_RESIZE_HANDLE_LINE':
75
- return { ...pluginState,
72
+ return {
73
+ ...pluginState,
76
74
  ...action.data,
77
75
  resizeHandleColumnIndex: undefined,
78
76
  resizeHandleRowIndex: undefined
79
77
  };
80
-
81
78
  case 'ADD_RESIZE_HANDLE_DECORATIONS':
82
79
  if (action.data.resizeHandleColumnIndex === pluginState.resizeHandleColumnIndex && action.data.resizeHandleRowIndex === pluginState.resizeHandleRowIndex) {
83
80
  return pluginState;
84
81
  }
85
-
86
- return { ...pluginState,
82
+ return {
83
+ ...pluginState,
87
84
  ...action.data
88
85
  };
89
-
90
86
  case 'SET_TABLE_REF':
91
87
  case 'HOVER_ROWS':
92
88
  case 'HOVER_COLUMNS':
@@ -94,10 +90,10 @@ export default ((pluginState, action) => {
94
90
  case 'HOVER_CELLS':
95
91
  case 'SHOW_RESIZE_HANDLE_LINE':
96
92
  case 'SET_EDITOR_FOCUS':
97
- return { ...pluginState,
93
+ return {
94
+ ...pluginState,
98
95
  ...action.data
99
96
  };
100
-
101
97
  default:
102
98
  return pluginState;
103
99
  }