@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
@@ -3,185 +3,52 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.transpose = exports.moveTableRow = exports.moveTableColumn = exports.isValidReorder = exports.convertTableNodeToArrayOfRows = exports.convertArrayOfRowsToTableNode = void 0;
7
- var _tableMap = require("../table-map");
8
- // array = [
9
- // [A1, B1, C1, null],
10
- // [A2, B2, null, D1],
11
- // [A3. B3, C2, null],
12
- // ]
13
-
14
- // This function transposes an array of array flipping the columns for rows,
15
- // transposition is a familiar algebra concept;
16
- // you can get more details here:
17
- // https://en.wikipedia.org/wiki/Transpose
18
- //
19
- // ```javascript
20
- //
21
- // const arr = [
22
- // ['a1', 'a2', 'a3'],
23
- // ['b1', 'b2', 'b3'],
24
- // ['c1', 'c2', 'c3'],
25
- // ['d1', 'd2', 'd3'],
26
- // ];
27
- //
28
- // const result = transpose(arr);
29
- //
30
- // result === [
31
- // ['a1', 'b1', 'c1', 'd1'],
32
- // ['a2', 'b2', 'c2', 'd2'],
33
- // ['a3', 'b3', 'c3', 'd3'],
34
- // ]
35
- // ```
36
- // Ignored via go/ees005
37
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
- var transpose = exports.transpose = function transpose(array) {
39
- // Ignored via go/ees005
40
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
- return array[0].map(function (_, i) {
42
- return array.map(function (column) {
43
- return column[i];
44
- });
45
- });
46
- };
47
-
48
- // :: (tableNode: Node, tableArray: Array<Node>) -> Node
49
- // This function will transform a matrix of nodes
50
- // into table node respecting merged cells and rows configurations,
51
- // for example this array will be convert to the table below:
52
- //
53
- // ```javascript
54
- // array = [
55
- // [A1, B1, C1, null],
56
- // [A2, B2, null, D1],
57
- // [A3. B3, C2, null],
58
- // ]
59
- // ```
60
- //
61
- // ```
62
- // ____________________________
63
- // | | | |
64
- // | A1 | B1 | C1 |
65
- // |______|______|______ ______|
66
- // | | | |
67
- // | A2 | B2 | |
68
- // |______|______ ______| |
69
- // | | | | D1 |
70
- // | A3 | B3 | C2 | |
71
- // |______|______|______|______|
72
- // ```
73
- //
74
- var convertArrayOfRowsToTableNode = exports.convertArrayOfRowsToTableNode = function convertArrayOfRowsToTableNode(tableNode, arrayOfNodes) {
75
- var rowsPM = [];
76
- var map = _tableMap.TableMap.get(tableNode);
77
- for (var rowIndex = 0; rowIndex < map.height; rowIndex++) {
78
- var row = tableNode.child(rowIndex);
79
- var rowCells = [];
80
- for (var colIndex = 0; colIndex < map.width; colIndex++) {
81
- if (!arrayOfNodes[rowIndex][colIndex]) {
82
- continue;
83
- }
84
- var cellPos = map.map[rowIndex * map.width + colIndex];
85
- var cell = arrayOfNodes[rowIndex][colIndex];
86
- var oldCell = tableNode.nodeAt(cellPos);
87
- if (!cell || !oldCell) {
88
- continue;
89
- }
90
- var newCell = oldCell.type.createChecked(Object.assign({}, cell.attrs), cell.content, cell.marks);
91
- rowCells.push(newCell);
92
- }
93
- rowsPM.push(row.type.createChecked(row.attrs, rowCells, row.marks));
6
+ Object.defineProperty(exports, "convertArrayOfRowsToTableNode", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _convertArrayOfRowsToTableNode.convertArrayOfRowsToTableNode;
94
10
  }
95
- var newTable = tableNode.type.createChecked(tableNode.attrs, rowsPM, tableNode.marks);
96
- return newTable;
97
- };
98
- var moveRowInArrayOfRows = function moveRowInArrayOfRows(arrayOfNodes, indexesOrigin, indexesTarget, directionOverride) {
99
- var direction = indexesOrigin[0] > indexesTarget[0] ? -1 : 1;
100
- var rowsExtracted = arrayOfNodes.splice(indexesOrigin[0], indexesOrigin.length);
101
- var positionOffset = rowsExtracted.length % 2 === 0 ? 1 : 0;
102
- var target;
103
- if (directionOverride === -1 && direction === 1) {
104
- target = indexesTarget[0] - 1;
105
- } else if (directionOverride === 1 && direction === -1) {
106
- target = indexesTarget[indexesTarget.length - 1] - positionOffset + 1;
107
- } else {
108
- target = direction === -1 ? indexesTarget[0] : indexesTarget[indexesTarget.length - 1] - positionOffset;
11
+ });
12
+ Object.defineProperty(exports, "convertTableNodeToArrayOfRows", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _convertTableNodeToArrayOfRows.convertTableNodeToArrayOfRows;
109
16
  }
110
-
111
- // @ts-ignore no idea what this line does
112
- arrayOfNodes.splice.apply(arrayOfNodes, [target, 0].concat(rowsExtracted));
113
- return arrayOfNodes;
114
- };
115
-
116
- // :: (tableNode: Node) -> Array<Node>
117
- // This function will transform the table node
118
- // into a matrix of rows and columns respecting merged cells,
119
- // for example this table will be convert to the below:
120
- //
121
- // ```
122
- // ____________________________
123
- // | | | |
124
- // | A1 | B1 | C1 |
125
- // |______|______|______ ______|
126
- // | | | |
127
- // | A2 | B2 | |
128
- // |______|______ ______| |
129
- // | | | | D1 |
130
- // | A3 | B3 | C2 | |
131
- // |______|______|______|______|
132
- // ```
133
- //
134
- //
135
- // ```javascript
136
- // array = [
137
- // [A1, B1, C1, null],
138
- // [A2, B2, null, D1],
139
- // [A3. B3, C2, null],
140
- // ]
141
- // ```
142
- var convertTableNodeToArrayOfRows = exports.convertTableNodeToArrayOfRows = function convertTableNodeToArrayOfRows(tableNode) {
143
- var map = _tableMap.TableMap.get(tableNode);
144
- var rows = [];
145
- for (var rowIndex = 0; rowIndex < map.height; rowIndex++) {
146
- var rowCells = [];
147
- var seen = {};
148
- for (var colIndex = 0; colIndex < map.width; colIndex++) {
149
- var cellPos = map.map[rowIndex * map.width + colIndex];
150
- var cell = tableNode.nodeAt(cellPos);
151
- var rect = map.findCell(cellPos);
152
- if (!cell || seen[cellPos] || rect.top !== rowIndex) {
153
- rowCells.push(null);
154
- continue;
155
- }
156
- seen[cellPos] = true;
157
- rowCells.push(cell);
158
- }
159
- rows.push(rowCells);
17
+ });
18
+ Object.defineProperty(exports, "isValidReorder", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _isValidReorder.isValidReorder;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "moveRowInArrayOfRows", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _moveRowInArrayOfRows.moveRowInArrayOfRows;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "moveTableColumn", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _moveTableColumn.moveTableColumn;
160
34
  }
