@atlaskit/editor-plugin-table 1.3.0 → 1.4.0

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 (293) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/commands/package.json +2 -2
  3. package/dist/cjs/plugins/table/commands/misc.js +1 -2
  4. package/dist/cjs/plugins/table/index.js +25 -34
  5. package/dist/cjs/plugins/table/transforms/column-width.js +0 -17
  6. package/dist/cjs/plugins/table/transforms/delete-columns.js +4 -13
  7. package/dist/cjs/plugins/table/transforms/delete-rows.js +4 -13
  8. package/dist/cjs/plugins/table/transforms/fix-tables.js +6 -24
  9. package/dist/cjs/plugins/table/transforms/index.js +0 -13
  10. package/dist/cjs/plugins/table/transforms/merge.js +5 -20
  11. package/dist/cjs/version.json +1 -1
  12. package/dist/es2019/plugins/table/commands/misc.js +2 -3
  13. package/dist/es2019/plugins/table/index.js +21 -33
  14. package/dist/es2019/plugins/table/transforms/column-width.js +0 -17
  15. package/dist/es2019/plugins/table/transforms/delete-columns.js +4 -13
  16. package/dist/es2019/plugins/table/transforms/delete-rows.js +4 -13
  17. package/dist/es2019/plugins/table/transforms/fix-tables.js +0 -14
  18. package/dist/es2019/plugins/table/transforms/index.js +1 -2
  19. package/dist/es2019/plugins/table/transforms/merge.js +5 -21
  20. package/dist/es2019/version.json +1 -1
  21. package/dist/esm/plugins/table/commands/misc.js +2 -3
  22. package/dist/esm/plugins/table/index.js +25 -34
  23. package/dist/esm/plugins/table/transforms/column-width.js +0 -17
  24. package/dist/esm/plugins/table/transforms/delete-columns.js +4 -13
  25. package/dist/esm/plugins/table/transforms/delete-rows.js +4 -13
  26. package/dist/esm/plugins/table/transforms/fix-tables.js +0 -17
  27. package/dist/esm/plugins/table/transforms/index.js +1 -2
  28. package/dist/esm/plugins/table/transforms/merge.js +5 -21
  29. package/dist/esm/version.json +1 -1
  30. package/dist/types/i18n/cs.d.ts +6 -6
  31. package/dist/types/i18n/da.d.ts +6 -6
  32. package/dist/types/i18n/de.d.ts +6 -6
  33. package/dist/types/i18n/en.d.ts +6 -6
  34. package/dist/types/i18n/en_GB.d.ts +6 -6
  35. package/dist/types/i18n/es.d.ts +6 -6
  36. package/dist/types/i18n/fi.d.ts +6 -6
  37. package/dist/types/i18n/fr.d.ts +6 -6
  38. package/dist/types/i18n/hu.d.ts +6 -6
  39. package/dist/types/i18n/it.d.ts +6 -6
  40. package/dist/types/i18n/ja.d.ts +6 -6
  41. package/dist/types/i18n/ko.d.ts +6 -6
  42. package/dist/types/i18n/nb.d.ts +6 -6
  43. package/dist/types/i18n/nl.d.ts +6 -6
  44. package/dist/types/i18n/pl.d.ts +6 -6
  45. package/dist/types/i18n/pt_BR.d.ts +6 -6
  46. package/dist/types/i18n/ru.d.ts +6 -6
  47. package/dist/types/i18n/sv.d.ts +6 -6
  48. package/dist/types/i18n/th.d.ts +6 -6
  49. package/dist/types/i18n/tr.d.ts +6 -6
  50. package/dist/types/i18n/uk.d.ts +6 -6
  51. package/dist/types/i18n/vi.d.ts +6 -6
  52. package/dist/types/i18n/zh.d.ts +6 -6
  53. package/dist/types/i18n/zh_TW.d.ts +6 -6
  54. package/dist/types/plugins/table/commands/clear.d.ts +1 -1
  55. package/dist/types/plugins/table/commands/hover.d.ts +3 -3
  56. package/dist/types/plugins/table/commands/misc.d.ts +4 -4
  57. package/dist/types/plugins/table/commands-with-analytics.d.ts +2 -2
  58. package/dist/types/plugins/table/event-handlers.d.ts +3 -3
  59. package/dist/types/plugins/table/index.d.ts +9 -0
  60. package/dist/types/plugins/table/nodeviews/OverflowShadowsObserver.d.ts +2 -2
  61. package/dist/types/plugins/table/nodeviews/table.d.ts +1 -1
  62. package/dist/types/plugins/table/nodeviews/types.d.ts +1 -1
  63. package/dist/types/plugins/table/nodeviews/update-overflow-shadows.d.ts +1 -1
  64. package/dist/types/plugins/table/pm-plugins/decorations/utils/types.d.ts +1 -1
  65. package/dist/types/plugins/table/pm-plugins/main.d.ts +1 -1
  66. package/dist/types/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.d.ts +1 -1
  67. package/dist/types/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.d.ts +1 -1
  68. package/dist/types/plugins/table/pm-plugins/sticky-headers/types.d.ts +5 -5
  69. package/dist/types/plugins/table/pm-plugins/table-resizing/commands.d.ts +2 -2
  70. package/dist/types/plugins/table/pm-plugins/table-resizing/event-handlers.d.ts +1 -1
  71. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/colgroup.d.ts +1 -1
  72. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/dom.d.ts +1 -1
  73. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/resize-column.d.ts +1 -1
  74. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/resize-logic.d.ts +2 -2
  75. package/dist/types/plugins/table/transforms/fix-tables.d.ts +2 -3
  76. package/dist/types/plugins/table/transforms/index.d.ts +1 -2
  77. package/dist/types/plugins/table/transforms/replace-table.d.ts +1 -1
  78. package/dist/types/plugins/table/types.d.ts +11 -11
  79. package/dist/types/plugins/table/ui/FloatingDeleteButton/types.d.ts +1 -1
  80. package/dist/types/plugins/table/ui/ui-styles.d.ts +2 -2
  81. package/dist/types/plugins/table/utils/column-controls.d.ts +1 -1
  82. package/dist/types/plugins/table/utils/decoration.d.ts +1 -1
  83. package/dist/types/plugins/table/utils/dom.d.ts +2 -2
  84. package/dist/types/plugins/table/utils/row-controls.d.ts +1 -1
  85. package/dist/types/plugins/table/utils/selection.d.ts +1 -1
  86. package/dist/types-ts4.5/i18n/cs.d.ts +35 -0
  87. package/dist/types-ts4.5/i18n/da.d.ts +33 -0
  88. package/dist/types-ts4.5/i18n/de.d.ts +33 -0
  89. package/dist/types-ts4.5/i18n/en.d.ts +35 -0
  90. package/dist/types-ts4.5/i18n/en_GB.d.ts +35 -0
  91. package/dist/types-ts4.5/i18n/es.d.ts +33 -0
  92. package/dist/types-ts4.5/i18n/fi.d.ts +33 -0
  93. package/dist/types-ts4.5/i18n/fr.d.ts +35 -0
  94. package/dist/types-ts4.5/i18n/hu.d.ts +35 -0
  95. package/dist/types-ts4.5/i18n/it.d.ts +35 -0
  96. package/dist/types-ts4.5/i18n/ja.d.ts +35 -0
  97. package/dist/types-ts4.5/i18n/ko.d.ts +33 -0
  98. package/dist/types-ts4.5/i18n/nb.d.ts +33 -0
  99. package/dist/types-ts4.5/i18n/nl.d.ts +35 -0
  100. package/dist/types-ts4.5/i18n/pl.d.ts +35 -0
  101. package/dist/types-ts4.5/i18n/pt_BR.d.ts +35 -0
  102. package/dist/types-ts4.5/i18n/ru.d.ts +35 -0
  103. package/dist/types-ts4.5/i18n/sv.d.ts +33 -0
  104. package/dist/types-ts4.5/i18n/th.d.ts +33 -0
  105. package/dist/types-ts4.5/i18n/tr.d.ts +35 -0
  106. package/dist/types-ts4.5/i18n/uk.d.ts +35 -0
  107. package/dist/types-ts4.5/i18n/vi.d.ts +33 -0
  108. package/dist/types-ts4.5/i18n/zh.d.ts +35 -0
  109. package/dist/types-ts4.5/i18n/zh_TW.d.ts +35 -0
  110. package/dist/types-ts4.5/index.d.ts +1 -0
  111. package/dist/types-ts4.5/plugins/table/commands/clear.d.ts +3 -0
  112. package/dist/types-ts4.5/plugins/table/commands/collapse.d.ts +2 -0
  113. package/dist/types-ts4.5/plugins/table/commands/go-to-next-cell.d.ts +4 -0
  114. package/dist/types-ts4.5/plugins/table/commands/hover.d.ts +8 -0
  115. package/dist/types-ts4.5/plugins/table/commands/index.d.ts +8 -0
  116. package/dist/types-ts4.5/plugins/table/commands/insert.d.ts +10 -0
  117. package/dist/types-ts4.5/plugins/table/commands/misc.d.ts +27 -0
  118. package/dist/types-ts4.5/plugins/table/commands/referentiality.d.ts +2 -0
  119. package/dist/types-ts4.5/plugins/table/commands/selection.d.ts +8 -0
  120. package/dist/types-ts4.5/plugins/table/commands/sort.d.ts +3 -0
  121. package/dist/types-ts4.5/plugins/table/commands/split-cell.d.ts +6 -0
  122. package/dist/types-ts4.5/plugins/table/commands/toggle.d.ts +12 -0
  123. package/dist/types-ts4.5/plugins/table/commands-with-analytics.d.ts +26 -0
  124. package/dist/types-ts4.5/plugins/table/create-plugin-config.d.ts +2 -0
  125. package/dist/types-ts4.5/plugins/table/event-handlers.d.ts +16 -0
  126. package/dist/types-ts4.5/plugins/table/handlers.d.ts +3 -0
  127. package/dist/types-ts4.5/plugins/table/index.d.ts +30 -0
  128. package/dist/types-ts4.5/plugins/table/nodeviews/OverflowShadowsObserver.d.ts +25 -0
  129. package/dist/types-ts4.5/plugins/table/nodeviews/TableComponent.d.ts +73 -0
  130. package/dist/types-ts4.5/plugins/table/nodeviews/__mocks__/OverflowShadowsObserver.d.ts +9 -0
  131. package/dist/types-ts4.5/plugins/table/nodeviews/__mocks__/OverridableMock.d.ts +9 -0
  132. package/dist/types-ts4.5/plugins/table/nodeviews/table.d.ts +34 -0
  133. package/dist/types-ts4.5/plugins/table/nodeviews/tableCell.d.ts +19 -0
  134. package/dist/types-ts4.5/plugins/table/nodeviews/types.d.ts +24 -0
  135. package/dist/types-ts4.5/plugins/table/nodeviews/update-overflow-shadows.d.ts +8 -0
  136. package/dist/types-ts4.5/plugins/table/pm-plugins/decorations/plugin.d.ts +7 -0
  137. package/dist/types-ts4.5/plugins/table/pm-plugins/decorations/utils/column-controls.d.ts +3 -0
  138. package/dist/types-ts4.5/plugins/table/pm-plugins/decorations/utils/column-resizing.d.ts +2 -0
  139. package/dist/types-ts4.5/plugins/table/pm-plugins/decorations/utils/compose-decorations.d.ts +2 -0
  140. package/dist/types-ts4.5/plugins/table/pm-plugins/decorations/utils/index.d.ts +3 -0
  141. package/dist/types-ts4.5/plugins/table/pm-plugins/decorations/utils/types.d.ts +6 -0
  142. package/dist/types-ts4.5/plugins/table/pm-plugins/default-table-selection.d.ts +4 -0
  143. package/dist/types-ts4.5/plugins/table/pm-plugins/keymap.d.ts +5 -0
  144. package/dist/types-ts4.5/plugins/table/pm-plugins/main.d.ts +8 -0
  145. package/dist/types-ts4.5/plugins/table/pm-plugins/plugin-factory.d.ts +1 -0
  146. package/dist/types-ts4.5/plugins/table/pm-plugins/plugin-key.d.ts +3 -0
  147. package/dist/types-ts4.5/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.d.ts +15 -0
  148. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/commands.d.ts +3 -0
  149. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/index.d.ts +6 -0
  150. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.d.ts +6 -0
  151. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.d.ts +72 -0
  152. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/plugin-key.d.ts +3 -0
  153. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/plugin-state.d.ts +3 -0
  154. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/plugin.d.ts +4 -0
  155. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/types.d.ts +16 -0
  156. package/dist/types-ts4.5/plugins/table/pm-plugins/sticky-headers/util.d.ts +2 -0
  157. package/dist/types-ts4.5/plugins/table/pm-plugins/table-local-id.d.ts +22 -0
  158. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/commands.d.ts +25 -0
  159. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/event-handlers.d.ts +4 -0
  160. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/index.d.ts +4 -0
  161. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/plugin-factory.d.ts +4 -0
  162. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/plugin-key.d.ts +3 -0
  163. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/plugin.d.ts +6 -0
  164. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/reducer.d.ts +3 -0
  165. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/colgroup.d.ts +15 -0
  166. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/column-state.d.ts +14 -0
  167. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/content-width.d.ts +4 -0
  168. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/dom.d.ts +13 -0
  169. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/index.d.ts +12 -0
  170. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/misc.d.ts +22 -0
  171. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/resize-column.d.ts +2 -0
  172. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/resize-logic.d.ts +4 -0
  173. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/resize-state.d.ts +29 -0
  174. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/scale-table.d.ts +17 -0
  175. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/types.d.ts +22 -0
  176. package/dist/types-ts4.5/plugins/table/pm-plugins/table-resizing/utils/unit-to-number.d.ts +1 -0
  177. package/dist/types-ts4.5/plugins/table/pm-plugins/table-selection-keymap.d.ts +4 -0
  178. package/dist/types-ts4.5/plugins/table/reducer.d.ts +3 -0
  179. package/dist/types-ts4.5/plugins/table/toolbar.d.ts +37 -0
  180. package/dist/types-ts4.5/plugins/table/transforms/column-width.d.ts +18 -0
  181. package/dist/types-ts4.5/plugins/table/transforms/delete-columns.d.ts +3 -0
  182. package/dist/types-ts4.5/plugins/table/transforms/delete-rows.d.ts +3 -0
  183. package/dist/types-ts4.5/plugins/table/transforms/fix-tables.d.ts +9 -0
  184. package/dist/types-ts4.5/plugins/table/transforms/index.d.ts +6 -0
  185. package/dist/types-ts4.5/plugins/table/transforms/merge.d.ts +5 -0
  186. package/dist/types-ts4.5/plugins/table/transforms/replace-table.d.ts +5 -0
  187. package/dist/types-ts4.5/plugins/table/transforms/split.d.ts +9 -0
  188. package/dist/types-ts4.5/plugins/table/types.d.ts +332 -0
  189. package/dist/types-ts4.5/plugins/table/ui/FloatingContextualButton/index.d.ts +29 -0
  190. package/dist/types-ts4.5/plugins/table/ui/FloatingContextualButton/styles.d.ts +3 -0
  191. package/dist/types-ts4.5/plugins/table/ui/FloatingContextualMenu/ContextualMenu.d.ts +88 -0
  192. package/dist/types-ts4.5/plugins/table/ui/FloatingContextualMenu/index.d.ts +23 -0
  193. package/dist/types-ts4.5/plugins/table/ui/FloatingContextualMenu/styles.d.ts +2 -0
  194. package/dist/types-ts4.5/plugins/table/ui/FloatingDeleteButton/DeleteButton.d.ts +14 -0
  195. package/dist/types-ts4.5/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.d.ts +10 -0
  196. package/dist/types-ts4.5/plugins/table/ui/FloatingDeleteButton/index.d.ts +54 -0
  197. package/dist/types-ts4.5/plugins/table/ui/FloatingDeleteButton/types.d.ts +1 -0
  198. package/dist/types-ts4.5/plugins/table/ui/FloatingInsertButton/InsertButton.d.ts +12 -0
  199. package/dist/types-ts4.5/plugins/table/ui/FloatingInsertButton/getPopupOptions.d.ts +3 -0
  200. package/dist/types-ts4.5/plugins/table/ui/FloatingInsertButton/index.d.ts +35 -0
  201. package/dist/types-ts4.5/plugins/table/ui/LayoutButton/index.d.ts +21 -0
  202. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/CornerControls/index.d.ts +16 -0
  203. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/NumberColumn/index.d.ts +21 -0
  204. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/RowControls/index.d.ts +17 -0
  205. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/index.d.ts +40 -0
  206. package/dist/types-ts4.5/plugins/table/ui/common-styles.d.ts +8 -0
  207. package/dist/types-ts4.5/plugins/table/ui/consts.d.ts +39 -0
  208. package/dist/types-ts4.5/plugins/table/ui/messages.d.ts +58 -0
  209. package/dist/types-ts4.5/plugins/table/ui/ui-styles.d.ts +15 -0
  210. package/dist/types-ts4.5/plugins/table/utils/analytics.d.ts +18 -0
  211. package/dist/types-ts4.5/plugins/table/utils/collapse.d.ts +29 -0
  212. package/dist/types-ts4.5/plugins/table/utils/column-controls.d.ts +10 -0
  213. package/dist/types-ts4.5/plugins/table/utils/decoration.d.ts +16 -0
  214. package/dist/types-ts4.5/plugins/table/utils/dom.d.ts +20 -0
  215. package/dist/types-ts4.5/plugins/table/utils/get-allow-add-column-custom-step.d.ts +2 -0
  216. package/dist/types-ts4.5/plugins/table/utils/index.d.ts +11 -0
  217. package/dist/types-ts4.5/plugins/table/utils/nodes.d.ts +12 -0
  218. package/dist/types-ts4.5/plugins/table/utils/paste.d.ts +14 -0
  219. package/dist/types-ts4.5/plugins/table/utils/row-controls.d.ts +16 -0
  220. package/dist/types-ts4.5/plugins/table/utils/selection.d.ts +6 -0
  221. package/dist/types-ts4.5/plugins/table/utils/table.d.ts +4 -0
  222. package/dist/types-ts4.5/plugins/table/utils/update-plugin-state-decorations.d.ts +4 -0
  223. package/dist/types-ts4.5/plugins/table-plugin.d.ts +2 -0
  224. package/dist/types-ts4.5/types/i18n.d.ts +5 -0
  225. package/examples/99-testing.tsx +4 -94
  226. package/package.json +19 -9
  227. package/plugin-key/package.json +2 -2
  228. package/report.api.md +11 -0
  229. package/src/__tests__/unit/analytics.ts +6 -0
  230. package/src/__tests__/unit/collab.ts +6 -0
  231. package/src/__tests__/unit/color-picker.ts +4 -0
  232. package/src/__tests__/unit/commands/go-to-next-cell.ts +8 -1
  233. package/src/__tests__/unit/commands/insert.ts +6 -0
  234. package/src/__tests__/unit/commands/misc.ts +14 -6
  235. package/src/__tests__/unit/commands/sort.ts +19 -12
  236. package/src/__tests__/unit/commands.ts +10 -2
  237. package/src/__tests__/unit/copy-paste.ts +6 -0
  238. package/src/__tests__/unit/event-handlers/index.ts +13 -8
  239. package/src/__tests__/unit/event-handlers.ts +13 -1
  240. package/src/__tests__/unit/fix-tables.ts +8 -4
  241. package/src/__tests__/unit/get-toolbar-config.ts +4 -0
  242. package/src/__tests__/unit/handlers.ts +8 -1
  243. package/src/__tests__/unit/hover-selection.ts +8 -1
  244. package/src/__tests__/unit/index.ts +10 -2
  245. package/src/__tests__/unit/keymap.ts +10 -4
  246. package/src/__tests__/unit/layout.ts +4 -0
  247. package/src/__tests__/unit/nodeviews/cell.ts +6 -0
  248. package/src/__tests__/unit/nodeviews/table.ts +16 -9
  249. package/src/__tests__/unit/pm-plugins/decorations/column-resizing.ts +14 -4
  250. package/src/__tests__/unit/pm-plugins/decorations/plugin.ts +8 -1
  251. package/src/__tests__/unit/pm-plugins/main-with-allow-collapse.ts +4 -0
  252. package/src/__tests__/unit/pm-plugins/main.ts +6 -0
  253. package/src/__tests__/unit/pm-plugins/safari-delete-composition-text-issue-workaround.ts +8 -4
  254. package/src/__tests__/unit/pm-plugins/sticky-headers/tableRow.tsx +13 -4
  255. package/src/__tests__/unit/pm-plugins/table-resizing/event-handlers.ts +6 -0
  256. package/src/__tests__/unit/pm-plugins/table-selection-keymap.ts +6 -0
  257. package/src/__tests__/unit/sort-column.ts +6 -0
  258. package/src/__tests__/unit/toolbar.ts +16 -9
  259. package/src/__tests__/unit/transforms/delete-columns.ts +8 -1
  260. package/src/__tests__/unit/transforms/delete-rows.ts +8 -1
  261. package/src/__tests__/unit/transforms/merging.ts +8 -1
  262. package/src/__tests__/unit/ui/ContextualMenu.tsx +8 -4
  263. package/src/__tests__/unit/ui/CornerControls.tsx +8 -1
  264. package/src/__tests__/unit/ui/FloatingContextualButton.tsx +8 -1
  265. package/src/__tests__/unit/ui/FloatingContextualMenu.tsx +8 -1
  266. package/src/__tests__/unit/ui/RowControls.tsx +8 -1
  267. package/src/__tests__/unit/ui/TableFloatingControls.tsx +8 -1
  268. package/src/__tests__/unit/undo-redo.ts +6 -0
  269. package/src/__tests__/unit/utils/collapse.ts +4 -0
  270. package/src/__tests__/unit/utils/nodes.ts +8 -1
  271. package/src/__tests__/unit/utils/row-controls.ts +8 -1
  272. package/src/__tests__/unit/utils.ts +8 -1
  273. package/src/plugins/table/commands/misc.ts +2 -4
  274. package/src/plugins/table/index.tsx +39 -40
  275. package/src/plugins/table/transforms/column-width.ts +0 -11
  276. package/src/plugins/table/transforms/delete-columns.ts +4 -5
  277. package/src/plugins/table/transforms/delete-rows.ts +4 -7
  278. package/src/plugins/table/transforms/fix-tables.ts +0 -17
  279. package/src/plugins/table/transforms/index.ts +1 -2
  280. package/src/plugins/table/transforms/merge.ts +9 -20
  281. package/types/package.json +2 -2
  282. package/ui/common-styles/package.json +2 -2
  283. package/ui/consts/package.json +2 -2
  284. package/dist/cjs/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +0 -79
  285. package/dist/cjs/plugins/table/transforms/metadata.js +0 -20
  286. package/dist/es2019/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +0 -71
  287. package/dist/es2019/plugins/table/transforms/metadata.js +0 -12
  288. package/dist/esm/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +0 -71
  289. package/dist/esm/plugins/table/transforms/metadata.js +0 -14
  290. package/dist/types/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.d.ts +0 -4
  291. package/dist/types/plugins/table/transforms/metadata.d.ts +0 -21
  292. package/src/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.ts +0 -78
  293. package/src/plugins/table/transforms/metadata.ts +0 -35
