@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
@@ -10,27 +10,25 @@
10
10
  * TODO: https://product-fabric.atlassian.net/browse/ED-12714
11
11
  *
12
12
  */
13
+
13
14
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
14
15
  import { PluginKey } from 'prosemirror-state';
15
16
  import rafSchedule from 'raf-schd';
16
17
  import { uuid } from '@atlaskit/adf-schema';
17
18
  import { stepAddsOneOf } from '@atlaskit/editor-common/utils';
18
19
  const pluginKey = new PluginKey('tableLocalIdPlugin');
19
-
20
20
  const getPluginState = state => state && pluginKey.getState(state);
21
+
21
22
  /**
22
23
  * Traverses a transaction's steps to see if we're inserting any tables
23
24
  */
24
-
25
-
26
25
  const checkIsAddingTable = (transaction, nodeType) => {
27
26
  return transaction.steps.some(step => stepAddsOneOf(step, new Set([nodeType])));
28
27
  };
28
+
29
29
  /**
30
30
  * Ensures uniqueness of `localId`s on tables being created or edited
31
31
  */
32
-
33
-
34
32
  const createPlugin = dispatch => new SafePlugin({
35
33
  key: pluginKey,
36
34
  state: {
@@ -39,28 +37,24 @@ const createPlugin = dispatch => new SafePlugin({
39
37
  parsedForLocalIds: false
40
38
  };
41
39
  },
42
-
43
40
  apply(tr, pluginState) {
44
41
  const meta = tr.getMeta(pluginKey);
45
-
46
42
  if (meta) {
47
43
  const keys = Object.keys(meta);
48
44
  const changed = keys.some(key => {
49
45
  return pluginState[key] !== meta[key];
50
46
  });
51
-
52
47
  if (changed) {
53
- const newState = { ...pluginState,
48
+ const newState = {
49
+ ...pluginState,
54
50
  ...meta
55
51
  };
56
52
  dispatch(pluginKey, newState);
57
53
  return newState;
58
54
  }
59
55
  }
60
-
61
56
  return pluginState;
62
57
  }
63
-
64
58
  },
65
59
  view: () => {
66
60
  return {
@@ -86,17 +80,13 @@ const createPlugin = dispatch => new SafePlugin({
86
80
  state
87
81
  } = editorView;
88
82
  const pluginState = getPluginState(state);
89
-
90
83
  if (!pluginState) {
91
84
  return;
92
85
  }
93
-
94
86
  const parsed = pluginState.parsedForLocalIds;
95
-
96
87
  if (parsed) {
97
88
  return;
98
89
  }
99
-
100
90
  const {
101
91
  table
102
92
  } = state.schema.nodes;
@@ -106,10 +96,10 @@ const createPlugin = dispatch => new SafePlugin({
106
96
  editorView.state.doc.descendants((node, pos) => {
107
97
  const isTable = node.type === table;
108
98
  const localId = node.attrs.localId;
109
-
110
99
  if (isTable && !localId) {
111
100
  tableIdWasAdded = true;
112
- tr.setNodeMarkup(pos, undefined, { ...node.attrs,
101
+ tr.setNodeMarkup(pos, undefined, {
102
+ ...node.attrs,
113
103
  localId: uuid.generate()
114
104
  });
115
105
  return false;
@@ -118,11 +108,8 @@ const createPlugin = dispatch => new SafePlugin({
118
108
  * Otherwise continue traversing, we can encounter tables nested in
119
109
  * expands/bodiedExtensions
120
110
  */
121
-
122
-
123
111
  return true;
124
112
  });
125
-
126
113
  if (tableIdWasAdded) {
127
114
  tr.setMeta('addToHistory', false);
128
115
  editorView.dispatch(tr);
@@ -132,7 +119,6 @@ const createPlugin = dispatch => new SafePlugin({
132
119
  parsedForLocalIds: true
133
120
  }));
134
121
  }
135
-
136
122
  };
137
123
  },
138
124
  appendTransaction: (transactions, _oldState, newState) => {
@@ -145,57 +131,52 @@ const createPlugin = dispatch => new SafePlugin({
145
131
  transactions.forEach(transaction => {
146
132
  if (!transaction.docChanged) {
147
133
  return;
148
- } // Don't interfere with cut as it clashes with fixTables & we don't need
149
- // to handle any extra cut cases in this plugin
150
-
134
+ }
151
135
 
136
+ // Don't interfere with cut as it clashes with fixTables & we don't need
137
+ // to handle any extra cut cases in this plugin
152
138
  const uiEvent = transaction.getMeta('uiEvent');
153
-
154
139
  if (uiEvent === 'cut') {
155
140
  return;
156
141
  }
157
- /** Check if we're actually inserting a table, otherwise we can ignore this tr */
158
-
159
142
 
143
+ /** Check if we're actually inserting a table, otherwise we can ignore this tr */
160
144
  const isAddingTable = checkIsAddingTable(transaction, table);
161
-
162
145
  if (!isAddingTable) {
163
146
  return;
164
- } // Can't simply look at changed nodes, as we could be adding a table
165
-
147
+ }
166
148
 
149
+ // Can't simply look at changed nodes, as we could be adding a table
167
150
  newState.doc.descendants((node, pos) => {
168
151
  const isTable = node.type === table;
169
- const localId = node.attrs.localId; // Dealing with a table - make sure it's a unique ID
152
+ const localId = node.attrs.localId;
170
153
 
154
+ // Dealing with a table - make sure it's a unique ID
171
155
  if (isTable) {
172
156
  if (localId && !idsObserved.has(localId)) {
173
- idsObserved.add(localId); // Also add a localId if it happens to not have one,
157
+ idsObserved.add(localId);
158
+ // Also add a localId if it happens to not have one,
174
159
  } else if (!localId || idsObserved.has(localId)) {
175
160
  modified = true;
176
- tr.setNodeMarkup(pos, undefined, { ...node.attrs,
161
+ tr.setNodeMarkup(pos, undefined, {
162
+ ...node.attrs,
177
163
  localId: uuid.generate()
178
164
  });
179
165
  }
180
-
181
166
  return false;
182
167
  }
168
+
183
169
  /**
184
170
  * Otherwise continue traversing, we can encounter tables nested in
185
171
  * expands/bodiedExtensions
186
172
  */
187
-
188
-
189
173
  return true;
190
174
  });
191
175
  });
192
-
193
176
  if (modified) {
194
177
  return tr;
195
178
  }
196
-
197
179
  return;
198
180
  }
199
181
  });
200
-
201
182
  export { createPlugin };
@@ -7,45 +7,40 @@ export const scaleTable = (tableRef, options, domAtPos) => (state, dispatch) =>
7
7
  if (!tableRef) {
8
8
  return false;
9
9
  }
10
-
11
10
  const {
12
11
  node,
13
12
  start,
14
13
  parentWidth
15
- } = options; // If a table has not been resized yet, columns should be auto.
14
+ } = options;
16
15
 
16
+ // If a table has not been resized yet, columns should be auto.
17
17
  if (hasTableBeenResized(node) === false) {
18
18
  // If its not a re-sized table, we still want to re-create cols
19
19
  // To force reflow of columns upon delete.
20
20
  recreateResizeColsByNode(tableRef, node);
21
21
  return false;
22
22
  }
23
-
24
23
  let resizeState;
25
-
26
24
  if (parentWidth) {
27
25
  resizeState = scaleWithParent(tableRef, parentWidth, node, start, domAtPos);
28
26
  } else {
29
27
  resizeState = scale(tableRef, options, domAtPos);
30
28
  }
31
-
32
29
  if (resizeState) {
33
30
  let {
34
31
  tr
35
32
  } = state;
36
33
  tr = updateColumnWidths(resizeState, node, start)(tr);
37
-
38
34
  if (tr.docChanged && dispatch) {
39
- tr.setMeta('scrollIntoView', false); // TODO: ED-8995
35
+ tr.setMeta('scrollIntoView', false);
36
+ // TODO: ED-8995
40
37
  // We need to do this check to reduce the number of race conditions when working with tables.
41
38
  // This metadata is been used in the sendTransaction function in the Collab plugin
42
-
43
39
  tr.setMeta('scaleTable', true);
44
40
  dispatch(tr);
45
41
  return true;
46
42
  }
47
43
  }
48
-
49
44
  return false;
50
45
  };
51
46
  export const evenColumns = ({
@@ -56,21 +51,19 @@ export const evenColumns = ({
56
51
  }) => (state, dispatch) => {
57
52
  if (!isTableSelected(state.selection)) {
58
53
  return false;
59
- } // double click detection logic
60
- // Note: ProseMirror's handleDoubleClick doesn't quite work with DOM mousedown event handler
61
-
54
+ }
62
55
 
56
+ // double click detection logic
57
+ // Note: ProseMirror's handleDoubleClick doesn't quite work with DOM mousedown event handler
63
58
  const {
64
59
  lastClick
65
60
  } = getPluginState(state);
66
61
  const now = Date.now();
67
-
68
62
  if (lastClick && now - lastClick.time < 500 && isClickNear(event, lastClick)) {
69
63
  const newState = evenAllColumnsWidths(resizeState);
70
64
  setLastClick(null, tr => updateColumnWidths(newState, table, start)(tr))(state, dispatch);
71
65
  return true;
72
66
  }
73
-
74
67
  setLastClick({
75
68
  x: event.clientX,
76
69
  y: event.clientY,
@@ -83,7 +76,6 @@ export const distributeColumnsWidths = (newResizeState, table) => (state, dispat
83
76
  const tr = updateColumnWidths(newResizeState, table.node, table.start)(state.tr);
84
77
  stopResizing(tr)(state, dispatch);
85
78
  }
86
-
87
79
  return true;
88
80
  };
89
81
  export const setResizeHandlePos = resizeHandlePos => createCommand({
@@ -16,11 +16,9 @@ export const handleMouseDown = (view, event, localResizeHandlePos, getEditorCont
16
16
  } = view;
17
17
  const editorDisabled = !view.editable;
18
18
  const domAtPos = view.domAtPos.bind(view);
19
-
20
19
  if (editorDisabled || localResizeHandlePos === null || !pointsAtCell(state.doc.resolve(localResizeHandlePos))) {
21
20
  return false;
22
21
  }
23
-
24
22
  event.preventDefault();
25
23
  const mouseDownTime = event.timeStamp;
26
24
  const cell = state.doc.nodeAt(localResizeHandlePos);
@@ -28,19 +26,15 @@ export const handleMouseDown = (view, event, localResizeHandlePos, getEditorCont
28
26
  const originalTable = $cell.node(-1);
29
27
  const start = $cell.start(-1);
30
28
  let dom = domAtPos(start).node;
31
-
32
29
  if (dom && dom.nodeName !== 'TABLE') {
33
30
  dom = dom.closest('table');
34
31
  }
35
-
36
32
  const containerWidth = getEditorContainerWidth();
37
33
  const parentWidth = getParentNodeWidth(start, state, containerWidth);
38
34
  let maxSize = parentWidth || getLayoutSize(dom.getAttribute('data-layout'), containerWidth.width, {});
39
-
40
35
  if (originalTable.attrs.isNumberColumnEnabled) {
41
36
  maxSize -= akEditorTableNumberColumnWidth;
42
37
  }
43
-
44
38
  const resizeState = getResizeState({
45
39
  minWidth: tableCellMinWidth,
46
40
  maxSize,
@@ -49,7 +43,6 @@ export const handleMouseDown = (view, event, localResizeHandlePos, getEditorCont
49
43
  start,
50
44
  domAtPos
51
45
  });
52
-
53
46
  if (evenColumns({
54
47
  resizeState,
55
48
  table: originalTable,
@@ -59,13 +52,11 @@ export const handleMouseDown = (view, event, localResizeHandlePos, getEditorCont
59
52
  finish(event);
60
53
  return true;
61
54
  }
62
-
63
55
  const width = currentColWidth(view, localResizeHandlePos, cell.attrs);
64
56
  setDragging({
65
57
  startX: event.clientX,
66
58
  startWidth: width
67
59
  })(state, dispatch);
68
-
69
60
  function finish(event) {
70
61
  window.removeEventListener('mouseup', finish);
71
62
  window.removeEventListener('mousemove', move);
@@ -80,46 +71,42 @@ export const handleMouseDown = (view, event, localResizeHandlePos, getEditorCont
80
71
  dragging,
81
72
  resizeHandlePos
82
73
  } = getPluginState(state);
83
-
84
74
  if (resizeHandlePos === null) {
85
75
  return stopResizing()(state, dispatch);
86
76
  }
87
-
88
77
  if (!pointsAtCell(state.doc.resolve(resizeHandlePos))) {
89
78
  return;
90
- } // resizeHandlePos could be remapped via a collab change.
79
+ }
80
+ // resizeHandlePos could be remapped via a collab change.
91
81
  // Fetch a fresh reference of the table.
92
-
93
-
94
82
  const $cell = state.doc.resolve(resizeHandlePos);
95
83
  const start = $cell.start(-1);
96
- const table = $cell.node(-1); // If we let go in the same place we started, dont need to do anything.
84
+ const table = $cell.node(-1);
97
85
 
86
+ // If we let go in the same place we started, dont need to do anything.
98
87
  if (dragging && clientX === dragging.startX) {
99
88
  return stopResizing()(state, dispatch);
100
89
  }
101
-
102
90
  let {
103
91
  tr
104
92
  } = state;
105
-
106
93
  if (dragging) {
107
94
  const {
108
95
  startX
109
- } = dragging; // If the table has changed (via collab for example) don't apply column widths
96
+ } = dragging;
97
+
98
+ // If the table has changed (via collab for example) don't apply column widths
110
99
  // For example, if a table col is deleted we won't be able to reliably remap the new widths
111
100
  // There may be a more elegant solution to this, to avoid a jarring experience.
112
-
113
101
  if (table.eq(originalTable)) {
114
102
  const map = TableMap.get(table);
115
103
  const colIndex = map.colCount($cell.pos - start) + ($cell.nodeAfter ? $cell.nodeAfter.attrs.colspan : 1) - 1;
116
104
  const selectionRect = getSelectionRect(state.selection);
117
- const selectedColumns = selectionRect ? getSelectedColumnIndexes(selectionRect) : []; // only selected (or selected - 1) columns should be distributed
118
-
105
+ const selectedColumns = selectionRect ? getSelectedColumnIndexes(selectionRect) : [];
106
+ // only selected (or selected - 1) columns should be distributed
119
107
  const resizingSelectedColumns = selectedColumns.indexOf(colIndex) > -1 || selectedColumns.indexOf(colIndex + 1) > -1;
120
108
  const newResizeState = resizeColumn(resizeState, colIndex, clientX - startX, dom, resizingSelectedColumns ? selectedColumns : undefined);
121
109
  tr = updateColumnWidths(newResizeState, table, start)(tr);
122
-
123
110
  if (colIndex === map.width - 1) {
124
111
  const mouseUpTime = event.timeStamp;
125
112
  editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 ? void 0 : editorAnalyticsAPI.attachAnalyticsEvent({
@@ -136,11 +123,9 @@ export const handleMouseDown = (view, event, localResizeHandlePos, getEditorCont
136
123
  })(tr);
137
124
  }
138
125
  }
139
-
140
126
  return stopResizing(tr)(state, dispatch);
141
127
  }
142
128
  }
143
-
144
129
  function move(event) {
145
130
  const {
146
131
  clientX,
@@ -153,11 +138,9 @@ export const handleMouseDown = (view, event, localResizeHandlePos, getEditorCont
153
138
  dragging,
154
139
  resizeHandlePos
155
140
  } = getPluginState(state);
156
-
157
141
  if (!which || !dragging || resizeHandlePos === null || !pointsAtCell(state.doc.resolve(resizeHandlePos))) {
158
142
  return finish(event);
159
143
  }
160
-
161
144
  const $cell = state.doc.resolve(resizeHandlePos);
162
145
  const table = $cell.node(-1);
163
146
  const map = TableMap.get(table);
@@ -166,7 +149,6 @@ export const handleMouseDown = (view, event, localResizeHandlePos, getEditorCont
166
149
  updateControls(getEditorFeatureFlags)(state);
167
150
  updateResizeHandles(dom);
168
151
  }
169
-
170
152
  window.addEventListener('mouseup', finish);
171
153
  window.addEventListener('mousemove', move);
172
154
  return true;
@@ -1,17 +1,15 @@
1
1
  import { pluginFactory } from '@atlaskit/editor-common/utils';
2
2
  import { pluginKey } from './plugin-key';
3
3
  import reducer from './reducer';
4
-
5
4
  function mapping(tr, pluginState) {
6
5
  if (pluginState && pluginState.resizeHandlePos !== null) {
7
- return { ...pluginState,
6
+ return {
7
+ ...pluginState,
8
8
  resizeHandlePos: tr.mapping.map(pluginState.resizeHandlePos)
9
9
  };
10
10
  }
11
-
12
11
  return pluginState;
13
12
  }
14
-
15
13
  const factory = pluginFactory(pluginKey, reducer, {
16
14
  mapping
17
15
  });
@@ -27,18 +27,17 @@ export function createPlugin(dispatch, {
27
27
  })
28
28
  };
29
29
  },
30
-
31
30
  handleDOMEvents: {
32
31
  mousedown(view, event) {
33
32
  const {
34
33
  state
35
34
  } = view;
36
- const resizeHandlePos = // we're setting `resizeHandlePos` via command in unit tests
35
+ const resizeHandlePos =
36
+ // we're setting `resizeHandlePos` via command in unit tests
37
37
  getPluginState(state).resizeHandlePos || getResizeCellPos(view, event, lastColumnResizable);
38
38
  const {
39
39
  dragging
40
40
  } = getPluginState(state);
41
-
42
41
  if (resizeHandlePos !== null && !dragging) {
43
42
  if (handleMouseDown(view, event, resizeHandlePos, getEditorContainerWidth, getEditorFeatureFlags, editorAnalyticsAPI)) {
44
43
  const {
@@ -48,10 +47,8 @@ export function createPlugin(dispatch, {
48
47
  return setResizeHandlePos(resizeHandlePos)(state, dispatch);
49
48
  }
50
49
  }
51
-
52
50
  return false;
53
51
  }
54
-
55
52
  }
56
53
  }
57
54
  });
@@ -1,30 +1,30 @@
1
1
  export default ((pluginState, action) => {
2
2
  switch (action.type) {
3
3
  case 'STOP_RESIZING':
4
- return { ...pluginState,
4
+ return {
5
+ ...pluginState,
5
6
  resizeHandlePos: null,
6
7
  dragging: null
7
8
  };
8
-
9
9
  case 'SET_RESIZE_HANDLE_POSITION':
10
- return { ...pluginState,
10
+ return {
11
+ ...pluginState,
11
12
  resizeHandlePos: action.data.resizeHandlePos
12
13
  };
13
-
14
14
  case 'SET_DRAGGING':
15
- return { ...pluginState,
15
+ return {
16
+ ...pluginState,
16
17
  dragging: action.data.dragging
17
18
  };
18
-
19
19
  case 'SET_LAST_CLICK':
20
20
  const {
21
21
  lastClick
22
22
  } = action.data;
23
- return { ...pluginState,
23
+ return {
24
+ ...pluginState,
24
25
  lastClick,
25
26
  resizeHandlePos: lastClick ? pluginState.resizeHandlePos : null
26
27
  };
27
-
28
28
  default:
29
29
  return pluginState;
30
30
  }
@@ -4,7 +4,6 @@ export const generateColgroup = table => {
4
4
  const cols = [];
5
5
  table.content.firstChild.content.forEach(cell => {
6
6
  const colspan = cell.attrs.colspan || 1;
7
-
8
7
  if (Array.isArray(cell.attrs.colwidth)) {
9
8
  // We slice here to guard against our colwidth array having more entries
10
9
  // Than the we actually span. We'll patch the document at a later point.
@@ -26,11 +25,9 @@ export const generateColgroup = table => {
26
25
  };
27
26
  export const insertColgroupFromNode = (tableRef, table) => {
28
27
  let colgroup = tableRef.querySelector('colgroup');
29
-
30
28
  if (colgroup) {
31
29
  tableRef.removeChild(colgroup);
32
30
  }
33
-
34
31
  colgroup = renderColgroupFromNode(table);
35
32
  tableRef.insertBefore(colgroup, tableRef.firstChild);
36
33
  return colgroup.children;
@@ -38,7 +35,6 @@ export const insertColgroupFromNode = (tableRef, table) => {
38
35
  export const hasTableBeenResized = table => {
39
36
  return !!getFragmentBackingArray(table.content.firstChild.content).find(cell => cell.attrs.colwidth);
40
37
  };
41
-
42
38
  function renderColgroupFromNode(table) {
43
39
  const rendered = DOMSerializer.renderSpec(document, ['colgroup', {}, ...generateColgroup(table)]);
44
40
  return rendered.dom;
@@ -6,7 +6,8 @@ import { unitToNumber } from './unit-to-number';
6
6
  // Reads `width` and `minWidth` of each column from DOM and returns `ColumnState` containing those values
7
7
  export const getColumnStateFromDOM = (cells, index, minWidth) => {
8
8
  const width = calculateColumnWidth(cells, calculateColumnWidthCallback);
9
- const minColumnWidth = width < minWidth ? // for newly created column (where width < minWidth) we set minWidth = tableNewColumnMinWidth (140px atm)
9
+ const minColumnWidth = width < minWidth ?
10
+ // for newly created column (where width < minWidth) we set minWidth = tableNewColumnMinWidth (140px atm)
10
11
  tableNewColumnMinWidth : calculateColumnWidth(cells, calculateColumnMinWidthCallback(minWidth));
11
12
  return {
12
13
  index,
@@ -16,8 +17,9 @@ export const getColumnStateFromDOM = (cells, index, minWidth) => {
16
17
  };
17
18
  export const getFreeSpace = state => {
18
19
  return Math.max(state.width - state.minWidth, 0);
19
- }; // Returns DOM refs of all cells in a column by `columnIndex`
20
+ };
20
21
 
22
+ // Returns DOM refs of all cells in a column by `columnIndex`
21
23
  export const getCellsRefsInColumn = (columnIndex, table, tableStart, domAtPos) => {
22
24
  const map = TableMap.get(table);
23
25
  const cellsPositions = map.cellsInRect({
@@ -29,26 +31,24 @@ export const getCellsRefsInColumn = (columnIndex, table, tableStart, domAtPos) =
29
31
  const cells = [];
30
32
  cellsPositions.forEach(pos => {
31
33
  const col = findDomRefAtPos(pos + tableStart, domAtPos);
32
-
33
34
  if (col) {
34
35
  cells.push(col);
35
36
  }
36
37
  });
37
38
  return cells;
38
- }; // calculates column widths based on `cells` DOM refs
39
+ };
39
40
 
41
+ // calculates column widths based on `cells` DOM refs
40
42
  export const calculateColumnWidth = (cells, calculateColumnWidthCb) => {
41
43
  let maxColWidth = 0;
42
44
  let colSpanWidth = 0;
43
45
  cells.forEach(cellRef => {
44
46
  const css = getComputedStyle(cellRef);
45
47
  const colspan = Number(cellRef.getAttribute('colspan') || 1);
46
-
47
48
  if (colspan > 1) {
48
49
  colSpanWidth = calculateColumnWidthCb(css, cellRef, colspan);
49
50
  return;
50
51
  }
51
-
52
52
  if (css) {
53
53
  const colWidth = calculateColumnWidthCb(css, cellRef, colspan);
54
54
  maxColWidth = Math.max(colWidth, maxColWidth);
@@ -57,22 +57,19 @@ export const calculateColumnWidth = (cells, calculateColumnWidthCb) => {
57
57
  return maxColWidth || colSpanWidth;
58
58
  };
59
59
  export const addContainerLeftRightPadding = (amount, css) => amount + unitToNumber(css.paddingLeft) + unitToNumber(css.paddingRight);
60
-
61
60
  function calculateColumnWidthCallback(css) {
62
61
  return unitToNumber(css.width);
63
62
  }
64
-
65
63
  function calculateColumnMinWidthCallback(minColumnWidth) {
66
64
  return (css, cellRef, colSpan) => {
67
65
  if (colSpan && colSpan > 1) {
68
66
  return unitToNumber(css.width);
69
67
  }
70
-
71
68
  const {
72
69
  minWidth: minContentWidth
73
- } = contentWidth(cellRef, cellRef); // Override the min width, if there is content that can't collapse
70
+ } = contentWidth(cellRef, cellRef);
71
+ // Override the min width, if there is content that can't collapse
74
72
  // Past a certain width.
75
-
76
73
  return Math.max(addContainerLeftRightPadding(minContentWidth, css), minContentWidth, minColumnWidth);
77
74
  };
78
75
  }