@atlaskit/adf-schema 19.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 (430) hide show
  1. package/CHANGELOG.md +1524 -0
  2. package/LICENSE +13 -0
  3. package/build/tsconfig.json +17 -0
  4. package/dist/cjs/index.js +1089 -0
  5. package/dist/cjs/schema/bitbucket-schema.js +14 -0
  6. package/dist/cjs/schema/confluence-schema.js +21 -0
  7. package/dist/cjs/schema/create-schema.js +354 -0
  8. package/dist/cjs/schema/default-schema.js +52 -0
  9. package/dist/cjs/schema/groups.js +35 -0
  10. package/dist/cjs/schema/index.js +755 -0
  11. package/dist/cjs/schema/inline-nodes.js +20 -0
  12. package/dist/cjs/schema/jira-schema.js +118 -0
  13. package/dist/cjs/schema/marks/alignment.js +39 -0
  14. package/dist/cjs/schema/marks/annotation.js +96 -0
  15. package/dist/cjs/schema/marks/breakout.js +32 -0
  16. package/dist/cjs/schema/marks/code.js +46 -0
  17. package/dist/cjs/schema/marks/confluence-inline-comment.js +30 -0
  18. package/dist/cjs/schema/marks/data-consumer.js +71 -0
  19. package/dist/cjs/schema/marks/em.js +25 -0
  20. package/dist/cjs/schema/marks/indentation.js +32 -0
  21. package/dist/cjs/schema/marks/index.js +189 -0
  22. package/dist/cjs/schema/marks/link.js +128 -0
  23. package/dist/cjs/schema/marks/strike.js +29 -0
  24. package/dist/cjs/schema/marks/strong.js +37 -0
  25. package/dist/cjs/schema/marks/subsup.js +61 -0
  26. package/dist/cjs/schema/marks/text-color.js +93 -0
  27. package/dist/cjs/schema/marks/type-ahead-query.js +31 -0
  28. package/dist/cjs/schema/marks/underline.js +25 -0
  29. package/dist/cjs/schema/marks/unsupported-mark.js +15 -0
  30. package/dist/cjs/schema/marks/unsupported-node-attributes.js +16 -0
  31. package/dist/cjs/schema/nodes/block-card.js +56 -0
  32. package/dist/cjs/schema/nodes/blockquote.js +23 -0
  33. package/dist/cjs/schema/nodes/bodied-extension.js +66 -0
  34. package/dist/cjs/schema/nodes/bullet-list.js +29 -0
  35. package/dist/cjs/schema/nodes/caption.js +27 -0
  36. package/dist/cjs/schema/nodes/code-block.js +160 -0
  37. package/dist/cjs/schema/nodes/confluence-jira-issue.js +54 -0
  38. package/dist/cjs/schema/nodes/confluence-unsupported-block.js +33 -0
  39. package/dist/cjs/schema/nodes/confluence-unsupported-inline.js +34 -0
  40. package/dist/cjs/schema/nodes/date.js +36 -0
  41. package/dist/cjs/schema/nodes/decision-item.js +45 -0
  42. package/dist/cjs/schema/nodes/decision-list.js +45 -0
  43. package/dist/cjs/schema/nodes/doc.js +15 -0
  44. package/dist/cjs/schema/nodes/embed-card.js +62 -0
  45. package/dist/cjs/schema/nodes/emoji.js +73 -0
  46. package/dist/cjs/schema/nodes/expand.js +86 -0
  47. package/dist/cjs/schema/nodes/extension.js +59 -0
  48. package/dist/cjs/schema/nodes/hard-break.js +22 -0
  49. package/dist/cjs/schema/nodes/heading.js +69 -0
  50. package/dist/cjs/schema/nodes/image.js +40 -0
  51. package/dist/cjs/schema/nodes/index.js +539 -0
  52. package/dist/cjs/schema/nodes/inline-card.js +64 -0
  53. package/dist/cjs/schema/nodes/inline-extension.js +54 -0
  54. package/dist/cjs/schema/nodes/layout-column.js +53 -0
  55. package/dist/cjs/schema/nodes/layout-section.js +61 -0
  56. package/dist/cjs/schema/nodes/list-item.js +25 -0
  57. package/dist/cjs/schema/nodes/media-group.js +29 -0
  58. package/dist/cjs/schema/nodes/media-inline.js +11 -0
  59. package/dist/cjs/schema/nodes/media-single.js +101 -0
  60. package/dist/cjs/schema/nodes/media.js +196 -0
  61. package/dist/cjs/schema/nodes/mention.js +90 -0
  62. package/dist/cjs/schema/nodes/nested-expand.js +64 -0
  63. package/dist/cjs/schema/nodes/ordered-list.js +29 -0
  64. package/dist/cjs/schema/nodes/panel.js +85 -0
  65. package/dist/cjs/schema/nodes/paragraph.js +45 -0
  66. package/dist/cjs/schema/nodes/placeholder.js +39 -0
  67. package/dist/cjs/schema/nodes/rule.js +21 -0
  68. package/dist/cjs/schema/nodes/status.js +56 -0
  69. package/dist/cjs/schema/nodes/tableNodes.js +276 -0
  70. package/dist/cjs/schema/nodes/task-item.js +46 -0
  71. package/dist/cjs/schema/nodes/task-list.js +45 -0
  72. package/dist/cjs/schema/nodes/text.js +17 -0
  73. package/dist/cjs/schema/nodes/types/block-content.js +5 -0
  74. package/dist/cjs/schema/nodes/types/extensions.js +5 -0
  75. package/dist/cjs/schema/nodes/types/inline-content.js +5 -0
  76. package/dist/cjs/schema/nodes/types/mark.js +5 -0
  77. package/dist/cjs/schema/nodes/types/non-nestable-block-content.js +5 -0
  78. package/dist/cjs/schema/nodes/types/rich-media-common.js +5 -0
  79. package/dist/cjs/schema/nodes/unknown-block.js +21 -0
  80. package/dist/cjs/schema/nodes/unsupported-block.js +33 -0
  81. package/dist/cjs/schema/nodes/unsupported-inline.js +32 -0
  82. package/dist/cjs/schema/unsupported.js +8 -0
  83. package/dist/cjs/steps/analytics.js +183 -0
  84. package/dist/cjs/steps/set-attrs.js +106 -0
  85. package/dist/cjs/steps/table/add-column.js +453 -0
  86. package/dist/cjs/steps/table/constants.js +13 -0
  87. package/dist/cjs/steps/table/sort-column.js +87 -0
  88. package/dist/cjs/steps/table/types.js +5 -0
  89. package/dist/cjs/steps/table/utils/cell-step.js +233 -0
  90. package/dist/cjs/steps/table/utils/cells-at-column.js +94 -0
  91. package/dist/cjs/steps/table/utils/find-column.js +94 -0
  92. package/dist/cjs/steps/table/utils/get-table-rect-from-doc.js +38 -0
  93. package/dist/cjs/steps/table/utils/side-effects/rows.js +370 -0
  94. package/dist/cjs/steps/table/utils/side-effects/side-effects.js +106 -0
  95. package/dist/cjs/steps/table/utils/side-effects/table.js +126 -0
  96. package/dist/cjs/steps/table/utils/side-effects/types.js +5 -0
  97. package/dist/cjs/steps/table/utils/table-map.js +36 -0
  98. package/dist/cjs/steps/type-ahead.js +134 -0
  99. package/dist/cjs/steps.js +59 -0
  100. package/dist/cjs/utils/colors.js +234 -0
  101. package/dist/cjs/utils/confluence/emoji.js +97 -0
  102. package/dist/cjs/utils/extensions.js +39 -0
  103. package/dist/cjs/utils/index.js +373 -0
  104. package/dist/cjs/utils/parseDOM.js +12 -0
  105. package/dist/cjs/utils/url.js +38 -0
  106. package/dist/cjs/utils/uuid.js +28 -0
  107. package/dist/cjs/version.json +5 -0
  108. package/dist/es2019/index.js +2 -0
  109. package/dist/es2019/schema/bitbucket-schema.js +5 -0
  110. package/dist/es2019/schema/confluence-schema.js +11 -0
  111. package/dist/es2019/schema/create-schema.js +325 -0
  112. package/dist/es2019/schema/default-schema.js +35 -0
  113. package/dist/es2019/schema/groups.js +23 -0
  114. package/dist/es2019/schema/index.js +9 -0
  115. package/dist/es2019/schema/inline-nodes.js +3 -0
  116. package/dist/es2019/schema/jira-schema.js +88 -0
  117. package/dist/es2019/schema/marks/alignment.js +32 -0
  118. package/dist/es2019/schema/marks/annotation.js +80 -0
  119. package/dist/es2019/schema/marks/breakout.js +29 -0
  120. package/dist/es2019/schema/marks/code.js +43 -0
  121. package/dist/es2019/schema/marks/confluence-inline-comment.js +24 -0
  122. package/dist/es2019/schema/marks/data-consumer.js +61 -0
  123. package/dist/es2019/schema/marks/em.js +22 -0
  124. package/dist/es2019/schema/marks/indentation.js +27 -0
  125. package/dist/es2019/schema/marks/index.js +17 -0
  126. package/dist/es2019/schema/marks/link.js +105 -0
  127. package/dist/es2019/schema/marks/strike.js +24 -0
  128. package/dist/es2019/schema/marks/strong.js +40 -0
  129. package/dist/es2019/schema/marks/subsup.js +51 -0
  130. package/dist/es2019/schema/marks/text-color.js +67 -0
  131. package/dist/es2019/schema/marks/type-ahead-query.js +23 -0
  132. package/dist/es2019/schema/marks/underline.js +20 -0
  133. package/dist/es2019/schema/marks/unsupported-mark.js +9 -0
  134. package/dist/es2019/schema/marks/unsupported-node-attributes.js +10 -0
  135. package/dist/es2019/schema/nodes/block-card.js +50 -0
  136. package/dist/es2019/schema/nodes/blockquote.js +17 -0
  137. package/dist/es2019/schema/nodes/bodied-extension.js +58 -0
  138. package/dist/es2019/schema/nodes/bullet-list.js +23 -0
  139. package/dist/es2019/schema/nodes/caption.js +21 -0
  140. package/dist/es2019/schema/nodes/code-block.js +143 -0
  141. package/dist/es2019/schema/nodes/confluence-jira-issue.js +49 -0
  142. package/dist/es2019/schema/nodes/confluence-unsupported-block.js +30 -0
  143. package/dist/es2019/schema/nodes/confluence-unsupported-inline.js +31 -0
  144. package/dist/es2019/schema/nodes/date.js +28 -0
  145. package/dist/es2019/schema/nodes/decision-item.js +37 -0
  146. package/dist/es2019/schema/nodes/decision-list.js +41 -0
  147. package/dist/es2019/schema/nodes/doc.js +7 -0
  148. package/dist/es2019/schema/nodes/embed-card.js +55 -0
  149. package/dist/es2019/schema/nodes/emoji.js +67 -0
  150. package/dist/es2019/schema/nodes/expand.js +73 -0
  151. package/dist/es2019/schema/nodes/extension.js +51 -0
  152. package/dist/es2019/schema/nodes/hard-break.js +16 -0
  153. package/dist/es2019/schema/nodes/heading.js +63 -0
  154. package/dist/es2019/schema/nodes/image.js +37 -0
  155. package/dist/es2019/schema/nodes/index.js +44 -0
  156. package/dist/es2019/schema/nodes/inline-card.js +58 -0
  157. package/dist/es2019/schema/nodes/inline-extension.js +46 -0
  158. package/dist/es2019/schema/nodes/layout-column.js +49 -0
  159. package/dist/es2019/schema/nodes/layout-section.js +56 -0
  160. package/dist/es2019/schema/nodes/list-item.js +20 -0
  161. package/dist/es2019/schema/nodes/media-group.js +23 -0
  162. package/dist/es2019/schema/nodes/media-inline.js +2 -0
  163. package/dist/es2019/schema/nodes/media-single.js +77 -0
  164. package/dist/es2019/schema/nodes/media.js +165 -0
  165. package/dist/es2019/schema/nodes/mention.js +81 -0
  166. package/dist/es2019/schema/nodes/nested-expand.js +58 -0
  167. package/dist/es2019/schema/nodes/ordered-list.js +23 -0
  168. package/dist/es2019/schema/nodes/panel.js +79 -0
  169. package/dist/es2019/schema/nodes/paragraph.js +39 -0
  170. package/dist/es2019/schema/nodes/placeholder.js +33 -0
  171. package/dist/es2019/schema/nodes/rule.js +15 -0
  172. package/dist/es2019/schema/nodes/status.js +54 -0
  173. package/dist/es2019/schema/nodes/tableNodes.js +222 -0
  174. package/dist/es2019/schema/nodes/task-item.js +38 -0
  175. package/dist/es2019/schema/nodes/task-list.js +37 -0
  176. package/dist/es2019/schema/nodes/text.js +7 -0
  177. package/dist/es2019/schema/nodes/types/block-content.js +1 -0
  178. package/dist/es2019/schema/nodes/types/extensions.js +1 -0
  179. package/dist/es2019/schema/nodes/types/inline-content.js +1 -0
  180. package/dist/es2019/schema/nodes/types/mark.js +1 -0
  181. package/dist/es2019/schema/nodes/types/non-nestable-block-content.js +1 -0
  182. package/dist/es2019/schema/nodes/types/rich-media-common.js +1 -0
  183. package/dist/es2019/schema/nodes/unknown-block.js +16 -0
  184. package/dist/es2019/schema/nodes/unsupported-block.js +26 -0
  185. package/dist/es2019/schema/nodes/unsupported-inline.js +25 -0
  186. package/dist/es2019/schema/unsupported.js +1 -0
  187. package/dist/es2019/steps/analytics.js +122 -0
  188. package/dist/es2019/steps/set-attrs.js +57 -0
  189. package/dist/es2019/steps/table/add-column.js +349 -0
  190. package/dist/es2019/steps/table/constants.js +6 -0
  191. package/dist/es2019/steps/table/sort-column.js +41 -0
  192. package/dist/es2019/steps/table/types.js +1 -0
  193. package/dist/es2019/steps/table/utils/cell-step.js +204 -0
  194. package/dist/es2019/steps/table/utils/cells-at-column.js +57 -0
  195. package/dist/es2019/steps/table/utils/find-column.js +86 -0
  196. package/dist/es2019/steps/table/utils/get-table-rect-from-doc.js +30 -0
  197. package/dist/es2019/steps/table/utils/side-effects/rows.js +297 -0
  198. package/dist/es2019/steps/table/utils/side-effects/side-effects.js +81 -0
  199. package/dist/es2019/steps/table/utils/side-effects/table.js +99 -0
  200. package/dist/es2019/steps/table/utils/side-effects/types.js +1 -0
  201. package/dist/es2019/steps/table/utils/table-map.js +19 -0
  202. package/dist/es2019/steps/type-ahead.js +85 -0
  203. package/dist/es2019/steps.js +6 -0
  204. package/dist/es2019/utils/colors.js +148 -0
  205. package/dist/es2019/utils/confluence/emoji.js +83 -0
  206. package/dist/es2019/utils/extensions.js +26 -0
  207. package/dist/es2019/utils/index.js +4 -0
  208. package/dist/es2019/utils/parseDOM.js +1 -0
  209. package/dist/es2019/utils/url.js +19 -0
  210. package/dist/es2019/utils/uuid.js +18 -0
  211. package/dist/es2019/version.json +5 -0
  212. package/dist/esm/index.js +2 -0
  213. package/dist/esm/schema/bitbucket-schema.js +5 -0
  214. package/dist/esm/schema/confluence-schema.js +11 -0
  215. package/dist/esm/schema/create-schema.js +338 -0
  216. package/dist/esm/schema/default-schema.js +36 -0
  217. package/dist/esm/schema/groups.js +23 -0
  218. package/dist/esm/schema/index.js +9 -0
  219. package/dist/esm/schema/inline-nodes.js +5 -0
  220. package/dist/esm/schema/jira-schema.js +88 -0
  221. package/dist/esm/schema/marks/alignment.js +30 -0
  222. package/dist/esm/schema/marks/annotation.js +82 -0
  223. package/dist/esm/schema/marks/breakout.js +25 -0
  224. package/dist/esm/schema/marks/code.js +41 -0
  225. package/dist/esm/schema/marks/confluence-inline-comment.js +22 -0
  226. package/dist/esm/schema/marks/data-consumer.js +63 -0
  227. package/dist/esm/schema/marks/em.js +20 -0
  228. package/dist/esm/schema/marks/indentation.js +23 -0
  229. package/dist/esm/schema/marks/index.js +17 -0
  230. package/dist/esm/schema/marks/link.js +113 -0
  231. package/dist/esm/schema/marks/strike.js +24 -0
  232. package/dist/esm/schema/marks/strong.js +32 -0
  233. package/dist/esm/schema/marks/subsup.js +53 -0
  234. package/dist/esm/schema/marks/text-color.js +78 -0
  235. package/dist/esm/schema/marks/type-ahead-query.js +21 -0
  236. package/dist/esm/schema/marks/underline.js +20 -0
  237. package/dist/esm/schema/marks/unsupported-mark.js +8 -0
  238. package/dist/esm/schema/marks/unsupported-node-attributes.js +9 -0
  239. package/dist/esm/schema/nodes/block-card.js +48 -0
  240. package/dist/esm/schema/nodes/blockquote.js +15 -0
  241. package/dist/esm/schema/nodes/bodied-extension.js +58 -0
  242. package/dist/esm/schema/nodes/bullet-list.js +21 -0
  243. package/dist/esm/schema/nodes/caption.js +19 -0
  244. package/dist/esm/schema/nodes/code-block.js +149 -0
  245. package/dist/esm/schema/nodes/confluence-jira-issue.js +47 -0
  246. package/dist/esm/schema/nodes/confluence-unsupported-block.js +26 -0
  247. package/dist/esm/schema/nodes/confluence-unsupported-inline.js +27 -0
  248. package/dist/esm/schema/nodes/date.js +28 -0
  249. package/dist/esm/schema/nodes/decision-item.js +36 -0
  250. package/dist/esm/schema/nodes/decision-list.js +39 -0
  251. package/dist/esm/schema/nodes/doc.js +7 -0
  252. package/dist/esm/schema/nodes/embed-card.js +54 -0
  253. package/dist/esm/schema/nodes/emoji.js +68 -0
  254. package/dist/esm/schema/nodes/expand.js +75 -0
  255. package/dist/esm/schema/nodes/extension.js +51 -0
  256. package/dist/esm/schema/nodes/hard-break.js +14 -0
  257. package/dist/esm/schema/nodes/heading.js +61 -0
  258. package/dist/esm/schema/nodes/image.js +33 -0
  259. package/dist/esm/schema/nodes/index.js +44 -0
  260. package/dist/esm/schema/nodes/inline-card.js +56 -0
  261. package/dist/esm/schema/nodes/inline-extension.js +46 -0
  262. package/dist/esm/schema/nodes/layout-column.js +45 -0
  263. package/dist/esm/schema/nodes/layout-section.js +52 -0
  264. package/dist/esm/schema/nodes/list-item.js +18 -0
  265. package/dist/esm/schema/nodes/media-group.js +21 -0
  266. package/dist/esm/schema/nodes/media-inline.js +2 -0
  267. package/dist/esm/schema/nodes/media-single.js +84 -0
  268. package/dist/esm/schema/nodes/media.js +174 -0
  269. package/dist/esm/schema/nodes/mention.js +80 -0
  270. package/dist/esm/schema/nodes/nested-expand.js +56 -0
  271. package/dist/esm/schema/nodes/ordered-list.js +21 -0
  272. package/dist/esm/schema/nodes/panel.js +76 -0
  273. package/dist/esm/schema/nodes/paragraph.js +37 -0
  274. package/dist/esm/schema/nodes/placeholder.js +31 -0
  275. package/dist/esm/schema/nodes/rule.js +13 -0
  276. package/dist/esm/schema/nodes/status.js +51 -0
  277. package/dist/esm/schema/nodes/tableNodes.js +238 -0
  278. package/dist/esm/schema/nodes/task-item.js +37 -0
  279. package/dist/esm/schema/nodes/task-list.js +35 -0
  280. package/dist/esm/schema/nodes/text.js +9 -0
  281. package/dist/esm/schema/nodes/types/block-content.js +1 -0
  282. package/dist/esm/schema/nodes/types/extensions.js +1 -0
  283. package/dist/esm/schema/nodes/types/inline-content.js +1 -0
  284. package/dist/esm/schema/nodes/types/mark.js +1 -0
  285. package/dist/esm/schema/nodes/types/non-nestable-block-content.js +1 -0
  286. package/dist/esm/schema/nodes/types/rich-media-common.js +1 -0
  287. package/dist/esm/schema/nodes/unknown-block.js +14 -0
  288. package/dist/esm/schema/nodes/unsupported-block.js +26 -0
  289. package/dist/esm/schema/nodes/unsupported-inline.js +25 -0
  290. package/dist/esm/schema/unsupported.js +1 -0
  291. package/dist/esm/steps/analytics.js +166 -0
  292. package/dist/esm/steps/set-attrs.js +89 -0
  293. package/dist/esm/steps/table/add-column.js +431 -0
  294. package/dist/esm/steps/table/constants.js +6 -0
  295. package/dist/esm/steps/table/sort-column.js +69 -0
  296. package/dist/esm/steps/table/types.js +1 -0
  297. package/dist/esm/steps/table/utils/cell-step.js +216 -0
  298. package/dist/esm/steps/table/utils/cells-at-column.js +84 -0
  299. package/dist/esm/steps/table/utils/find-column.js +87 -0
  300. package/dist/esm/steps/table/utils/get-table-rect-from-doc.js +30 -0
  301. package/dist/esm/steps/table/utils/side-effects/rows.js +360 -0
  302. package/dist/esm/steps/table/utils/side-effects/side-effects.js +93 -0
  303. package/dist/esm/steps/table/utils/side-effects/table.js +113 -0
  304. package/dist/esm/steps/table/utils/side-effects/types.js +1 -0
  305. package/dist/esm/steps/table/utils/table-map.js +19 -0
  306. package/dist/esm/steps/type-ahead.js +117 -0
  307. package/dist/esm/steps.js +6 -0
  308. package/dist/esm/utils/colors.js +160 -0
  309. package/dist/esm/utils/confluence/emoji.js +85 -0
  310. package/dist/esm/utils/extensions.js +27 -0
  311. package/dist/esm/utils/index.js +4 -0
  312. package/dist/esm/utils/parseDOM.js +3 -0
  313. package/dist/esm/utils/url.js +21 -0
  314. package/dist/esm/utils/uuid.js +18 -0
  315. package/dist/esm/version.json +5 -0
  316. package/dist/json-schema/v1/full.json +2536 -0
  317. package/dist/json-schema/v1/stage-0.json +2737 -0
  318. package/dist/types/index.d.ts +4 -0
  319. package/dist/types/schema/bitbucket-schema.d.ts +2 -0
  320. package/dist/types/schema/confluence-schema.d.ts +3 -0
  321. package/dist/types/schema/create-schema.d.ts +31 -0
  322. package/dist/types/schema/default-schema.d.ts +7 -0
  323. package/dist/types/schema/groups.d.ts +6 -0
  324. package/dist/types/schema/index.d.ts +11 -0
  325. package/dist/types/schema/inline-nodes.d.ts +1 -0
  326. package/dist/types/schema/jira-schema.d.ts +26 -0
  327. package/dist/types/schema/marks/alignment.d.ts +16 -0
  328. package/dist/types/schema/marks/annotation.d.ts +32 -0
  329. package/dist/types/schema/marks/breakout.d.ts +12 -0
  330. package/dist/types/schema/marks/code.d.ts +8 -0
  331. package/dist/types/schema/marks/confluence-inline-comment.d.ts +12 -0
  332. package/dist/types/schema/marks/data-consumer.d.ts +41 -0
  333. package/dist/types/schema/marks/em.d.ts +8 -0
  334. package/dist/types/schema/marks/indentation.d.ts +16 -0
  335. package/dist/types/schema/marks/index.d.ts +30 -0
  336. package/dist/types/schema/marks/link.d.ts +32 -0
  337. package/dist/types/schema/marks/strike.d.ts +8 -0
  338. package/dist/types/schema/marks/strong.d.ts +8 -0
  339. package/dist/types/schema/marks/subsup.d.ts +15 -0
  340. package/dist/types/schema/marks/text-color.d.ts +21 -0
  341. package/dist/types/schema/marks/type-ahead-query.d.ts +2 -0
  342. package/dist/types/schema/marks/underline.d.ts +8 -0
  343. package/dist/types/schema/marks/unsupported-mark.d.ts +2 -0
  344. package/dist/types/schema/marks/unsupported-node-attributes.d.ts +2 -0
  345. package/dist/types/schema/nodes/block-card.d.ts +19 -0
  346. package/dist/types/schema/nodes/blockquote.d.ts +14 -0
  347. package/dist/types/schema/nodes/bodied-extension.d.ts +27 -0
  348. package/dist/types/schema/nodes/bullet-list.d.ts +14 -0
  349. package/dist/types/schema/nodes/caption.d.ts +21 -0
  350. package/dist/types/schema/nodes/code-block.d.ts +31 -0
  351. package/dist/types/schema/nodes/confluence-jira-issue.d.ts +2 -0
  352. package/dist/types/schema/nodes/confluence-unsupported-block.d.ts +2 -0
  353. package/dist/types/schema/nodes/confluence-unsupported-inline.d.ts +2 -0
  354. package/dist/types/schema/nodes/date.d.ts +14 -0
  355. package/dist/types/schema/nodes/decision-item.d.ts +17 -0
  356. package/dist/types/schema/nodes/decision-list.d.ts +18 -0
  357. package/dist/types/schema/nodes/doc.d.ts +18 -0
  358. package/dist/types/schema/nodes/embed-card.d.ts +15 -0
  359. package/dist/types/schema/nodes/emoji.d.ts +14 -0
  360. package/dist/types/schema/nodes/expand.d.ts +33 -0
  361. package/dist/types/schema/nodes/extension.d.ts +21 -0
  362. package/dist/types/schema/nodes/hard-break.d.ts +11 -0
  363. package/dist/types/schema/nodes/heading.d.ts +36 -0
  364. package/dist/types/schema/nodes/image.d.ts +2 -0
  365. package/dist/types/schema/nodes/index.d.ts +93 -0
  366. package/dist/types/schema/nodes/inline-card.d.ts +19 -0
  367. package/dist/types/schema/nodes/inline-extension.d.ts +21 -0
  368. package/dist/types/schema/nodes/layout-column.d.ts +21 -0
  369. package/dist/types/schema/nodes/layout-section.d.ts +44 -0
  370. package/dist/types/schema/nodes/list-item.d.ts +20 -0
  371. package/dist/types/schema/nodes/media-group.d.ts +14 -0
  372. package/dist/types/schema/nodes/media-inline.d.ts +16 -0
  373. package/dist/types/schema/nodes/media-single.d.ts +59 -0
  374. package/dist/types/schema/nodes/media.d.ts +60 -0
  375. package/dist/types/schema/nodes/mention.d.ts +26 -0
  376. package/dist/types/schema/nodes/nested-expand.d.ts +27 -0
  377. package/dist/types/schema/nodes/ordered-list.d.ts +20 -0
  378. package/dist/types/schema/nodes/panel.d.ts +46 -0
  379. package/dist/types/schema/nodes/paragraph.d.ts +37 -0
  380. package/dist/types/schema/nodes/placeholder.d.ts +11 -0
  381. package/dist/types/schema/nodes/rule.d.ts +8 -0
  382. package/dist/types/schema/nodes/status.d.ts +20 -0
  383. package/dist/types/schema/nodes/tableNodes.d.ts +111 -0
  384. package/dist/types/schema/nodes/task-item.d.ts +17 -0
  385. package/dist/types/schema/nodes/task-list.d.ts +21 -0
  386. package/dist/types/schema/nodes/text.d.ts +15 -0
  387. package/dist/types/schema/nodes/types/block-content.d.ts +22 -0
  388. package/dist/types/schema/nodes/types/extensions.d.ts +34 -0
  389. package/dist/types/schema/nodes/types/inline-content.d.ts +32 -0
  390. package/dist/types/schema/nodes/types/mark.d.ts +15 -0
  391. package/dist/types/schema/nodes/types/non-nestable-block-content.d.ts +20 -0
  392. package/dist/types/schema/nodes/types/rich-media-common.d.ts +9 -0
  393. package/dist/types/schema/nodes/unknown-block.d.ts +3 -0
  394. package/dist/types/schema/nodes/unsupported-block.d.ts +2 -0
  395. package/dist/types/schema/nodes/unsupported-inline.d.ts +2 -0
  396. package/dist/types/schema/unsupported.d.ts +1 -0
  397. package/dist/types/steps/analytics.d.ts +59 -0
  398. package/dist/types/steps/set-attrs.d.ts +23 -0
  399. package/dist/types/steps/table/add-column.d.ts +88 -0
  400. package/dist/types/steps/table/constants.d.ts +4 -0
  401. package/dist/types/steps/table/sort-column.d.ts +18 -0
  402. package/dist/types/steps/table/types.d.ts +39 -0
  403. package/dist/types/steps/table/utils/cell-step.d.ts +47 -0
  404. package/dist/types/steps/table/utils/cells-at-column.d.ts +20 -0
  405. package/dist/types/steps/table/utils/find-column.d.ts +8 -0
  406. package/dist/types/steps/table/utils/get-table-rect-from-doc.d.ts +8 -0
  407. package/dist/types/steps/table/utils/side-effects/rows.d.ts +25 -0
  408. package/dist/types/steps/table/utils/side-effects/side-effects.d.ts +15 -0
  409. package/dist/types/steps/table/utils/side-effects/table.d.ts +16 -0
  410. package/dist/types/steps/table/utils/side-effects/types.d.ts +33 -0
  411. package/dist/types/steps/table/utils/table-map.d.ts +6 -0
  412. package/dist/types/steps/type-ahead.d.ts +35 -0
  413. package/dist/types/steps.d.ts +8 -0
  414. package/dist/types/utils/colors.d.ts +71 -0
  415. package/dist/types/utils/confluence/emoji.d.ts +50 -0
  416. package/dist/types/utils/extensions.d.ts +3 -0
  417. package/dist/types/utils/index.d.ts +6 -0
  418. package/dist/types/utils/parseDOM.d.ts +1 -0
  419. package/dist/types/utils/url.d.ts +15 -0
  420. package/dist/types/utils/uuid.d.ts +5 -0
  421. package/document-fixtures/unsupported-content.json +526 -0
  422. package/json-schema/v1/full.json +2536 -0
  423. package/json-schema/v1/stage-0.json +2737 -0
  424. package/package.json +63 -0
  425. package/steps/package.json +7 -0
  426. package/test-helpers/html-helpers.ts +40 -0
  427. package/test-helpers/matches.ts +8 -0
  428. package/test-helpers/schema-builder.ts +329 -0
  429. package/test-helpers/schema.ts +79 -0
  430. package/tsconfig.json +18 -0
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SortOrder = void 0;
7
+ var SortOrder;
8
+ exports.SortOrder = SortOrder;
9
+
10
+ (function (SortOrder) {
11
+ SortOrder["ASC"] = "asc";
12
+ SortOrder["DESC"] = "desc";
13
+ })(SortOrder || (exports.SortOrder = SortOrder = {}));
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.TableSortStep = exports.tableSortingStepType = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _prosemirrorModel = require("prosemirror-model");
21
+
22
+ var _prosemirrorTransform = require("prosemirror-transform");
23
+
24
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
25
+
26
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
27
+
28
+ var tableSortingStepType = 'atlaskit-table-sorting-ordering';
29
+ exports.tableSortingStepType = tableSortingStepType;
30
+
31
+ var TableSortStep = /*#__PURE__*/function (_Step) {
32
+ (0, _inherits2.default)(TableSortStep, _Step);
33
+
34
+ var _super = _createSuper(TableSortStep);
35
+
36
+ function TableSortStep(pos, prev, next) {
37
+ var _this;
38
+
39
+ (0, _classCallCheck2.default)(this, TableSortStep);
40
+ _this = _super.call(this);
41
+ _this.prev = prev;
42
+ _this.next = next;
43
+ _this.pos = pos;
44
+ return _this;
45
+ }
46
+
47
+ (0, _createClass2.default)(TableSortStep, [{
48
+ key: "invert",
49
+ value: function invert() {
50
+ return new TableSortStep(this.pos, this.next, this.prev);
51
+ }
52
+ }, {
53
+ key: "apply",
54
+ value: function apply(doc) {
55
+ return _prosemirrorTransform.StepResult.ok(doc);
56
+ }
57
+ }, {
58
+ key: "map",
59
+ value: function map() {
60
+ return null;
61
+ }
62
+ }, {
63
+ key: "getMap",
64
+ value: function getMap() {
65
+ return new _prosemirrorTransform.StepMap([0, 0, 0]);
66
+ }
67
+ }, {
68
+ key: "toJSON",
69
+ value: function toJSON() {
70
+ return {
71
+ stepType: tableSortingStepType
72
+ };
73
+ }
74
+ }], [{
75
+ key: "fromJSON",
76
+ value: function fromJSON() {
77
+ return new _prosemirrorTransform.ReplaceStep(0, 0, _prosemirrorModel.Slice.empty);
78
+ }
79
+ }]);
80
+ return TableSortStep;
81
+ }(_prosemirrorTransform.Step);
82
+ /** Register this step with Prosemirror */
83
+
84
+
85
+ exports.TableSortStep = TableSortStep;
86
+
87
+ _prosemirrorTransform.Step.jsonID(tableSortingStepType, TableSortStep);
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.applyCellStep = applyCellStep;
9
+ exports.getMapFromCellStep = getMapFromCellStep;
10
+ exports.invertCellStep = invertCellStep;
11
+ exports.createCellStep = createCellStep;
12
+
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+
15
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
+
17
+ var _utils = require("@atlaskit/editor-tables/utils");
18
+
19
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
20
+
21
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
22
+
23
+ var EmptyCellNodeSize = 4;
24
+
25
+ function calculateRowsToSkip(attrs) {
26
+ if (attrs && attrs.rowspan) {
27
+ return attrs.rowspan - 1;
28
+ }
29
+
30
+ return 0;
31
+ }
32
+ /**
33
+ * Given a cell step, this function has to do the specific transformation to executed that step.
34
+ * It returns the applied cellStep and rows that needs to skip (because it was already handled).
35
+ * @param tr
36
+ * @param tableRect
37
+ * @param cell
38
+ * @param cellStep
39
+ * @param isDelete
40
+ * @param column
41
+ */
42
+
43
+
44
+ function applyCellStep(tr, tableRect, cell, cellStep, isDelete, column) {
45
+ // Apply the merge actions,
46
+ if (cellStep.mergeWith !== undefined) {
47
+ var cellNode = tr.doc.nodeAt(tr.mapping.map(cellStep.mergeWith));
48
+ var columns = column - tableRect.map.colCount(cellStep.mergeWith - tableRect.tableStart);
49
+ var cellAttrs = isDelete ? (0, _utils.removeColSpan)(cellNode.attrs, columns) : (0, _utils.addColSpan)(cellNode.attrs, columns);
50
+
51
+ if (cellAttrs.colspan > 0) {
52
+ // When colspan is 0 should remove the cell
53
+ tr.setNodeMarkup(tr.mapping.map(cellStep.mergeWith), undefined, cellAttrs);
54
+ return {
55
+ tr: tr,
56
+ skipRows: calculateRowsToSkip(cellAttrs),
57
+ cellStep: cellStep
58
+ };
59
+ } // When the new colspan is 0, I need to change the operation to a delete operation
60
+ // Update cellStep with the proper data
61
+
62
+
63
+ cellStep.from = cellStep.mergeWith;
64
+ cellStep.to = cellStep.from + cellNode.nodeSize;
65
+ cellStep.mergeWith = undefined;
66
+ }
67
+
68
+ var skipRows = 0; // Modify temporary document
69
+
70
+ if (isDelete) {
71
+ var _cellNode = tr.doc.nodeAt(tr.mapping.map(cellStep.from));
72
+
73
+ skipRows = calculateRowsToSkip(_cellNode.attrs);
74
+ tr.delete(tr.mapping.map(cellStep.from), tr.mapping.map(cellStep.to));
75
+ } else {
76
+ if (cellStep.newCell) {
77
+ tr.insert(tr.mapping.map(cellStep.from), cellStep.newCell);
78
+ skipRows = calculateRowsToSkip(cellStep.newCell.attrs);
79
+ } else {
80
+ tr.insert(tr.mapping.map(cellStep.from), cell.type.createAndFill());
81
+ }
82
+ }
83
+
84
+ return {
85
+ tr: tr,
86
+ skipRows: skipRows,
87
+ cellStep: cellStep
88
+ };
89
+ }
90
+ /**
91
+ * Given a cell step, this functions return un StepMap representing this action.
92
+ * [position, oldSize, newSize]
93
+ * @param cellStep
94
+ * @param isDelete
95
+ */
96
+
97
+
98
+ function getMapFromCellStep(cellStep, isDelete) {
99
+ if (cellStep.mergeWith !== undefined) {
100
+ return [cellStep.mergeWith, 1, 1];
101
+ }
102
+
103
+ if (isDelete) {
104
+ return [cellStep.from, cellStep.to - cellStep.from, 0];
105
+ } else {
106
+ if (cellStep.newCell) {
107
+ return [cellStep.from, 0, cellStep.newCell.nodeSize];
108
+ }
109
+
110
+ return [cellStep.from, 0, EmptyCellNodeSize];
111
+ }
112
+ }
113
+ /**
114
+ * Helper to calculate the offset of the inverted cells.
115
+ * When you delete consecutive rows in a single step, the position in the generated document
116
+ * are skipped by the all the changes except your own. (StepMap.map is not valid)
117
+ * @param map
118
+ * @param cellStep
119
+ * @param isDelete
120
+ */
121
+
122
+
123
+ function getOffset(map, cellStep, isDelete) {
124
+ if (isDelete) {
125
+ return map.map(cellStep.from) - cellStep.from;
126
+ }
127
+
128
+ var _getMapFromCellStep = getMapFromCellStep(cellStep, isDelete),
129
+ _getMapFromCellStep2 = (0, _slicedToArray2.default)(_getMapFromCellStep, 3),
130
+ oldSize = _getMapFromCellStep2[1],
131
+ newSize = _getMapFromCellStep2[2];
132
+
133
+ return map.map(cellStep.from) - cellStep.from - (newSize - oldSize);
134
+ }
135
+ /**
136
+ * Given a cell step, this function invert that step.
137
+ * @param doc
138
+ * @param getTableRectAndColumn
139
+ * @param cellStep
140
+ * @param isDelete
141
+ * @param stepMap
142
+ */
143
+
144
+
145
+ function invertCellStep(doc, getTableRectAndColumn, cellStep, isDelete, stepMap) {
146
+ /**
147
+ * We need a correct map when a cell is added
148
+ * We need the normal map position minus the size of the cell you added it. Why?
149
+ * Having a table 3x3 and we add a new column at 2 creates this ranges
150
+ * [
151
+ * 10, 0, 4,
152
+ * 20, 0, 4,
153
+ * 30, 0, 4,
154
+ * ]
155
+ * Where:
156
+ * * [10, 20, 30] are the original cell positions where we add the cells
157
+ * * [0, 0, 0] are the old size. We are adding new cells, so it's always zero
158
+ * * [4, 4, 4] are the new size. In this case, we are adding empty cell and has size 4, this will be different for prefill cells.
159
+ * In the document generated the cells that I want to delete (if I invert this step) are [10, 24, 38]
160
+ * this is calculated in the given way
161
+ * * Map the position using this step mapping function, this will return the cell in the next column
162
+ * * Remove the diff (4 - 0 in this case) of the current position.
163
+ * For a delete action this not happen, it will always return the right value
164
+ */
165
+ var offset = getOffset(stepMap, cellStep, isDelete);
166
+
167
+ var newCellStepInfo = _objectSpread(_objectSpread({}, cellStep), {}, {
168
+ // Map the position to position of the generated document
169
+ from: cellStep.from + offset,
170
+ to: cellStep.to + offset
171
+ });
172
+
173
+ if (cellStep.mergeWith !== undefined) {
174
+ newCellStepInfo.mergeWith = cellStep.mergeWith + offset;
175
+ }
176
+
177
+ if (isDelete) {
178
+ // Add the removed cell as the new cell of the inverted step
179
+ var removedCell = doc.nodeAt(cellStep.from);
180
+ newCellStepInfo.newCell = removedCell.copy(removedCell.content); // When we delete a column we can end in a position that doesnt represent the right column.
181
+ // This only happens on merged cell that ends in the deleted column.
182
+ // We need to remap this position to the "next" cell (AKA cellStep.to)
183
+
184
+ var _getTableRectAndColum = getTableRectAndColumn(),
185
+ column = _getTableRectAndColum.column,
186
+ rect = _getTableRectAndColum.rect;
187
+
188
+ if (column < rect.map.width) {
189
+ var isAtTheEnd = rect.map.colCount(cellStep.from - rect.tableStart) + removedCell.attrs.colspan - 1 === column;
190
+
191
+ if (cellStep.mergeWith !== undefined && isAtTheEnd) {
192
+ newCellStepInfo.mergeWith = newCellStepInfo.from;
193
+ newCellStepInfo.from = newCellStepInfo.to;
194
+ }
195
+ }
196
+ }
197
+
198
+ return newCellStepInfo;
199
+ }
200
+ /**
201
+ * Create a cell step based on the current cell and operation (add/delete)
202
+ * @param cell
203
+ * @param column
204
+ * @param isDelete
205
+ * @param previousCellStep
206
+ */
207
+
208
+
209
+ function createCellStep(cell, column, isDelete, previousCellStep) {
210
+ var newCellStepInfo = {
211
+ from: cell.from,
212
+ to: cell.to
213
+ };
214
+
215
+ if (cell.hasMergedCells) {
216
+ // Check what column has to merge
217
+ if (column !== cell.col || isDelete) {
218
+ newCellStepInfo.mergeWith = cell.from;
219
+ }
220
+ }
221
+
222
+ if (previousCellStep) {
223
+ if (previousCellStep.mergeWith !== undefined) {
224
+ newCellStepInfo.mergeWith = previousCellStep.mergeWith;
225
+ }
226
+
227
+ if (previousCellStep.newCell) {
228
+ newCellStepInfo.newCell = previousCellStep.newCell;
229
+ }
230
+ }
231
+
232
+ return newCellStepInfo;
233
+ }
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.cellsAtColumn = cellsAtColumn;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _utils = require("@atlaskit/editor-tables/utils");
13
+
14
+ var _tableMap = require("./table-map");
15
+
16
+ var _marked = /*#__PURE__*/_regenerator.default.mark(cellsAtColumn);
17
+
18
+ /**
19
+ * Helper to have a consistent way to iterate for all the cells in a column.
20
+ * You can skip rows by passing the rows to skipped in the next arguments.
21
+ * For example: `iter.next(1)` to skip the next row
22
+ * @param rect
23
+ * @param col
24
+ */
25
+ function cellsAtColumn(rect, col) {
26
+ var map, tableStart, table, refColumn, row, index, pos, hasMergedCells, type, cell, cellInfo, skippedRows;
27
+ return _regenerator.default.wrap(function cellsAtColumn$(_context) {
28
+ while (1) {
29
+ switch (_context.prev = _context.next) {
30
+ case 0:
31
+ map = rect.map, tableStart = rect.tableStart, table = rect.table;
32
+ refColumn = col > 0 ? -1 : 0;
33
+
34
+ if ((0, _utils.columnIsHeader)(map, table, col + refColumn)) {
35
+ refColumn = col === 0 || col === map.width ? null : 0;
36
+ }
37
+
38
+ row = 0;
39
+
40
+ case 4:
41
+ if (!(row < map.height)) {
42
+ _context.next = 20;
43
+ break;
44
+ }
45
+
46
+ index = (0, _tableMap.getCellIndex)(rect.map, row, col);
47
+ pos = map.map[index]; // We only consider to has merged cell to the first cell in a rowspan.
48
+
49
+ hasMergedCells = (0, _tableMap.hasMergedColumns)(rect.map, row, col) && (0, _tableMap.isRootRow)(rect.map, row, col); // If this position falls inside a col-spanning cell
50
+
51
+ type = refColumn == null ? (0, _utils.tableNodeTypes)(table.type.schema).cell : table.nodeAt(map.map[index + refColumn]).type;
52
+
53
+ if (!hasMergedCells) {
54
+ pos = map.positionAt(row, col, table);
55
+ }
56
+
57
+ cell = table.nodeAt(pos);
58
+ cellInfo = {
59
+ from: tableStart + pos,
60
+ to: tableStart + pos,
61
+ row: row,
62
+ col: hasMergedCells ? map.colCount(pos) : col,
63
+ type: type,
64
+ hasMergedCells: hasMergedCells
65
+ };
66
+
67
+ if (cell) {
68
+ cellInfo.attrs = cell.attrs;
69
+ cellInfo.to = tableStart + pos + cell.nodeSize;
70
+ } // We let the consumer to pass the rows that we want to skip
71
+
72
+
73
+ _context.next = 15;
74
+ return cellInfo;
75
+
76
+ case 15:
77
+ skippedRows = _context.sent;
78
+
79
+ if (skippedRows && skippedRows > 0) {
80
+ row += skippedRows;
81
+ }
82
+
83
+ case 17:
84
+ row++;
85
+ _context.next = 4;
86
+ break;
87
+
88
+ case 20:
89
+ case "end":
90
+ return _context.stop();
91
+ }
92
+ }
93
+ }, _marked);
94
+ }
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findColumn = findColumn;
7
+
8
+ /**
9
+ * Try to find the right column based on the cell steps in column info..
10
+ * @param columnInfo - Map of cell positions sorted from lower to greather
11
+ * @param rect - map rect
12
+ */
13
+ function findColumn(columnInfo, rect) {
14
+ /**
15
+ * Algorithm explained
16
+ * Given a table like this:
17
+ * | 5 | 10 |
18
+ * | 15 | 20 |
19
+ * | 25 | 30 | 35 |
20
+ * Represented by a table map like this:
21
+ * rect.map = [5, 10, 10,
22
+ * 15, 15, 20,
23
+ * 25, 30, 35]
24
+ * And a have this inputs:
25
+ * columnInfo[].from = [10, 15, 30]
26
+ *
27
+ * Algorithm:
28
+ * * Initial state
29
+ * start = 0;
30
+ * end = 2 (rect.width - 1 === 3 - 1)
31
+ * * Iterate until find first cell position
32
+ * start = 1
33
+ * end = 2 (min(start column + colspan - 1, start column + end column))
34
+ * * Iterate until find second cell position
35
+ * start = 1
36
+ * end = 1
37
+ * * Start === end return 1
38
+ */
39
+ // Initial range (start and end column) to search for each row
40
+ var start = 0,
41
+ end = rect.map.width - 1;
42
+ var iter = columnInfo.values();
43
+ var next = iter.next(); // Iterate for each row
44
+
45
+ for (var row = 0; row < rect.map.height; row++) {
46
+ if (next.done) {
47
+ break;
48
+ } // Iterate for the column. Starting with the current start range
49
+
50
+
51
+ for (var col = start; col <= end; col++) {
52
+ var i = row * rect.map.width + col;
53
+ var cell = rect.map.map[i];
54
+ var cellInfo = next.value.from - rect.tableStart; // When cell is found update range with the new values
55
+
56
+ if (cell === cellInfo) {
57
+ start = col; // Start column will be the current column
58
+ // Try to find the end column. End column will be different that start when has merged cells.
59
+
60
+ var endIndex = end - start + i;
61
+
62
+ for (var j = i; j <= endIndex; j++) {
63
+ if (rect.map.map[j] !== cell) {
64
+ break;
65
+ } // merged columns
66
+
67
+
68
+ end = start + j - i; // Update the end column with the new position
69
+ }
70
+
71
+ if (start === end) {
72
+ // We found the right column only when start and end columns are the same.
73
+ return start;
74
+ }
75
+
76
+ next = iter.next();
77
+ break;
78
+ } // Sometimes I want to find a column at the end of the table (It doesn't exist, but we can add a new cell there).
79
+ // This is represented by the end position of the last cell in the column.
80
+ // In this case return, table width
81
+
82
+
83
+ if (col === rect.map.width - 1) {
84
+ var cellNode = rect.table.nodeAt(cell);
85
+
86
+ if (cell + cellNode.nodeSize === cellInfo) {
87
+ return rect.map.width;
88
+ }
89
+ }
90
+ }
91
+ }
92
+
93
+ return null;
94
+ }