161
- return rows;
162
- };
163
- var moveTableRow = exports.moveTableRow = function moveTableRow(table, indexesOrigin, indexesTarget, direction) {
164
- var rows = convertTableNodeToArrayOfRows(table.node);
165
- rows = moveRowInArrayOfRows(rows, indexesOrigin, indexesTarget, direction);
166
- return convertArrayOfRowsToTableNode(table.node, rows);
167
- };
168
- var moveTableColumn = exports.moveTableColumn = function moveTableColumn(table, indexesOrigin, indexesTarget, direction) {
169
- var rows = transpose(convertTableNodeToArrayOfRows(table.node));
170
- rows = moveRowInArrayOfRows(rows, indexesOrigin, indexesTarget, direction);
171
- rows = transpose(rows);
172
- return convertArrayOfRowsToTableNode(table.node, rows);
173
- };
174
- var isValidReorder = exports.isValidReorder = function isValidReorder(originIndex, targetIndex, targets, type) {
175
- var direction = originIndex > targetIndex ? -1 : 1;
176
- 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.");
177
- if (direction === 1) {
178
- if (targets.slice(0, targets.length - 1).indexOf(targetIndex) !== -1) {
179
- throw new Error(errorMessage);
180
- }
181
- } else {
182
- if (targets.slice(1).indexOf(targetIndex) !== -1) {
183
- throw new Error(errorMessage);
184
- }
35
+ });
36
+ Object.defineProperty(exports, "moveTableRow", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _moveTableRow.moveTableRow;
185
40
  }
