@atlaskit/editor-common 72.1.2 → 72.2.1

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 (583) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/__tests_external__/cases/fundamentals/collection.js +0 -5
  3. package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +0 -4
  4. package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +0 -8
  5. package/dist/cjs/__tests_external__/cases/smart-links/index.js +0 -4
  6. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/delete.js +1 -8
  7. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/edit.js +2 -12
  8. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/index.js +0 -6
  9. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/insert.js +1 -8
  10. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/delete.js +1 -8
  11. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/edit.js +2 -12
  12. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/index.js +0 -6
  13. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/insert.js +1 -8
  14. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/delete.js +1 -8
  15. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/edit.js +2 -12
  16. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/index.js +0 -7
  17. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/insert.js +1 -8
  18. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +1 -8
  19. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/index.js +0 -4
  20. package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/insert.js +1 -8
  21. package/dist/cjs/__tests_external__/index.js +0 -3
  22. package/dist/cjs/__tests_external__/page-objects/Editor.js +0 -16
  23. package/dist/cjs/__tests_external__/page-objects/EditorSmartLink.js +0 -29
  24. package/dist/cjs/__tests_external__/page-objects/Renderer.js +0 -14
  25. package/dist/cjs/analytics/index.js +0 -1
  26. package/dist/cjs/analytics/types/enums.js +1 -16
  27. package/dist/cjs/analytics/types/extension-events.js +0 -4
  28. package/dist/cjs/analytics/types/format-events.js +0 -3
  29. package/dist/cjs/analytics/types/general-events.js +0 -7
  30. package/dist/cjs/analytics/types/index.js +0 -14
  31. package/dist/cjs/analytics/types/inline-comment-events.js +0 -1
  32. package/dist/cjs/analytics/types/insert-events.js +0 -7
  33. package/dist/cjs/analytics/types/list-events.js +0 -3
  34. package/dist/cjs/analytics/types/node-events.js +0 -3
  35. package/dist/cjs/analytics/types/substitute-events.js +0 -3
  36. package/dist/cjs/analytics/types/table-events.js +0 -4
  37. package/dist/cjs/analytics/types/toolbar-button.js +0 -1
  38. package/dist/cjs/analytics/types/utils.js +0 -3
  39. package/dist/cjs/core-utils/index.js +0 -1
  40. package/dist/cjs/core-utils/inside.js +2 -5
  41. package/dist/cjs/emoji.js +0 -3
  42. package/dist/cjs/event-dispatcher/index.js +0 -14
  43. package/dist/cjs/extensions/combine-extension-providers.js +2 -6
  44. package/dist/cjs/extensions/default-extension-provider.js +0 -26
  45. package/dist/cjs/extensions/extension-fields-helpers.js +0 -35
  46. package/dist/cjs/extensions/extension-handlers.js +0 -27
  47. package/dist/cjs/extensions/index.js +0 -8
  48. package/dist/cjs/extensions/manifest-helpers.js +4 -30
  49. package/dist/cjs/extensions/module-helpers.js +17 -89
  50. package/dist/cjs/extensions/types/field-definitions.js +1 -10
  51. package/dist/cjs/extensions/types/index.js +0 -1
  52. package/dist/cjs/extensions.js +0 -1
  53. package/dist/cjs/i18n/cs.js +0 -1
  54. package/dist/cjs/i18n/da.js +0 -1
  55. package/dist/cjs/i18n/de.js +0 -1
  56. package/dist/cjs/i18n/en.js +0 -1
  57. package/dist/cjs/i18n/en_GB.js +0 -1
  58. package/dist/cjs/i18n/en_ZZ.js +0 -1
  59. package/dist/cjs/i18n/es.js +0 -1
  60. package/dist/cjs/i18n/et.js +0 -1
  61. package/dist/cjs/i18n/fi.js +0 -1
  62. package/dist/cjs/i18n/fr.js +0 -1
  63. package/dist/cjs/i18n/hu.js +0 -1
  64. package/dist/cjs/i18n/index.js +0 -27
  65. package/dist/cjs/i18n/it.js +0 -1
  66. package/dist/cjs/i18n/ja.js +0 -1
  67. package/dist/cjs/i18n/ko.js +0 -1
  68. package/dist/cjs/i18n/languages.js +0 -1
  69. package/dist/cjs/i18n/nb.js +0 -1
  70. package/dist/cjs/i18n/nl.js +0 -1
  71. package/dist/cjs/i18n/pl.js +0 -1
  72. package/dist/cjs/i18n/pt_BR.js +0 -1
  73. package/dist/cjs/i18n/pt_PT.js +0 -1
  74. package/dist/cjs/i18n/ru.js +0 -1
  75. package/dist/cjs/i18n/sk.js +0 -1
  76. package/dist/cjs/i18n/sv.js +0 -1
  77. package/dist/cjs/i18n/th.js +0 -1
  78. package/dist/cjs/i18n/tr.js +0 -1
  79. package/dist/cjs/i18n/uk.js +0 -1
  80. package/dist/cjs/i18n/vi.js +0 -1
  81. package/dist/cjs/i18n/zh.js +0 -1
  82. package/dist/cjs/i18n/zh_TW.js +0 -1
  83. package/dist/cjs/icons/index.js +0 -11
  84. package/dist/cjs/icons/shared/PanelErrorIcon.js +0 -7
  85. package/dist/cjs/icons/shared/PanelInfoIcon.js +0 -7
  86. package/dist/cjs/icons/shared/PanelNoteIcon.js +0 -7
  87. package/dist/cjs/icons/shared/PanelSuccessIcon.js +0 -7
  88. package/dist/cjs/icons/shared/PanelWarningIcon.js +0 -7
  89. package/dist/cjs/icons/shared/table.js +1 -3
  90. package/dist/cjs/in-product.js +0 -1
  91. package/dist/cjs/keymaps/index.js +2 -50
  92. package/dist/cjs/mention.js +0 -3
  93. package/dist/cjs/messages/codeBidiWarning.js +0 -2
  94. package/dist/cjs/messages/codeBlockCopyButton.js +0 -2
  95. package/dist/cjs/messages/index.js +0 -8
  96. package/dist/cjs/messages/insert-block.js +0 -2
  97. package/dist/cjs/messages/link.js +0 -2
  98. package/dist/cjs/messages/unsupportedContent.js +0 -2
  99. package/dist/cjs/node-width/index.js +2 -20
  100. package/dist/cjs/normalize-feature-flags.js +6 -25
  101. package/dist/cjs/panel.js +0 -1
  102. package/dist/cjs/provider-factory/context.js +3 -17
  103. package/dist/cjs/provider-factory/provider-factory.js +0 -19
  104. package/dist/cjs/provider-factory/with-providers.js +5 -28
  105. package/dist/cjs/provider-factory.js +0 -4
  106. package/dist/cjs/provider-helpers/combine-providers.js +3 -33
  107. package/dist/cjs/provider-helpers/index.js +0 -2
  108. package/dist/cjs/provider-helpers/promise-helpers.js +3 -15
  109. package/dist/cjs/react-node-view/index.js +18 -48
  110. package/dist/cjs/safe-plugin/index.js +1 -14
  111. package/dist/cjs/selection/gap-cursor/selection.js +8 -44
  112. package/dist/cjs/selection/gap-cursor/utils/index.js +0 -2
  113. package/dist/cjs/selection/gap-cursor/utils/is-ignored.js +0 -2
  114. package/dist/cjs/selection/gap-cursor/utils/is-valid-target-node.js +0 -3
  115. package/dist/cjs/selection/index.js +0 -4
  116. package/dist/cjs/selection/types.js +0 -1
  117. package/dist/cjs/selection/utils.js +0 -12
  118. package/dist/cjs/styles/index.js +0 -23
  119. package/dist/cjs/styles/shared/annotation.js +0 -11
  120. package/dist/cjs/styles/shared/block-marks.js +0 -5
  121. package/dist/cjs/styles/shared/blockquote.js +0 -7
  122. package/dist/cjs/styles/shared/code-block.js +0 -11
  123. package/dist/cjs/styles/shared/code-mark.js +0 -9
  124. package/dist/cjs/styles/shared/column-layout.js +0 -6
  125. package/dist/cjs/styles/shared/date.js +0 -5
  126. package/dist/cjs/styles/shared/emoji.js +0 -2
  127. package/dist/cjs/styles/shared/extension.js +0 -2
  128. package/dist/cjs/styles/shared/headings.js +0 -7
  129. package/dist/cjs/styles/shared/indentation.js +0 -5
  130. package/dist/cjs/styles/shared/layout.js +0 -2
  131. package/dist/cjs/styles/shared/link.js +0 -5
  132. package/dist/cjs/styles/shared/lists.js +2 -21
  133. package/dist/cjs/styles/shared/media-single.js +0 -5
  134. package/dist/cjs/styles/shared/panel.js +15 -41
  135. package/dist/cjs/styles/shared/paragraph.js +0 -6
  136. package/dist/cjs/styles/shared/rule.js +2 -10
  137. package/dist/cjs/styles/shared/shadow.js +1 -9
  138. package/dist/cjs/styles/shared/smart-card.js +0 -3
  139. package/dist/cjs/styles/shared/table.js +0 -20
  140. package/dist/cjs/styles/shared/task-decision.js +0 -6
  141. package/dist/cjs/styles/shared/text-color.js +0 -5
  142. package/dist/cjs/styles/shared/whitespace.js +0 -5
  143. package/dist/cjs/transforms/expand.js +7 -16
  144. package/dist/cjs/transforms/extension.js +2 -7
  145. package/dist/cjs/transforms/index.js +0 -3
  146. package/dist/cjs/transforms/layout.js +9 -15
  147. package/dist/cjs/type-ahead/index.js +0 -3
  148. package/dist/cjs/types/annotation/emitter.js +0 -11
  149. package/dist/cjs/types/annotation/index.js +0 -1
  150. package/dist/cjs/types/index.js +0 -4
  151. package/dist/cjs/types/toolbar.js +0 -5
  152. package/dist/cjs/ufo/experience-store.js +0 -24
  153. package/dist/cjs/ufo/index.js +0 -1
  154. package/dist/cjs/ui/BaseTheme/index.js +3 -21
  155. package/dist/cjs/ui/Caption/index.js +5 -29
  156. package/dist/cjs/ui/Caption/messages.js +0 -2
  157. package/dist/cjs/ui/DropList/index.js +18 -51
  158. package/dist/cjs/ui/Emoji/index.js +7 -33
  159. package/dist/cjs/ui/ErrorBoundary/index.js +0 -22
  160. package/dist/cjs/ui/Expand/index.js +5 -31
  161. package/dist/cjs/ui/IntlErrorBoundary/index.js +0 -24
  162. package/dist/cjs/ui/IntlProviderIfMissingWrapper/index.js +0 -9
  163. package/dist/cjs/ui/Layer/index.js +16 -46
  164. package/dist/cjs/ui/Layer/internal/helpers.js +0 -2
  165. package/dist/cjs/ui/MediaSingle/grid.js +0 -8
  166. package/dist/cjs/ui/MediaSingle/index.js +26 -44
  167. package/dist/cjs/ui/MediaSingle/link.js +0 -5
  168. package/dist/cjs/ui/MediaSingle/styled.js +11 -50
  169. package/dist/cjs/ui/Mention/index.js +5 -27
  170. package/dist/cjs/ui/Mention/mention-with-profilecard.js +8 -16
  171. package/dist/cjs/ui/Mention/mention-with-providers.js +5 -33
  172. package/dist/cjs/ui/Messages/index.js +0 -18
  173. package/dist/cjs/ui/OverflowShadow/index.js +3 -48
  174. package/dist/cjs/ui/OverflowShadow/shadowObserver.js +2 -26
  175. package/dist/cjs/ui/Popup/index.js +28 -80
  176. package/dist/cjs/ui/Popup/utils.js +67 -132
  177. package/dist/cjs/ui/PortalProvider/PortalProviderThemesProvider.js +3 -13
  178. package/dist/cjs/ui/PortalProvider/index.js +16 -73
  179. package/dist/cjs/ui/UnsupportedBlock/index.js +5 -29
  180. package/dist/cjs/ui/UnsupportedInline/index.js +5 -29
  181. package/dist/cjs/ui/WidthProvider/index.js +1 -31
  182. package/dist/cjs/ui/WithCreateAnalyticsEvent/index.js +2 -16
  183. package/dist/cjs/ui/clear-next-sibling-margin-top.js +0 -5
  184. package/dist/cjs/ui/index.js +0 -23
  185. package/dist/cjs/ui/unsupported-content-helper.js +0 -5
  186. package/dist/cjs/ui/with-outer-listeners.js +0 -25
  187. package/dist/cjs/ui-color/ColorPalette/Color/index.js +12 -40
  188. package/dist/cjs/ui-color/ColorPalette/Color/styles.js +0 -10
  189. package/dist/cjs/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.js +0 -7
  190. package/dist/cjs/ui-color/ColorPalette/Palettes/common.js +4 -12
  191. package/dist/cjs/ui-color/ColorPalette/Palettes/getColorMessage.js +0 -3
  192. package/dist/cjs/ui-color/ColorPalette/Palettes/index.js +0 -1
  193. package/dist/cjs/ui-color/ColorPalette/Palettes/paletteMessages.js +0 -3
  194. package/dist/cjs/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +0 -8
  195. package/dist/cjs/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +0 -10
  196. package/dist/cjs/ui-color/ColorPalette/Palettes/statusColorPalette.js +0 -7
  197. package/dist/cjs/ui-color/ColorPalette/Palettes/textColorPalette.js +2 -9
  198. package/dist/cjs/ui-color/ColorPalette/index.js +16 -38
  199. package/dist/cjs/ui-color/ColorPalette/styles.js +0 -6
  200. package/dist/cjs/ui-color/index.js +0 -9
  201. package/dist/cjs/ui-menu/Dropdown/index.js +15 -39
  202. package/dist/cjs/ui-menu/DropdownMenu/index.js +43 -79
  203. package/dist/cjs/ui-menu/MenuArrowKeyNavigationProvider/index.js +66 -82
  204. package/dist/cjs/ui-menu/ToolbarButton/index.js +23 -46
  205. package/dist/cjs/ui-menu/ToolbarButton/styles.js +0 -6
  206. package/dist/cjs/ui-menu/index.js +0 -7
  207. package/dist/cjs/ui-react/ReactEditorViewContext.js +0 -4
  208. package/dist/cjs/ui-react/index.js +0 -3
  209. package/dist/cjs/ui-react/with-react-editor-view-outer-listeners.js +12 -52
  210. package/dist/cjs/utils/analytics.js +0 -14
  211. package/dist/cjs/utils/annotation/index.js +5 -13
  212. package/dist/cjs/utils/breakout.js +7 -23
  213. package/dist/cjs/utils/browser-extensions.js +28 -56
  214. package/dist/cjs/utils/browser.js +0 -2
  215. package/dist/cjs/utils/builder.js +0 -10
  216. package/dist/cjs/utils/collab.js +0 -4
  217. package/dist/cjs/utils/compare-props.js +11 -25
  218. package/dist/cjs/utils/compareNodes.js +7 -53
  219. package/dist/cjs/utils/compose.js +0 -2
  220. package/dist/cjs/utils/date.js +4 -25
  221. package/dist/cjs/utils/dom.js +6 -29
  222. package/dist/cjs/utils/editor-core-utils.js +8 -33
  223. package/dist/cjs/utils/error-reporter.js +0 -7
  224. package/dist/cjs/utils/extension-handler.js +0 -3
  225. package/dist/cjs/utils/get-performance-options.js +4 -12
  226. package/dist/cjs/utils/getModeFromTheme.js +0 -1
  227. package/dist/cjs/utils/imageLoader.js +0 -27
  228. package/dist/cjs/utils/index.js +0 -40
  229. package/dist/cjs/utils/is-text-input.js +5 -11
  230. package/dist/cjs/utils/list.js +3 -13
  231. package/dist/cjs/utils/macro.js +1 -7
  232. package/dist/cjs/utils/nodes.js +4 -31
  233. package/dist/cjs/utils/outdated-browsers.js +0 -10
  234. package/dist/cjs/utils/performance/hooks/use-component-render-tracking/index.js +4 -14
  235. package/dist/cjs/utils/performance/is-performance-api-available.js +0 -4
  236. package/dist/cjs/utils/performance/measure-render.js +1 -11
  237. package/dist/cjs/utils/performance/measure-tti.js +3 -17
  238. package/dist/cjs/utils/performance/measure.js +0 -11
  239. package/dist/cjs/utils/performance/navigation.js +0 -5
  240. package/dist/cjs/utils/plugin-state-factory.js +3 -11
  241. package/dist/cjs/utils/profiler/render-count.js +4 -24
  242. package/dist/cjs/utils/referentiality.js +30 -88
  243. package/dist/cjs/utils/sendLogs.js +0 -2
  244. package/dist/cjs/utils/should-force-tracking.js +4 -7
  245. package/dist/cjs/utils/slice.js +0 -17
  246. package/dist/cjs/utils/table.js +4 -13
  247. package/dist/cjs/utils/track-unsupported-content.js +14 -39
  248. package/dist/cjs/utils/traversor.js +0 -14
  249. package/dist/cjs/utils/unsupportedContent/get-unsupported-content-level-data.js +5 -21
  250. package/dist/cjs/utils/validate-using-spec.js +5 -36
  251. package/dist/cjs/utils/validator.js +26 -188
  252. package/dist/cjs/validator.js +0 -1
  253. package/dist/cjs/version.json +1 -1
  254. package/dist/cjs/with-plugin-state/index.js +7 -55
  255. package/dist/es2019/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +0 -3
  256. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/delete.js +0 -1
  257. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/edit.js +0 -2
  258. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/insert.js +0 -1
  259. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/delete.js +0 -1
  260. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/edit.js +0 -2
  261. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/insert.js +0 -1
  262. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/delete.js +0 -1
  263. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/edit.js +0 -2
  264. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/insert.js +0 -1
  265. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +0 -1
  266. package/dist/es2019/__tests_external__/cases/smart-links/test-cases/url/insert.js +0 -1
  267. package/dist/es2019/__tests_external__/page-objects/Editor.js +0 -4
  268. package/dist/es2019/__tests_external__/page-objects/EditorSmartLink.js +0 -28
  269. package/dist/es2019/__tests_external__/page-objects/Renderer.js +0 -2
  270. package/dist/es2019/analytics/types/enums.js +1 -16
  271. package/dist/es2019/analytics/types/extension-events.js +2 -3
  272. package/dist/es2019/analytics/types/format-events.js +0 -3
  273. package/dist/es2019/analytics/types/general-events.js +0 -7
  274. package/dist/es2019/analytics/types/inline-comment-events.js +0 -1
  275. package/dist/es2019/analytics/types/insert-events.js +0 -7
  276. package/dist/es2019/analytics/types/list-events.js +0 -3
  277. package/dist/es2019/analytics/types/node-events.js +0 -3
  278. package/dist/es2019/analytics/types/substitute-events.js +0 -3
  279. package/dist/es2019/analytics/types/table-events.js +2 -3
  280. package/dist/es2019/analytics/types/toolbar-button.js +0 -1
  281. package/dist/es2019/analytics/types/utils.js +0 -3
  282. package/dist/es2019/event-dispatcher/index.js +1 -12
  283. package/dist/es2019/extensions/combine-extension-providers.js +0 -5
  284. package/dist/es2019/extensions/default-extension-provider.js +0 -8
  285. package/dist/es2019/extensions/extension-fields-helpers.js +4 -10
  286. package/dist/es2019/extensions/extension-handlers.js +1 -8
  287. package/dist/es2019/extensions/manifest-helpers.js +2 -7
  288. package/dist/es2019/extensions/module-helpers.js +10 -43
  289. package/dist/es2019/extensions/types/field-definitions.js +1 -0
  290. package/dist/es2019/icons/index.js +1 -3
  291. package/dist/es2019/icons/shared/PanelErrorIcon.js +0 -2
  292. package/dist/es2019/icons/shared/PanelInfoIcon.js +0 -2
  293. package/dist/es2019/icons/shared/PanelNoteIcon.js +0 -2
  294. package/dist/es2019/icons/shared/PanelSuccessIcon.js +0 -2
  295. package/dist/es2019/icons/shared/PanelWarningIcon.js +0 -2
  296. package/dist/es2019/keymaps/index.js +0 -24
  297. package/dist/es2019/node-width/index.js +3 -14
  298. package/dist/es2019/normalize-feature-flags.js +1 -11
  299. package/dist/es2019/provider-factory/context.js +0 -1
  300. package/dist/es2019/provider-factory/provider-factory.js +0 -25
  301. package/dist/es2019/provider-factory/with-providers.js +2 -8
  302. package/dist/es2019/provider-helpers/combine-providers.js +3 -13
  303. package/dist/es2019/provider-helpers/promise-helpers.js +3 -10
  304. package/dist/es2019/react-node-view/index.js +10 -34
  305. package/dist/es2019/safe-plugin/index.js +1 -1
  306. package/dist/es2019/selection/gap-cursor/selection.js +6 -31
  307. package/dist/es2019/selection/types.js +0 -1
  308. package/dist/es2019/selection/utils.js +0 -8
  309. package/dist/es2019/styles/shared/headings.js +3 -2
  310. package/dist/es2019/styles/shared/lists.js +0 -8
  311. package/dist/es2019/styles/shared/panel.js +13 -12
  312. package/dist/es2019/styles/shared/paragraph.js +2 -1
  313. package/dist/es2019/styles/shared/rule.js +2 -1
  314. package/dist/es2019/styles/shared/shadow.js +2 -0
  315. package/dist/es2019/styles/shared/table.js +1 -5
  316. package/dist/es2019/transforms/expand.js +3 -3
  317. package/dist/es2019/transforms/extension.js +3 -4
  318. package/dist/es2019/transforms/layout.js +9 -10
  319. package/dist/es2019/type-ahead/index.js +0 -3
  320. package/dist/es2019/types/annotation/emitter.js +0 -8
  321. package/dist/es2019/types/index.js +0 -2
  322. package/dist/es2019/types/toolbar.js +0 -5
  323. package/dist/es2019/ufo/experience-store.js +0 -25
  324. package/dist/es2019/ui/BaseTheme/index.js +0 -2
  325. package/dist/es2019/ui/Caption/index.js +0 -2
  326. package/dist/es2019/ui/DropList/index.js +9 -25
  327. package/dist/es2019/ui/Emoji/index.js +0 -11
  328. package/dist/es2019/ui/ErrorBoundary/index.js +0 -8
  329. package/dist/es2019/ui/Expand/index.js +2 -10
  330. package/dist/es2019/ui/IntlErrorBoundary/index.js +0 -8
  331. package/dist/es2019/ui/IntlProviderIfMissingWrapper/index.js +0 -4
  332. package/dist/es2019/ui/Layer/index.js +13 -29
  333. package/dist/es2019/ui/Layer/internal/helpers.js +0 -2
  334. package/dist/es2019/ui/MediaSingle/index.js +7 -12
  335. package/dist/es2019/ui/MediaSingle/styled.js +2 -25
  336. package/dist/es2019/ui/Mention/index.js +0 -5
  337. package/dist/es2019/ui/Mention/mention-with-providers.js +0 -8
  338. package/dist/es2019/ui/Messages/index.js +1 -2
  339. package/dist/es2019/ui/OverflowShadow/index.js +0 -32
  340. package/dist/es2019/ui/OverflowShadow/shadowObserver.js +0 -14
  341. package/dist/es2019/ui/Popup/index.js +11 -59
  342. package/dist/es2019/ui/Popup/utils.js +18 -57
  343. package/dist/es2019/ui/PortalProvider/PortalProviderThemesProvider.js +2 -1
  344. package/dist/es2019/ui/PortalProvider/index.js +7 -35
  345. package/dist/es2019/ui/UnsupportedBlock/index.js +0 -2
  346. package/dist/es2019/ui/UnsupportedInline/index.js +0 -2
  347. package/dist/es2019/ui/WidthProvider/index.js +0 -9
  348. package/dist/es2019/ui/WithCreateAnalyticsEvent/index.js +0 -1
  349. package/dist/es2019/ui/clear-next-sibling-margin-top.js +2 -1
  350. package/dist/es2019/ui/unsupported-content-helper.js +0 -4
  351. package/dist/es2019/ui/with-outer-listeners.js +0 -8
  352. package/dist/es2019/ui-color/ColorPalette/Color/index.js +0 -10
  353. package/dist/es2019/ui-color/ColorPalette/Color/styles.js +1 -4
  354. package/dist/es2019/ui-color/ColorPalette/Palettes/common.js +2 -4
  355. package/dist/es2019/ui-color/ColorPalette/Palettes/getColorMessage.js +0 -2
  356. package/dist/es2019/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +5 -3
  357. package/dist/es2019/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +4 -4
  358. package/dist/es2019/ui-color/ColorPalette/Palettes/statusColorPalette.js +0 -2
  359. package/dist/es2019/ui-color/ColorPalette/Palettes/textColorPalette.js +2 -3
  360. package/dist/es2019/ui-color/ColorPalette/index.js +3 -10
  361. package/dist/es2019/ui-menu/Dropdown/index.js +1 -8
  362. package/dist/es2019/ui-menu/DropdownMenu/index.js +23 -27
  363. package/dist/es2019/ui-menu/MenuArrowKeyNavigationProvider/index.js +59 -73
  364. package/dist/es2019/ui-menu/ToolbarButton/index.js +2 -6
  365. package/dist/es2019/ui-react/with-react-editor-view-outer-listeners.js +7 -25
  366. package/dist/es2019/utils/analytics.js +0 -8
  367. package/dist/es2019/utils/annotation/index.js +3 -7
  368. package/dist/es2019/utils/breakout.js +6 -13
  369. package/dist/es2019/utils/browser-extensions.js +10 -22
  370. package/dist/es2019/utils/browser.js +0 -2
  371. package/dist/es2019/utils/builder.js +0 -2
  372. package/dist/es2019/utils/collab.js +0 -2
  373. package/dist/es2019/utils/compare-props.js +5 -4
  374. package/dist/es2019/utils/compareNodes.js +3 -42
  375. package/dist/es2019/utils/date.js +4 -11
  376. package/dist/es2019/utils/dom.js +6 -19
  377. package/dist/es2019/utils/editor-core-utils.js +6 -11
  378. package/dist/es2019/utils/error-reporter.js +0 -4
  379. package/dist/es2019/utils/get-performance-options.js +3 -3
  380. package/dist/es2019/utils/imageLoader.js +0 -11
  381. package/dist/es2019/utils/is-text-input.js +1 -2
  382. package/dist/es2019/utils/list.js +3 -7
  383. package/dist/es2019/utils/macro.js +0 -3
  384. package/dist/es2019/utils/nodes.js +3 -11
  385. package/dist/es2019/utils/outdated-browsers.js +0 -8
  386. package/dist/es2019/utils/performance/hooks/use-component-render-tracking/index.js +0 -4
  387. package/dist/es2019/utils/performance/is-performance-api-available.js +0 -1
  388. package/dist/es2019/utils/performance/measure-render.js +2 -10
  389. package/dist/es2019/utils/performance/measure-tti.js +3 -11
  390. package/dist/es2019/utils/performance/measure.js +0 -6
  391. package/dist/es2019/utils/performance/navigation.js +0 -3
  392. package/dist/es2019/utils/plugin-state-factory.js +1 -10
  393. package/dist/es2019/utils/profiler/render-count.js +10 -23
  394. package/dist/es2019/utils/referentiality.js +24 -65
  395. package/dist/es2019/utils/should-force-tracking.js +2 -1
  396. package/dist/es2019/utils/slice.js +1 -9
  397. package/dist/es2019/utils/table.js +2 -6
  398. package/dist/es2019/utils/track-unsupported-content.js +6 -11
  399. package/dist/es2019/utils/traversor.js +0 -13
  400. package/dist/es2019/utils/unsupportedContent/get-unsupported-content-level-data.js +3 -15
  401. package/dist/es2019/utils/validate-using-spec.js +3 -25
  402. package/dist/es2019/utils/validator.js +10 -149
  403. package/dist/es2019/version.json +1 -1
  404. package/dist/es2019/with-plugin-state/index.js +5 -46
  405. package/dist/esm/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +0 -3
  406. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/delete.js +1 -2
  407. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/edit.js +2 -4
  408. package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/insert.js +1 -2
  409. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/delete.js +1 -2
  410. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/edit.js +2 -4
  411. package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/insert.js +1 -2
  412. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/delete.js +1 -2
  413. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/edit.js +2 -4
  414. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/insert.js +1 -2
  415. package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +1 -2
  416. package/dist/esm/__tests_external__/cases/smart-links/test-cases/url/insert.js +1 -2
  417. package/dist/esm/__tests_external__/page-objects/Editor.js +0 -9
  418. package/dist/esm/__tests_external__/page-objects/EditorSmartLink.js +0 -23
  419. package/dist/esm/__tests_external__/page-objects/Renderer.js +0 -8
  420. package/dist/esm/analytics/types/enums.js +1 -16
  421. package/dist/esm/analytics/types/extension-events.js +2 -3
  422. package/dist/esm/analytics/types/format-events.js +0 -3
  423. package/dist/esm/analytics/types/general-events.js +0 -7
  424. package/dist/esm/analytics/types/inline-comment-events.js +0 -1
  425. package/dist/esm/analytics/types/insert-events.js +0 -7
  426. package/dist/esm/analytics/types/list-events.js +0 -3
  427. package/dist/esm/analytics/types/node-events.js +0 -3
  428. package/dist/esm/analytics/types/substitute-events.js +0 -3
  429. package/dist/esm/analytics/types/table-events.js +2 -3
  430. package/dist/esm/analytics/types/toolbar-button.js +0 -1
  431. package/dist/esm/analytics/types/utils.js +0 -3
  432. package/dist/esm/core-utils/inside.js +2 -2
  433. package/dist/esm/event-dispatcher/index.js +1 -9
  434. package/dist/esm/extensions/combine-extension-providers.js +2 -4
  435. package/dist/esm/extensions/default-extension-provider.js +0 -22
  436. package/dist/esm/extensions/extension-fields-helpers.js +3 -29
  437. package/dist/esm/extensions/extension-handlers.js +1 -18
  438. package/dist/esm/extensions/manifest-helpers.js +4 -17
  439. package/dist/esm/extensions/module-helpers.js +17 -74
  440. package/dist/esm/extensions/types/field-definitions.js +1 -0
  441. package/dist/esm/icons/index.js +1 -3
  442. package/dist/esm/icons/shared/PanelErrorIcon.js +0 -2
  443. package/dist/esm/icons/shared/PanelInfoIcon.js +0 -2
  444. package/dist/esm/icons/shared/PanelNoteIcon.js +0 -2
  445. package/dist/esm/icons/shared/PanelSuccessIcon.js +0 -2
  446. package/dist/esm/icons/shared/PanelWarningIcon.js +0 -2
  447. package/dist/esm/keymaps/index.js +2 -28
  448. package/dist/esm/node-width/index.js +3 -14
  449. package/dist/esm/normalize-feature-flags.js +6 -19
  450. package/dist/esm/provider-factory/context.js +3 -5
  451. package/dist/esm/provider-factory/provider-factory.js +0 -18
  452. package/dist/esm/provider-factory/with-providers.js +5 -23
  453. package/dist/esm/provider-helpers/combine-providers.js +3 -27
  454. package/dist/esm/provider-helpers/promise-helpers.js +3 -10
  455. package/dist/esm/react-node-view/index.js +18 -42
  456. package/dist/esm/safe-plugin/index.js +1 -7
  457. package/dist/esm/selection/gap-cursor/selection.js +8 -35
  458. package/dist/esm/selection/types.js +0 -1
  459. package/dist/esm/selection/utils.js +0 -8
  460. package/dist/esm/styles/shared/annotation.js +0 -2
  461. package/dist/esm/styles/shared/block-marks.js +0 -2
  462. package/dist/esm/styles/shared/blockquote.js +0 -2
  463. package/dist/esm/styles/shared/code-block.js +0 -2
  464. package/dist/esm/styles/shared/code-mark.js +0 -2
  465. package/dist/esm/styles/shared/column-layout.js +0 -2
  466. package/dist/esm/styles/shared/date.js +0 -2
  467. package/dist/esm/styles/shared/headings.js +3 -4
  468. package/dist/esm/styles/shared/indentation.js +0 -2
  469. package/dist/esm/styles/shared/link.js +0 -2
  470. package/dist/esm/styles/shared/lists.js +2 -13
  471. package/dist/esm/styles/shared/media-single.js +0 -2
  472. package/dist/esm/styles/shared/panel.js +15 -17
  473. package/dist/esm/styles/shared/paragraph.js +2 -3
  474. package/dist/esm/styles/shared/rule.js +2 -3
  475. package/dist/esm/styles/shared/shadow.js +2 -2
  476. package/dist/esm/styles/shared/table.js +1 -8
  477. package/dist/esm/styles/shared/task-decision.js +0 -2
  478. package/dist/esm/styles/shared/text-color.js +0 -2
  479. package/dist/esm/styles/shared/whitespace.js +0 -2
  480. package/dist/esm/transforms/expand.js +7 -7
  481. package/dist/esm/transforms/extension.js +3 -4
  482. package/dist/esm/transforms/layout.js +9 -10
  483. package/dist/esm/type-ahead/index.js +0 -3
  484. package/dist/esm/types/annotation/emitter.js +0 -6
  485. package/dist/esm/types/index.js +0 -2
  486. package/dist/esm/types/toolbar.js +0 -5
  487. package/dist/esm/ufo/experience-store.js +0 -19
  488. package/dist/esm/ui/BaseTheme/index.js +3 -7
  489. package/dist/esm/ui/Caption/index.js +5 -14
  490. package/dist/esm/ui/DropList/index.js +18 -47
  491. package/dist/esm/ui/Emoji/index.js +7 -26
  492. package/dist/esm/ui/ErrorBoundary/index.js +0 -14
  493. package/dist/esm/ui/Expand/index.js +5 -15
  494. package/dist/esm/ui/IntlErrorBoundary/index.js +0 -16
  495. package/dist/esm/ui/IntlProviderIfMissingWrapper/index.js +0 -4
  496. package/dist/esm/ui/Layer/index.js +16 -39
  497. package/dist/esm/ui/Layer/internal/helpers.js +0 -2
  498. package/dist/esm/ui/MediaSingle/index.js +25 -32
  499. package/dist/esm/ui/MediaSingle/link.js +0 -2
  500. package/dist/esm/ui/MediaSingle/styled.js +11 -39
  501. package/dist/esm/ui/Mention/index.js +5 -18
  502. package/dist/esm/ui/Mention/mention-with-profilecard.js +8 -8
  503. package/dist/esm/ui/Mention/mention-with-providers.js +5 -21
  504. package/dist/esm/ui/Messages/index.js +1 -4
  505. package/dist/esm/ui/OverflowShadow/index.js +3 -46
  506. package/dist/esm/ui/OverflowShadow/shadowObserver.js +2 -27
  507. package/dist/esm/ui/Popup/index.js +28 -80
  508. package/dist/esm/ui/Popup/utils.js +67 -123
  509. package/dist/esm/ui/PortalProvider/PortalProviderThemesProvider.js +3 -3
  510. package/dist/esm/ui/PortalProvider/index.js +17 -61
  511. package/dist/esm/ui/UnsupportedBlock/index.js +5 -11
  512. package/dist/esm/ui/UnsupportedInline/index.js +5 -11
  513. package/dist/esm/ui/WidthProvider/index.js +1 -17
  514. package/dist/esm/ui/WithCreateAnalyticsEvent/index.js +2 -10
  515. package/dist/esm/ui/clear-next-sibling-margin-top.js +2 -3
  516. package/dist/esm/ui/unsupported-content-helper.js +0 -4
  517. package/dist/esm/ui/with-outer-listeners.js +0 -15
  518. package/dist/esm/ui-color/ColorPalette/Color/index.js +12 -27
  519. package/dist/esm/ui-color/ColorPalette/Color/styles.js +1 -6
  520. package/dist/esm/ui-color/ColorPalette/Palettes/common.js +5 -7
  521. package/dist/esm/ui-color/ColorPalette/Palettes/getColorMessage.js +0 -2
  522. package/dist/esm/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +2 -4
  523. package/dist/esm/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +0 -5
  524. package/dist/esm/ui-color/ColorPalette/Palettes/statusColorPalette.js +0 -2
  525. package/dist/esm/ui-color/ColorPalette/Palettes/textColorPalette.js +2 -3
  526. package/dist/esm/ui-color/ColorPalette/index.js +16 -24
  527. package/dist/esm/ui-color/ColorPalette/styles.js +0 -2
  528. package/dist/esm/ui-menu/Dropdown/index.js +15 -28
  529. package/dist/esm/ui-menu/DropdownMenu/index.js +43 -60
  530. package/dist/esm/ui-menu/MenuArrowKeyNavigationProvider/index.js +66 -78
  531. package/dist/esm/ui-menu/ToolbarButton/index.js +23 -32
  532. package/dist/esm/ui-react/with-react-editor-view-outer-listeners.js +12 -41
  533. package/dist/esm/utils/analytics.js +0 -8
  534. package/dist/esm/utils/annotation/index.js +5 -9
  535. package/dist/esm/utils/breakout.js +8 -15
  536. package/dist/esm/utils/browser-extensions.js +28 -55
  537. package/dist/esm/utils/browser.js +0 -2
  538. package/dist/esm/utils/builder.js +0 -4
  539. package/dist/esm/utils/collab.js +0 -2
  540. package/dist/esm/utils/compare-props.js +10 -15
  541. package/dist/esm/utils/compareNodes.js +7 -48
  542. package/dist/esm/utils/compose.js +0 -1
  543. package/dist/esm/utils/date.js +4 -11
  544. package/dist/esm/utils/dom.js +6 -19
  545. package/dist/esm/utils/editor-core-utils.js +8 -13
  546. package/dist/esm/utils/error-reporter.js +0 -5
  547. package/dist/esm/utils/get-performance-options.js +7 -7
  548. package/dist/esm/utils/imageLoader.js +0 -18
  549. package/dist/esm/utils/is-text-input.js +5 -6
  550. package/dist/esm/utils/list.js +3 -7
  551. package/dist/esm/utils/macro.js +1 -5
  552. package/dist/esm/utils/nodes.js +5 -13
  553. package/dist/esm/utils/outdated-browsers.js +0 -8
  554. package/dist/esm/utils/performance/hooks/use-component-render-tracking/index.js +4 -10
  555. package/dist/esm/utils/performance/is-performance-api-available.js +0 -1
  556. package/dist/esm/utils/performance/measure-render.js +2 -9
  557. package/dist/esm/utils/performance/measure-tti.js +3 -12
  558. package/dist/esm/utils/performance/measure.js +0 -6
  559. package/dist/esm/utils/performance/navigation.js +0 -3
  560. package/dist/esm/utils/plugin-state-factory.js +3 -10
  561. package/dist/esm/utils/profiler/render-count.js +4 -21
  562. package/dist/esm/utils/referentiality.js +30 -80
  563. package/dist/esm/utils/should-force-tracking.js +4 -4
  564. package/dist/esm/utils/slice.js +1 -10
  565. package/dist/esm/utils/table.js +4 -8
  566. package/dist/esm/utils/track-unsupported-content.js +14 -31
  567. package/dist/esm/utils/traversor.js +0 -13
  568. package/dist/esm/utils/unsupportedContent/get-unsupported-content-level-data.js +5 -18
  569. package/dist/esm/utils/validate-using-spec.js +5 -29
  570. package/dist/esm/utils/validator.js +26 -170
  571. package/dist/esm/version.json +1 -1
  572. package/dist/esm/with-plugin-state/index.js +7 -55
  573. package/dist/types/analytics/types/enums.d.ts +1 -1
  574. package/dist/types/analytics/types/events.d.ts +3 -2
  575. package/dist/types/analytics/types/general-events.d.ts +8 -3
  576. package/dist/types/types/editor-plugin.d.ts +24 -2
  577. package/dist/types/types/floating-toolbar.d.ts +10 -0
  578. package/dist/types/types/type-ahead.d.ts +8 -0
  579. package/dist/types/ui-menu/DropdownMenu/index.d.ts +1 -1
  580. package/dist/types/ui-menu/DropdownMenu/types.d.ts +1 -0
  581. package/dist/types/ui-menu/MenuArrowKeyNavigationProvider/index.d.ts +3 -2
  582. package/dist/types/ui-react/with-react-editor-view-outer-listeners.d.ts +1 -1
  583. package/package.json +8 -8
