@atlaskit/editor-plugin-table 0.0.10 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/.eslintrc.js +35 -0
  2. package/CHANGELOG.md +31 -0
  3. package/commands/package.json +14 -0
  4. package/dist/cjs/plugins/table/commands/hover.js +4 -4
  5. package/dist/cjs/plugins/table/commands-with-analytics.js +59 -58
  6. package/dist/cjs/plugins/table/event-handlers.js +0 -1
  7. package/dist/cjs/plugins/table/index.js +54 -37
  8. package/dist/cjs/plugins/table/pm-plugins/table-resizing/index.js +9 -1
  9. package/dist/cjs/plugins/table/toolbar.js +150 -22
  10. package/dist/cjs/plugins/table/transforms/fix-tables.js +7 -7
  11. package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +1 -2
  12. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +4 -6
  13. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/index.js +2 -1
  14. package/dist/cjs/plugins/table/ui/LayoutButton/index.js +3 -5
  15. package/dist/cjs/plugins/table/ui/TableFloatingControls/CornerControls/index.js +2 -1
  16. package/dist/cjs/plugins/table/utils/column-controls.js +0 -1
  17. package/dist/cjs/plugins/table/utils/decoration.js +53 -4
  18. package/dist/cjs/plugins/table/utils/dom.js +0 -2
  19. package/dist/cjs/plugins/table/utils/paste.js +0 -1
  20. package/dist/cjs/version.json +1 -1
  21. package/dist/es2019/plugins/table/commands/hover.js +4 -4
  22. package/dist/es2019/plugins/table/commands-with-analytics.js +6 -9
  23. package/dist/es2019/plugins/table/event-handlers.js +1 -2
  24. package/dist/es2019/plugins/table/handlers.js +1 -2
  25. package/dist/es2019/plugins/table/index.js +23 -5
  26. package/dist/es2019/plugins/table/pm-plugins/keymap.js +1 -1
  27. package/dist/es2019/plugins/table/pm-plugins/table-local-id.js +1 -3
  28. package/dist/es2019/plugins/table/pm-plugins/table-resizing/index.js +2 -1
  29. package/dist/es2019/plugins/table/toolbar.js +133 -16
  30. package/dist/es2019/plugins/table/transforms/fix-tables.js +2 -4
  31. package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +1 -2
  32. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +4 -6
  33. package/dist/es2019/plugins/table/ui/FloatingDeleteButton/index.js +3 -3
  34. package/dist/es2019/plugins/table/ui/FloatingInsertButton/index.js +1 -2
  35. package/dist/es2019/plugins/table/ui/LayoutButton/index.js +3 -5
  36. package/dist/es2019/plugins/table/ui/TableFloatingControls/CornerControls/index.js +2 -1
  37. package/dist/es2019/plugins/table/utils/column-controls.js +0 -1
  38. package/dist/es2019/plugins/table/utils/decoration.js +60 -25
  39. package/dist/es2019/plugins/table/utils/dom.js +0 -2
  40. package/dist/es2019/plugins/table/utils/paste.js +1 -2
  41. package/dist/es2019/plugins/table/utils/row-controls.js +1 -2
  42. package/dist/es2019/version.json +1 -1
  43. package/dist/esm/plugins/table/commands/hover.js +4 -4
  44. package/dist/esm/plugins/table/commands-with-analytics.js +56 -55
  45. package/dist/esm/plugins/table/event-handlers.js +1 -2
  46. package/dist/esm/plugins/table/handlers.js +1 -2
  47. package/dist/esm/plugins/table/index.js +55 -38
  48. package/dist/esm/plugins/table/pm-plugins/keymap.js +1 -1
  49. package/dist/esm/plugins/table/pm-plugins/table-local-id.js +1 -3
  50. package/dist/esm/plugins/table/pm-plugins/table-resizing/index.js +2 -1
  51. package/dist/esm/plugins/table/toolbar.js +139 -17
  52. package/dist/esm/plugins/table/transforms/fix-tables.js +2 -4
  53. package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +1 -2
  54. package/dist/esm/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +4 -6
  55. package/dist/esm/plugins/table/ui/FloatingDeleteButton/index.js +3 -3
  56. package/dist/esm/plugins/table/ui/FloatingInsertButton/index.js +1 -2
  57. package/dist/esm/plugins/table/ui/LayoutButton/index.js +3 -5
  58. package/dist/esm/plugins/table/ui/TableFloatingControls/CornerControls/index.js +2 -1
  59. package/dist/esm/plugins/table/utils/column-controls.js +0 -1
  60. package/dist/esm/plugins/table/utils/decoration.js +50 -4
  61. package/dist/esm/plugins/table/utils/dom.js +0 -2
  62. package/dist/esm/plugins/table/utils/paste.js +1 -2
  63. package/dist/esm/plugins/table/utils/row-controls.js +1 -2
  64. package/dist/esm/version.json +1 -1
  65. package/dist/types/plugins/table/commands-with-analytics.d.ts +5 -5
  66. package/dist/types/plugins/table/pm-plugins/table-resizing/index.d.ts +1 -0
  67. package/dist/types/plugins/table/toolbar.d.ts +2 -2
  68. package/dist/types/plugins/table/transforms/fix-tables.d.ts +1 -1
  69. package/dist/types/plugins/table/utils/decoration.d.ts +1 -1
  70. package/examples/99-testing.tsx +35 -30
  71. package/examples/config.jsonc +14 -0
  72. package/package.json +14 -19
  73. package/plugin-key/package.json +14 -0
  74. package/report.api.md +1 -1
  75. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/auto-size-documents.ts +5 -10
  76. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/basic-table.ts +0 -0
  77. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/empty-paragraph-underneath-table.ts +0 -0
  78. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/even-columns.ts +0 -0
  79. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/layout-documents.ts +1 -2
  80. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/merged-rows-and-cols-document.ts +0 -0
  81. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/nested-in-extension.ts +0 -0
  82. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/paragraph-and-table-adf.json +0 -0
  83. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/resize-documents.ts +5 -10
  84. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/scale.ts +0 -0
  85. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/table-inside-layout.ts +0 -0
  86. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/table-with-min-width-columns-document.ts +0 -0
  87. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/table-with-multiline-date.adf.json +0 -0
  88. package/src/{plugins/table/__tests__ → __tests__}/integration/__fixtures__/table-with-text-and-empty-row.ts +0 -0
  89. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/auto-size.ts.snap +0 -0
  90. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/change-date-inside-table.ts.snap +0 -0
  91. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/copy-button.ts.snap +0 -0
  92. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/delete-columns.ts.snap +0 -0
  93. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/delete-last-column-in-full-width.ts.snap +0 -0
  94. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/delete-last-column-with-empty-action.ts.snap +0 -0
  95. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/delete-last-row-with-empty-action.ts.snap +0 -0
  96. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/delete-rows.ts.snap +0 -0
  97. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/delete-table-when-selected.ts.snap +0 -0
  98. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/deleting-empty-paragraph-under-table.ts.snap +0 -0
  99. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/even-columns.ts.snap +0 -0
  100. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/insert-cell-header-with-strong-mark.ts.snap +0 -0
  101. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/insert-row-inside-layout.ts.snap +0 -0
  102. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/layout.ts.snap +0 -0
  103. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/resize.ts.snap +0 -0
  104. package/src/{plugins/table/__tests__ → __tests__}/integration/__snapshots__/scale.ts.snap +0 -0
  105. package/src/{plugins/table/__tests__ → __tests__}/integration/arrow-down-into-table.ts +0 -0
  106. package/src/{plugins/table/__tests__ → __tests__}/integration/auto-size.ts +0 -0
  107. package/src/{plugins/table/__tests__ → __tests__}/integration/block-node-selection.ts +1 -0
  108. package/src/{plugins/table/__tests__ → __tests__}/integration/cell-selection.ts +0 -0
  109. package/src/{plugins/table/__tests__ → __tests__}/integration/change-date-inside-table.ts +0 -0
  110. package/src/{plugins/table/__tests__ → __tests__}/integration/copy-button.ts +1 -1
  111. package/src/{plugins/table/__tests__ → __tests__}/integration/delete-columns.ts +2 -2
  112. package/src/{plugins/table/__tests__ → __tests__}/integration/delete-last-column-in-full-width.ts +1 -1
  113. package/src/{plugins/table/__tests__ → __tests__}/integration/delete-last-column-with-empty-action.ts +1 -1
  114. package/src/{plugins/table/__tests__ → __tests__}/integration/delete-last-row-with-empty-action.ts +1 -1
  115. package/src/{plugins/table/__tests__ → __tests__}/integration/delete-rows.ts +2 -2
  116. package/src/{plugins/table/__tests__ → __tests__}/integration/delete-table-when-selected.ts +0 -0
  117. package/src/{plugins/table/__tests__ → __tests__}/integration/deleting-empty-paragraph-under-table.ts +0 -0
  118. package/src/{plugins/table/__tests__ → __tests__}/integration/even-columns.ts +0 -0
  119. package/src/{plugins/table/__tests__ → __tests__}/integration/insert-cell-header-with-strong-mark.ts +0 -0
  120. package/src/{plugins/table/__tests__ → __tests__}/integration/insert-long-smart-link.ts +1 -0
  121. package/src/{plugins/table/__tests__ → __tests__}/integration/insert-row-inside-layout.ts +0 -0
  122. package/src/{plugins/table/__tests__ → __tests__}/integration/layout.ts +0 -0
  123. package/src/{plugins/table/__tests__ → __tests__}/integration/resize-handler.ts +0 -0
  124. package/src/{plugins/table/__tests__ → __tests__}/integration/resize.ts +2 -3
  125. package/src/{plugins/table/__tests__ → __tests__}/integration/scale.ts +0 -0
  126. package/src/__tests__/integration/table-controls-selection.ts +71 -0
  127. package/src/__tests__/unit/analytics.ts +41 -41
  128. package/src/__tests__/unit/collab.ts +12 -9
  129. package/src/{plugins/table/__tests__ → __tests__}/unit/commands/go-to-next-cell.ts +4 -4
  130. package/src/{plugins/table/__tests__ → __tests__}/unit/commands/insert.ts +4 -4
  131. package/src/{plugins/table/__tests__ → __tests__}/unit/commands/misc.ts +12 -6
  132. package/src/__tests__/unit/commands/sort.ts +28 -28
  133. package/src/{plugins/table/__tests__ → __tests__}/unit/commands.ts +7 -7
  134. package/src/__tests__/unit/copy-button.ts +22 -0
  135. package/src/__tests__/unit/copy-paste.ts +6 -8
  136. package/src/__tests__/unit/event-handlers.ts +127 -11
  137. package/src/__tests__/unit/fix-tables.ts +17 -23
  138. package/src/{plugins/table/__tests__ → __tests__}/unit/get-toolbar-config.ts +8 -8
  139. package/src/__tests__/unit/hover-selection.ts +1 -66
  140. package/src/__tests__/unit/index-with-fake-timers.ts +1 -1
  141. package/src/__tests__/unit/index.ts +5 -5
  142. package/src/{plugins/table/__tests__ → __tests__}/unit/nodeviews/OverflowShadowsObserver.ts +2 -2
  143. package/src/__tests__/unit/nodeviews/TableComponent.tsx +181 -0
  144. package/src/__tests__/unit/nodeviews/cell.ts +12 -10
  145. package/src/{plugins/table/__tests__ → __tests__}/unit/nodeviews/table.ts +29 -30
  146. package/src/{plugins/table/__tests__ → __tests__}/unit/pm-plugins/decorations/column-controls.ts +2 -2
  147. package/src/{plugins/table/__tests__ → __tests__}/unit/pm-plugins/decorations/column-resizing.ts +9 -6
  148. package/src/{plugins/table/__tests__ → __tests__}/unit/pm-plugins/decorations/plugin.ts +5 -5
  149. package/src/{plugins/table/__tests__ → __tests__}/unit/pm-plugins/main-with-allow-collapse.ts +4 -4
  150. package/src/{plugins/table/__tests__ → __tests__}/unit/pm-plugins/main.ts +6 -6
  151. package/src/{plugins/table/__tests__ → __tests__}/unit/pm-plugins/safari-delete-composition-text-issue-workaround.ts +12 -9
  152. package/src/{plugins/table/__tests__ → __tests__}/unit/pm-plugins/sticky-headers/tableRow.tsx +27 -25
  153. package/src/{plugins/table/__tests__ → __tests__}/unit/pm-plugins/table-local-id.ts +3 -6
  154. package/src/{plugins/table/__tests__ → __tests__}/unit/pm-plugins/table-resizing/colgroup.ts +1 -1
  155. package/src/{plugins/table/__tests__ → __tests__}/unit/pm-plugins/table-resizing/event-handlers.ts +3 -3
  156. package/src/{plugins/table/__tests__ → __tests__}/unit/pm-plugins/table-selection-keymap.ts +3 -3
  157. package/src/{plugins/table/__tests__ → __tests__}/unit/toolbar.ts +23 -14
  158. package/src/__tests__/unit/ui/ContextualMenu.tsx +55 -0
  159. package/src/__tests__/unit/ui/CornerControls.tsx +7 -7
  160. package/src/__tests__/unit/ui/FloatingContextualButton.tsx +45 -49
  161. package/src/__tests__/unit/ui/FloatingContextualMenu.tsx +49 -0
  162. package/src/__tests__/unit/ui/FloatingDeleteButton.tsx +30 -2
  163. package/src/__tests__/unit/ui/FloatingInsertButton.tsx +143 -111
  164. package/src/__tests__/unit/ui/RowControls.tsx +112 -141
  165. package/src/__tests__/unit/ui/TableFloatingControls.tsx +18 -15
  166. package/src/__tests__/unit/undo-redo.ts +10 -9
  167. package/src/{plugins/table/__tests__ → __tests__}/unit/utils/collapse.ts +2 -2
  168. package/src/{plugins/table/__tests__ → __tests__}/unit/utils/column-controls.ts +1 -1
  169. package/src/__tests__/unit/utils/nodes.ts +8 -4
  170. package/src/__tests__/unit/utils/row-controls.ts +8 -4
  171. package/src/{plugins/table/__tests__ → __tests__}/visual-regression/__fixtures__/table-with-100-numbered-list-items.json +0 -0
  172. package/src/{plugins/table/__tests__ → __tests__}/visual-regression/__image_snapshots__/cell-options-menu-ts-table-cell-options-menu-delete-column-menu-item-should-remove-the-table-column-on-click-1-snap.png +0 -0
  173. package/src/{plugins/table/__tests__ → __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 +0 -0
  174. package/src/{plugins/table/__tests__ → __tests__}/visual-regression/__image_snapshots__/cell-options-menu-ts-table-cell-options-menu-delete-row-menu-item-should-remove-the-table-row-on-click-1-snap.png +0 -0
  175. package/src/{plugins/table/__tests__ → __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 +0 -0
  176. package/src/{plugins/table/__tests__ → __tests__}/visual-regression/__image_snapshots__/copy-button-ts-floating-toolbar-copy-button-table-target-node-displays-blue-border-when-copy-button-is-hovered-1-snap.png +0 -0
  177. package/src/{plugins/table/__tests__ → __tests__}/visual-regression/__image_snapshots__/index-ts-snapshot-test-table-numbered-list-should-not-overflow-table-cell-when-there-are-more-than-100-ordered-list-items-1-snap.png +0 -0
  178. package/src/{plugins/table/__tests__ → __tests__}/visual-regression/__image_snapshots__/index-ts-snapshot-test-table-numbered-list-should-not-overflow-table-cell-when-there-are-more-than-100-ordered-list-items-2-snap.png +0 -0
  179. package/src/{plugins/table/__tests__ → __tests__}/visual-regression/__image_snapshots__/index-ts-snapshot-test-table-numbered-list-should-not-overflow-table-cell-when-there-are-more-than-100-ordered-list-items-3-snap.png +0 -0
  180. package/src/{plugins/table/__tests__ → __tests__}/visual-regression/cell-options-menu.ts +2 -0
  181. package/src/__tests__/visual-regression/copy-button.ts +181 -0
  182. package/src/{plugins/table/__tests__ → __tests__}/visual-regression/index.ts +3 -1
  183. package/src/plugins/table/commands/clear.ts +30 -29
  184. package/src/plugins/table/commands/go-to-next-cell.ts +41 -38
  185. package/src/plugins/table/commands/hover.ts +4 -1
  186. package/src/plugins/table/commands/insert.ts +91 -91
  187. package/src/plugins/table/commands/misc.ts +123 -125
  188. package/src/plugins/table/commands/selection.ts +329 -319
  189. package/src/plugins/table/commands-with-analytics.ts +299 -290
  190. package/src/plugins/table/event-handlers.ts +111 -112
  191. package/src/plugins/table/handlers.ts +95 -95
  192. package/src/plugins/table/index.tsx +28 -2
  193. package/src/plugins/table/nodeviews/OverflowShadowsObserver.ts +4 -3
  194. package/src/plugins/table/nodeviews/TableComponent.tsx +6 -9
  195. package/src/plugins/table/nodeviews/update-overflow-shadows.ts +39 -39
  196. package/src/plugins/table/pm-plugins/decorations/utils/column-controls.ts +7 -9
  197. package/src/plugins/table/pm-plugins/decorations/utils/column-resizing.ts +30 -30
  198. package/src/plugins/table/pm-plugins/decorations/utils/compose-decorations.ts +7 -7
  199. package/src/plugins/table/pm-plugins/keymap.ts +1 -1
  200. package/src/plugins/table/pm-plugins/plugin-factory.ts +33 -33
  201. package/src/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.ts +6 -9
  202. package/src/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.ts +3 -2
  203. package/src/plugins/table/pm-plugins/table-local-id.ts +0 -2
  204. package/src/plugins/table/pm-plugins/table-resizing/commands.ts +98 -90
  205. package/src/plugins/table/pm-plugins/table-resizing/index.ts +1 -0
  206. package/src/plugins/table/pm-plugins/table-resizing/utils/dom.ts +46 -47
  207. package/src/plugins/table/{toolbar.ts → toolbar.tsx} +276 -101
  208. package/src/plugins/table/transforms/column-width.ts +143 -146
  209. package/src/plugins/table/transforms/delete-columns.ts +144 -142
  210. package/src/plugins/table/transforms/delete-rows.ts +110 -111
  211. package/src/plugins/table/transforms/fix-tables.ts +2 -3
  212. package/src/plugins/table/transforms/metadata.ts +9 -9
  213. package/src/plugins/table/ui/FloatingContextualButton/index.tsx +0 -1
  214. package/src/plugins/table/ui/FloatingContextualMenu/ContextualMenu.tsx +20 -16
  215. package/src/plugins/table/ui/FloatingDeleteButton/index.tsx +3 -3
  216. package/src/plugins/table/ui/FloatingInsertButton/index.tsx +2 -6
  217. package/src/plugins/table/ui/LayoutButton/index.tsx +4 -10
  218. package/src/plugins/table/ui/TableFloatingControls/CornerControls/index.tsx +1 -0
  219. package/src/plugins/table/ui/common-styles.ts +1 -3
  220. package/src/plugins/table/utils/analytics.ts +24 -25
  221. package/src/plugins/table/utils/column-controls.ts +0 -1
  222. package/src/plugins/table/utils/decoration.ts +44 -5
  223. package/src/plugins/table/utils/dom.ts +3 -5
  224. package/src/plugins/table/utils/paste.ts +0 -1
  225. package/src/plugins/table/utils/row-controls.ts +92 -94
  226. package/types/package.json +5 -5
  227. package/ui/common-styles/package.json +14 -0
  228. package/ui/consts/package.json +14 -0
  229. package/dist/cjs/plugins/plugin-key.js +0 -17
  230. package/dist/cjs/plugins/table/todo-stubs.js +0 -10
  231. package/dist/cjs/types.js +0 -5
  232. package/dist/es2019/plugins/plugin-key.js +0 -3
  233. package/dist/es2019/plugins/table/todo-stubs.js +0 -1
  234. package/dist/es2019/types.js +0 -1
  235. package/dist/esm/plugins/plugin-key.js +0 -5
  236. package/dist/esm/plugins/table/todo-stubs.js +0 -1
  237. package/dist/esm/types.js +0 -1
  238. package/dist/types/plugins/plugin-key.d.ts +0 -4
  239. package/dist/types/plugins/table/todo-stubs.d.ts +0 -1
  240. package/dist/types/types.d.ts +0 -3
  241. package/dist/types-ts4.0/index.d.ts +0 -1
  242. package/dist/types-ts4.0/plugins/plugin-key.d.ts +0 -4
  243. package/dist/types-ts4.0/plugins/table/commands/clear.d.ts +0 -3
  244. package/dist/types-ts4.0/plugins/table/commands/collapse.d.ts +0 -2
  245. package/dist/types-ts4.0/plugins/table/commands/go-to-next-cell.d.ts +0 -4
  246. package/dist/types-ts4.0/plugins/table/commands/hover.d.ts +0 -8
  247. package/dist/types-ts4.0/plugins/table/commands/index.d.ts +0 -7
  248. package/dist/types-ts4.0/plugins/table/commands/insert.d.ts +0 -10
  249. package/dist/types-ts4.0/plugins/table/commands/misc.d.ts +0 -27
  250. package/dist/types-ts4.0/plugins/table/commands/selection.d.ts +0 -8
  251. package/dist/types-ts4.0/plugins/table/commands/sort.d.ts +0 -3
  252. package/dist/types-ts4.0/plugins/table/commands/split-cell.d.ts +0 -6
  253. package/dist/types-ts4.0/plugins/table/commands/toggle.d.ts +0 -12
  254. package/dist/types-ts4.0/plugins/table/commands-with-analytics.d.ts +0 -26
  255. package/dist/types-ts4.0/plugins/table/create-plugin-config.d.ts +0 -2
  256. package/dist/types-ts4.0/plugins/table/event-handlers.d.ts +0 -16
  257. package/dist/types-ts4.0/plugins/table/handlers.d.ts +0 -3
  258. package/dist/types-ts4.0/plugins/table/index.d.ts +0 -17
  259. package/dist/types-ts4.0/plugins/table/nodeviews/OverflowShadowsObserver.d.ts +0 -26
  260. package/dist/types-ts4.0/plugins/table/nodeviews/TableComponent.d.ts +0 -72
  261. package/dist/types-ts4.0/plugins/table/nodeviews/__mocks__/OverflowShadowsObserver.d.ts +0 -9
  262. package/dist/types-ts4.0/plugins/table/nodeviews/__mocks__/OverridableMock.d.ts +0 -9
  263. package/dist/types-ts4.0/plugins/table/nodeviews/table.d.ts +0 -31
  264. package/dist/types-ts4.0/plugins/table/nodeviews/tableCell.d.ts +0 -19
  265. package/dist/types-ts4.0/plugins/table/nodeviews/types.d.ts +0 -24
  266. package/dist/types-ts4.0/plugins/table/nodeviews/update-overflow-shadows.d.ts +0 -8
  267. package/dist/types-ts4.0/plugins/table/pm-plugins/decorations/plugin.d.ts +0 -7
  268. package/dist/types-ts4.0/plugins/table/pm-plugins/decorations/utils/column-controls.d.ts +0 -3
  269. package/dist/types-ts4.0/plugins/table/pm-plugins/decorations/utils/column-resizing.d.ts +0 -2
  270. package/dist/types-ts4.0/plugins/table/pm-plugins/decorations/utils/compose-decorations.d.ts +0 -2
  271. package/dist/types-ts4.0/plugins/table/pm-plugins/decorations/utils/index.d.ts +0 -3
  272. package/dist/types-ts4.0/plugins/table/pm-plugins/decorations/utils/types.d.ts +0 -6
  273. package/dist/types-ts4.0/plugins/table/pm-plugins/default-table-selection.d.ts +0 -5
  274. package/dist/types-ts4.0/plugins/table/pm-plugins/keymap.d.ts +0 -5
  275. package/dist/types-ts4.0/plugins/table/pm-plugins/main.d.ts +0 -8
  276. package/dist/types-ts4.0/plugins/table/pm-plugins/plugin-factory.d.ts +0 -1
  277. package/dist/types-ts4.0/plugins/table/pm-plugins/plugin-key.d.ts +0 -3
  278. package/dist/types-ts4.0/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.d.ts +0 -4
  279. package/dist/types-ts4.0/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.d.ts +0 -15
  280. package/dist/types-ts4.0/plugins/table/pm-plugins/sticky-headers/commands.d.ts +0 -3
  281. package/dist/types-ts4.0/plugins/table/pm-plugins/sticky-headers/index.d.ts +0 -6
  282. package/dist/types-ts4.0/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.d.ts +0 -6
  283. package/dist/types-ts4.0/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.d.ts +0 -65
  284. package/dist/types-ts4.0/plugins/table/pm-plugins/sticky-headers/plugin-key.d.ts +0 -3
  285. package/dist/types-ts4.0/plugins/table/pm-plugins/sticky-headers/plugin-state.d.ts +0 -3
  286. package/dist/types-ts4.0/plugins/table/pm-plugins/sticky-headers/plugin.d.ts +0 -4
  287. package/dist/types-ts4.0/plugins/table/pm-plugins/sticky-headers/types.d.ts +0 -16
  288. package/dist/types-ts4.0/plugins/table/pm-plugins/sticky-headers/util.d.ts +0 -2
  289. package/dist/types-ts4.0/plugins/table/pm-plugins/table-local-id.d.ts +0 -22
  290. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/commands.d.ts +0 -25
  291. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/event-handlers.d.ts +0 -4
  292. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/index.d.ts +0 -3
  293. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/plugin-factory.d.ts +0 -4
  294. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/plugin-key.d.ts +0 -3
  295. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/plugin.d.ts +0 -6
  296. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/reducer.d.ts +0 -3
  297. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/colgroup.d.ts +0 -8
  298. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/column-state.d.ts +0 -14
  299. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/content-width.d.ts +0 -4
  300. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/dom.d.ts +0 -13
  301. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/index.d.ts +0 -12
  302. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/misc.d.ts +0 -22
  303. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/resize-column.d.ts +0 -2
  304. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/resize-logic.d.ts +0 -4
  305. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/resize-state.d.ts +0 -29
  306. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/scale-table.d.ts +0 -17
  307. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/types.d.ts +0 -22
  308. package/dist/types-ts4.0/plugins/table/pm-plugins/table-resizing/utils/unit-to-number.d.ts +0 -1
  309. package/dist/types-ts4.0/plugins/table/pm-plugins/table-selection-keymap.d.ts +0 -4
  310. package/dist/types-ts4.0/plugins/table/reducer.d.ts +0 -3
  311. package/dist/types-ts4.0/plugins/table/todo-stubs.d.ts +0 -1
  312. package/dist/types-ts4.0/plugins/table/toolbar.d.ts +0 -36
  313. package/dist/types-ts4.0/plugins/table/transforms/column-width.d.ts +0 -18
  314. package/dist/types-ts4.0/plugins/table/transforms/delete-columns.d.ts +0 -3
  315. package/dist/types-ts4.0/plugins/table/transforms/delete-rows.d.ts +0 -3
  316. package/dist/types-ts4.0/plugins/table/transforms/fix-tables.d.ts +0 -10
  317. package/dist/types-ts4.0/plugins/table/transforms/index.d.ts +0 -7
  318. package/dist/types-ts4.0/plugins/table/transforms/merge.d.ts +0 -5
  319. package/dist/types-ts4.0/plugins/table/transforms/metadata.d.ts +0 -21
  320. package/dist/types-ts4.0/plugins/table/transforms/replace-table.d.ts +0 -5
  321. package/dist/types-ts4.0/plugins/table/transforms/split.d.ts +0 -9
  322. package/dist/types-ts4.0/plugins/table/types.d.ts +0 -328
  323. package/dist/types-ts4.0/plugins/table/ui/FloatingContextualButton/index.d.ts +0 -29
  324. package/dist/types-ts4.0/plugins/table/ui/FloatingContextualButton/styles.d.ts +0 -1
  325. package/dist/types-ts4.0/plugins/table/ui/FloatingContextualMenu/ContextualMenu.d.ts +0 -87
  326. package/dist/types-ts4.0/plugins/table/ui/FloatingContextualMenu/index.d.ts +0 -22
  327. package/dist/types-ts4.0/plugins/table/ui/FloatingContextualMenu/styles.d.ts +0 -2
  328. package/dist/types-ts4.0/plugins/table/ui/FloatingDeleteButton/DeleteButton.d.ts +0 -14
  329. package/dist/types-ts4.0/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.d.ts +0 -10
  330. package/dist/types-ts4.0/plugins/table/ui/FloatingDeleteButton/index.d.ts +0 -54
  331. package/dist/types-ts4.0/plugins/table/ui/FloatingDeleteButton/types.d.ts +0 -1
  332. package/dist/types-ts4.0/plugins/table/ui/FloatingInsertButton/InsertButton.d.ts +0 -12
  333. package/dist/types-ts4.0/plugins/table/ui/FloatingInsertButton/getPopupOptions.d.ts +0 -3
  334. package/dist/types-ts4.0/plugins/table/ui/FloatingInsertButton/index.d.ts +0 -35
  335. package/dist/types-ts4.0/plugins/table/ui/LayoutButton/index.d.ts +0 -21
  336. package/dist/types-ts4.0/plugins/table/ui/TableFloatingControls/CornerControls/index.d.ts +0 -16
  337. package/dist/types-ts4.0/plugins/table/ui/TableFloatingControls/NumberColumn/index.d.ts +0 -21
  338. package/dist/types-ts4.0/plugins/table/ui/TableFloatingControls/RowControls/index.d.ts +0 -17
  339. package/dist/types-ts4.0/plugins/table/ui/TableFloatingControls/index.d.ts +0 -40
  340. package/dist/types-ts4.0/plugins/table/ui/common-styles.d.ts +0 -4
  341. package/dist/types-ts4.0/plugins/table/ui/consts.d.ts +0 -39
  342. package/dist/types-ts4.0/plugins/table/ui/messages.d.ts +0 -38
  343. package/dist/types-ts4.0/plugins/table/ui/ui-styles.d.ts +0 -15
  344. package/dist/types-ts4.0/plugins/table/utils/analytics.d.ts +0 -18
  345. package/dist/types-ts4.0/plugins/table/utils/collapse.d.ts +0 -29
  346. package/dist/types-ts4.0/plugins/table/utils/column-controls.d.ts +0 -10
  347. package/dist/types-ts4.0/plugins/table/utils/decoration.d.ts +0 -16
  348. package/dist/types-ts4.0/plugins/table/utils/dom.d.ts +0 -20
  349. package/dist/types-ts4.0/plugins/table/utils/get-allow-add-column-custom-step.d.ts +0 -2
  350. package/dist/types-ts4.0/plugins/table/utils/index.d.ts +0 -11
  351. package/dist/types-ts4.0/plugins/table/utils/nodes.d.ts +0 -12
  352. package/dist/types-ts4.0/plugins/table/utils/paste.d.ts +0 -14
  353. package/dist/types-ts4.0/plugins/table/utils/referentiality.d.ts +0 -2
  354. package/dist/types-ts4.0/plugins/table/utils/row-controls.d.ts +0 -16
  355. package/dist/types-ts4.0/plugins/table/utils/selection.d.ts +0 -6
  356. package/dist/types-ts4.0/plugins/table/utils/table.d.ts +0 -4
  357. package/dist/types-ts4.0/plugins/table/utils/update-plugin-state-decorations.d.ts +0 -4
  358. package/dist/types-ts4.0/plugins/table-plugin.d.ts +0 -2
  359. package/dist/types-ts4.0/types.d.ts +0 -3
  360. package/src/plugins/plugin-key.ts +0 -7
  361. package/src/plugins/table/__tests__/integration/table-controls-selection.ts +0 -70
  362. package/src/plugins/table/__tests__/unit/event-handlers.ts +0 -130
  363. package/src/plugins/table/__tests__/unit/nodeviews/TableComponent.tsx +0 -388
  364. package/src/plugins/table/todo-stubs.ts +0 -1
  365. package/src/plugins/table/ui/FloatingContextualMenu/__tests__/ContextualMenu.tsx +0 -55
  366. package/src/plugins/table/ui/FloatingContextualMenu/__tests__/FloatingContextualMenu.tsx +0 -49
  367. package/src/types.ts +0 -3
  368. package/tmp/api-report-tmp.d.ts +0 -91
@@ -1,7 +1,6 @@
1
1
  // #region Imports
2
2
  import { findParentNodeOfType } from 'prosemirror-utils';
3
- import { findTable } from '@atlaskit/editor-tables/utils'; // import { isTextInput } from '../../utils/is-text-input';
4
-
3
+ import { findTable } from '@atlaskit/editor-tables/utils';
5
4
  import { isTextInput } from '@atlaskit/editor-common/utils';
6
5
  import { isTableCollapsible } from './utils/collapse';
7
6
  import { defaultTableSelection } from './pm-plugins/default-table-selection';
@@ -6,7 +6,7 @@ import { createTable } from '@atlaskit/editor-tables/utils';
6
6
  import { table, tableCell, tableHeader, tableRow } from '@atlaskit/adf-schema';
7
7
  import { toggleTable, tooltip } from '@atlaskit/editor-common/keymaps';
8
8
  import { WithPluginState } from '@atlaskit/editor-common/with-plugin-state';
9
- import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
9
+ import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD, TABLE_ACTION } from '@atlaskit/editor-common/analytics';
10
10
  import { toolbarInsertBlockMessages as messages } from '@atlaskit/editor-common/messages';
11
11
  import { IconTable } from '@atlaskit/editor-common/icons';
12
12
  import { pluginConfig } from './create-plugin-config';
@@ -125,7 +125,25 @@ const tablesPlugin = options => {
125
125
  plugin: () => tableSelectionKeymapPlugin(options === null || options === void 0 ? void 0 : options.editorSelectionAPI)
126
126
  }, {
127
127
  name: 'tableEditing',
128
- plugin: () => tableEditing()
128
+ plugin: () => tableEditing({
129
+ reportFixedTable: ({
130
+ state,
131
+ tr,
132
+ reason
133
+ }) => {
134
+ var _options$editorAnalyt;
135
+
136
+ options === null || options === void 0 ? void 0 : (_options$editorAnalyt = options.editorAnalyticsAPI) === null || _options$editorAnalyt === void 0 ? void 0 : _options$editorAnalyt.attachAnalyticsEvent({
137
+ action: TABLE_ACTION.FIXED,
138
+ actionSubject: ACTION_SUBJECT.TABLE,
139
+ actionSubjectId: null,
140
+ attributes: {
141
+ reason
142
+ },
143
+ eventType: EVENT_TYPE.TRACK
144
+ })(tr);
145
+ }
146
+ })
129
147
  }, {
130
148
  name: 'tableStickyHeaders',
131
149
  plugin: ({
@@ -313,12 +331,12 @@ const tablesPlugin = options => {
313
331
  icon: () => /*#__PURE__*/React.createElement(IconTable, null),
314
332
 
315
333
  action(insert, state) {
316
- var _options$editorAnalyt;
334
+ var _options$editorAnalyt2;
317
335
 
318
336
  const tr = insert(createTable({
319
337
  schema: state.schema
320
338
  }));
321
- options === null || options === void 0 ? void 0 : (_options$editorAnalyt = options.editorAnalyticsAPI) === null || _options$editorAnalyt === void 0 ? void 0 : _options$editorAnalyt.attachAnalyticsEvent({
339
+ options === null || options === void 0 ? void 0 : (_options$editorAnalyt2 = options.editorAnalyticsAPI) === null || _options$editorAnalyt2 === void 0 ? void 0 : _options$editorAnalyt2.attachAnalyticsEvent({
322
340
  action: ACTION.INSERTED,
323
341
  actionSubject: ACTION_SUBJECT.DOCUMENT,
324
342
  actionSubjectId: ACTION_SUBJECT_ID.TABLE,
@@ -331,7 +349,7 @@ const tablesPlugin = options => {
331
349
  }
332
350
 
333
351
  }],
334
- floatingToolbar: getToolbarConfig(defaultGetEditorContainerWidth, options === null || options === void 0 ? void 0 : options.editorAnalyticsAPI)(pluginConfig(options === null || options === void 0 ? void 0 : options.tableOptions))
352
+ floatingToolbar: getToolbarConfig(defaultGetEditorContainerWidth, options === null || options === void 0 ? void 0 : options.editorAnalyticsAPI, (options === null || options === void 0 ? void 0 : options.getEditorFeatureFlags) || defaultGetEditorFeatureFlags)(pluginConfig(options === null || options === void 0 ? void 0 : options.tableOptions))
335
353
  }
336
354
  };
337
355
  };
@@ -2,7 +2,7 @@ import { keymap } from 'prosemirror-keymap';
2
2
  import { chainCommands } from 'prosemirror-commands';
3
3
  import * as keymaps from '@atlaskit/editor-common/keymaps';
4
4
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
5
- import { createTable, goToNextCell, moveCursorBackward, triggerUnlessTableHeader } from '../commands';
5
+ import { triggerUnlessTableHeader, createTable, goToNextCell, moveCursorBackward } from '../commands';
6
6
  import { addRowAroundSelection, emptyMultipleCellsWithAnalytics, deleteTableIfSelectedWithAnalytics } from '../commands-with-analytics';
7
7
  import { addColumnAfter, addColumnBefore } from '../commands/insert';
8
8
  import { withEditorAnalyticsAPI } from '../utils/analytics';
@@ -10,12 +10,10 @@
10
10
  * TODO: https://product-fabric.atlassian.net/browse/ED-12714
11
11
  *
12
12
  */
13
- // import { Dispatch } from '../../../event-dispatcher';
14
13
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
15
14
  import { PluginKey } from 'prosemirror-state';
16
15
  import rafSchedule from 'raf-schd';
17
- import { uuid } from '@atlaskit/adf-schema'; // import { stepAddsOneOf } from '../../../utils/step';
18
-
16
+ import { uuid } from '@atlaskit/adf-schema';
19
17
  import { stepAddsOneOf } from '@atlaskit/editor-common/utils';
20
18
  const pluginKey = new PluginKey('tableLocalIdPlugin');
21
19
 
@@ -1,3 +1,4 @@
1
1
  export { createPlugin } from './plugin';
2
2
  export { scaleTable } from './commands';
3
- export { pluginKey } from './plugin-key';
3
+ export { pluginKey } from './plugin-key';
4
+ export { getPluginState } from './plugin-factory';
@@ -1,11 +1,14 @@
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/react';
1
3
  import { defineMessages } from 'react-intl-next';
2
4
  import RemoveIcon from '@atlaskit/icon/glyph/editor/remove';
3
5
  import commonMessages from '@atlaskit/editor-common/messages';
4
6
  import { clearHoverSelection, hoverTable } from './commands';
5
- import { deleteTableWithAnalytics, toggleHeaderColumnWithAnalytics, toggleHeaderRowWithAnalytics, toggleNumberColumnWithAnalytics, insertRowWithAnalytics, deleteRowsWithAnalytics, mergeCellsWithAnalytics, splitCellWithAnalytics, deleteColumnsWithAnalytics, emptyMultipleCellsWithAnalytics, insertColumnWithAnalytics, wrapTableInExpandWithAnalytics } from './commands-with-analytics';
7
+ import { deleteTableWithAnalytics, toggleHeaderColumnWithAnalytics, toggleHeaderRowWithAnalytics, toggleNumberColumnWithAnalytics, insertRowWithAnalytics, deleteRowsWithAnalytics, mergeCellsWithAnalytics, splitCellWithAnalytics, deleteColumnsWithAnalytics, emptyMultipleCellsWithAnalytics, insertColumnWithAnalytics, wrapTableInExpandWithAnalytics, sortColumnWithAnalytics, setColorWithAnalytics, distributeColumnsWidthsWithAnalytics } from './commands-with-analytics';
6
8
  import { getPluginState } from './pm-plugins/plugin-factory';
7
9
  import { pluginKey as tableResizingPluginKey } from './pm-plugins/table-resizing';
8
10
  import { TableCssClassName } from './types';
11
+ import { getMergedCellsPositions } from './utils';
9
12
  import { isReferencedSource } from './utils/referentiality';
10
13
  import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
11
14
  import { findCellRectClosestToPos, findTable, getSelectionRect, isSelectionType } from '@atlaskit/editor-tables/utils';
@@ -15,6 +18,11 @@ import tableMessages from './ui/messages';
15
18
  import { messages as ContextualMenuMessages } from './ui/FloatingContextualMenu/ContextualMenu';
16
19
  import { findParentDomRefOfType } from 'prosemirror-utils';
17
20
  import { closestElement } from '@atlaskit/editor-common/utils';
21
+ import { addColumnAfter, addRowAfter, tooltip, backspace } from '@atlaskit/editor-common/keymaps';
22
+ import { getNewResizeStateFromSelectedColumns } from './pm-plugins/table-resizing/utils/resize-state';
23
+ import { TableSortOrder as SortOrder } from '@atlaskit/adf-schema/steps';
24
+ import { shortcutStyle } from '@atlaskit/editor-shared-styles/shortcut';
25
+ import { cellBackgroundColorPalette, DEFAULT_BORDER_COLOR } from '@atlaskit/editor-common/ui-color';
18
26
  export const messages = defineMessages({
19
27
  tableOptions: {
20
28
  id: 'fabric.editor.tableOptions',
@@ -85,6 +93,8 @@ export const getToolbarMenuConfig = (config, state, {
85
93
  export const getToolbarCellOptionsConfig = (editorState, initialSelectionRect, {
86
94
  formatMessage
87
95
  }, getEditorContainerWidth, editorAnalyticsAPI) => {
96
+ var _pluginState$pluginCo, _pluginState$pluginCo2;
97
+
88
98
  const {
89
99
  top,
90
100
  bottom,
@@ -93,6 +103,7 @@ export const getToolbarCellOptionsConfig = (editorState, initialSelectionRect, {
93
103
  } = initialSelectionRect;
94
104
  const numberOfColumns = right - left;
95
105
  const numberOfRows = bottom - top;
106
+ const pluginState = getPluginState(editorState);
96
107
  const options = [{
97
108
  id: 'editor.table.insertColumn',
98
109
  title: formatMessage(tableMessages.insertColumn),
@@ -107,7 +118,10 @@ export const getToolbarCellOptionsConfig = (editorState, initialSelectionRect, {
107
118
  return true;
108
119
  },
109
120
  selected: false,
110
- disabled: false
121
+ disabled: false,
122
+ elemAfter: jsx("div", {
123
+ css: shortcutStyle
124
+ }, tooltip(addColumnAfter))
111
125
  }, {
112
126
  id: 'editor.table.insertRow',
113
127
  title: formatMessage(tableMessages.insertRow),
@@ -125,7 +139,10 @@ export const getToolbarCellOptionsConfig = (editorState, initialSelectionRect, {
125
139
  return true;
126
140
  },
127
141
  selected: false,
128
- disabled: false
142
+ disabled: false,
143
+ elemAfter: jsx("div", {
144
+ css: shortcutStyle
145
+ }, tooltip(addRowAfter))
129
146
  }, {
130
147
  id: 'editor.table.removeColumns',
131
148
  title: formatMessage(tableMessages.removeColumns, {
@@ -161,16 +178,63 @@ export const getToolbarCellOptionsConfig = (editorState, initialSelectionRect, {
161
178
  }, {
162
179
  id: 'editor.table.mergeCells',
163
180
  title: formatMessage(ContextualMenuMessages.mergeCells),
164
- onClick: mergeCellsWithAnalytics(editorAnalyticsAPI),
181
+ onClick: mergeCellsWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.FLOATING_TB),
165
182
  selected: false,
166
183
  disabled: !canMergeCells(editorState.tr)
167
184
  }, {
168
185
  id: 'editor.table.splitCell',
169
186
  title: formatMessage(ContextualMenuMessages.splitCell),
170
- onClick: splitCellWithAnalytics(editorAnalyticsAPI),
187
+ onClick: splitCellWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.FLOATING_TB),
171
188
  selected: false,
172
189
  disabled: !splitCell(editorState)
173
- }, {
190
+ }];
191
+
192
+ if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo = pluginState.pluginConfig) !== null && _pluginState$pluginCo !== void 0 && _pluginState$pluginCo.allowDistributeColumns) {
193
+ const distributeColumnWidths = (state, dispatch, view) => {
194
+ const newResizeStateWithAnalytics = view ? getNewResizeStateFromSelectedColumns(initialSelectionRect, editorState, view.domAtPos.bind(view), getEditorContainerWidth) : undefined;
195
+
196
+ if (newResizeStateWithAnalytics) {
197
+ distributeColumnsWidthsWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.FLOATING_TB, newResizeStateWithAnalytics)(state, dispatch);
198
+ return true;
199
+ }
200
+
201
+ return false;
202
+ };
203
+
204
+ options.push({
205
+ id: 'editor.table.distributeColumns',
206
+ title: formatMessage(ContextualMenuMessages.distributeColumns),
207
+ onClick: distributeColumnWidths,
208
+ selected: false,
209
+ disabled: numberOfColumns <= 1
210
+ });
211
+ }
212
+
213
+ if (pluginState !== null && pluginState !== void 0 && (_pluginState$pluginCo2 = pluginState.pluginConfig) !== null && _pluginState$pluginCo2 !== void 0 && _pluginState$pluginCo2.allowColumnSorting) {
214
+ const hasMergedCellsInTable = getMergedCellsPositions(editorState.tr).length > 0;
215
+ options.push({
216
+ id: 'editor.table.sortColumnAsc',
217
+ title: formatMessage(ContextualMenuMessages.sortColumnASC),
218
+ onClick: (state, dispatch) => {
219
+ sortColumnWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.FLOATING_TB, initialSelectionRect.left, SortOrder.ASC)(state, dispatch);
220
+ return true;
221
+ },
222
+ selected: false,
223
+ disabled: hasMergedCellsInTable
224
+ });
225
+ options.push({
226
+ id: 'editor.table.sortColumnDesc',
227
+ title: formatMessage(ContextualMenuMessages.sortColumnDESC),
228
+ onClick: (state, dispatch) => {
229
+ sortColumnWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.FLOATING_TB, initialSelectionRect.left, SortOrder.DESC)(state, dispatch);
230
+ return true;
231
+ },
232
+ selected: false,
233
+ disabled: hasMergedCellsInTable
234
+ });
235
+ }
236
+
237
+ options.push({
174
238
  id: 'editor.table.clearCells',
175
239
  title: formatMessage(ContextualMenuMessages.clearCells, {
176
240
  0: Math.max(numberOfColumns, numberOfRows)
@@ -183,14 +247,19 @@ export const getToolbarCellOptionsConfig = (editorState, initialSelectionRect, {
183
247
  return true;
184
248
  },
185
249
  selected: false,
186
- disabled: false
187
- }];
250
+ disabled: false,
251
+ elemAfter: jsx("div", {
252
+ css: shortcutStyle
253
+ }, tooltip(backspace))
254
+ });
188
255
  return {
189
256
  id: 'editor.table.cellOptions',
190
257
  type: 'dropdown',
191
258
  title: formatMessage(tableMessages.cellOptions),
192
- hidden: true,
193
- options
259
+ options,
260
+ // Increased dropdown item width to prevent labels from being truncated
261
+ dropdownWidth: 230,
262
+ showSelected: false
194
263
  };
195
264
  };
196
265
 
@@ -199,7 +268,7 @@ const getClosestSelectionRect = state => {
199
268
  return isSelectionType(selection, 'cell') ? getSelectionRect(selection) : findCellRectClosestToPos(selection.$from);
200
269
  };
201
270
 
202
- export const getToolbarConfig = (getEditorContainerWidth, editorAnalyticsAPI) => config => (state, intl) => {
271
+ export const getToolbarConfig = (getEditorContainerWidth, editorAnalyticsAPI, getEditorFeatureFlags) => config => (state, intl) => {
203
272
  const tableObject = findTable(state.selection);
204
273
  const pluginState = getPluginState(state);
205
274
  const resizeState = tableResizingPluginKey.getState(state);
@@ -207,7 +276,11 @@ export const getToolbarConfig = (getEditorContainerWidth, editorAnalyticsAPI) =>
207
276
  if (tableObject && pluginState.editorHasFocus) {
208
277
  const nodeType = state.schema.nodes.table;
209
278
  const menu = getToolbarMenuConfig(config, pluginState, intl, editorAnalyticsAPI);
210
- const cellItems = getCellItems(config, state, intl, getEditorContainerWidth, editorAnalyticsAPI); // Check if we need to show confirm dialog for delete button
279
+ const {
280
+ tableCellOptionsInFloatingToolbar
281
+ } = getEditorFeatureFlags() || {};
282
+ const cellItems = getCellItems(config, state, intl, getEditorContainerWidth, editorAnalyticsAPI, tableCellOptionsInFloatingToolbar);
283
+ const colorPicker = getColorPicker(state, menu, intl, getEditorContainerWidth, editorAnalyticsAPI, tableCellOptionsInFloatingToolbar); // Check if we need to show confirm dialog for delete button
211
284
 
212
285
  let confirmDialog;
213
286
  const localId = tableObject.node.attrs.localId;
@@ -240,9 +313,20 @@ export const getToolbarConfig = (getEditorContainerWidth, editorAnalyticsAPI) =>
240
313
  getDomRef,
241
314
  nodeType,
242
315
  offset: [0, 3],
243
- items: [menu, separator(menu.hidden), ...cellItems, {
316
+ items: [menu, separator(menu.hidden), ...cellItems, ...colorPicker, {
244
317
  type: 'extensions-placeholder',
245
318
  separator: 'end'
319
+ }, {
320
+ type: 'copy-button',
321
+ items: [{
322
+ state,
323
+ formatMessage: intl.formatMessage,
324
+ nodeType,
325
+ onMouseEnter: hoverTable(false, true),
326
+ onMouseLeave: clearHoverSelection()
327
+ }, {
328
+ type: 'separator'
329
+ }]
246
330
  }, {
247
331
  id: 'editor.table.delete',
248
332
  type: 'button',
@@ -254,7 +338,8 @@ export const getToolbarConfig = (getEditorContainerWidth, editorAnalyticsAPI) =>
254
338
  onMouseLeave: clearHoverSelection(),
255
339
  title: intl.formatMessage(commonMessages.remove),
256
340
  confirmDialog
257
- }]
341
+ }],
342
+ scrollable: true
258
343
  };
259
344
  }
260
345
 
@@ -270,8 +355,8 @@ const separator = hidden => {
270
355
 
271
356
  const getCellItems = (pluginConfig, state, {
272
357
  formatMessage
273
- }, getEditorContainerWidth, editorAnalyticsAPI) => {
274
- if (pluginConfig.allowCellOptionsInFloatingToolbar) {
358
+ }, getEditorContainerWidth, editorAnalyticsAPI, tableCellOptionsInFloatingToolbar) => {
359
+ if (pluginConfig.allowCellOptionsInFloatingToolbar || tableCellOptionsInFloatingToolbar) {
275
360
  const initialSelectionRect = getClosestSelectionRect(state);
276
361
 
277
362
  if (initialSelectionRect) {
@@ -283,4 +368,36 @@ const getCellItems = (pluginConfig, state, {
283
368
  }
284
369
 
285
370
  return [];
371
+ };
372
+
373
+ const getColorPicker = (state, menu, {
374
+ formatMessage
375
+ }, getEditorContainerWidth, editorAnalyticsAPI, tableCellOptionsInFloatingToolbar) => {
376
+ var _node$attrs;
377
+
378
+ const {
379
+ targetCellPosition,
380
+ pluginConfig
381
+ } = getPluginState(state);
382
+
383
+ if (!pluginConfig.allowBackgroundColor || !tableCellOptionsInFloatingToolbar) {
384
+ return [];
385
+ }
386
+
387
+ const node = targetCellPosition ? state.doc.nodeAt(targetCellPosition) : undefined;
388
+ const currentBackground = (node === null || node === void 0 ? void 0 : (_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.background) || '#ffffff';
389
+ const defaultPalette = cellBackgroundColorPalette.find(item => item.value === currentBackground) || {
390
+ label: 'Custom',
391
+ value: currentBackground,
392
+ border: DEFAULT_BORDER_COLOR
393
+ };
394
+ return [{
395
+ id: 'editor.panel.colorPicker',
396
+ title: formatMessage(ContextualMenuMessages.cellBackground),
397
+ type: 'select',
398
+ selectType: 'color',
399
+ defaultValue: defaultPalette,
400
+ options: cellBackgroundColorPalette,
401
+ onChange: option => setColorWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.FLOATING_TB, option.value, targetCellPosition)
402
+ }, separator(menu.hidden)];
286
403
  };
@@ -1,8 +1,6 @@
1
1
  import { tableCellMinWidth } from '@atlaskit/editor-common/styles';
2
- import { akEditorDefaultLayoutWidth, akEditorWideLayoutWidth } from '@atlaskit/editor-shared-styles'; // import { sendLogs } from '../../../utils/sendLogs';
3
- // import { sendLogs } from '@atlaskit/editor-core/src/utils/sendLogs';
4
-
5
- import { sendLogs } from '../todo-stubs';
2
+ import { akEditorDefaultLayoutWidth, akEditorWideLayoutWidth } from '@atlaskit/editor-shared-styles';
3
+ import { sendLogs } from '@atlaskit/editor-common/utils';
6
4
  import { calculateColumnWidth, contentWidth, getCellsRefsInColumn, getLayoutSize } from '../pm-plugins/table-resizing/utils';
7
5
  export const fireAnalytics = (properties = {}) => sendLogs({
8
6
  events: [{
@@ -125,8 +125,7 @@ export class FloatingContextualButtonInner extends React.Component {
125
125
 
126
126
  shouldComponentUpdate(nextProps) {
127
127
  return this.props.tableNode !== nextProps.tableNode || this.props.targetCellPosition !== nextProps.targetCellPosition || this.props.layout !== nextProps.layout || this.props.isContextualMenuOpen !== nextProps.isContextualMenuOpen || this.props.isNumberColumnEnabled !== nextProps.isNumberColumnEnabled || this.props.stickyHeader !== nextProps.stickyHeader;
128
- } // TODO: restore
129
-
128
+ }
130
129
 
131
130
  }
132
131
 
@@ -281,12 +281,12 @@ export class ContextualMenu extends Component {
281
281
  break;
282
282
 
283
283
  case 'merge':
284
- mergeCellsWithAnalytics(editorAnalyticsAPI)(state, dispatch);
284
+ mergeCellsWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.CONTEXT_MENU)(state, dispatch);
285
285
  this.toggleOpen();
286
286
  break;
287
287
 
288
288
  case 'split':
289
- splitCellWithAnalytics(editorAnalyticsAPI)(state, dispatch);
289
+ splitCellWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.CONTEXT_MENU)(state, dispatch);
290
290
  this.toggleOpen();
291
291
  break;
292
292
 
@@ -434,10 +434,8 @@ export class ContextualMenu extends Component {
434
434
  const {
435
435
  state,
436
436
  dispatch
437
- } = editorView; // setColorWithAnalytics(color, targetCellPosition)(state, dispatch);
438
- // TODO: restore
439
-
440
- setColorWithAnalytics(editorAnalyticsAPI)(color, targetCellPosition)(state, dispatch);
437
+ } = editorView;
438
+ setColorWithAnalytics(editorAnalyticsAPI)(INPUT_METHOD.CONTEXT_MENU, color, targetCellPosition)(state, dispatch);
441
439
  this.toggleOpen();
442
440
  });
443
441
  }
@@ -5,8 +5,7 @@ import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
5
5
  import { getSelectionRect, isTableSelected } from '@atlaskit/editor-tables/utils';
6
6
  import { createPortal } from 'react-dom';
7
7
  import { Popup } from '@atlaskit/editor-common/ui';
8
- import { akEditorTableNumberColumnWidth } from '@atlaskit/editor-shared-styles'; // import { closestElement } from '../../../../utils/dom';
9
-
8
+ import { akEditorTableNumberColumnWidth } from '@atlaskit/editor-shared-styles';
10
9
  import { closestElement } from '@atlaskit/editor-common/utils';
11
10
  import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
12
11
  import { clearHoverSelection, hoverColumns, hoverRows } from '../../commands';
@@ -97,7 +96,8 @@ class FloatingDeleteButton extends Component {
97
96
  return clearHoverSelection()(state, dispatch);
98
97
  });
99
98
 
100
- _defineProperty(this, "handleClick", () => {
99
+ _defineProperty(this, "handleClick", event => {
100
+ event.preventDefault();
101
101
  const {
102
102
  editorAnalyticsAPI
103
103
  } = this.props;
@@ -6,8 +6,7 @@ import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
6
6
  import { findDomRefAtPos } from 'prosemirror-utils';
7
7
  import { findTable } from '@atlaskit/editor-tables/utils';
8
8
  import { injectIntl } from 'react-intl-next';
9
- import { Popup } from '@atlaskit/editor-common/ui'; // import { closestElement } from '../../../../utils/dom';
10
-
9
+ import { Popup } from '@atlaskit/editor-common/ui';
11
10
  import { closestElement } from '@atlaskit/editor-common/utils';
12
11
  import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
13
12
  import { insertColumnWithAnalytics, insertRowWithAnalytics } from '../../commands-with-analytics';
@@ -98,8 +98,7 @@ class LayoutButton extends React.Component {
98
98
  }
99
99
 
100
100
  renderSticky(button, targetRef, tableRef) {
101
- // const title = this.getTitle();
102
- const title = 'TODO MISSING TITLE';
101
+ const title = this.getTitle();
103
102
 
104
103
  if (!(targetRef instanceof HTMLElement) || !(tableRef instanceof HTMLElement)) {
105
104
  return null;
@@ -128,10 +127,9 @@ class LayoutButton extends React.Component {
128
127
 
129
128
  if (!targetRef) {
130
129
  return null;
131
- } // const title = this.getTitle();
132
-
130
+ }
133
131
 
134
- const title = 'TODO MISSING TITLE';
132
+ const title = this.getTitle();
135
133
  return /*#__PURE__*/React.createElement(Popup, {
136
134
  ariaLabel: title,
137
135
  target: targetRef,
@@ -84,7 +84,8 @@ class CornerControlComponent extends Component {
84
84
  }),
85
85
  style: {
86
86
  top: this.props.stickyTop !== undefined ? `${this.props.stickyTop}px` : undefined
87
- }
87
+ },
88
+ contentEditable: false
88
89
  }, /*#__PURE__*/React.createElement("button", {
89
90
  "aria-label": formatMessage(messages.cornerControl),
90
91
  type: "button",
@@ -2,7 +2,6 @@ import { TableMap } from '@atlaskit/editor-tables/table-map';
2
2
  import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
3
3
  import { findDomRefAtPos } from 'prosemirror-utils';
4
4
  import { findTable, getCellsInColumn, getSelectionRect, isColumnSelected, isTableSelected } from '@atlaskit/editor-tables/utils';
5
- // import { maphElem } from '@atlaskit/editor-core/src/utils/dom';
6
5
  import { maphElem } from '@atlaskit/editor-common/utils';
7
6
  import { TableCssClassName as ClassName } from '../types';
8
7
  import { tableDeleteButtonSize } from '../ui/consts';
@@ -1,7 +1,6 @@
1
1
  import { TableMap } from '@atlaskit/editor-tables/table-map';
2
2
  import { findTable, getCellsInRow, getSelectionRect } from '@atlaskit/editor-tables/utils';
3
3
  import { Decoration } from 'prosemirror-view';
4
- // import { nonNullable } from '@atlaskit/editor-core/src/utils';
5
4
  import { nonNullable } from '@atlaskit/editor-common/utils';
6
5
  import { TableCssClassName as ClassName, TableDecorations } from '../types';
7
6
 
@@ -14,40 +13,76 @@ export const createCellHoverDecoration = (cells, type) => cells.map(cell => Deco
14
13
  }, {
15
14
  key: TableDecorations.CELL_CONTROLS_HOVER
16
15
  }));
17
- export const createControlsHoverDecoration = (cells, type, danger, selected) => cells.map(cell => {
18
- const classes = [ClassName.HOVERED_CELL];
16
+ export const createControlsHoverDecoration = (cells, type, tr, danger, selected) => {
17
+ const table = findTable(tr.selection);
19
18
 
20
- if (danger) {
21
- classes.push(ClassName.HOVERED_CELL_IN_DANGER);
19
+ if (!table) {
20
+ return [];
22
21
  }
23
22
 
24
- if (selected) {
25
- classes.push(ClassName.SELECTED_CELL);
26
- }
23
+ const map = TableMap.get(table.node);
24
+ const [min, max] = cells.reduce(([min, max], cell) => {
25
+ if (min === null || cell.pos < min) {
26
+ min = cell.pos;
27
+ }
27
28
 
28
- classes.push(type === 'column' ? ClassName.HOVERED_COLUMN : type === 'row' ? ClassName.HOVERED_ROW : ClassName.HOVERED_TABLE);
29
- let key;
29
+ if (max === null || cell.pos > max) {
30
+ max = cell.pos;
31
+ }
32
+
33
+ return [min, max];
34
+ }, [null, null]);
30
35
 
31
- switch (type) {
32
- case 'row':
33
- key = TableDecorations.ROW_CONTROLS_HOVER;
34
- break;
36
+ if (min === null || max === null) {
37
+ return [];
38
+ }
35
39
 
36
- case 'column':
37
- key = TableDecorations.COLUMN_CONTROLS_HOVER;
38
- break;
40
+ let updatedCells = cells.map(x => x.pos); // ED-15246 fixed trello card table overflow issue
41
+ // If columns / rows have been merged the hovered selection is different to the actual selection
42
+ // So If the table cells are in danger we want to create a "rectangle" selection
43
+ // to match the "clicked" selection
39
44
 
40
- default:
41
- key = TableDecorations.TABLE_CONTROLS_HOVER;
42
- break;
45
+ if (danger) {
46
+ const rect = map.rectBetween(min - table.start, max - table.start);
47
+ updatedCells = map.cellsInRect(rect).map(x => x + table.start);
43
48
  }
44
49
 
45
- return Decoration.node(cell.pos, cell.pos + cell.node.nodeSize, {
46
- class: classes.join(' ')
47
- }, {
48
- key
50
+ return updatedCells.map(pos => {
51
+ const cell = tr.doc.nodeAt(pos);
52
+ const classes = [ClassName.HOVERED_CELL];
53
+
54
+ if (danger) {
55
+ classes.push(ClassName.HOVERED_CELL_IN_DANGER);
56
+ }
57
+
58
+ if (selected) {
59
+ classes.push(ClassName.SELECTED_CELL);
60
+ }
61
+
62
+ classes.push(type === 'column' ? ClassName.HOVERED_COLUMN : type === 'row' ? ClassName.HOVERED_ROW : ClassName.HOVERED_TABLE);
63
+ let key;
64
+
65
+ switch (type) {
66
+ case 'row':
67
+ key = TableDecorations.ROW_CONTROLS_HOVER;
68
+ break;
69
+
70
+ case 'column':
71
+ key = TableDecorations.COLUMN_CONTROLS_HOVER;
72
+ break;
73
+
74
+ default:
75
+ key = TableDecorations.TABLE_CONTROLS_HOVER;
76
+ break;
77
+ }
78
+
79
+ return Decoration.node(pos, pos + cell.nodeSize, {
80
+ class: classes.join(' ')
81
+ }, {
82
+ key
83
+ });
49
84
  });
50
- });
85
+ };
51
86
  export const createColumnSelectedDecoration = tr => {
52
87
  const {
53
88
  selection,
@@ -1,5 +1,3 @@
1
- // import { containsClassName } from '@atlaskit/editor-core/src/utils';
2
- // import { closestElement } from '@atlaskit/editor-core/src/utils/dom';
3
1
  import { closestElement, containsClassName } from '@atlaskit/editor-common/utils';
4
2
  import { TableCssClassName as ClassName } from '../types';
5
3
  import { tableToolbarSize } from '../ui/consts';
@@ -1,6 +1,5 @@
1
1
  import { Fragment, Slice } from 'prosemirror-model';
2
- import { flatten } from 'prosemirror-utils'; // import { flatmap, mapSlice } from '@atlaskit/editor-core/src/utils/slice';
3
-
2
+ import { flatten } from 'prosemirror-utils';
4
3
  import { flatmap, mapSlice } from '@atlaskit/editor-common/utils';
5
4
  import { getPluginState } from '../pm-plugins/plugin-factory'; // lifts up the content of each cell, returning an array of nodes
6
5
 
@@ -1,8 +1,7 @@
1
1
  import { TableMap } from '@atlaskit/editor-tables/table-map';
2
2
  import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
3
3
  import { safeInsert } from 'prosemirror-utils';
4
- import { findTable, getSelectionRect, isRowSelected, isTableSelected } from '@atlaskit/editor-tables/utils'; // import { parsePx } from '@atlaskit/editor-core/src/utils/dom';
5
-
4
+ import { findTable, getSelectionRect, isRowSelected, isTableSelected } from '@atlaskit/editor-tables/utils';
6
5
  import { parsePx } from '@atlaskit/editor-common/utils';
7
6
  import { TableCssClassName as ClassName } from '../types';
8
7
  import { tableDeleteButtonSize } from '../ui/consts';
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-table",
3
- "version": "0.0.10"
3
+ "version": "0.1.1"
4
4
  }