186
- return true;
187
- };
41
+ });
42
+ Object.defineProperty(exports, "transpose", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _transpose.transpose;
46
+ }
47
+ });
48
+ var _transpose = require("./transpose");
49
+ var _convertArrayOfRowsToTableNode = require("./convert-array-of-rows-to-table-node");
50
+ var _convertTableNodeToArrayOfRows = require("./convert-table-node-to-array-of-rows");
51
+ var _moveTableRow = require("./move-table-row");
52
+ var _moveTableColumn = require("./move-table-column");
53
+ var _isValidReorder = require("./is-valid-reorder");
54
+ var _moveRowInArrayOfRows = require("./move-row-in-array-of-rows");
@@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.replaceSelectedTable = void 0;
7
7
  var _model = require("@atlaskit/editor-prosemirror/model");
8
8
  var _state = require("@atlaskit/editor-prosemirror/state");
9
- var _find = require("./find");
10
- var _isSelected = require("./is-selected");
9
+ var _findTable = require("./find-table");
10
+ var _isTableSelected = require("./is-table-selected");
11
11
  var replaceSelectedTable = exports.replaceSelectedTable = function replaceSelectedTable(state, content) {
12
- if ((0, _isSelected.isTableSelected)(state.selection)) {
13
- var table = (0, _find.findTable)(state.selection);
12
+ if ((0, _isTableSelected.isTableSelected)(state.selection)) {
13
+ var table = (0, _findTable.findTable)(state.selection);
14
14
  if (table) {
15
15
  var slice = typeof content === 'string' ? new _model.Slice(_model.Fragment.from(state.schema.text(content)), 0, 0) : content;
16
16
  var tr = state.tr.replace(table.pos, table.pos + table.node.nodeSize, slice);
@@ -4,17 +4,40 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.selectTableClosestToPos = exports.selectTable = exports.selectRows = exports.selectRow = exports.selectColumns = exports.selectColumn = exports.getTableSelectionClosesToPos = void 0;
7
+ Object.defineProperty(exports, "getTableSelectionClosesToPos", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _getTableSelectionClosesToPos.getTableSelectionClosesToPos;
11
+ }
12
+ });
13
+ exports.selectRows = exports.selectRow = exports.selectColumns = exports.selectColumn = void 0;
14
+ Object.defineProperty(exports, "selectTable", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _selectTable.selectTable;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "selectTableClosestToPos", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _selectTableClosestToPos.selectTableClosestToPos;
24
+ }
25
+ });
8
26
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- var _editorExperiment = require("@atlaskit/tmp-editor-statsig/editor-experiment");
10
27
  var _cellSelection = require("../cell-selection");
11
28
  var _tableMap = require("../table-map");
12
29
  var _cloneTr = require("./clone-tr");
