@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,80 @@
1
+ export var USER_TYPES;
2
+
3
+ (function (USER_TYPES) {
4
+ USER_TYPES["DEFAULT"] = "DEFAULT";
5
+ USER_TYPES["SPECIAL"] = "SPECIAL";
6
+ USER_TYPES["APP"] = "APP";
7
+ })(USER_TYPES || (USER_TYPES = {}));
8
+
9
+ export var mention = {
10
+ inline: true,
11
+ group: 'inline',
12
+ selectable: true,
13
+ attrs: {
14
+ id: {
15
+ default: ''
16
+ },
17
+ text: {
18
+ default: ''
19
+ },
20
+ accessLevel: {
21
+ default: ''
22
+ },
23
+ userType: {
24
+ default: null
25
+ }
26
+ },
27
+ parseDOM: [{
28
+ tag: 'span[data-mention-id]',
29
+ getAttrs: function getAttrs(domNode) {
30
+ var dom = domNode;
31
+ var attrs = {
32
+ id: dom.getAttribute('data-mention-id') || mention.attrs.id.default,
33
+ text: dom.textContent || mention.attrs.text.default,
34
+ accessLevel: dom.getAttribute('data-access-level') || mention.attrs.accessLevel.default
35
+ };
36
+ var userType = dom.getAttribute('data-user-type');
37
+
38
+ if (USER_TYPES[userType]) {
39
+ attrs.userType = userType;
40
+ }
41
+
42
+ return attrs;
43
+ }
44
+ }],
45
+ toDOM: function toDOM(node) {
46
+ var _node$attrs = node.attrs,
47
+ id = _node$attrs.id,
48
+ accessLevel = _node$attrs.accessLevel,
49
+ text = _node$attrs.text,
50
+ userType = _node$attrs.userType;
51
+ var attrs = {
52
+ 'data-mention-id': id,
53
+ 'data-access-level': accessLevel,
54
+ contenteditable: 'false'
55
+ };
56
+
57
+ if (userType) {
58
+ attrs['data-user-type'] = userType;
59
+ }
60
+
61
+ return ['span', attrs, text];
62
+ }
63
+ };
64
+
65
+ var isOptional = function isOptional(key) {
66
+ return ['userType'].indexOf(key) > -1;
67
+ };
68
+
69
+ export var toJSON = function toJSON(node) {
70
+ return {
71
+ attrs: Object.keys(node.attrs).reduce(function (obj, key) {
72
+ if (isOptional(key) && !node.attrs[key]) {
73
+ return obj;
74
+ }
75
+
76
+ obj[key] = node.attrs[key];
77
+ return obj;
78
+ }, {})
79
+ };
80
+ };
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @name nestedExpand_content
3
+ * @minItems 1
4
+ * @allowUnsupportedBlock true
5
+ */
6
+
7
+ /**
8
+ * @name nestedExpand_node
9
+ */
10
+
11
+ /**
12
+ * @name nestedExpand_with_no_marks_node
13
+ */
14
+ export var nestedExpand = {
15
+ inline: false,
16
+ marks: 'link unsupportedMark unsupportedNodeAttribute',
17
+ content: '(paragraph | heading | mediaSingle | mediaGroup | unsupportedBlock)+',
18
+ isolating: true,
19
+ selectable: true,
20
+ attrs: {
21
+ title: {
22
+ default: ''
23
+ },
24
+ __expanded: {
25
+ default: true
26
+ }
27
+ },
28
+ parseDOM: [{
29
+ context: 'nestedExpand//',
30
+ tag: '[data-node-type="nestedExpand"]',
31
+ skip: true
32
+ }, {
33
+ tag: '[data-node-type="nestedExpand"] button',
34
+ ignore: true
35
+ }, {
36
+ tag: '[data-node-type="expand"] button',
37
+ ignore: true
38
+ }, {
39
+ tag: 'div[data-node-type="nestedExpand"]',
40
+ getAttrs: function getAttrs(domNode) {
41
+ var dom = domNode;
42
+ return {
43
+ title: dom.getAttribute('data-title'),
44
+ __expanded: true
45
+ };
46
+ }
47
+ }],
48
+ toDOM: function toDOM(node) {
49
+ var attrs = {
50
+ 'data-node-type': 'nestedExpand',
51
+ 'data-title': node.attrs.title,
52
+ 'data-expanded': node.attrs.__expanded
53
+ };
54
+ return ['div', attrs, 0];
55
+ }
56
+ };
@@ -0,0 +1,21 @@
1
+ // eslint-disable-next-line import/no-cycle
2
+
3
+ /**
4
+ * @name orderedList_node
5
+ */
6
+ export var orderedListSelector = '.ak-ol';
7
+ export var orderedList = {
8
+ group: 'block',
9
+ content: 'listItem+',
10
+ marks: 'unsupportedMark unsupportedNodeAttribute',
11
+ selectable: false,
12
+ parseDOM: [{
13
+ tag: 'ol'
14
+ }],
15
+ toDOM: function toDOM() {
16
+ var attrs = {
17
+ class: orderedListSelector.substr(1)
18
+ };
19
+ return ['ol', attrs, 0];
20
+ }
21
+ };
@@ -0,0 +1,76 @@
1
+ export var PanelType;
2
+
3
+ (function (PanelType) {
4
+ PanelType["INFO"] = "info";
5
+ PanelType["NOTE"] = "note";
6
+ PanelType["TIP"] = "tip";
7
+ PanelType["WARNING"] = "warning";
8
+ PanelType["ERROR"] = "error";
9
+ PanelType["SUCCESS"] = "success";
10
+ PanelType["CUSTOM"] = "custom";
11
+ })(PanelType || (PanelType = {}));
12
+
13
+ //TODO: ED-10445 rename to panel and merge with the other panel node spec, after emoji panels moved to full schema
14
+ export var customPanel = {
15
+ group: 'block',
16
+ content: '(paragraph | heading | bulletList | orderedList | blockCard | unsupportedBlock)+',
17
+ marks: 'unsupportedMark unsupportedNodeAttribute',
18
+ attrs: {
19
+ panelType: {
20
+ default: 'info'
21
+ },
22
+ panelIcon: {
23
+ default: null
24
+ },
25
+ panelColor: {
26
+ default: null
27
+ }
28
+ },
29
+ parseDOM: [{
30
+ tag: 'div[data-panel-type]',
31
+ getAttrs: function getAttrs(dom) {
32
+ return {
33
+ panelType: dom.getAttribute('data-panel-type'),
34
+ panelIcon: dom.getAttribute('data-panel-icon'),
35
+ panelColor: dom.getAttribute('data-panel-color')
36
+ };
37
+ }
38
+ }],
39
+ toDOM: function toDOM(node) {
40
+ var _node$attrs = node.attrs,
41
+ panelType = _node$attrs.panelType,
42
+ panelIcon = _node$attrs.panelIcon,
43
+ panelColor = _node$attrs.panelColor;
44
+ var attrs = {
45
+ 'data-panel-type': panelType,
46
+ 'data-panel-icon': panelIcon,
47
+ 'data-panel-color': panelColor
48
+ };
49
+ return ['div', attrs, ['div', {}, 0]];
50
+ }
51
+ };
52
+ export var panel = {
53
+ group: 'block',
54
+ content: '(paragraph | heading | bulletList | orderedList | blockCard | unsupportedBlock)+',
55
+ marks: 'unsupportedMark unsupportedNodeAttribute',
56
+ attrs: {
57
+ panelType: {
58
+ default: 'info'
59
+ }
60
+ },
61
+ parseDOM: [{
62
+ tag: 'div[data-panel-type]',
63
+ getAttrs: function getAttrs(dom) {
64
+ return {
65
+ panelType: dom.getAttribute('data-panel-type')
66
+ };
67
+ }
68
+ }],
69
+ toDOM: function toDOM(node) {
70
+ var panelType = node.attrs.panelType;
71
+ var attrs = {
72
+ 'data-panel-type': panelType
73
+ };
74
+ return ['div', attrs, ['div', {}, 0]];
75
+ }
76
+ };
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @name paragraph_node
3
+ */
4
+
5
+ /**
6
+ * @name paragraph_with_no_marks_node
7
+ */
8
+
9
+ /**
10
+ * NOTE: Need this because TS is too smart and inline everything.
11
+ * So we need to give them separate identity.
12
+ * Probably there's a way to solve it but that will need time and exploration.
13
+ * // http://bit.ly/2raXFX5
14
+ * type T1 = X | Y
15
+ * type T2 = A | T1 | B // T2 = A | X | Y | B
16
+ */
17
+
18
+ /**
19
+ * @name paragraph_with_alignment_node
20
+ */
21
+
22
+ /**
23
+ * @name paragraph_with_indentation_node
24
+ */
25
+ var pDOM = ['p', 0];
26
+ export var paragraph = {
27
+ selectable: false,
28
+ content: 'inline*',
29
+ group: 'block',
30
+ marks: 'strong code em link strike subsup textColor typeAheadQuery underline confluenceInlineComment action annotation unsupportedMark unsupportedNodeAttribute dataConsumer',
31
+ parseDOM: [{
32
+ tag: 'p'
33
+ }],
34
+ toDOM: function toDOM() {
35
+ return pDOM;
36
+ }
37
+ };
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @name placeholder_node
3
+ */
4
+ export var placeholder = {
5
+ inline: true,
6
+ group: 'inline',
7
+ selectable: false,
8
+ marks: '',
9
+ attrs: {
10
+ text: {
11
+ default: ''
12
+ }
13
+ },
14
+ parseDOM: [{
15
+ tag: 'span[data-placeholder]',
16
+ getAttrs: function getAttrs(dom) {
17
+ return {
18
+ text: dom.getAttribute('data-placeholder') || placeholder.attrs.text.default
19
+ };
20
+ }
21
+ }],
22
+ toDOM: function toDOM(node) {
23
+ var text = node.attrs.text;
24
+ var attrs = {
25
+ 'data-placeholder': text,
26
+ // Needs to be edtiable for mobile to not close keyboard
27
+ contenteditable: 'true'
28
+ };
29
+ return ['span', attrs, text];
30
+ }
31
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @name rule_node
3
+ */
4
+ var hrDOM = ['hr'];
5
+ export var rule = {
6
+ group: 'block',
7
+ parseDOM: [{
8
+ tag: 'hr'
9
+ }],
10
+ toDOM: function toDOM() {
11
+ return hrDOM;
12
+ }
13
+ };
@@ -0,0 +1,51 @@
1
+ import { uuid } from '../../utils/uuid';
2
+ /**
3
+ * @name status_node
4
+ */
5
+
6
+ export var status = {
7
+ inline: true,
8
+ group: 'inline',
9
+ selectable: true,
10
+ attrs: {
11
+ text: {
12
+ default: ''
13
+ },
14
+ color: {
15
+ default: ''
16
+ },
17
+ localId: {
18
+ default: uuid.generate()
19
+ },
20
+ style: {
21
+ default: ''
22
+ }
23
+ },
24
+ parseDOM: [{
25
+ tag: 'span[data-node-type="status"]',
26
+ getAttrs: function getAttrs(domNode) {
27
+ var dom = domNode;
28
+ return {
29
+ text: dom.textContent.replace(/\n/, '').trim(),
30
+ color: dom.getAttribute('data-color'),
31
+ localId: uuid.generate(),
32
+ style: dom.getAttribute('data-style')
33
+ };
34
+ }
35
+ }],
36
+ toDOM: function toDOM(node) {
37
+ var _node$attrs = node.attrs,
38
+ text = _node$attrs.text,
39
+ color = _node$attrs.color,
40
+ localId = _node$attrs.localId,
41
+ style = _node$attrs.style;
42
+ var attrs = {
43
+ 'data-node-type': 'status',
44
+ 'data-color': color,
45
+ 'data-local-id': localId,
46
+ 'data-style': style,
47
+ contenteditable: 'false'
48
+ };
49
+ return ['span', attrs, text];
50
+ }
51
+ };
@@ -0,0 +1,238 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { B100, B50, B75, G200, G50, G75, hexToRgba, isRgb, N0, N20, N60, N800, P100, P50, P75, R100, R50, R75, rgbToHex, T100, T50, T75, Y200, Y50, Y75 } from '../../utils/colors';
3
+ import { uuid } from '../../utils/uuid';
4
+ export var tablePrefixSelector = 'pm-table';
5
+ export var tableCellSelector = "".concat(tablePrefixSelector, "-cell-content-wrap");
6
+ export var tableHeaderSelector = "".concat(tablePrefixSelector, "-header-content-wrap");
7
+ export var tableCellContentWrapperSelector = "".concat(tablePrefixSelector, "-cell-nodeview-wrapper");
8
+ export var tableCellContentDomSelector = "".concat(tablePrefixSelector, "-cell-nodeview-content-dom");
9
+ var DEFAULT_TABLE_HEADER_CELL_BACKGROUND = N20.toLocaleLowerCase();
10
+ export var getCellAttrs = function getCellAttrs(dom) {
11
+ var defaultValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
+ var widthAttr = dom.getAttribute('data-colwidth');
13
+ var width = widthAttr && /^\d+(,\d+)*$/.test(widthAttr) ? widthAttr.split(',').map(function (str) {
14
+ return Number(str);
15
+ }) : null;
16
+ var colspan = Number(dom.getAttribute('colspan') || 1);
17
+ var backgroundColor = dom.style.backgroundColor;
18
+
19
+ if (backgroundColor && isRgb(backgroundColor)) {
20
+ var result = rgbToHex(backgroundColor);
21
+
22
+ if (result !== null) {
23
+ backgroundColor = result;
24
+ }
25
+ }
26
+
27
+ return {
28
+ colspan: colspan,
29
+ rowspan: Number(dom.getAttribute('rowspan') || 1),
30
+ colwidth: width && width.length === colspan ? width : null,
31
+ background: backgroundColor && backgroundColor !== defaultValues['background'] ? backgroundColor : null
32
+ };
33
+ };
34
+
35
+ /**
36
+ * gets cell dom attributes based on node attributes
37
+ * @returns CellDomAttrs
38
+ */
39
+ export var getCellDomAttrs = function getCellDomAttrs(node) {
40
+ var attrs = {};
41
+ var nodeType = node.type.name;
42
+
43
+ if (node.attrs.colspan !== 1) {
44
+ attrs.colspan = node.attrs.colspan;
45
+ }
46
+
47
+ if (node.attrs.rowspan !== 1) {
48
+ attrs.rowspan = node.attrs.rowspan;
49
+ }
50
+
51
+ if (node.attrs.colwidth) {
52
+ attrs['data-colwidth'] = node.attrs.colwidth.join(',');
53
+ }
54
+
55
+ if (node.attrs.background) {
56
+ var background = node.attrs.background; // to ensure that we don't overwrite product's style:
57
+ // - it clears background color for <th> if its set to gray
58
+ // - it clears background color for <td> if its set to white
59
+
60
+ var ignored = nodeType === 'tableHeader' && background === tableBackgroundColorNames.get('light gray') || nodeType === 'tableCell' && background === tableBackgroundColorNames.get('white');
61
+
62
+ if (ignored) {
63
+ attrs.style = '';
64
+ } else {
65
+ var color = isRgb(background) ? rgbToHex(background) : background;
66
+ attrs.style = "".concat(attrs.style || '', "background-color: ").concat(color, ";");
67
+ attrs.colorname = tableBackgroundColorPalette.get(color);
68
+ }
69
+ }
70
+
71
+ if (nodeType === 'tableHeader') {
72
+ attrs.class = tableHeaderSelector;
73
+ } else {
74
+ attrs.class = tableCellSelector;
75
+ }
76
+
77
+ return attrs;
78
+ };
79
+ export var tableBackgroundColorPalette = new Map();
80
+ export var tableBackgroundBorderColor = hexToRgba(N800, 0.12) || N0;
81
+ export var tableBackgroundColorNames = new Map();
82
+ [[N0, 'White'], [B50, 'Light blue'], [T50, 'Light teal'], [G50, 'Light green'], [Y50, 'Light yellow'], [R50, 'Light red'], [P50, 'Light purple'], [N20, 'Light gray'], [B75, 'Blue'], [T75, 'Teal'], [G75, 'Green'], [Y75, 'Yellow'], [R75, 'Red'], [P75, 'Purple'], [N60, 'Gray'], [B100, 'Dark blue'], [T100, 'Dark teal'], [G200, 'Dark green'], [Y200, 'Dark yellow'], [R100, 'Dark red'], [P100, 'Dark purple']].forEach(function (_ref) {
83
+ var _ref2 = _slicedToArray(_ref, 2),
84
+ colorValue = _ref2[0],
85
+ colorName = _ref2[1];
86
+
87
+ tableBackgroundColorPalette.set(colorValue.toLowerCase(), colorName);
88
+ tableBackgroundColorNames.set(colorName.toLowerCase(), colorValue.toLowerCase());
89
+ });
90
+
91
+ // TODO: Fix any, potential issue. ED-5048
92
+ var createTableSpec = function createTableSpec() {
93
+ var attrs = {
94
+ isNumberColumnEnabled: {
95
+ default: false
96
+ },
97
+ layout: {
98
+ default: 'default'
99
+ },
100
+ __autoSize: {
101
+ default: false
102
+ },
103
+ localId: {
104
+ default: ''
105
+ }
106
+ };
107
+ var tableNodeSpec = {
108
+ content: 'tableRow+',
109
+ attrs: attrs,
110
+ marks: 'unsupportedMark unsupportedNodeAttribute',
111
+ tableRole: 'table',
112
+ isolating: true,
113
+ selectable: false,
114
+ group: 'block',
115
+ parseDOM: [{
116
+ tag: 'table',
117
+ getAttrs: function getAttrs(node) {
118
+ var _dom$parentElement;
119
+
120
+ var dom = node;
121
+ var breakoutWrapper = (_dom$parentElement = dom.parentElement) === null || _dom$parentElement === void 0 ? void 0 : _dom$parentElement.parentElement;
122
+ return {
123
+ isNumberColumnEnabled: dom.getAttribute('data-number-column') === 'true' ? true : false,
124
+ layout: // copying from editor
125
+ dom.getAttribute('data-layout') || ( // copying from renderer
126
+ breakoutWrapper === null || breakoutWrapper === void 0 ? void 0 : breakoutWrapper.getAttribute('data-layout')) || 'default',
127
+ __autoSize: dom.getAttribute('data-autosize') === 'true' ? true : false,
128
+ localId: dom.getAttribute('data-table-local-id') || uuid.generate()
129
+ };
130
+ }
131
+ }],
132
+ toDOM: function toDOM(node) {
133
+ var attrs = {
134
+ 'data-number-column': node.attrs.isNumberColumnEnabled,
135
+ 'data-layout': node.attrs.layout,
136
+ 'data-autosize': node.attrs.__autoSize,
137
+ 'data-table-local-id': node.attrs.localId
138
+ };
139
+ return ['table', attrs, ['tbody', 0]];
140
+ }
141
+ };
142
+ return tableNodeSpec;
143
+ };
144
+
145
+ export var table = createTableSpec();
146
+
147
+ var shouldIncludeAttribute = function shouldIncludeAttribute(key, value) {
148
+ return !key.startsWith('__') && (key !== 'localId' || !!value);
149
+ };
150
+
151
+ export var tableToJSON = function tableToJSON(node) {
152
+ return {
153
+ attrs: Object.keys(node.attrs).filter(function (key) {
154
+ return shouldIncludeAttribute(key, node.attrs[key]);
155
+ }).reduce(function (obj, key) {
156
+ obj[key] = node.attrs[key];
157
+ return obj;
158
+ }, {})
159
+ };
160
+ };
161
+ export var tableRow = {
162
+ selectable: false,
163
+ content: '(tableCell | tableHeader)+',
164
+ marks: 'unsupportedMark unsupportedNodeAttribute',
165
+ tableRole: 'row',
166
+ parseDOM: [{
167
+ tag: 'tr'
168
+ }],
169
+ toDOM: function toDOM() {
170
+ return ['tr', 0];
171
+ }
172
+ };
173
+ var cellAttrs = {
174
+ colspan: {
175
+ default: 1
176
+ },
177
+ rowspan: {
178
+ default: 1
179
+ },
180
+ colwidth: {
181
+ default: null
182
+ },
183
+ background: {
184
+ default: null
185
+ }
186
+ };
187
+ export var tableCell = {
188
+ selectable: false,
189
+ content: '(paragraph | panel | blockquote | orderedList | bulletList | rule | heading | codeBlock | mediaSingle | mediaGroup | decisionList | taskList | blockCard | embedCard | extension | nestedExpand | unsupportedBlock)+',
190
+ attrs: cellAttrs,
191
+ tableRole: 'cell',
192
+ marks: 'link alignment dataConsumer unsupportedMark unsupportedNodeAttribute',
193
+ isolating: true,
194
+ parseDOM: [// Ignore number cell copied from renderer
195
+ {
196
+ tag: '.ak-renderer-table-number-column',
197
+ ignore: true
198
+ }, {
199
+ tag: 'td',
200
+ getAttrs: function getAttrs(dom) {
201
+ return getCellAttrs(dom);
202
+ }
203
+ }],
204
+ toDOM: function toDOM(node) {
205
+ return ['td', getCellDomAttrs(node), 0];
206
+ }
207
+ };
208
+ export var toJSONTableCell = function toJSONTableCell(node) {
209
+ return {
210
+ attrs: Object.keys(node.attrs).reduce(function (obj, key) {
211
+ if (cellAttrs[key].default !== node.attrs[key]) {
212
+ obj[key] = node.attrs[key];
213
+ }
214
+
215
+ return obj;
216
+ }, {})
217
+ };
218
+ };
219
+ export var tableHeader = {
220
+ selectable: false,
221
+ content: '(paragraph | panel | blockquote | orderedList | bulletList | rule | heading | codeBlock | mediaSingle | mediaGroup | decisionList | taskList | blockCard | embedCard | extension | nestedExpand)+',
222
+ attrs: cellAttrs,
223
+ tableRole: 'header_cell',
224
+ isolating: true,
225
+ marks: 'link alignment dataConsumer unsupportedMark unsupportedNodeAttribute',
226
+ parseDOM: [{
227
+ tag: 'th',
228
+ getAttrs: function getAttrs(dom) {
229
+ return getCellAttrs(dom, {
230
+ background: DEFAULT_TABLE_HEADER_CELL_BACKGROUND
231
+ });
232
+ }
233
+ }],
234
+ toDOM: function toDOM(node) {
235
+ return ['th', getCellDomAttrs(node), 0];
236
+ }
237
+ };
238
+ export var toJSONTableHeader = toJSONTableCell;