@@ -4,7 +4,6 @@ export const ADFStages = {
4
4
  FINAL: 'final',
5
5
  STAGE_0: 'stage0'
6
6
  };
7
-
8
7
  /*
9
8
  * It's important that this order follows the marks rank defined here:
10
9
  * https://product-fabric.atlassian.net/wiki/spaces/E/pages/11174043/Document+structure#Documentstructure-Rank
@@ -13,57 +12,49 @@ export const markOrder = ['fragment', 'link', 'em', 'strong', 'textColor', 'stri
13
12
  export const isSubSupType = type => {
14
13
  return type === 'sub' || type === 'sup';
15
14
  };
15
+
16
16
  /*
17
17
  * Sorts mark by the predefined order above
18
18
  */
19
-
20
19
  export const getMarksByOrder = marks => {
21
20
  return [...marks].sort((a, b) => markOrder.indexOf(a.type.name) - markOrder.indexOf(b.type.name));
22
21
  };
22
+
23
23
  /*
24
24
  * Check if two marks are the same by comparing type and attrs
25
25
  */
26
-
27
26
  export const isSameMark = (mark, otherMark) => {
28
27
  if (!mark || !otherMark) {
29
28
  return false;
30
29
  }
31
-
32
30
  return mark.eq(otherMark);
33
31
  };
