@atlaskit/editor-plugin-table 0.0.0 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (617) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/plugins/table/commands/clear.js +64 -0
  3. package/dist/cjs/plugins/table/commands/collapse.js +24 -0
  4. package/dist/cjs/plugins/table/commands/go-to-next-cell.js +66 -0
  5. package/dist/cjs/plugins/table/commands/hover.js +183 -0
  6. package/dist/cjs/plugins/table/commands/index.js +235 -0
  7. package/dist/cjs/plugins/table/commands/insert.js +186 -0
  8. package/dist/cjs/plugins/table/commands/misc.js +509 -0
  9. package/dist/cjs/plugins/table/commands/selection.js +419 -0
  10. package/dist/cjs/plugins/table/commands/sort.js +94 -0
  11. package/dist/cjs/plugins/table/commands/split-cell.js +38 -0
  12. package/dist/cjs/plugins/table/commands/toggle.js +124 -0
  13. package/dist/cjs/plugins/table/commands-with-analytics.js +543 -0
  14. package/dist/cjs/plugins/table/create-plugin-config.js +31 -0
  15. package/dist/cjs/plugins/table/event-handlers.js +441 -0
  16. package/dist/cjs/plugins/table/handlers.js +155 -0
  17. package/dist/cjs/plugins/table/index.js +374 -0
  18. package/dist/cjs/plugins/table/nodeviews/OverflowShadowsObserver.js +182 -0
  19. package/dist/cjs/plugins/table/nodeviews/TableComponent.js +610 -0
  20. package/dist/cjs/plugins/table/nodeviews/table.js +261 -0
  21. package/dist/cjs/plugins/table/nodeviews/tableCell.js +123 -0
  22. package/dist/cjs/plugins/table/nodeviews/types.js +5 -0
  23. package/dist/cjs/plugins/table/nodeviews/update-overflow-shadows.js +67 -0
  24. package/dist/cjs/plugins/table/pm-plugins/decorations/plugin.js +81 -0
  25. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/column-controls.js +88 -0
  26. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/column-resizing.js +55 -0
  27. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/compose-decorations.js +21 -0
  28. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/index.js +35 -0
  29. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/types.js +5 -0
  30. package/dist/cjs/plugins/table/pm-plugins/default-table-selection.js +12 -0
  31. package/dist/cjs/plugins/table/pm-plugins/keymap.js +59 -0
  32. package/dist/cjs/plugins/table/pm-plugins/main.js +308 -0
  33. package/dist/cjs/plugins/table/pm-plugins/plugin-factory.js +65 -0
  34. package/dist/cjs/plugins/table/pm-plugins/plugin-key.js +11 -0
  35. package/dist/cjs/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +79 -0
  36. package/dist/cjs/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +118 -0
  37. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/commands.js +30 -0
  38. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/index.js +51 -0
  39. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.js +46 -0
  40. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +590 -0
  41. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin-key.js +11 -0
  42. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin-state.js +68 -0
  43. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin.js +34 -0
  44. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/types.js +5 -0
  45. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/util.js +25 -0
  46. package/dist/cjs/plugins/table/pm-plugins/table-local-id.js +205 -0
  47. package/dist/cjs/plugins/table/pm-plugins/table-resizing/commands.js +158 -0
  48. package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +182 -0
  49. package/dist/cjs/plugins/table/pm-plugins/table-resizing/index.js +29 -0
  50. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin-factory.js +40 -0
  51. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin-key.js +11 -0
  52. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin.js +70 -0
  53. package/dist/cjs/plugins/table/pm-plugins/table-resizing/reducer.js +46 -0
  54. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +71 -0
  55. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/column-state.js +107 -0
  56. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/content-width.js +112 -0
  57. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/dom.js +158 -0
  58. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/index.js +209 -0
  59. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/misc.js +115 -0
  60. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-column.js +19 -0
  61. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +279 -0
  62. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +364 -0
  63. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +132 -0
  64. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/types.js +5 -0
  65. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/unit-to-number.js +12 -0
  66. package/dist/cjs/plugins/table/pm-plugins/table-selection-keymap.js +23 -0
  67. package/dist/cjs/plugins/table/reducer.js +107 -0
  68. package/dist/cjs/plugins/table/todo-stubs.js +10 -0
  69. package/dist/cjs/plugins/table/toolbar.js +325 -0
  70. package/dist/cjs/plugins/table/transforms/column-width.js +196 -0
  71. package/dist/cjs/plugins/table/transforms/delete-columns.js +293 -0
  72. package/dist/cjs/plugins/table/transforms/delete-rows.js +176 -0
  73. package/dist/cjs/plugins/table/transforms/fix-tables.js +250 -0
  74. package/dist/cjs/plugins/table/transforms/index.js +85 -0
  75. package/dist/cjs/plugins/table/transforms/merge.js +349 -0
  76. package/dist/cjs/plugins/table/transforms/metadata.js +23 -0
  77. package/dist/cjs/plugins/table/transforms/replace-table.js +48 -0
  78. package/dist/cjs/plugins/table/transforms/split.js +92 -0
  79. package/dist/cjs/plugins/table/types.js +106 -0
  80. package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +194 -0
  81. package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +26 -0
  82. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +529 -0
  83. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/index.js +116 -0
  84. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +34 -0
  85. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/DeleteButton.js +49 -0
  86. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.js +71 -0
  87. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/index.js +365 -0
  88. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/types.js +5 -0
  89. package/dist/cjs/plugins/table/ui/FloatingInsertButton/InsertButton.js +118 -0
  90. package/dist/cjs/plugins/table/ui/FloatingInsertButton/getPopupOptions.js +108 -0
  91. package/dist/cjs/plugins/table/ui/FloatingInsertButton/index.js +244 -0
  92. package/dist/cjs/plugins/table/ui/LayoutButton/index.js +255 -0
  93. package/dist/cjs/plugins/table/ui/TableFloatingControls/CornerControls/index.js +140 -0
  94. package/dist/cjs/plugins/table/ui/TableFloatingControls/NumberColumn/index.js +146 -0
  95. package/dist/cjs/plugins/table/ui/TableFloatingControls/RowControls/index.js +135 -0
  96. package/dist/cjs/plugins/table/ui/TableFloatingControls/index.js +229 -0
  97. package/dist/cjs/plugins/table/ui/common-styles.js +48 -0
  98. package/dist/cjs/plugins/table/ui/consts.js +109 -0
  99. package/dist/cjs/plugins/table/ui/messages.js +48 -0
  100. package/dist/cjs/plugins/table/ui/ui-styles.js +116 -0
  101. package/dist/cjs/plugins/table/utils/analytics.js +86 -0
  102. package/dist/cjs/plugins/table/utils/collapse.js +98 -0
  103. package/dist/cjs/plugins/table/utils/column-controls.js +234 -0
  104. package/dist/cjs/plugins/table/utils/decoration.js +405 -0
  105. package/dist/cjs/plugins/table/utils/dom.js +224 -0
  106. package/dist/cjs/plugins/table/utils/get-allow-add-column-custom-step.js +13 -0
  107. package/dist/cjs/plugins/table/utils/index.js +355 -0
  108. package/dist/cjs/plugins/table/utils/nodes.js +159 -0
  109. package/dist/cjs/plugins/table/utils/paste.js +148 -0
  110. package/dist/cjs/plugins/table/utils/referentiality.js +29 -0
  111. package/dist/cjs/plugins/table/utils/row-controls.js +254 -0
  112. package/dist/cjs/plugins/table/utils/selection.js +116 -0
  113. package/dist/cjs/plugins/table/utils/table.js +48 -0
  114. package/dist/cjs/plugins/table/utils/update-plugin-state-decorations.js +16 -0
  115. package/dist/cjs/plugins/table-plugin.js +4 -45
  116. package/dist/cjs/version.json +1 -1
  117. package/dist/es2019/plugins/table/commands/clear.js +48 -0
  118. package/dist/es2019/plugins/table/commands/collapse.js +14 -0
  119. package/dist/es2019/plugins/table/commands/go-to-next-cell.js +47 -0
  120. package/dist/es2019/plugins/table/commands/hover.js +117 -0
  121. package/dist/es2019/plugins/table/commands/index.js +7 -0
  122. package/dist/es2019/plugins/table/commands/insert.js +141 -0
  123. package/dist/es2019/plugins/table/commands/misc.js +405 -0
  124. package/dist/es2019/plugins/table/commands/selection.js +369 -0
  125. package/dist/es2019/plugins/table/commands/sort.js +74 -0
  126. package/dist/es2019/plugins/table/commands/split-cell.js +29 -0
  127. package/dist/es2019/plugins/table/commands/toggle.js +76 -0
  128. package/dist/es2019/plugins/table/commands-with-analytics.js +409 -0
  129. package/dist/es2019/plugins/table/create-plugin-config.js +14 -0
  130. package/dist/es2019/plugins/table/event-handlers.js +387 -0
  131. package/dist/es2019/plugins/table/handlers.js +123 -0
  132. package/dist/es2019/plugins/table/index.js +340 -0
  133. package/dist/es2019/plugins/table/nodeviews/OverflowShadowsObserver.js +159 -0
  134. package/dist/es2019/plugins/table/nodeviews/TableComponent.js +578 -0
  135. package/dist/es2019/plugins/table/nodeviews/table.js +200 -0
  136. package/dist/es2019/plugins/table/nodeviews/tableCell.js +77 -0
  137. package/dist/es2019/plugins/table/nodeviews/types.js +1 -0
  138. package/dist/es2019/plugins/table/nodeviews/update-overflow-shadows.js +52 -0
  139. package/dist/es2019/plugins/table/pm-plugins/decorations/plugin.js +52 -0
  140. package/dist/es2019/plugins/table/pm-plugins/decorations/utils/column-controls.js +67 -0
  141. package/dist/es2019/plugins/table/pm-plugins/decorations/utils/column-resizing.js +27 -0
  142. package/dist/es2019/plugins/table/pm-plugins/decorations/utils/compose-decorations.js +7 -0
  143. package/dist/es2019/plugins/table/pm-plugins/decorations/utils/index.js +3 -0
  144. package/dist/es2019/plugins/table/pm-plugins/decorations/utils/types.js +1 -0
  145. package/dist/es2019/plugins/table/pm-plugins/default-table-selection.js +5 -0
  146. package/dist/es2019/plugins/table/pm-plugins/keymap.js +34 -0
  147. package/dist/es2019/plugins/table/pm-plugins/main.js +274 -0
  148. package/dist/es2019/plugins/table/pm-plugins/plugin-factory.js +46 -0
  149. package/dist/es2019/plugins/table/pm-plugins/plugin-key.js +2 -0
  150. package/dist/es2019/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +66 -0
  151. package/dist/es2019/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +106 -0
  152. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/commands.js +9 -0
  153. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/index.js +5 -0
  154. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.js +34 -0
  155. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +546 -0
  156. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/plugin-key.js +2 -0
  157. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/plugin-state.js +47 -0
  158. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/plugin.js +17 -0
  159. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/types.js +1 -0
  160. package/dist/es2019/plugins/table/pm-plugins/sticky-headers/util.js +14 -0
  161. package/dist/es2019/plugins/table/pm-plugins/table-local-id.js +203 -0
  162. package/dist/es2019/plugins/table/pm-plugins/table-resizing/commands.js +109 -0
  163. package/dist/es2019/plugins/table/pm-plugins/table-resizing/event-handlers.js +173 -0
  164. package/dist/es2019/plugins/table/pm-plugins/table-resizing/index.js +3 -0
  165. package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin-factory.js +20 -0
  166. package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin-key.js +2 -0
  167. package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin.js +58 -0
  168. package/dist/es2019/plugins/table/pm-plugins/table-resizing/reducer.js +31 -0
  169. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +45 -0
  170. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/column-state.js +78 -0
  171. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/content-width.js +97 -0
  172. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/dom.js +124 -0
  173. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/index.js +9 -0
  174. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/misc.js +90 -0
  175. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-column.js +8 -0
  176. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +221 -0
  177. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +276 -0
  178. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +105 -0
  179. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/types.js +1 -0
  180. package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/unit-to-number.js +1 -0
  181. package/dist/es2019/plugins/table/pm-plugins/table-selection-keymap.js +10 -0
  182. package/dist/es2019/plugins/table/reducer.js +103 -0
  183. package/dist/es2019/plugins/table/todo-stubs.js +1 -0
  184. package/dist/es2019/plugins/table/toolbar.js +287 -0
  185. package/dist/es2019/plugins/table/transforms/column-width.js +163 -0
  186. package/dist/es2019/plugins/table/transforms/delete-columns.js +247 -0
  187. package/dist/es2019/plugins/table/transforms/delete-rows.js +135 -0
  188. package/dist/es2019/plugins/table/transforms/fix-tables.js +218 -0
  189. package/dist/es2019/plugins/table/transforms/index.js +7 -0
  190. package/dist/es2019/plugins/table/transforms/merge.js +312 -0
  191. package/dist/es2019/plugins/table/transforms/metadata.js +11 -0
  192. package/dist/es2019/plugins/table/transforms/replace-table.js +33 -0
  193. package/dist/es2019/plugins/table/transforms/split.js +72 -0
  194. package/dist/es2019/plugins/table/types.js +84 -0
  195. package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +142 -0
  196. package/dist/es2019/plugins/table/ui/FloatingContextualButton/styles.js +28 -0
  197. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +482 -0
  198. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/index.js +99 -0
  199. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/styles.js +48 -0
  200. package/dist/es2019/plugins/table/ui/FloatingDeleteButton/DeleteButton.js +36 -0
  201. package/dist/es2019/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.js +59 -0
  202. package/dist/es2019/plugins/table/ui/FloatingDeleteButton/index.js +302 -0
  203. package/dist/es2019/plugins/table/ui/FloatingDeleteButton/types.js +1 -0
  204. package/dist/es2019/plugins/table/ui/FloatingInsertButton/InsertButton.js +96 -0
  205. package/dist/es2019/plugins/table/ui/FloatingInsertButton/getPopupOptions.js +96 -0
  206. package/dist/es2019/plugins/table/ui/FloatingInsertButton/index.js +199 -0
  207. package/dist/es2019/plugins/table/ui/LayoutButton/index.js +195 -0
  208. package/dist/es2019/plugins/table/ui/TableFloatingControls/CornerControls/index.js +95 -0
  209. package/dist/es2019/plugins/table/ui/TableFloatingControls/NumberColumn/index.js +91 -0
  210. package/dist/es2019/plugins/table/ui/TableFloatingControls/RowControls/index.js +82 -0
  211. package/dist/es2019/plugins/table/ui/TableFloatingControls/index.js +158 -0
  212. package/dist/es2019/plugins/table/ui/common-styles.js +647 -0
  213. package/dist/es2019/plugins/table/ui/consts.js +61 -0
  214. package/dist/es2019/plugins/table/ui/messages.js +38 -0
  215. package/dist/es2019/plugins/table/ui/ui-styles.js +398 -0
  216. package/dist/es2019/plugins/table/utils/analytics.js +65 -0
  217. package/dist/es2019/plugins/table/utils/collapse.js +84 -0
  218. package/dist/es2019/plugins/table/utils/column-controls.js +178 -0
  219. package/dist/es2019/plugins/table/utils/decoration.js +346 -0
  220. package/dist/es2019/plugins/table/utils/dom.js +160 -0
  221. package/dist/es2019/plugins/table/utils/get-allow-add-column-custom-step.js +5 -0
  222. package/dist/es2019/plugins/table/utils/index.js +10 -0
  223. package/dist/es2019/plugins/table/utils/nodes.js +104 -0
  224. package/dist/es2019/plugins/table/utils/paste.js +117 -0
  225. package/dist/es2019/plugins/table/utils/referentiality.js +18 -0
  226. package/dist/es2019/plugins/table/utils/row-controls.js +210 -0
  227. package/dist/es2019/plugins/table/utils/selection.js +95 -0
  228. package/dist/es2019/plugins/table/utils/table.js +27 -0
  229. package/dist/es2019/plugins/table/utils/update-plugin-state-decorations.js +3 -0
  230. package/dist/es2019/plugins/table-plugin.js +1 -44
  231. package/dist/es2019/version.json +1 -1
  232. package/dist/esm/plugins/table/commands/clear.js +48 -0
  233. package/dist/esm/plugins/table/commands/collapse.js +14 -0
  234. package/dist/esm/plugins/table/commands/go-to-next-cell.js +50 -0
  235. package/dist/esm/plugins/table/commands/hover.js +149 -0
  236. package/dist/esm/plugins/table/commands/index.js +7 -0
  237. package/dist/esm/plugins/table/commands/insert.js +153 -0
  238. package/dist/esm/plugins/table/commands/misc.js +427 -0
  239. package/dist/esm/plugins/table/commands/selection.js +401 -0
  240. package/dist/esm/plugins/table/commands/sort.js +79 -0
  241. package/dist/esm/plugins/table/commands/split-cell.js +28 -0
  242. package/dist/esm/plugins/table/commands/toggle.js +97 -0
  243. package/dist/esm/plugins/table/commands-with-analytics.js +464 -0
  244. package/dist/esm/plugins/table/create-plugin-config.js +20 -0
  245. package/dist/esm/plugins/table/event-handlers.js +387 -0
  246. package/dist/esm/plugins/table/handlers.js +140 -0
  247. package/dist/esm/plugins/table/index.js +338 -0
  248. package/dist/esm/plugins/table/nodeviews/OverflowShadowsObserver.js +177 -0
  249. package/dist/esm/plugins/table/nodeviews/TableComponent.js +596 -0
  250. package/dist/esm/plugins/table/nodeviews/table.js +235 -0
  251. package/dist/esm/plugins/table/nodeviews/tableCell.js +111 -0
  252. package/dist/esm/plugins/table/nodeviews/types.js +1 -0
  253. package/dist/esm/plugins/table/nodeviews/update-overflow-shadows.js +54 -0
  254. package/dist/esm/plugins/table/pm-plugins/decorations/plugin.js +58 -0
  255. package/dist/esm/plugins/table/pm-plugins/decorations/utils/column-controls.js +71 -0
  256. package/dist/esm/plugins/table/pm-plugins/decorations/utils/column-resizing.js +40 -0
  257. package/dist/esm/plugins/table/pm-plugins/decorations/utils/compose-decorations.js +12 -0
  258. package/dist/esm/plugins/table/pm-plugins/decorations/utils/index.js +3 -0
  259. package/dist/esm/plugins/table/pm-plugins/decorations/utils/types.js +1 -0
  260. package/dist/esm/plugins/table/pm-plugins/default-table-selection.js +5 -0
  261. package/dist/esm/plugins/table/pm-plugins/keymap.js +36 -0
  262. package/dist/esm/plugins/table/pm-plugins/main.js +278 -0
  263. package/dist/esm/plugins/table/pm-plugins/plugin-factory.js +51 -0
  264. package/dist/esm/plugins/table/pm-plugins/plugin-key.js +2 -0
  265. package/dist/esm/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.js +66 -0
  266. package/dist/esm/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +102 -0
  267. package/dist/esm/plugins/table/pm-plugins/sticky-headers/commands.js +17 -0
  268. package/dist/esm/plugins/table/pm-plugins/sticky-headers/index.js +5 -0
  269. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.js +34 -0
  270. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +588 -0
  271. package/dist/esm/plugins/table/pm-plugins/sticky-headers/plugin-key.js +2 -0
  272. package/dist/esm/plugins/table/pm-plugins/sticky-headers/plugin-state.js +57 -0
  273. package/dist/esm/plugins/table/pm-plugins/sticky-headers/plugin.js +21 -0
  274. package/dist/esm/plugins/table/pm-plugins/sticky-headers/types.js +1 -0
  275. package/dist/esm/plugins/table/pm-plugins/sticky-headers/util.js +16 -0
  276. package/dist/esm/plugins/table/pm-plugins/table-local-id.js +205 -0
  277. package/dist/esm/plugins/table/pm-plugins/table-resizing/commands.js +127 -0
  278. package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +159 -0
  279. package/dist/esm/plugins/table/pm-plugins/table-resizing/index.js +3 -0
  280. package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin-factory.js +26 -0
  281. package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin-key.js +2 -0
  282. package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin.js +52 -0
  283. package/dist/esm/plugins/table/pm-plugins/table-resizing/reducer.js +35 -0
  284. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +50 -0
  285. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/column-state.js +80 -0
  286. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/content-width.js +104 -0
  287. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/dom.js +125 -0
  288. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/index.js +9 -0
  289. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/misc.js +88 -0
  290. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-column.js +8 -0
  291. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +257 -0
  292. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +320 -0
  293. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +109 -0
  294. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/types.js +1 -0
  295. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/unit-to-number.js +3 -0
  296. package/dist/esm/plugins/table/pm-plugins/table-selection-keymap.js +10 -0
  297. package/dist/esm/plugins/table/reducer.js +95 -0
  298. package/dist/esm/plugins/table/todo-stubs.js +1 -0
  299. package/dist/esm/plugins/table/toolbar.js +290 -0
  300. package/dist/esm/plugins/table/transforms/column-width.js +175 -0
  301. package/dist/esm/plugins/table/transforms/delete-columns.js +271 -0
  302. package/dist/esm/plugins/table/transforms/delete-rows.js +156 -0
  303. package/dist/esm/plugins/table/transforms/fix-tables.js +229 -0
  304. package/dist/esm/plugins/table/transforms/index.js +7 -0
  305. package/dist/esm/plugins/table/transforms/merge.js +324 -0
  306. package/dist/esm/plugins/table/transforms/metadata.js +13 -0
  307. package/dist/esm/plugins/table/transforms/replace-table.js +34 -0
  308. package/dist/esm/plugins/table/transforms/split.js +82 -0
  309. package/dist/esm/plugins/table/types.js +90 -0
  310. package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +167 -0
  311. package/dist/esm/plugins/table/ui/FloatingContextualButton/styles.js +11 -0
  312. package/dist/esm/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +501 -0
  313. package/dist/esm/plugins/table/ui/FloatingContextualMenu/index.js +96 -0
  314. package/dist/esm/plugins/table/ui/FloatingContextualMenu/styles.js +15 -0
  315. package/dist/esm/plugins/table/ui/FloatingDeleteButton/DeleteButton.js +37 -0
  316. package/dist/esm/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.js +61 -0
  317. package/dist/esm/plugins/table/ui/FloatingDeleteButton/index.js +333 -0
  318. package/dist/esm/plugins/table/ui/FloatingDeleteButton/types.js +1 -0
  319. package/dist/esm/plugins/table/ui/FloatingInsertButton/InsertButton.js +90 -0
  320. package/dist/esm/plugins/table/ui/FloatingInsertButton/getPopupOptions.js +96 -0
  321. package/dist/esm/plugins/table/ui/FloatingInsertButton/index.js +214 -0
  322. package/dist/esm/plugins/table/ui/LayoutButton/index.js +227 -0
  323. package/dist/esm/plugins/table/ui/TableFloatingControls/CornerControls/index.js +120 -0
  324. package/dist/esm/plugins/table/ui/TableFloatingControls/NumberColumn/index.js +126 -0
  325. package/dist/esm/plugins/table/ui/TableFloatingControls/RowControls/index.js +113 -0
  326. package/dist/esm/plugins/table/ui/TableFloatingControls/index.js +207 -0
  327. package/dist/esm/plugins/table/ui/common-styles.js +25 -0
  328. package/dist/esm/plugins/table/ui/consts.js +61 -0
  329. package/dist/esm/plugins/table/ui/messages.js +38 -0
  330. package/dist/esm/plugins/table/ui/ui-styles.js +73 -0
  331. package/dist/esm/plugins/table/utils/analytics.js +71 -0
  332. package/dist/esm/plugins/table/utils/collapse.js +84 -0
  333. package/dist/esm/plugins/table/utils/column-controls.js +202 -0
  334. package/dist/esm/plugins/table/utils/decoration.js +366 -0
  335. package/dist/esm/plugins/table/utils/dom.js +175 -0
  336. package/dist/esm/plugins/table/utils/get-allow-add-column-custom-step.js +5 -0
  337. package/dist/esm/plugins/table/utils/index.js +10 -0
  338. package/dist/esm/plugins/table/utils/nodes.js +112 -0
  339. package/dist/esm/plugins/table/utils/paste.js +115 -0
  340. package/dist/esm/plugins/table/utils/referentiality.js +20 -0
  341. package/dist/esm/plugins/table/utils/row-controls.js +221 -0
  342. package/dist/esm/plugins/table/utils/selection.js +96 -0
  343. package/dist/esm/plugins/table/utils/table.js +30 -0
  344. package/dist/esm/plugins/table/utils/update-plugin-state-decorations.js +5 -0
  345. package/dist/esm/plugins/table-plugin.js +1 -42
  346. package/dist/esm/version.json +1 -1
  347. package/dist/types/plugins/table/commands/clear.d.ts +3 -0
  348. package/dist/types/plugins/table/commands/collapse.d.ts +2 -0
  349. package/dist/types/plugins/table/commands/go-to-next-cell.d.ts +4 -0
  350. package/dist/types/plugins/table/commands/hover.d.ts +8 -0
  351. package/dist/types/plugins/table/commands/index.d.ts +7 -0
  352. package/dist/types/plugins/table/commands/insert.d.ts +10 -0
  353. package/dist/types/plugins/table/commands/misc.d.ts +27 -0
  354. package/dist/types/plugins/table/commands/selection.d.ts +8 -0
  355. package/dist/types/plugins/table/commands/sort.d.ts +3 -0
  356. package/dist/types/plugins/table/commands/split-cell.d.ts +6 -0
  357. package/dist/types/plugins/table/commands/toggle.d.ts +12 -0
  358. package/dist/types/plugins/table/commands-with-analytics.d.ts +26 -0
  359. package/dist/types/plugins/table/create-plugin-config.d.ts +2 -0
  360. package/dist/types/plugins/table/event-handlers.d.ts +16 -0
  361. package/dist/types/plugins/table/handlers.d.ts +3 -0
  362. package/dist/types/plugins/table/index.d.ts +17 -0
  363. package/dist/types/plugins/table/nodeviews/OverflowShadowsObserver.d.ts +26 -0
  364. package/dist/types/plugins/table/nodeviews/TableComponent.d.ts +72 -0
  365. package/dist/types/plugins/table/nodeviews/__mocks__/OverflowShadowsObserver.d.ts +9 -0
  366. package/dist/types/plugins/table/nodeviews/__mocks__/OverridableMock.d.ts +9 -0
  367. package/dist/types/plugins/table/nodeviews/table.d.ts +31 -0
  368. package/dist/types/plugins/table/nodeviews/tableCell.d.ts +19 -0
  369. package/dist/types/plugins/table/nodeviews/types.d.ts +23 -0
  370. package/dist/types/plugins/table/nodeviews/update-overflow-shadows.d.ts +8 -0
  371. package/dist/types/plugins/table/pm-plugins/decorations/plugin.d.ts +7 -0
  372. package/dist/types/plugins/table/pm-plugins/decorations/utils/column-controls.d.ts +3 -0
  373. package/dist/types/plugins/table/pm-plugins/decorations/utils/column-resizing.d.ts +2 -0
  374. package/dist/types/plugins/table/pm-plugins/decorations/utils/compose-decorations.d.ts +2 -0
  375. package/dist/types/plugins/table/pm-plugins/decorations/utils/index.d.ts +3 -0
  376. package/dist/types/plugins/table/pm-plugins/decorations/utils/types.d.ts +6 -0
  377. package/dist/types/plugins/table/pm-plugins/default-table-selection.d.ts +5 -0
  378. package/dist/types/plugins/table/pm-plugins/keymap.d.ts +5 -0
  379. package/dist/types/plugins/table/pm-plugins/main.d.ts +8 -0
  380. package/dist/types/plugins/table/pm-plugins/plugin-factory.d.ts +1 -0
  381. package/dist/types/plugins/table/pm-plugins/plugin-key.d.ts +3 -0
  382. package/dist/types/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.d.ts +4 -0
  383. package/dist/types/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.d.ts +15 -0
  384. package/dist/types/plugins/table/pm-plugins/sticky-headers/commands.d.ts +3 -0
  385. package/dist/types/plugins/table/pm-plugins/sticky-headers/index.d.ts +6 -0
  386. package/dist/types/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.d.ts +6 -0
  387. package/dist/types/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.d.ts +65 -0
  388. package/dist/types/plugins/table/pm-plugins/sticky-headers/plugin-key.d.ts +3 -0
  389. package/dist/types/plugins/table/pm-plugins/sticky-headers/plugin-state.d.ts +3 -0
  390. package/dist/types/plugins/table/pm-plugins/sticky-headers/plugin.d.ts +4 -0
  391. package/dist/types/plugins/table/pm-plugins/sticky-headers/types.d.ts +16 -0
  392. package/dist/types/plugins/table/pm-plugins/sticky-headers/util.d.ts +2 -0
  393. package/dist/types/plugins/table/pm-plugins/table-local-id.d.ts +22 -0
  394. package/dist/types/plugins/table/pm-plugins/table-resizing/commands.d.ts +25 -0
  395. package/dist/types/plugins/table/pm-plugins/table-resizing/event-handlers.d.ts +4 -0
  396. package/dist/types/plugins/table/pm-plugins/table-resizing/index.d.ts +3 -0
  397. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin-factory.d.ts +4 -0
  398. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin-key.d.ts +3 -0
  399. package/dist/types/plugins/table/pm-plugins/table-resizing/plugin.d.ts +6 -0
  400. package/dist/types/plugins/table/pm-plugins/table-resizing/reducer.d.ts +3 -0
  401. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/colgroup.d.ts +8 -0
  402. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/column-state.d.ts +14 -0
  403. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/content-width.d.ts +4 -0
  404. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/dom.d.ts +13 -0
  405. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/index.d.ts +12 -0
  406. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/misc.d.ts +22 -0
  407. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/resize-column.d.ts +2 -0
  408. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/resize-logic.d.ts +4 -0
  409. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/resize-state.d.ts +29 -0
  410. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/scale-table.d.ts +17 -0
  411. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/types.d.ts +22 -0
  412. package/dist/types/plugins/table/pm-plugins/table-resizing/utils/unit-to-number.d.ts +1 -0
  413. package/dist/types/plugins/table/pm-plugins/table-selection-keymap.d.ts +4 -0
  414. package/dist/types/plugins/table/reducer.d.ts +3 -0
  415. package/dist/types/plugins/table/todo-stubs.d.ts +1 -0
  416. package/dist/types/plugins/table/toolbar.d.ts +36 -0
  417. package/dist/types/plugins/table/transforms/column-width.d.ts +18 -0
  418. package/dist/types/plugins/table/transforms/delete-columns.d.ts +3 -0
  419. package/dist/types/plugins/table/transforms/delete-rows.d.ts +3 -0
  420. package/dist/types/plugins/table/transforms/fix-tables.d.ts +10 -0
  421. package/dist/types/plugins/table/transforms/index.d.ts +7 -0
  422. package/dist/types/plugins/table/transforms/merge.d.ts +5 -0
  423. package/dist/types/plugins/table/transforms/metadata.d.ts +21 -0
  424. package/dist/types/plugins/table/transforms/replace-table.d.ts +5 -0
  425. package/dist/types/plugins/table/transforms/split.d.ts +9 -0
  426. package/dist/types/plugins/table/types.d.ts +328 -0
  427. package/dist/types/plugins/table/ui/FloatingContextualButton/index.d.ts +29 -0
  428. package/dist/types/plugins/table/ui/FloatingContextualButton/styles.d.ts +1 -0
  429. package/dist/types/plugins/table/ui/FloatingContextualMenu/ContextualMenu.d.ts +87 -0
  430. package/dist/types/plugins/table/ui/FloatingContextualMenu/index.d.ts +22 -0
  431. package/dist/types/plugins/table/ui/FloatingContextualMenu/styles.d.ts +2 -0
  432. package/dist/types/plugins/table/ui/FloatingDeleteButton/DeleteButton.d.ts +14 -0
  433. package/dist/types/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.d.ts +10 -0
  434. package/dist/types/plugins/table/ui/FloatingDeleteButton/index.d.ts +54 -0
  435. package/dist/types/plugins/table/ui/FloatingDeleteButton/types.d.ts +1 -0
  436. package/dist/types/plugins/table/ui/FloatingInsertButton/InsertButton.d.ts +12 -0
  437. package/dist/types/plugins/table/ui/FloatingInsertButton/getPopupOptions.d.ts +3 -0
  438. package/dist/types/plugins/table/ui/FloatingInsertButton/index.d.ts +35 -0
  439. package/dist/types/plugins/table/ui/LayoutButton/index.d.ts +21 -0
  440. package/dist/types/plugins/table/ui/TableFloatingControls/CornerControls/index.d.ts +19 -0
  441. package/dist/types/plugins/table/ui/TableFloatingControls/NumberColumn/index.d.ts +21 -0
  442. package/dist/types/plugins/table/ui/TableFloatingControls/RowControls/index.d.ts +17 -0
  443. package/dist/types/plugins/table/ui/TableFloatingControls/index.d.ts +40 -0
  444. package/dist/types/plugins/table/ui/common-styles.d.ts +4 -0
  445. package/dist/types/plugins/table/ui/consts.d.ts +39 -0
  446. package/dist/types/plugins/table/ui/messages.d.ts +38 -0
  447. package/dist/types/plugins/table/ui/ui-styles.d.ts +15 -0
  448. package/dist/types/plugins/table/utils/analytics.d.ts +18 -0
  449. package/dist/types/plugins/table/utils/collapse.d.ts +29 -0
  450. package/dist/types/plugins/table/utils/column-controls.d.ts +10 -0
  451. package/dist/types/plugins/table/utils/decoration.d.ts +13 -0
  452. package/dist/types/plugins/table/utils/dom.d.ts +17 -0
  453. package/dist/types/plugins/table/utils/get-allow-add-column-custom-step.d.ts +2 -0
  454. package/dist/types/plugins/table/utils/index.d.ts +11 -0
  455. package/dist/types/plugins/table/utils/nodes.d.ts +12 -0
  456. package/dist/types/plugins/table/utils/paste.d.ts +14 -0
  457. package/dist/types/plugins/table/utils/referentiality.d.ts +2 -0
  458. package/dist/types/plugins/table/utils/row-controls.d.ts +16 -0
  459. package/dist/types/plugins/table/utils/selection.d.ts +6 -0
  460. package/dist/types/plugins/table/utils/table.d.ts +4 -0
  461. package/dist/types/plugins/table/utils/update-plugin-state-decorations.d.ts +4 -0
  462. package/dist/types/plugins/table-plugin.d.ts +1 -1
  463. package/package.json +27 -5
  464. package/report.api.md +90 -4
  465. package/src/plugins/table/__tests__/integration/block-node-selection.ts +164 -0
  466. package/src/plugins/table/__tests__/unit/commands/go-to-next-cell.ts +155 -0
  467. package/src/plugins/table/__tests__/unit/commands/insert.ts +115 -0
  468. package/src/plugins/table/__tests__/unit/commands/misc.ts +165 -0
  469. package/src/plugins/table/__tests__/unit/commands.ts +982 -0
  470. package/src/plugins/table/__tests__/unit/event-handlers.ts +130 -0
  471. package/src/plugins/table/__tests__/unit/get-toolbar-config.ts +140 -0
  472. package/src/plugins/table/__tests__/unit/nodeviews/OverflowShadowsObserver.ts +153 -0
  473. package/src/plugins/table/__tests__/unit/nodeviews/TableComponent.tsx +388 -0
  474. package/src/plugins/table/__tests__/unit/nodeviews/table.ts +121 -0
  475. package/src/plugins/table/__tests__/unit/pm-plugins/decorations/column-controls.ts +34 -0
  476. package/src/plugins/table/__tests__/unit/pm-plugins/decorations/column-resizing.ts +152 -0
  477. package/src/plugins/table/__tests__/unit/pm-plugins/decorations/plugin.ts +140 -0
  478. package/src/plugins/table/__tests__/unit/pm-plugins/main-with-allow-collapse.ts +100 -0
  479. package/src/plugins/table/__tests__/unit/pm-plugins/main.ts +187 -0
  480. package/src/plugins/table/__tests__/unit/pm-plugins/safari-delete-composition-text-issue-workaround.ts +83 -0
  481. package/src/plugins/table/__tests__/unit/pm-plugins/sticky-headers/tableRow.tsx +603 -0
  482. package/src/plugins/table/__tests__/unit/pm-plugins/table-local-id.ts +515 -0
  483. package/src/plugins/table/__tests__/unit/pm-plugins/table-resizing/colgroup.ts +86 -0
  484. package/src/plugins/table/__tests__/unit/pm-plugins/table-resizing/event-handlers.ts +134 -0
  485. package/src/plugins/table/__tests__/unit/pm-plugins/table-selection-keymap.ts +564 -0
  486. package/src/plugins/table/__tests__/unit/toolbar.ts +240 -0
  487. package/src/plugins/table/__tests__/unit/utils/collapse.ts +74 -0
  488. package/src/plugins/table/__tests__/unit/utils/column-controls.ts +61 -0
  489. package/src/plugins/table/__tests__/visual-regression/__fixtures__/table-with-100-numbered-list-items.json +20272 -0
  490. package/src/plugins/table/__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 +3 -0
  491. package/src/plugins/table/__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 +3 -0
  492. package/src/plugins/table/__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 +3 -0
  493. package/src/plugins/table/__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 +3 -0
  494. package/src/plugins/table/__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 +3 -0
  495. package/src/plugins/table/__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 +3 -0
  496. package/src/plugins/table/__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 +3 -0
  497. package/src/plugins/table/__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 +3 -0
  498. package/src/plugins/table/__tests__/visual-regression/cell-options-menu.ts +97 -0
  499. package/src/plugins/table/__tests__/visual-regression/index.ts +42 -0
  500. package/src/plugins/table/commands/clear.ts +58 -0
  501. package/src/plugins/table/commands/collapse.ts +16 -0
  502. package/src/plugins/table/commands/go-to-next-cell.ts +56 -0
  503. package/src/plugins/table/commands/hover.ts +192 -0
  504. package/src/plugins/table/commands/index.ts +40 -0
  505. package/src/plugins/table/commands/insert.ts +174 -0
  506. package/src/plugins/table/commands/misc.ts +506 -0
  507. package/src/plugins/table/commands/selection.ts +406 -0
  508. package/src/plugins/table/commands/sort.ts +109 -0
  509. package/src/plugins/table/commands/split-cell.ts +28 -0
  510. package/src/plugins/table/commands/toggle.ts +93 -0
  511. package/src/plugins/table/commands-with-analytics.ts +523 -0
  512. package/src/plugins/table/create-plugin-config.ts +18 -0
  513. package/src/plugins/table/event-handlers.ts +514 -0
  514. package/src/plugins/table/handlers.ts +169 -0
  515. package/src/plugins/table/index.tsx +440 -0
  516. package/src/plugins/table/nodeviews/OverflowShadowsObserver.ts +189 -0
  517. package/src/plugins/table/nodeviews/TableComponent.tsx +693 -0
  518. package/src/plugins/table/nodeviews/__mocks__/OverflowShadowsObserver.ts +13 -0
  519. package/src/plugins/table/nodeviews/__mocks__/OverridableMock.ts +21 -0
  520. package/src/plugins/table/nodeviews/table.tsx +241 -0
  521. package/src/plugins/table/nodeviews/tableCell.tsx +110 -0
  522. package/src/plugins/table/nodeviews/types.ts +29 -0
  523. package/src/plugins/table/nodeviews/update-overflow-shadows.ts +72 -0
  524. package/src/plugins/table/pm-plugins/decorations/plugin.ts +74 -0
  525. package/src/plugins/table/pm-plugins/decorations/utils/column-controls.ts +89 -0
  526. package/src/plugins/table/pm-plugins/decorations/utils/column-resizing.ts +46 -0
  527. package/src/plugins/table/pm-plugins/decorations/utils/compose-decorations.ts +11 -0
  528. package/src/plugins/table/pm-plugins/decorations/utils/index.ts +6 -0
  529. package/src/plugins/table/pm-plugins/decorations/utils/types.ts +10 -0
  530. package/src/plugins/table/pm-plugins/default-table-selection.ts +5 -0
  531. package/src/plugins/table/pm-plugins/keymap.ts +108 -0
  532. package/src/plugins/table/pm-plugins/main.ts +399 -0
  533. package/src/plugins/table/pm-plugins/plugin-factory.ts +43 -0
  534. package/src/plugins/table/pm-plugins/plugin-key.ts +4 -0
  535. package/src/plugins/table/pm-plugins/safari-delayed-dom-selection-syncing-workaround.ts +78 -0
  536. package/src/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.ts +118 -0
  537. package/src/plugins/table/pm-plugins/sticky-headers/commands.ts +12 -0
  538. package/src/plugins/table/pm-plugins/sticky-headers/index.ts +7 -0
  539. package/src/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.ts +37 -0
  540. package/src/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.ts +658 -0
  541. package/src/plugins/table/pm-plugins/sticky-headers/plugin-key.ts +6 -0
  542. package/src/plugins/table/pm-plugins/sticky-headers/plugin-state.ts +55 -0
  543. package/src/plugins/table/pm-plugins/sticky-headers/plugin.ts +36 -0
  544. package/src/plugins/table/pm-plugins/sticky-headers/types.ts +20 -0
  545. package/src/plugins/table/pm-plugins/sticky-headers/util.ts +18 -0
  546. package/src/plugins/table/pm-plugins/table-local-id.ts +203 -0
  547. package/src/plugins/table/pm-plugins/table-resizing/commands.ts +168 -0
  548. package/src/plugins/table/pm-plugins/table-resizing/event-handlers.ts +218 -0
  549. package/src/plugins/table/pm-plugins/table-resizing/index.ts +3 -0
  550. package/src/plugins/table/pm-plugins/table-resizing/plugin-factory.ts +28 -0
  551. package/src/plugins/table/pm-plugins/table-resizing/plugin-key.ts +6 -0
  552. package/src/plugins/table/pm-plugins/table-resizing/plugin.ts +79 -0
  553. package/src/plugins/table/pm-plugins/table-resizing/reducer.ts +40 -0
  554. package/src/plugins/table/pm-plugins/table-resizing/utils/colgroup.ts +58 -0
  555. package/src/plugins/table/pm-plugins/table-resizing/utils/column-state.ts +122 -0
  556. package/src/plugins/table/pm-plugins/table-resizing/utils/content-width.ts +130 -0
  557. package/src/plugins/table/pm-plugins/table-resizing/utils/dom.ts +176 -0
  558. package/src/plugins/table/pm-plugins/table-resizing/utils/index.ts +37 -0
  559. package/src/plugins/table/pm-plugins/table-resizing/utils/misc.ts +136 -0
  560. package/src/plugins/table/pm-plugins/table-resizing/utils/resize-column.ts +23 -0
  561. package/src/plugins/table/pm-plugins/table-resizing/utils/resize-logic.ts +275 -0
  562. package/src/plugins/table/pm-plugins/table-resizing/utils/resize-state.ts +348 -0
  563. package/src/plugins/table/pm-plugins/table-resizing/utils/scale-table.ts +142 -0
  564. package/src/plugins/table/pm-plugins/table-resizing/utils/types.ts +23 -0
  565. package/src/plugins/table/pm-plugins/table-resizing/utils/unit-to-number.ts +2 -0
  566. package/src/plugins/table/pm-plugins/table-selection-keymap.ts +32 -0
  567. package/src/plugins/table/reducer.ts +106 -0
  568. package/src/plugins/table/todo-stubs.ts +1 -0
  569. package/src/plugins/table/toolbar.ts +401 -0
  570. package/src/plugins/table/transforms/column-width.ts +187 -0
  571. package/src/plugins/table/transforms/delete-columns.ts +251 -0
  572. package/src/plugins/table/transforms/delete-rows.ts +150 -0
  573. package/src/plugins/table/transforms/fix-tables.ts +296 -0
  574. package/src/plugins/table/transforms/index.ts +7 -0
  575. package/src/plugins/table/transforms/merge.ts +312 -0
  576. package/src/plugins/table/transforms/metadata.ts +35 -0
  577. package/src/plugins/table/transforms/replace-table.ts +48 -0
  578. package/src/plugins/table/transforms/split.ts +99 -0
  579. package/src/plugins/table/types.ts +345 -0
  580. package/src/plugins/table/ui/FloatingContextualButton/index.tsx +196 -0
  581. package/src/plugins/table/ui/FloatingContextualButton/styles.ts +29 -0
  582. package/src/plugins/table/ui/FloatingContextualMenu/ContextualMenu.tsx +524 -0
  583. package/src/plugins/table/ui/FloatingContextualMenu/__tests__/ContextualMenu.tsx +55 -0
  584. package/src/plugins/table/ui/FloatingContextualMenu/__tests__/FloatingContextualMenu.tsx +49 -0
  585. package/src/plugins/table/ui/FloatingContextualMenu/index.tsx +131 -0
  586. package/src/plugins/table/ui/FloatingContextualMenu/styles.ts +53 -0
  587. package/src/plugins/table/ui/FloatingDeleteButton/DeleteButton.tsx +49 -0
  588. package/src/plugins/table/ui/FloatingDeleteButton/getPopUpOptions.ts +75 -0
  589. package/src/plugins/table/ui/FloatingDeleteButton/index.tsx +384 -0
  590. package/src/plugins/table/ui/FloatingDeleteButton/types.ts +1 -0
  591. package/src/plugins/table/ui/FloatingInsertButton/InsertButton.tsx +132 -0
  592. package/src/plugins/table/ui/FloatingInsertButton/getPopupOptions.ts +122 -0
  593. package/src/plugins/table/ui/FloatingInsertButton/index.tsx +268 -0
  594. package/src/plugins/table/ui/LayoutButton/index.tsx +220 -0
  595. package/src/plugins/table/ui/TableFloatingControls/CornerControls/index.tsx +105 -0
  596. package/src/plugins/table/ui/TableFloatingControls/NumberColumn/index.tsx +108 -0
  597. package/src/plugins/table/ui/TableFloatingControls/RowControls/index.tsx +119 -0
  598. package/src/plugins/table/ui/TableFloatingControls/index.tsx +202 -0
  599. package/src/plugins/table/ui/common-styles.ts +726 -0
  600. package/src/plugins/table/ui/consts.ts +100 -0
  601. package/src/plugins/table/ui/messages.ts +43 -0
  602. package/src/plugins/table/ui/ui-styles.ts +459 -0
  603. package/src/plugins/table/utils/analytics.ts +81 -0
  604. package/src/plugins/table/utils/collapse.ts +99 -0
  605. package/src/plugins/table/utils/column-controls.ts +225 -0
  606. package/src/plugins/table/utils/decoration.ts +456 -0
  607. package/src/plugins/table/utils/dom.ts +211 -0
  608. package/src/plugins/table/utils/get-allow-add-column-custom-step.ts +11 -0
  609. package/src/plugins/table/utils/index.ts +69 -0
  610. package/src/plugins/table/utils/nodes.ts +140 -0
  611. package/src/plugins/table/utils/paste.ts +164 -0
  612. package/src/plugins/table/utils/referentiality.ts +24 -0
  613. package/src/plugins/table/utils/row-controls.ts +238 -0
  614. package/src/plugins/table/utils/selection.ts +107 -0
  615. package/src/plugins/table/utils/table.ts +31 -0
  616. package/src/plugins/table/utils/update-plugin-state-decorations.ts +14 -0
  617. package/src/plugins/table-plugin.ts +1 -38
