@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,86 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.cloneRowAt = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _utils = require("@atlaskit/editor-prosemirror/utils");
10
+ var _tableMap = require("../table-map");
11
+ var _findTable = require("./find-table");
12
+ var _getCellsInRow = require("./get-cells-in-row");
13
+ var _setCellAttrs = require("./set-cell-attrs");
14
+ var _tableNodeTypes = require("./table-node-types");
15
+ var filterCellsInRow = function filterCellsInRow(rowIndex, predicate) {
16
+ return function (tr) {
17
+ var foundCells = [];
18
+ var cells = (0, _getCellsInRow.getCellsInRow)(rowIndex)(tr.selection);
19
+ if (cells) {
20
+ for (var j = cells.length - 1; j >= 0; j--) {
21
+ if (predicate(cells[j], tr)) {
22
+ foundCells.push(cells[j]);
23
+ }
24
+ }
25
+ }
26
+ return foundCells;
27
+ };
28
+ };
29
+
30
+ // Returns a new transaction that adds a new row after `cloneRowIndex`, cloning the row attributes at `cloneRowIndex`.
31
+ var cloneRowAt = exports.cloneRowAt = function cloneRowAt(rowIndex) {
32
+ return function (tr) {
33
+ var table = (0, _findTable.findTable)(tr.selection);
34
+ if (table) {
35
+ var map = _tableMap.TableMap.get(table.node);
36
+ if (rowIndex >= 0 && rowIndex <= map.height) {
37
+ var tableNode = table.node;
38
+ var tableNodes = (0, _tableNodeTypes.tableNodeTypes)(tableNode.type.schema);
39
+ var rowPos = table.start;
40
+ for (var i = 0; i < rowIndex + 1; i++) {
41
+ rowPos += tableNode.child(i).nodeSize;
42
+ }
43
+ var cloneRow = tableNode.child(rowIndex);
44
+ // Re-create the same nodes with same attrs, dropping the node content.
45
+ var cells = [];
46
+ var rowWidth = 0;
47
+ cloneRow.forEach(function (cell) {
48
+ // If we're copying a row with rowspan somewhere, we dont want to copy that cell
49
+ // We'll increment its span below.
50
+ if (cell.attrs.rowspan === 1) {
51
+ rowWidth += cell.attrs.colspan;
52
+ var node = tableNodes[cell.type.spec.tableRole].createAndFill(cell.attrs, [], cell.marks);
53
+ if (node) {
54
+ cells.push(node);
55
+ }
56
+ }
57
+ });
58
+
59
+ // If a higher row spans past our clone row, bump the higher row to cover this new row too.
60
+ if (rowWidth < map.width) {
61
+ var rowSpanCells = [];
62
+ var _loop = function _loop(_i) {
63
+ var foundCells = filterCellsInRow(_i, function (cell, _tr) {
64
+ var rowspan = cell.node.attrs.rowspan;
65
+ var spanRange = _i + rowspan;
66
+ return rowspan > 1 && spanRange > rowIndex;
67
+ })(tr);
68
+ rowSpanCells.push.apply(rowSpanCells, (0, _toConsumableArray2.default)(foundCells));
69
+ };
70
+ for (var _i = rowIndex; _i >= 0; _i--) {
71
+ _loop(_i);
72
+ }
73
+ if (rowSpanCells.length) {
74
+ rowSpanCells.forEach(function (cell) {
75
+ tr = (0, _setCellAttrs.setCellAttrs)(cell, {
76
+ rowspan: cell.node.attrs.rowspan + 1
77
+ })(tr);
78
+ });
79
+ }
80
+ }
81
+ return (0, _utils.safeInsert)(tableNodes.row.create(cloneRow.attrs, cells), rowPos)(tr);
82
+ }
83
+ }
84
+ return tr;
85
+ };
86
+ };
@@ -11,9 +11,9 @@ var _cellSelection = require("../cell-selection");
11
11
  var _tableMap = require("../table-map");
12
12
  var _analyseTable = require("./analyse-table");
13
13
  var _cloneTr = require("./clone-tr");