34
32
  export const getValidDocument = (doc, schema = defaultSchema, adfStage = 'final') => {
35
33
  const node = getValidNode(doc, schema, adfStage);
36
-
37
34
  if (node.type === 'doc') {
38
35
  node.content = wrapInlineNodes(node.content);
39
36
  return node;
40
37
  }
41
-
42
38
  return null;
43
39
  };
44
-
45
40
  const wrapInlineNodes = (nodes = []) => {
46
41
  return nodes.map(node => inlineNodes.has(node.type) ? {
47
42
  type: 'paragraph',
48
43
  content: [node]
49
44
  } : node);
50
45
  };
51
-
52
46
  export const getValidContent = (content, schema = defaultSchema, adfStage = 'final') => {
53
47
  return content.map(node => getValidNode(node, schema, adfStage));
54
48
  };
55
49
  const TEXT_COLOR_PATTERN = /^#[0-9a-fA-F]{6}$/;
56
50
  const RELATIVE_LINK = /^\//;
57
51
  const ANCHOR_LINK = /^#/;
58
-
59
52
  const flattenUnknownBlockTree = (node, schema = defaultSchema, adfStage = 'final') => {
60
53
  const output = [];
61
54
  let isPrevLeafNode = false;
62
-
63
55
  for (let i = 0; i < node.content.length; i++) {
64
56
  const childNode = node.content[i];
65
57
  const isLeafNode = !(childNode.content && childNode.content.length);
66
-
67
58
  if (i > 0) {
68
59
  if (isPrevLeafNode) {
69
60
  output.push({
@@ -76,25 +67,21 @@ const flattenUnknownBlockTree = (node, schema = defaultSchema, adfStage = 'final
76
67
  });
77
68
  }
78
69
  }
79
-
80
70
  if (isLeafNode) {
81
71
  output.push(getValidNode(childNode, schema, adfStage));
82
72
  } else {
83
73
  output.push(...flattenUnknownBlockTree(childNode, schema, adfStage));
84
74
  }
85
-
86
75
  isPrevLeafNode = isLeafNode;
87
76
  }
88
-
89
77
  return output;
90
78
  };
79
+
91
80
  /**
92
81
  * Sanitize unknown node tree
93
82
  *
94
83
  * @see https://product-fabric.atlassian.net/wiki/spaces/E/pages/11174043/Document+structure#Documentstructure-ImplementationdetailsforHCNGwebrenderer
95
84
  */
96
-
97
-
98
85
  export const getValidUnknownNode = node => {
99
86
  const {
100
87
  attrs = {},
@@ -102,7 +89,6 @@ export const getValidUnknownNode = node => {
102
89
  text,
103
90
  type
104
91
  } = node;
105
-
106
92
  if (!content || !content.length) {
107
93
  const unknownInlineNode = {
108
94
  type: 'text',
@@ -111,7 +97,6 @@ export const getValidUnknownNode = node => {
111
97
  const {
112
98
  textUrl
113
99
  } = attrs;
114
-
115
100
  if (textUrl && isSafeUrl(textUrl)) {
116
101
  unknownInlineNode.marks = [{
117
102
  type: 'link',
@@ -120,37 +105,32 @@ export const getValidUnknownNode = node => {
120
105
  }
121
106
  }];
122
107
  }
123
-
124
108
  return unknownInlineNode;
125
109
  }
110
+
126
111
  /*
127
112
  * Find leaf nodes and join them. If leaf nodes' parent node is the same node
128
113
  * join with a blank space, otherwise they are children of different branches, i.e.
129
114
  * we need to join them with a hardBreak node
130
115
  */
131
-
132
-
133
116
  return {
134
117
  type: 'unknownBlock',
135
118
  content: flattenUnknownBlockTree(node)
136
119
  };
137
120
  };
138
-
139
121
  const getValidMarks = (marks, adfStage = 'final') => {
140
122
  if (marks && marks.length > 0) {
141
123
  return marks.reduce((acc, mark) => {
142
124
  const validMark = getValidMark(mark, adfStage);
143
-
144
125
  if (validMark) {
145
126
  acc.push(validMark);
146
127
  }
147
-
148
128
  return acc;
149
129
  }, []);
150
130
  }
151
-
152
131
  return marks;
153
132
  };
133
+
154
134
  /*
155
135
  * This method will validate a Node according to the spec defined here
156
136
  * https://product-fabric.atlassian.net/wiki/spaces/E/pages/11174043/Document+structure#Documentstructure-Nodes
@@ -160,8 +140,6 @@ const getValidMarks = (marks, adfStage = 'final') => {
160
140
  * If a node is not recognized or is missing required attributes, we should return 'unknown'
161
141
  *
162
142
  */
163
-
164
-
165
143
  export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'final') => {
166
144
  const {
167
145
  attrs,
@@ -178,16 +156,14 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
178
156
  text,
179
157
  type
180
158
  };
181
-
182
159
  if (content) {
183
160
  node.content = content = getValidContent(content, schema, adfStage);
184
- } // If node type doesn't exist in schema, make it an unknown node
185
-
161
+ }
186
162
 
163
+ // If node type doesn't exist in schema, make it an unknown node
187
164
  if (!schema.nodes[type]) {
188
165
  return getValidUnknownNode(node);
189
166
  }
190
-
191
167
  if (type) {
192
168
  switch (type) {
193
169
  case 'doc':
@@ -195,17 +171,14 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
195
171
  const {
196
172
  version
197
173
  } = originalNode;
198
-
199
174
  if (version && content && content.length) {
200
175
  return {
201
176
  type,
202
177
  content
203
178
  };
204
179
  }
205
-
206
180
  break;
207
181
  }
208
-
209
182
  case 'codeBlock':
210
183
  {
211
184
  if (content) {
@@ -216,11 +189,9 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
216
189
  text: val.text
217
190
  });
218
191
  }
219
-
220
192
  return acc;
221
193
  }, []);
222
194
  }