@@ -0,0 +1,610 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _defineProperty3 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _react = _interopRequireDefault(require("react"));
25
+
26
+ var _classnames2 = _interopRequireDefault(require("classnames"));
27
+
28
+ var _utils = require("@atlaskit/editor-tables/utils");
29
+
30
+ var _rafSchd = _interopRequireDefault(require("raf-schd"));
31
+
32
+ var _styles = require("@atlaskit/editor-common/styles");
33
+
34
+ var _utils2 = require("@atlaskit/editor-common/utils");
35
+
36
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
37
+
38
+ var _nodeWidth = require("@atlaskit/editor-common/node-width");
39
+
40
+ var _commands = require("../commands");
41
+
42
+ var _pluginFactory = require("../pm-plugins/plugin-factory");
43
+
44
+ var _stickyHeaders = require("../pm-plugins/sticky-headers");
45
+
46
+ var _tableResizing = require("../pm-plugins/table-resizing");
47
+
48
+ var _utils3 = require("../pm-plugins/table-resizing/utils");
49
+
50
+ var _dom = require("../pm-plugins/table-resizing/utils/dom");
51
+
52
+ var _types = require("../types");
53
+
54
+ var _TableFloatingControls = _interopRequireDefault(require("../ui/TableFloatingControls"));
55
+
56
+ var _utils4 = require("../utils");
57
+
58
+ var _updateOverflowShadows = require("./update-overflow-shadows");
59
+
60
+ var _memoizeOne = _interopRequireDefault(require("memoize-one"));
61
+
62
+ var _OverflowShadowsObserver = require("./OverflowShadowsObserver");
63
+
64
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
65
+
66
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty3.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
67
+
68
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
69
+
70
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
71
+
72
+ var isIE11 = _utils2.browser.ie_version === 11;
73
+
74
+ var NOOP = function NOOP() {
75
+ return undefined;
76
+ };
77
+
78
+ var TableComponent = /*#__PURE__*/function (_React$Component) {
79
+ (0, _inherits2.default)(TableComponent, _React$Component);
80
+
81
+ var _super = _createSuper(TableComponent);
82
+
83
+ function TableComponent(props) {
84
+ var _defineProperty2;
85
+
86
+ var _this;
87
+
88
+ (0, _classCallCheck2.default)(this, TableComponent);
89
+ _this = _super.call(this, props);
90
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "state", (_defineProperty2 = {
91
+ scroll: 0,
92
+ tableContainerWidth: 'inherit',
93
+ parentWidth: undefined,
94
+ isLoading: true
95
+ }, (0, _defineProperty3.default)(_defineProperty2, _types.ShadowEvent.SHOW_BEFORE_SHADOW, false), (0, _defineProperty3.default)(_defineProperty2, _types.ShadowEvent.SHOW_AFTER_SHADOW, false), _defineProperty2));
96
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "updateShadowState", function (shadowKey, value) {
97
+ if (_this.state[shadowKey] === value) {
98
+ return;
99
+ } // need this check to satisfy types for the setState argument
100
+
101
+
102
+ if (shadowKey === _types.ShadowEvent.SHOW_BEFORE_SHADOW) {
103
+ return _this.setState((0, _defineProperty3.default)({}, shadowKey, value));
104
+ }
105
+
106
+ _this.setState((0, _defineProperty3.default)({}, shadowKey, value));
107
+ });
108
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "onStickyState", function (state) {
109
+ var _this$props$getEditor = _this.props.getEditorFeatureFlags(),
110
+ tableOverflowShadowsOptimization = _this$props$getEditor.tableOverflowShadowsOptimization;
111
+
112
+ var pos = _this.props.getPos();
113
+
114
+ if (!(0, _utils2.isValidPosition)(pos, _this.props.view.state)) {
115
+ return;
116
+ }
117
+
118
+ var stickyHeader = (0, _stickyHeaders.findStickyHeaderForTable)(state, pos);
119
+
120
+ if (stickyHeader !== _this.state.stickyHeader) {
121
+ _this.setState({
122
+ stickyHeader: stickyHeader
123
+ });
124
+
125
+ if (tableOverflowShadowsOptimization && _this.overflowShadowsObserver) {
126
+ _this.overflowShadowsObserver.updateStickyShadows();
127
+ }
128
+ }
129
+ });
130
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "prevTableState", null);
131
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "getMarginLeft", function (tableContainerCssWidth) {
132
+ var containerWidth = _this.props.containerWidth;
133
+ var lineLength = containerWidth.lineLength;
134
+ var marginLeft;
135
+
136
+ if (tableContainerCssWidth !== 'inherit' && lineLength) {
137
+ var _containerWidth2 = (0, _utils2.parsePx)(tableContainerCssWidth);
138
+
139
+ if (_containerWidth2) {
140
+ marginLeft = (lineLength - _containerWidth2) / 2;
141
+ }
142
+ }
143
+
144
+ return marginLeft;
145
+ });
146
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleScroll", function (event) {
147
+ if (!_this.wrapper || event.target !== _this.wrapper) {
148
+ return;
149
+ }
150
+
151
+ if (_this.table) {
152
+ // sync sticky header row to table scroll
153
+ var headers = _this.table.querySelectorAll('tr[data-header-row]');
154
+
155
+ for (var i = 0; i < headers.length; i++) {
156
+ var header = headers[i];
157
+ header.scrollLeft = _this.wrapper.scrollLeft;
158
+ header.style.marginRight = '2px';
159
+ }
160
+ }
161
+
162
+ var _this$props$getEditor2 = _this.props.getEditorFeatureFlags(),
163
+ tableOverflowShadowsOptimization = _this$props$getEditor2.tableOverflowShadowsOptimization;
164
+
165
+ if (!tableOverflowShadowsOptimization) {
166
+ _this.updateShadows();
167
+ }
168
+ });
169
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleTableResizing", function () {
170
+ var _this$props = _this.props,
171
+ getNode = _this$props.getNode,
172
+ containerWidth = _this$props.containerWidth,
173
+ options = _this$props.options;
174
+ var prevNode = _this.node;
175
+ var node = getNode();
176
+ var prevAttrs = prevNode.attrs; // We only consider a layout change valid if it's done outside of an autoSize.
177
+
178
+ var layoutChanged = prevAttrs.layout !== node.attrs.layout && prevAttrs.__autoSize === node.attrs.__autoSize;
179
+
180
+ var parentWidth = _this.getParentNodeWidth();
181
+
182
+ var parentWidthChanged = parentWidth && parentWidth !== _this.state.parentWidth;
183
+
184
+ var layoutSize = _this.tableNodeLayoutSize(node, containerWidth.width, options);
185
+
186
+ var hasNumberedColumnChanged = prevAttrs.isNumberColumnEnabled !== node.attrs.isNumberColumnEnabled;
187
+ var noOfColumnsChanged = (0, _utils4.tablesHaveDifferentNoOfColumns)(node, prevNode);
188
+
189
+ if ( // Breakout mode/layout changed
190
+ layoutChanged || // We need to react if our parent changes
191
+ // Scales the cols widths relative to the new parent width.
192
+ parentWidthChanged || // Enabling / disabling this feature reduces or adds size to the table.
193
+ hasNumberedColumnChanged || // This last check is also to cater for dynamic text sizing changing the 'default' layout width
194
+ // Usually happens on window resize.
195
+ layoutSize !== _this.layoutSize || noOfColumnsChanged) {
196
+ // If column has been inserted/deleted avoid multi dispatch
197
+ if (!hasNumberedColumnChanged && !noOfColumnsChanged) {
198
+ _this.scaleTable({
199
+ parentWidth: parentWidth,
200
+ layoutChanged: layoutChanged
201
+ });
202
+ }
203
+
204
+ _this.updateParentWidth(parentWidth);
205
+ }
206
+
207
+ _this.updateTableContainerWidth();
208
+
209
+ _this.node = node;
210
+ _this.containerWidth = containerWidth;
211
+ _this.layoutSize = layoutSize;
212
+ });
213
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "scaleTable", function (scaleOptions) {
214
+ var _this$props2 = _this.props,
215
+ view = _this$props2.view,
216
+ getNode = _this$props2.getNode,
217
+ getPos = _this$props2.getPos,
218
+ containerWidth = _this$props2.containerWidth,
219
+ options = _this$props2.options;
220
+ var node = getNode();
221
+ var state = view.state,
222
+ dispatch = view.dispatch;
223
+ var pos = getPos();
224
+
225
+ if (!(0, _utils2.isValidPosition)(pos, state)) {
226
+ return;
227
+ }
228
+
229
+ var domAtPos = view.domAtPos.bind(view);
230
+ var width = containerWidth.width;
231
+
232
+ _this.scaleTableDebounced.cancel();
233
+
234
+ (0, _tableResizing.scaleTable)(_this.table, _objectSpread(_objectSpread({}, scaleOptions), {}, {
235
+ node: node,
236
+ prevNode: _this.node || node,
237
+ start: pos + 1,
238
+ containerWidth: width,
239
+ previousContainerWidth: _this.containerWidth.width || width
240
+ }, options), domAtPos)(state, dispatch);
241
+ });
242
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleAutoSize", function () {
243
+ if (_this.table) {
244
+ var _this$props3 = _this.props,
245
+ view = _this$props3.view,
246
+ getNode = _this$props3.getNode,
247
+ getPos = _this$props3.getPos,
248
+ containerWidth = _this$props3.containerWidth;
249
+
250
+ var _node = getNode();
251
+
252
+ var pos = getPos();
253
+
254
+ if (!(0, _utils2.isValidPosition)(pos, view.state)) {
255
+ return;
256
+ }
257
+
258
+ (0, _commands.autoSizeTable)(view, _node, _this.table, pos, {
259
+ containerWidth: containerWidth.width
260
+ });
261
+ }
262
+ });
263
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleWindowResize", function () {
264
+ var _this$props4 = _this.props,
265
+ getNode = _this$props4.getNode,
266
+ containerWidth = _this$props4.containerWidth;
267
+
268
+ var layoutSize = _this.tableNodeLayoutSize(getNode());
269
+
270
+ if (containerWidth.width > layoutSize) {
271
+ return;
272
+ }
273
+
274
+ var parentWidth = _this.getParentNodeWidth();
275
+
276
+ _this.scaleTableDebounced(parentWidth);
277
+ });
278
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "updateTableContainerWidth", function () {
279
+ var _this$props5 = _this.props,
280
+ getNode = _this$props5.getNode,
281
+ containerWidth = _this$props5.containerWidth,
282
+ options = _this$props5.options;
283
+ var node = getNode();
284
+
285
+ if (options && options.isBreakoutEnabled === false) {
286
+ return;
287
+ }
288
+
289
+ var tableContainerWidth = (0, _styles.calcTableWidth)(node.attrs.layout, containerWidth.width);
290
+
291
+ if (_this.state.tableContainerWidth === tableContainerWidth) {
292
+ return null;
293
+ }
294
+
295
+ _this.setState(function (prevState) {
296
+ if (options && options.isBreakoutEnabled === false && prevState.tableContainerWidth !== 'inherit') {
297
+ return {
298
+ tableContainerWidth: 'inherit'
299
+ };
300
+ }
301
+
302
+ return {
303
+ tableContainerWidth: tableContainerWidth
304
+ };
305
+ });
306
+ });
307
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "getParentNodeWidth", function () {
308
+ var _this$props6 = _this.props,
309
+ getPos = _this$props6.getPos,
310
+ containerWidth = _this$props6.containerWidth,
311
+ options = _this$props6.options,
312
+ state = _this$props6.view.state;
313
+ var pos = getPos();
314
+
315
+ if (!(0, _utils2.isValidPosition)(pos, state)) {
316
+ return;
317
+ }
318
+
319
+ return (0, _nodeWidth.getParentNodeWidth)(pos, state, containerWidth, options && options.isFullWidthModeEnabled);
320
+ });
321
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "updateParentWidth", function (width) {
322
+ _this.setState({
323
+ parentWidth: width
324
+ });
325
+ });
326
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "tableNodeLayoutSize", function (node, containerWidth, options) {
327
+ return (0, _utils3.getLayoutSize)(node.attrs.layout, containerWidth || _this.props.containerWidth.width, options || _this.props.options || {});
328
+ });
329
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "scaleTableDebounced", (0, _rafSchd.default)(_this.scaleTable));
330
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleTableResizingDebounced", (0, _rafSchd.default)(_this.handleTableResizing));
331
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleScrollDebounced", (0, _rafSchd.default)(_this.handleScroll));
332
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleAutoSizeDebounced", (0, _rafSchd.default)(_this.handleAutoSize));
333
+ (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleWindowResizeDebounced", (0, _rafSchd.default)(_this.handleWindowResize));
334
+ var _options = props.options,
335
+ _containerWidth = props.containerWidth,
336
+ _getNode = props.getNode,
337
+ getEditorFeatureFlags = props.getEditorFeatureFlags;
338
+ _this.node = _getNode();
339
+ _this.containerWidth = _containerWidth; // store table size using previous full-width mode so can detect if it has changed
340
+
341
+ var isFullWidthModeEnabled = _options ? _options.wasFullWidthModeEnabled : false;
342
+ _this.layoutSize = _this.tableNodeLayoutSize(_this.node, _containerWidth.width, {
343
+ isFullWidthModeEnabled: isFullWidthModeEnabled
344
+ }); // Disable inline table editing and resizing controls in Firefox
345
+ // https://github.com/ProseMirror/prosemirror/issues/432
346
+
347
+ if ('execCommand' in document) {
348
+ ['enableObjectResizing', 'enableInlineTableEditing'].forEach(function (cmd) {
349
+ if (document.queryCommandSupported(cmd)) {
350
+ document.execCommand(cmd, false, 'false');
351
+ }
352
+ });
353
+ }
354
+
355
+ var _getEditorFeatureFlag = getEditorFeatureFlags(),
356
+ initialRenderOptimization = _getEditorFeatureFlag.initialRenderOptimization;
357
+
358
+ if (!initialRenderOptimization) {
359
+ // @see ED-7945
360
+ requestAnimationFrame(function () {
361
+ _this.setState({
362
+ isLoading: false
363
+ });
364
+ });
365
+ }
366
+
367
+ return _this;
368
+ }
369
+
370
+ (0, _createClass2.default)(TableComponent, [{
371
+ key: "componentDidMount",
372
+ value: function componentDidMount() {
373
+ var _this$props7 = this.props,
374
+ allowColumnResizing = _this$props7.allowColumnResizing,
375
+ eventDispatcher = _this$props7.eventDispatcher;
376
+
377
+ if (allowColumnResizing && this.wrapper && !isIE11) {
378
+ this.wrapper.addEventListener('scroll', this.handleScrollDebounced);
379
+ }
380
+
381
+ if (allowColumnResizing) {
382
+ /**
383
+ * We no longer use `containerWidth` as a variable to determine an update for table resizing (avoids unnecessary updates).
384
+ * Instead we use the resize event to only trigger updates when necessary.
385
+ */
386
+ window.addEventListener('resize', this.handleWindowResizeDebounced);
387
+ this.updateTableContainerWidth();
388
+ this.handleTableResizingDebounced();
389
+ }
390
+
391
+ var currentStickyState = _stickyHeaders.pluginKey.getState(this.props.view.state);
392
+
393
+ if (currentStickyState) {
394
+ this.onStickyState(currentStickyState);
395
+ }
396
+
397
+ eventDispatcher.on(_stickyHeaders.pluginKey.key, this.onStickyState);
398
+ }
399
+ }, {
400
+ key: "componentWillUnmount",
401
+ value: function componentWillUnmount() {
402
+ if (this.wrapper && !isIE11) {
403
+ this.wrapper.removeEventListener('scroll', this.handleScrollDebounced);
404
+ }
405
+
406
+ this.handleScrollDebounced.cancel();
407
+ this.scaleTableDebounced.cancel();
408
+ this.handleTableResizingDebounced.cancel();
409
+ this.handleAutoSizeDebounced.cancel();
410
+ this.handleWindowResizeDebounced.cancel();
411
+
412
+ if (this.props.allowColumnResizing) {
413
+ window.removeEventListener('resize', this.handleWindowResizeDebounced);
414
+ }
415
+
416
+ if (this.overflowShadowsObserver) {
417
+ this.overflowShadowsObserver.dispose();
418
+ }
419
+
420
+ this.props.eventDispatcher.off(_stickyHeaders.pluginKey.key, this.onStickyState);
421
+ }
422
+ }, {
423
+ key: "componentDidUpdate",
424
+ value: function componentDidUpdate(prevProps) {
425
+ var _this$props8 = this.props,
426
+ getNode = _this$props8.getNode,
427
+ isMediaFullscreen = _this$props8.isMediaFullscreen,
428
+ allowColumnResizing = _this$props8.allowColumnResizing;
429
+
430
+ var _this$props$getEditor3 = this.props.getEditorFeatureFlags(),
431
+ tableOverflowShadowsOptimization = _this$props$getEditor3.tableOverflowShadowsOptimization;
432
+
433
+ if (!tableOverflowShadowsOptimization) {
434
+ this.updateShadows();
435
+ } else {
436
+ var _this$wrapper;
437
+
438
+ if ((_this$wrapper = this.wrapper) !== null && _this$wrapper !== void 0 && _this$wrapper.parentElement && this.table && !this.overflowShadowsObserver) {
439
+ this.overflowShadowsObserver = new _OverflowShadowsObserver.OverflowShadowsObserver(this.updateShadowState, this.table, this.wrapper);
440
+ }
441
+
442
+ if (this.overflowShadowsObserver) {
443
+ var _this$state$stickyHea;
444
+
445
+ this.overflowShadowsObserver.observeCells((_this$state$stickyHea = this.state.stickyHeader) === null || _this$state$stickyHea === void 0 ? void 0 : _this$state$stickyHea.sticky, (0, _utils4.containsHeaderRow)(getNode()));
446
+ }
447
+ }
448
+
449
+ var currentTable = getNode();
450
+
451
+ if (currentTable.attrs.__autoSize) {
452
+ // Wait for next tick to handle auto sizing, gives the browser time to do layout calc etc.
453
+ this.handleAutoSizeDebounced();
454
+ } // re-drawing will cause media component get unmounted that will exit fullscreen mode if media is in fullscreen mode
455
+ // see https://product-fabric.atlassian.net/browse/MEX-1290
456
+ else if (allowColumnResizing && this.table && !isMediaFullscreen) {
457
+ // If col widths (e.g. via collab) or number of columns (e.g. delete a column) have changed,
458
+ // re-draw colgroup.
459
+ var previousTable = this.node;
460
+
461
+ if ((0, _utils4.tablesHaveDifferentColumnWidths)(currentTable, previousTable) || (0, _utils4.tablesHaveDifferentNoOfColumns)(currentTable, previousTable)) {
462
+ var view = this.props.view;
463
+ (0, _utils3.insertColgroupFromNode)(this.table, currentTable);
464
+ (0, _dom.updateControls)(this.props.getEditorFeatureFlags)(view.state);
465
+ }
466
+
467
+ this.handleTableResizingDebounced();
468
+ }
469
+ }
470
+ }, {
471
+ key: "updateShadows",
472
+ value: function updateShadows() {
473
+ var _this$wrapper2;
474
+
475
+ var parent = (_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 ? void 0 : _this$wrapper2.parentElement;
476
+
477
+ if (this.wrapper && parent) {
478
+ var rightShadows = parent.querySelectorAll(".".concat(_types.TableCssClassName.TABLE_RIGHT_SHADOW));
479
+ var leftShadows = parent.querySelectorAll(".".concat(_types.TableCssClassName.TABLE_LEFT_SHADOW));
480
+ (0, _updateOverflowShadows.updateOverflowShadows)(this.props.getEditorFeatureFlags)(this.props.view.state, this.wrapper, this.table, rightShadows, leftShadows);
481
+ }
482
+ }
483
+ }, {
484
+ key: "render",
485
+ value: function render() {
486
+ var _classnames,
487
+ _this2 = this;
488
+
489
+ var _this$props9 = this.props,
490
+ view = _this$props9.view,
491
+ getNode = _this$props9.getNode,
492
+ tableResizingPluginState = _this$props9.tableResizingPluginState,
493
+ _this$props9$allowCon = _this$props9.allowControls,
494
+ allowControls = _this$props9$allowCon === void 0 ? true : _this$props9$allowCon,
495
+ isHeaderRowEnabled = _this$props9.isHeaderRowEnabled,
496
+ ordering = _this$props9.ordering,
497
+ isHeaderColumnEnabled = _this$props9.isHeaderColumnEnabled,
498
+ tableActive = _this$props9.tableActive,
499
+ containerWidth = _this$props9.containerWidth;
500
+ var _this$state = this.state,
501
+ isLoading = _this$state.isLoading,
502
+ tableContainerWidth = _this$state.tableContainerWidth,
503
+ showBeforeShadow = _this$state.showBeforeShadow,
504
+ showAfterShadow = _this$state.showAfterShadow;
505
+ var node = getNode(); // doesn't work well with WithPluginState
506
+
507
+ var _getPluginState = (0, _pluginFactory.getPluginState)(view.state),
508
+ isInDanger = _getPluginState.isInDanger,
509
+ hoveredRows = _getPluginState.hoveredRows;
510
+
511
+ var _this$props$getEditor4 = this.props.getEditorFeatureFlags(),
512
+ stickyHeadersOptimization = _this$props$getEditor4.stickyHeadersOptimization,
513
+ initialRenderOptimization = _this$props$getEditor4.initialRenderOptimization,
514
+ tableRenderOptimization = _this$props$getEditor4.tableRenderOptimization,
515
+ tableOverflowShadowsOptimization = _this$props$getEditor4.tableOverflowShadowsOptimization;
516
+
517
+ var tableRef = this.table || undefined;
518
+ var isResizing = !!tableResizingPluginState && !!tableResizingPluginState.dragging;
519
+ var headerRow = tableRef ? tableRef.querySelector('tr[data-header-row]') : undefined; //dont need to change tableHeight with tableRenderOptimization because it will be observed inside floating components
520
+
521
+ var tableHeight = tableRef && !tableRenderOptimization ? tableRef.offsetHeight : undefined;
522
+ var hasHeaderRow = (0, _utils4.containsHeaderRow)(node);
523
+
524
+ var rowControls = /*#__PURE__*/_react.default.createElement("div", {
525
+ className: _types.TableCssClassName.ROW_CONTROLS_WRAPPER
526
+ }, /*#__PURE__*/_react.default.createElement(_TableFloatingControls.default, {
527
+ editorView: view,
528
+ tableRef: tableRef,
529
+ tableActive: tableActive,
530
+ hoveredRows: hoveredRows,
531
+ isInDanger: isInDanger,
532
+ isResizing: isResizing,
533
+ isNumberColumnEnabled: node.attrs.isNumberColumnEnabled,
534
+ isHeaderRowEnabled: isHeaderRowEnabled,
535
+ ordering: ordering,
536
+ isHeaderColumnEnabled: isHeaderColumnEnabled,
537
+ hasHeaderRow: hasHeaderRow // pass `selection` and `tableHeight` to control re-render
538
+ ,
539
+ selection: view.state.selection,
540
+ tableHeight: tableHeight,
541
+ headerRowHeight: headerRow ? headerRow.offsetHeight : undefined,
542
+ stickyHeader: this.state.stickyHeader,
543
+ getEditorFeatureFlags: this.props.getEditorFeatureFlags
544
+ }));
545
+
546
+ var shadowPadding = allowControls && (!isLoading || initialRenderOptimization) && tableActive ? -_editorSharedStyles.akEditorTableToolbarSize : _styles.tableMarginSides;
547
+ var shadowStyle = tableOverflowShadowsOptimization ? (0, _memoizeOne.default)(function (visible) {
548
+ return {
549
+ visibility: visible ? 'visible' : 'hidden'
550
+ };
551
+ }) : NOOP;
552
+ return /*#__PURE__*/_react.default.createElement("div", {
553
+ style: {
554
+ width: tableContainerWidth,
555
+ marginLeft: this.getMarginLeft(tableContainerWidth)
556
+ },
557
+ className: (0, _classnames2.default)(_types.TableCssClassName.TABLE_CONTAINER, (_classnames = {}, (0, _defineProperty3.default)(_classnames, _types.TableCssClassName.WITH_CONTROLS, allowControls && tableActive), (0, _defineProperty3.default)(_classnames, _types.TableCssClassName.TABLE_STICKY, this.state.stickyHeader && hasHeaderRow), (0, _defineProperty3.default)(_classnames, _types.TableCssClassName.HOVERED_DELETE_BUTTON, isInDanger), (0, _defineProperty3.default)(_classnames, _types.TableCssClassName.TABLE_SELECTED, (0, _utils.isTableSelected)(view.state.selection)), (0, _defineProperty3.default)(_classnames, 'less-padding', containerWidth.width < _editorSharedStyles.akEditorMobileBreakoutPoint), _classnames)),
558
+ "data-number-column": node.attrs.isNumberColumnEnabled,
559
+ "data-layout": node.attrs.layout
560
+ }, stickyHeadersOptimization && /*#__PURE__*/_react.default.createElement("div", {
561
+ className: _types.TableCssClassName.TABLE_STICKY_SENTINEL_TOP
562
+ }), allowControls && (!isLoading || initialRenderOptimization) && rowControls, /*#__PURE__*/_react.default.createElement("div", {
563
+ style: shadowStyle(showBeforeShadow),
564
+ className: _types.TableCssClassName.TABLE_LEFT_SHADOW
565
+ }), this.state.stickyHeader && /*#__PURE__*/_react.default.createElement("div", {
566
+ className: "".concat(_types.TableCssClassName.TABLE_LEFT_SHADOW, " ").concat(_types.TableCssClassName.TABLE_STICKY_SHADOW),
567
+ style: {
568
+ visibility: tableOverflowShadowsOptimization ? showBeforeShadow && hasHeaderRow ? 'visible' : 'hidden' : undefined,
569
+ top: "".concat(this.state.stickyHeader.top + this.state.stickyHeader.padding + shadowPadding + 2, "px")
570
+ }
571
+ }), /*#__PURE__*/_react.default.createElement("div", {
572
+ className: (0, _classnames2.default)(_types.TableCssClassName.TABLE_NODE_WRAPPER),
573
+ ref: function ref(elem) {
574
+ _this2.wrapper = elem;
575
+
576
+ if (elem) {
577
+ _this2.props.contentDOM(elem);
578
+
579
+ var tableElement = elem.querySelector('table');
580
+
581
+ if (tableElement !== _this2.table) {
582
+ _this2.table = tableElement;
583
+ }
584
+ }
585
+ }
586
+ }), /*#__PURE__*/_react.default.createElement("div", {
587
+ style: shadowStyle(showAfterShadow),
588
+ className: _types.TableCssClassName.TABLE_RIGHT_SHADOW
589
+ }), this.state.stickyHeader && /*#__PURE__*/_react.default.createElement("div", {
590
+ style: {
591
+ position: 'absolute',
592
+ right: '-2px'
593
+ }
594
+ }, /*#__PURE__*/_react.default.createElement("div", {
595
+ className: "".concat(_types.TableCssClassName.TABLE_RIGHT_SHADOW, " ").concat(_types.TableCssClassName.TABLE_STICKY_SHADOW),
596
+ style: {
597
+ visibility: tableOverflowShadowsOptimization ? showAfterShadow && hasHeaderRow ? 'visible' : 'hidden' : undefined,
598
+ top: "".concat(this.state.stickyHeader.top + this.state.stickyHeader.padding + shadowPadding + 2, "px")
599
+ }
600
+ })), stickyHeadersOptimization && /*#__PURE__*/_react.default.createElement("div", {
601
+ className: _types.TableCssClassName.TABLE_STICKY_SENTINEL_BOTTOM
602
+ }));
603
+ }
604
+ }]);
605
+ return TableComponent;
606
+ }(_react.default.Component);
607
+
608
+ (0, _defineProperty3.default)(TableComponent, "displayName", 'TableComponent');
609
+ var _default = TableComponent;
610
+ exports.default = _default;