@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.
- package/CHANGELOG.md +21 -0
- package/dist/cjs/__tests_external__/cases/fundamentals/collection.js +0 -5
- package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-is-present.js +0 -4
- package/dist/cjs/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +0 -8
- package/dist/cjs/__tests_external__/cases/smart-links/index.js +0 -4
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/delete.js +1 -8
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/edit.js +2 -12
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/index.js +0 -6
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/block/insert.js +1 -8
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/delete.js +1 -8
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/edit.js +2 -12
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/index.js +0 -6
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/embed/insert.js +1 -8
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/delete.js +1 -8
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/edit.js +2 -12
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/index.js +0 -7
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/insert.js +1 -8
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +1 -8
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/index.js +0 -4
- package/dist/cjs/__tests_external__/cases/smart-links/test-cases/url/insert.js +1 -8
- package/dist/cjs/__tests_external__/index.js +0 -3
- package/dist/cjs/__tests_external__/page-objects/Editor.js +0 -16
- package/dist/cjs/__tests_external__/page-objects/EditorSmartLink.js +0 -29
- package/dist/cjs/__tests_external__/page-objects/Renderer.js +0 -14
- package/dist/cjs/analytics/index.js +0 -1
- package/dist/cjs/analytics/types/enums.js +1 -16
- package/dist/cjs/analytics/types/extension-events.js +0 -4
- package/dist/cjs/analytics/types/format-events.js +0 -3
- package/dist/cjs/analytics/types/general-events.js +0 -7
- package/dist/cjs/analytics/types/index.js +0 -14
- package/dist/cjs/analytics/types/inline-comment-events.js +0 -1
- package/dist/cjs/analytics/types/insert-events.js +0 -7
- package/dist/cjs/analytics/types/list-events.js +0 -3
- package/dist/cjs/analytics/types/node-events.js +0 -3
- package/dist/cjs/analytics/types/substitute-events.js +0 -3
- package/dist/cjs/analytics/types/table-events.js +0 -4
- package/dist/cjs/analytics/types/toolbar-button.js +0 -1
- package/dist/cjs/analytics/types/utils.js +0 -3
- package/dist/cjs/core-utils/index.js +0 -1
- package/dist/cjs/core-utils/inside.js +2 -5
- package/dist/cjs/emoji.js +0 -3
- package/dist/cjs/event-dispatcher/index.js +0 -14
- package/dist/cjs/extensions/combine-extension-providers.js +2 -6
- package/dist/cjs/extensions/default-extension-provider.js +0 -26
- package/dist/cjs/extensions/extension-fields-helpers.js +0 -35
- package/dist/cjs/extensions/extension-handlers.js +0 -27
- package/dist/cjs/extensions/index.js +0 -8
- package/dist/cjs/extensions/manifest-helpers.js +4 -30
- package/dist/cjs/extensions/module-helpers.js +17 -89
- package/dist/cjs/extensions/types/field-definitions.js +1 -10
- package/dist/cjs/extensions/types/index.js +0 -1
- package/dist/cjs/extensions.js +0 -1
- package/dist/cjs/i18n/cs.js +0 -1
- package/dist/cjs/i18n/da.js +0 -1
- package/dist/cjs/i18n/de.js +0 -1
- package/dist/cjs/i18n/en.js +0 -1
- package/dist/cjs/i18n/en_GB.js +0 -1
- package/dist/cjs/i18n/en_ZZ.js +0 -1
- package/dist/cjs/i18n/es.js +0 -1
- package/dist/cjs/i18n/et.js +0 -1
- package/dist/cjs/i18n/fi.js +0 -1
- package/dist/cjs/i18n/fr.js +0 -1
- package/dist/cjs/i18n/hu.js +0 -1
- package/dist/cjs/i18n/index.js +0 -27
- package/dist/cjs/i18n/it.js +0 -1
- package/dist/cjs/i18n/ja.js +0 -1
- package/dist/cjs/i18n/ko.js +0 -1
- package/dist/cjs/i18n/languages.js +0 -1
- package/dist/cjs/i18n/nb.js +0 -1
- package/dist/cjs/i18n/nl.js +0 -1
- package/dist/cjs/i18n/pl.js +0 -1
- package/dist/cjs/i18n/pt_BR.js +0 -1
- package/dist/cjs/i18n/pt_PT.js +0 -1
- package/dist/cjs/i18n/ru.js +0 -1
- package/dist/cjs/i18n/sk.js +0 -1
- package/dist/cjs/i18n/sv.js +0 -1
- package/dist/cjs/i18n/th.js +0 -1
- package/dist/cjs/i18n/tr.js +0 -1
- package/dist/cjs/i18n/uk.js +0 -1
- package/dist/cjs/i18n/vi.js +0 -1
- package/dist/cjs/i18n/zh.js +0 -1
- package/dist/cjs/i18n/zh_TW.js +0 -1
- package/dist/cjs/icons/index.js +0 -11
- package/dist/cjs/icons/shared/PanelErrorIcon.js +0 -7
- package/dist/cjs/icons/shared/PanelInfoIcon.js +0 -7
- package/dist/cjs/icons/shared/PanelNoteIcon.js +0 -7
- package/dist/cjs/icons/shared/PanelSuccessIcon.js +0 -7
- package/dist/cjs/icons/shared/PanelWarningIcon.js +0 -7
- package/dist/cjs/icons/shared/table.js +1 -3
- package/dist/cjs/in-product.js +0 -1
- package/dist/cjs/keymaps/index.js +2 -50
- package/dist/cjs/mention.js +0 -3
- package/dist/cjs/messages/codeBidiWarning.js +0 -2
- package/dist/cjs/messages/codeBlockCopyButton.js +0 -2
- package/dist/cjs/messages/index.js +0 -8
- package/dist/cjs/messages/insert-block.js +0 -2
- package/dist/cjs/messages/link.js +0 -2
- package/dist/cjs/messages/unsupportedContent.js +0 -2
- package/dist/cjs/node-width/index.js +2 -20
- package/dist/cjs/normalize-feature-flags.js +6 -25
- package/dist/cjs/panel.js +0 -1
- package/dist/cjs/provider-factory/context.js +3 -17
- package/dist/cjs/provider-factory/provider-factory.js +0 -19
- package/dist/cjs/provider-factory/with-providers.js +5 -28
- package/dist/cjs/provider-factory.js +0 -4
- package/dist/cjs/provider-helpers/combine-providers.js +3 -33
- package/dist/cjs/provider-helpers/index.js +0 -2
- package/dist/cjs/provider-helpers/promise-helpers.js +3 -15
- package/dist/cjs/react-node-view/index.js +18 -48
- package/dist/cjs/safe-plugin/index.js +1 -14
- package/dist/cjs/selection/gap-cursor/selection.js +8 -44
- package/dist/cjs/selection/gap-cursor/utils/index.js +0 -2
- package/dist/cjs/selection/gap-cursor/utils/is-ignored.js +0 -2
- package/dist/cjs/selection/gap-cursor/utils/is-valid-target-node.js +0 -3
- package/dist/cjs/selection/index.js +0 -4
- package/dist/cjs/selection/types.js +0 -1
- package/dist/cjs/selection/utils.js +0 -12
- package/dist/cjs/styles/index.js +0 -23
- package/dist/cjs/styles/shared/annotation.js +0 -11
- package/dist/cjs/styles/shared/block-marks.js +0 -5
- package/dist/cjs/styles/shared/blockquote.js +0 -7
- package/dist/cjs/styles/shared/code-block.js +0 -11
- package/dist/cjs/styles/shared/code-mark.js +0 -9
- package/dist/cjs/styles/shared/column-layout.js +0 -6
- package/dist/cjs/styles/shared/date.js +0 -5
- package/dist/cjs/styles/shared/emoji.js +0 -2
- package/dist/cjs/styles/shared/extension.js +0 -2
- package/dist/cjs/styles/shared/headings.js +0 -7
- package/dist/cjs/styles/shared/indentation.js +0 -5
- package/dist/cjs/styles/shared/layout.js +0 -2
- package/dist/cjs/styles/shared/link.js +0 -5
- package/dist/cjs/styles/shared/lists.js +2 -21
- package/dist/cjs/styles/shared/media-single.js +0 -5
- package/dist/cjs/styles/shared/panel.js +15 -41
- package/dist/cjs/styles/shared/paragraph.js +0 -6
- package/dist/cjs/styles/shared/rule.js +2 -10
- package/dist/cjs/styles/shared/shadow.js +1 -9
- package/dist/cjs/styles/shared/smart-card.js +0 -3
- package/dist/cjs/styles/shared/table.js +0 -20
- package/dist/cjs/styles/shared/task-decision.js +0 -6
- package/dist/cjs/styles/shared/text-color.js +0 -5
- package/dist/cjs/styles/shared/whitespace.js +0 -5
- package/dist/cjs/transforms/expand.js +7 -16
- package/dist/cjs/transforms/extension.js +2 -7
- package/dist/cjs/transforms/index.js +0 -3
- package/dist/cjs/transforms/layout.js +9 -15
- package/dist/cjs/type-ahead/index.js +0 -3
- package/dist/cjs/types/annotation/emitter.js +0 -11
- package/dist/cjs/types/annotation/index.js +0 -1
- package/dist/cjs/types/index.js +0 -4
- package/dist/cjs/types/toolbar.js +0 -5
- package/dist/cjs/ufo/experience-store.js +0 -24
- package/dist/cjs/ufo/index.js +0 -1
- package/dist/cjs/ui/BaseTheme/index.js +3 -21
- package/dist/cjs/ui/Caption/index.js +5 -29
- package/dist/cjs/ui/Caption/messages.js +0 -2
- package/dist/cjs/ui/DropList/index.js +18 -51
- package/dist/cjs/ui/Emoji/index.js +7 -33
- package/dist/cjs/ui/ErrorBoundary/index.js +0 -22
- package/dist/cjs/ui/Expand/index.js +5 -31
- package/dist/cjs/ui/IntlErrorBoundary/index.js +0 -24
- package/dist/cjs/ui/IntlProviderIfMissingWrapper/index.js +0 -9
- package/dist/cjs/ui/Layer/index.js +16 -46
- package/dist/cjs/ui/Layer/internal/helpers.js +0 -2
- package/dist/cjs/ui/MediaSingle/grid.js +0 -8
- package/dist/cjs/ui/MediaSingle/index.js +26 -44
- package/dist/cjs/ui/MediaSingle/link.js +0 -5
- package/dist/cjs/ui/MediaSingle/styled.js +11 -50
- package/dist/cjs/ui/Mention/index.js +5 -27
- package/dist/cjs/ui/Mention/mention-with-profilecard.js +8 -16
- package/dist/cjs/ui/Mention/mention-with-providers.js +5 -33
- package/dist/cjs/ui/Messages/index.js +0 -18
- package/dist/cjs/ui/OverflowShadow/index.js +3 -48
- package/dist/cjs/ui/OverflowShadow/shadowObserver.js +2 -26
- package/dist/cjs/ui/Popup/index.js +28 -80
- package/dist/cjs/ui/Popup/utils.js +67 -132
- package/dist/cjs/ui/PortalProvider/PortalProviderThemesProvider.js +3 -13
- package/dist/cjs/ui/PortalProvider/index.js +16 -73
- package/dist/cjs/ui/UnsupportedBlock/index.js +5 -29
- package/dist/cjs/ui/UnsupportedInline/index.js +5 -29
- package/dist/cjs/ui/WidthProvider/index.js +1 -31
- package/dist/cjs/ui/WithCreateAnalyticsEvent/index.js +2 -16
- package/dist/cjs/ui/clear-next-sibling-margin-top.js +0 -5
- package/dist/cjs/ui/index.js +0 -23
- package/dist/cjs/ui/unsupported-content-helper.js +0 -5
- package/dist/cjs/ui/with-outer-listeners.js +0 -25
- package/dist/cjs/ui-color/ColorPalette/Color/index.js +12 -40
- package/dist/cjs/ui-color/ColorPalette/Color/styles.js +0 -10
- package/dist/cjs/ui-color/ColorPalette/Palettes/cellBackgroundColorPalette.js +0 -7
- package/dist/cjs/ui-color/ColorPalette/Palettes/common.js +4 -12
- package/dist/cjs/ui-color/ColorPalette/Palettes/getColorMessage.js +0 -3
- package/dist/cjs/ui-color/ColorPalette/Palettes/index.js +0 -1
- package/dist/cjs/ui-color/ColorPalette/Palettes/paletteMessages.js +0 -3
- package/dist/cjs/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +0 -8
- package/dist/cjs/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +0 -10
- package/dist/cjs/ui-color/ColorPalette/Palettes/statusColorPalette.js +0 -7
- package/dist/cjs/ui-color/ColorPalette/Palettes/textColorPalette.js +2 -9
- package/dist/cjs/ui-color/ColorPalette/index.js +16 -38
- package/dist/cjs/ui-color/ColorPalette/styles.js +0 -6
- package/dist/cjs/ui-color/index.js +0 -9
- package/dist/cjs/ui-menu/Dropdown/index.js +15 -39
- package/dist/cjs/ui-menu/DropdownMenu/index.js +43 -79
- package/dist/cjs/ui-menu/MenuArrowKeyNavigationProvider/index.js +66 -82
- package/dist/cjs/ui-menu/ToolbarButton/index.js +23 -46
- package/dist/cjs/ui-menu/ToolbarButton/styles.js +0 -6
- package/dist/cjs/ui-menu/index.js +0 -7
- package/dist/cjs/ui-react/ReactEditorViewContext.js +0 -4
- package/dist/cjs/ui-react/index.js +0 -3
- package/dist/cjs/ui-react/with-react-editor-view-outer-listeners.js +12 -52
- package/dist/cjs/utils/analytics.js +0 -14
- package/dist/cjs/utils/annotation/index.js +5 -13
- package/dist/cjs/utils/breakout.js +7 -23
- package/dist/cjs/utils/browser-extensions.js +28 -56
- package/dist/cjs/utils/browser.js +0 -2
- package/dist/cjs/utils/builder.js +0 -10
- package/dist/cjs/utils/collab.js +0 -4
- package/dist/cjs/utils/compare-props.js +11 -25
- package/dist/cjs/utils/compareNodes.js +7 -53
- package/dist/cjs/utils/compose.js +0 -2
- package/dist/cjs/utils/date.js +4 -25
- package/dist/cjs/utils/dom.js +6 -29
- package/dist/cjs/utils/editor-core-utils.js +8 -33
- package/dist/cjs/utils/error-reporter.js +0 -7
- package/dist/cjs/utils/extension-handler.js +0 -3
- package/dist/cjs/utils/get-performance-options.js +4 -12
- package/dist/cjs/utils/getModeFromTheme.js +0 -1
- package/dist/cjs/utils/imageLoader.js +0 -27
- package/dist/cjs/utils/index.js +0 -40
- package/dist/cjs/utils/is-text-input.js +5 -11
- package/dist/cjs/utils/list.js +3 -13
- package/dist/cjs/utils/macro.js +1 -7
- package/dist/cjs/utils/nodes.js +4 -31
- package/dist/cjs/utils/outdated-browsers.js +0 -10
- package/dist/cjs/utils/performance/hooks/use-component-render-tracking/index.js +4 -14
- package/dist/cjs/utils/performance/is-performance-api-available.js +0 -4
- package/dist/cjs/utils/performance/measure-render.js +1 -11
- package/dist/cjs/utils/performance/measure-tti.js +3 -17
- package/dist/cjs/utils/performance/measure.js +0 -11
- package/dist/cjs/utils/performance/navigation.js +0 -5
- package/dist/cjs/utils/plugin-state-factory.js +3 -11
- package/dist/cjs/utils/profiler/render-count.js +4 -24
- package/dist/cjs/utils/referentiality.js +30 -88
- package/dist/cjs/utils/sendLogs.js +0 -2
- package/dist/cjs/utils/should-force-tracking.js +4 -7
- package/dist/cjs/utils/slice.js +0 -17
- package/dist/cjs/utils/table.js +4 -13
- package/dist/cjs/utils/track-unsupported-content.js +14 -39
- package/dist/cjs/utils/traversor.js +0 -14
- package/dist/cjs/utils/unsupportedContent/get-unsupported-content-level-data.js +5 -21
- package/dist/cjs/utils/validate-using-spec.js +5 -36
- package/dist/cjs/utils/validator.js +26 -188
- package/dist/cjs/validator.js +0 -1
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/with-plugin-state/index.js +7 -55
- package/dist/es2019/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +0 -3
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/delete.js +0 -1
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/edit.js +0 -2
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/block/insert.js +0 -1
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/delete.js +0 -1
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/edit.js +0 -2
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/embed/insert.js +0 -1
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/delete.js +0 -1
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/edit.js +0 -2
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/insert.js +0 -1
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +0 -1
- package/dist/es2019/__tests_external__/cases/smart-links/test-cases/url/insert.js +0 -1
- package/dist/es2019/__tests_external__/page-objects/Editor.js +0 -4
- package/dist/es2019/__tests_external__/page-objects/EditorSmartLink.js +0 -28
- package/dist/es2019/__tests_external__/page-objects/Renderer.js +0 -2
- package/dist/es2019/analytics/types/enums.js +1 -16
- package/dist/es2019/analytics/types/extension-events.js +2 -3
- package/dist/es2019/analytics/types/format-events.js +0 -3
- package/dist/es2019/analytics/types/general-events.js +0 -7
- package/dist/es2019/analytics/types/inline-comment-events.js +0 -1
- package/dist/es2019/analytics/types/insert-events.js +0 -7
- package/dist/es2019/analytics/types/list-events.js +0 -3
- package/dist/es2019/analytics/types/node-events.js +0 -3
- package/dist/es2019/analytics/types/substitute-events.js +0 -3
- package/dist/es2019/analytics/types/table-events.js +2 -3
- package/dist/es2019/analytics/types/toolbar-button.js +0 -1
- package/dist/es2019/analytics/types/utils.js +0 -3
- package/dist/es2019/event-dispatcher/index.js +1 -12
- package/dist/es2019/extensions/combine-extension-providers.js +0 -5
- package/dist/es2019/extensions/default-extension-provider.js +0 -8
- package/dist/es2019/extensions/extension-fields-helpers.js +4 -10
- package/dist/es2019/extensions/extension-handlers.js +1 -8
- package/dist/es2019/extensions/manifest-helpers.js +2 -7
- package/dist/es2019/extensions/module-helpers.js +10 -43
- package/dist/es2019/extensions/types/field-definitions.js +1 -0
- package/dist/es2019/icons/index.js +1 -3
- package/dist/es2019/icons/shared/PanelErrorIcon.js +0 -2
- package/dist/es2019/icons/shared/PanelInfoIcon.js +0 -2
- package/dist/es2019/icons/shared/PanelNoteIcon.js +0 -2
- package/dist/es2019/icons/shared/PanelSuccessIcon.js +0 -2
- package/dist/es2019/icons/shared/PanelWarningIcon.js +0 -2
- package/dist/es2019/keymaps/index.js +0 -24
- package/dist/es2019/node-width/index.js +3 -14
- package/dist/es2019/normalize-feature-flags.js +1 -11
- package/dist/es2019/provider-factory/context.js +0 -1
- package/dist/es2019/provider-factory/provider-factory.js +0 -25
- package/dist/es2019/provider-factory/with-providers.js +2 -8
- package/dist/es2019/provider-helpers/combine-providers.js +3 -13
- package/dist/es2019/provider-helpers/promise-helpers.js +3 -10
- package/dist/es2019/react-node-view/index.js +10 -34
- package/dist/es2019/safe-plugin/index.js +1 -1
- package/dist/es2019/selection/gap-cursor/selection.js +6 -31
- package/dist/es2019/selection/types.js +0 -1
- package/dist/es2019/selection/utils.js +0 -8
- package/dist/es2019/styles/shared/headings.js +3 -2
- package/dist/es2019/styles/shared/lists.js +0 -8
- package/dist/es2019/styles/shared/panel.js +13 -12
- package/dist/es2019/styles/shared/paragraph.js +2 -1
- package/dist/es2019/styles/shared/rule.js +2 -1
- package/dist/es2019/styles/shared/shadow.js +2 -0
- package/dist/es2019/styles/shared/table.js +1 -5
- package/dist/es2019/transforms/expand.js +3 -3
- package/dist/es2019/transforms/extension.js +3 -4
- package/dist/es2019/transforms/layout.js +9 -10
- package/dist/es2019/type-ahead/index.js +0 -3
- package/dist/es2019/types/annotation/emitter.js +0 -8
- package/dist/es2019/types/index.js +0 -2
- package/dist/es2019/types/toolbar.js +0 -5
- package/dist/es2019/ufo/experience-store.js +0 -25
- package/dist/es2019/ui/BaseTheme/index.js +0 -2
- package/dist/es2019/ui/Caption/index.js +0 -2
- package/dist/es2019/ui/DropList/index.js +9 -25
- package/dist/es2019/ui/Emoji/index.js +0 -11
- package/dist/es2019/ui/ErrorBoundary/index.js +0 -8
- package/dist/es2019/ui/Expand/index.js +2 -10
- package/dist/es2019/ui/IntlErrorBoundary/index.js +0 -8
- package/dist/es2019/ui/IntlProviderIfMissingWrapper/index.js +0 -4
- package/dist/es2019/ui/Layer/index.js +13 -29
- package/dist/es2019/ui/Layer/internal/helpers.js +0 -2
- package/dist/es2019/ui/MediaSingle/index.js +7 -12
- package/dist/es2019/ui/MediaSingle/styled.js +2 -25
- package/dist/es2019/ui/Mention/index.js +0 -5
- package/dist/es2019/ui/Mention/mention-with-providers.js +0 -8
- package/dist/es2019/ui/Messages/index.js +1 -2
- package/dist/es2019/ui/OverflowShadow/index.js +0 -32
- package/dist/es2019/ui/OverflowShadow/shadowObserver.js +0 -14
- package/dist/es2019/ui/Popup/index.js +11 -59
- package/dist/es2019/ui/Popup/utils.js +18 -57
- package/dist/es2019/ui/PortalProvider/PortalProviderThemesProvider.js +2 -1
- package/dist/es2019/ui/PortalProvider/index.js +7 -35
- package/dist/es2019/ui/UnsupportedBlock/index.js +0 -2
- package/dist/es2019/ui/UnsupportedInline/index.js +0 -2
- package/dist/es2019/ui/WidthProvider/index.js +0 -9
- package/dist/es2019/ui/WithCreateAnalyticsEvent/index.js +0 -1
- package/dist/es2019/ui/clear-next-sibling-margin-top.js +2 -1
- package/dist/es2019/ui/unsupported-content-helper.js +0 -4
- package/dist/es2019/ui/with-outer-listeners.js +0 -8
- package/dist/es2019/ui-color/ColorPalette/Color/index.js +0 -10
- package/dist/es2019/ui-color/ColorPalette/Color/styles.js +1 -4
- package/dist/es2019/ui-color/ColorPalette/Palettes/common.js +2 -4
- package/dist/es2019/ui-color/ColorPalette/Palettes/getColorMessage.js +0 -2
- package/dist/es2019/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +5 -3
- package/dist/es2019/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +4 -4
- package/dist/es2019/ui-color/ColorPalette/Palettes/statusColorPalette.js +0 -2
- package/dist/es2019/ui-color/ColorPalette/Palettes/textColorPalette.js +2 -3
- package/dist/es2019/ui-color/ColorPalette/index.js +3 -10
- package/dist/es2019/ui-menu/Dropdown/index.js +1 -8
- package/dist/es2019/ui-menu/DropdownMenu/index.js +23 -27
- package/dist/es2019/ui-menu/MenuArrowKeyNavigationProvider/index.js +59 -73
- package/dist/es2019/ui-menu/ToolbarButton/index.js +2 -6
- package/dist/es2019/ui-react/with-react-editor-view-outer-listeners.js +7 -25
- package/dist/es2019/utils/analytics.js +0 -8
- package/dist/es2019/utils/annotation/index.js +3 -7
- package/dist/es2019/utils/breakout.js +6 -13
- package/dist/es2019/utils/browser-extensions.js +10 -22
- package/dist/es2019/utils/browser.js +0 -2
- package/dist/es2019/utils/builder.js +0 -2
- package/dist/es2019/utils/collab.js +0 -2
- package/dist/es2019/utils/compare-props.js +5 -4
- package/dist/es2019/utils/compareNodes.js +3 -42
- package/dist/es2019/utils/date.js +4 -11
- package/dist/es2019/utils/dom.js +6 -19
- package/dist/es2019/utils/editor-core-utils.js +6 -11
- package/dist/es2019/utils/error-reporter.js +0 -4
- package/dist/es2019/utils/get-performance-options.js +3 -3
- package/dist/es2019/utils/imageLoader.js +0 -11
- package/dist/es2019/utils/is-text-input.js +1 -2
- package/dist/es2019/utils/list.js +3 -7
- package/dist/es2019/utils/macro.js +0 -3
- package/dist/es2019/utils/nodes.js +3 -11
- package/dist/es2019/utils/outdated-browsers.js +0 -8
- package/dist/es2019/utils/performance/hooks/use-component-render-tracking/index.js +0 -4
- package/dist/es2019/utils/performance/is-performance-api-available.js +0 -1
- package/dist/es2019/utils/performance/measure-render.js +2 -10
- package/dist/es2019/utils/performance/measure-tti.js +3 -11
- package/dist/es2019/utils/performance/measure.js +0 -6
- package/dist/es2019/utils/performance/navigation.js +0 -3
- package/dist/es2019/utils/plugin-state-factory.js +1 -10
- package/dist/es2019/utils/profiler/render-count.js +10 -23
- package/dist/es2019/utils/referentiality.js +24 -65
- package/dist/es2019/utils/should-force-tracking.js +2 -1
- package/dist/es2019/utils/slice.js +1 -9
- package/dist/es2019/utils/table.js +2 -6
- package/dist/es2019/utils/track-unsupported-content.js +6 -11
- package/dist/es2019/utils/traversor.js +0 -13
- package/dist/es2019/utils/unsupportedContent/get-unsupported-content-level-data.js +3 -15
- package/dist/es2019/utils/validate-using-spec.js +3 -25
- package/dist/es2019/utils/validator.js +10 -149
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/with-plugin-state/index.js +5 -46
- package/dist/esm/__tests_external__/cases/fundamentals/test-cases/editor-typing.js +0 -3
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/delete.js +1 -2
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/edit.js +2 -4
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/block/insert.js +1 -2
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/delete.js +1 -2
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/edit.js +2 -4
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/embed/insert.js +1 -2
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/delete.js +1 -2
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/edit.js +2 -4
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/insert.js +1 -2
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/inline/unlink.js +1 -2
- package/dist/esm/__tests_external__/cases/smart-links/test-cases/url/insert.js +1 -2
- package/dist/esm/__tests_external__/page-objects/Editor.js +0 -9
- package/dist/esm/__tests_external__/page-objects/EditorSmartLink.js +0 -23
- package/dist/esm/__tests_external__/page-objects/Renderer.js +0 -8
- package/dist/esm/analytics/types/enums.js +1 -16
- package/dist/esm/analytics/types/extension-events.js +2 -3
- package/dist/esm/analytics/types/format-events.js +0 -3
- package/dist/esm/analytics/types/general-events.js +0 -7
- package/dist/esm/analytics/types/inline-comment-events.js +0 -1
- package/dist/esm/analytics/types/insert-events.js +0 -7
- package/dist/esm/analytics/types/list-events.js +0 -3
- package/dist/esm/analytics/types/node-events.js +0 -3
- package/dist/esm/analytics/types/substitute-events.js +0 -3
- package/dist/esm/analytics/types/table-events.js +2 -3
- package/dist/esm/analytics/types/toolbar-button.js +0 -1
- package/dist/esm/analytics/types/utils.js +0 -3
- package/dist/esm/core-utils/inside.js +2 -2
- package/dist/esm/event-dispatcher/index.js +1 -9
- package/dist/esm/extensions/combine-extension-providers.js +2 -4
- package/dist/esm/extensions/default-extension-provider.js +0 -22
- package/dist/esm/extensions/extension-fields-helpers.js +3 -29
- package/dist/esm/extensions/extension-handlers.js +1 -18
- package/dist/esm/extensions/manifest-helpers.js +4 -17
- package/dist/esm/extensions/module-helpers.js +17 -74
- package/dist/esm/extensions/types/field-definitions.js +1 -0
- package/dist/esm/icons/index.js +1 -3
- package/dist/esm/icons/shared/PanelErrorIcon.js +0 -2
- package/dist/esm/icons/shared/PanelInfoIcon.js +0 -2
- package/dist/esm/icons/shared/PanelNoteIcon.js +0 -2
- package/dist/esm/icons/shared/PanelSuccessIcon.js +0 -2
- package/dist/esm/icons/shared/PanelWarningIcon.js +0 -2
- package/dist/esm/keymaps/index.js +2 -28
- package/dist/esm/node-width/index.js +3 -14
- package/dist/esm/normalize-feature-flags.js +6 -19
- package/dist/esm/provider-factory/context.js +3 -5
- package/dist/esm/provider-factory/provider-factory.js +0 -18
- package/dist/esm/provider-factory/with-providers.js +5 -23
- package/dist/esm/provider-helpers/combine-providers.js +3 -27
- package/dist/esm/provider-helpers/promise-helpers.js +3 -10
- package/dist/esm/react-node-view/index.js +18 -42
- package/dist/esm/safe-plugin/index.js +1 -7
- package/dist/esm/selection/gap-cursor/selection.js +8 -35
- package/dist/esm/selection/types.js +0 -1
- package/dist/esm/selection/utils.js +0 -8
- package/dist/esm/styles/shared/annotation.js +0 -2
- package/dist/esm/styles/shared/block-marks.js +0 -2
- package/dist/esm/styles/shared/blockquote.js +0 -2
- package/dist/esm/styles/shared/code-block.js +0 -2
- package/dist/esm/styles/shared/code-mark.js +0 -2
- package/dist/esm/styles/shared/column-layout.js +0 -2
- package/dist/esm/styles/shared/date.js +0 -2
- package/dist/esm/styles/shared/headings.js +3 -4
- package/dist/esm/styles/shared/indentation.js +0 -2
- package/dist/esm/styles/shared/link.js +0 -2
- package/dist/esm/styles/shared/lists.js +2 -13
- package/dist/esm/styles/shared/media-single.js +0 -2
- package/dist/esm/styles/shared/panel.js +15 -17
- package/dist/esm/styles/shared/paragraph.js +2 -3
- package/dist/esm/styles/shared/rule.js +2 -3
- package/dist/esm/styles/shared/shadow.js +2 -2
- package/dist/esm/styles/shared/table.js +1 -8
- package/dist/esm/styles/shared/task-decision.js +0 -2
- package/dist/esm/styles/shared/text-color.js +0 -2
- package/dist/esm/styles/shared/whitespace.js +0 -2
- package/dist/esm/transforms/expand.js +7 -7
- package/dist/esm/transforms/extension.js +3 -4
- package/dist/esm/transforms/layout.js +9 -10
- package/dist/esm/type-ahead/index.js +0 -3
- package/dist/esm/types/annotation/emitter.js +0 -6
- package/dist/esm/types/index.js +0 -2
- package/dist/esm/types/toolbar.js +0 -5
- package/dist/esm/ufo/experience-store.js +0 -19
- package/dist/esm/ui/BaseTheme/index.js +3 -7
- package/dist/esm/ui/Caption/index.js +5 -14
- package/dist/esm/ui/DropList/index.js +18 -47
- package/dist/esm/ui/Emoji/index.js +7 -26
- package/dist/esm/ui/ErrorBoundary/index.js +0 -14
- package/dist/esm/ui/Expand/index.js +5 -15
- package/dist/esm/ui/IntlErrorBoundary/index.js +0 -16
- package/dist/esm/ui/IntlProviderIfMissingWrapper/index.js +0 -4
- package/dist/esm/ui/Layer/index.js +16 -39
- package/dist/esm/ui/Layer/internal/helpers.js +0 -2
- package/dist/esm/ui/MediaSingle/index.js +25 -32
- package/dist/esm/ui/MediaSingle/link.js +0 -2
- package/dist/esm/ui/MediaSingle/styled.js +11 -39
- package/dist/esm/ui/Mention/index.js +5 -18
- package/dist/esm/ui/Mention/mention-with-profilecard.js +8 -8
- package/dist/esm/ui/Mention/mention-with-providers.js +5 -21
- package/dist/esm/ui/Messages/index.js +1 -4
- package/dist/esm/ui/OverflowShadow/index.js +3 -46
- package/dist/esm/ui/OverflowShadow/shadowObserver.js +2 -27
- package/dist/esm/ui/Popup/index.js +28 -80
- package/dist/esm/ui/Popup/utils.js +67 -123
- package/dist/esm/ui/PortalProvider/PortalProviderThemesProvider.js +3 -3
- package/dist/esm/ui/PortalProvider/index.js +17 -61
- package/dist/esm/ui/UnsupportedBlock/index.js +5 -11
- package/dist/esm/ui/UnsupportedInline/index.js +5 -11
- package/dist/esm/ui/WidthProvider/index.js +1 -17
- package/dist/esm/ui/WithCreateAnalyticsEvent/index.js +2 -10
- package/dist/esm/ui/clear-next-sibling-margin-top.js +2 -3
- package/dist/esm/ui/unsupported-content-helper.js +0 -4
- package/dist/esm/ui/with-outer-listeners.js +0 -15
- package/dist/esm/ui-color/ColorPalette/Color/index.js +12 -27
- package/dist/esm/ui-color/ColorPalette/Color/styles.js +1 -6
- package/dist/esm/ui-color/ColorPalette/Palettes/common.js +5 -7
- package/dist/esm/ui-color/ColorPalette/Palettes/getColorMessage.js +0 -2
- package/dist/esm/ui-color/ColorPalette/Palettes/paletteMessagesTokenModeNames.js +2 -4
- package/dist/esm/ui-color/ColorPalette/Palettes/panelBackgroundPalette.js +0 -5
- package/dist/esm/ui-color/ColorPalette/Palettes/statusColorPalette.js +0 -2
- package/dist/esm/ui-color/ColorPalette/Palettes/textColorPalette.js +2 -3
- package/dist/esm/ui-color/ColorPalette/index.js +16 -24
- package/dist/esm/ui-color/ColorPalette/styles.js +0 -2
- package/dist/esm/ui-menu/Dropdown/index.js +15 -28
- package/dist/esm/ui-menu/DropdownMenu/index.js +43 -60
- package/dist/esm/ui-menu/MenuArrowKeyNavigationProvider/index.js +66 -78
- package/dist/esm/ui-menu/ToolbarButton/index.js +23 -32
- package/dist/esm/ui-react/with-react-editor-view-outer-listeners.js +12 -41
- package/dist/esm/utils/analytics.js +0 -8
- package/dist/esm/utils/annotation/index.js +5 -9
- package/dist/esm/utils/breakout.js +8 -15
- package/dist/esm/utils/browser-extensions.js +28 -55
- package/dist/esm/utils/browser.js +0 -2
- package/dist/esm/utils/builder.js +0 -4
- package/dist/esm/utils/collab.js +0 -2
- package/dist/esm/utils/compare-props.js +10 -15
- package/dist/esm/utils/compareNodes.js +7 -48
- package/dist/esm/utils/compose.js +0 -1
- package/dist/esm/utils/date.js +4 -11
- package/dist/esm/utils/dom.js +6 -19
- package/dist/esm/utils/editor-core-utils.js +8 -13
- package/dist/esm/utils/error-reporter.js +0 -5
- package/dist/esm/utils/get-performance-options.js +7 -7
- package/dist/esm/utils/imageLoader.js +0 -18
- package/dist/esm/utils/is-text-input.js +5 -6
- package/dist/esm/utils/list.js +3 -7
- package/dist/esm/utils/macro.js +1 -5
- package/dist/esm/utils/nodes.js +5 -13
- package/dist/esm/utils/outdated-browsers.js +0 -8
- package/dist/esm/utils/performance/hooks/use-component-render-tracking/index.js +4 -10
- package/dist/esm/utils/performance/is-performance-api-available.js +0 -1
- package/dist/esm/utils/performance/measure-render.js +2 -9
- package/dist/esm/utils/performance/measure-tti.js +3 -12
- package/dist/esm/utils/performance/measure.js +0 -6
- package/dist/esm/utils/performance/navigation.js +0 -3
- package/dist/esm/utils/plugin-state-factory.js +3 -10
- package/dist/esm/utils/profiler/render-count.js +4 -21
- package/dist/esm/utils/referentiality.js +30 -80
- package/dist/esm/utils/should-force-tracking.js +4 -4
- package/dist/esm/utils/slice.js +1 -10
- package/dist/esm/utils/table.js +4 -8
- package/dist/esm/utils/track-unsupported-content.js +14 -31
- package/dist/esm/utils/traversor.js +0 -13
- package/dist/esm/utils/unsupportedContent/get-unsupported-content-level-data.js +5 -18
- package/dist/esm/utils/validate-using-spec.js +5 -29
- package/dist/esm/utils/validator.js +26 -170
- package/dist/esm/version.json +1 -1
- package/dist/esm/with-plugin-state/index.js +7 -55
- package/dist/types/analytics/types/enums.d.ts +1 -1
- package/dist/types/analytics/types/events.d.ts +3 -2
- package/dist/types/analytics/types/general-events.d.ts +8 -3
- package/dist/types/types/editor-plugin.d.ts +24 -2
- package/dist/types/types/floating-toolbar.d.ts +10 -0
- package/dist/types/types/type-ahead.d.ts +8 -0
- package/dist/types/ui-menu/DropdownMenu/index.d.ts +1 -1
- package/dist/types/ui-menu/DropdownMenu/types.d.ts +1 -0
- package/dist/types/ui-menu/MenuArrowKeyNavigationProvider/index.d.ts +3 -2
- package/dist/types/ui-react/with-react-editor-view-outer-listeners.d.ts +1 -1
- package/package.json +8 -8
|
@@ -4,51 +4,44 @@ export class RenderCountProfiler {
|
|
|
4
4
|
* The singleton/cached instance of RenderCountProfiler that will be shared
|
|
5
5
|
* betweenRenderCountProfiler.getInstance() calls
|
|
6
6
|
*/
|
|
7
|
+
|
|
7
8
|
constructor({
|
|
8
9
|
store
|
|
9
10
|
}) {
|
|
10
11
|
this.store = store;
|
|
11
12
|
}
|
|
13
|
+
|
|
12
14
|
/**
|
|
13
15
|
* Returns the singleton/cached instance of RenderCountProfiler that
|
|
14
16
|
* currently exists. If it hasn't been instantiated yet, the singleton
|
|
15
17
|
* instance will be created using the given params. Returns the latest
|
|
16
18
|
* singleton/instance.
|
|
17
19
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
20
|
static getInstance(params) {
|
|
21
21
|
if (!RenderCountProfiler.instance) {
|
|
22
22
|
RenderCountProfiler.instance = new RenderCountProfiler({
|
|
23
23
|
store: params.store
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
-
|
|
27
26
|
return RenderCountProfiler.instance;
|
|
28
27
|
}
|
|
29
|
-
|
|
30
28
|
getData(profilerKey) {
|
|
31
29
|
var _this$store;
|
|
32
|
-
|
|
33
30
|
return (_this$store = this.store) === null || _this$store === void 0 ? void 0 : _this$store[profilerKey];
|
|
34
31
|
}
|
|
35
|
-
|
|
36
32
|
enable() {
|
|
37
|
-
this.store[PROFILER_KEY] = {
|
|
33
|
+
this.store[PROFILER_KEY] = {
|
|
34
|
+
...this.store[PROFILER_KEY],
|
|
38
35
|
enabled: true
|
|
39
36
|
};
|
|
40
37
|
}
|
|
41
|
-
|
|
42
38
|
remove() {
|
|
43
39
|
delete this.store[PROFILER_KEY];
|
|
44
40
|
}
|
|
45
|
-
|
|
46
41
|
isEnabled() {
|
|
47
42
|
var _this$store2, _this$store2$PROFILER;
|
|
48
|
-
|
|
49
43
|
return Boolean((_this$store2 = this.store) === null || _this$store2 === void 0 ? void 0 : (_this$store2$PROFILER = _this$store2[PROFILER_KEY]) === null || _this$store2$PROFILER === void 0 ? void 0 : _this$store2$PROFILER.enabled);
|
|
50
44
|
}
|
|
51
|
-
|
|
52
45
|
setRenderCount({
|
|
53
46
|
componentId,
|
|
54
47
|
renderCount,
|
|
@@ -60,24 +53,24 @@ export class RenderCountProfiler {
|
|
|
60
53
|
};
|
|
61
54
|
const existingComponents = profilerData === null || profilerData === void 0 ? void 0 : profilerData.components;
|
|
62
55
|
const existingInstances = existingComponents === null || existingComponents === void 0 ? void 0 : existingComponents[componentId];
|
|
63
|
-
const updatedComponent = {
|
|
56
|
+
const updatedComponent = {
|
|
57
|
+
...existingInstances,
|
|
64
58
|
[instanceId]: instance
|
|
65
59
|
};
|
|
66
|
-
this.store[PROFILER_KEY] = {
|
|
67
|
-
|
|
60
|
+
this.store[PROFILER_KEY] = {
|
|
61
|
+
...profilerData,
|
|
62
|
+
components: {
|
|
63
|
+
...existingComponents,
|
|
68
64
|
[componentId]: updatedComponent
|
|
69
65
|
}
|
|
70
66
|
};
|
|
71
67
|
}
|
|
72
|
-
|
|
73
68
|
getInstanceRenderCounters({
|
|
74
69
|
componentId
|
|
75
70
|
}) {
|
|
76
71
|
var _this$store$PROFILER_, _this$store3, _this$store3$PROFILER, _this$store3$PROFILER2;
|
|
77
|
-
|
|
78
72
|
const component = (_this$store$PROFILER_ = (_this$store3 = this.store) === null || _this$store3 === void 0 ? void 0 : (_this$store3$PROFILER = _this$store3[PROFILER_KEY]) === null || _this$store3$PROFILER === void 0 ? void 0 : (_this$store3$PROFILER2 = _this$store3$PROFILER.components) === null || _this$store3$PROFILER2 === void 0 ? void 0 : _this$store3$PROFILER2[componentId]) !== null && _this$store$PROFILER_ !== void 0 ? _this$store$PROFILER_ : {};
|
|
79
73
|
const counters = [];
|
|
80
|
-
|
|
81
74
|
for (let instanceId in component) {
|
|
82
75
|
const counter = {
|
|
83
76
|
instanceId,
|
|
@@ -85,23 +78,17 @@ export class RenderCountProfiler {
|
|
|
85
78
|
};
|
|
86
79
|
counters.push(counter);
|
|
87
80
|
}
|
|
88
|
-
|
|
89
81
|
return counters;
|
|
90
82
|
}
|
|
91
|
-
|
|
92
83
|
getRenderCount({
|
|
93
84
|
componentId
|
|
94
85
|
}) {
|
|
95
86
|
var _this$store$PROFILER_2, _this$store4, _this$store4$PROFILER, _this$store4$PROFILER2;
|
|
96
|
-
|
|
97
87
|
const component = (_this$store$PROFILER_2 = (_this$store4 = this.store) === null || _this$store4 === void 0 ? void 0 : (_this$store4$PROFILER = _this$store4[PROFILER_KEY]) === null || _this$store4$PROFILER === void 0 ? void 0 : (_this$store4$PROFILER2 = _this$store4$PROFILER.components) === null || _this$store4$PROFILER2 === void 0 ? void 0 : _this$store4$PROFILER2[componentId]) !== null && _this$store$PROFILER_2 !== void 0 ? _this$store$PROFILER_2 : {};
|
|
98
88
|
let total = 0;
|
|
99
|
-
|
|
100
89
|
for (let instanceId in component) {
|
|
101
90
|
total += component[instanceId].count;
|
|
102
91
|
}
|
|
103
|
-
|
|
104
92
|
return total;
|
|
105
93
|
}
|
|
106
|
-
|
|
107
94
|
}
|
|
@@ -1,53 +1,48 @@
|
|
|
1
1
|
export const isReferencedSource = (state, node) => {
|
|
2
2
|
var _node$attrs, _node$marks, _node$marks$find, _node$marks$find$attr;
|
|
3
|
-
|
|
4
3
|
if (!node) {
|
|
5
4
|
return false;
|
|
6
5
|
}
|
|
6
|
+
let found = false;
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
// Handle nodes having 2 uuids. They could have a localId or a fragment. Regardless this needs
|
|
9
9
|
// to check if either id is used by a data consumer.
|
|
10
|
+
const localIds = new Set([(_node$attrs = node.attrs) === null || _node$attrs === void 0 ? void 0 : _node$attrs.localId, (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : (_node$marks$find = _node$marks.find(mark => mark.type === state.schema.marks.fragment)) === null || _node$marks$find === void 0 ? void 0 : (_node$marks$find$attr = _node$marks$find.attrs) === null || _node$marks$find$attr === void 0 ? void 0 : _node$marks$find$attr.localId].filter(Boolean));
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
// If there are no uuids on the node then it's not possible for it to be referenced anywhere.
|
|
13
13
|
if (!localIds.size) {
|
|
14
14
|
return false;
|
|
15
15
|
}
|
|
16
|
-
|
|
17
16
|
state.doc.descendants(node => {
|
|
18
17
|
var _dataConsumer$attrs$s, _dataConsumer$attrs$s2;
|
|
19
|
-
|
|
20
18
|
if (found) {
|
|
21
19
|
return false;
|
|
22
20
|
}
|
|
23
|
-
|
|
24
21
|
const dataConsumer = node.marks.find(mark => mark.type === state.schema.marks.dataConsumer);
|
|
25
|
-
|
|
26
22
|
if (!dataConsumer) {
|
|
27
23
|
return true;
|
|
28
24
|
}
|
|
29
|
-
|
|
30
25
|
found = (_dataConsumer$attrs$s = (_dataConsumer$attrs$s2 = dataConsumer.attrs.sources) === null || _dataConsumer$attrs$s2 === void 0 ? void 0 : _dataConsumer$attrs$s2.some(src => localIds.has(src))) !== null && _dataConsumer$attrs$s !== void 0 ? _dataConsumer$attrs$s : false;
|
|
31
26
|
return !found;
|
|
32
27
|
});
|
|
33
28
|
return found;
|
|
34
29
|
};
|
|
35
|
-
|
|
36
30
|
const getConnections = state => {
|
|
37
31
|
const result = {};
|
|
38
32
|
const {
|
|
39
33
|
doc,
|
|
40
34
|
schema
|
|
41
|
-
} = state;
|
|
42
|
-
// have both ids mapped here to the same normalized version.
|
|
35
|
+
} = state;
|
|
43
36
|
|
|
37
|
+
// Keeps a map of all raw ids -> to their preferred normalised varient. A node with both fragmentMark & localId will
|
|
38
|
+
// have both ids mapped here to the same normalized version.
|
|
44
39
|
const normalizedIds = new Map();
|
|
45
|
-
const dataConsumerSources = new Map();
|
|
46
|
-
// This will also save a list of data sources consumed per node.
|
|
40
|
+
const dataConsumerSources = new Map();
|
|
47
41
|
|
|
42
|
+
// Perform a prelim scan creating the initial id to connection link mappings.
|
|
43
|
+
// This will also save a list of data sources consumed per node.
|
|
48
44
|
doc.descendants((node, pos) => {
|
|
49
45
|
var _node$attrs2, _fragmentMark$attrs$l, _fragmentMark, _fragmentMark$attrs, _node$attrs3, _fragmentMark2, _fragmentMark2$attrs, _node$attrs4, _fragmentMark$attrs$n, _fragmentMark3, _fragmentMark3$attrs;
|
|
50
|
-
|
|
51
46
|
let dataConsumer;
|
|
52
47
|
let fragmentMark;
|
|
53
48
|
node.marks.some(mark => {
|
|
@@ -55,35 +50,30 @@ const getConnections = state => {
|
|
|
55
50
|
dataConsumer = mark;
|
|
56
51
|
} else if (mark.type === schema.marks.fragment) {
|
|
57
52
|
fragmentMark = mark;
|
|
58
|
-
}
|
|
59
|
-
|
|
53
|
+
}
|
|
60
54
|
|
|
55
|
+
// Stop searching marks if we've found both consumer and fragment.
|
|
61
56
|
return !!dataConsumer && !!fragmentMark;
|
|
62
|
-
});
|
|
57
|
+
});
|
|
63
58
|
|
|
59
|
+
// If node cannot be referenced by any means then abort.
|
|
64
60
|
if (!fragmentMark && !((_node$attrs2 = node.attrs) !== null && _node$attrs2 !== void 0 && _node$attrs2.localId)) {
|
|
65
61
|
return true;
|
|
66
62
|
}
|
|
67
|
-
|
|
68
63
|
const normalizedId = (_fragmentMark$attrs$l = (_fragmentMark = fragmentMark) === null || _fragmentMark === void 0 ? void 0 : (_fragmentMark$attrs = _fragmentMark.attrs) === null || _fragmentMark$attrs === void 0 ? void 0 : _fragmentMark$attrs.localId) !== null && _fragmentMark$attrs$l !== void 0 ? _fragmentMark$attrs$l : (_node$attrs3 = node.attrs) === null || _node$attrs3 === void 0 ? void 0 : _node$attrs3.localId;
|
|
69
|
-
|
|
70
64
|
if (!normalizedId) {
|
|
71
65
|
return true;
|
|
72
66
|
}
|
|
73
|
-
|
|
74
67
|
if (!!((_fragmentMark2 = fragmentMark) !== null && _fragmentMark2 !== void 0 && (_fragmentMark2$attrs = _fragmentMark2.attrs) !== null && _fragmentMark2$attrs !== void 0 && _fragmentMark2$attrs.localId)) {
|
|
75
68
|
normalizedIds.set(fragmentMark.attrs.localId, normalizedId);
|
|
76
69
|
}
|
|
77
|
-
|
|
78
70
|
if (!!((_node$attrs4 = node.attrs) !== null && _node$attrs4 !== void 0 && _node$attrs4.localId)) {
|
|
79
71
|
normalizedIds.set(node.attrs.localId, normalizedId);
|
|
80
72
|
}
|
|
81
|
-
|
|
82
73
|
if (!!result[normalizedId]) {
|
|
83
74
|
// Duplicate ID has been found, we'll care about the first one for now.
|
|
84
75
|
return true;
|
|
85
76
|
}
|
|
86
|
-
|
|
87
77
|
result[normalizedId] = {
|
|
88
78
|
localId: normalizedId,
|
|
89
79
|
name: (_fragmentMark$attrs$n = (_fragmentMark3 = fragmentMark) === null || _fragmentMark3 === void 0 ? void 0 : (_fragmentMark3$attrs = _fragmentMark3.attrs) === null || _fragmentMark3$attrs === void 0 ? void 0 : _fragmentMark3$attrs.name) !== null && _fragmentMark$attrs$n !== void 0 ? _fragmentMark$attrs$n : normalizedId,
|
|
@@ -91,46 +81,40 @@ const getConnections = state => {
|
|
|
91
81
|
pos,
|
|
92
82
|
targets: []
|
|
93
83
|
};
|
|
94
|
-
|
|
95
84
|
if (!!dataConsumer && dataConsumer.attrs.sources.length) {
|
|
96
85
|
dataConsumerSources.set(normalizedId, dataConsumer.attrs.sources);
|
|
97
|
-
}
|
|
98
|
-
// be referenced by another node.
|
|
99
|
-
|
|
86
|
+
}
|
|
100
87
|
|
|
88
|
+
// Do not descend into children of a node which has a dataConsumer attached. This assumes all children of the node cannot
|
|
89
|
+
// be referenced by another node.
|
|
101
90
|
return !dataConsumer;
|
|
102
|
-
});
|
|
91
|
+
});
|
|
103
92
|
|
|
93
|
+
// This 2nd-pass only looks at the consumer sources and updates all connections with the correct id refs.
|
|
104
94
|
for (const [localId, sources] of dataConsumerSources) {
|
|
105
95
|
// This is a ref to the node (connection link) which contains the consumer.
|
|
96
|
+
|
|
106
97
|
sources.forEach(src => {
|
|
107
98
|
var _normalizedIds$get;
|
|
108
|
-
|
|
109
99
|
const normalizedId = (_normalizedIds$get = normalizedIds.get(src)) !== null && _normalizedIds$get !== void 0 ? _normalizedIds$get : src;
|
|
110
100
|
const srcLink = result[normalizedId];
|
|
111
|
-
|
|
112
101
|
if (srcLink && normalizedId !== localId) {
|
|
113
102
|
srcLink.targets.push(localId);
|
|
114
103
|
}
|
|
115
104
|
});
|
|
116
105
|
}
|
|
117
|
-
|
|
118
106
|
return result;
|
|
119
107
|
};
|
|
120
|
-
|
|
121
108
|
export const removeConnectedNodes = (state, node) => {
|
|
122
109
|
if (!node) {
|
|
123
110
|
return state.tr;
|
|
124
111
|
}
|
|
125
|
-
|
|
126
112
|
const selectedLocalIds = getSelectedLocalIds(state, node);
|
|
127
113
|
const allNodes = getConnections(state);
|
|
128
114
|
const idsToBeDeleted = getIdsToBeDeleted(selectedLocalIds, allNodes);
|
|
129
|
-
|
|
130
115
|
if (!(idsToBeDeleted !== null && idsToBeDeleted !== void 0 && idsToBeDeleted.length)) {
|
|
131
116
|
return state.tr;
|
|
132
117
|
}
|
|
133
|
-
|
|
134
118
|
const {
|
|
135
119
|
tr
|
|
136
120
|
} = state;
|
|
@@ -139,7 +123,6 @@ export const removeConnectedNodes = (state, node) => {
|
|
|
139
123
|
if (!allNodes[id]) {
|
|
140
124
|
return;
|
|
141
125
|
}
|
|
142
|
-
|
|
143
126
|
const {
|
|
144
127
|
node,
|
|
145
128
|
pos
|
|
@@ -147,40 +130,34 @@ export const removeConnectedNodes = (state, node) => {
|
|
|
147
130
|
newTr = newTr.delete(newTr.mapping.map(pos), newTr.mapping.map(node.nodeSize + pos));
|
|
148
131
|
});
|
|
149
132
|
return newTr;
|
|
150
|
-
};
|
|
133
|
+
};
|
|
151
134
|
|
|
135
|
+
// find all ids need to be remove connected to selected extension
|
|
152
136
|
const getIdsToBeDeleted = (selectedIds, allNodes) => {
|
|
153
137
|
if (!selectedIds.size) {
|
|
154
138
|
return [];
|
|
155
139
|
}
|
|
156
|
-
|
|
157
140
|
let searchSet = [...selectedIds];
|
|
158
141
|
const deletedIds = new Set();
|
|
159
|
-
|
|
160
142
|
while (searchSet.length) {
|
|
161
143
|
const id = searchSet.pop();
|
|
162
|
-
|
|
163
144
|
if (allNodes[id]) {
|
|
164
145
|
var _allNodes$id$targets$, _allNodes$id;
|
|
165
|
-
|
|
166
146
|
deletedIds.add(allNodes[id].localId);
|
|
167
147
|
searchSet = searchSet.concat((_allNodes$id$targets$ = (_allNodes$id = allNodes[id]) === null || _allNodes$id === void 0 ? void 0 : _allNodes$id.targets.filter(targetId => {
|
|
168
148
|
var _allNodes$targetId;
|
|
169
|
-
|
|
170
149
|
return !deletedIds.has((_allNodes$targetId = allNodes[targetId]) === null || _allNodes$targetId === void 0 ? void 0 : _allNodes$targetId.localId);
|
|
171
150
|
})) !== null && _allNodes$id$targets$ !== void 0 ? _allNodes$id$targets$ : []);
|
|
172
151
|
}
|
|
173
152
|
}
|
|
174
|
-
|
|
175
153
|
return Array.from(deletedIds);
|
|
176
|
-
};
|
|
177
|
-
|
|
154
|
+
};
|
|
178
155
|
|
|
156
|
+
// for get children info for confirmation dialog
|
|
179
157
|
export const getChildrenInfo = (state, node) => {
|
|
180
158
|
if (!node) {
|
|
181
159
|
return [];
|
|
182
160
|
}
|
|
183
|
-
|
|
184
161
|
const childrenIdSet = new Set();
|
|
185
162
|
const childrenInfoArray = [];
|
|
186
163
|
const allNodes = getConnections(state);
|
|
@@ -199,76 +176,58 @@ export const getChildrenInfo = (state, node) => {
|
|
|
199
176
|
});
|
|
200
177
|
return childrenInfoArray;
|
|
201
178
|
};
|
|
202
|
-
|
|
203
179
|
const getChildrenNodeAmount = (id, allNodes) => {
|
|
204
180
|
const searchTerms = new Set([id]);
|
|
205
181
|
const traverseHistory = new Map();
|
|
206
182
|
const childrenIds = new Set();
|
|
207
183
|
traverseHistory.set(id, false);
|
|
208
|
-
|
|
209
184
|
while (searchTerms.size > 0) {
|
|
210
185
|
const [currTerm] = searchTerms;
|
|
211
186
|
let targets = getNodeTargetsById(currTerm, allNodes);
|
|
212
187
|
targets.forEach(target => {
|
|
213
188
|
const isTargetCounted = traverseHistory.get(target);
|
|
214
|
-
|
|
215
189
|
if (!isTargetCounted) {
|
|
216
190
|
searchTerms.add(target);
|
|
217
191
|
childrenIds.add(target);
|
|
218
192
|
}
|
|
219
|
-
|
|
220
193
|
target !== id && childrenIds.add(target);
|
|
221
194
|
});
|
|
222
195
|
traverseHistory.set(currTerm, true);
|
|
223
196
|
searchTerms.delete(currTerm);
|
|
224
197
|
}
|
|
225
|
-
|
|
226
198
|
return childrenIds.size;
|
|
227
199
|
};
|
|
228
|
-
|
|
229
200
|
const getNodeTargetsById = (id, allNodes) => {
|
|
230
201
|
if (!id || !allNodes[id]) {
|
|
231
202
|
return [];
|
|
232
203
|
}
|
|
233
|
-
|
|
234
204
|
return allNodes[id].targets;
|
|
235
205
|
};
|
|
236
|
-
|
|
237
206
|
const DEFAULT_EXTENSION_NAME = 'Default extension';
|
|
238
|
-
|
|
239
207
|
const getNodeNameById = (id, allNodes) => {
|
|
240
208
|
if (typeof id === 'object') {
|
|
241
209
|
var _name2;
|
|
242
|
-
|
|
243
210
|
let name;
|
|
244
211
|
id.forEach(localId => {
|
|
245
212
|
var _name, _allNodes$localId;
|
|
246
|
-
|
|
247
213
|
name = (_name = name) !== null && _name !== void 0 ? _name : (_allNodes$localId = allNodes[localId]) === null || _allNodes$localId === void 0 ? void 0 : _allNodes$localId.name;
|
|
248
214
|
});
|
|
249
215
|
return (_name2 = name) !== null && _name2 !== void 0 ? _name2 : DEFAULT_EXTENSION_NAME;
|
|
250
216
|
}
|
|
251
|
-
|
|
252
217
|
if (!id || !allNodes[id]) {
|
|
253
218
|
return DEFAULT_EXTENSION_NAME;
|
|
254
219
|
}
|
|
255
|
-
|
|
256
220
|
return allNodes[id].name;
|
|
257
221
|
};
|
|
258
|
-
|
|
259
222
|
const getSelectedLocalIds = (state, node) => {
|
|
260
223
|
var _node$attrs5, _node$marks2, _node$marks2$find, _node$marks2$find$att;
|
|
261
|
-
|
|
262
224
|
if (!node) {
|
|
263
225
|
return new Set([]);
|
|
264
226
|
}
|
|
265
|
-
|
|
266
227
|
const localIds = new Set([(_node$attrs5 = node.attrs) === null || _node$attrs5 === void 0 ? void 0 : _node$attrs5.localId, (_node$marks2 = node.marks) === null || _node$marks2 === void 0 ? void 0 : (_node$marks2$find = _node$marks2.find(mark => mark.type === state.schema.marks.fragment)) === null || _node$marks2$find === void 0 ? void 0 : (_node$marks2$find$att = _node$marks2$find.attrs) === null || _node$marks2$find$att === void 0 ? void 0 : _node$marks2$find$att.localId].filter(Boolean));
|
|
267
228
|
return localIds;
|
|
268
229
|
};
|
|
269
|
-
|
|
270
230
|
export const getNodeName = (state, node) => {
|
|
271
231
|
var _node$marks$find$attr2, _node$marks3, _node$marks3$find, _node$marks3$find$att;
|
|
272
|
-
|
|
273
232
|
return (_node$marks$find$attr2 = node === null || node === void 0 ? void 0 : (_node$marks3 = node.marks) === null || _node$marks3 === void 0 ? void 0 : (_node$marks3$find = _node$marks3.find(mark => mark.type === state.schema.marks.fragment)) === null || _node$marks3$find === void 0 ? void 0 : (_node$marks3$find$att = _node$marks3$find.attrs) === null || _node$marks3$find$att === void 0 ? void 0 : _node$marks3$find$att.name) !== null && _node$marks$find$attr2 !== void 0 ? _node$marks$find$attr2 : '';
|
|
274
233
|
};
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { Fragment, Slice } from 'prosemirror-model';
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* A helper to get the underlying array of a fragment.
|
|
4
5
|
*/
|
|
5
|
-
|
|
6
6
|
export function getFragmentBackingArray(fragment) {
|
|
7
7
|
return fragment.content;
|
|
8
8
|
}
|
|
9
9
|
export function mapFragment(content, callback, parent = null) {
|
|
10
10
|
const children = [];
|
|
11
|
-
|
|
12
11
|
for (let i = 0, size = content.childCount; i < size; i++) {
|
|
13
12
|
const node = content.child(i);
|
|
14
13
|
const transformed = node.isLeaf ? callback(node, parent, i) : callback(node.copy(mapFragment(node.content, callback, node)), parent, i);
|
|
15
|
-
|
|
16
14
|
if (transformed) {
|
|
17
15
|
if (transformed instanceof Fragment) {
|
|
18
16
|
children.push(...getFragmentBackingArray(transformed));
|
|
@@ -23,7 +21,6 @@ export function mapFragment(content, callback, parent = null) {
|
|
|
23
21
|
}
|
|
24
22
|
}
|
|
25
23
|
}
|
|
26
|
-
|
|
27
24
|
return Fragment.fromArray(children);
|
|
28
25
|
}
|
|
29
26
|
export function mapSlice(slice, callback) {
|
|
@@ -32,25 +29,20 @@ export function mapSlice(slice, callback) {
|
|
|
32
29
|
}
|
|
33
30
|
export function flatmap(fragment, callback) {
|
|
34
31
|
const fragmentContent = [];
|
|
35
|
-
|
|
36
32
|
for (let i = 0; i < fragment.childCount; i++) {
|
|
37
33
|
const child = callback(fragment.child(i), i, fragment);
|
|
38
|
-
|
|
39
34
|
if (Array.isArray(child)) {
|
|
40
35
|
fragmentContent.push(...child);
|
|
41
36
|
} else {
|
|
42
37
|
fragmentContent.push(child);
|
|
43
38
|
}
|
|
44
39
|
}
|
|
45
|
-
|
|
46
40
|
return Fragment.fromArray(fragmentContent);
|
|
47
41
|
}
|
|
48
42
|
export function mapChildren(node, callback) {
|
|
49
43
|
const array = [];
|
|
50
|
-
|
|
51
44
|
for (let i = 0; i < node.childCount; i++) {
|
|
52
45
|
array.push(callback(node.child(i), i, node instanceof Fragment ? node : node.content));
|
|
53
46
|
}
|
|
54
|
-
|
|
55
47
|
return array;
|
|
56
48
|
}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
export function calcTableColumnWidths(node) {
|
|
2
2
|
let tableColumnWidths = [];
|
|
3
3
|
const firstRow = node.firstChild;
|
|
4
|
-
|
|
5
4
|
if (firstRow) {
|
|
6
5
|
// Sanity validation, but it should always have a first row
|
|
7
6
|
// Iterate for the cells in the first row
|
|
8
7
|
firstRow.forEach(colNode => {
|
|
9
|
-
let colwidth = colNode.attrs.colwidth || [0];
|
|
8
|
+
let colwidth = colNode.attrs.colwidth || [0];
|
|
10
9
|
|
|
10
|
+
// If we have colwidth, we added it
|
|
11
11
|
if (colwidth) {
|
|
12
12
|
tableColumnWidths = [...tableColumnWidths, ...colwidth];
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
|
|
17
16
|
return tableColumnWidths;
|
|
18
17
|
}
|
|
19
18
|
export function hasMergedCell(tableNode) {
|
|
@@ -22,16 +21,13 @@ export function hasMergedCell(tableNode) {
|
|
|
22
21
|
if (node.type.name === 'tableRow') {
|
|
23
22
|
return true;
|
|
24
23
|
}
|
|
25
|
-
|
|
26
24
|
const {
|
|
27
25
|
colspan,
|
|
28
26
|
rowspan
|
|
29
27
|
} = node.attrs;
|
|
30
|
-
|
|
31
28
|
if (colspan > 1 || rowspan > 1) {
|
|
32
29
|
hasSpan = true;
|
|
33
30
|
}
|
|
34
|
-
|
|
35
31
|
return false;
|
|
36
32
|
});
|
|
37
33
|
return hasSpan;
|
|
@@ -1,30 +1,29 @@
|
|
|
1
1
|
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../analytics';
|
|
2
2
|
const whitelistedAttributes = ['align', 'annotationType', 'extensionKey', 'extensionType', 'layout', 'type', 'localId', 'mode', 'language', 'timestamp', 'state', 'originalWidth', 'originalHeight', 'height', 'width', 'shortName', 'level', 'userType', 'order', 'panelType', 'color', 'style', 'isNumberColumnEnabled', 'colspan', 'rowspan', 'colwidth', 'background'];
|
|
3
|
-
|
|
4
3
|
function concatAncestorHierarchy(node, ancestoryHierarchy) {
|
|
5
4
|
const {
|
|
6
5
|
name
|
|
7
|
-
} = node.type;
|
|
8
|
-
|
|
6
|
+
} = node.type;
|
|
7
|
+
// Space concatenator used to reduce analytics payload size
|
|
9
8
|
return ancestoryHierarchy ? `${ancestoryHierarchy} ${name}` : name;
|
|
10
9
|
}
|
|
11
|
-
|
|
12
10
|
const sanitizeMarks = (marks = []) => {
|
|
13
11
|
let sanitizedMarks = [];
|
|
14
12
|
marks.forEach(mark => {
|
|
15
13
|
if (mark.attrs) {
|
|
16
14
|
const attrs = sanitizeAttributes(mark.attrs);
|
|
17
|
-
sanitizedMarks.push({
|
|
15
|
+
sanitizedMarks.push({
|
|
16
|
+
...mark,
|
|
18
17
|
attrs
|
|
19
18
|
});
|
|
20
19
|
} else {
|
|
21
|
-
sanitizedMarks.push({
|
|
20
|
+
sanitizedMarks.push({
|
|
21
|
+
...mark
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
return sanitizedMarks;
|
|
26
26
|
};
|
|
27
|
-
|
|
28
27
|
const sanitizeAttributes = (attrs = {}) => {
|
|
29
28
|
let sanitizedAttrs = Object.assign({}, attrs);
|
|
30
29
|
Object.keys(attrs).filter(key => !whitelistedAttributes.includes(key)).forEach(key => {
|
|
@@ -32,7 +31,6 @@ const sanitizeAttributes = (attrs = {}) => {
|
|
|
32
31
|
});
|
|
33
32
|
return sanitizedAttrs;
|
|
34
33
|
};
|
|
35
|
-
|
|
36
34
|
const trackUnsupportedContentTooltipActionFor = (action, dispatchAnalyticsEvent, unsupportedContentType, originalNodeType) => {
|
|
37
35
|
dispatchAnalyticsEvent({
|
|
38
36
|
action: action,
|
|
@@ -44,7 +42,6 @@ const trackUnsupportedContentTooltipActionFor = (action, dispatchAnalyticsEvent,
|
|
|
44
42
|
}
|
|
45
43
|
});
|
|
46
44
|
};
|
|
47
|
-
|
|
48
45
|
export const findAndTrackUnsupportedContentNodes = (node, schema, dispatchAnalyticsEvent, ancestorHierarchy = '') => {
|
|
49
46
|
const {
|
|
50
47
|
type: nodeType,
|
|
@@ -59,7 +56,6 @@ export const findAndTrackUnsupportedContentNodes = (node, schema, dispatchAnalyt
|
|
|
59
56
|
unsupportedBlock
|
|
60
57
|
} = schema.nodes;
|
|
61
58
|
const parentType = ancestorHierarchy.split(' ').pop() || '';
|
|
62
|
-
|
|
63
59
|
if (nodeMarks.length) {
|
|
64
60
|
nodeMarks.forEach(mark => {
|
|
65
61
|
if (mark.type === unsupportedMark) {
|
|
@@ -92,7 +88,6 @@ export const findAndTrackUnsupportedContentNodes = (node, schema, dispatchAnalyt
|
|
|
92
88
|
}
|
|
93
89
|
});
|
|
94
90
|
}
|
|
95
|
-
|
|
96
91
|
if (nodeType === unsupportedInline || nodeType === unsupportedBlock) {
|
|
97
92
|
const {
|
|
98
93
|
originalValue
|
|
@@ -1,48 +1,35 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
|
|
3
2
|
class ADFTraversor {
|
|
4
3
|
constructor(doc) {
|
|
5
4
|
_defineProperty(this, "subscribers", new Map());
|
|
6
|
-
|
|
7
5
|
this.doc = doc;
|
|
8
6
|
}
|
|
9
|
-
|
|
10
7
|
subscribe(type, callback) {
|
|
11
8
|
const callbacks = this.subscribers.get(type);
|
|
12
|
-
|
|
13
9
|
if (!callbacks) {
|
|
14
10
|
this.subscribers.set(type, [callback]);
|
|
15
11
|
} else {
|
|
16
12
|
callbacks.push(callback);
|
|
17
13
|
}
|
|
18
14
|
}
|
|
19
|
-
|
|
20
15
|
exec() {
|
|
21
16
|
if (!this.doc || !Array.isArray(this.doc.content)) {
|
|
22
17
|
return;
|
|
23
18
|
}
|
|
24
|
-
|
|
25
19
|
let candidates = this.doc.content.slice(0);
|
|
26
|
-
|
|
27
20
|
while (candidates.length) {
|
|
28
21
|
const node = candidates.shift();
|
|
29
|
-
|
|
30
22
|
if (Array.isArray(node.content)) {
|
|
31
23
|
candidates = candidates.concat(node.content);
|
|
32
24
|
}
|
|
33
|
-
|
|
34
25
|
const callbacks = this.subscribers.get(node.type);
|
|
35
|
-
|
|
36
26
|
if (!callbacks) {
|
|
37
27
|
continue;
|
|
38
28
|
}
|
|
39
|
-
|
|
40
29
|
for (let i = 0; i < callbacks.length; i++) {
|
|
41
30
|
callbacks[i](node);
|
|
42
31
|
}
|
|
43
32
|
}
|
|
44
33
|
}
|
|
45
|
-
|
|
46
34
|
}
|
|
47
|
-
|
|
48
35
|
export default ADFTraversor;
|