223
-
224
195
  if (attrs && attrs.language) {
225
196
  return {
226
197
  type,
@@ -229,14 +200,12 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
229
200
  marks
230
201
  };
231
202
  }
232
-
233
203
  return {
234
204
  type,
235
205
  content,
236
206
  marks
237
207
  };
238
208
  }
239
-
240
209
  case 'date':
241
210
  {
242
211
  if (attrs && attrs.timestamp) {
@@ -245,10 +214,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
245
214
  attrs
246
215
  };
247
216
  }
248
-
249
217
  break;
250
218
  }
251
-
252
219
  case 'status':
253
220
  {
254
221
  if (attrs && attrs.text && attrs.color) {
@@ -257,10 +224,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
257
224
  attrs
258
225
  };
259
226
  }
260
-
261
227
  break;
262
228
  }
263
-
264
229
  case 'emoji':
265
230
  {
266
231
  if (attrs && attrs.shortName) {
@@ -269,10 +234,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
269
234
  attrs
270
235
  };
271
236
  }
272
-
273
237
  break;
274
238
  }
275
-
276
239
  case 'inlineExtension':
277
240
  case 'extension':
278
241
  {
@@ -282,10 +245,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
282
245
  attrs
283
246
  };
284
247
  }
285
-
286
248
  break;
