@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
@@ -1,61 +1,35 @@
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.messages = exports.getToolbarMenuConfig = exports.getToolbarConfig = exports.getToolbarCellOptionsConfig = void 0;
9
-
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
8
  var _react = require("@emotion/react");
13
-
14
9
  var _reactIntlNext = require("react-intl-next");
15
-
16
10
  var _remove = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/remove"));
17
-
18
11
  var _messages = _interopRequireDefault(require("@atlaskit/editor-common/messages"));
19
-
20
12
  var _commands = require("./commands");
21
-
22
13
  var _commandsWithAnalytics = require("./commands-with-analytics");
23
-
24
14
  var _pluginFactory = require("./pm-plugins/plugin-factory");
25
-
26
15
  var _tableResizing = require("./pm-plugins/table-resizing");
27
-
28
16
  var _types = require("./types");
29
-
30
17
  var _utils = require("./utils");
31
-
32
18
  var _utils2 = require("@atlaskit/editor-common/utils");
33
-
34
19
  var _analytics = require("@atlaskit/editor-common/analytics");
35
-
36
20
  var _utils3 = require("@atlaskit/editor-tables/utils");
37
-
38
21
  var _transforms = require("./transforms");
39
-
40
22
  var _messages2 = _interopRequireDefault(require("./ui/messages"));
41
-
42
23
  var _ContextualMenu = require("./ui/FloatingContextualMenu/ContextualMenu");
43
-
44
24
  var _prosemirrorUtils = require("prosemirror-utils");
45
-
46
25
  var _keymaps = require("@atlaskit/editor-common/keymaps");
47
-
48
26
  var _resizeState = require("./pm-plugins/table-resizing/utils/resize-state");
49
-
50
27
  var _steps = require("@atlaskit/adf-schema/steps");
51
-
52
28
  var _shortcut = require("@atlaskit/editor-shared-styles/shortcut");
53
-
54
29
  var _uiColor = require("@atlaskit/editor-common/ui-color");
55
-
56
30
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
57
-
58
31
  /** @jsx jsx */
32
+
59
33
  var messages = (0, _reactIntlNext.defineMessages)({
60
34
  tableOptions: {
61
35
  id: 'fabric.editor.tableOptions',
@@ -84,7 +58,6 @@ var messages = (0, _reactIntlNext.defineMessages)({
84
58
  }
85
59
  });
86
60
  exports.messages = messages;
87
-
88
61
  var getToolbarMenuConfig = function getToolbarMenuConfig(config, state, _ref, editorAnalyticsAPI) {
89
62
  var formatMessage = _ref.formatMessage;
90
63
  var options = [{
@@ -123,21 +96,19 @@ var getToolbarMenuConfig = function getToolbarMenuConfig(config, state, _ref, ed
123
96
  }),
124
97
  options: options
125
98
  };
126
- }; // Added these options for mobile. Mobile bridge translates this menu and
99
+ };
100
+
101
+ // Added these options for mobile. Mobile bridge translates this menu and
127
102
  // relay it to the native mobile. Native mobile displays the menu
128
103
  // with native widgets. It's enabled via a plugin config.
129
-
130
-
131
104
  exports.getToolbarMenuConfig = getToolbarMenuConfig;
132
-
133
105
  var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorState, editorView, initialSelectionRect, _ref2, getEditorContainerWidth, editorAnalyticsAPI) {
134
106
  var _pluginState$pluginCo, _pluginState$pluginCo2;
135
-
136
107
  var formatMessage = _ref2.formatMessage;
137
108
  var top = initialSelectionRect.top,
138
- bottom = initialSelectionRect.bottom,
139
- right = initialSelectionRect.right,
140
- left = initialSelectionRect.left;
109
+ bottom = initialSelectionRect.bottom,
110
+ right = initialSelectionRect.right,
111
+ left = initialSelectionRect.left;
141
112
  var numberOfColumns = right - left;
142
113
  var numberOfRows = bottom - top;
143
114
  var pluginState = (0, _pluginFactory.getPluginState)(editorState);
@@ -147,11 +118,9 @@ var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorSta
147
118
  onClick: function onClick(state, dispatch, view) {
148
119
  var selectionRect = getClosestSelectionRect(state);
149
120
  var index = selectionRect === null || selectionRect === void 0 ? void 0 : selectionRect.right;
150
-
151
121
  if (index) {
152
122
  (0, _commandsWithAnalytics.insertColumnWithAnalytics)(getEditorContainerWidth, editorAnalyticsAPI)(_analytics.INPUT_METHOD.FLOATING_TB, index)(state, dispatch, view);
153
123
  }
154
-
155
124
  return true;
156
125
  },
157
126
  selected: false,
@@ -165,14 +134,12 @@ var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorSta
165
134
  onClick: function onClick(state, dispatch) {
166
135
  var selectionRect = getClosestSelectionRect(state);
167
136
  var index = selectionRect === null || selectionRect === void 0 ? void 0 : selectionRect.bottom;
168
-
169
137
  if (index) {
170
138
  (0, _commandsWithAnalytics.insertRowWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.FLOATING_TB, {
171
139
  index: index,
172
140
  moveCursorToInsertedRow: true
173
141
  })(state, dispatch);
174
142
  }
175
-
176
143
  return true;
177
144
  },
178
145
  selected: false,
@@ -187,11 +154,9 @@ var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorSta
187
154
  }),