13
- var _find = require("./find");
30
+ var _findCellClosestToPos = require("./find-cell-closest-to-pos");
31
+ var _findTable = require("./find-table");
32
+ var _selectTable = require("./select-table");
33
+ var _getTableSelectionClosesToPos = require("./get-table-selection-closes-to-pos");
34
+ var _selectTableClosestToPos = require("./select-table-closest-to-pos");
35
+ /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
36
+
14
37
  var select = function select(type) {
15
38
  return function (index, expand) {
16
39
  return function (tr) {
17
- var table = (0, _find.findTable)(tr.selection);
40
+ var table = (0, _findTable.findTable)(tr.selection);
18
41
  var isRowSelection = type === 'row';
19
42
  var prevSelection = tr.selection;
20
43
  var isPrevRowSelection = !!prevSelection.$anchorCell && !!prevSelection.$headCell;
@@ -29,7 +52,7 @@ var select = function select(type) {
29
52
  var bottom = isRowSelection ? index + 1 : map.height;
30
53
  var cellsInFirstRow = [];
31
54
  if (expand) {
32
- var cell = (0, _find.findCellClosestToPos)(tr.selection.$from);
55
+ var cell = (0, _findCellClosestToPos.findCellClosestToPos)(tr.selection.$from);
33
56
  if (!cell) {
34
57
  return tr;
35
58
  }
@@ -116,7 +139,7 @@ var selectRow = exports.selectRow = select('row');
116
139
  var selectRowsOrColumns = function selectRowsOrColumns(type) {
117
140
  return function (indexes) {
118
141
  return function (tr) {
119
- var table = (0, _find.findTable)(tr.selection);
142
+ var table = (0, _findTable.findTable)(tr.selection);
120
143
  if (!table) {
121
144
  return tr;
122
145
  }
@@ -151,57 +174,17 @@ var selectRows = exports.selectRows = selectRowsOrColumns('rows');
151
174
  // Returns a new transaction that selects all columns at `indexes`.
152
175
  var selectColumns = exports.selectColumns = selectRowsOrColumns('columns');
153
176
 
154
- // Returns a new transaction that selects a table.
155
- var selectTable = exports.selectTable = function selectTable(tr) {
156
- var table = (0, _find.findTable)(tr.selection);
157
- if (table) {
158
- var _TableMap$get = _tableMap.TableMap.get(table.node),
159
- map = _TableMap$get.map;
160
- if (map && map.length) {
161
- var head = table.start + map[0];
162
- var anchor = table.start + map[map.length - 1];
163
- var $head = tr.doc.resolve(head);
164
- var $anchor = tr.doc.resolve(anchor);
165
- return (0, _cloneTr.cloneTr)(tr.setSelection(new _cellSelection.CellSelection($anchor, $head)));
166
- }
167
- }
168
- return tr;
169
- };
170
- var getTableSelectionClosesToPos = exports.getTableSelectionClosesToPos = function getTableSelectionClosesToPos($pos) {
171
- var table = (0, _find.findTableClosestToPos)($pos);
172
- if (table) {
173
- var _TableMap$get2 = _tableMap.TableMap.get(table.node),
174
- map = _TableMap$get2.map;
175
- if (map && map.length) {
176
- var head = table.start + map[0];
177
- var anchor = table.start + map[map.length - 1];
178
- var $head = $pos.doc.resolve(head);
179
- var $anchor = $pos.doc.resolve(anchor);
180
- return new _cellSelection.CellSelection($anchor, $head);
181
- }
182
- }
183
- };
184
- var selectTableClosestToPos = exports.selectTableClosestToPos = function selectTableClosestToPos(tr, $pos) {
185
- if ((0, _editorExperiment.editorExperiment)('platform_editor_block_menu', true, {
186
- exposure: true
187
- })) {
188
- var tableSelection = getTableSelectionClosesToPos($pos);
189
- if (tableSelection) {
190
- return (0, _cloneTr.cloneTr)(tr.setSelection(tableSelection));
191
- }
192
- return tr;
193
- }
194
- var table = (0, _find.findTableClosestToPos)($pos);
195
- if (table) {
196
- var _TableMap$get3 = _tableMap.TableMap.get(table.node),
197
- map = _TableMap$get3.map;
198
- if (map && map.length) {
199
- var head = table.start + map[0];
200
- var anchor = table.start + map[map.length - 1];
201
- var $head = tr.doc.resolve(head);
202
- var $anchor = tr.doc.resolve(anchor);
203
- return (0, _cloneTr.cloneTr)(tr.setSelection(new _cellSelection.CellSelection($anchor, $head)));
204
- }
205
- }
206
- return tr;
207
- };
177
+ /**
178
+ * @deprecated Use `import { selectTable } from '@atlaskit/editor-tables/select-table'` instead.
179
+ */
180
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Compatibility shim for deprecated API
181
+
182
+ /**
183
+ * @deprecated Use `import { getTableSelectionClosesToPos } from '@atlaskit/editor-tables/get-table-selection-closes-to-pos'` instead.
184
+ */
185
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Compatibility shim for deprecated API
186
+
187
+ /**
188
+ * @deprecated Use `import { selectTableClosestToPos } from '@atlaskit/editor-tables/select-table-closest-to-pos'` instead.
189
+ */
190
+ // eslint-disable-next-line @atlaskit/editor/no-re-export -- Compatibility shim for deprecated API
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.selectTableClosestToPos = void 0;
7
+ var _editorExperiment = require("@atlaskit/tmp-editor-statsig/editor-experiment");
8
+ var _cellSelection = require("../cell-selection");
9
+ var _tableMap = require("../table-map");
10
+ var _cloneTr = require("./clone-tr");
11
+ var _findTableClosestToPos = require("./find-table-closest-to-pos");
12
+ var _getTableSelectionClosesToPos = require("./get-table-selection-closes-to-pos");
13
+ var selectTableClosestToPos = exports.selectTableClosestToPos = function selectTableClosestToPos(tr, $pos) {
14
+ if ((0, _editorExperiment.editorExperiment)('platform_editor_block_menu', true, {
15
+ exposure: true
16
+ })) {
17
+ var tableSelection = (0, _getTableSelectionClosesToPos.getTableSelectionClosesToPos)($pos);
18
+ if (tableSelection) {
19
+ return (0, _cloneTr.cloneTr)(tr.setSelection(tableSelection));
20
+ }
21
+ return tr;
22
+ }
23
+ var table = (0, _findTableClosestToPos.findTableClosestToPos)($pos);
24
+ if (table) {
25
+ var _TableMap$get = _tableMap.TableMap.get(table.node),
26
+ map = _TableMap$get.map;
27
+ if (map && map.length) {
28
+ var head = table.start + map[0];
29
+ var anchor = table.start + map[map.length - 1];
30
+ var $head = tr.doc.resolve(head);
31
+ var $anchor = tr.doc.resolve(anchor);
32
+ return (0, _cloneTr.cloneTr)(tr.setSelection(new _cellSelection.CellSelection($anchor, $head)));
33
+ }
34
+ }
35
+ return tr;
36
+ };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.selectTable = void 0;
7
+ var _cellSelection = require("../cell-selection");
8
+ var _tableMap = require("../table-map");
9
+ var _cloneTr = require("./clone-tr");
10
+ var _findTable = require("./find-table");
11
+ // Returns a new transaction that selects a table.
12
+ var selectTable = exports.selectTable = function selectTable(tr) {
13
+ var table = (0, _findTable.findTable)(tr.selection);
14
+ if (table) {
15
+ var _TableMap$get = _tableMap.TableMap.get(table.node),
16
+ map = _TableMap$get.map;
17
+ if (map && map.length) {
18
+ var head = table.start + map[0];
19
+ var anchor = table.start + map[map.length - 1];
20
+ var $head = tr.doc.resolve(head);
21
+ var $anchor = tr.doc.resolve(anchor);
22
+ return (0, _cloneTr.cloneTr)(tr.setSelection(new _cellSelection.CellSelection($anchor, $head)));
23
+ }
24
+ }
25
+ return tr;
26
+ };
@@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.selectionCell = selectionCell;
7
- var _cells = require("./cells");
7
+ var _cellAround = require("./cell-around");
8
+ var _cellNear = require("./cell-near");
8
9
  var _isSelectionType = require("./is-selection-type");
9
10
  function selectionCell(selection) {
10
11
  if ((0, _isSelectionType.isSelectionType)(selection, 'cell')) {
@@ -13,5 +14,5 @@ function selectionCell(selection) {
13
14
  if ((0, _isSelectionType.isSelectionType)(selection, 'node') && selection.node.type.spec.tableRole === 'cell') {
14
15
  return selection.$anchor;
15
16
  }
16
- return (0, _cells.cellAround)(selection.$head) || (0, _cells.cellNear)(selection.$head);
17
+ return (0, _cellAround.cellAround)(selection.$head) || (0, _cellNear.cellNear)(selection.$head);
17
18
  }
@@ -4,25 +4,21 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.cellWrapping = cellWrapping;
7
+ Object.defineProperty(exports, "cellWrapping", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _cellWrapping.cellWrapping;
11
+ }
12
+ });
8
13
  exports.splitCellWithType = splitCellWithType;
9
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
15
  var _model = require("@atlaskit/editor-prosemirror/model");
11
16
  var _cellSelection = require("../cell-selection");
12
- var _cells = require("./cells");
17
+ var _cellAround = require("./cell-around");
18
+ var _cellWrapping = require("./cell-wrapping");
13
19
  var _selectionRect = require("./selection-rect");
14
20
  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; }
15
- 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) { (0, _defineProperty2.default)(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; }
16
- function cellWrapping($pos) {
17
- for (var d = $pos.depth; d > 0; d--) {
18
- // Sometimes the cell can be in the same depth.
19
- var role = $pos.node(d).type.spec.tableRole;
20
- if (role === 'cell' || role === 'header_cell') {
21
- return $pos.node(d);
22
- }
23
- }
24
- return null;
25
- }
21
+ 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) { (0, _defineProperty2.default)(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; } // eslint-disable-next-line @atlaskit/editor/no-re-export -- Preserve the existing public entry-point API.
26
22
  // Split a selected cell, whose rowpan or colspan is greater than one,
27
23
  // into smaller cells with the cell type (th, td) returned by getType function.
28
24
  function splitCellWithType(getCellType) {
@@ -30,11 +26,11 @@ function splitCellWithType(getCellType) {
30
26
  var sel = state.selection;
31
27
  var cellNode, cellPos;
32
28
  if (!(sel instanceof _cellSelection.CellSelection)) {
33
- cellNode = cellWrapping(sel.$from);
29
+ cellNode = (0, _cellWrapping.cellWrapping)(sel.$from);
34
30
  if (!cellNode) {
35
31
  return false;
36
32
  }
37
- var cellNodeAround = (0, _cells.cellAround)(sel.$from);
33
+ var cellNodeAround = (0, _cellAround.cellAround)(sel.$from);
38
34
  cellPos = cellNodeAround && cellNodeAround.pos;
39
35
  } else {
40
36
  if (sel.$anchorCell.pos !== sel.$headCell.pos) {
@@ -3,17 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.inSameTable = inSameTable;
7
- exports.isInTable = isInTable;
8
- function isInTable(state) {
9
- var $head = state.selection.$head;
10
- for (var d = $head.depth; d > 0; d--) {
11
- if ($head.node(d).type.spec.tableRole === 'row') {
12
- return true;
13
- }
6
+ Object.defineProperty(exports, "inSameTable", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _inSameTable.inSameTable;
14
10
  }
15
- return false;
16
- }
17
- function inSameTable($a, $b) {
18
- return $a.depth === $b.depth && $a.pos >= $b.start(-1) && $a.pos <= $b.end(-1);
19
- }
11
+ });
12
+ Object.defineProperty(exports, "isInTable", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _isInTable.isInTable;
16
+ }
17
+ });
18
+ var _isInTable = require("./is-in-table");
19
+ var _inSameTable = require("./in-same-table");
@@ -3,44 +3,27 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isHeaderEnabledByType = isHeaderEnabledByType;
7
6
  exports.toggleHeader = toggleHeader;
8
- var _tableMap = require("../table-map");
7
+ var _rect = require("../rect");
8
+ var _isHeaderEnabledByType = require("./is-header-enabled-by-type");
9
+ var _isInTable = require("./is-in-table");
9
10
  var _selectionRect = require("./selection-rect");
10
11
  var _tableNodeTypes = require("./table-node-types");
11
- var _tables = require("./tables");
12
- function isHeaderEnabledByType(type, rect, types) {
13
- // Get cell positions for first row or first column
14
- var cellPositions = rect.map.cellsInRect({
15
- left: 0,
16
- top: 0,
17
- right: type === 'row' ? rect.map.width : 1,
18
- bottom: type === 'column' ? rect.map.height : 1
19
- });
20
- for (var i = 0; i < cellPositions.length; i++) {
21
- var cell = rect.table.nodeAt(cellPositions[i]);
22
- if (cell && cell.type !== types.header_cell) {
23
- return false;
24
- }
25
- }
26
- return true;
27
- }
28
-
29
12
  // Toggles between row/column header and normal cells (Only applies to first row/column).
30
13
  function toggleHeader(type) {
31
14
  return function (state, dispatch) {
32
- if (!(0, _tables.isInTable)(state)) {
15
+ if (!(0, _isInTable.isInTable)(state)) {
33
16
  return false;
34
17
  }
35
18
  if (dispatch) {
36
19
  var types = (0, _tableNodeTypes.tableNodeTypes)(state.schema);
37
20
  var rect = (0, _selectionRect.selectedRect)(state),
38
21
  tr = state.tr;
39
- var isHeaderRowEnabled = isHeaderEnabledByType('row', rect, types);
40
- var isHeaderColumnEnabled = isHeaderEnabledByType('column', rect, types);
22
+ var isHeaderRowEnabled = (0, _isHeaderEnabledByType.isHeaderEnabledByType)('row', rect, types);
23
+ var isHeaderColumnEnabled = (0, _isHeaderEnabledByType.isHeaderEnabledByType)('column', rect, types);
41
24
  var isHeaderEnabled = type === 'column' ? isHeaderRowEnabled : type === 'row' ? isHeaderColumnEnabled : false;
42
25
  var selectionStartsAt = isHeaderEnabled ? 1 : 0;
43
- var cellsRect = type === 'column' ? new _tableMap.Rect(0, selectionStartsAt, 1, rect.map.height) : type === 'row' ? new _tableMap.Rect(selectionStartsAt, 0, rect.map.width, 1) : rect;
26
+ var cellsRect = type === 'column' ? new _rect.Rect(0, selectionStartsAt, 1, rect.map.height) : type === 'row' ? new _rect.Rect(selectionStartsAt, 0, rect.map.width, 1) : rect;
44
27
  var newType;
45
28
  if (type === 'column') {
46
29
  newType = isHeaderColumnEnabled ? types.cell : types.header_cell;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.transpose = void 0;
7
+ // This function transposes an array of array flipping the columns for rows,
8
+ // transposition is a familiar algebra concept;
9
+ // you can get more details here:
10
+ // https://en.wikipedia.org/wiki/Transpose
11
+ //
12
+ // ```javascript
13
+ //
14
+ // const arr = [
15
+ // ['a1', 'a2', 'a3'],
16
+ // ['b1', 'b2', 'b3'],
17
+ // ['c1', 'c2', 'c3'],
18
+ // ['d1', 'd2', 'd3'],
19
+ // ];
20
+ //
21
+ // const result = transpose(arr);
22
+ //
23
+ // result === [
24
+ // ['a1', 'b1', 'c1', 'd1'],
25
+ // ['a2', 'b2', 'c2', 'd2'],
26
+ // ['a3', 'b3', 'c3', 'd3'],
27
+ // ]
28
+ // ```
29
+ // Ignored via go/ees005
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ var transpose = exports.transpose = function transpose(array) {
32
+ // Ignored via go/ees005
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+ return array[0].map(function (_, i) {
35
+ return array.map(function (column) {
36
+ return column[i];
37
+ });
38
+ });
39
+ };