287
249
  }
288
-
289
250
  case 'inlineCard':
290
251
  case 'blockCard':
291
252
  {
@@ -295,10 +256,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
295
256
  attrs
296
257
  };
297
258
  }
298
-
299
259
  break;
300
260
  }
301
-
302
261
  case 'embedCard':
303
262
  {
304
263
  if (attrs && (attrs.url && isSafeUrl(attrs.url) || attrs.data && attrs.data.url && isSafeUrl(attrs.data.url)) && attrs.layout) {
@@ -307,10 +266,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
307
266
  attrs
308
267
  };
309
268
  }
310
-
311
269
  break;
312
270
  }
313
-
314
271
  case 'bodiedExtension':
315
272
  {
316
273
  if (attrs && attrs.extensionType && attrs.extensionKey && content) {
@@ -320,17 +277,14 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
320
277
  content
321
278
  };
322
279
  }
323
-
324
280
  break;
325
281
  }
326
-
327
282
  case 'hardBreak':
328
283
  {
329
284
  return {
330
285
  type
331
286
  };
332
287
  }
333
-
334
288
  case 'caption':
335
289
  {
336
290
  if (content) {
@@ -339,15 +293,12 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
339
293
  content
340
294
  };
341
295
  }
342
-
343
296
  break;
344
297
  }