188
155
  onClick: function onClick(state, dispatch, view) {
189
156
  var selectionRect = getClosestSelectionRect(state);
190
-
191
157
  if (selectionRect) {
192
158
  (0, _commandsWithAnalytics.deleteColumnsWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.FLOATING_TB, selectionRect)(state, dispatch, view);
193
159
  }
194
-
195
160
  return true;
196
161
  },
197
162
  onFocus: highlightColumnsHandler,
@@ -207,11 +172,9 @@ var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorSta
207
172
  }),
208
173
  onClick: function onClick(state, dispatch) {
209
174
  var selectionRect = getClosestSelectionRect(state);
210
-
211
175
  if (selectionRect) {
212
176
  (0, _commandsWithAnalytics.deleteRowsWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.FLOATING_TB, selectionRect, false)(state, dispatch);
213
177
  }
214
-
215
178
  return true;
216
179
  },
217
180
  onFocus: highlightRowsHandler,
@@ -233,22 +196,17 @@ var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorSta
233
196
  selected: false,
234
197
  disabled: !(0, _utils3.splitCell)(editorState)
235
198
  }];
236
-
237
199
  if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo = pluginState.pluginConfig) !== null && _pluginState$pluginCo !== void 0 && _pluginState$pluginCo.allowDistributeColumns) {
238
200
  var _newResizeStateWithAn;
239
-
240
201
  var newResizeStateWithAnalytics = editorView ? (0, _resizeState.getNewResizeStateFromSelectedColumns)(initialSelectionRect, editorState, editorView.domAtPos.bind(editorView), getEditorContainerWidth) : undefined;
241
202
  var wouldChange = (_newResizeStateWithAn = newResizeStateWithAnalytics === null || newResizeStateWithAnalytics === void 0 ? void 0 : newResizeStateWithAnalytics.changed) !== null && _newResizeStateWithAn !== void 0 ? _newResizeStateWithAn : false;
242
-
243
203
  var distributeColumnWidths = function distributeColumnWidths(state, dispatch) {
244
204
  if (newResizeStateWithAnalytics) {
245
205
  (0, _commandsWithAnalytics.distributeColumnsWidthsWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.FLOATING_TB, newResizeStateWithAnalytics)(state, dispatch);
246
206
  return true;
247
207
  }
248
-
249
208
  return false;
250
209
  };
251
-
252
210
  options.push({
253
211
  id: 'editor.table.distributeColumns',
254
212
  title: formatMessage(_ContextualMenu.messages.distributeColumns),
@@ -257,7 +215,6 @@ var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorSta
257
215
  disabled: !wouldChange
258
216
  });
259
217
  }
260
-
261
218
  if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo2 = pluginState.pluginConfig) !== null && _pluginState$pluginCo2 !== void 0 && _pluginState$pluginCo2.allowColumnSorting) {
262
219
  var hasMergedCellsInTable = (0, _utils.getMergedCellsPositions)(editorState.tr).length > 0;
263
220
  var warning = hasMergedCellsInTable ? formatMessage(_ContextualMenu.messages.canNotSortTable) : undefined;
@@ -269,7 +226,6 @@ var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorSta
269
226
  (0, _commands.hoverMergedCells)()(state, dispatch);
270
227
  return true;
271
228
  }
