@atlaskit/editor-tables 3.1.14 → 3.2.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 (647) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cell-bookmark/package.json +4 -4
  3. package/cell-selection/package.json +4 -4
  4. package/dist/cjs/add-to-cache.js +10 -0
  5. package/dist/cjs/cell-bookmark.js +2 -2
  6. package/dist/cjs/cell-selection.js +6 -6
  7. package/dist/cjs/compute-map.js +133 -0
  8. package/dist/cjs/find-bad-col-widths.js +51 -0
  9. package/dist/cjs/find-width.js +41 -0
  10. package/dist/cjs/index.js +4 -3
  11. package/dist/cjs/pm-plugins/handle-mouse-down.js +154 -0
  12. package/dist/cjs/pm-plugins/handle-triple-click.js +20 -0
  13. package/dist/cjs/pm-plugins/input.js +3 -156
  14. package/dist/cjs/pm-plugins/table-editing.js +4 -2
  15. package/dist/cjs/read-from-cache.js +10 -0
  16. package/dist/cjs/rect.js +18 -0
  17. package/dist/cjs/table-map-cache.js +49 -0
  18. package/dist/cjs/table-map.js +42 -253
  19. package/dist/cjs/utils/add-col-span.js +26 -0
  20. package/dist/cjs/utils/add-column-after.js +21 -0
  21. package/dist/cjs/utils/add-column-at.js +2 -2
  22. package/dist/cjs/utils/add-column-before.js +21 -0
  23. package/dist/cjs/utils/add-column.js +13 -15
  24. package/dist/cjs/utils/add-row-after.js +21 -0
  25. package/dist/cjs/utils/add-row-at.js +5 -83
  26. package/dist/cjs/utils/add-row-before.js +21 -0
  27. package/dist/cjs/utils/analytics-helpers.js +12 -45
  28. package/dist/cjs/utils/array-of-rows.js +5 -0
  29. package/dist/cjs/utils/assert-colspan.js +14 -0
  30. package/dist/cjs/utils/cell-around.js +14 -0
  31. package/dist/cjs/utils/cell-near.js +21 -0
  32. package/dist/cjs/utils/cell-wrapping.js +16 -0
  33. package/dist/cjs/utils/cells.js +25 -36
  34. package/dist/cjs/utils/changed-descendants.js +33 -0
  35. package/dist/cjs/utils/clip-cells.js +80 -0
  36. package/dist/cjs/utils/clone-column.js +4 -4
  37. package/dist/cjs/utils/clone-row-at.js +86 -0
  38. package/dist/cjs/utils/clone-row.js +4 -4
  39. package/dist/cjs/utils/colspan.js +18 -47
  40. package/dist/cjs/utils/column-is-header.js +17 -0
  41. package/dist/cjs/utils/convert-array-of-rows-to-table-node.js +57 -0
  42. package/dist/cjs/utils/convert-table-node-to-array-of-rows.js +54 -0
  43. package/dist/cjs/utils/find-cell-closest-to-pos.js +18 -0
  44. package/dist/cjs/utils/find-cell-rect-closest-to-pos.js +21 -0
  45. package/dist/cjs/utils/find-table-closest-to-pos.js +14 -0
  46. package/dist/cjs/utils/find-table.js +13 -0
  47. package/dist/cjs/utils/find.js +27 -41
  48. package/dist/cjs/utils/fit-slice.js +27 -0
  49. package/dist/cjs/utils/fix-table.js +112 -0
  50. package/dist/cjs/utils/fix-tables.js +4 -138
  51. package/dist/cjs/utils/for-each-cell-in-column.js +27 -0
  52. package/dist/cjs/utils/for-each-cell-in-row.js +25 -0
  53. package/dist/cjs/utils/for-each-cell.js +14 -41
  54. package/dist/cjs/utils/get-cell-type-callback.js +5 -0
  55. package/dist/cjs/utils/get-cells-in-column.js +2 -2
  56. package/dist/cjs/utils/get-cells-in-row.js +2 -2
  57. package/dist/cjs/utils/get-cells-in-table.js +2 -2
  58. package/dist/cjs/utils/get-selected-cell-info.js +33 -0
  59. package/dist/cjs/utils/get-selected-table-info.js +25 -0
  60. package/dist/cjs/utils/get-table-selection-closes-to-pos.js +23 -0
  61. package/dist/cjs/utils/go-to-next-cell.js +2 -2
  62. package/dist/cjs/utils/handle-paste.js +11 -8
  63. package/dist/cjs/utils/in-same-table.js +9 -0
  64. package/dist/cjs/utils/{copy-paste.js → insert-cells.js} +13 -194
  65. package/dist/cjs/utils/is-column-selected.js +24 -0
  66. package/dist/cjs/utils/is-header-enabled-by-type.js +22 -0
  67. package/dist/cjs/utils/is-in-table.js +15 -0
  68. package/dist/cjs/utils/is-rect-selected.js +26 -0
  69. package/dist/cjs/utils/is-row-selected.js +24 -0
  70. package/dist/cjs/utils/is-selected.js +27 -66
  71. package/dist/cjs/utils/is-table-selected.js +22 -0
  72. package/dist/cjs/utils/is-valid-reorder.js +20 -0
  73. package/dist/cjs/utils/move-column.js +4 -4
  74. package/dist/cjs/utils/move-row-in-array-of-rows.js +23 -0
  75. package/dist/cjs/utils/move-row.js +4 -4
  76. package/dist/cjs/utils/move-table-column.js +16 -0
  77. package/dist/cjs/utils/move-table-row.js +14 -0
  78. package/dist/cjs/utils/next-cell.js +13 -0
  79. package/dist/cjs/utils/pasted-cells.js +129 -0
  80. package/dist/cjs/utils/points-at-cell.js +9 -0
  81. package/dist/cjs/utils/remove-col-span.js +29 -0
  82. package/dist/cjs/utils/remove-column-at.js +31 -0
  83. package/dist/cjs/utils/remove-column-closest-to-pos.js +19 -0
  84. package/dist/cjs/utils/remove-column.js +31 -80
  85. package/dist/cjs/utils/remove-row-at.js +31 -0
  86. package/dist/cjs/utils/remove-row-closest-to-pos.js +19 -0
  87. package/dist/cjs/utils/remove-row.js +26 -75
  88. package/dist/cjs/utils/remove-selected-columns.js +49 -0
  89. package/dist/cjs/utils/remove-selected-rows.js +49 -0
  90. package/dist/cjs/utils/reorder-utils.js +45 -178
  91. package/dist/cjs/utils/replace-table.js +4 -4
  92. package/dist/cjs/utils/select-nodes.js +43 -60
  93. package/dist/cjs/utils/select-table-closest-to-pos.js +36 -0
  94. package/dist/cjs/utils/select-table.js +26 -0
  95. package/dist/cjs/utils/selection-cell.js +3 -2
  96. package/dist/cjs/utils/split-cell-with-type.js +11 -15
  97. package/dist/cjs/utils/tables.js +13 -13
  98. package/dist/cjs/utils/toggle-header.js +7 -24
  99. package/dist/cjs/utils/transpose.js +39 -0
  100. package/dist/cjs/utils.js +66 -43
  101. package/dist/es2019/add-to-cache.js +4 -0
  102. package/dist/es2019/cell-bookmark.js +1 -1
  103. package/dist/es2019/cell-selection.js +3 -3
  104. package/dist/es2019/compute-map.js +128 -0
  105. package/dist/es2019/find-bad-col-widths.js +46 -0
  106. package/dist/es2019/find-width.js +35 -0
  107. package/dist/es2019/index.js +3 -2
  108. package/dist/es2019/pm-plugins/handle-mouse-down.js +148 -0
  109. package/dist/es2019/pm-plugins/handle-triple-click.js +16 -0
  110. package/dist/es2019/pm-plugins/input.js +2 -155
  111. package/dist/es2019/pm-plugins/table-editing.js +3 -1
  112. package/dist/es2019/pm-plugins.js +9 -1
  113. package/dist/es2019/read-from-cache.js +4 -0
  114. package/dist/es2019/rect.js +11 -0
  115. package/dist/es2019/table-map-cache.js +36 -0
  116. package/dist/es2019/table-map.js +17 -245
  117. package/dist/es2019/utils/add-col-span.js +17 -0
  118. package/dist/es2019/utils/add-column-after.js +16 -0
  119. package/dist/es2019/utils/add-column-at.js +1 -1
  120. package/dist/es2019/utils/add-column-before.js +16 -0
  121. package/dist/es2019/utils/add-column.js +6 -11
  122. package/dist/es2019/utils/add-row-after.js +16 -0
  123. package/dist/es2019/utils/add-row-at.js +2 -70
  124. package/dist/es2019/utils/add-row-before.js +16 -0
  125. package/dist/es2019/utils/analytics-helpers.js +12 -46
  126. package/dist/es2019/utils/array-of-rows.js +1 -0
  127. package/dist/es2019/utils/assert-colspan.js +8 -0
  128. package/dist/es2019/utils/cell-around.js +8 -0
  129. package/dist/es2019/utils/cell-near.js +19 -0
  130. package/dist/es2019/utils/cell-wrapping.js +10 -0
  131. package/dist/es2019/utils/cells.js +21 -38
  132. package/dist/es2019/utils/changed-descendants.js +27 -0
  133. package/dist/es2019/utils/clip-cells.js +75 -0
  134. package/dist/es2019/utils/clone-column.js +2 -2
  135. package/dist/es2019/utils/clone-row-at.js +71 -0
  136. package/dist/es2019/utils/clone-row.js +2 -2
  137. package/dist/es2019/utils/colspan.js +16 -40
  138. package/dist/es2019/utils/column-is-header.js +11 -0
  139. package/dist/es2019/utils/convert-array-of-rows-to-table-node.js +51 -0
  140. package/dist/es2019/utils/convert-table-node-to-array-of-rows.js +48 -0
  141. package/dist/es2019/utils/find-cell-closest-to-pos.js +10 -0
  142. package/dist/es2019/utils/find-cell-rect-closest-to-pos.js +16 -0
  143. package/dist/es2019/utils/find-table-closest-to-pos.js +6 -0
  144. package/dist/es2019/utils/find-table.js +3 -0
  145. package/dist/es2019/utils/find.js +21 -32
  146. package/dist/es2019/utils/fit-slice.js +21 -0
  147. package/dist/es2019/utils/fix-table.js +105 -0
  148. package/dist/es2019/utils/fix-tables.js +2 -133
  149. package/dist/es2019/utils/for-each-cell-in-column.js +20 -0
  150. package/dist/es2019/utils/for-each-cell-in-row.js +18 -0
  151. package/dist/es2019/utils/for-each-cell.js +11 -36
  152. package/dist/es2019/utils/get-cell-type-callback.js +1 -0
  153. package/dist/es2019/utils/get-cells-in-column.js +1 -1
  154. package/dist/es2019/utils/get-cells-in-row.js +1 -1
  155. package/dist/es2019/utils/get-cells-in-table.js +1 -1
  156. package/dist/es2019/utils/get-selected-cell-info.js +28 -0
  157. package/dist/es2019/utils/get-selected-table-info.js +19 -0
  158. package/dist/es2019/utils/get-table-selection-closes-to-pos.js +18 -0
  159. package/dist/es2019/utils/go-to-next-cell.js +1 -1
  160. package/dist/es2019/utils/handle-paste.js +5 -2
  161. package/dist/es2019/utils/in-same-table.js +3 -0
  162. package/dist/es2019/utils/{copy-paste.js → insert-cells.js} +2 -185
  163. package/dist/es2019/utils/is-column-selected.js +17 -0
  164. package/dist/es2019/utils/is-header-enabled-by-type.js +16 -0
  165. package/dist/es2019/utils/is-in-table.js +11 -0
  166. package/dist/es2019/utils/is-rect-selected.js +19 -0
  167. package/dist/es2019/utils/is-row-selected.js +17 -0
  168. package/dist/es2019/utils/is-selected.js +21 -60
  169. package/dist/es2019/utils/is-table-selected.js +17 -0
  170. package/dist/es2019/utils/is-valid-reorder.js +14 -0
  171. package/dist/es2019/utils/move-column.js +2 -2
  172. package/dist/es2019/utils/move-row-in-array-of-rows.js +17 -0
  173. package/dist/es2019/utils/move-row.js +2 -2
  174. package/dist/es2019/utils/move-table-column.js +10 -0
  175. package/dist/es2019/utils/move-table-row.js +8 -0
  176. package/dist/es2019/utils/next-cell.js +7 -0
  177. package/dist/es2019/utils/pasted-cells.js +127 -0
  178. package/dist/es2019/utils/points-at-cell.js +3 -0
  179. package/dist/es2019/utils/remove-col-span.js +17 -0
  180. package/dist/es2019/utils/remove-column-at.js +24 -0
  181. package/dist/es2019/utils/remove-column-closest-to-pos.js +12 -0
  182. package/dist/es2019/utils/remove-column.js +10 -74
  183. package/dist/es2019/utils/remove-row-at.js +24 -0
  184. package/dist/es2019/utils/remove-row-closest-to-pos.js +12 -0
  185. package/dist/es2019/utils/remove-row.js +8 -73
  186. package/dist/es2019/utils/remove-selected-columns.js +43 -0
  187. package/dist/es2019/utils/remove-selected-rows.js +43 -0
  188. package/dist/es2019/utils/reorder-utils.js +40 -178
  189. package/dist/es2019/utils/replace-table.js +2 -2
  190. package/dist/es2019/utils/select-nodes.js +19 -59
  191. package/dist/es2019/utils/select-table-closest-to-pos.js +31 -0
  192. package/dist/es2019/utils/select-table.js +22 -0
  193. package/dist/es2019/utils/selection-cell.js +2 -1
  194. package/dist/es2019/utils/split-cell-with-type.js +5 -11
  195. package/dist/es2019/utils/tables.js +12 -14
  196. package/dist/es2019/utils/toggle-header.js +3 -19
  197. package/dist/es2019/utils/transpose.js +31 -0
  198. package/dist/es2019/utils.js +272 -14
  199. package/dist/esm/add-to-cache.js +4 -0
  200. package/dist/esm/cell-bookmark.js +1 -1
  201. package/dist/esm/cell-selection.js +3 -3
  202. package/dist/esm/compute-map.js +127 -0
  203. package/dist/esm/find-bad-col-widths.js +46 -0
  204. package/dist/esm/find-width.js +35 -0
  205. package/dist/esm/index.js +3 -2
  206. package/dist/esm/pm-plugins/handle-mouse-down.js +148 -0
  207. package/dist/esm/pm-plugins/handle-triple-click.js +14 -0
  208. package/dist/esm/pm-plugins/input.js +2 -153
  209. package/dist/esm/pm-plugins/table-editing.js +3 -1
  210. package/dist/esm/pm-plugins.js +9 -1
  211. package/dist/esm/read-from-cache.js +4 -0
  212. package/dist/esm/rect.js +12 -0
  213. package/dist/esm/table-map-cache.js +42 -0
  214. package/dist/esm/table-map.js +19 -247
  215. package/dist/esm/utils/add-col-span.js +20 -0
  216. package/dist/esm/utils/add-column-after.js +16 -0
  217. package/dist/esm/utils/add-column-at.js +1 -1
  218. package/dist/esm/utils/add-column-before.js +16 -0
  219. package/dist/esm/utils/add-column.js +6 -11
  220. package/dist/esm/utils/add-row-after.js +16 -0
  221. package/dist/esm/utils/add-row-at.js +2 -78
  222. package/dist/esm/utils/add-row-before.js +16 -0
  223. package/dist/esm/utils/analytics-helpers.js +12 -45
  224. package/dist/esm/utils/array-of-rows.js +1 -0
  225. package/dist/esm/utils/assert-colspan.js +8 -0
  226. package/dist/esm/utils/cell-around.js +8 -0
  227. package/dist/esm/utils/cell-near.js +15 -0
  228. package/dist/esm/utils/cell-wrapping.js +10 -0
  229. package/dist/esm/utils/cells.js +21 -34
  230. package/dist/esm/utils/changed-descendants.js +27 -0
  231. package/dist/esm/utils/clip-cells.js +76 -0
  232. package/dist/esm/utils/clone-column.js +2 -2
  233. package/dist/esm/utils/clone-row-at.js +79 -0
  234. package/dist/esm/utils/clone-row.js +2 -2
  235. package/dist/esm/utils/colspan.js +16 -45
  236. package/dist/esm/utils/column-is-header.js +11 -0
  237. package/dist/esm/utils/convert-array-of-rows-to-table-node.js +51 -0
  238. package/dist/esm/utils/convert-table-node-to-array-of-rows.js +48 -0
  239. package/dist/esm/utils/find-cell-closest-to-pos.js +12 -0
  240. package/dist/esm/utils/find-cell-rect-closest-to-pos.js +16 -0
  241. package/dist/esm/utils/find-table-closest-to-pos.js +8 -0
  242. package/dist/esm/utils/find-table.js +7 -0
  243. package/dist/esm/utils/find.js +21 -40
  244. package/dist/esm/utils/fit-slice.js +21 -0
  245. package/dist/esm/utils/fix-table.js +106 -0
  246. package/dist/esm/utils/fix-tables.js +2 -134
  247. package/dist/esm/utils/for-each-cell-in-column.js +22 -0
  248. package/dist/esm/utils/for-each-cell-in-row.js +20 -0
  249. package/dist/esm/utils/for-each-cell.js +11 -40
  250. package/dist/esm/utils/get-cell-type-callback.js +1 -0
  251. package/dist/esm/utils/get-cells-in-column.js +1 -1
  252. package/dist/esm/utils/get-cells-in-row.js +1 -1
  253. package/dist/esm/utils/get-cells-in-table.js +1 -1
  254. package/dist/esm/utils/get-selected-cell-info.js +27 -0
  255. package/dist/esm/utils/get-selected-table-info.js +19 -0
  256. package/dist/esm/utils/get-table-selection-closes-to-pos.js +17 -0
  257. package/dist/esm/utils/go-to-next-cell.js +1 -1
  258. package/dist/esm/utils/handle-paste.js +5 -2
  259. package/dist/esm/utils/in-same-table.js +3 -0
  260. package/dist/esm/utils/{copy-paste.js → insert-cells.js} +9 -187
  261. package/dist/esm/utils/is-column-selected.js +19 -0
  262. package/dist/esm/utils/is-header-enabled-by-type.js +16 -0
  263. package/dist/esm/utils/is-in-table.js +9 -0
  264. package/dist/esm/utils/is-rect-selected.js +21 -0
  265. package/dist/esm/utils/is-row-selected.js +19 -0
  266. package/dist/esm/utils/is-selected.js +21 -66
  267. package/dist/esm/utils/is-table-selected.js +17 -0
  268. package/dist/esm/utils/is-valid-reorder.js +14 -0
  269. package/dist/esm/utils/move-column.js +2 -2
  270. package/dist/esm/utils/move-row-in-array-of-rows.js +17 -0
  271. package/dist/esm/utils/move-row.js +2 -2
  272. package/dist/esm/utils/move-table-column.js +10 -0
  273. package/dist/esm/utils/move-table-row.js +8 -0
  274. package/dist/esm/utils/next-cell.js +7 -0
  275. package/dist/esm/utils/pasted-cells.js +124 -0
  276. package/dist/esm/utils/points-at-cell.js +3 -0
  277. package/dist/esm/utils/remove-col-span.js +22 -0
  278. package/dist/esm/utils/remove-column-at.js +26 -0
  279. package/dist/esm/utils/remove-column-closest-to-pos.js +14 -0
  280. package/dist/esm/utils/remove-column.js +10 -78
  281. package/dist/esm/utils/remove-row-at.js +26 -0
  282. package/dist/esm/utils/remove-row-closest-to-pos.js +14 -0
  283. package/dist/esm/utils/remove-row.js +8 -74
  284. package/dist/esm/utils/remove-selected-columns.js +43 -0
  285. package/dist/esm/utils/remove-selected-rows.js +43 -0
  286. package/dist/esm/utils/reorder-utils.js +40 -180
  287. package/dist/esm/utils/replace-table.js +2 -2
  288. package/dist/esm/utils/select-nodes.js +19 -56
  289. package/dist/esm/utils/select-table-closest-to-pos.js +30 -0
  290. package/dist/esm/utils/select-table.js +21 -0
  291. package/dist/esm/utils/selection-cell.js +2 -1
  292. package/dist/esm/utils/split-cell-with-type.js +5 -11
  293. package/dist/esm/utils/tables.js +12 -12
  294. package/dist/esm/utils/toggle-header.js +3 -19
  295. package/dist/esm/utils/transpose.js +33 -0
  296. package/dist/esm/utils.js +272 -14
  297. package/dist/types/add-to-cache.d.ts +3 -0
  298. package/dist/types/compute-map.d.ts +3 -0
  299. package/dist/types/find-bad-col-widths.d.ts +3 -0
  300. package/dist/types/find-width.d.ts +2 -0
  301. package/dist/types/index.d.ts +3 -2
  302. package/dist/types/pm-plugins/handle-mouse-down.d.ts +2 -0
  303. package/dist/types/pm-plugins/handle-triple-click.d.ts +2 -0
  304. package/dist/types/pm-plugins/input.d.ts +0 -2
  305. package/dist/types/pm-plugins.d.ts +6 -0
  306. package/dist/types/read-from-cache.d.ts +3 -0
  307. package/dist/types/rect.d.ts +7 -0
  308. package/dist/types/table-map-cache.d.ts +6 -0
  309. package/dist/types/table-map.d.ts +13 -7
  310. package/dist/types/utils/add-col-span.d.ts +2 -0
  311. package/dist/types/utils/add-column-after.d.ts +2 -0
  312. package/dist/types/utils/add-column-before.d.ts +2 -0
  313. package/dist/types/utils/add-column.d.ts +2 -3
  314. package/dist/types/utils/add-row-after.d.ts +2 -0
  315. package/dist/types/utils/add-row-at.d.ts +0 -1
  316. package/dist/types/utils/add-row-before.d.ts +2 -0
  317. package/dist/types/utils/analytics-helpers.d.ts +8 -16
  318. package/dist/types/utils/array-of-rows.d.ts +2 -0
  319. package/dist/types/utils/assert-colspan.d.ts +2 -0
  320. package/dist/types/utils/cell-around.d.ts +2 -0
  321. package/dist/types/utils/cell-near.d.ts +2 -0
  322. package/dist/types/utils/cell-wrapping.d.ts +2 -0
  323. package/dist/types/utils/cells.d.ts +16 -7
  324. package/dist/types/utils/changed-descendants.d.ts +2 -0
  325. package/dist/types/utils/clip-cells.d.ts +2 -0
  326. package/dist/types/utils/clone-row-at.d.ts +2 -0
  327. package/dist/types/utils/colspan.d.ts +12 -4
  328. package/dist/types/utils/column-is-header.d.ts +3 -0
  329. package/dist/types/utils/convert-array-of-rows-to-table-node.d.ts +3 -0
  330. package/dist/types/utils/convert-table-node-to-array-of-rows.d.ts +3 -0
  331. package/dist/types/utils/find-cell-closest-to-pos.d.ts +3 -0
  332. package/dist/types/utils/find-cell-rect-closest-to-pos.d.ts +3 -0
  333. package/dist/types/utils/find-table-closest-to-pos.d.ts +3 -0
  334. package/dist/types/utils/find-table.d.ts +3 -0
  335. package/dist/types/utils/find.d.ts +16 -8
  336. package/dist/types/utils/fit-slice.d.ts +2 -0
  337. package/dist/types/utils/fix-table.d.ts +4 -0
  338. package/dist/types/utils/fix-tables.d.ts +0 -2
  339. package/dist/types/utils/for-each-cell-in-column.d.ts +3 -0
  340. package/dist/types/utils/for-each-cell-in-row.d.ts +3 -0
  341. package/dist/types/utils/for-each-cell.d.ts +8 -4
  342. package/dist/types/utils/get-cell-type-callback.d.ts +3 -0
  343. package/dist/types/utils/get-selected-cell-info.d.ts +8 -0
  344. package/dist/types/utils/get-selected-table-info.d.ts +9 -0
  345. package/dist/types/utils/get-selection-rect.d.ts +1 -1
  346. package/dist/types/utils/get-table-selection-closes-to-pos.d.ts +3 -0
  347. package/dist/types/utils/in-same-table.d.ts +2 -0
  348. package/dist/types/utils/insert-cells.d.ts +4 -0
  349. package/dist/types/utils/is-column-selected.d.ts +2 -0
  350. package/dist/types/utils/is-header-enabled-by-type.d.ts +4 -0
  351. package/dist/types/utils/is-in-table.d.ts +2 -0
  352. package/dist/types/utils/is-rect-selected.d.ts +3 -0
  353. package/dist/types/utils/is-row-selected.d.ts +2 -0
  354. package/dist/types/utils/is-selected.d.ts +16 -6
  355. package/dist/types/utils/is-table-selected.d.ts +2 -0
  356. package/dist/types/utils/is-valid-reorder.d.ts +1 -0
  357. package/dist/types/utils/move-row-in-array-of-rows.d.ts +2 -0
  358. package/dist/types/utils/move-table-column.d.ts +3 -0
  359. package/dist/types/utils/move-table-row.d.ts +3 -0
  360. package/dist/types/utils/next-cell.d.ts +3 -0
  361. package/dist/types/utils/pasted-cells.d.ts +3 -0
  362. package/dist/types/utils/points-at-cell.d.ts +2 -0
  363. package/dist/types/utils/remove-col-span.d.ts +2 -0
  364. package/dist/types/utils/remove-column-at.d.ts +2 -0
  365. package/dist/types/utils/remove-column-closest-to-pos.d.ts +3 -0
  366. package/dist/types/utils/remove-column.d.ts +5 -4
  367. package/dist/types/utils/remove-row-at.d.ts +2 -0
  368. package/dist/types/utils/remove-row-closest-to-pos.d.ts +3 -0
  369. package/dist/types/utils/remove-row.d.ts +5 -4
  370. package/dist/types/utils/remove-selected-columns.d.ts +2 -0
  371. package/dist/types/utils/remove-selected-rows.d.ts +2 -0
  372. package/dist/types/utils/reorder-utils.d.ts +32 -10
  373. package/dist/types/utils/select-nodes.d.ts +12 -5
  374. package/dist/types/utils/select-table-closest-to-pos.d.ts +3 -0
  375. package/dist/types/utils/select-table.d.ts +2 -0
  376. package/dist/types/utils/selection-rect.d.ts +2 -1
  377. package/dist/types/utils/split-cell-with-type.d.ts +3 -5
  378. package/dist/types/utils/tables.d.ts +8 -4
  379. package/dist/types/utils/toggle-header.d.ts +0 -3
  380. package/dist/types/utils/transpose.d.ts +1 -0
  381. package/dist/types/utils.d.ts +201 -13
  382. package/find-bad-col-widths/package.json +8 -0
  383. package/find-width/package.json +8 -0
  384. package/get-table-selection-closes-to-pos/package.json +8 -0
  385. package/package.json +3 -3
  386. package/pm-plugins/plugin-key/package.json +4 -4
  387. package/pm-plugins/table-editing/package.json +4 -4
  388. package/rect/package.json +8 -0
  389. package/select-table/package.json +8 -0
  390. package/select-table-closest-to-pos/package.json +8 -0
  391. package/table-map/package.json +4 -4
  392. package/types/package.json +4 -4
  393. package/utils/add-column/package.json +4 -4
  394. package/utils/add-column-at/package.json +4 -4
  395. package/utils/add-row/package.json +4 -4
  396. package/utils/add-row-at/package.json +4 -4
  397. package/utils/analytics-helpers/package.json +4 -4
  398. package/utils/cells/package.json +4 -4
  399. package/utils/clone-column/package.json +4 -4
  400. package/utils/clone-row/package.json +4 -4
  401. package/utils/clone-tr/package.json +4 -4
  402. package/utils/colspan/package.json +4 -4
  403. package/utils/create-table/package.json +4 -4
  404. package/utils/draw-cell-selection/package.json +4 -4
  405. package/utils/empty-cells/package.json +4 -4
  406. package/utils/find/package.json +4 -4
  407. package/utils/fix-tables/package.json +4 -4
  408. package/utils/for-each-cell/package.json +4 -4
  409. package/utils/get-cell-selection-ranges/package.json +4 -4
  410. package/utils/get-cells-in-column/package.json +4 -4
  411. package/utils/get-cells-in-row/package.json +4 -4
  412. package/utils/get-cells-in-table/package.json +4 -4
  413. package/utils/get-selection-range-in-column/package.json +4 -4
  414. package/utils/get-selection-range-in-row/package.json +4 -4
  415. package/utils/get-selection-rect/package.json +4 -4
  416. package/utils/go-to-next-cell/package.json +4 -4
  417. package/utils/handle-paste/package.json +4 -4
  418. package/utils/is-selected/package.json +4 -4
  419. package/utils/is-selection-type/package.json +4 -4
  420. package/utils/move-column/package.json +4 -4
  421. package/utils/move-row/package.json +4 -4
  422. package/utils/normalize-selection/package.json +4 -4
  423. package/utils/remove-column/package.json +4 -4
  424. package/utils/remove-row/package.json +4 -4
  425. package/utils/remove-table/package.json +4 -4
  426. package/utils/reorder-utils/package.json +4 -4
  427. package/utils/replace-table/package.json +4 -4
  428. package/utils/select-nodes/package.json +4 -4
  429. package/utils/selection-cell/package.json +4 -4
  430. package/utils/selection-rect/package.json +4 -4
  431. package/utils/set-cell-attrs/package.json +4 -4
  432. package/utils/split-cell/package.json +4 -4
  433. package/utils/split-cell-with-type/package.json +4 -4
  434. package/utils/table-node-types/package.json +4 -4
  435. package/utils/tables/package.json +4 -4
  436. package/utils/toggle-header/package.json +4 -4
  437. package/utils/uuid/package.json +4 -4
  438. package/afm-cc/tsconfig.json +0 -35
  439. package/dist/cjs/entry-points/cell-bookmark.js +0 -12
  440. package/dist/cjs/entry-points/cell-selection.js +0 -12
  441. package/dist/cjs/entry-points/pm-plugins-plugin-key.js +0 -12
  442. package/dist/cjs/entry-points/pm-plugins-table-editing.js +0 -12
  443. package/dist/cjs/entry-points/table-map.js +0 -30
  444. package/dist/cjs/entry-points/types.js +0 -1
  445. package/dist/cjs/entry-points/utils-add-column-at.js +0 -12
  446. package/dist/cjs/entry-points/utils-add-column.js +0 -18
  447. package/dist/cjs/entry-points/utils-add-row-at.js +0 -12
  448. package/dist/cjs/entry-points/utils-add-row.js +0 -12
  449. package/dist/cjs/entry-points/utils-analytics-helpers.js +0 -18
  450. package/dist/cjs/entry-points/utils-cells.js +0 -30
  451. package/dist/cjs/entry-points/utils-clone-column.js +0 -12
  452. package/dist/cjs/entry-points/utils-clone-row.js +0 -12
  453. package/dist/cjs/entry-points/utils-clone-tr.js +0 -12
  454. package/dist/cjs/entry-points/utils-colspan.js +0 -18
  455. package/dist/cjs/entry-points/utils-create-table.js +0 -12
  456. package/dist/cjs/entry-points/utils-draw-cell-selection.js +0 -12
  457. package/dist/cjs/entry-points/utils-empty-cells.js +0 -12
  458. package/dist/cjs/entry-points/utils-find.js +0 -30
  459. package/dist/cjs/entry-points/utils-fix-tables.js +0 -12
  460. package/dist/cjs/entry-points/utils-for-each-cell.js +0 -18
  461. package/dist/cjs/entry-points/utils-get-cell-selection-ranges.js +0 -12
  462. package/dist/cjs/entry-points/utils-get-cells-in-column.js +0 -12
  463. package/dist/cjs/entry-points/utils-get-cells-in-row.js +0 -12
  464. package/dist/cjs/entry-points/utils-get-cells-in-table.js +0 -12
  465. package/dist/cjs/entry-points/utils-get-selection-range-in-column.js +0 -12
  466. package/dist/cjs/entry-points/utils-get-selection-range-in-row.js +0 -12
  467. package/dist/cjs/entry-points/utils-get-selection-rect.js +0 -12
  468. package/dist/cjs/entry-points/utils-go-to-next-cell.js +0 -12
  469. package/dist/cjs/entry-points/utils-handle-paste.js +0 -12
  470. package/dist/cjs/entry-points/utils-is-selected.js +0 -30
  471. package/dist/cjs/entry-points/utils-is-selection-type.js +0 -12
  472. package/dist/cjs/entry-points/utils-move-column.js +0 -12
  473. package/dist/cjs/entry-points/utils-move-row.js +0 -12
  474. package/dist/cjs/entry-points/utils-normalize-selection.js +0 -12
  475. package/dist/cjs/entry-points/utils-remove-column.js +0 -24
  476. package/dist/cjs/entry-points/utils-remove-row.js +0 -24
  477. package/dist/cjs/entry-points/utils-remove-table.js +0 -12
  478. package/dist/cjs/entry-points/utils-reorder-utils.js +0 -18
  479. package/dist/cjs/entry-points/utils-replace-table.js +0 -12
  480. package/dist/cjs/entry-points/utils-select-nodes.js +0 -48
  481. package/dist/cjs/entry-points/utils-selection-cell.js +0 -12
  482. package/dist/cjs/entry-points/utils-selection-rect.js +0 -12
  483. package/dist/cjs/entry-points/utils-set-cell-attrs.js +0 -12
  484. package/dist/cjs/entry-points/utils-split-cell-with-type.js +0 -18
  485. package/dist/cjs/entry-points/utils-split-cell.js +0 -12
  486. package/dist/cjs/entry-points/utils-table-node-types.js +0 -12
  487. package/dist/cjs/entry-points/utils-tables.js +0 -18
  488. package/dist/cjs/entry-points/utils-toggle-header.js +0 -12
  489. package/dist/cjs/entry-points/utils-uuid.js +0 -12
  490. package/dist/cjs/utils/test-utils.js +0 -61
  491. package/dist/es2019/entry-points/cell-bookmark.js +0 -2
  492. package/dist/es2019/entry-points/cell-selection.js +0 -2
  493. package/dist/es2019/entry-points/pm-plugins-plugin-key.js +0 -2
  494. package/dist/es2019/entry-points/pm-plugins-table-editing.js +0 -2
  495. package/dist/es2019/entry-points/table-map.js +0 -2
  496. package/dist/es2019/entry-points/types.js +0 -0
  497. package/dist/es2019/entry-points/utils-add-column-at.js +0 -2
  498. package/dist/es2019/entry-points/utils-add-column.js +0 -2
  499. package/dist/es2019/entry-points/utils-add-row-at.js +0 -2
  500. package/dist/es2019/entry-points/utils-add-row.js +0 -2
  501. package/dist/es2019/entry-points/utils-analytics-helpers.js +0 -2
  502. package/dist/es2019/entry-points/utils-cells.js +0 -2
  503. package/dist/es2019/entry-points/utils-clone-column.js +0 -2
  504. package/dist/es2019/entry-points/utils-clone-row.js +0 -2
  505. package/dist/es2019/entry-points/utils-clone-tr.js +0 -2
  506. package/dist/es2019/entry-points/utils-colspan.js +0 -2
  507. package/dist/es2019/entry-points/utils-create-table.js +0 -2
  508. package/dist/es2019/entry-points/utils-draw-cell-selection.js +0 -2
  509. package/dist/es2019/entry-points/utils-empty-cells.js +0 -2
  510. package/dist/es2019/entry-points/utils-find.js +0 -2
  511. package/dist/es2019/entry-points/utils-fix-tables.js +0 -2
  512. package/dist/es2019/entry-points/utils-for-each-cell.js +0 -2
  513. package/dist/es2019/entry-points/utils-get-cell-selection-ranges.js +0 -2
  514. package/dist/es2019/entry-points/utils-get-cells-in-column.js +0 -2
  515. package/dist/es2019/entry-points/utils-get-cells-in-row.js +0 -2
  516. package/dist/es2019/entry-points/utils-get-cells-in-table.js +0 -2
  517. package/dist/es2019/entry-points/utils-get-selection-range-in-column.js +0 -2
  518. package/dist/es2019/entry-points/utils-get-selection-range-in-row.js +0 -2
  519. package/dist/es2019/entry-points/utils-get-selection-rect.js +0 -2
  520. package/dist/es2019/entry-points/utils-go-to-next-cell.js +0 -2
  521. package/dist/es2019/entry-points/utils-handle-paste.js +0 -2
  522. package/dist/es2019/entry-points/utils-is-selected.js +0 -2
  523. package/dist/es2019/entry-points/utils-is-selection-type.js +0 -2
  524. package/dist/es2019/entry-points/utils-move-column.js +0 -2
  525. package/dist/es2019/entry-points/utils-move-row.js +0 -2
  526. package/dist/es2019/entry-points/utils-normalize-selection.js +0 -2
  527. package/dist/es2019/entry-points/utils-remove-column.js +0 -2
  528. package/dist/es2019/entry-points/utils-remove-row.js +0 -2
  529. package/dist/es2019/entry-points/utils-remove-table.js +0 -2
  530. package/dist/es2019/entry-points/utils-reorder-utils.js +0 -2
  531. package/dist/es2019/entry-points/utils-replace-table.js +0 -2
  532. package/dist/es2019/entry-points/utils-select-nodes.js +0 -2
  533. package/dist/es2019/entry-points/utils-selection-cell.js +0 -2
  534. package/dist/es2019/entry-points/utils-selection-rect.js +0 -2
  535. package/dist/es2019/entry-points/utils-set-cell-attrs.js +0 -2
  536. package/dist/es2019/entry-points/utils-split-cell-with-type.js +0 -2
  537. package/dist/es2019/entry-points/utils-split-cell.js +0 -2
  538. package/dist/es2019/entry-points/utils-table-node-types.js +0 -2
  539. package/dist/es2019/entry-points/utils-tables.js +0 -2
  540. package/dist/es2019/entry-points/utils-toggle-header.js +0 -2
  541. package/dist/es2019/entry-points/utils-uuid.js +0 -2
  542. package/dist/es2019/utils/test-utils.js +0 -56
  543. package/dist/esm/entry-points/cell-bookmark.js +0 -2
  544. package/dist/esm/entry-points/cell-selection.js +0 -2
  545. package/dist/esm/entry-points/pm-plugins-plugin-key.js +0 -2
  546. package/dist/esm/entry-points/pm-plugins-table-editing.js +0 -2
  547. package/dist/esm/entry-points/table-map.js +0 -2
  548. package/dist/esm/entry-points/types.js +0 -0
  549. package/dist/esm/entry-points/utils-add-column-at.js +0 -2
  550. package/dist/esm/entry-points/utils-add-column.js +0 -2
  551. package/dist/esm/entry-points/utils-add-row-at.js +0 -2
  552. package/dist/esm/entry-points/utils-add-row.js +0 -2
  553. package/dist/esm/entry-points/utils-analytics-helpers.js +0 -2
  554. package/dist/esm/entry-points/utils-cells.js +0 -2
  555. package/dist/esm/entry-points/utils-clone-column.js +0 -2
  556. package/dist/esm/entry-points/utils-clone-row.js +0 -2
  557. package/dist/esm/entry-points/utils-clone-tr.js +0 -2
  558. package/dist/esm/entry-points/utils-colspan.js +0 -2
  559. package/dist/esm/entry-points/utils-create-table.js +0 -2
  560. package/dist/esm/entry-points/utils-draw-cell-selection.js +0 -2
  561. package/dist/esm/entry-points/utils-empty-cells.js +0 -2
  562. package/dist/esm/entry-points/utils-find.js +0 -2
  563. package/dist/esm/entry-points/utils-fix-tables.js +0 -2
  564. package/dist/esm/entry-points/utils-for-each-cell.js +0 -2
  565. package/dist/esm/entry-points/utils-get-cell-selection-ranges.js +0 -2
  566. package/dist/esm/entry-points/utils-get-cells-in-column.js +0 -2
  567. package/dist/esm/entry-points/utils-get-cells-in-row.js +0 -2
  568. package/dist/esm/entry-points/utils-get-cells-in-table.js +0 -2
  569. package/dist/esm/entry-points/utils-get-selection-range-in-column.js +0 -2
  570. package/dist/esm/entry-points/utils-get-selection-range-in-row.js +0 -2
  571. package/dist/esm/entry-points/utils-get-selection-rect.js +0 -2
  572. package/dist/esm/entry-points/utils-go-to-next-cell.js +0 -2
  573. package/dist/esm/entry-points/utils-handle-paste.js +0 -2
  574. package/dist/esm/entry-points/utils-is-selected.js +0 -2
  575. package/dist/esm/entry-points/utils-is-selection-type.js +0 -2
  576. package/dist/esm/entry-points/utils-move-column.js +0 -2
  577. package/dist/esm/entry-points/utils-move-row.js +0 -2
  578. package/dist/esm/entry-points/utils-normalize-selection.js +0 -2
  579. package/dist/esm/entry-points/utils-remove-column.js +0 -2
  580. package/dist/esm/entry-points/utils-remove-row.js +0 -2
  581. package/dist/esm/entry-points/utils-remove-table.js +0 -2
  582. package/dist/esm/entry-points/utils-reorder-utils.js +0 -2
  583. package/dist/esm/entry-points/utils-replace-table.js +0 -2
  584. package/dist/esm/entry-points/utils-select-nodes.js +0 -2
  585. package/dist/esm/entry-points/utils-selection-cell.js +0 -2
  586. package/dist/esm/entry-points/utils-selection-rect.js +0 -2
  587. package/dist/esm/entry-points/utils-set-cell-attrs.js +0 -2
  588. package/dist/esm/entry-points/utils-split-cell-with-type.js +0 -2
  589. package/dist/esm/entry-points/utils-split-cell.js +0 -2
  590. package/dist/esm/entry-points/utils-table-node-types.js +0 -2
  591. package/dist/esm/entry-points/utils-tables.js +0 -2
  592. package/dist/esm/entry-points/utils-toggle-header.js +0 -2
  593. package/dist/esm/entry-points/utils-uuid.js +0 -2
  594. package/dist/esm/utils/test-utils.js +0 -56
  595. package/dist/types/entry-points/cell-bookmark.d.ts +0 -1
  596. package/dist/types/entry-points/cell-selection.d.ts +0 -1
  597. package/dist/types/entry-points/pm-plugins-plugin-key.d.ts +0 -1
  598. package/dist/types/entry-points/pm-plugins-table-editing.d.ts +0 -1
  599. package/dist/types/entry-points/table-map.d.ts +0 -2
  600. package/dist/types/entry-points/types.d.ts +0 -1
  601. package/dist/types/entry-points/utils-add-column-at.d.ts +0 -1
  602. package/dist/types/entry-points/utils-add-column.d.ts +0 -1
  603. package/dist/types/entry-points/utils-add-row-at.d.ts +0 -1
  604. package/dist/types/entry-points/utils-add-row.d.ts +0 -1
  605. package/dist/types/entry-points/utils-analytics-helpers.d.ts +0 -1
  606. package/dist/types/entry-points/utils-cells.d.ts +0 -1
  607. package/dist/types/entry-points/utils-clone-column.d.ts +0 -1
  608. package/dist/types/entry-points/utils-clone-row.d.ts +0 -1
  609. package/dist/types/entry-points/utils-clone-tr.d.ts +0 -1
  610. package/dist/types/entry-points/utils-colspan.d.ts +0 -1
  611. package/dist/types/entry-points/utils-create-table.d.ts +0 -1
  612. package/dist/types/entry-points/utils-draw-cell-selection.d.ts +0 -1
  613. package/dist/types/entry-points/utils-empty-cells.d.ts +0 -1
  614. package/dist/types/entry-points/utils-find.d.ts +0 -1
  615. package/dist/types/entry-points/utils-fix-tables.d.ts +0 -1
  616. package/dist/types/entry-points/utils-for-each-cell.d.ts +0 -1
  617. package/dist/types/entry-points/utils-get-cell-selection-ranges.d.ts +0 -1
  618. package/dist/types/entry-points/utils-get-cells-in-column.d.ts +0 -1
  619. package/dist/types/entry-points/utils-get-cells-in-row.d.ts +0 -1
  620. package/dist/types/entry-points/utils-get-cells-in-table.d.ts +0 -1
  621. package/dist/types/entry-points/utils-get-selection-range-in-column.d.ts +0 -1
  622. package/dist/types/entry-points/utils-get-selection-range-in-row.d.ts +0 -1
  623. package/dist/types/entry-points/utils-get-selection-rect.d.ts +0 -1
  624. package/dist/types/entry-points/utils-go-to-next-cell.d.ts +0 -1
  625. package/dist/types/entry-points/utils-handle-paste.d.ts +0 -1
  626. package/dist/types/entry-points/utils-is-selected.d.ts +0 -1
  627. package/dist/types/entry-points/utils-is-selection-type.d.ts +0 -1
  628. package/dist/types/entry-points/utils-move-column.d.ts +0 -1
  629. package/dist/types/entry-points/utils-move-row.d.ts +0 -1
  630. package/dist/types/entry-points/utils-normalize-selection.d.ts +0 -1
  631. package/dist/types/entry-points/utils-remove-column.d.ts +0 -1
  632. package/dist/types/entry-points/utils-remove-row.d.ts +0 -1
  633. package/dist/types/entry-points/utils-remove-table.d.ts +0 -1
  634. package/dist/types/entry-points/utils-reorder-utils.d.ts +0 -1
  635. package/dist/types/entry-points/utils-replace-table.d.ts +0 -1
  636. package/dist/types/entry-points/utils-select-nodes.d.ts +0 -1
  637. package/dist/types/entry-points/utils-selection-cell.d.ts +0 -1
  638. package/dist/types/entry-points/utils-selection-rect.d.ts +0 -2
  639. package/dist/types/entry-points/utils-set-cell-attrs.d.ts +0 -1
  640. package/dist/types/entry-points/utils-split-cell-with-type.d.ts +0 -1
  641. package/dist/types/entry-points/utils-split-cell.d.ts +0 -1
  642. package/dist/types/entry-points/utils-table-node-types.d.ts +0 -1
  643. package/dist/types/entry-points/utils-tables.d.ts +0 -1
  644. package/dist/types/entry-points/utils-toggle-header.d.ts +0 -1
  645. package/dist/types/entry-points/utils-uuid.d.ts +0 -1
  646. package/dist/types/utils/copy-paste.d.ts +0 -9
  647. package/dist/types/utils/test-utils.d.ts +0 -5