14
- var _find = require("./find");
14
+ var _findTable = require("./find-table");
15
15
  var _getSelectionRangeInRow = require("./get-selection-range-in-row");
16
- var _reorderUtils = require("./reorder-utils");
16
+ var _isValidReorder = require("./is-valid-reorder");
17
17
  var _tableNodeTypes = require("./table-node-types");
18
18
  function normalizeDirection(targetDirection, options) {
19
19
  var _options$direction;
@@ -27,7 +27,7 @@ var cloneRow = exports.cloneRow = function cloneRow(state, originRowIndex, targe
27
27
  selectAfterClone: false
28
28
  };
29
29
  return function (tr) {
30
- var table = (0, _find.findTable)(tr.selection);
30
+ var table = (0, _findTable.findTable)(tr.selection);
31
31
  if (!table) {
32
32
  return tr;
33
33
  }
@@ -54,7 +54,7 @@ var cloneRow = exports.cloneRow = function cloneRow(state, originRowIndex, targe
54
54
  return tr;
55
55
  }
56
56
  if (!options.tryToFit && indexesTargetRow.length > 1) {
57
- (0, _reorderUtils.isValidReorder)(originMin, targetRowIndex, indexesTargetRow, 'row');
57
+ (0, _isValidReorder.isValidReorder)(originMin, targetRowIndex, indexesTargetRow, 'row');
58
58
  }
59
59
  var types = (0, _tableNodeTypes.tableNodeTypes)(state.schema);
60
60
  var direction = normalizeDirection(targetDirection, options);
@@ -1,55 +1,26 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.addColSpan = addColSpan;
8
- exports.assertColspan = assertColspan;
9
- exports.removeColSpan = removeColSpan;
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- 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; }
12
- 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; }
13
- function removeColSpan(attrs, pos) {
14
- var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
15
- if (!attrs.colspan) {
16
- throw new Error('removeColSpan(): attrs.colspan not defined');
6
+ Object.defineProperty(exports, "addColSpan", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _addColSpan.addColSpan;
17
10
  }
18
- var result = _objectSpread(_objectSpread({}, attrs), {}, {
19
- colspan: attrs.colspan - n
20
- });
21
- if (result.colwidth) {
22
- result.colwidth = result.colwidth.slice();
23
- result.colwidth.splice(pos, n);
24
- if (!result.colwidth.some(function (w) {
25
- return w > 0;
26
- })) {
27
- result.colwidth = undefined;
28
- }
29
- }
30
- return result;
31
- }
32
- function assertColspan(attrs) {
33
- if (typeof attrs.colspan === 'undefined') {
34
- throw new Error('addColSpan: attrs.colspan is not defined');
35
- }
36
- if (typeof attrs.colspan !== 'number' || Number.isNaN(attrs.colspan) || attrs.colspan < 1) {
37
- throw new Error("addColSpan: attrs.colspan must be number >= 1, received: ".concat(attrs.colspan));
11
+ });
12
+ Object.defineProperty(exports, "assertColspan", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _assertColspan.assertColspan;
38
16
  }
39
- }
40
-
41
- // TODO: ED-26961 - replace "addColSpan" from table plugin with this function
42
- function addColSpan(attrs, pos) {
43
- var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
44
- assertColspan(attrs);
45
- var result = _objectSpread(_objectSpread({}, attrs), {}, {
46
- colspan: attrs.colspan + n
47
- });
48
- if (result.colwidth) {
49
- result.colwidth = result.colwidth.slice();
50
- for (var i = 0; i < n; i++) {
51
- result.colwidth.splice(pos, 0, 0);
52
- }
17
+ });
18
+ Object.defineProperty(exports, "removeColSpan", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _removeColSpan.removeColSpan;
53
22
  }