272
-
273
229
  return false;
274
230
  },
275
231
  onMouseOut: function onMouseOut(state, dispatch) {
@@ -292,7 +248,6 @@ var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorSta
292
248
  (0, _commands.hoverMergedCells)()(state, dispatch);
293
249
  return true;
294
250
  }
295
-
296
251
  return false;
297
252
  },
298
253
  onMouseOut: function onMouseOut(state, dispatch) {
@@ -308,7 +263,6 @@ var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorSta
308
263
  tooltip: warning
309
264
  });
310
265
  }
311
-
312
266
  options.push({
313
267
  id: 'editor.table.clearCells',
314
268
  title: formatMessage(_ContextualMenu.messages.clearCells, {
@@ -316,8 +270,7 @@ var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorSta
316
270
  }),
317
271
  onClick: function onClick(state, dispatch) {
318
272
  var _getPluginState = (0, _pluginFactory.getPluginState)(state),
319
- targetCellPosition = _getPluginState.targetCellPosition;
320
-
273
+ targetCellPosition = _getPluginState.targetCellPosition;
321
274
  (0, _commandsWithAnalytics.emptyMultipleCellsWithAnalytics)(editorAnalyticsAPI)(_analytics.INPUT_METHOD.FLOATING_TB, targetCellPosition)(state, dispatch);
322
275
  return true;
323
276
  },
@@ -338,34 +291,27 @@ var getToolbarCellOptionsConfig = function getToolbarCellOptionsConfig(editorSta
338
291
  showSelected: false
339
292
  };
340
293
  };
341
-
342
294
  exports.getToolbarCellOptionsConfig = getToolbarCellOptionsConfig;
343
-
344
295
  var getClosestSelectionRect = function getClosestSelectionRect(state) {
345
296
  var selection = state.selection;
346
297
  return (0, _utils3.isSelectionType)(selection, 'cell') ? (0, _utils3.getSelectionRect)(selection) : (0, _utils3.findCellRectClosestToPos)(selection.$from);
347
298
  };
348
-
349
299
  var getToolbarConfig = function getToolbarConfig(getEditorContainerWidth, editorAnalyticsAPI, getEditorFeatureFlags, getEditorView) {
350
300
  return function (config) {
351
301
  return function (state, intl) {
352
302
  var tableObject = (0, _utils3.findTable)(state.selection);
353
303
  var pluginState = (0, _pluginFactory.getPluginState)(state);
354
-
355
304
  var resizeState = _tableResizing.pluginKey.getState(state);
356
-
357
305
  if (tableObject && pluginState.editorHasFocus) {
358
306
  var nodeType = state.schema.nodes.table;
359
307
  var menu = getToolbarMenuConfig(config, pluginState, intl, editorAnalyticsAPI);
360
-
361
308
  var _ref3 = getEditorFeatureFlags() || {},
362
- tableCellOptionsInFloatingToolbar = _ref3.tableCellOptionsInFloatingToolbar;
363
-
309
+ tableCellOptionsInFloatingToolbar = _ref3.tableCellOptionsInFloatingToolbar;
364
310
  var cellItems = getCellItems(config, state, getEditorView(), intl, getEditorContainerWidth, editorAnalyticsAPI, tableCellOptionsInFloatingToolbar);
365
- var colorPicker = getColorPicker(state, menu, intl, getEditorContainerWidth, editorAnalyticsAPI, tableCellOptionsInFloatingToolbar); // Check if we need to show confirm dialog for delete button
311
+ var colorPicker = getColorPicker(state, menu, intl, getEditorContainerWidth, editorAnalyticsAPI, tableCellOptionsInFloatingToolbar);
366
312
 
313
+ // Check if we need to show confirm dialog for delete button
367
314
  var confirmDialog;
368
-
369
315
  if ((0, _utils2.isReferencedSource)(state, tableObject.node)) {
370
316
  confirmDialog = function confirmDialog() {
371
317
  return {
@@ -387,23 +333,18 @@ var getToolbarConfig = function getToolbarConfig(getEditorContainerWidth, editor
387
333
  };
388
334
  };
389
335
  }
390
-
391
336
  var getDomRef = function getDomRef(editorView) {
392
337
  var element;
393
338
  var domAtPos = editorView.domAtPos.bind(editorView);
394
339
  var parent = (0, _prosemirrorUtils.findParentDomRefOfType)(nodeType, domAtPos)(state.selection);
395
-
396
340
  if (parent) {
397
341
  var tableRef = parent.querySelector('table') || undefined;
398
-
399
342
  if (tableRef) {
400
343
  element = (0, _utils2.closestElement)(tableRef, ".".concat(_types.TableCssClassName.TABLE_NODE_WRAPPER)) || undefined;
401
344
  }
402
345
  }
403
-
404
346
  return element;
405
347
  };
406
-
407
348
  return {
408
349
  title: 'Table floating controls',
409
350
  getDomRef: getDomRef,
@@ -411,7 +352,7 @@ var getToolbarConfig = function getToolbarConfig(getEditorContainerWidth, editor
411
352
  offset: [0, 3],
412
353
  zIndex: _editorSharedStyles.akEditorFloatingPanelZIndex + 1,
413
354
  // Place the context menu slightly above the others
414
- items: [menu, separator(menu.hidden)].concat((0, _toConsumableArray2.default)(cellItems), (0, _toConsumableArray2.default)(colorPicker), [{
355
+ items: [menu, separator(menu.hidden)].concat(cellItems, colorPicker, [{
415
356
  type: 'extensions-placeholder',
416
357
  separator: 'end'
417
358
  }, {
@@ -445,27 +386,21 @@ var getToolbarConfig = function getToolbarConfig(getEditorContainerWidth, editor
445
386
  scrollable: true
446
387
  };
447
388
  }
448
-
449
389
  return;
450
390
  };
451
391
  };
452
392
  };
453
-
454
393
  exports.getToolbarConfig = getToolbarConfig;
455
-
456
394
  var separator = function separator(hidden) {
457
395
  return {
458
396
  type: 'separator',
459
397
  hidden: hidden
460
398
  };
461
399
  };
462
-
463
400
  var getCellItems = function getCellItems(pluginConfig, state, view, _ref4, getEditorContainerWidth, editorAnalyticsAPI, tableCellOptionsInFloatingToolbar) {
464
401
  var formatMessage = _ref4.formatMessage;
465
-
466
402
  if (pluginConfig.allowCellOptionsInFloatingToolbar || tableCellOptionsInFloatingToolbar) {
467
403
  var initialSelectionRect = getClosestSelectionRect(state);
468
-
469
404
  if (initialSelectionRect) {
470
405
  var cellOptions = getToolbarCellOptionsConfig(state, view, initialSelectionRect, {
471
406
  formatMessage: formatMessage
@@ -473,23 +408,17 @@ var getCellItems = function getCellItems(pluginConfig, state, view, _ref4, getEd
473
408
  return [cellOptions, separator(cellOptions.hidden)];
474
409
  }
475
410
  }
476
-
477
411
  return [];
478
412
  };
479
-
480
413
  var getColorPicker = function getColorPicker(state, menu, _ref5, getEditorContainerWidth, editorAnalyticsAPI, tableCellOptionsInFloatingToolbar) {
481
414
  var _node$attrs;
482
-
483
415
  var formatMessage = _ref5.formatMessage;
484
-
485
416
  var _getPluginState2 = (0, _pluginFactory.getPluginState)(state),
486
- targetCellPosition = _getPluginState2.targetCellPosition,
487
- pluginConfig = _getPluginState2.pluginConfig;
488
-
417
+ targetCellPosition = _getPluginState2.targetCellPosition,
418
+ pluginConfig = _getPluginState2.pluginConfig;
489
419
  if (!pluginConfig.allowBackgroundColor || !tableCellOptionsInFloatingToolbar) {
490
420
  return [];
491
421
  }
492
-
493
422
  var node = targetCellPosition ? state.doc.nodeAt(targetCellPosition) : undefined;
494
423
  var currentBackground = (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.background) || '#ffffff';
495
424
  var defaultPalette = _uiColor.cellBackgroundColorPalette.find(function (item) {
@@ -511,41 +440,32 @@ var getColorPicker = function getColorPicker(state, menu, _ref5, getEditorContai
511
440
  }
512
441
  }, separator(menu.hidden)];
513
442
  };
514
-
515
443
  var clickWithCheckboxHandler = function clickWithCheckboxHandler(isChecked, node, editorAnalyticsAPI) {
516
444
  return function (state, dispatch) {
517
445
  if (!node) {
518
446
  return false;
519
447
  }
520
-
521
448
  if (!isChecked) {
522
449
  return (0, _commandsWithAnalytics.deleteTableWithAnalytics)(editorAnalyticsAPI)(state, dispatch);
523
450
  } else {
524
451
  (0, _commands.removeDescendantNodes)(node)(state, dispatch);
525
452
  }
526
-
527
453
  return true;
528
454
  };
529
455
  };
530
-
531
456
  var highlightRowsHandler = function highlightRowsHandler(state, dispatch) {
532
457
  var selectionRect = getClosestSelectionRect(state);
533
-
534
458
  if (selectionRect) {
535
459
  (0, _commands.hoverRows)((0, _utils.getSelectedRowIndexes)(selectionRect), true)(state, dispatch);
536
460
  return true;
537
461
  }
538
-
539
462
  return false;
540
463
  };
541
-
542
464
  var highlightColumnsHandler = function highlightColumnsHandler(state, dispatch) {
543
465
  var selectionRect = getClosestSelectionRect(state);
544
-
545
466
  if (selectionRect) {
546
467
  (0, _commands.hoverColumns)((0, _utils.getSelectedColumnIndexes)(selectionRect), true)(state, dispatch);
547
468
  return true;
548
469
  }
549
-
550
470
  return false;
551
471
  };
@@ -1,48 +1,36 @@
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.updateColumnWidths = exports.rescaleColumns = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _tableMap = require("@atlaskit/editor-tables/table-map");
13
-
14
10
  var _styles = require("@atlaskit/editor-common/styles");
15
-
11
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
16
12
  var _utils = require("../pm-plugins/table-resizing/utils");
17
-
18
13
  var _metadata = require("./metadata");
19
-
20
14
  var _resizeState = require("../pm-plugins/table-resizing/utils/resize-state");
21
-
22
15
  var _misc = require("../pm-plugins/table-resizing/utils/misc");
23
-
24
16
  var _scaleTable = require("../pm-plugins/table-resizing/utils/scale-table");
25
-
17
+ var _colgroup = require("../pm-plugins/table-resizing/utils/colgroup");
18
+ var _commonStyles = require("../ui/common-styles");
26
19
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
-
28
20
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
-
30
21
  var updateColumnWidths = function updateColumnWidths(resizeState, table, start) {
31
22
  return function (tr) {
32
23
  var map = _tableMap.TableMap.get(table);
24
+ var updatedCellsAttrs = {};
33
25
 
34
- var updatedCellsAttrs = {}; // calculating new attributes for each cell
35
-
26
+ // calculating new attributes for each cell
36
27
  for (var columnIndex = 0; columnIndex < map.width; columnIndex++) {
37
28
  for (var rowIndex = 0; rowIndex < map.height; rowIndex++) {
38
29
  var width = resizeState.cols[columnIndex].width;
39
30
  var mapIndex = rowIndex * map.width + columnIndex;
40
31
  var cellPos = map.map[mapIndex];
41
-
42
32
  var attrs = updatedCellsAttrs[cellPos] || _objectSpread({}, table.nodeAt(cellPos).attrs);
43
-
44
33
  var colspan = attrs.colspan || 1;
45
-
46
34
  if (attrs.colwidth && attrs.colwidth.length > colspan) {
47
35
  tr = (0, _metadata.setMeta)({
48
36
  type: 'UPDATE_COLUMN_WIDTHS',
@@ -53,26 +41,22 @@ var updateColumnWidths = function updateColumnWidths(resizeState, table, start)
53
41
  }
54
42
  })(tr);
55
43
  attrs.colwidth = attrs.colwidth.slice(0, colspan);
56
- } // Rowspanning cell that has already been handled
57
-
44
+ }
58
45
 
46
+ // Rowspanning cell that has already been handled
59
47
  if (rowIndex && map.map[mapIndex] === map.map[mapIndex - map.width]) {
60
48
  continue;
61
49
  }
62
-
63
50
  var colspanIndex = colspan === 1 ? 0 : columnIndex - map.colCount(cellPos);
64
-
65
51
  if (attrs.colwidth && attrs.colwidth[colspanIndex] === width) {
66
52
  continue;
67
53
  }
68
-
69
54
  var colwidths = attrs.colwidth ? attrs.colwidth.slice() : Array.from({
70
55
  length: colspan
71
56
  }, function (_) {
72
57
  return 0;
73
58
  });
74
59
  colwidths[colspanIndex] = width;
75
-
76
60
  if (colwidths.length > colspan) {
77
61
  tr = (0, _metadata.setMeta)({
78
62
  type: 'UPDATE_COLUMN_WIDTHS',
@@ -84,36 +68,29 @@ var updateColumnWidths = function updateColumnWidths(resizeState, table, start)
84
68
  })(tr);
85
69
  colwidths = colwidths.slice(0, colspan);
86
70
  }
87
-
88
71
  updatedCellsAttrs[cellPos] = _objectSpread(_objectSpread({}, attrs), {}, {
89
72
  colwidth: colwidths.includes(0) ? undefined : colwidths
90
73
  });
91
74
  }
92
- } // updating all cells with new attributes
93
-
75
+ }
94
76
 
77
+ // updating all cells with new attributes
95
78
  var rows = [];
96
79
  var seen = {};
97
-
98
80
  for (var _rowIndex = 0; _rowIndex < map.height; _rowIndex++) {
99
81
  var row = table.child(_rowIndex);
100
82
  var cells = [];
101
-
102
83
  for (var _columnIndex = 0; _columnIndex < map.width; _columnIndex++) {
103
84
  var _mapIndex = _rowIndex * map.width + _columnIndex;
104
-
105
85
  var pos = map.map[_mapIndex];
106
86
  var cell = table.nodeAt(pos);
107
-
108
87
  if (!seen[pos] && cell) {
109
88
  cells.push(cell.type.createChecked(updatedCellsAttrs[pos] || cell.attrs, cell.content, cell.marks));
110
89
  seen[pos] = true;
111
90
  }
112
91
  }
113
-
114
92
  rows.push(row.type.createChecked(row.attrs, cells, row.marks));
115
93
  }
116
-
117
94
  var tablePos = start - 1;
118
95
  var selectionBookmark = tr.selection.getBookmark();
119
96
  tr.replaceWith(tablePos, tablePos + table.nodeSize, table.type.createChecked(table.attrs, rows, table.marks));
@@ -127,10 +104,10 @@ var updateColumnWidths = function updateColumnWidths(resizeState, table, start)
127
104
  *
128
105
  * @see https://github.com/ProseMirror/prosemirror/issues/645
129
106
  */
130
-
131
107
  return tr.setSelection(selectionBookmark.resolve(tr.doc));
132
108
  };
133
109
  };
110
+
134
111
  /**
135
112
  * This function is called when user inserts/deletes a column in a table to;
136
113
  * - rescale all columns (if the table did not overflow before the insertion)
@@ -141,30 +118,25 @@ var updateColumnWidths = function updateColumnWidths(resizeState, table, start)
141
118
  * @param view
142
119
  * @returns Updated transaction with rescaled columns for a given table
143
120
  */
144
-
145
-
146
121
  exports.updateColumnWidths = updateColumnWidths;
147
-
148
122
  var rescaleColumns = function rescaleColumns(getEditorContainerWidth) {
149
123
  return function (table, view) {
150
124
  return function (tr) {
151
- // If the table has been not been resized we skip updating the size
152
- // of columns here.
153
- if (!view || !(0, _utils.hasTableBeenResized)(table.node)) {
125
+ var _tableRef$parentEleme;
126
+ if (!view) {
154
127
  return tr;
155
128
  }
156
-
129
+ var pos = table.pos;
130
+ var newTable = tr.doc.nodeAt(pos);
157
131
  var state = view.state;
158
132
  var domAtPos = view.domAtPos.bind(view);
159
133
  var maybeTable = domAtPos(table.start).node;
160
134
  var tableRef = maybeTable.closest('table');
161
-
162
- if (!tableRef) {
135
+ if (!tableRef || !newTable) {
163
136
  return tr;
164
137
  }
165
-
166
- var layout = (0, _resizeState.normaliseTableLayout)(tableRef === null || tableRef === void 0 ? void 0 : tableRef.dataset.layout); // The is the width the table can reach before overflowing
167
-
138
+ var layout = (0, _resizeState.normaliseTableLayout)(tableRef === null || tableRef === void 0 ? void 0 : tableRef.dataset.layout);
139
+ // The is the width the table can reach before overflowing
168
140
  var maxSize = (0, _misc.getTableMaxWidth)({
169
141
  table: table.node,
170
142
  tableStart: table.start,
@@ -172,6 +144,44 @@ var rescaleColumns = function rescaleColumns(getEditorContainerWidth) {
172
144
  layout: layout,
173
145
  getEditorContainerWidth: getEditorContainerWidth
174
146
  });
147
+ var tableWidth = tableRef.clientWidth || _editorSharedStyles.akEditorDefaultLayoutWidth;
148
+ var tableMaxWidth = (tableRef === null || tableRef === void 0 ? void 0 : (_tableRef$parentEleme = tableRef.parentElement) === null || _tableRef$parentEleme === void 0 ? void 0 : _tableRef$parentEleme.clientWidth) || 0;
149
+ tableMaxWidth -= _commonStyles.insertColumnButtonOffset;
150
+ var newTableMap = _tableMap.TableMap.get(newTable);
151
+ var noOfColumns = newTableMap.width;
152
+ if (!noOfColumns || noOfColumns <= 0) {
153
+ return tr;
154
+ }
155
+ var columnWidthUnresized = tableWidth / noOfColumns;
156
+
157
+ // If the table has not been resized, and the column width is bigger than the minimum column width
158
+ // we skip updating the size of columns here.
159
+ if (!(0, _utils.hasTableBeenResized)(table.node) && columnWidthUnresized > _styles.tableCellMinWidth) {
160
+ return tr;
161
+ }
162
+
163
+ // If the table has not been resized, and the column width is smaller than the minimum column width
164
+ // Or if the table has been resized, but each column width is either 48px or null
165
+ // we update the table to have 48px for each column
166
+ if (!(0, _utils.hasTableBeenResized)(table.node) && columnWidthUnresized <= _styles.tableCellMinWidth || (0, _utils.hasTableBeenResized)(table.node) && (0, _colgroup.isMinCellWidthTable)(table.node)) {
167
+ var widths = new Array(noOfColumns).fill(_styles.tableCellMinWidth);
168
+ var cols = widths.map(function (width, index) {
169
+ return {
170
+ width: _styles.tableCellMinWidth,
171
+ minWidth: _styles.tableCellMinWidth,
172
+ index: index
173
+ };
174
+ });
175
+ var overflow = tableWidth > maxSize;
176
+ var minWidthResizeState = {
177
+ cols: cols,
178
+ widths: widths,
179
+ maxSize: maxSize,
180
+ tableWidth: tableWidth,
181
+ overflow: overflow
182
+ };
183
+ return updateColumnWidths(minWidthResizeState, table.node, table.start)(tr);
184
+ }
175
185
  var resizeState = (0, _resizeState.getResizeState)({
176
186
  minWidth: _styles.tableCellMinWidth,
177
187
  table: table.node,
@@ -181,16 +191,15 @@ var rescaleColumns = function rescaleColumns(getEditorContainerWidth) {
181
191
  maxSize: maxSize
182
192
  });
183
193
  var previousTableWidth = resizeState.tableWidth - _styles.tableNewColumnMinWidth;
184
- var tableDidntPreviouslyOverflow = previousTableWidth <= maxSize; // If the new table width will result in the table going into an overflow state
185
- // we resize the cells to avoid the overflow occuring
194
+ var tableDidntPreviouslyOverflow = previousTableWidth <= Math.max(maxSize, tableMaxWidth);
186
195
 
196
+ // If the new table width will result in the table going into an overflow state
197
+ // we resize the cells to avoid the overflow occuring
187
198
  if (tableDidntPreviouslyOverflow && resizeState.overflow) {
188
199
  resizeState = (0, _scaleTable.scaleTableTo)(resizeState, maxSize);
189
200
  }
190
-
191
201
  return updateColumnWidths(resizeState, table.node, table.start)(tr);
192
202
  };
193
203
  };
194
204
  };
195
-
196
205
  exports.rescaleColumns = rescaleColumns;