@@ -0,0 +1,19 @@
1
+ import { TableMap } from '../table-map';
2
+ import { isRectSelected } from './is-rect-selected';
3
+ import { isSelectionType } from './is-selection-type';
4
+
5
+ // Checks if entire row at index `rowIndex` is selected.
6
+ export var isRowSelected = function isRowSelected(rowIndex) {
7
+ return function (selection) {
8
+ if (isSelectionType(selection, 'cell')) {
9
+ var map = TableMap.get(selection.$anchorCell.node(-1));
10
+ return isRectSelected({
11
+ left: 0,
12
+ right: map.width,
13
+ top: rowIndex,
14
+ bottom: rowIndex + 1
15
+ })(selection);
16
+ }
17
+ return false;
18
+ };
19
+ };
@@ -1,67 +1,22 @@
1
- import { TableMap } from '../table-map';
2
- import { isSelectionType } from './is-selection-type';
1
+ /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
3
2
 
4
- // Checks if a given CellSelection rect is selected
5
- export var isRectSelected = function isRectSelected(rect) {
6
- return function (selection) {
7
- if (!isSelectionType(selection, 'cell')) {
8
- return false;
9
- }
10
- var map = TableMap.get(selection.$anchorCell.node(-1));
11
- var start = selection.$anchorCell.start(-1);
12
- var cells = map.cellsInRect(rect);
13
- var selectedCells = map.cellsInRect(map.rectBetween(selection.$anchorCell.pos - start, selection.$headCell.pos - start));
14
- for (var i = 0, count = cells.length; i < count; i++) {
15
- if (selectedCells.indexOf(cells[i]) === -1) {
16
- return false;
17
- }
18
- }
19
- return true;
20
- };
21
- };
22
-
23
- // Checks if entire column at index `columnIndex` is selected.
24
- export var isColumnSelected = function isColumnSelected(columnIndex) {
25
- return function (selection) {
26
- if (isSelectionType(selection, 'cell')) {
27
- var map = TableMap.get(selection.$anchorCell.node(-1));
28
- return isRectSelected({
29
- left: columnIndex,
30
- right: columnIndex + 1,
31
- top: 0,
32
- bottom: map.height
33
- })(selection);
34
- }
35
- return false;
36
- };
37
- };
38
-
39
- // Checks if entire row at index `rowIndex` is selected.
40
- export var isRowSelected = function isRowSelected(rowIndex) {
41
- return function (selection) {
42
- if (isSelectionType(selection, 'cell')) {
43
- var map = TableMap.get(selection.$anchorCell.node(-1));
44
- return isRectSelected({
45
- left: 0,
46
- right: map.width,
47
- top: rowIndex,
48
- bottom: rowIndex + 1
49
- })(selection);
50
- }
51
- return false;
52
- };
53
- };
54
-
55
- // Checks if entire table is selected
56
- export var isTableSelected = function isTableSelected(selection) {
57
- if (isSelectionType(selection, 'cell')) {
58
- var map = TableMap.get(selection.$anchorCell.node(-1));
59
- return isRectSelected({
60
- left: 0,
61
- right: map.width,
62
- top: 0,
63
- bottom: map.height
64
- })(selection);
65
- }
66
- return false;
67
- };
3
+ /**
4
+ * @deprecated Use `import { isRectSelected } from '@atlaskit/editor-tables/utils'` instead.
5
+ */
6
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Compatibility shim for deprecated API
7
+ export { isRectSelected } from './is-rect-selected';
8
+ /**
9
+ * @deprecated Use `import { isColumnSelected } from '@atlaskit/editor-tables/utils'` instead.
10
+ */
11
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Compatibility shim for deprecated API
12
+ export { isColumnSelected } from './is-column-selected';
13
+ /**
14
+ * @deprecated Use `import { isRowSelected } from '@atlaskit/editor-tables/utils'` instead.
15
+ */
16
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Compatibility shim for deprecated API
17
+ export { isRowSelected } from './is-row-selected';
18
+ /**
19
+ * @deprecated Use `import { isTableSelected } from '@atlaskit/editor-tables/utils'` instead.
20
+ */
21
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Compatibility shim for deprecated API
22
+ export { isTableSelected } from './is-table-selected';
@@ -0,0 +1,17 @@
1
+ import { TableMap } from '../table-map';
2
+ import { isRectSelected } from './is-rect-selected';
3
+ import { isSelectionType } from './is-selection-type';
4
+
5
+ // Checks if entire table is selected
6
+ export var isTableSelected = function isTableSelected(selection) {
7
+ if (isSelectionType(selection, 'cell')) {
8
+ var map = TableMap.get(selection.$anchorCell.node(-1));
9
+ return isRectSelected({
10
+ left: 0,
11
+ right: map.width,
12
+ top: 0,
13
+ bottom: map.height
14
+ })(selection);
15
+ }
16
+ return false;
17
+ };
@@ -0,0 +1,14 @@
1
+ export var isValidReorder = function isValidReorder(originIndex, targetIndex, targets, type) {
2
+ var direction = originIndex > targetIndex ? -1 : 1;
3
+ var errorMessage = "Target position is invalid, you can't move the ".concat(type, " ").concat(originIndex, " to ").concat(targetIndex, ", the target can't be split. You could use tryToFit option.");
4
+ if (direction === 1) {
5
+ if (targets.slice(0, targets.length - 1).indexOf(targetIndex) !== -1) {
6
+ throw new Error(errorMessage);
7
+ }
8
+ } else {
9
+ if (targets.slice(1).indexOf(targetIndex) !== -1) {
10
+ throw new Error(errorMessage);
11
+ }
12
+ }
13
+ return true;
14
+ };
@@ -3,10 +3,10 @@ import { CellSelection } from '../cell-selection';
3
3
  import { TableMap } from '../table-map';