345
-
346
298
  case 'mediaInline':
347
299
  {
348
300
  let mediaId = '';
349
301
  let mediaCollection = [];
350
-
351
302
  if (attrs) {
352
303
  const {
353
304
  id,
@@ -356,7 +307,6 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
356
307
  mediaId = id;
357
308
  mediaCollection = collection;
358
309
  }
359
-
360
310
  if (mediaId && mediaCollection) {
361
311
  return {
362
312
  type,
@@ -364,17 +314,14 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
364
314
  marks
365
315
  };
366
316
  }
367
-
368
317
  break;
369
318
  }
370
-
371
319
  case 'media':
372
320
  {
373
321
  let mediaId = '';
374
322
  let mediaType = '';
375
323
  let mediaCollection = [];
376
324
  let mediaUrl = '';
377
-
378
325
  if (attrs) {
379
326
  const {
380
327
  id,
@@ -387,7 +334,6 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
387
334
  mediaCollection = collection;
388
335
  mediaUrl = url;
389
336
  }
390
-
391
337
  if (mediaType === 'external' && !!mediaUrl) {
392
338
  const mediaAttrs = {
393
339
  type: mediaType,
@@ -395,11 +341,9 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
395
341
  width: attrs.width,
396
342
  height: attrs.height
397
343
  };
398
-
399
344
  if (attrs.alt) {
400
345
  mediaAttrs.alt = attrs.alt;
401
346
  }
402
-
403
347
  return {
404
348
  type,
405
349
  attrs: mediaAttrs
@@ -410,19 +354,15 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
410
354
  id: mediaId,
411
355
  collection: mediaCollection
412
356
  };
413
-
414
357
  if (attrs.width) {
415
358
  mediaAttrs.width = attrs.width;
416
359
  }
417
-
418
360
  if (attrs.height) {
419
361
  mediaAttrs.height = attrs.height;
420
362
  }
421
-
422
363
  if (attrs.alt) {
423
364
  mediaAttrs.alt = attrs.alt;
424
365
  }
425
-
426
366
  const getMarks = getValidMarks(marks, adfStage);
427
367
  return getMarks ? {
428
368
  type,
@@ -433,10 +373,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
433
373
  attrs: mediaAttrs
434
374
  };
435
375
  }
436
-
437
376
  break;
438
377
  }
439
-
440
378
  case 'mediaGroup':
441
379
  {
442
380
  if (Array.isArray(content) && !content.some(e => e.type !== 'media')) {
@@ -445,15 +383,12 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
445
383
  content
446
384
  };
447
385
  }
448
-
449
386
  break;
450
387
  }
451
-
452
388
  case 'mediaSingle':
453
389
  {
454
390
  const containsJustMedia = Array.isArray(content) && content.length === 1 && content[0].type === 'media';
455
391
  const containsMediaAndCaption = Array.isArray(content) && content.length === 2 && content[0].type === 'media' && content[1].type === 'caption';
456
-
457
392
  if (containsJustMedia || containsMediaAndCaption) {
458
393
  return {
459
394
  type,
@@ -462,16 +397,13 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
462
397
  marks: getValidMarks(marks, adfStage)
463
398
  };
464
399
  }
465
-
466
400
  break;
467
401
  }
468
-
469
402
  case 'mention':
470
403
  {
471
404
  let mentionText = '';
472
405
  let mentionId;
473
406
  let mentionAccess;
474
-
475
407
  if (attrs) {
476
408
  const {
477
409
  text,
@@ -483,11 +415,9 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
483
415
  mentionId = id;
484
416
  mentionAccess = accessLevel;
485
417
  }
486
-
487
418
  if (!mentionText) {
488
419
  mentionText = text || '@unknown';
489
420
  }
490
-
491
421
  if (mentionText && mentionId) {
492
422
  const mentionNode = {
493
423
  type,
@@ -497,17 +427,13 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
497
427
  accessLevel: ''
498
428
  }
499
429
  };
500
-
501
430
  if (mentionAccess) {
502
431
  mentionNode.attrs.accessLevel = mentionAccess;
503
432
  }
504
-
505
433
  return mentionNode;
506
434
  }
507
-
508
435
  break;
509
436
  }
510
-
511
437
  case 'paragraph':
512
438
  {
513
439
  return marks ? {
@@ -519,20 +445,17 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
519
445
  content: content || []
520
446
  };
521
447
  }
522
-
523
448
  case 'rule':
524
449
  {
525
450
  return {
526
451
  type
527
452
  };
528
453
  }
529
-
530
454
  case 'text':
531
455
  {
532
456
  let {
533
457
  marks
534
458
  } = node;
535
-
536
459
  if (text) {
537
460
  return marks ? {
538
461
  type,
@@ -543,19 +466,15 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
543
466
  text
544
467
  };
545
468
  }
546
-
547
469
  break;
548
470
  }
549
-
550
471
  case 'heading':
551
472
  {
552
473
  if (attrs) {
553
474
  const {
554
475
  level
555
476
  } = attrs;
556
-
557
477
  const between = (x, a, b) => x >= a && x <= b;
558
-
559
478
  if (level && between(level, 1, 6)) {
560
479
  return marks ? {
561
480
  type,
@@ -573,10 +492,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
573
492
  };
574
493
  }
575
494
  }
576
-
577
495
  break;
578
496
  }
579
-
580
497
  case 'bulletList':
581
498
  {
582
499
  if (content) {
@@ -585,10 +502,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
585
502
  content
586
503
  };
587
504
  }
588
-
589
505
  break;
590
506
  }
