@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,36 @@
1
+ import { customPanel } from './nodes/panel';
2
+ import { layoutSectionWithSingleColumn } from './nodes/layout-section';
3
+ import { dataConsumer } from './marks/data-consumer';
4
+ import { createSchema } from './create-schema';
5
+ import { mediaSingleWithCaption } from './nodes';
6
+
7
+ var getDefaultSchemaConfig = function getDefaultSchemaConfig() {
8
+ var defaultSchemaConfig = {
9
+ nodes: ['doc', 'paragraph', 'text', 'bulletList', 'orderedList', 'listItem', 'heading', 'blockquote', 'codeBlock', 'panel', 'rule', 'image', 'mention', 'media', 'mediaGroup', 'mediaSingle', 'mediaInline', 'confluenceUnsupportedBlock', 'confluenceUnsupportedInline', 'confluenceJiraIssue', 'expand', 'nestedExpand', 'extension', 'inlineExtension', 'bodiedExtension', 'hardBreak', 'emoji', 'table', 'tableCell', 'tableHeader', 'tableRow', 'decisionList', 'decisionItem', 'taskList', 'taskItem', 'unknownBlock', 'date', 'status', 'placeholder', 'layoutSection', 'layoutColumn', 'inlineCard', 'blockCard', 'embedCard', 'unsupportedBlock', 'unsupportedInline'],
10
+ marks: ['link', 'em', 'strong', 'strike', 'subsup', 'underline', 'code', 'textColor', 'confluenceInlineComment', 'breakout', 'alignment', 'indentation', 'annotation', 'unsupportedMark', 'unsupportedNodeAttribute', 'typeAheadQuery' // https://product-fabric.atlassian.net/browse/ED-10214,
11
+ ]
12
+ };
13
+ return defaultSchemaConfig;
14
+ };
15
+
16
+ export var defaultSchemaConfig = getDefaultSchemaConfig();
17
+ export var getSchemaBasedOnStage = function getSchemaBasedOnStage() {
18
+ var stage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'final';
19
+ var defaultSchemaConfig = getDefaultSchemaConfig(); // TODO: ED-10445 remove stage0 check after panels with emoji are on full schema AND image captions are on full schema
20
+
21
+ if (stage === 'stage0') {
22
+ defaultSchemaConfig.customNodeSpecs = {
23
+ panel: customPanel,
24
+ mediaSingle: mediaSingleWithCaption,
25
+ layoutSection: layoutSectionWithSingleColumn
26
+ };
27
+ defaultSchemaConfig.customMarkSpecs = {
28
+ dataConsumer: dataConsumer
29
+ };
30
+ defaultSchemaConfig.nodes.push('caption');
31
+ defaultSchemaConfig.nodes.push('mediaInline');
32
+ }
33
+
34
+ return createSchema(defaultSchemaConfig);
35
+ };
36
+ export var defaultSchema = getSchemaBasedOnStage();
@@ -0,0 +1,23 @@
1
+ // # What do marks exist?
2
+ //
3
+ // Marks are categorised into different groups. One motivation for this was to allow the `code` mark
4
+ // to exclude other marks, without needing to explicitly name them. Explicit naming requires the
5
+ // named mark to exist in the schema. This is undesirable because we want to construct different
6
+ // schemas that have different sets of nodes/marks.
7
+ //
8
+ // Groups provide a level of indirection, and solve this problem. For the immediate use-case, one
9
+ // group called "not_code" would have sufficed, but this an ultra-specialised to code.
10
+ // Mark group for font styling (e.g. bold, italic, underline, superscript).
11
+ export var FONT_STYLE = 'fontStyle'; // Marks group for search queries.
12
+
13
+ export var SEARCH_QUERY = 'searchQuery'; // Marks group for links.
14
+
15
+ export var LINK = 'link'; // Marks group for colors (text-color, background-color, etc).
16
+
17
+ export var COLOR = 'color'; // They need to be on their own group so that they can exclude each other
18
+ // and also work when one of them is disabled.
19
+ // Marks group for alignment.
20
+
21
+ export var ALIGNMENT = 'alignment'; // Marks group for indentation.
22
+
23
+ export var INDENTATION = 'indentation';
@@ -0,0 +1,9 @@
1
+ export { PanelType, blockCard, blockquote, bodiedExtension, bulletList, bulletListSelector, caption, codeBlock, codeBlockToJSON, confluenceJiraIssue, confluenceUnsupportedBlock, confluenceUnsupportedInline, copyPrivateMediaAttributes, date, decisionItem, decisionList, decisionListSelector, doc, embedCard, emoji, expand, expandToJSON, extension, hardBreak, heading, image, inlineCard, inlineExtension, layoutColumn, layoutSection, layoutSectionWithSingleColumn, listItem, media, mediaGroup, mediaSingle, mediaInline, mediaSingleWithCaption, mediaSingleToJSON, mediaToJSON, mention, mentionToJSON, nestedExpand, orderedList, orderedListSelector, panel, customPanel, paragraph, placeholder, rule, getCellAttrs, getCellDomAttrs, status, table, tableBackgroundBorderColor, tableBackgroundColorNames, tableBackgroundColorPalette, tableCell, tableCellContentDomSelector, tableCellContentWrapperSelector, tableCellSelector, tableHeader, tableHeaderSelector, tablePrefixSelector, tableRow, tableToJSON, taskItem, taskList, taskListSelector, text, toJSONTableCell, toJSONTableHeader, unknownBlock, unsupportedBlock, unsupportedInline } from './nodes';
2
+ export { AnnotationTypes, alignment, alignmentPositionMap, annotation, breakout, code, colorPalette, colorPaletteExtended, confluenceInlineComment, dataConsumer, dataConsumerToJSON, em, indentation, link, linkToJSON, strike, strong, subsup, textColor, typeAheadQuery, underline, buildAnnotationMarkDataAttributes, AnnotationMarkStates, unsupportedMark, unsupportedNodeAttribute } from './marks';
3
+ export { unsupportedNodeTypesForMediaCards } from './unsupported';
4
+ export { inlineNodes } from './inline-nodes';
5
+ export { sanitizeNodes, createSchema } from './create-schema';
6
+ export { bitbucketSchema } from './bitbucket-schema';
7
+ export { confluenceSchema, confluenceSchemaWithMediaSingle } from './confluence-schema';
8
+ export { defaultSchema, getSchemaBasedOnStage, defaultSchemaConfig } from './default-schema';
9
+ export { default as createJIRASchema, isSchemaWithLists, isSchemaWithMentions, isSchemaWithEmojis, isSchemaWithLinks, isSchemaWithAdvancedTextFormattingMarks, isSchemaWithCodeBlock, isSchemaWithBlockQuotes, isSchemaWithMedia, isSchemaWithSubSupMark, isSchemaWithTextColor, isSchemaWithTables } from './jira-schema';
@@ -0,0 +1,5 @@
1
+ import * as nodes from './nodes';
2
+ var typedNodes = nodes;
3
+ export var inlineNodes = new Set(Object.keys(typedNodes).filter(function (key) {
4
+ return typedNodes[key] && typedNodes[key].group === 'inline';
5
+ }));
@@ -0,0 +1,88 @@
1
+ import { createSchema } from './create-schema';
2
+ export default function makeSchema(config) {
3
+ var nodes = ['doc', 'paragraph', 'text', 'hardBreak', 'heading', 'rule'];
4
+ var marks = ['strong', 'em', 'underline', 'typeAheadQuery', 'unsupportedMark', 'unsupportedNodeAttribute'];
5
+
6
+ if (config.allowLinks) {
7
+ marks.push('link');
8
+ }
9
+
10
+ if (config.allowLists) {
11
+ nodes.push('orderedList', 'bulletList', 'listItem');
12
+ }
13
+
14
+ if (config.allowMentions) {
15
+ nodes.push('mention');
16
+ marks.push('mentionQuery');
17
+ }
18
+
19
+ if (config.allowEmojis) {
20
+ nodes.push('emoji');
21
+ }
22
+
23
+ if (config.allowAdvancedTextFormatting) {
24
+ marks.push('strike', 'code');
25
+ }
26
+
27
+ if (config.allowSubSup) {
28
+ marks.push('subsup');
29
+ }
30
+
31
+ if (config.allowCodeBlock) {
32
+ nodes.push('codeBlock');
33
+ }
34
+
35
+ if (config.allowBlockQuote) {
36
+ nodes.push('blockquote');
37
+ }
38
+
39
+ if (config.allowMedia) {
40
+ nodes.push('mediaGroup', 'mediaSingle', 'media');
41
+ }
42
+
43
+ if (config.allowTextColor) {
44
+ marks.push('textColor');
45
+ }
46
+
47
+ if (config.allowTables) {
48
+ nodes.push('table', 'tableCell', 'tableHeader', 'tableRow');
49
+ }
50
+
51
+ return createSchema({
52
+ nodes: nodes,
53
+ marks: marks
54
+ });
55
+ }
56
+ export function isSchemaWithLists(schema) {
57
+ return !!schema.nodes.bulletList;
58
+ }
59
+ export function isSchemaWithMentions(schema) {
60
+ return !!schema.nodes.mention;
61
+ }
62
+ export function isSchemaWithEmojis(schema) {
63
+ return !!schema.nodes.emoji;
64
+ }
65
+ export function isSchemaWithLinks(schema) {
66
+ return !!schema.marks.link;
67
+ }
68
+ export function isSchemaWithAdvancedTextFormattingMarks(schema) {
69
+ return !!schema.marks.code && !!schema.marks.strike;
70
+ }
71
+ export function isSchemaWithSubSupMark(schema) {
72
+ return !!schema.marks.subsup;
73
+ }
74
+ export function isSchemaWithCodeBlock(schema) {
75
+ return !!schema.nodes.codeBlock;
76
+ }
77
+ export function isSchemaWithBlockQuotes(schema) {
78
+ return !!schema.nodes.blockquote;
79
+ }
80
+ export function isSchemaWithMedia(schema) {
81
+ return !!schema.nodes.mediaGroup && !!schema.nodes.media;
82
+ }
83
+ export function isSchemaWithTextColor(schema) {
84
+ return !!schema.marks.textColor;
85
+ }
86
+ export function isSchemaWithTables(schema) {
87
+ return !!schema.nodes.table && !!schema.nodes.tableCell && !!schema.nodes.tableHeader && !!schema.nodes.tableRow;
88
+ }
@@ -0,0 +1,30 @@
1
+ import { ALIGNMENT, INDENTATION } from '../groups';
2
+ /** TODO: Flip these positions for RTL */
3
+
4
+ export var alignmentPositionMap = {
5
+ end: 'right',
6
+ right: 'end',
7
+ center: 'center'
8
+ };
9
+ export var alignment = {
10
+ excludes: "alignment ".concat(INDENTATION),
11
+ group: ALIGNMENT,
12
+ attrs: {
13
+ align: {}
14
+ },
15
+ parseDOM: [{
16
+ tag: 'div.fabric-editor-block-mark',
17
+ getAttrs: function getAttrs(dom) {
18
+ var align = dom.getAttribute('data-align');
19
+ return align ? {
20
+ align: align
21
+ } : false;
22
+ }
23
+ }],
24
+ toDOM: function toDOM(mark) {
25
+ return ['div', {
26
+ class: "fabric-editor-block-mark fabric-editor-align-".concat(mark.attrs.align),
27
+ 'data-align': mark.attrs.align
28
+ }, 0];
29
+ }
30
+ };
@@ -0,0 +1,82 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ 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; }
4
+
5
+ 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) { _defineProperty(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; }
6
+
7
+ /**
8
+ * @name annotation_mark
9
+ */
10
+ export var AnnotationTypes;
11
+
12
+ (function (AnnotationTypes) {
13
+ AnnotationTypes["INLINE_COMMENT"] = "inlineComment";
14
+ })(AnnotationTypes || (AnnotationTypes = {}));
15
+
16
+ export var AnnotationMarkStates;
17
+
18
+ (function (AnnotationMarkStates) {
19
+ AnnotationMarkStates["RESOLVED"] = "resolved";
20
+ AnnotationMarkStates["ACTIVE"] = "active";
21
+ })(AnnotationMarkStates || (AnnotationMarkStates = {}));
22
+
23
+ export function buildDataAttributes(_ref) {
24
+ var id = _ref.id,
25
+ annotationType = _ref.annotationType,
26
+ state = _ref.state;
27
+ var data = {
28
+ 'data-mark-type': 'annotation',
29
+ 'data-mark-annotation-type': annotationType,
30
+ 'data-id': id
31
+ };
32
+
33
+ if (state) {
34
+ return _objectSpread(_objectSpread({}, data), {}, {
35
+ 'data-mark-annotation-state': state
36
+ });
37
+ }
38
+
39
+ return data;
40
+ }
41
+ export var annotation = {
42
+ inclusive: false,
43
+ group: 'annotation',
44
+ excludes: '',
45
+ attrs: {
46
+ id: {
47
+ default: ''
48
+ },
49
+ annotationType: {
50
+ default: AnnotationTypes.INLINE_COMMENT
51
+ }
52
+ },
53
+ parseDOM: [{
54
+ tag: 'span[data-mark-type="annotation"]',
55
+ mark: 'annotation',
56
+ getAttrs: function getAttrs(domNode) {
57
+ var dom = domNode;
58
+ var attrs = {
59
+ id: dom.getAttribute('data-id'),
60
+ annotationType: dom.getAttribute('data-mark-annotation-type')
61
+ };
62
+ return attrs;
63
+ }
64
+ }],
65
+ toDOM: function toDOM(node) {
66
+ /*
67
+ Data attributes on the DOM node are a temporary means of
68
+ incrementally switching over to the Annotation mark. Once renderer
69
+ provides native support for inline comments the data attributes on the
70
+ DOM nodes will be removed.
71
+ */
72
+ return ['span', _objectSpread({
73
+ // Prettier will remove the quotes around class. This would cause some browsers
74
+ // to not add this attribute properly, as its a reserved word.
75
+ // prettier-ignore
76
+ 'class': 'fabric-editor-annotation'
77
+ }, buildDataAttributes({
78
+ id: node.attrs.id,
79
+ annotationType: node.attrs.annotationType
80
+ })), 0];
81
+ }
82
+ };
@@ -0,0 +1,25 @@
1
+ var allowedTypes = ['wide', 'full-width'];
2
+ export var breakout = {
3
+ spanning: false,
4
+ inclusive: false,
5
+ parseDOM: [{
6
+ tag: 'div.fabric-editor-breakout-mark',
7
+ getAttrs: function getAttrs(dom) {
8
+ var mode = dom.getAttribute('data-mode');
9
+ return {
10
+ mode: allowedTypes.indexOf(mode || '') === -1 ? 'wide' : mode
11
+ };
12
+ }
13
+ }],
14
+ attrs: {
15
+ mode: {
16
+ default: 'wide'
17
+ }
18
+ },
19
+ toDOM: function toDOM(mark) {
20
+ return ['div', {
21
+ class: 'fabric-editor-breakout-mark',
22
+ 'data-mode': mark.attrs.mode
23
+ }, 0];
24
+ }
25
+ };
@@ -0,0 +1,41 @@
1
+ import { COLOR, FONT_STYLE, LINK, SEARCH_QUERY } from '../groups';
2
+ /**
3
+ * @name code_mark
4
+ */
5
+
6
+ export var code = {
7
+ excludes: "".concat(FONT_STYLE, " ").concat(LINK, " ").concat(SEARCH_QUERY, " ").concat(COLOR),
8
+ inclusive: true,
9
+ parseDOM: [{
10
+ tag: 'span.code',
11
+ preserveWhitespace: true
12
+ }, {
13
+ tag: 'code',
14
+ preserveWhitespace: true
15
+ }, {
16
+ tag: 'tt',
17
+ preserveWhitespace: true
18
+ }, {
19
+ tag: 'span',
20
+ preserveWhitespace: true,
21
+ getAttrs: function getAttrs(domNode) {
22
+ var dom = domNode;
23
+
24
+ if (dom.style.whiteSpace === 'pre') {
25
+ return {};
26
+ }
27
+
28
+ if (dom.style.fontFamily && dom.style.fontFamily.toLowerCase().indexOf('monospace') >= 0) {
29
+ return {};
30
+ }
31
+
32
+ return false;
33
+ }
34
+ }],
35
+ toDOM: function toDOM() {
36
+ return ['span', {
37
+ class: 'code',
38
+ spellcheck: 'false'
39
+ }];
40
+ }
41
+ };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @name inline_comment_marker
3
+ * @description This temporary mark represents a Confluence-backed inline comment that wraps a piece of text. It will be replaced with a cross-product inline comment solution at later date.
4
+ */
5
+ export var confluenceInlineComment = {
6
+ inclusive: false,
7
+ excludes: '',
8
+ attrs: {
9
+ reference: {
10
+ default: ''
11
+ }
12
+ },
13
+ parseDOM: [{
14
+ tag: 'span[data-mark-type="confluenceInlineComment"]'
15
+ }],
16
+ toDOM: function toDOM(node) {
17
+ return ['span', {
18
+ 'data-mark-type': 'confluenceInlineComment',
19
+ 'data-reference': node.attrs.reference
20
+ }];
21
+ }
22
+ };
@@ -0,0 +1,63 @@
1
+ import { isDOMElement } from '../../utils/parseDOM';
2
+ /**
3
+ * @minLength 1
4
+ */
5
+
6
+ var parseDataConsumer = function parseDataConsumer(maybeValue) {
7
+ var sources = isDOMElement(maybeValue) && maybeValue.getAttribute('data-sources');
8
+
9
+ try {
10
+ return sources ? {
11
+ sources: JSON.parse(sources)
12
+ } : false;
13
+ } catch (_unused) {
14
+ return false;
15
+ }
16
+ };
17
+
18
+ export var dataConsumer = {
19
+ attrs: {
20
+ sources: {
21
+ default: []
22
+ }
23
+ },
24
+ parseDOM: [{
25
+ tag: '[data-mark-type="dataConsumer"]',
26
+ getAttrs: function getAttrs(maybeValue) {
27
+ return parseDataConsumer(maybeValue);
28
+ }
29
+ }],
30
+ toDOM: function toDOM(mark, inline) {
31
+ var wrapperStyle = inline ? 'span' : 'div';
32
+ return [wrapperStyle, {
33
+ 'data-mark-type': 'dataConsumer',
34
+ 'data-sources': JSON.stringify(mark.attrs.sources)
35
+ }];
36
+ }
37
+ };
38
+ /**
39
+ * We want to ensure any "invalid ADF" doesn't get serialised, but the entire
40
+ * mark itself is not valid without a non-empty `sources`.
41
+ *
42
+ * We _almost could_ simply return `null` if sources length is < 0 & would fit
43
+ * the type signature of prosemirror-model's `fragment` but not `mark`'s toJSON.
44
+ *
45
+ * So we'll leave any extra transformation checks in
46
+ * `editor-json-transformer`(?)
47
+ */
48
+
49
+ export var toJSON = function toJSON(mark) {
50
+ // // Remove intemediary state if we don't have any sources on data consumer
51
+ // if (mark.attrs?.sources?.length < 1) {
52
+ // return null;
53
+ // }
54
+ return {
55
+ type: mark.type.name,
56
+ attrs: Object.keys(mark.attrs).filter(function (key) {
57
+ return key === 'sources' && mark.attrs[key].length > 0 && mark.attrs[key] !== null;
58
+ }).reduce(function (acc, key) {
59
+ acc[key] = mark.attrs[key];
60
+ return acc;
61
+ }, {})
62
+ };
63
+ };
@@ -0,0 +1,20 @@
1
+ import { FONT_STYLE } from '../groups';
2
+ /**
3
+ * @name em_mark
4
+ */
5
+
6
+ var emDOM = ['em'];
7
+ export var em = {
8
+ inclusive: true,
9
+ group: FONT_STYLE,
10
+ parseDOM: [{
11
+ tag: 'i'
12
+ }, {
13
+ tag: 'em'
14
+ }, {
15
+ style: 'font-style=italic'
16
+ }],
17
+ toDOM: function toDOM() {
18
+ return emDOM;
19
+ }
20
+ };