54
- return result;
55
- }
23
+ });
24
+ var _removeColSpan = require("./remove-col-span");
25
+ var _assertColspan = require("./assert-colspan");
26
+ var _addColSpan = require("./add-col-span");
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.columnIsHeader = columnIsHeader;
7
+ var _tableNodeTypes = require("./table-node-types");
8
+ function columnIsHeader(map, table, col) {
9
+ var headerCell = (0, _tableNodeTypes.tableNodeTypes)(table.type.schema).header_cell;
10
+ for (var row = 0; row < map.height; row++) {
11
+ var cell = table.nodeAt(map.map[col + row * map.width]);
12
+ if (cell && cell.type !== headerCell) {
13
+ return false;
14
+ }
15
+ }
16
+ return true;
17
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.convertArrayOfRowsToTableNode = void 0;
7
+ var _tableMap = require("../table-map");
8
+ // :: (tableNode: Node, tableArray: Array<Node>) -> Node
9
+ // This function will transform a matrix of nodes
10
+ // into table node respecting merged cells and rows configurations,
11
+ // for example this array will be convert to the table below:
12
+ //
13
+ // ```javascript
14
+ // array = [
15
+ // [A1, B1, C1, null],
16
+ // [A2, B2, null, D1],
17
+ // [A3. B3, C2, null],
18
+ // ]
19
+ // ```
20
+ //
21
+ // ```
22
+ // ____________________________
23
+ // | | | |
24
+ // | A1 | B1 | C1 |
25
+ // |______|______|______ ______|
26
+ // | | | |
27
+ // | A2 | B2 | |
28
+ // |______|______ ______| |
29
+ // | | | | D1 |
30
+ // | A3 | B3 | C2 | |
31
+ // |______|______|______|______|
32
+ // ```
33
+ //
34
+ var convertArrayOfRowsToTableNode = exports.convertArrayOfRowsToTableNode = function convertArrayOfRowsToTableNode(tableNode, arrayOfNodes) {
35
+ var rowsPM = [];
36
+ var map = _tableMap.TableMap.get(tableNode);
37
+ for (var rowIndex = 0; rowIndex < map.height; rowIndex++) {
38
+ var row = tableNode.child(rowIndex);
39
+ var rowCells = [];
40
+ for (var colIndex = 0; colIndex < map.width; colIndex++) {
41
+ if (!arrayOfNodes[rowIndex][colIndex]) {
42
+ continue;
43
+ }
44
+ var cellPos = map.map[rowIndex * map.width + colIndex];
45
+ var cell = arrayOfNodes[rowIndex][colIndex];
46
+ var oldCell = tableNode.nodeAt(cellPos);
47
+ if (!cell || !oldCell) {
48
+ continue;
49
+ }
50
+ var newCell = oldCell.type.createChecked(Object.assign({}, cell.attrs), cell.content, cell.marks);
51
+ rowCells.push(newCell);
52
+ }
53
+ rowsPM.push(row.type.createChecked(row.attrs, rowCells, row.marks));
54
+ }
55
+ var newTable = tableNode.type.createChecked(tableNode.attrs, rowsPM, tableNode.marks);
56
+ return newTable;
57
+ };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.convertTableNodeToArrayOfRows = void 0;
7
+ var _tableMap = require("../table-map");
8
+ // :: (tableNode: Node) -> Array<Node>
9
+ // This function will transform the table node
10
+ // into a matrix of rows and columns respecting merged cells,
11
+ // for example this table will be convert to the below:
12
+ //
13
+ // ```
14
+ // ____________________________
15
+ // | | | |
16
+ // | A1 | B1 | C1 |
17
+ // |______|______|______ ______|
18
+ // | | | |
19
+ // | A2 | B2 | |
20
+ // |______|______ ______| |
21
+ // | | | | D1 |
22
+ // | A3 | B3 | C2 | |
23
+ // |______|______|______|______|
24
+ // ```
25
+ //
26
+ //
27
+ // ```javascript
28
+ // array = [
29
+ // [A1, B1, C1, null],
30
+ // [A2, B2, null, D1],
31
+ // [A3. B3, C2, null],
32
+ // ]
33
+ // ```
34
+ var convertTableNodeToArrayOfRows = exports.convertTableNodeToArrayOfRows = function convertTableNodeToArrayOfRows(tableNode) {
35
+ var map = _tableMap.TableMap.get(tableNode);
36
+ var rows = [];
37
+ for (var rowIndex = 0; rowIndex < map.height; rowIndex++) {
38
+ var rowCells = [];
39
+ var seen = {};
40
+ for (var colIndex = 0; colIndex < map.width; colIndex++) {
41
+ var cellPos = map.map[rowIndex * map.width + colIndex];
42
+ var cell = tableNode.nodeAt(cellPos);
43
+ var rect = map.findCell(cellPos);
44
+ if (!cell || seen[cellPos] || rect.top !== rowIndex) {
45
+ rowCells.push(null);
46
+ continue;
47
+ }
48
+ seen[cellPos] = true;
49
+ rowCells.push(cell);
50
+ }
51
+ rows.push(rowCells);
52
+ }
53
+ return rows;
54
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findCellClosestToPos = void 0;
7
+ var _utils = require("@atlaskit/editor-prosemirror/utils");
8
+ // Ignored via go/ees005
9
+ // eslint-disable-next-line require-unicode-regexp
10
+ var CELL_ROLE_REGEX = /cell/i;
11
+
12
+ // Iterates over parent nodes, returning a table cell or a table header node closest to a given `$pos`.
13
+ var findCellClosestToPos = exports.findCellClosestToPos = function findCellClosestToPos($pos) {
14
+ var predicate = function predicate(node) {
15
+ return node.type.spec.tableRole && CELL_ROLE_REGEX.test(node.type.spec.tableRole);
16
+ };
17
+ return (0, _utils.findParentNodeClosestToPos)($pos, predicate);
18
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findCellRectClosestToPos = void 0;
7
+ var _tableMap = require("../table-map");
8
+ var _findCellClosestToPos = require("./find-cell-closest-to-pos");
9
+ var _findTableClosestToPos = require("./find-table-closest-to-pos");
10
+ // Returns the rectangle spanning a cell closest to a given `$pos`.
11
+ var findCellRectClosestToPos = exports.findCellRectClosestToPos = function findCellRectClosestToPos($pos) {
12
+ var cell = (0, _findCellClosestToPos.findCellClosestToPos)($pos);
13
+ if (cell) {
14
+ var table = (0, _findTableClosestToPos.findTableClosestToPos)($pos);
15
+ if (table) {
16
+ var map = _tableMap.TableMap.get(table.node);
17
+ var cellPos = cell.pos - table.start;
18
+ return map.rectBetween(cellPos, cellPos);
19
+ }
20
+ }
21
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findTableClosestToPos = void 0;
7
+ var _utils = require("@atlaskit/editor-prosemirror/utils");
8
+ // Iterates over parent nodes, returning a table node closest to a given `$pos`.
9
+ var findTableClosestToPos = exports.findTableClosestToPos = function findTableClosestToPos($pos) {
10
+ var predicate = function predicate(node) {
11
+ return node.type.spec.tableRole && node.type.spec.tableRole === 'table';
12
+ };
13
+ return (0, _utils.findParentNodeClosestToPos)($pos, predicate);
14
+ };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findTable = void 0;
7
+ var _utils = require("@atlaskit/editor-prosemirror/utils");
8
+ // Iterates over parent nodes, returning the closest table node.
9
+ var findTable = exports.findTable = function findTable(selection) {
10
+ return (0, _utils.findParentNode)(function (node) {
11
+ return node.type.spec.tableRole && node.type.spec.tableRole === 'table';
12
+ })(selection);
13
+ };
@@ -3,45 +3,31 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.findTableClosestToPos = exports.findTable = exports.findCellRectClosestToPos = exports.findCellClosestToPos = void 0;
7
- var _utils = require("@atlaskit/editor-prosemirror/utils");
8
- var _tableMap = require("../table-map");
9
- // Ignored via go/ees005
10
- // eslint-disable-next-line require-unicode-regexp
11
- var CELL_ROLE_REGEX = /cell/i;
12
-
13
- // Iterates over parent nodes, returning the closest table node.
14
- var findTable = exports.findTable = function findTable(selection) {
15
- return (0, _utils.findParentNode)(function (node) {
16
- return node.type.spec.tableRole && node.type.spec.tableRole === 'table';
17
- })(selection);
18
- };
19
-
20
- // Iterates over parent nodes, returning a table node closest to a given `$pos`.
21
- var findTableClosestToPos = exports.findTableClosestToPos = function findTableClosestToPos($pos) {
22
- var predicate = function predicate(node) {
23
- return node.type.spec.tableRole && node.type.spec.tableRole === 'table';
24
- };
25
- return (0, _utils.findParentNodeClosestToPos)($pos, predicate);
26
- };
27
-
28
- // Iterates over parent nodes, returning a table cell or a table header node closest to a given `$pos`.
29
- var findCellClosestToPos = exports.findCellClosestToPos = function findCellClosestToPos($pos) {
30
- var predicate = function predicate(node) {
31
- return node.type.spec.tableRole && CELL_ROLE_REGEX.test(node.type.spec.tableRole);
32
- };
33
- return (0, _utils.findParentNodeClosestToPos)($pos, predicate);
34
- };
35
-
36
- // Returns the rectangle spanning a cell closest to a given `$pos`.
37
- var findCellRectClosestToPos = exports.findCellRectClosestToPos = function findCellRectClosestToPos($pos) {
38
- var cell = findCellClosestToPos($pos);
39
- if (cell) {
40
- var table = findTableClosestToPos($pos);
41
- if (table) {
42
- var map = _tableMap.TableMap.get(table.node);
43
- var cellPos = cell.pos - table.start;
44
- return map.rectBetween(cellPos, cellPos);
45
- }
6
+ Object.defineProperty(exports, "findCellClosestToPos", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _findCellClosestToPos.findCellClosestToPos;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "findCellRectClosestToPos", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _findCellRectClosestToPos.findCellRectClosestToPos;
46
16
  }
47
- };
17
+ });
18
+ Object.defineProperty(exports, "findTable", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _findTable.findTable;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "findTableClosestToPos", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _findTableClosestToPos.findTableClosestToPos;
28
+ }
29
+ });
30
+ var _findTable = require("./find-table");
31
+ var _findTableClosestToPos = require("./find-table-closest-to-pos");
32
+ var _findCellClosestToPos = require("./find-cell-closest-to-pos");
33
+ var _findCellRectClosestToPos = require("./find-cell-rect-closest-to-pos");
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fitSlice = fitSlice;
7
+ var _transform = require("@atlaskit/editor-prosemirror/transform");
8
+ // Utilities used for copy/paste handling.
9
+ //
10
+ // This module handles pasting cell content into tables, or pasting
11
+ // anything into a cell selection, as replacing a block of cells with
12
+ // the content of the selection. When pasting cells into a cell, that
13
+ // involves placing the block of pasted content so that its top left
14
+ // aligns with the selection cell, optionally extending the table to
15
+ // the right or bottom to make sure it is large enough. Pasting into a
16
+ // cell selection is different, here the cells in the selection are
17
+ // clipped to the selection's rectangle, optionally repeating the
18
+ // pasted cells when they are smaller than the selection.
19
+
20
+ function fitSlice(nodeType, slice) {
21
+ var node = nodeType.createAndFill();
22
+ if (!node) {
23
+ throw new Error("fitSlice: unable to create node");
24
+ }
25
+ var tr = new _transform.Transform(node).replace(0, node.content.size, slice);
26
+ return tr.doc;
27
+ }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.fixTable = fixTable;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _pluginKey = require("../pm-plugins/plugin-key");
10
+ var _tableMap = require("../table-map");
11
+ var _removeColSpan = require("./remove-col-span");
12
+ var _tableNodeTypes = require("./table-node-types");
13
+ 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; }
14
+ 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; }
15
+ // : (EditorState, Node, number, ?Transaction) → ?Transaction
16
+ // Fix the given table, if necessary. Will append to the transaction
17
+ // it was given, if non-null, or create a new one if necessary.
18
+ function fixTable(state, table, tablePos, transaction, reportFixedTable) {
19
+ var tr = transaction;
20
+ var map = _tableMap.TableMap.get(table);
21
+ if (!map.problems) {
22
+ return tr;
23
+ }
24
+ if (!tr) {
25
+ tr = state.tr;
26
+ }
27
+
28
+ // Track which rows we must add cells to, so that we can adjust that
29
+ // when fixing collisions.
30
+ var mustAdd = [];
31
+ for (var i = 0; i < map.height; i++) {
32
+ mustAdd.push(0);
33
+ }
34
+ for (var _i = 0; _i < map.problems.length; _i++) {
35
+ var prob = map.problems[_i];
36
+ if (reportFixedTable) {
37
+ reportFixedTable({
38
+ state: state,
39
+ tr: tr,
40
+ reason: prob.type || 'unknown'
41
+ });
42
+ }
43
+ if (prob.type === _tableMap.TableProblemTypes.COLLISION) {
44
+ var collision = prob;
45
+ var cell = table.nodeAt(prob.pos);
46
+ if (!cell) {
47
+ throw new Error("fixTable: unable to find cell at pos ".concat(prob.pos));
48
+ }
49
+ for (var j = 0; j < cell.attrs.rowspan; j++) {
50
+ mustAdd[collision.row + j] += collision.n;
51
+ }
52
+ tr.setNodeMarkup(tr.mapping.map(tablePos + 1 + prob.pos), undefined, (0, _removeColSpan.removeColSpan)(cell.attrs, cell.attrs.colspan - collision.n, collision.n));
53
+ } else if (prob.type === _tableMap.TableProblemTypes.MISSING) {
54
+ var missing = prob;
55
+ mustAdd[missing.row] += missing.n;
56
+ } else if (prob.type === _tableMap.TableProblemTypes.OVERLONG_ROWSPAN) {
57
+ var overlong = prob;
58
+ var _cell = table.nodeAt(overlong.pos);
59
+ if (!_cell) {
60
+ throw new Error("fixTable: unable to find cell at pos ".concat(prob.pos));
61
+ }
62
+ tr.setNodeMarkup(tr.mapping.map(tablePos + 1 + overlong.pos), undefined, _objectSpread(_objectSpread({}, _cell.attrs), {}, {
63
+ rowspan: _cell.attrs.rowspan - overlong.n
64
+ }));
65
+ } else if (prob.type === _tableMap.TableProblemTypes.COLWIDTH_MISMATCH) {
66
+ var _cell2 = table.nodeAt(prob.pos);
67
+ if (!_cell2) {
68
+ throw new Error("fixTable: unable to find cell at pos ".concat(prob.pos));
69
+ }
70
+ tr.setNodeMarkup(tr.mapping.map(tablePos + 1 + prob.pos), undefined, _objectSpread(_objectSpread({}, _cell2.attrs), {}, {
71
+ colwidth: prob.colwidth
72
+ }));
73
+ }
74
+ }
75
+ var first;
76
+ var last;
77
+ for (var _i2 = 0; _i2 < mustAdd.length; _i2++) {
78
+ if (mustAdd[_i2]) {
79
+ if (first == null) {
80
+ first = _i2;
81
+ }
82
+ last = _i2;
83
+ }
84
+ }
85
+ // Add the necessary cells, using a heuristic for whether to add the
86
+ // cells at the start or end of the rows (if it looks like a 'bite'
87
+ // was taken out of the table, add cells at the start of the row
88
+ // after the bite. Otherwise add them at the end).
89
+ for (var _i3 = 0, pos = tablePos + 1; _i3 < map.height; _i3++) {
90
+ var row = table.child(_i3);
91
+ var end = pos + row.nodeSize;
92
+ var add = mustAdd[_i3];
93
+ if (add > 0) {
94
+ var tableNodeType = 'cell';
95
+ if (row.firstChild) {
96
+ tableNodeType = row.firstChild.type.spec.tableRole;
97
+ }
98
+ var nodes = [];
99
+ for (var _j = 0; _j < add; _j++) {
100
+ // Ignored via go/ees005
101
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
102
+ nodes.push((0, _tableNodeTypes.tableNodeTypes)(state.schema)[tableNodeType].createAndFill());
103
+ }
104
+ var side = (_i3 === 0 || first === _i3 - 1) && last === _i3 ? pos + 1 : end - 1;
105
+ tr.insert(tr.mapping.map(side), nodes);
106
+ }
107
+ pos = end;
108
+ }
109
+ return tr.setMeta(_pluginKey.fixTablesKey, {
110
+ fixTables: true
111
+ });
112
+ }