4
4
  import { determineTableHeaderStateFromTableNode } from './analyse-table';
5
5
  import { cloneTr } from './clone-tr';
6
- import { findTable } from './find';
6
+ import { findTable } from './find-table';
7
7
  import { getSelectionRangeInColumn } from './get-selection-range-in-column';
8
+ import { isValidReorder } from './is-valid-reorder';
8
9
  import { normalizeDirection } from './normalize-direction';
9
- import { isValidReorder } from './reorder-utils';
10
10
  import { tableNodeTypes } from './table-node-types';
11
11
  // :: (originColumnIndex: number, targetColumnIndex: targetColumnIndex, options?: MovementOptions) → (tr: Transaction) → Transaction
12
12
  // Returns a new transaction that moves the origin column to the target index;
@@ -0,0 +1,17 @@
1
+ export var moveRowInArrayOfRows = function moveRowInArrayOfRows(arrayOfNodes, indexesOrigin, indexesTarget, directionOverride) {
2
+ var direction = indexesOrigin[0] > indexesTarget[0] ? -1 : 1;
3
+ var rowsExtracted = arrayOfNodes.splice(indexesOrigin[0], indexesOrigin.length);
4
+ var positionOffset = rowsExtracted.length % 2 === 0 ? 1 : 0;
5
+ var target;
6
+ if (directionOverride === -1 && direction === 1) {
7
+ target = indexesTarget[0] - 1;
8
+ } else if (directionOverride === 1 && direction === -1) {
9
+ target = indexesTarget[indexesTarget.length - 1] - positionOffset + 1;
10
+ } else {
11
+ target = direction === -1 ? indexesTarget[0] : indexesTarget[indexesTarget.length - 1] - positionOffset;
12
+ }
13
+
14
+ // @ts-ignore no idea what this line does
15
+ arrayOfNodes.splice.apply(arrayOfNodes, [target, 0].concat(rowsExtracted));
16
+ return arrayOfNodes;
17
+ };
@@ -4,10 +4,10 @@ import { CellSelection } from '../cell-selection';
4
4
  import { TableMap } from '../table-map';