591
-
592
507
  case 'orderedList':
593
508
  {
594
509
  if (content) {
@@ -600,10 +515,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
600
515
  }
601
516
  };
602
517
  }
603
-
604
518
  break;
605
519
  }
606
-
607
520
  case 'listItem':
608
521
  {
609
522
  if (content) {
@@ -612,10 +525,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
612
525
  content: wrapInlineNodes(content)
613
526
  };
614
527
  }
615
-
616
528
  break;
617
529
  }
618
-
619
530
  case 'blockquote':
620
531
  {
621
532
  if (content) {
@@ -624,17 +535,14 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
624
535
  content
625
536
  };
626
537
  }
627
-
628
538
  break;
629
539
  }
630
-
631
540
  case 'panel':
632
541
  {
633
542
  if (attrs && content) {
634
543
  const {
635
544
  panelType
636
545
  } = attrs;
637
-
638
546
  if (Object.values(PanelType).includes(panelType)) {
639
547
  return {
640
548
  type,
@@ -643,10 +551,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
643
551
  };
644
552
  }
645
553
  }
646
-
647
554
  break;
648
555
  }
649
-
650
556
  case 'layoutSection':
651
557
  {
652
558
  if (content) {
@@ -656,10 +562,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
656
562
  content
657
563
  };
658
564
  }