@@ -0,0 +1,73 @@
1
+ import React from 'react';
2
+ import { Node as PmNode } from 'prosemirror-model';
3
+ import { EditorView } from 'prosemirror-view';
4
+ import type { EditorContainerWidth } from '@atlaskit/editor-common/types';
5
+ import { RowStickyState, StickyPluginState } from '../pm-plugins/sticky-headers';
6
+ import type { GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
7
+ import { ColumnResizingPluginState, ShadowEvent } from '../types';
8
+ import type { TableColumnOrdering } from '@atlaskit/adf-schema/steps';
9
+ import type { TableOptions } from './types';
10
+ import type { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
11
+ export interface ComponentProps {
12
+ view: EditorView;
13
+ getNode: () => PmNode;
14
+ allowColumnResizing?: boolean;
15
+ eventDispatcher: EventDispatcher;
16
+ getPos: () => number;
17
+ options?: TableOptions;
18
+ contentDOM: (node: HTMLElement | null) => void;
19
+ containerWidth: EditorContainerWidth;
20
+ allowControls: boolean;
21
+ isHeaderRowEnabled: boolean;
22
+ isHeaderColumnEnabled: boolean;
23
+ isMediaFullscreen?: boolean;
24
+ tableActive: boolean;
25
+ ordering: TableColumnOrdering;
26
+ tableResizingPluginState?: ColumnResizingPluginState;
27
+ getEditorFeatureFlags: GetEditorFeatureFlags;
28
+ }
29
+ interface TableState {
30
+ scroll: number;
31
+ tableContainerWidth: string;
32
+ parentWidth?: number;
33
+ isLoading: boolean;
34
+ stickyHeader?: RowStickyState;
35
+ [ShadowEvent.SHOW_BEFORE_SHADOW]: boolean;
36
+ [ShadowEvent.SHOW_AFTER_SHADOW]: boolean;
37
+ }
38
+ declare class TableComponent extends React.Component<ComponentProps, TableState> {
39
+ static displayName: string;
40
+ state: TableState;
41
+ private wrapper?;
42
+ private table?;
43
+ private node;
44
+ private containerWidth?;
45
+ private layoutSize?;
46
+ private overflowShadowsObserver?;
47
+ constructor(props: ComponentProps);
48
+ componentDidMount(): void;
49
+ componentWillUnmount(): void;
50
+ componentDidUpdate(prevProps: ComponentProps): void;
51
+ private updateShadows;
52
+ private updateShadowState;
53
+ private createShadowSentinels;
54
+ onStickyState: (state: StickyPluginState) => void;
55
+ prevTableState: any;
56
+ render(): JSX.Element;
57
+ private getMarginLeft;
58
+ private handleScroll;
59
+ private handleTableResizing;
60
+ private scaleTable;
61
+ private handleAutoSize;
62
+ private handleWindowResize;
63
+ private updateTableContainerWidth;
64
+ private getParentNodeWidth;
65
+ private updateParentWidth;
66
+ private tableNodeLayoutSize;
67
+ private scaleTableDebounced;
68
+ private handleTableResizingDebounced;
69
+ private handleScrollDebounced;
70
+ private handleAutoSizeDebounced;
71
+ private handleWindowResizeDebounced;
72
+ }
73
+ export default TableComponent;
@@ -0,0 +1,9 @@
1
+ import { OverridableMock } from './OverridableMock';
2
+ export declare class OverflowShadowsObserver extends OverridableMock {
3
+ leftShadowSentinel: HTMLElement | null;
4
+ rightShadowSentinel: HTMLElement | null;
5
+ constructor(...inputs: any[]);
6
+ observeShadowSentinels: any;
7
+ updateStickyShadows: any;
8
+ dispose: any;
9
+ }
@@ -0,0 +1,9 @@
1
+ export declare abstract class OverridableMock {
2
+ static mockOverrides: {
3
+ [key: string]: any;
4
+ };
5
+ constructor(...inputs: any[]);
6
+ getMock(key: string): any;
7
+ static setMock(thisKey: string, value: any): void;
8
+ static resetMocks(): void;
9
+ }
@@ -0,0 +1,34 @@
1
+ /// <reference types="react" />
2
+ import { Node as PmNode } from 'prosemirror-model';
3
+ import { EditorView, NodeView } from 'prosemirror-view';
4
+ import type { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
5
+ import type { getPosHandler, getPosHandlerNode } from '@atlaskit/editor-common/types';
6
+ import ReactNodeView from '@atlaskit/editor-common/react-node-view';
7
+ import type { PortalProviderAPI } from '@atlaskit/editor-common/portal-provider';
8
+ import type { GetEditorContainerWidth, GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
9
+ import { Props, TableOptions } from './types';
10
+ type ForwardRef = (node: HTMLElement | null) => void;
11
+ export default class TableView extends ReactNodeView<Props> {
12
+ private table;
13
+ private resizeObserver?;
14
+ private tableRenderOptimization?;
15
+ eventDispatcher?: EventDispatcher;
16
+ getPos: getPosHandlerNode;
17
+ constructor(props: Props);
18
+ getContentDOM(): {
19
+ dom: Node;
20
+ contentDOM?: Node | null | undefined;
21
+ };
22
+ setDomAttrs(node: PmNode): void;
23
+ getNode: () => PmNode<any>;
24
+ render(props: Props, forwardRef: ForwardRef): JSX.Element;
25
+ private hasHoveredRows;
26
+ viewShouldUpdate(nextNode: PmNode): boolean;
27
+ ignoreMutation(mutation: MutationRecord | {
28
+ type: 'selection';
29
+ target: Element;
30
+ }): boolean;
31
+ destroy(): void;
32
+ }
33
+ export declare const createTableView: (node: PmNode, view: EditorView, getPos: getPosHandler, portalProviderAPI: PortalProviderAPI, eventDispatcher: EventDispatcher, options: TableOptions, getEditorContainerWidth: GetEditorContainerWidth, getEditorFeatureFlags: GetEditorFeatureFlags) => NodeView;
34
+ export {};
@@ -0,0 +1,19 @@
1
+ import { Node } from 'prosemirror-model';
2
+ import { EditorView, NodeView } from 'prosemirror-view';
3
+ import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
4
+ import type { getPosHandler } from '@atlaskit/editor-common/types';
5
+ import type { GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
6
+ export default class TableCellNodeView implements NodeView {
7
+ node: Node;
8
+ dom: HTMLElement;
9
+ contentDOM: HTMLElement;
10
+ getPos: getPosHandler;
11
+ view: EditorView;
12
+ providerFactory?: ProviderFactory;
13
+ observer?: ResizeObserver;
14
+ mouseMoveOptimization?: boolean;
15
+ constructor(node: Node, view: EditorView, getPos: any, getEditorFeatureFlags: GetEditorFeatureFlags, observer?: ResizeObserver);
16
+ private updateNodeView;
17
+ update(node: Node): boolean;
18
+ destroy(): void;
19
+ }
@@ -0,0 +1,24 @@
1
+ import { Node as PmNode } from 'prosemirror-model';
2
+ import { EditorView } from 'prosemirror-view';
3
+ import type { GetEditorContainerWidth, GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
4
+ import { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
5
+ import type { PortalProviderAPI } from '@atlaskit/editor-common/portal-provider';
6
+ export type TableOptions = {
7
+ isBreakoutEnabled?: boolean;
8
+ isFullWidthModeEnabled?: boolean;
9
+ wasFullWidthModeEnabled?: boolean;
10
+ };
11
+ export interface Props {
12
+ node: PmNode;
13
+ view: EditorView;
14
+ allowColumnResizing?: boolean;
15
+ cellMinWidth?: number;
16
+ portalProviderAPI: PortalProviderAPI;
17
+ eventDispatcher: EventDispatcher;
18
+ getPos: () => number;
19
+ options?: TableOptions;
20
+ tableRenderOptimization?: boolean;
21
+ getEditorContainerWidth: GetEditorContainerWidth;
22
+ getEditorFeatureFlags: GetEditorFeatureFlags;
23
+ hasIntlContext: boolean;
24
+ }
@@ -0,0 +1,8 @@
1
+ import { EditorState } from 'prosemirror-state';
2
+ import type { GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
3
+ export declare const updateShadowListForStickyStyles: (heightStyle: string, shadows: HTMLCollection) => void;
4
+ /**
5
+ * Update overflow shadows for a given wrapper & table.
6
+ * if `overflowShadowOptimization` is enabled, this will exit early.
7
+ */
8
+ export declare const updateOverflowShadows: (getEditorFeatureFlags: GetEditorFeatureFlags) => (editorState: EditorState, wrapper?: HTMLElement | null, table?: HTMLElement | null, rightShadows?: NodeListOf<HTMLElement> | null, leftShadows?: NodeListOf<HTMLElement> | null) => false | undefined;
@@ -0,0 +1,7 @@
1
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
2
+ import { EditorState, PluginKey, Transaction, ReadonlyTransaction } from 'prosemirror-state';
3
+ import { DecorationSet } from 'prosemirror-view';
4
+ export declare const pluginKey: PluginKey<any, any>;
5
+ export declare const getDecorations: (state: EditorState) => DecorationSet;
6
+ export declare const handleDocOrSelectionChanged: (tr: Transaction | ReadonlyTransaction, decorationSet: DecorationSet, oldState: EditorState) => DecorationSet;
7
+ export declare const createPlugin: () => SafePlugin<any, any>;
@@ -0,0 +1,3 @@
1
+ import { DecorationTransformer } from './types';
2
+ export declare const maybeUpdateColumnControlsSelectedDecoration: DecorationTransformer;
3
+ export declare const buildColumnControlsDecorations: DecorationTransformer;
@@ -0,0 +1,2 @@
1
+ import { DecorationTransformer } from './types';
2
+ export declare const buildColumnResizingDecorations: (rowEndIndex: number, columnEndIndex: number) => DecorationTransformer;
@@ -0,0 +1,2 @@
1
+ import { DecorationTransformer } from './types';
2
+ export declare const composeDecorations: (transformers: Array<DecorationTransformer>) => DecorationTransformer;
@@ -0,0 +1,3 @@
1
+ export { buildColumnControlsDecorations, maybeUpdateColumnControlsSelectedDecoration, } from './column-controls';
2
+ export { buildColumnResizingDecorations } from './column-resizing';
3
+ export { composeDecorations } from './compose-decorations';
@@ -0,0 +1,6 @@
1
+ import { ReadonlyTransaction, Transaction } from 'prosemirror-state';
2
+ import { DecorationSet } from 'prosemirror-view';
3
+ export type DecorationTransformer = ({ decorationSet, tr, }: {
4
+ decorationSet: DecorationSet;
5
+ tr: Transaction | ReadonlyTransaction;
6
+ }) => DecorationSet;
@@ -0,0 +1,4 @@
1
+ export declare const defaultTableSelection: {
2
+ hoveredColumns: never[];
3
+ hoveredRows: never[];
4
+ };
@@ -0,0 +1,5 @@
1
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
2
+ import type { GetEditorContainerWidth } from '@atlaskit/editor-common/types';
3
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
4
+ export declare function keymapPlugin(getEditorContainerWidth: GetEditorContainerWidth, editorAnalyticsAPI: EditorAnalyticsAPI | undefined | null): SafePlugin;
5
+ export default keymapPlugin;
@@ -0,0 +1,8 @@
1
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
2
+ import type { Dispatch, EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
3
+ import type { PortalProviderAPI } from '@atlaskit/editor-common/portal-provider';
4
+ import { PluginConfig } from '../types';
5
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
6
+ import type { DispatchAnalyticsEvent } from '@atlaskit/editor-common/analytics';
7
+ import type { GetEditorContainerWidth, GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
8
+ export declare const createPlugin: (dispatchAnalyticsEvent: DispatchAnalyticsEvent, dispatch: Dispatch, portalProviderAPI: PortalProviderAPI, eventDispatcher: EventDispatcher, pluginConfig: PluginConfig, getEditorContainerWidth: GetEditorContainerWidth, getEditorFeatureFlags: GetEditorFeatureFlags, breakoutEnabled?: boolean, fullWidthModeEnabled?: boolean, previousFullWidthModeEnabled?: boolean, editorAnalyticsAPI?: EditorAnalyticsAPI) => SafePlugin<import("../types").TablePluginState, import("prosemirror-model").Schema<any, any>>;
@@ -0,0 +1 @@
1
+ export declare const createPluginState: (dispatch: import("@atlaskit/editor-common/event-dispatcher").Dispatch<any>, initialState: import("../types").TablePluginState | ((state: import("prosemirror-state").EditorState<any>) => import("../types").TablePluginState)) => import("prosemirror-state").SafeStateField<import("../types").TablePluginState, import("prosemirror-model").Schema<any, any>>, createCommand: <A = import("../types").TablePluginAction>(action: A | ((state: Readonly<import("prosemirror-state").EditorState<any>>) => false | A), transform?: ((tr: import("prosemirror-state").Transaction<any>, state: import("prosemirror-state").EditorState<any>) => import("prosemirror-state").Transaction<any>) | undefined) => import("@atlaskit/editor-common/types").Command, getPluginState: (state: import("prosemirror-state").EditorState<any>) => import("../types").TablePluginState;
@@ -0,0 +1,3 @@
1
+ import { PluginKey } from 'prosemirror-state';
2
+ import { TablePluginState } from '../types';
3
+ export declare const pluginKey: PluginKey<TablePluginState, any>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Fix an issue that composition text replacement in Safari removes empty nodes during text composition text deletion.
3
+ * https://github.com/ProseMirror/prosemirror/issues/934
4
+ * We will remove this plugin when Webkit fix the problem itself.
5
+ */
6
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
7
+ import { PluginKey } from 'prosemirror-state';
8
+ import { DecorationSet } from 'prosemirror-view';
9
+ interface SafariDeleteCompositionTextIssueWorkaroundPluginState {
10
+ renderSpan: boolean;
11
+ decorations: DecorationSet;
12
+ }
13
+ export declare const tableSafariDeleteCompositionTextIssueWorkaroundKey: PluginKey<SafariDeleteCompositionTextIssueWorkaroundPluginState, any>;
14
+ export declare const createPlugin: () => SafePlugin<SafariDeleteCompositionTextIssueWorkaroundPluginState, any>;
15
+ export {};
@@ -0,0 +1,3 @@
1
+ import { RowStickyState } from './types';
2
+ export declare const updateStickyState: (rowState: RowStickyState) => import("@atlaskit/editor-common/types").Command;
3
+ export declare const removeStickyState: (pos: number) => import("@atlaskit/editor-common/types").Command;
@@ -0,0 +1,6 @@
1
+ export { createPlugin } from './plugin';
2
+ export { pluginKey } from './plugin-key';
3
+ export type { StickyPluginState, RowStickyState } from './types';
4
+ export { findStickyHeaderForTable } from './util';
5
+ export { updateStickyState, removeStickyState } from './commands';
6
+ export { TableRowNodeView } from './nodeviews/tableRow';
@@ -0,0 +1,6 @@
1
+ export type TableDOMElements = {
2
+ wrapper: HTMLDivElement;
3
+ table: HTMLTableElement;
4
+ };
5
+ export declare const getTree: (tr: HTMLTableRowElement) => TableDOMElements | null;
6
+ export declare const getTop: (element: HTMLElement | Window | undefined) => number;
@@ -0,0 +1,72 @@
1
+ /// <reference types="lodash" />
2
+ import { Node as PmNode } from 'prosemirror-model';
3
+ import { EditorView, NodeView } from 'prosemirror-view';
4
+ import { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
5
+ import { TablePluginState } from '../../../types';
6
+ import { TableDOMElements } from './dom';
7
+ import type { GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
8
+ /**
9
+ * Check if a given node is a header row with this definition:
10
+ * - all children are tableHeader cells
11
+ * - no table cells have been have merged with other table row cells
12
+ *
13
+ * @param node ProseMirror node
14
+ * @return boolean if it meets definition
15
+ */
16
+ export declare const supportedHeaderRow: (node: PmNode) => boolean;
17
+ export declare class TableRowNodeView implements NodeView {
18
+ view: EditorView;
19
+ node: PmNode;
20
+ getPos: () => number;
21
+ eventDispatcher: EventDispatcher;
22
+ dom: HTMLTableRowElement;
23
+ contentDOM: HTMLElement;
24
+ isHeaderRow: boolean;
25
+ editorScrollableElement?: HTMLElement | Window;
26
+ colControlsOffset: number;
27
+ focused: boolean;
28
+ topPosEditorElement: number;
29
+ isSticky: boolean;
30
+ lastTimePainted: number;
31
+ private intersectionObserver?;
32
+ private resizeObserver?;
33
+ private stickyHeadersOptimization;
34
+ private sentinels;
35
+ private stickyRowHeight?;
36
+ get tree(): TableDOMElements | null | undefined;
37
+ constructor(node: PmNode, view: EditorView, getPos: any, eventDispatcher: EventDispatcher, getEditorFeatureFlags: GetEditorFeatureFlags);
38
+ listening: boolean;
39
+ headerRowMouseScrollEnd: import("lodash").DebouncedFunc<() => void>;
40
+ headerRowMouseScroll: import("lodash").DebouncedFunc<() => void>;
41
+ subscribe(): void;
42
+ unsubscribe(): void;
43
+ private initObservers;
44
+ private createResizeObserver;
45
+ private createIntersectionObserver;
46
+ previousDomTop: number | undefined;
47
+ previousPadding: number | undefined;
48
+ latestDomTop: number | undefined;
49
+ nextFrame: number | undefined;
50
+ onScroll: () => void;
51
+ loop: () => void;
52
+ paint: (tree: TableDOMElements) => void;
53
+ update(node: PmNode, ..._args: any[]): boolean;
54
+ destroy(): void;
55
+ ignoreMutation(mutationRecord: MutationRecord | {
56
+ type: 'selection';
57
+ target: Element;
58
+ }): boolean;
59
+ onTablePluginState: (state: TablePluginState) => void;
60
+ updateStickyHeaderWidth: () => void;
61
+ shouldHeaderStick: (tree: TableDOMElements) => boolean;
62
+ makeHeaderRowSticky: (tree: TableDOMElements, scrollTop?: number) => void;
63
+ makeRowHeaderNotSticky: (table: HTMLElement, isEditorDestroyed?: boolean) => void;
64
+ getWrapperoffset: (inverse?: boolean) => number;
65
+ getWrapperRefTop: (wrapper: HTMLElement) => number;
66
+ getScrolledTableTop: (wrapper: HTMLElement) => number;
67
+ getCurrentTableTop: (tree: TableDOMElements) => number;
68
+ padding: number;
69
+ top: number;
70
+ emitOn: (top: number, padding: number) => void;
71
+ emitOff: (isEditorDestroyed: boolean) => void;
72
+ }
@@ -0,0 +1,3 @@
1
+ import { PluginKey } from 'prosemirror-state';
2
+ import { StickyPluginState } from './types';
3
+ export declare const pluginKey: PluginKey<StickyPluginState, any>;
@@ -0,0 +1,3 @@
1
+ import { StickyPluginAction, StickyPluginState } from './types';
2
+ declare const createPluginState: (dispatch: import("@atlaskit/editor-common/event-dispatcher").Dispatch<any>, initialState: StickyPluginState | ((state: import("prosemirror-state").EditorState<any>) => StickyPluginState)) => import("prosemirror-state").SafeStateField<StickyPluginState, import("prosemirror-model").Schema<any, any>>, createCommand: <A = StickyPluginAction>(action: A | ((state: Readonly<import("prosemirror-state").EditorState<any>>) => false | A), transform?: ((tr: import("prosemirror-state").Transaction<any>, state: import("prosemirror-state").EditorState<any>) => import("prosemirror-state").Transaction<any>) | undefined) => import("@atlaskit/editor-common/types").Command;
3
+ export { createPluginState, createCommand };
@@ -0,0 +1,4 @@
1
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
2
+ import type { GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
3
+ import { EventDispatcher, Dispatch } from '@atlaskit/editor-common/event-dispatcher';
4
+ export declare const createPlugin: (dispatch: Dispatch, eventDispatcher: EventDispatcher, initialState: (() => never[]) | undefined, getEditorFeatureFlags: GetEditorFeatureFlags) => SafePlugin<import("./types").StickyPluginState, import("prosemirror-model").Schema<any, any>>;
@@ -0,0 +1,16 @@
1
+ export type RowStickyState = {
2
+ pos: number;
3
+ top: number;
4
+ padding: number;
5
+ sticky: boolean;
6
+ };
7
+ export type StickyPluginState = RowStickyState[];
8
+ export type UpdateSticky = {
9
+ name: 'UPDATE';
10
+ state: RowStickyState;
11
+ };
12
+ export type RemoveSticky = {
13
+ name: 'REMOVE';
14
+ pos: number;
15
+ };
16
+ export type StickyPluginAction = UpdateSticky | RemoveSticky;
@@ -0,0 +1,2 @@
1
+ import { StickyPluginState } from './types';
2
+ export declare const findStickyHeaderForTable: (state: StickyPluginState, tablePos: number | undefined) => import("./types").RowStickyState | undefined;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * A plugin for ensuring tables always have unique local IDs, and to
3
+ * preserve/not regenerate them when they are being cut and paste around the
4
+ * document.
5
+ *
6
+ * More broadly, this plugin should be generalised so it can solve this ‘unique
7
+ * id’ problem across the codebase for any node, but for now this will live on
8
+ * its own solving only for tables.
9
+ *
10
+ * TODO: https://product-fabric.atlassian.net/browse/ED-12714
11
+ *
12
+ */
13
+ import { Dispatch } from '@atlaskit/editor-common/event-dispatcher';
14
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
15
+ interface TableLocalIdPluginState {
16
+ parsedForLocalIds: boolean;
17
+ }
18
+ /**
19
+ * Ensures uniqueness of `localId`s on tables being created or edited
20
+ */
21
+ declare const createPlugin: (dispatch: Dispatch) => SafePlugin<TableLocalIdPluginState, any>;
22
+ export { createPlugin };
@@ -0,0 +1,25 @@
1
+ import { Node as PMNode } from 'prosemirror-model';
2
+ import { Transaction } from 'prosemirror-state';
3
+ import type { Command } from '@atlaskit/editor-common/types';
4
+ import type { DomAtPos } from 'prosemirror-utils';
5
+ import { ResizeState, ScaleOptions } from './utils';
6
+ import { ContentNodeWithPos } from 'prosemirror-utils';
7
+ export declare const scaleTable: (tableRef: HTMLTableElement | null | undefined, options: ScaleOptions, domAtPos: DomAtPos) => Command;
8
+ export declare const evenColumns: ({ resizeState, table, start, event, }: {
9
+ resizeState: ResizeState;
10
+ table: PMNode;
11
+ start: number;
12
+ event: MouseEvent;
13
+ }) => Command;
14
+ export declare const distributeColumnsWidths: (newResizeState: ResizeState, table: ContentNodeWithPos) => Command;
15
+ export declare const setResizeHandlePos: (resizeHandlePos: number | null) => Command;
16
+ export declare const stopResizing: (tr?: Transaction) => Command;
17
+ export declare const setDragging: (dragging: {
18
+ startX: number;
19
+ startWidth: number;
20
+ } | null, tr?: Transaction) => Command;
21
+ export declare const setLastClick: (lastClick: {
22
+ x: number;
23
+ y: number;
24
+ time: number;
25
+ } | null, transform?: ((tr: Transaction) => Transaction) | undefined) => Command;
@@ -0,0 +1,4 @@
1
+ import { EditorView } from 'prosemirror-view';
2
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
3
+ import type { GetEditorContainerWidth, GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
4
+ export declare const handleMouseDown: (view: EditorView, event: MouseEvent, localResizeHandlePos: number, getEditorContainerWidth: GetEditorContainerWidth, getEditorFeatureFlags: GetEditorFeatureFlags, editorAnalyticsAPI?: EditorAnalyticsAPI) => boolean;
@@ -0,0 +1,4 @@
1
+ export { createPlugin } from './plugin';
2
+ export { scaleTable } from './commands';
3
+ export { pluginKey } from './plugin-key';
4
+ export { getPluginState } from './plugin-factory';
@@ -0,0 +1,4 @@
1
+ import { ColumnResizingPluginState } from '../../types';
2
+ export declare const createCommand: <A = import("../../types").ColumnResizingPluginAction>(action: A | ((state: Readonly<import("prosemirror-state").EditorState<any>>) => false | A), transform?: ((tr: import("prosemirror-state").Transaction<any>, state: import("prosemirror-state").EditorState<any>) => import("prosemirror-state").Transaction<any>) | undefined) => import("@atlaskit/editor-common/types").Command;
3
+ export declare const createPluginState: (dispatch: import("@atlaskit/editor-common/event-dispatcher").Dispatch<any>, initialState: ColumnResizingPluginState | ((state: import("prosemirror-state").EditorState<any>) => ColumnResizingPluginState)) => import("prosemirror-state").SafeStateField<ColumnResizingPluginState, import("prosemirror-model").Schema<any, any>>;
4
+ export declare const getPluginState: (state: import("prosemirror-state").EditorState<any>) => ColumnResizingPluginState;
@@ -0,0 +1,3 @@
1
+ import { PluginKey } from 'prosemirror-state';
2
+ import { ColumnResizingPluginState } from '../../types';
3
+ export declare const pluginKey: PluginKey<ColumnResizingPluginState, any>;
@@ -0,0 +1,6 @@
1
+ import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
2
+ import { Dispatch } from '@atlaskit/editor-common/event-dispatcher';
3
+ import { ColumnResizingPluginState } from '../../types';
4
+ import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics';
5
+ import type { GetEditorContainerWidth, GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
6
+ export declare function createPlugin(dispatch: Dispatch<ColumnResizingPluginState>, { lastColumnResizable }: ColumnResizingPluginState, getEditorContainerWidth: GetEditorContainerWidth, getEditorFeatureFlags: GetEditorFeatureFlags, editorAnalyticsAPI?: EditorAnalyticsAPI): SafePlugin<ColumnResizingPluginState, import("prosemirror-model").Schema<any, any>>;
@@ -0,0 +1,3 @@
1
+ import { ColumnResizingPluginAction, ColumnResizingPluginState } from '../../types';
2
+ declare const _default: (pluginState: ColumnResizingPluginState, action: ColumnResizingPluginAction) => ColumnResizingPluginState;
3
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import { Node as PmNode } from 'prosemirror-model';
2
+ type Col = Array<string | {
3
+ [name: string]: string;
4
+ }>;
5
+ export declare const generateColgroup: (table: PmNode) => Col[];
6
+ export declare const insertColgroupFromNode: (tableRef: HTMLTableElement, table: PmNode) => HTMLCollection;
7
+ export declare const hasTableBeenResized: (table: PmNode) => boolean;
8
+ /**
9
+ * Check if a table has all the column width set to tableCellMinWidth(48px) or null
10
+ *
11
+ * @param table
12
+ * @returns true if all column width is equal to tableCellMinWidth or null, false otherwise
13
+ */
14
+ export declare const isMinCellWidthTable: (table: PmNode) => boolean;
15
+ export {};
@@ -0,0 +1,14 @@
1
+ import { Node as PMNode } from 'prosemirror-model';
2
+ export interface ColumnState {
3
+ index: number;
4
+ width: number;
5
+ minWidth: number;
6
+ }
7
+ export declare const getColumnStateFromDOM: (cells: HTMLElement[], index: number, minWidth: number) => ColumnState;
8
+ export declare const getFreeSpace: (state: ColumnState) => number;
9
+ export declare const getCellsRefsInColumn: (columnIndex: number, table: PMNode, tableStart: number, domAtPos: (pos: number) => {
10
+ node: Node;
11
+ offset: number;
12
+ }) => HTMLElement[];
13
+ export declare const calculateColumnWidth: (cells: HTMLElement[], calculateColumnWidthCb: (css: CSSStyleDeclaration, cellRef: HTMLElement, colSpan: number) => number) => number;
14
+ export declare const addContainerLeftRightPadding: (amount: number, css: CSSStyleDeclaration) => number;
@@ -0,0 +1,4 @@
1
+ export declare function contentWidth(elem: HTMLElement, container: HTMLElement, colWidths?: number[], canvas?: HTMLCanvasElement): {
2
+ minWidth: number;
3
+ width: number;
4
+ };
@@ -0,0 +1,13 @@
1
+ import { EditorState } from 'prosemirror-state';
2
+ import { EditorView } from 'prosemirror-view';
3
+ import type { GetEditorFeatureFlags } from '@atlaskit/editor-common/types';
4
+ export declare const updateControls: (getEditorFeatureFlags: GetEditorFeatureFlags) => (state: EditorState) => void;
5
+ export declare const isClickNear: (event: MouseEvent, click: {
6
+ x: number;
7
+ y: number;
8
+ }) => boolean;
9
+ export declare const getResizeCellPos: (view: EditorView, event: MouseEvent, lastColumnResizable: boolean) => number | null;
10
+ export declare const updateStickyMargins: (table: HTMLElement) => void;
11
+ export declare const applyColWidthsToStickyRow: (colGroup: HTMLTableColElement | null, headerRow: HTMLTableRowElement) => void;
12
+ export declare const syncStickyRowToTable: (tableRef?: HTMLElement | null) => void;
13
+ export declare const applyTableWidthToStickyRow: (tableRef: HTMLElement, headerRow: HTMLTableRowElement) => void;
@@ -0,0 +1,12 @@
1
+ export { generateColgroup, insertColgroupFromNode, hasTableBeenResized, } from './colgroup';
2
+ export { contentWidth } from './content-width';
3
+ export { getColumnStateFromDOM, getFreeSpace, getCellsRefsInColumn, calculateColumnWidth, addContainerLeftRightPadding, } from './column-state';
4
+ export type { ColumnState } from './column-state';
5
+ export { growColumn, shrinkColumn, reduceSpace } from './resize-logic';
6
+ export { getResizeState, updateColgroup, getTotalWidth, evenAllColumnsWidths, bulkColumnsResize, areColumnsEven, adjustColumnsWidths, } from './resize-state';
7
+ export { tableLayoutToSize, getLayoutSize, getDefaultLayoutMaxWidth, pointsAtCell, currentColWidth, domCellAround, } from './misc';
8
+ export { updateControls, isClickNear, getResizeCellPos } from './dom';
9
+ export { scale, scaleWithParent } from './scale-table';
10
+ export type { ScaleOptions } from './scale-table';
11
+ export type { ResizeState, ResizeStateWithAnalytics } from './types';
12
+ export { resizeColumn } from './resize-column';
@@ -0,0 +1,22 @@
1
+ import { ResolvedPos } from 'prosemirror-model';
2
+ import { EditorView } from 'prosemirror-view';
3
+ import { CellAttributes, TableLayout } from '@atlaskit/adf-schema';
4
+ import { TableOptions } from '../../../nodeviews/types';
5
+ import { Node as PMNode } from 'prosemirror-model';
6
+ import { EditorState } from 'prosemirror-state';
7
+ import type { GetEditorContainerWidth } from '@atlaskit/editor-common/types';
8
+ export declare const tableLayoutToSize: Record<string, number>;
9
+ export declare function getLayoutSize(tableLayout: TableLayout, containerWidth: number | undefined, options: TableOptions): number;
10
+ export declare function getDefaultLayoutMaxWidth(containerWidth?: number): number;
11
+ export declare function pointsAtCell($pos: ResolvedPos<any>): false | PMNode<any> | null | undefined;
12
+ export declare function currentColWidth(view: EditorView, cellPos: number, { colspan, colwidth }: CellAttributes): number;
13
+ export declare function domCellAround(target: HTMLElement | null): HTMLElement | null;
14
+ interface getTableMaxWidthProps {
15
+ table: PMNode;
16
+ tableStart: number;
17
+ state: EditorState;
18
+ layout: TableLayout;
19
+ getEditorContainerWidth: GetEditorContainerWidth;
20
+ }
21
+ export declare const getTableMaxWidth: ({ table, tableStart, state, layout, getEditorContainerWidth, }: getTableMaxWidthProps) => any;
22
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ResizeState } from './types';
2
+ export declare const resizeColumn: (resizeState: ResizeState, colIndex: number, amount: number, tableRef: HTMLElement, selectedColumns?: number[]) => ResizeState;
@@ -0,0 +1,4 @@
1
+ import { ResizeState } from './types';
2
+ export declare const growColumn: (state: ResizeState, colIndex: number, amount: number, selectedColumns?: number[]) => ResizeState;
3
+ export declare const shrinkColumn: (state: ResizeState, colIndex: number, amount: number, selectedColumns?: number[]) => ResizeState;
4
+ export declare function reduceSpace(state: ResizeState, amount: number, ignoreCols?: number[]): ResizeState;
@@ -0,0 +1,29 @@
1
+ import { Node as PMNode } from 'prosemirror-model';
2
+ import { Rect } from '@atlaskit/editor-tables/table-map';
3
+ import { TableLayout } from '@atlaskit/adf-schema';
4
+ import { ResizeState, ResizeStateWithAnalytics } from './types';
5
+ import { EditorState } from 'prosemirror-state';
6
+ import type { GetEditorContainerWidth } from '@atlaskit/editor-common/types';
7
+ export declare const getResizeState: ({ minWidth, maxSize, table, tableRef, start, domAtPos, }: {
8
+ minWidth: number;
9
+ maxSize: number;
10
+ table: PMNode;
11
+ tableRef: HTMLTableElement;
12
+ start: number;
13
+ domAtPos: (pos: number) => {
14
+ node: Node;
15
+ offset: number;
16
+ };
17
+ }) => ResizeState;
18
+ export declare const updateColgroup: (state: ResizeState, tableRef: HTMLElement) => void;
19
+ export declare const getTotalWidth: ({ cols }: ResizeState) => number;
20
+ export declare const adjustColumnsWidths: (resizeState: ResizeState, maxSize: number) => ResizeState;
21
+ export declare const evenAllColumnsWidths: (resizeState: ResizeState) => ResizeState;
22
+ export declare const evenSelectedColumnsWidths: (resizeState: ResizeState, rect: Rect) => ResizeState;
23
+ export declare const bulkColumnsResize: (resizeState: ResizeState, columnsIndexes: number[], sourceColumnIndex: number) => ResizeState;
24
+ export declare const areColumnsEven: (resizeState: ResizeState) => boolean;
25
+ export declare const normaliseTableLayout: (input: string | undefined | null) => TableLayout;
26
+ export declare const getNewResizeStateFromSelectedColumns: (rect: Rect, state: EditorState, domAtPos: (pos: number) => {
27
+ node: Node;
28
+ offset: number;
29
+ }, getEditorContainerWidth: GetEditorContainerWidth) => ResizeStateWithAnalytics | undefined;