5
5
  import { determineTableHeaderStateFromTableNode } from './analyse-table';
6
6
  import { cloneTr } from './clone-tr';
7
- import { findTable } from './find';
7
+ import { findTable } from './find-table';
8
8
  import { getSelectionRangeInRow } from './get-selection-range-in-row';
9
+ import { isValidReorder } from './is-valid-reorder';
9
10
  import { normalizeDirection } from './normalize-direction';
10
- import { isValidReorder } from './reorder-utils';
11
11
  import { tableNodeTypes } from './table-node-types';
12
12
 
13
13
  // :: (originRowIndex: number, targetRowIndex: targetColumnIndex, options?: MovementOptions) → (tr: Transaction) → Transaction
@@ -0,0 +1,10 @@
1
+ import { convertArrayOfRowsToTableNode } from './convert-array-of-rows-to-table-node';
2
+ import { convertTableNodeToArrayOfRows } from './convert-table-node-to-array-of-rows';
3
+ import { moveRowInArrayOfRows } from './move-row-in-array-of-rows';
4
+ import { transpose } from './transpose';
5
+ export var moveTableColumn = function moveTableColumn(table, indexesOrigin, indexesTarget, direction) {
6
+ var rows = transpose(convertTableNodeToArrayOfRows(table.node));
7
+ rows = moveRowInArrayOfRows(rows, indexesOrigin, indexesTarget, direction);
8
+ rows = transpose(rows);
9
+ return convertArrayOfRowsToTableNode(table.node, rows);
10
+ };
@@ -0,0 +1,8 @@
1
+ import { convertArrayOfRowsToTableNode } from './convert-array-of-rows-to-table-node';
2
+ import { convertTableNodeToArrayOfRows } from './convert-table-node-to-array-of-rows';
3
+ import { moveRowInArrayOfRows } from './move-row-in-array-of-rows';
4
+ export var moveTableRow = function moveTableRow(table, indexesOrigin, indexesTarget, direction) {
5
+ var rows = convertTableNodeToArrayOfRows(table.node);
6
+ rows = moveRowInArrayOfRows(rows, indexesOrigin, indexesTarget, direction);
7
+ return convertArrayOfRowsToTableNode(table.node, rows);
8
+ };
@@ -0,0 +1,7 @@
1
+ import { TableMap } from '../table-map';
2
+ export function nextCell($pos, axis, dir) {
3
+ var start = $pos.start(-1);
4
+ var map = TableMap.get($pos.node(-1));
5
+ var moved = map.nextCell($pos.pos - start, axis, dir);
6
+ return moved == null ? null : $pos.node(0).resolve(start + moved);
7
+ }
@@ -0,0 +1,124 @@
1
+ // Utilities used for copy/paste handling.
2
+ //
3
+ // This module handles pasting cell content into tables, or pasting
4
+ // anything into a cell selection, as replacing a block of cells with
5
+ // the content of the selection. When pasting cells into a cell, that
6
+ // involves placing the block of pasted content so that its top left
7
+ // aligns with the selection cell, optionally extending the table to
8
+ // the right or bottom to make sure it is large enough. Pasting into a
9
+ // cell selection is different, here the cells in the selection are
10
+ // clipped to the selection's rectangle, optionally repeating the
11
+ // pasted cells when they are smaller than the selection.
12
+
13
+ import { Fragment, Slice } from '@atlaskit/editor-prosemirror/model';
14
+ import { fitSlice } from './fit-slice';
15
+ import { tableNodeTypes } from './table-node-types';
16
+
17
+ // Utilities to help with copying and pasting table cells
18
+ /**
19
+ * Replace any header cells with table cells.
20
+ *
21
+ * @param schema
22
+ * @param cells
23
+ * @returns Fragment with header cells converted to table cells
24
+ */
25
+ function stripHeaderType(schema, cells) {
26
+ var newCells = [];
27
+ cells.forEach(function (cell) {
28
+ var _cellNodeType$createA;
29
+ // Convert to cell type if not already
30
+ var cellNodeType = tableNodeTypes(schema).cell;
31
+ var tableCell = cell.type === cellNodeType ? cell : (_cellNodeType$createA = cellNodeType.createAndFill(cell.attrs, cell.content, cell.marks)) !== null && _cellNodeType$createA !== void 0 ? _cellNodeType$createA : cell;
32
+ newCells.push(tableCell);
33
+ });
34
+ return Fragment.from(newCells);
35
+ }
36
+
37
+ // : (Schema, [Fragment]) → {width: number, height: number, rows: [Fragment]}
38
+ // Compute the width and height of a set of cells, and make sure each
39
+ // row has the same number of cells.
40
+ function ensureRectangular(schema, rowsFragment) {
41
+ var rows = rowsFragment;
42
+ var widths = [];
43
+ for (var i = 0; i < rows.length; i++) {
44
+ var row = rows[i];
45
+ for (var j = row.childCount - 1; j >= 0; j--) {
46
+ var _row$child$attrs = row.child(j).attrs,
47
+ rowspan = _row$child$attrs.rowspan,
48
+ colspan = _row$child$attrs.colspan;
49
+ for (var r = i; r < i + rowspan; r++) {
50
+ widths[r] = (widths[r] || 0) + colspan;
51
+ }
52
+ }
53
+ }
54
+ var width = 0;
55
+ for (var _r = 0; _r < widths.length; _r++) {
56
+ width = Math.max(width, widths[_r]);
57
+ }
58
+ for (var _r2 = 0; _r2 < widths.length; _r2++) {
59
+ if (_r2 >= rows.length) {
60
+ rows.push(Fragment.empty);
61
+ }
62
+ if (widths[_r2] < width) {
63
+ // Ignored via go/ees005
64
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
65
+ var empty = tableNodeTypes(schema).cell.createAndFill();
66
+ var cells = [];
67
+ for (var _i = widths[_r2]; _i < width; _i++) {
68
+ cells.push(empty);
69
+ }
70
+ rows[_r2] = rows[_r2].append(Fragment.from(cells));
71
+ }
72
+ }
73
+ return {
74
+ height: rows.length,
75
+ width: width,
76
+ rows: rows
77
+ };
78
+ }
79
+
80
+ // : (Slice) → ?{width: number, height: number, rows: [Fragment]}
81
+ // Get a rectangular area of cells from a slice, or null if the outer
82
+ // nodes of the slice aren't table cells or rows.
83
+ export function pastedCells(slice) {
84
+ if (!slice.size) {
85
+ return null;
86
+ }
87
+ var content = slice.content,
88
+ openStart = slice.openStart,
89
+ openEnd = slice.openEnd;
90
+ if (!content.firstChild) {
91
+ throw new Error('pastedCells: no firstChild defined for content');
92
+ }
93
+ while (content.childCount === 1 && (openStart > 0 && openEnd > 0 || content.firstChild.type.spec.tableRole === 'table')) {
94
+ openStart--;
95
+ openEnd--;
96
+ content = content.firstChild.content;
97
+ if (!content.firstChild) {
98
+ throw new Error('pastedCells: no firstChild defined for content');
99
+ }
100
+ }
101
+ var first = content.firstChild;
102
+ var role = first.type.spec.tableRole;
103
+ var schema = first.type.schema;
104
+ var rows = [];
105
+ if (role === 'row') {
106
+ for (var i = 0; i < content.childCount; i++) {
107
+ var cells = content.child(i).content;
108
+ var left = i ? 0 : Math.max(0, openStart - 1);
109
+ var right = i < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
110
+ if (left || right) {
111
+ cells = fitSlice(tableNodeTypes(schema).row, new Slice(cells, left, right)).content;
112
+ }
113
+ rows.push(cells);
114
+ }
115
+ } else if (role === 'cell' || role === 'header_cell') {
116
+ rows.push(openStart || openEnd ? fitSlice(tableNodeTypes(schema).row, new Slice(content, openStart, openEnd)).content : content);
117
+ } else {
118
+ return null;
119
+ }
120
+ var rowsWithoutHeaders = rows.map(function (row) {
121
+ return stripHeaderType(schema, row);
122
+ });
123
+ return ensureRectangular(schema, rowsWithoutHeaders);
124
+ }
@@ -0,0 +1,3 @@
1
+ export function pointsAtCell($pos) {
2
+ return $pos.parent.type.spec.tableRole === 'row' && $pos.nodeAfter;
3
+ }
@@ -0,0 +1,22 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ export function removeColSpan(attrs, pos) {
5
+ var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
6
+ if (!attrs.colspan) {
7
+ throw new Error('removeColSpan(): attrs.colspan not defined');
8
+ }
9
+ var result = _objectSpread(_objectSpread({}, attrs), {}, {
10
+ colspan: attrs.colspan - n
11
+ });
12
+ if (result.colwidth) {
13
+ result.colwidth = result.colwidth.slice();
14
+ result.colwidth.splice(pos, n);
15
+ if (!result.colwidth.some(function (w) {
16
+ return w > 0;
17
+ })) {
18
+ result.colwidth = undefined;
19
+ }
20
+ }
21
+ return result;
22
+ }
@@ -0,0 +1,26 @@
1
+ import { TableMap } from '../table-map';
2
+ import { cloneTr } from './clone-tr';
3
+ import { findTable } from './find-table';
4
+ import { removeColumn } from './remove-column';
5
+ import { removeTable } from './remove-table';
6
+
7
+ // Returns a new transaction that removes a column at index `columnIndex`. If there is only one column left, it will remove the entire table.
8
+ export var removeColumnAt = function removeColumnAt(columnIndex) {
9
+ return function (tr) {
10
+ var table = findTable(tr.selection);
11
+ if (table) {
12
+ var map = TableMap.get(table.node);
13
+ if (columnIndex === 0 && map.width === 1) {
14
+ return removeTable(tr);
15
+ } else if (columnIndex >= 0 && columnIndex <= map.width) {
16
+ removeColumn(tr, {
17
+ map: map,
18
+ tableStart: table.start,
19
+ table: table.node
20
+ }, columnIndex);
21
+ return cloneTr(tr);
22
+ }
23
+ }
24
+ return tr;
25
+ };
26
+ };
@@ -0,0 +1,14 @@
1
+ import { setTextSelection } from '@atlaskit/editor-prosemirror/utils';
2
+ import { findCellRectClosestToPos } from './find-cell-rect-closest-to-pos';
3
+ import { removeColumnAt } from './remove-column-at';
4
+
5
+ // Returns a new transaction that removes a column closest to a given `$pos`.
6
+ export var removeColumnClosestToPos = function removeColumnClosestToPos($pos) {
7
+ return function (tr) {
8
+ var rect = findCellRectClosestToPos($pos);
9
+ if (rect) {
10
+ return removeColumnAt(rect.left)(setTextSelection($pos.pos)(tr));
11
+ }
12
+ return tr;
13
+ };
14
+ };
@@ -1,15 +1,12 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- import { setTextSelection } from '@atlaskit/editor-prosemirror/utils';
5
- import { TableMap } from '../table-map';
6
- import { cloneTr } from './clone-tr';
7
- import { removeColSpan } from './colspan';
8
- import { findCellRectClosestToPos, findTable } from './find';
9
- import { isTableSelected } from './is-selected';
10
- import { isSelectionType } from './is-selection-type';
11
- import { removeTable } from './remove-table';
12
- function removeColumn(tr, _ref, columnIndex) {
1
+ import { removeColSpan } from './remove-col-span';
2
+
3
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Preserve the existing public entry-point API.
4
+ export { removeColumnAt } from './remove-column-at';
5
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Preserve the existing public entry-point API.
6
+ export { removeSelectedColumns } from './remove-selected-columns';
7
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Preserve the existing public entry-point API.
8
+ export { removeColumnClosestToPos } from './remove-column-closest-to-pos';
9
+ export function removeColumn(tr, _ref, columnIndex) {
13
10
  var map = _ref.map,
14
11
  table = _ref.table,
15
12
  tableStart = _ref.tableStart;
@@ -32,69 +29,4 @@ function removeColumn(tr, _ref, columnIndex) {
32
29
  row += cell.attrs.rowspan;
33
30
  }
34
31
  return tr;
35
- }
36
-
37
- // Returns a new transaction that removes a column at index `columnIndex`. If there is only one column left, it will remove the entire table.
38
- export var removeColumnAt = function removeColumnAt(columnIndex) {
39
- return function (tr) {
40
- var table = findTable(tr.selection);
41
- if (table) {
42
- var map = TableMap.get(table.node);
43
- if (columnIndex === 0 && map.width === 1) {
44
- return removeTable(tr);
45
- } else if (columnIndex >= 0 && columnIndex <= map.width) {
46
- removeColumn(tr, {
47
- map: map,
48
- tableStart: table.start,
49
- table: table.node
50
- }, columnIndex);
51
- return cloneTr(tr);
52
- }
53
- }
54
- return tr;
55
- };
56
- };
57
-
58
- // Returns a new transaction that removes selected columns.
59
- export var removeSelectedColumns = function removeSelectedColumns(tr) {
60
- var selection = tr.selection;
61
- if (isTableSelected(selection)) {
62
- return removeTable(tr);
63
- }
64
- if (isSelectionType(selection, 'cell')) {
65
- var table = findTable(selection);
66
- if (table) {
67
- var map = TableMap.get(table.node);
68
- var rect = map.rectBetween(selection.$anchorCell.pos - table.start, selection.$headCell.pos - table.start);
69
- if (rect.left === 0 && rect.right === map.width) {
70
- return tr;
71
- }
72
- var pmTableRect = _objectSpread(_objectSpread({}, rect), {}, {
73
- map: map,
74
- table: table.node,
75
- tableStart: table.start
76
- });
77
- for (var i = pmTableRect.right - 1;; i--) {
78
- removeColumn(tr, pmTableRect, i);
79
- if (i === pmTableRect.left) {
80
- break;
81
- }
82
- pmTableRect.table = pmTableRect.tableStart ? tr.doc.nodeAt(pmTableRect.tableStart - 1) : tr.doc;
83
- pmTableRect.map = TableMap.get(pmTableRect.table);
84
- }
85
- return cloneTr(tr);
86
- }
87
- }
88
- return tr;
89
- };
90
-
91
- // Returns a new transaction that removes a column closest to a given `$pos`.
92
- export var removeColumnClosestToPos = function removeColumnClosestToPos($pos) {
93
- return function (tr) {
94
- var rect = findCellRectClosestToPos($pos);
95
- if (rect) {
96
- return removeColumnAt(rect.left)(setTextSelection($pos.pos)(tr));
97
- }
98
- return tr;
99
- };
100
- };
32
+ }
@@ -0,0 +1,26 @@
1
+ import { TableMap } from '../table-map';
2
+ import { cloneTr } from './clone-tr';
3
+ import { findTable } from './find-table';
4
+ import { removeRow } from './remove-row';
5
+ import { removeTable } from './remove-table';
6
+
7
+ // Returns a new transaction that removes a row at index `rowIndex`. If there is only one row left, it will remove the entire table.
8
+ export var removeRowAt = function removeRowAt(rowIndex) {
9
+ return function (tr) {
10
+ var table = findTable(tr.selection);
11
+ if (table) {
12
+ var map = TableMap.get(table.node);
13
+ if (rowIndex === 0 && map.height === 1) {
14
+ return removeTable(tr);
15
+ } else if (rowIndex >= 0 && rowIndex <= map.height) {
16
+ removeRow(tr, {
17
+ map: map,
18
+ tableStart: table.start,
19
+ table: table.node
20
+ }, rowIndex);
21
+ return cloneTr(tr);
22
+ }
23
+ }
24
+ return tr;
25
+ };
26
+ };
@@ -0,0 +1,14 @@
1
+ import { setTextSelection } from '@atlaskit/editor-prosemirror/utils';
2
+ import { findCellRectClosestToPos } from './find-cell-rect-closest-to-pos';
3
+ import { removeRowAt } from './remove-row-at';
4
+
5
+ // Returns a new transaction that removes a row closest to a given `$pos`.
6
+ export var removeRowClosestToPos = function removeRowClosestToPos($pos) {
7
+ return function (tr) {
8
+ var rect = findCellRectClosestToPos($pos);
9
+ if (rect) {
10
+ return removeRowAt(rect.top)(setTextSelection($pos.pos)(tr));
11
+ }
12
+ return tr;
13
+ };
14
+ };
@@ -1,14 +1,13 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- import { setTextSelection } from '@atlaskit/editor-prosemirror/utils';
5
- import { TableMap } from '../table-map';
6
- import { cloneTr } from './clone-tr';
7
- import { findCellRectClosestToPos, findTable } from './find';
8
- import { isTableSelected } from './is-selected';
9
- import { isSelectionType } from './is-selection-type';
10
- import { removeTable } from './remove-table';
11
- function removeRow(tr, _ref, rowIndex) {
4
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Preserve the existing public entry-point API.
5
+ export { removeRowAt } from './remove-row-at';
6
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Preserve the existing public entry-point API.
7
+ export { removeSelectedRows } from './remove-selected-rows';
8
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Preserve the existing public entry-point API.
9
+ export { removeRowClosestToPos } from './remove-row-closest-to-pos';
10
+ export function removeRow(tr, _ref, rowIndex) {
12
11
  var map = _ref.map,
13
12
  table = _ref.table,
14
13
  tableStart = _ref.tableStart;
@@ -47,69 +46,4 @@ function removeRow(tr, _ref, rowIndex) {
47
46
  }
48
47
  }
49
48
  return tr;
50
- }
51
-
52
- // Returns a new transaction that removes a row at index `rowIndex`. If there is only one row left, it will remove the entire table.
53
- export var removeRowAt = function removeRowAt(rowIndex) {
54
- return function (tr) {
55
- var table = findTable(tr.selection);
56
- if (table) {
57
- var map = TableMap.get(table.node);
58
- if (rowIndex === 0 && map.height === 1) {
59
- return removeTable(tr);
60
- } else if (rowIndex >= 0 && rowIndex <= map.height) {
61
- removeRow(tr, {
62
- map: map,
63
- tableStart: table.start,
64
- table: table.node
65
- }, rowIndex);
66
- return cloneTr(tr);
67
- }
68
- }
69
- return tr;
70
- };
71
- };
72
-
73
- // Returns a new transaction that removes selected rows.
74
- export var removeSelectedRows = function removeSelectedRows(tr) {
75
- var selection = tr.selection;
76
- if (isTableSelected(selection)) {
77
- return removeTable(tr);
78
- }
79
- if (isSelectionType(selection, 'cell')) {
80
- var table = findTable(selection);
81
- if (table) {
82
- var map = TableMap.get(table.node);
83
- var rect = map.rectBetween(selection.$anchorCell.pos - table.start, selection.$headCell.pos - table.start);
84
- if (rect.top === 0 && rect.bottom === map.height) {
85
- return tr;
86
- }
87
- var pmTableRect = _objectSpread(_objectSpread({}, rect), {}, {
88
- map: map,
89
- table: table.node,
90
- tableStart: table.start
91
- });
92
- for (var i = pmTableRect.bottom - 1;; i--) {
93
- removeRow(tr, pmTableRect, i);
94
- if (i === pmTableRect.top) {
95
- break;
96
- }
97
- pmTableRect.table = pmTableRect.tableStart ? tr.doc.nodeAt(pmTableRect.tableStart - 1) : tr.doc;
98
- pmTableRect.map = TableMap.get(pmTableRect.table);
99
- }
100
- return cloneTr(tr);
101
- }
102
- }
103
- return tr;
104
- };
105
-
106
- // Returns a new transaction that removes a row closest to a given `$pos`.
107
- export var removeRowClosestToPos = function removeRowClosestToPos($pos) {
108
- return function (tr) {
109
- var rect = findCellRectClosestToPos($pos);
110
- if (rect) {
111
- return removeRowAt(rect.top)(setTextSelection($pos.pos)(tr));
112
- }
113
- return tr;
114
- };
115
- };
49
+ }