659
-
660
565
  break;
661
566
  }
662
-
663
567
  case 'layoutColumn':
664
568
  {
665
569
  if (attrs && content) {
@@ -671,10 +575,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
671
575
  };
672
576
  }
673
577
  }
674
-
675
578
  break;
676
579
  }
677
-
678
580
  case 'decisionList':
679
581
  {
680
582
  return {
@@ -685,7 +587,6 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
685
587
  }
686
588
  };
687
589
  }
688
-
689
590
  case 'decisionItem':
690
591
  {
691
592
  return {
@@ -697,7 +598,6 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
697
598
  }
698
599
  };
699
600
  }
700
-
701
601
  case 'taskList':
702
602
  {
703
603
  return {
@@ -708,7 +608,6 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
708
608
  }
709
609
  };
710
610
  }
711
-
712
611
  case 'taskItem':
713
612
  {
714
613
  return {
@@ -720,7 +619,6 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
720
619
  }
721
620
  };
722
621
  }
723
-
724
622
  case 'table':
725
623
  {
726
624
  if (Array.isArray(content) && content.length > 0 && !content.some(e => e.type !== 'tableRow')) {
@@ -728,22 +626,20 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
728
626
  return {
729
627
  type,
730
628
  content,
731
- attrs: { ...attrs,
629
+ attrs: {
630
+ ...attrs,
732
631
  localId: (attrs === null || attrs === void 0 ? void 0 : attrs.localId) || uuid()
733
632
  }
734
633
  };
735
634
  }
736
-
737
635
  return {
738
636
  type,
739
637
  content,
740
638
  attrs
741
639
  };
742
640
  }
743
-
744
641
  break;
745
642
  }
746
-
747
643
  case 'tableRow':
748
644
  {
749
645
  if (Array.isArray(content) && content.length > 0 && !content.some(e => e.type !== 'tableCell' && e.type !== 'tableHeader')) {
@@ -752,44 +648,35 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
752
648
  content
753
649
  };
754
650
  }
755
-
756
651
  break;
757
652
  }
758
-
759
653
  case 'tableCell':
760
654
  case 'tableHeader':
761
655
  {
762
656
  if (content) {
763
657
  const cellAttrs = {};
764
-
765
658
  if (attrs) {
766
659
  if (attrs.colspan && attrs.colspan > 1) {
767
660
  cellAttrs.colspan = attrs.colspan;
768
661
  }
769
-
770
662
  if (attrs.rowspan && attrs.rowspan > 1) {
771
663
  cellAttrs.rowspan = attrs.rowspan;
772
664
  }
773
-
774
665
  if (attrs.background) {
775
666
  cellAttrs.background = attrs.background;
776
667
  }
777
-
778
668
  if (attrs.colwidth && Array.isArray(attrs.colwidth)) {
779
669
  cellAttrs.colwidth = attrs.colwidth;
780
670
  }
781
671
  }
782
-
783
672
  return {
784
673
  type,
785
674
  content: wrapInlineNodes(content),
786
675
  attrs: attrs ? cellAttrs : undefined
787
676
  };
788
677
  }
789
-
790
678
  break;
791
679
  }
792
-
793
680
  case 'image':
794
681
  {
795
682
  if (attrs && attrs.src) {
@@ -798,10 +685,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
798
685
  attrs
799
686
  };
800
687
  }
801
-
802
688
  break;
803
689
  }
804
-
805
690
  case 'placeholder':
806
691
  {
807
692
  if (attrs && typeof attrs.text !== 'undefined') {
@@ -810,10 +695,8 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
810
695
  attrs
811
696
  };
812
697
  }
813
-
814
698
  break;
815
699
  }
816
-
817
700
  case 'expand':
818
701
  case 'nestedExpand':
819
702
  {
@@ -826,9 +709,9 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
826
709
  }
827
710
  }
828
711
  }
829
-
830
712
  return getValidUnknownNode(node);
831
713
  };
714
+
832
715
  /*
833
716
  * This method will validate a Mark according to the spec defined here
834
717
  * https://product-fabric.atlassian.net/wiki/spaces/E/pages/11174043/Document+structure#Documentstructure-Marks
@@ -838,13 +721,11 @@ export const getValidNode = (originalNode, schema = defaultSchema, adfStage = 'f
838
721
  * If a node is not recognized or is missing required attributes, we should return null
839
722
  *
840
723
  */
841
-
842
724
  export const getValidMark = (mark, adfStage = 'final') => {
843
725
  const {
844
726
  attrs,
845
727
  type
846
728
  } = mark;
847
-
848
729
  if (type) {
849
730
  switch (type) {
850
731
  case 'code':
@@ -853,14 +734,12 @@ export const getValidMark = (mark, adfStage = 'final') => {
853
734
  type
854
735
  };
855
736
  }
856
-
857
737
  case 'em':
858
738
  {
859
739
  return {
860
740
  type
861
741
  };
862
742
  }
863
-
864
743
  case 'link':
865
744
  {
866
745
  if (attrs) {
@@ -870,19 +749,15 @@ export const getValidMark = (mark, adfStage = 'final') => {
870
749
  __confluenceMetadata
871
750
  } = attrs;
872
751
  let linkHref = href || url;
873
-
874
752
  if (linkHref && linkHref.indexOf(':') === -1 && !RELATIVE_LINK.test(linkHref) && !ANCHOR_LINK.test(linkHref)) {
875
753
  linkHref = `http://${linkHref}`;
876
754
  }
877
-
878
755
  const linkAttrs = {
879
756
  href: linkHref
880
757
  };
881
-
882
758
  if (__confluenceMetadata) {
883
759
  linkAttrs.__confluenceMetadata = __confluenceMetadata;
884
760
  }
885
-
886
761
  if (linkHref && isSafeUrl(linkHref)) {
887
762
  return {
888
763
  type,
@@ -890,29 +765,24 @@ export const getValidMark = (mark, adfStage = 'final') => {
890
765
  };
891
766
  }
892
767
  }
893
-
894
768
  break;
895
769
  }
896
-
897
770
  case 'strike':
898
771
  {
899
772
  return {
900
773
  type
901
774
  };
902
775
  }
903
-
904
776
  case 'strong':
905
777
  {
906
778
  return {
907
779
  type
908
780
  };
909
781
  }
910
-
911
782
  case 'subsup':
912
783
  {
913
784
  if (attrs && attrs['type']) {
914
785
  const subSupType = attrs['type'];
915
-
916
786
  if (isSubSupType(subSupType)) {
917
787
  return {
918
788
  type,
@@ -922,10 +792,8 @@ export const getValidMark = (mark, adfStage = 'final') => {
922
792
  };
923
793
  }
924
794
  }
925
-
926
795
  break;
927
796
  }
928
-
929
797
  case 'textColor':
930
798
  {
931
799
  if (attrs && TEXT_COLOR_PATTERN.test(attrs.color)) {
@@ -934,17 +802,14 @@ export const getValidMark = (mark, adfStage = 'final') => {
934
802
  attrs
935
803
  };
936
804
  }
937
-
938
805
  break;
939
806
  }
940
-
941
807
  case 'underline':
942
808
  {
943
809
  return {
944
810
  type
945
811
  };
946
812
  }
947
-
948
813
  case 'annotation':
949
814
  {
950
815
  return {
@@ -954,7 +819,6 @@ export const getValidMark = (mark, adfStage = 'final') => {
954
819
  }
955
820
  }
956
821
  }
957
-
958
822
  if (adfStage === 'stage0') {
959
823
  switch (type) {
960
824
  case 'confluenceInlineComment':
@@ -964,7 +828,6 @@ export const getValidMark = (mark, adfStage = 'final') => {
964
828
  attrs
965
829
  };
966
830
  }
967
-
968
831
  case 'dataConsumer':
969
832
  {
970
833
  return {
@@ -972,7 +835,6 @@ export const getValidMark = (mark, adfStage = 'final') => {
972
835
  attrs
973
836
  };
974
837
  }
975
-
976
838
  case 'fragment':
977
839
  {
978
840
  return {
@@ -982,6 +844,5 @@ export const getValidMark = (mark, adfStage = 'final') => {
982
844
  }
983
845
  }
984
846
  }
985
-
986
847
  return null;
987
848
  };