@atlaskit/editor-core 180.0.0 → 181.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +117 -0
- package/codemods/180.1.0-update-to-editor-migration-component.ts +8 -0
- package/codemods/__tests__/rename-editor-to-editor-migration-component.ts +156 -0
- package/codemods/migrates/rename-editor-to-editor-migration-component.ts +34 -0
- package/dist/cjs/actions/index.js +26 -11
- package/dist/cjs/analytics-api/attach-payload-into-transaction.js +1 -1
- package/dist/cjs/create-editor/ReactEditorView.js +9 -764
- package/dist/cjs/create-editor/ReactEditorViewInternal.js +753 -0
- package/dist/cjs/create-editor/ReactEditorViewNext.js +16 -0
- package/dist/cjs/create-editor/create-plugins-list.js +31 -3
- package/dist/cjs/create-editor/feature-flags-from-props.js +3 -2
- package/dist/cjs/create-editor/preset-utils.js +27 -0
- package/dist/cjs/editor-next/editor-internal.js +147 -0
- package/dist/cjs/editor-next/editor-migration-component.js +51 -0
- package/dist/cjs/editor-next/hooks/useEditorMeasuresConstructor.js +36 -0
- package/dist/cjs/editor-next/hooks/useMeasureEditorMountTime.js +42 -0
- package/dist/cjs/editor-next/hooks/useProviderFactory.js +73 -0
- package/dist/cjs/editor-next/index.js +143 -0
- package/dist/cjs/editor-next/utils/deprecationWarnings.js +45 -0
- package/dist/cjs/editor-next/utils/editorMeasureTTICallback.js +44 -0
- package/dist/cjs/editor-next/utils/editorPropTypes.js +36 -0
- package/dist/cjs/editor-next/utils/getBaseFontSize.js +17 -0
- package/dist/cjs/editor-next/utils/getProvidersFromEditorProps.js +41 -0
- package/dist/cjs/editor-next/utils/handleProviders.js +51 -0
- package/dist/cjs/editor-next/utils/onEditorCreated.js +28 -0
- package/dist/cjs/editor-next/utils/sendDurationAnalytics.js +68 -0
- package/dist/cjs/editor-next/utils/trackEditorActions.js +101 -0
- package/dist/cjs/editor.js +139 -445
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/keymaps/consts.js +1 -16
- package/dist/cjs/labs/next/internal/hooks/use-analytics/index.js +4 -4
- package/dist/cjs/labs/next/internal/hooks/use-editor/create-dispatch-transaction.js +6 -6
- package/dist/cjs/labs/next/presets/create-stub-internal-apis.js +117 -0
- package/dist/cjs/labs/next/presets/cxhtml.js +56 -55
- package/dist/cjs/labs/next/presets/default.js +15 -42
- package/dist/cjs/labs/next/presets/mobile.js +76 -89
- package/dist/cjs/labs/next/presets/universal.js +337 -255
- package/dist/cjs/labs/next/presets/useUniversalPreset.js +36 -0
- package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +48 -13
- package/dist/cjs/plugins/analytics/index.js +2 -3
- package/dist/cjs/plugins/analytics/plugin.js +11 -6
- package/dist/cjs/plugins/analytics/utils.js +0 -11
- package/dist/cjs/plugins/annotation/utils.js +2 -36
- package/dist/cjs/plugins/base/pm-plugins/filter-steps.js +1 -1
- package/dist/cjs/plugins/base/pm-plugins/frozen-editor.js +98 -56
- package/dist/cjs/plugins/base/pm-plugins/react-nodeview.js +2 -7
- package/dist/cjs/plugins/base/utils/input-latency-tracking.js +24 -25
- package/dist/cjs/plugins/block-type/pm-plugins/input-rule.js +0 -10
- package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -0
- package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/index.js +36 -9
- package/dist/cjs/plugins/caption/index.js +0 -7
- package/dist/cjs/plugins/card/nodeviews/blockCard.js +9 -3
- package/dist/cjs/plugins/card/nodeviews/genericCard.js +16 -2
- package/dist/cjs/plugins/card/nodeviews/inlineCard.js +6 -2
- package/dist/cjs/plugins/card/pm-plugins/main.js +10 -5
- package/dist/cjs/plugins/card/pm-plugins/util/resolve.js +4 -0
- package/dist/cjs/plugins/clipboard/pm-plugins/main.js +4 -1
- package/dist/cjs/plugins/code-block/pm-plugins/main-state.js +2 -14
- package/dist/cjs/plugins/collab-edit/plugin.js +2 -3
- package/dist/cjs/plugins/collab-edit/provider/index.js +1 -8
- package/dist/cjs/plugins/collab-edit/provider/types.js +1 -12
- package/dist/cjs/plugins/context-panel/index.js +1 -6
- package/dist/cjs/plugins/data-consumer/index.js +0 -8
- package/dist/cjs/plugins/date/utils/internal.js +0 -4
- package/dist/cjs/plugins/extension/commands.js +1 -8
- package/dist/cjs/plugins/extension/toolbar.js +7 -1
- package/dist/cjs/plugins/extension/ui/Extension/Extension/index.js +9 -2
- package/dist/cjs/plugins/extension/ui/Extension/Extension/styles.js +2 -2
- package/dist/cjs/plugins/extension/ui/Extension/Lozenge.js +1 -0
- package/dist/cjs/plugins/feedback-dialog/index.js +1 -4
- package/dist/cjs/plugins/find-replace/ui/FindReplaceToolbarButton.js +5 -1
- package/dist/cjs/plugins/floating-toolbar/ui/Button.js +9 -3
- package/dist/cjs/plugins/floating-toolbar/ui/CheckboxModal.js +5 -3
- package/dist/cjs/plugins/floating-toolbar/ui/Dropdown.js +48 -14
- package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +2 -9
- package/dist/cjs/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +24 -21
- package/dist/cjs/plugins/floating-toolbar/ui/ScrollButtons.js +12 -7
- package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +32 -5
- package/dist/cjs/plugins/floating-toolbar/utils.js +0 -12
- package/dist/cjs/plugins/fragment/index.js +0 -8
- package/dist/cjs/plugins/fragment/pm-plugins/fragment-consistency.js +1 -0
- package/dist/cjs/plugins/help-dialog/commands.js +2 -6
- package/dist/cjs/plugins/hyperlink/analytics.js +5 -5
- package/dist/cjs/plugins/hyperlink/index.js +1 -1
- package/dist/cjs/plugins/hyperlink/pm-plugins/main.js +9 -5
- package/dist/cjs/plugins/hyperlink/ui/EditorLinkPicker/index.js +10 -4
- package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
- package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +4 -3
- package/dist/cjs/plugins/image-upload/pm-plugins/main.js +50 -12
- package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -0
- package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +1 -0
- package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +3 -0
- package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +1 -0
- package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +22 -0
- package/dist/cjs/plugins/layout/styles.js +10 -1
- package/dist/cjs/plugins/list/utils/find.js +0 -28
- package/dist/cjs/plugins/list/utils/indentation.js +1 -25
- package/dist/cjs/plugins/list/utils/node.js +0 -5
- package/dist/cjs/plugins/list/utils/selection.js +2 -15
- package/dist/cjs/plugins/media/commands/helpers.js +12 -40
- package/dist/cjs/plugins/media/commands/index.js +4 -4
- package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +14 -12
- package/dist/cjs/plugins/media/nodeviews/mediaInline.js +1 -1
- package/dist/cjs/plugins/media/nodeviews/mediaNodeUpdater.js +310 -205
- package/dist/cjs/plugins/media/nodeviews/mediaSingle.js +1 -1
- package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +1 -1
- package/dist/cjs/plugins/media/pm-plugins/main.js +2 -27
- package/dist/cjs/plugins/media/toolbar/filePreviewItem.js +1 -4
- package/dist/cjs/plugins/media/utils/media-common.js +1 -20
- package/dist/cjs/plugins/mentions/nodeviews/mention.js +100 -16
- package/dist/cjs/plugins/mentions/type-ahead/index.js +1 -18
- package/dist/cjs/plugins/mentions/ui/InviteItem/index.js +1 -3
- package/dist/cjs/plugins/mobile-dimensions/index.js +1 -4
- package/dist/cjs/plugins/panel/utils.js +4 -1
- package/dist/cjs/plugins/paste/handlers.js +128 -13
- package/dist/cjs/plugins/paste/index.js +1 -2
- package/dist/cjs/plugins/paste/pm-plugins/analytics.js +133 -88
- package/dist/cjs/plugins/paste/pm-plugins/main.js +12 -3
- package/dist/cjs/plugins/paste/util/index.js +0 -46
- package/dist/cjs/plugins/placeholder-text/index.js +2 -2
- package/dist/cjs/plugins/quick-insert/assets/index.js +1 -27
- package/dist/cjs/plugins/selection/gap-cursor/actions.js +49 -44
- package/dist/cjs/plugins/status/index.js +9 -3
- package/dist/cjs/plugins/status/ui/statusPicker.js +8 -2
- package/dist/cjs/plugins/status/utils.js +1 -15
- package/dist/cjs/plugins/text-color/pm-plugins/main.js +0 -1
- package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +48 -12
- package/dist/cjs/plugins/text-formatting/pm-plugins/smart-input-rule.js +8 -2
- package/dist/cjs/plugins/text-formatting/ui/Toolbar/dropdown-menu.js +22 -2
- package/dist/cjs/plugins/text-formatting/ui/Toolbar/index.js +3 -1
- package/dist/cjs/plugins/text-formatting/ui/Toolbar/more-button.js +3 -1
- package/dist/cjs/plugins/text-formatting/utils.js +1 -35
- package/dist/cjs/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +19 -1
- package/dist/cjs/plugins/type-ahead/constants.js +1 -7
- package/dist/cjs/plugins/type-ahead/index.js +1 -1
- package/dist/cjs/plugins/type-ahead/pm-plugins/decorations.js +2 -35
- package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +79 -106
- package/dist/cjs/plugins/type-ahead/utils.js +3 -22
- package/dist/cjs/test-utils.js +4 -12
- package/dist/cjs/ui/Appearance/Comment/Toolbar.js +43 -8
- package/dist/cjs/ui/ChromeCollapsed/index.js +1 -0
- package/dist/cjs/ui/CollapsedEditor/index.js +7 -13
- package/dist/cjs/ui/ColorPalette/index.js +18 -0
- package/dist/cjs/ui/ColorPickerButton/index.js +73 -7
- package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +1 -1
- package/dist/cjs/ui/ConfigPanel/Fields/Expand.js +1 -0
- package/dist/cjs/ui/ConfigPanel/utils.js +4 -17
- package/dist/cjs/ui/ContentStyles/index.js +1 -1
- package/dist/cjs/ui/ContextPanel/context.js +13 -12
- package/dist/cjs/ui/Dropdown/index.js +7 -2
- package/dist/cjs/ui/DropdownMenu/index.js +7 -2
- package/dist/cjs/ui/ElementBrowser/ModalElementBrowser.js +1 -1
- package/dist/cjs/ui/ElementBrowser/components/CategoryList.js +1 -1
- package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +1 -1
- package/dist/cjs/ui/ElementBrowser/components/StatelessElementBrowser.js +1 -1
- package/dist/cjs/ui/ElementBrowser/constants.js +1 -3
- package/dist/cjs/ui/PanelTextInput/index.js +4 -4
- package/dist/cjs/ui/PortalProvider/index.js +5 -5
- package/dist/cjs/ui/Resizer/utils.js +1 -3
- package/dist/cjs/ui/WidthEmitter/index.js +29 -35
- package/dist/cjs/ui/styles.js +3 -7
- package/dist/cjs/utils/document.js +15 -0
- package/dist/cjs/utils/extensions.js +6 -7
- package/dist/cjs/utils/get-editor-plugins.js +30 -0
- package/dist/cjs/utils/index.js +9 -269
- package/dist/cjs/utils/input-rules.js +1 -15
- package/dist/cjs/utils/linking-utils.js +1 -1
- package/dist/cjs/utils/performance/components/RenderTracking.js +1 -1
- package/dist/cjs/utils/performance/safer-transactions.js +1 -1
- package/dist/cjs/utils/prepare-extension-provider.js +25 -0
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/actions/index.js +24 -10
- package/dist/es2019/analytics-api/attach-payload-into-transaction.js +1 -1
- package/dist/es2019/create-editor/ReactEditorView.js +3 -710
- package/dist/es2019/create-editor/ReactEditorViewInternal.js +697 -0
- package/dist/es2019/create-editor/ReactEditorViewNext.js +7 -0
- package/dist/es2019/create-editor/create-plugins-list.js +26 -3
- package/dist/es2019/create-editor/feature-flags-from-props.js +3 -2
- package/dist/es2019/create-editor/preset-utils.js +15 -0
- package/dist/es2019/editor-next/editor-internal.js +142 -0
- package/dist/es2019/editor-next/editor-migration-component.js +27 -0
- package/dist/es2019/editor-next/hooks/useEditorMeasuresConstructor.js +30 -0
- package/dist/es2019/editor-next/hooks/useMeasureEditorMountTime.js +35 -0
- package/dist/es2019/editor-next/hooks/useProviderFactory.js +62 -0
- package/dist/es2019/editor-next/index.js +96 -0
- package/dist/es2019/editor-next/utils/deprecationWarnings.js +39 -0
- package/dist/es2019/editor-next/utils/editorMeasureTTICallback.js +40 -0
- package/dist/es2019/editor-next/utils/editorPropTypes.js +29 -0
- package/dist/es2019/editor-next/utils/getBaseFontSize.js +11 -0
- package/dist/es2019/editor-next/utils/getProvidersFromEditorProps.js +36 -0
- package/dist/es2019/editor-next/utils/handleProviders.js +46 -0
- package/dist/es2019/editor-next/utils/onEditorCreated.js +21 -0
- package/dist/es2019/editor-next/utils/sendDurationAnalytics.js +40 -0
- package/dist/es2019/editor-next/utils/trackEditorActions.js +78 -0
- package/dist/es2019/editor.js +122 -398
- package/dist/es2019/index.js +2 -1
- package/dist/es2019/keymaps/consts.js +7 -11
- package/dist/es2019/labs/next/internal/hooks/use-analytics/index.js +2 -2
- package/dist/es2019/labs/next/internal/hooks/use-editor/create-dispatch-transaction.js +2 -3
- package/dist/es2019/labs/next/presets/create-stub-internal-apis.js +105 -0
- package/dist/es2019/labs/next/presets/cxhtml.js +56 -53
- package/dist/es2019/labs/next/presets/default.js +18 -38
- package/dist/es2019/labs/next/presets/mobile.js +88 -88
- package/dist/es2019/labs/next/presets/universal.js +347 -263
- package/dist/es2019/labs/next/presets/useUniversalPreset.js +25 -0
- package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +41 -12
- package/dist/es2019/plugins/analytics/index.js +3 -4
- package/dist/es2019/plugins/analytics/plugin.js +8 -2
- package/dist/es2019/plugins/analytics/utils.js +0 -4
- package/dist/es2019/plugins/annotation/utils.js +2 -30
- package/dist/es2019/plugins/base/pm-plugins/filter-steps.js +1 -1
- package/dist/es2019/plugins/base/pm-plugins/frozen-editor.js +96 -58
- package/dist/es2019/plugins/base/pm-plugins/react-nodeview.js +1 -3
- package/dist/es2019/plugins/base/utils/input-latency-tracking.js +23 -23
- package/dist/es2019/plugins/block-type/pm-plugins/input-rule.js +3 -9
- package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -0
- package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/index.js +31 -5
- package/dist/es2019/plugins/caption/index.js +0 -2
- package/dist/es2019/plugins/card/nodeviews/blockCard.js +10 -3
- package/dist/es2019/plugins/card/nodeviews/genericCard.js +16 -2
- package/dist/es2019/plugins/card/nodeviews/inlineCard.js +6 -2
- package/dist/es2019/plugins/card/pm-plugins/main.js +9 -4
- package/dist/es2019/plugins/card/pm-plugins/util/resolve.js +4 -0
- package/dist/es2019/plugins/clipboard/pm-plugins/main.js +3 -1
- package/dist/es2019/plugins/code-block/pm-plugins/main-state.js +1 -9
- package/dist/es2019/plugins/collab-edit/plugin.js +1 -2
- package/dist/es2019/plugins/collab-edit/provider/index.js +1 -1
- package/dist/es2019/plugins/collab-edit/provider/types.js +1 -10
- package/dist/es2019/plugins/context-panel/index.js +0 -3
- package/dist/es2019/plugins/data-consumer/index.js +0 -7
- package/dist/es2019/plugins/date/utils/internal.js +0 -3
- package/dist/es2019/plugins/extension/commands.js +0 -6
- package/dist/es2019/plugins/extension/toolbar.js +7 -1
- package/dist/es2019/plugins/extension/ui/Extension/Extension/index.js +12 -2
- package/dist/es2019/plugins/extension/ui/Extension/Extension/styles.js +3 -0
- package/dist/es2019/plugins/extension/ui/Extension/Lozenge.js +1 -0
- package/dist/es2019/plugins/feedback-dialog/index.js +0 -2
- package/dist/es2019/plugins/find-replace/ui/FindReplaceToolbarButton.js +5 -1
- package/dist/es2019/plugins/floating-toolbar/ui/Button.js +9 -3
- package/dist/es2019/plugins/floating-toolbar/ui/CheckboxModal.js +5 -3
- package/dist/es2019/plugins/floating-toolbar/ui/Dropdown.js +45 -12
- package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +1 -11
- package/dist/es2019/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +3 -2
- package/dist/es2019/plugins/floating-toolbar/ui/ScrollButtons.js +12 -7
- package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +29 -1
- package/dist/es2019/plugins/floating-toolbar/utils.js +0 -10
- package/dist/es2019/plugins/fragment/index.js +0 -7
- package/dist/es2019/plugins/fragment/pm-plugins/fragment-consistency.js +1 -0
- package/dist/es2019/plugins/help-dialog/commands.js +1 -2
- package/dist/es2019/plugins/hyperlink/analytics.js +1 -1
- package/dist/es2019/plugins/hyperlink/index.js +1 -1
- package/dist/es2019/plugins/hyperlink/pm-plugins/main.js +8 -4
- package/dist/es2019/plugins/hyperlink/ui/EditorLinkPicker/index.js +9 -3
- package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
- package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -2
- package/dist/es2019/plugins/image-upload/pm-plugins/main.js +47 -5
- package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -0
- package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +1 -0
- package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +3 -0
- package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +1 -0
- package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +24 -0
- package/dist/es2019/plugins/layout/styles.js +12 -4
- package/dist/es2019/plugins/list/utils/find.js +0 -27
- package/dist/es2019/plugins/list/utils/indentation.js +0 -23
- package/dist/es2019/plugins/list/utils/node.js +1 -4
- package/dist/es2019/plugins/list/utils/selection.js +2 -15
- package/dist/es2019/plugins/media/commands/helpers.js +9 -35
- package/dist/es2019/plugins/media/commands/index.js +1 -1
- package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +3 -3
- package/dist/es2019/plugins/media/nodeviews/mediaInline.js +1 -1
- package/dist/es2019/plugins/media/nodeviews/mediaNodeUpdater.js +70 -37
- package/dist/es2019/plugins/media/nodeviews/mediaSingle.js +1 -1
- package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +1 -1
- package/dist/es2019/plugins/media/pm-plugins/main.js +3 -30
- package/dist/es2019/plugins/media/toolbar/filePreviewItem.js +1 -4
- package/dist/es2019/plugins/media/utils/media-common.js +1 -19
- package/dist/es2019/plugins/mentions/nodeviews/mention.js +64 -16
- package/dist/es2019/plugins/mentions/type-ahead/index.js +1 -14
- package/dist/es2019/plugins/mentions/ui/InviteItem/index.js +1 -2
- package/dist/es2019/plugins/mobile-dimensions/index.js +0 -3
- package/dist/es2019/plugins/panel/utils.js +4 -1
- package/dist/es2019/plugins/paste/handlers.js +127 -5
- package/dist/es2019/plugins/paste/index.js +1 -2
- package/dist/es2019/plugins/paste/pm-plugins/analytics.js +131 -93
- package/dist/es2019/plugins/paste/pm-plugins/main.js +13 -4
- package/dist/es2019/plugins/paste/util/index.js +5 -45
- package/dist/es2019/plugins/placeholder-text/index.js +1 -1
- package/dist/es2019/plugins/quick-insert/assets/index.js +0 -8
- package/dist/es2019/plugins/selection/gap-cursor/actions.js +56 -56
- package/dist/es2019/plugins/status/index.js +8 -2
- package/dist/es2019/plugins/status/ui/statusPicker.js +8 -2
- package/dist/es2019/plugins/status/utils.js +1 -11
- package/dist/es2019/plugins/text-color/pm-plugins/main.js +1 -1
- package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +48 -12
- package/dist/es2019/plugins/text-formatting/pm-plugins/smart-input-rule.js +8 -2
- package/dist/es2019/plugins/text-formatting/ui/Toolbar/dropdown-menu.js +20 -3
- package/dist/es2019/plugins/text-formatting/ui/Toolbar/index.js +4 -2
- package/dist/es2019/plugins/text-formatting/ui/Toolbar/more-button.js +3 -1
- package/dist/es2019/plugins/text-formatting/utils.js +0 -27
- package/dist/es2019/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +16 -1
- package/dist/es2019/plugins/type-ahead/constants.js +0 -5
- package/dist/es2019/plugins/type-ahead/index.js +1 -1
- package/dist/es2019/plugins/type-ahead/pm-plugins/decorations.js +0 -35
- package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +73 -92
- package/dist/es2019/plugins/type-ahead/utils.js +0 -23
- package/dist/es2019/test-utils.js +4 -7
- package/dist/es2019/ui/Appearance/Comment/Toolbar.js +40 -6
- package/dist/es2019/ui/ChromeCollapsed/index.js +1 -0
- package/dist/es2019/ui/CollapsedEditor/index.js +7 -11
- package/dist/es2019/ui/ColorPalette/index.js +2 -1
- package/dist/es2019/ui/ColorPickerButton/index.js +66 -9
- package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +1 -1
- package/dist/es2019/ui/ConfigPanel/Fields/Expand.js +1 -0
- package/dist/es2019/ui/ConfigPanel/utils.js +0 -6
- package/dist/es2019/ui/ContentStyles/index.js +1 -1
- package/dist/es2019/ui/ContextPanel/context.js +5 -4
- package/dist/es2019/ui/Dropdown/index.js +5 -2
- package/dist/es2019/ui/DropdownMenu/index.js +5 -2
- package/dist/es2019/ui/ElementBrowser/ModalElementBrowser.js +1 -1
- package/dist/es2019/ui/ElementBrowser/components/CategoryList.js +1 -1
- package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +1 -1
- package/dist/es2019/ui/ElementBrowser/components/StatelessElementBrowser.js +1 -1
- package/dist/es2019/ui/ElementBrowser/constants.js +0 -1
- package/dist/es2019/ui/PanelTextInput/index.js +3 -3
- package/dist/es2019/ui/PortalProvider/index.js +1 -1
- package/dist/es2019/ui/Resizer/utils.js +0 -1
- package/dist/es2019/ui/WidthEmitter/index.js +25 -29
- package/dist/es2019/ui/styles.js +0 -6
- package/dist/es2019/utils/document.js +11 -1
- package/dist/es2019/utils/extensions.js +1 -3
- package/dist/es2019/utils/get-editor-plugins.js +23 -0
- package/dist/es2019/utils/index.js +13 -199
- package/dist/es2019/utils/input-rules.js +0 -14
- package/dist/es2019/utils/linking-utils.js +1 -1
- package/dist/es2019/utils/performance/components/RenderTracking.js +1 -1
- package/dist/es2019/utils/performance/safer-transactions.js +1 -1
- package/dist/es2019/utils/prepare-extension-provider.js +13 -0
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/actions/index.js +24 -10
- package/dist/esm/analytics-api/attach-payload-into-transaction.js +1 -1
- package/dist/esm/create-editor/ReactEditorView.js +9 -765
- package/dist/esm/create-editor/ReactEditorViewInternal.js +747 -0
- package/dist/esm/create-editor/ReactEditorViewNext.js +7 -0
- package/dist/esm/create-editor/create-plugins-list.js +30 -3
- package/dist/esm/create-editor/feature-flags-from-props.js +3 -2
- package/dist/esm/create-editor/preset-utils.js +21 -0
- package/dist/esm/editor-next/editor-internal.js +141 -0
- package/dist/esm/editor-next/editor-migration-component.js +44 -0
- package/dist/esm/editor-next/hooks/useEditorMeasuresConstructor.js +30 -0
- package/dist/esm/editor-next/hooks/useMeasureEditorMountTime.js +35 -0
- package/dist/esm/editor-next/hooks/useProviderFactory.js +66 -0
- package/dist/esm/editor-next/index.js +138 -0
- package/dist/esm/editor-next/utils/deprecationWarnings.js +39 -0
- package/dist/esm/editor-next/utils/editorMeasureTTICallback.js +38 -0
- package/dist/esm/editor-next/utils/editorPropTypes.js +28 -0
- package/dist/esm/editor-next/utils/getBaseFontSize.js +11 -0
- package/dist/esm/editor-next/utils/getProvidersFromEditorProps.js +35 -0
- package/dist/esm/editor-next/utils/handleProviders.js +45 -0
- package/dist/esm/editor-next/utils/onEditorCreated.js +21 -0
- package/dist/esm/editor-next/utils/sendDurationAnalytics.js +61 -0
- package/dist/esm/editor-next/utils/trackEditorActions.js +94 -0
- package/dist/esm/editor.js +139 -442
- package/dist/esm/index.js +2 -1
- package/dist/esm/keymaps/consts.js +7 -11
- package/dist/esm/labs/next/internal/hooks/use-analytics/index.js +2 -2
- package/dist/esm/labs/next/internal/hooks/use-editor/create-dispatch-transaction.js +2 -3
- package/dist/esm/labs/next/presets/create-stub-internal-apis.js +110 -0
- package/dist/esm/labs/next/presets/cxhtml.js +56 -55
- package/dist/esm/labs/next/presets/default.js +18 -41
- package/dist/esm/labs/next/presets/mobile.js +88 -90
- package/dist/esm/labs/next/presets/universal.js +337 -255
- package/dist/esm/labs/next/presets/useUniversalPreset.js +29 -0
- package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +48 -13
- package/dist/esm/plugins/analytics/index.js +3 -4
- package/dist/esm/plugins/analytics/plugin.js +7 -2
- package/dist/esm/plugins/analytics/utils.js +0 -9
- package/dist/esm/plugins/annotation/utils.js +2 -32
- package/dist/esm/plugins/base/pm-plugins/filter-steps.js +1 -1
- package/dist/esm/plugins/base/pm-plugins/frozen-editor.js +98 -56
- package/dist/esm/plugins/base/pm-plugins/react-nodeview.js +1 -5
- package/dist/esm/plugins/base/utils/input-latency-tracking.js +24 -25
- package/dist/esm/plugins/block-type/pm-plugins/input-rule.js +3 -9
- package/dist/esm/plugins/block-type/ui/ToolbarBlockType/blocktype-button.js +1 -0
- package/dist/esm/plugins/block-type/ui/ToolbarBlockType/index.js +36 -9
- package/dist/esm/plugins/caption/index.js +0 -2
- package/dist/esm/plugins/card/nodeviews/blockCard.js +9 -3
- package/dist/esm/plugins/card/nodeviews/genericCard.js +16 -2
- package/dist/esm/plugins/card/nodeviews/inlineCard.js +6 -2
- package/dist/esm/plugins/card/pm-plugins/main.js +10 -5
- package/dist/esm/plugins/card/pm-plugins/util/resolve.js +4 -0
- package/dist/esm/plugins/clipboard/pm-plugins/main.js +4 -1
- package/dist/esm/plugins/code-block/pm-plugins/main-state.js +0 -10
- package/dist/esm/plugins/collab-edit/plugin.js +1 -2
- package/dist/esm/plugins/collab-edit/provider/index.js +1 -1
- package/dist/esm/plugins/collab-edit/provider/types.js +1 -10
- package/dist/esm/plugins/context-panel/index.js +0 -3
- package/dist/esm/plugins/data-consumer/index.js +0 -7
- package/dist/esm/plugins/date/utils/internal.js +0 -3
- package/dist/esm/plugins/extension/commands.js +0 -6
- package/dist/esm/plugins/extension/toolbar.js +7 -1
- package/dist/esm/plugins/extension/ui/Extension/Extension/index.js +9 -2
- package/dist/esm/plugins/extension/ui/Extension/Extension/styles.js +2 -2
- package/dist/esm/plugins/extension/ui/Extension/Lozenge.js +1 -0
- package/dist/esm/plugins/feedback-dialog/index.js +0 -2
- package/dist/esm/plugins/find-replace/ui/FindReplaceToolbarButton.js +5 -1
- package/dist/esm/plugins/floating-toolbar/ui/Button.js +9 -3
- package/dist/esm/plugins/floating-toolbar/ui/CheckboxModal.js +5 -3
- package/dist/esm/plugins/floating-toolbar/ui/Dropdown.js +48 -14
- package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +2 -9
- package/dist/esm/plugins/floating-toolbar/ui/ExtensionsPlaceholder.js +24 -21
- package/dist/esm/plugins/floating-toolbar/ui/ScrollButtons.js +12 -7
- package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +32 -5
- package/dist/esm/plugins/floating-toolbar/utils.js +0 -10
- package/dist/esm/plugins/fragment/index.js +0 -7
- package/dist/esm/plugins/fragment/pm-plugins/fragment-consistency.js +1 -0
- package/dist/esm/plugins/help-dialog/commands.js +0 -3
- package/dist/esm/plugins/hyperlink/analytics.js +1 -1
- package/dist/esm/plugins/hyperlink/index.js +1 -1
- package/dist/esm/plugins/hyperlink/pm-plugins/main.js +9 -5
- package/dist/esm/plugins/hyperlink/ui/EditorLinkPicker/index.js +10 -4
- package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +1 -1
- package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +3 -2
- package/dist/esm/plugins/image-upload/pm-plugins/main.js +51 -12
- package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.js +1 -0
- package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.js +1 -0
- package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.js +3 -0
- package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.js +1 -0
- package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +22 -0
- package/dist/esm/plugins/layout/styles.js +11 -2
- package/dist/esm/plugins/list/utils/find.js +0 -27
- package/dist/esm/plugins/list/utils/indentation.js +0 -23
- package/dist/esm/plugins/list/utils/node.js +1 -4
- package/dist/esm/plugins/list/utils/selection.js +2 -12
- package/dist/esm/plugins/media/commands/helpers.js +9 -35
- package/dist/esm/plugins/media/commands/index.js +1 -1
- package/dist/esm/plugins/media/nodeviews/mediaGroup.js +14 -12
- package/dist/esm/plugins/media/nodeviews/mediaInline.js +1 -1
- package/dist/esm/plugins/media/nodeviews/mediaNodeUpdater.js +311 -206
- package/dist/esm/plugins/media/nodeviews/mediaSingle.js +1 -1
- package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +1 -1
- package/dist/esm/plugins/media/pm-plugins/main.js +3 -28
- package/dist/esm/plugins/media/toolbar/filePreviewItem.js +1 -4
- package/dist/esm/plugins/media/utils/media-common.js +1 -17
- package/dist/esm/plugins/mentions/nodeviews/mention.js +97 -16
- package/dist/esm/plugins/mentions/type-ahead/index.js +1 -18
- package/dist/esm/plugins/mentions/ui/InviteItem/index.js +1 -2
- package/dist/esm/plugins/mobile-dimensions/index.js +0 -3
- package/dist/esm/plugins/panel/utils.js +4 -1
- package/dist/esm/plugins/paste/handlers.js +127 -13
- package/dist/esm/plugins/paste/index.js +1 -2
- package/dist/esm/plugins/paste/pm-plugins/analytics.js +130 -86
- package/dist/esm/plugins/paste/pm-plugins/main.js +13 -4
- package/dist/esm/plugins/paste/util/index.js +5 -45
- package/dist/esm/plugins/placeholder-text/index.js +2 -2
- package/dist/esm/plugins/quick-insert/assets/index.js +0 -20
- package/dist/esm/plugins/selection/gap-cursor/actions.js +52 -45
- package/dist/esm/plugins/status/index.js +9 -3
- package/dist/esm/plugins/status/ui/statusPicker.js +8 -2
- package/dist/esm/plugins/status/utils.js +1 -13
- package/dist/esm/plugins/text-color/pm-plugins/main.js +1 -1
- package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +48 -12
- package/dist/esm/plugins/text-formatting/pm-plugins/smart-input-rule.js +8 -2
- package/dist/esm/plugins/text-formatting/ui/Toolbar/dropdown-menu.js +23 -3
- package/dist/esm/plugins/text-formatting/ui/Toolbar/index.js +4 -2
- package/dist/esm/plugins/text-formatting/ui/Toolbar/more-button.js +3 -1
- package/dist/esm/plugins/text-formatting/utils.js +0 -29
- package/dist/esm/plugins/toolbar-lists-indentation/ui/ToolbarDropdown.js +19 -1
- package/dist/esm/plugins/type-ahead/constants.js +0 -5
- package/dist/esm/plugins/type-ahead/index.js +1 -1
- package/dist/esm/plugins/type-ahead/pm-plugins/decorations.js +0 -31
- package/dist/esm/plugins/type-ahead/ui/InputQuery.js +79 -106
- package/dist/esm/plugins/type-ahead/utils.js +2 -20
- package/dist/esm/test-utils.js +4 -7
- package/dist/esm/ui/Appearance/Comment/Toolbar.js +41 -6
- package/dist/esm/ui/ChromeCollapsed/index.js +1 -0
- package/dist/esm/ui/CollapsedEditor/index.js +7 -13
- package/dist/esm/ui/ColorPalette/index.js +2 -1
- package/dist/esm/ui/ColorPickerButton/index.js +74 -8
- package/dist/esm/ui/ConfigPanel/ConfigPanel.js +1 -1
- package/dist/esm/ui/ConfigPanel/Fields/Expand.js +1 -0
- package/dist/esm/ui/ConfigPanel/utils.js +3 -14
- package/dist/esm/ui/ContentStyles/index.js +1 -1
- package/dist/esm/ui/ContextPanel/context.js +8 -8
- package/dist/esm/ui/Dropdown/index.js +7 -2
- package/dist/esm/ui/DropdownMenu/index.js +7 -2
- package/dist/esm/ui/ElementBrowser/ModalElementBrowser.js +1 -1
- package/dist/esm/ui/ElementBrowser/components/CategoryList.js +1 -1
- package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +1 -1
- package/dist/esm/ui/ElementBrowser/components/StatelessElementBrowser.js +1 -1
- package/dist/esm/ui/ElementBrowser/constants.js +0 -1
- package/dist/esm/ui/PanelTextInput/index.js +4 -4
- package/dist/esm/ui/PortalProvider/index.js +1 -1
- package/dist/esm/ui/Resizer/utils.js +0 -1
- package/dist/esm/ui/WidthEmitter/index.js +28 -37
- package/dist/esm/ui/styles.js +2 -5
- package/dist/esm/utils/document.js +15 -1
- package/dist/esm/utils/extensions.js +1 -3
- package/dist/esm/utils/get-editor-plugins.js +23 -0
- package/dist/esm/utils/index.js +13 -196
- package/dist/esm/utils/input-rules.js +0 -13
- package/dist/esm/utils/linking-utils.js +1 -1
- package/dist/esm/utils/performance/components/RenderTracking.js +1 -1
- package/dist/esm/utils/performance/safer-transactions.js +1 -1
- package/dist/esm/utils/prepare-extension-provider.js +17 -0
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/actions/index.d.ts +5 -5
- package/dist/types/create-editor/ReactEditorView.d.ts +5 -110
- package/dist/types/create-editor/ReactEditorViewInternal.d.ts +114 -0
- package/dist/types/create-editor/ReactEditorViewNext.d.ts +8 -0
- package/dist/types/create-editor/create-plugins-list.d.ts +3 -5
- package/dist/types/create-editor/preset-utils.d.ts +2 -0
- package/dist/types/editor-next/editor-internal.d.ts +44 -0
- package/dist/types/editor-next/editor-migration-component.d.ts +5 -0
- package/dist/types/editor-next/hooks/useEditorMeasuresConstructor.d.ts +17 -0
- package/dist/types/editor-next/hooks/useMeasureEditorMountTime.d.ts +13 -0
- package/dist/types/editor-next/hooks/useProviderFactory.d.ts +21 -0
- package/dist/types/editor-next/index.d.ts +34 -0
- package/dist/types/editor-next/utils/deprecationWarnings.d.ts +2 -0
- package/dist/types/editor-next/utils/editorMeasureTTICallback.d.ts +5 -0
- package/dist/types/editor-next/utils/editorPropTypes.d.ts +19 -0
- package/dist/types/editor-next/utils/getBaseFontSize.d.ts +6 -0
- package/dist/types/editor-next/utils/getProvidersFromEditorProps.d.ts +9 -0
- package/dist/types/editor-next/utils/handleProviders.d.ts +14 -0
- package/dist/types/editor-next/utils/onEditorCreated.d.ts +12 -0
- package/dist/types/editor-next/utils/sendDurationAnalytics.d.ts +15 -0
- package/dist/types/editor-next/utils/trackEditorActions.d.ts +29 -0
- package/dist/types/editor.d.ts +50 -25
- package/dist/types/index.d.ts +1 -0
- package/dist/types/keymaps/consts.d.ts +0 -11
- package/dist/types/labs/next/internal/hooks/use-analytics/index.d.ts +1 -1
- package/dist/types/labs/next/presets/create-stub-internal-apis.d.ts +16 -0
- package/dist/types/labs/next/presets/cxhtml.d.ts +33 -1
- package/dist/types/labs/next/presets/default.d.ts +67 -10
- package/dist/types/labs/next/presets/mobile.d.ts +33 -1
- package/dist/types/labs/next/presets/universal.d.ts +5 -13
- package/dist/types/labs/next/presets/useUniversalPreset.d.ts +7 -0
- package/dist/types/nodeviews/context-adapter.d.ts +0 -1
- package/dist/types/nodeviews/index.d.ts +0 -1
- package/dist/types/plugins/alignment/index.d.ts +1 -1
- package/dist/types/plugins/alignment/pm-plugins/types.d.ts +0 -11
- package/dist/types/plugins/alignment/ui/ToolbarAlignment/index.d.ts +3 -1
- package/dist/types/plugins/analytics/index.d.ts +3 -6
- package/dist/types/plugins/analytics/plugin.d.ts +3 -1
- package/dist/types/plugins/analytics/utils.d.ts +2 -3
- package/dist/types/plugins/annotation/index.d.ts +3 -1
- package/dist/types/plugins/annotation/utils.d.ts +0 -17
- package/dist/types/plugins/avatar-group/index.d.ts +3 -1
- package/dist/types/plugins/base/index.d.ts +3 -1
- package/dist/types/plugins/base/pm-plugins/filter-steps.d.ts +1 -1
- package/dist/types/plugins/base/pm-plugins/react-nodeview.d.ts +2 -3
- package/dist/types/plugins/base/utils/input-latency-tracking.d.ts +1 -3
- package/dist/types/plugins/before-primaryToolbar/index.d.ts +3 -1
- package/dist/types/plugins/block-type/index.d.ts +3 -1
- package/dist/types/plugins/block-type/pm-plugins/input-rule.d.ts +2 -6
- package/dist/types/plugins/block-type/ui/ToolbarBlockType/blocktype-button.d.ts +1 -0
- package/dist/types/plugins/block-type/ui/ToolbarBlockType/index.d.ts +1 -0
- package/dist/types/plugins/breakout/index.d.ts +3 -1
- package/dist/types/plugins/caption/index.d.ts +0 -2
- package/dist/types/plugins/card/index.d.ts +3 -1
- package/dist/types/plugins/card/nodeviews/blockCard.d.ts +2 -10
- package/dist/types/plugins/card/nodeviews/genericCard.d.ts +2 -1
- package/dist/types/plugins/card/nodeviews/inlineCard.d.ts +1 -1
- package/dist/types/plugins/card/pm-plugins/util/state.d.ts +1 -0
- package/dist/types/plugins/card/types.d.ts +3 -0
- package/dist/types/plugins/code-bidi-warning/index.d.ts +3 -1
- package/dist/types/plugins/code-block/actions.d.ts +0 -4
- package/dist/types/plugins/code-block/index.d.ts +3 -1
- package/dist/types/plugins/code-block/pm-plugins/main-state.d.ts +0 -3
- package/dist/types/plugins/collab-edit/index.d.ts +3 -1
- package/dist/types/plugins/collab-edit/provider/index.d.ts +1 -2
- package/dist/types/plugins/collab-edit/provider/types.d.ts +1 -36
- package/dist/types/plugins/context-panel/index.d.ts +3 -4
- package/dist/types/plugins/data-consumer/index.d.ts +0 -2
- package/dist/types/plugins/date/utils/internal.d.ts +0 -1
- package/dist/types/plugins/emoji/index.d.ts +3 -1
- package/dist/types/plugins/expand/index.d.ts +3 -1
- package/dist/types/plugins/extension/commands.d.ts +0 -1
- package/dist/types/plugins/extension/index.d.ts +3 -1
- package/dist/types/plugins/extension/nodeviews/extension.d.ts +0 -5
- package/dist/types/plugins/extension/toolbar.d.ts +5 -0
- package/dist/types/plugins/feature-flags-context/index.d.ts +3 -1
- package/dist/types/plugins/feedback-dialog/index.d.ts +3 -3
- package/dist/types/plugins/find-replace/index.d.ts +3 -1
- package/dist/types/plugins/floating-toolbar/ui/Button.d.ts +4 -1
- package/dist/types/plugins/floating-toolbar/ui/Dropdown.d.ts +6 -2
- package/dist/types/plugins/floating-toolbar/utils.d.ts +0 -2
- package/dist/types/plugins/fragment/index.d.ts +0 -2
- package/dist/types/plugins/grid/index.d.ts +3 -1
- package/dist/types/plugins/help-dialog/commands.d.ts +0 -1
- package/dist/types/plugins/help-dialog/index.d.ts +3 -1
- package/dist/types/plugins/history/actions.d.ts +1 -2
- package/dist/types/plugins/hyperlink/analytics.d.ts +1 -1
- package/dist/types/plugins/hyperlink/index.d.ts +3 -1
- package/dist/types/plugins/hyperlink/pm-plugins/main.d.ts +4 -2
- package/dist/types/plugins/hyperlink/types.d.ts +3 -1
- package/dist/types/plugins/hyperlink/ui/EditorLinkPicker/index.d.ts +3 -1
- package/dist/types/plugins/insert-block/index.d.ts +3 -1
- package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-element-browser.d.ts +1 -0
- package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu-legacy.d.ts +1 -0
- package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/block-insert-menu.d.ts +1 -0
- package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/dropdown-button.d.ts +1 -0
- package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/index.d.ts +1 -0
- package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/types.d.ts +1 -0
- package/dist/types/plugins/layout/index.d.ts +3 -1
- package/dist/types/plugins/layout/styles.d.ts +2 -1
- package/dist/types/plugins/list/index.d.ts +3 -1
- package/dist/types/plugins/list/utils/find.d.ts +0 -1
- package/dist/types/plugins/list/utils/indentation.d.ts +0 -1
- package/dist/types/plugins/list/utils/node.d.ts +0 -2
- package/dist/types/plugins/list/utils/selection.d.ts +0 -3
- package/dist/types/plugins/max-content-size/index.d.ts +3 -1
- package/dist/types/plugins/media/commands/helpers.d.ts +5 -12
- package/dist/types/plugins/media/commands/index.d.ts +1 -1
- package/dist/types/plugins/media/index.d.ts +3 -1
- package/dist/types/plugins/media/nodeviews/__mocks__/mediaNodeUpdater.d.ts +3 -1
- package/dist/types/plugins/media/nodeviews/mediaNodeUpdater.d.ts +4 -1
- package/dist/types/plugins/media/pm-plugins/main.d.ts +1 -4
- package/dist/types/plugins/media/pm-plugins/types.d.ts +1 -4
- package/dist/types/plugins/media/utils/media-common.d.ts +0 -5
- package/dist/types/plugins/mentions/index.d.ts +3 -1
- package/dist/types/plugins/mentions/types.d.ts +1 -2
- package/dist/types/plugins/mentions/ui/InviteItem/index.d.ts +2 -3
- package/dist/types/plugins/mentions/ui/InviteItem/styles.d.ts +0 -6
- package/dist/types/plugins/mentions/ui/ToolbarMention/index.d.ts +1 -4
- package/dist/types/plugins/mobile-dimensions/index.d.ts +0 -1
- package/dist/types/plugins/panel/index.d.ts +3 -1
- package/dist/types/plugins/paste/handlers.d.ts +2 -1
- package/dist/types/plugins/paste/index.d.ts +3 -2
- package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +10 -4
- package/dist/types/plugins/paste/util/index.d.ts +0 -6
- package/dist/types/plugins/placeholder/index.d.ts +3 -1
- package/dist/types/plugins/placeholder-text/index.d.ts +3 -1
- package/dist/types/plugins/quick-insert/assets/index.d.ts +0 -2
- package/dist/types/plugins/quick-insert/index.d.ts +3 -1
- package/dist/types/plugins/save-on-enter/index.d.ts +3 -1
- package/dist/types/plugins/selection/index.d.ts +3 -1
- package/dist/types/plugins/status/index.d.ts +3 -1
- package/dist/types/plugins/status/ui/statusPicker.d.ts +3 -0
- package/dist/types/plugins/status/utils.d.ts +0 -3
- package/dist/types/plugins/submit-editor/index.d.ts +3 -1
- package/dist/types/plugins/tasks-and-decisions/index.d.ts +3 -1
- package/dist/types/plugins/tasks-and-decisions/pm-plugins/main.d.ts +0 -6
- package/dist/types/plugins/text-color/index.d.ts +3 -1
- package/dist/types/plugins/text-color/pm-plugins/main.d.ts +2 -12
- package/dist/types/plugins/text-color/ui/ToolbarTextColor/index.d.ts +2 -0
- package/dist/types/plugins/text-formatting/index.d.ts +3 -1
- package/dist/types/plugins/text-formatting/pm-plugins/clear-formatting.d.ts +0 -1
- package/dist/types/plugins/text-formatting/ui/Toolbar/more-button.d.ts +2 -1
- package/dist/types/plugins/text-formatting/utils.d.ts +0 -5
- package/dist/types/plugins/toolbar-lists-indentation/index.d.ts +3 -1
- package/dist/types/plugins/type-ahead/constants.d.ts +0 -4
- package/dist/types/plugins/type-ahead/index.d.ts +3 -1
- package/dist/types/plugins/type-ahead/pm-plugins/decorations.d.ts +0 -10
- package/dist/types/plugins/type-ahead/utils.d.ts +1 -2
- package/dist/types/test-utils.d.ts +4 -5
- package/dist/types/types/editor-appearance-component.d.ts +2 -2
- package/dist/types/types/editor-props.d.ts +55 -42
- package/dist/types/types/get-editor-props.d.ts +12 -0
- package/dist/types/types/performance-tracking.d.ts +10 -0
- package/dist/types/ui/Appearance/Chromeless.d.ts +0 -5
- package/dist/types/ui/Appearance/Comment/Comment.d.ts +0 -7
- package/dist/types/ui/Appearance/Comment/Toolbar.d.ts +3 -2
- package/dist/types/ui/Appearance/FullPage/MainToolbar.d.ts +0 -4
- package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +29 -29
- package/dist/types/ui/AppearanceComponents/Mobile.d.ts +2 -5
- package/dist/types/ui/CollapsedEditor/index.d.ts +4 -3
- package/dist/types/ui/ColorPalette/Palettes/index.d.ts +1 -1
- package/dist/types/ui/ColorPalette/Palettes/type.d.ts +1 -1
- package/dist/types/ui/ColorPalette/index.d.ts +2 -1
- package/dist/types/ui/ColorPickerButton/index.d.ts +5 -2
- package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
- package/dist/types/ui/ConfigPanel/types.d.ts +0 -3
- package/dist/types/ui/ConfigPanel/utils.d.ts +2 -3
- package/dist/types/ui/ContentStyles/index.d.ts +2 -2
- package/dist/types/ui/ContextPanel/context.d.ts +2 -1
- package/dist/types/ui/ElementBrowser/ModalElementBrowser.d.ts +0 -3
- package/dist/types/ui/ElementBrowser/constants.d.ts +0 -1
- package/dist/types/ui/ElementBrowser/types.d.ts +0 -5
- package/dist/types/ui/PanelTextInput/index.d.ts +1 -1
- package/dist/types/ui/PortalProvider/index.d.ts +1 -1
- package/dist/types/ui/Resizer/utils.d.ts +0 -1
- package/dist/types/ui/styles.d.ts +0 -1
- package/dist/types/utils/document.d.ts +4 -3
- package/dist/types/utils/get-editor-plugins.d.ts +10 -0
- package/dist/types/utils/index.d.ts +6 -65
- package/dist/types/utils/input-rules.d.ts +1 -2
- package/dist/types/utils/linking-utils.d.ts +1 -1
- package/dist/types/utils/performance/components/RenderTracking.d.ts +1 -1
- package/dist/types/utils/performance/instrumented-plugin.d.ts +1 -1
- package/dist/types/utils/performance/safer-transactions.d.ts +1 -1
- package/dist/types/utils/prepare-extension-provider.d.ts +5 -0
- package/dist/types/utils/table.d.ts +0 -1
- package/docs/0-intro.tsx +0 -1
- package/package.json +37 -37
- package/report.api.md +307 -244
- package/dist/cjs/labs/next/presets/preset.js +0 -106
- package/dist/cjs/plugins/analytics/analytics-queue.js +0 -79
- package/dist/cjs/plugins/analytics/fire-analytics-event.js +0 -35
- package/dist/cjs/plugins/collab-edit/provider/channel.js +0 -313
- package/dist/cjs/plugins/collab-edit/provider/logger.js +0 -17
- package/dist/cjs/plugins/collab-edit/provider/mock-users.js +0 -19
- package/dist/cjs/plugins/data-consumer/plugin-key.js +0 -9
- package/dist/cjs/plugins/media/toolbar/toolbar-messages.js +0 -15
- package/dist/cjs/profiler/render-count.js +0 -60
- package/dist/cjs/ui/ColorPalette/Color/index.js +0 -9
- package/dist/cjs/ui/ConfigPanel/FieldDescription.js +0 -19
- package/dist/cjs/ui/WithPluginState/types.js +0 -5
- package/dist/es2019/labs/next/presets/preset.js +0 -71
- package/dist/es2019/plugins/analytics/analytics-queue.js +0 -53
- package/dist/es2019/plugins/analytics/fire-analytics-event.js +0 -26
- package/dist/es2019/plugins/collab-edit/provider/channel.js +0 -179
- package/dist/es2019/plugins/collab-edit/provider/logger.js +0 -8
- package/dist/es2019/plugins/collab-edit/provider/mock-users.js +0 -12
- package/dist/es2019/plugins/data-consumer/plugin-key.js +0 -2
- package/dist/es2019/plugins/media/toolbar/toolbar-messages.js +0 -8
- package/dist/es2019/profiler/render-count.js +0 -53
- package/dist/es2019/ui/ColorPalette/Color/index.js +0 -2
- package/dist/es2019/ui/ConfigPanel/FieldDescription.js +0 -12
- package/dist/esm/labs/next/presets/preset.js +0 -98
- package/dist/esm/plugins/analytics/analytics-queue.js +0 -71
- package/dist/esm/plugins/analytics/fire-analytics-event.js +0 -28
- package/dist/esm/plugins/analytics/types/type-ahead.js +0 -1
- package/dist/esm/plugins/collab-edit/provider/channel.js +0 -305
- package/dist/esm/plugins/collab-edit/provider/logger.js +0 -10
- package/dist/esm/plugins/collab-edit/provider/mock-users.js +0 -12
- package/dist/esm/plugins/data-consumer/plugin-key.js +0 -2
- package/dist/esm/plugins/media/toolbar/toolbar-messages.js +0 -8
- package/dist/esm/profiler/render-count.js +0 -49
- package/dist/esm/ui/ColorPalette/Color/index.js +0 -2
- package/dist/esm/ui/ConfigPanel/FieldDescription.js +0 -11
- package/dist/esm/ui/WithPluginState/types.js +0 -1
- package/dist/types/labs/next/presets/preset.d.ts +0 -46
- package/dist/types/plugins/analytics/analytics-queue.d.ts +0 -10
- package/dist/types/plugins/analytics/fire-analytics-event.d.ts +0 -9
- package/dist/types/plugins/analytics/types/type-ahead.d.ts +0 -1
- package/dist/types/plugins/collab-edit/provider/channel.d.ts +0 -48
- package/dist/types/plugins/collab-edit/provider/logger.d.ts +0 -1
- package/dist/types/plugins/collab-edit/provider/mock-users.d.ts +0 -6
- package/dist/types/plugins/data-consumer/plugin-key.d.ts +0 -2
- package/dist/types/plugins/media/toolbar/toolbar-messages.d.ts +0 -7
- package/dist/types/profiler/render-count.d.ts +0 -14
- package/dist/types/ui/ColorPalette/Color/index.d.ts +0 -2
- package/dist/types/ui/ConfigPanel/FieldDescription.d.ts +0 -6
- package/dist/types/ui/WithPluginState/types.d.ts +0 -10
- /package/dist/cjs/{plugins/analytics/types/type-ahead.js → types/get-editor-props.js} +0 -0
- /package/dist/es2019/{plugins/analytics/types/type-ahead.js → types/get-editor-props.js} +0 -0
- /package/dist/{es2019/ui/WithPluginState/types.js → esm/types/get-editor-props.js} +0 -0
|
@@ -1,63 +1,16 @@
|
|
|
1
1
|
import { NodeSelection, Selection, TextSelection } from 'prosemirror-state';
|
|
2
|
-
import { findDomRefAtPos, removeNodeBefore } from 'prosemirror-utils';
|
|
2
|
+
import { findDomRefAtPos, findPositionOfNodeBefore, removeNodeBefore } from 'prosemirror-utils';
|
|
3
3
|
import { ZERO_WIDTH_SPACE } from '@atlaskit/editor-common/utils';
|
|
4
4
|
import { Direction, isBackward, isForward } from './direction';
|
|
5
5
|
import { GapCursorSelection, Side } from './selection';
|
|
6
|
-
import {
|
|
6
|
+
import { isTextBlockNearPos } from './utils';
|
|
7
7
|
import { isValidTargetNode } from './utils/is-valid-target-node';
|
|
8
8
|
import { atTheBeginningOfDoc, atTheEndOfDoc } from '../../../utils/prosemirror/position';
|
|
9
9
|
import { gapCursorPluginKey } from '../pm-plugins/gap-cursor-plugin-key';
|
|
10
10
|
import { isPositionNearTableRow } from '../../../utils/table';
|
|
11
|
-
|
|
12
|
-
[Direction.LEFT]: -1,
|
|
13
|
-
[Direction.RIGHT]: 1,
|
|
14
|
-
[Direction.UP]: -1,
|
|
15
|
-
[Direction.DOWN]: 1,
|
|
16
|
-
[Direction.BACKWARD]: -1,
|
|
17
|
-
[Direction.FORWARD]: 1
|
|
18
|
-
};
|
|
19
|
-
function shouldHandleMediaGapCursor(dir, state) {
|
|
20
|
-
const {
|
|
21
|
-
doc,
|
|
22
|
-
schema,
|
|
23
|
-
selection
|
|
24
|
-
} = state;
|
|
25
|
-
let $pos = isBackward(dir) ? selection.$from : selection.$to;
|
|
26
|
-
if (selection instanceof TextSelection) {
|
|
27
|
-
// Should not use gap cursor if I am moving from a text selection into a media node
|
|
28
|
-
if (dir === Direction.UP && !atTheBeginningOfDoc(state) || dir === Direction.DOWN && !atTheEndOfDoc(state)) {
|
|
29
|
-
const media = getMediaNearPos(doc, $pos, schema, mapDirection[dir]);
|
|
30
|
-
if (media) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// Should not use gap cursor if I am moving from a text selection into a media node with layout wrap-right or wrap-left
|
|
36
|
-
if (dir === Direction.LEFT || dir === Direction.RIGHT) {
|
|
37
|
-
const media = getMediaNearPos(doc, $pos, schema, mapDirection[dir]);
|
|
38
|
-
const {
|
|
39
|
-
mediaSingle
|
|
40
|
-
} = schema.nodes;
|
|
41
|
-
if (media && media.type === mediaSingle && (media.attrs.layout === 'wrap-right' || media.attrs.layout === 'wrap-left')) {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (selection instanceof NodeSelection) {
|
|
47
|
-
// Should not use gap cursor if I am moving left/right from media node with layout wrap right or wrap-left
|
|
48
|
-
if (dir === Direction.LEFT || dir === Direction.RIGHT) {
|
|
49
|
-
const maybeMedia = doc.nodeAt(selection.$from.pos);
|
|
50
|
-
const {
|
|
51
|
-
mediaSingle
|
|
52
|
-
} = schema.nodes;
|
|
53
|
-
if (maybeMedia && maybeMedia.type === mediaSingle && (maybeMedia.attrs.layout === 'wrap-right' || maybeMedia.attrs.layout === 'wrap-left')) {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
11
|
+
import { isMediaNode, isNodeBeforeMediaNode } from '@atlaskit/editor-common/utils';
|
|
60
12
|
export const shouldSkipGapCursor = (direction, state, $pos) => {
|
|
13
|
+
var _$pos$nodeBefore;
|
|
61
14
|
const {
|
|
62
15
|
doc,
|
|
63
16
|
schema
|
|
@@ -67,13 +20,52 @@ export const shouldSkipGapCursor = (direction, state, $pos) => {
|
|
|
67
20
|
if (atTheBeginningOfDoc(state)) {
|
|
68
21
|
return false;
|
|
69
22
|
}
|
|
70
|
-
return isPositionNearTableRow($pos, schema, 'before') || isTextBlockNearPos(doc, schema, $pos, -1);
|
|
23
|
+
return isPositionNearTableRow($pos, schema, 'before') || isTextBlockNearPos(doc, schema, $pos, -1) || isNodeBeforeMediaNode($pos, state);
|
|
71
24
|
case Direction.DOWN:
|
|
72
|
-
return atTheEndOfDoc(state) || isTextBlockNearPos(doc, schema, $pos, 1) || isPositionNearTableRow($pos, schema, 'after')
|
|
25
|
+
return atTheEndOfDoc(state) || isTextBlockNearPos(doc, schema, $pos, 1) || isPositionNearTableRow($pos, schema, 'after') || ((_$pos$nodeBefore = $pos.nodeBefore) === null || _$pos$nodeBefore === void 0 ? void 0 : _$pos$nodeBefore.type.name) === 'text' && !$pos.nodeAfter // end of a paragraph
|
|
26
|
+
;
|
|
27
|
+
|
|
73
28
|
default:
|
|
74
29
|
return false;
|
|
75
30
|
}
|
|
76
31
|
};
|
|
32
|
+
|
|
33
|
+
// These cases should be handled using the handleMediaGapCursor function
|
|
34
|
+
function shouldHandleMediaGapCursor(dir, state) {
|
|
35
|
+
var _selection$$from$node;
|
|
36
|
+
const {
|
|
37
|
+
selection
|
|
38
|
+
} = state;
|
|
39
|
+
const upArrowFromGapCursorIntoMedia = selection instanceof GapCursorSelection && dir === Direction.UP && selection.$from.nodeBefore && isMediaNode(selection.$from.nodeBefore);
|
|
40
|
+
const downArrowFromGapCursorIntoMediaGroup = selection instanceof GapCursorSelection && dir === Direction.DOWN && ((_selection$$from$node = selection.$from.nodeAfter) === null || _selection$$from$node === void 0 ? void 0 : _selection$$from$node.type.name) === 'mediaGroup';
|
|
41
|
+
return upArrowFromGapCursorIntoMedia || downArrowFromGapCursorIntoMediaGroup;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Handle media gap cursor for up/down arrow into media nodes
|
|
45
|
+
// Should check this case by using shouldHandleMediaGapCursor first
|
|
46
|
+
function handleMediaGapCursor(dir, state) {
|
|
47
|
+
const {
|
|
48
|
+
selection,
|
|
49
|
+
tr
|
|
50
|
+
} = state;
|
|
51
|
+
let $pos = isBackward(dir) ? selection.$from : selection.$to;
|
|
52
|
+
if (dir === Direction.UP && selection.$from.nodeBefore && isMediaNode(selection.$from.nodeBefore)) {
|
|
53
|
+
var _tr$doc$nodeAt;
|
|
54
|
+
const nodeBeforePos = findPositionOfNodeBefore(tr.selection);
|
|
55
|
+
if (nodeBeforePos && selection.side === 'right' && ((_tr$doc$nodeAt = tr.doc.nodeAt(nodeBeforePos)) === null || _tr$doc$nodeAt === void 0 ? void 0 : _tr$doc$nodeAt.type.name) === 'mediaSingle') {
|
|
56
|
+
tr.setSelection(new NodeSelection(tr.doc.resolve(nodeBeforePos))).scrollIntoView();
|
|
57
|
+
} else if (nodeBeforePos || nodeBeforePos === 0) {
|
|
58
|
+
tr.setSelection(new GapCursorSelection(tr.doc.resolve(nodeBeforePos), Side.LEFT)).scrollIntoView();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (dir === Direction.DOWN && selection.$from.nodeAfter) {
|
|
62
|
+
const nodeAfterPos = selection.side === 'right' ? $pos.pos : $pos.pos + selection.$from.nodeAfter.nodeSize;
|
|
63
|
+
if (nodeAfterPos) {
|
|
64
|
+
tr.setSelection(new GapCursorSelection(tr.doc.resolve(nodeAfterPos), Side.LEFT)).scrollIntoView();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return tr;
|
|
68
|
+
}
|
|
77
69
|
export const arrow = (dir, endOfTextblock) => (state, dispatch, view) => {
|
|
78
70
|
const {
|
|
79
71
|
doc,
|
|
@@ -103,13 +95,21 @@ export const arrow = (dir, endOfTextblock) => (state, dispatch, view) => {
|
|
|
103
95
|
if (selection.node.isInline) {
|
|
104
96
|
return false;
|
|
105
97
|
}
|
|
106
|
-
if (dir === Direction.UP || dir === Direction.DOWN) {
|
|
98
|
+
if (dir === Direction.UP && !atTheBeginningOfDoc(state) && !isNodeBeforeMediaNode($pos, state) || dir === Direction.DOWN) {
|
|
107
99
|
// We dont add gap cursor on node selections going up and down
|
|
100
|
+
// Except we do if we're going up for a block node which is the
|
|
101
|
+
// first node in the document OR the node before is a media node
|
|
108
102
|
return false;
|
|
109
103
|
}
|
|
110
104
|
}
|
|
111
|
-
|
|
112
|
-
|
|
105
|
+
|
|
106
|
+
// Handle media gap cursor for up/down arrow into media nodes
|
|
107
|
+
if (shouldHandleMediaGapCursor(dir, state)) {
|
|
108
|
+
const updatedTr = handleMediaGapCursor(dir, state);
|
|
109
|
+
if (dispatch) {
|
|
110
|
+
dispatch(updatedTr);
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
// when jumping between block nodes at the same depth, we need to reverse cursor without changing ProseMirror position
|
|
@@ -28,7 +28,10 @@ const baseStatusPlugin = options => ({
|
|
|
28
28
|
}];
|
|
29
29
|
},
|
|
30
30
|
contentComponent({
|
|
31
|
-
editorView
|
|
31
|
+
editorView,
|
|
32
|
+
popupsMountPoint,
|
|
33
|
+
popupsBoundariesElement,
|
|
34
|
+
popupsScrollableElement
|
|
32
35
|
}) {
|
|
33
36
|
const domAtPos = editorView.domAtPos.bind(editorView);
|
|
34
37
|
return /*#__PURE__*/React.createElement(WithPluginState, {
|
|
@@ -60,6 +63,9 @@ const baseStatusPlugin = options => ({
|
|
|
60
63
|
defaultText: text,
|
|
61
64
|
defaultColor: color,
|
|
62
65
|
defaultLocalId: localId,
|
|
66
|
+
mountTo: popupsMountPoint,
|
|
67
|
+
boundariesElement: popupsBoundariesElement,
|
|
68
|
+
scrollableElement: popupsScrollableElement,
|
|
63
69
|
onSelect: status => {
|
|
64
70
|
updateStatus(status)(editorView.state, editorView.dispatch);
|
|
65
71
|
},
|
|
@@ -106,5 +112,5 @@ const decorateWithPluginOptions = (plugin, options) => {
|
|
|
106
112
|
};
|
|
107
113
|
return plugin;
|
|
108
114
|
};
|
|
109
|
-
const statusPlugin = options => decorateWithPluginOptions(baseStatusPlugin(options), options);
|
|
115
|
+
const statusPlugin = (options, api) => decorateWithPluginOptions(baseStatusPlugin(options, api), options);
|
|
110
116
|
export default statusPlugin;
|
|
@@ -182,7 +182,10 @@ export class StatusPickerWithoutAnalytcs extends React.Component {
|
|
|
182
182
|
render() {
|
|
183
183
|
const {
|
|
184
184
|
isNew,
|
|
185
|
-
target
|
|
185
|
+
target,
|
|
186
|
+
mountTo,
|
|
187
|
+
boundariesElement,
|
|
188
|
+
scrollableElement
|
|
186
189
|
} = this.props;
|
|
187
190
|
const {
|
|
188
191
|
color,
|
|
@@ -194,7 +197,10 @@ export class StatusPickerWithoutAnalytcs extends React.Component {
|
|
|
194
197
|
handleClickOutside: this.handleClickOutside,
|
|
195
198
|
handleEscapeKeydown: this.handleEscapeKeydown,
|
|
196
199
|
zIndex: akEditorFloatingDialogZIndex,
|
|
197
|
-
fitHeight: 40
|
|
200
|
+
fitHeight: 40,
|
|
201
|
+
mountTo: mountTo,
|
|
202
|
+
boundariesElement: boundariesElement,
|
|
203
|
+
scrollableElement: scrollableElement
|
|
198
204
|
}, jsx("div", {
|
|
199
205
|
css: pickerContainer,
|
|
200
206
|
onClick: this.handlePopupClick
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NodeSelection
|
|
1
|
+
import { NodeSelection } from 'prosemirror-state';
|
|
2
2
|
export const mayGetStatusAtSelection = selection => {
|
|
3
3
|
if (selection && selection instanceof NodeSelection) {
|
|
4
4
|
const nodeSelection = selection;
|
|
@@ -8,15 +8,5 @@ export const mayGetStatusAtSelection = selection => {
|
|
|
8
8
|
}
|
|
9
9
|
return null;
|
|
10
10
|
};
|
|
11
|
-
export const mayGetStatusAtPos = (pos, doc) => {
|
|
12
|
-
if (pos) {
|
|
13
|
-
const node = doc.nodeAt(pos);
|
|
14
|
-
if (node && node.type.name === 'status') {
|
|
15
|
-
return node.attrs;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return null;
|
|
19
|
-
};
|
|
20
11
|
export const isEmptyStatus = node => node && (node.text && node.text.trim().length === 0 || node.text === '');
|
|
21
|
-
export const setSelectionNearPos = (tr, pos) => tr.setSelection(Selection.near(tr.doc.resolve(tr.mapping.map(pos))));
|
|
22
12
|
export const setNodeSelectionNearPos = (tr, pos) => tr.setSelection(NodeSelection.create(tr.doc, tr.mapping.map(pos)));
|
|
@@ -5,7 +5,7 @@ import { DEFAULT_BORDER_COLOR } from '../../../ui/ColorPalette/Palettes/common';
|
|
|
5
5
|
import { DEFAULT_COLOR, getActiveColor } from '../utils/color';
|
|
6
6
|
import { getDisabledState } from '../utils/disabled';
|
|
7
7
|
export { DEFAULT_COLOR } from '../utils/color';
|
|
8
|
-
|
|
8
|
+
function createInitialPluginState(editorState, pluginConfig) {
|
|
9
9
|
const defaultColor = (pluginConfig === null || pluginConfig === void 0 ? void 0 : pluginConfig.defaultColor) || DEFAULT_COLOR;
|
|
10
10
|
const palette = [{
|
|
11
11
|
value: defaultColor.color,
|
|
@@ -3,9 +3,12 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { jsx } from '@emotion/react';
|
|
5
5
|
import { defineMessages, injectIntl } from 'react-intl-next';
|
|
6
|
+
import { getSelectedRowAndColumnFromPalette } from '@atlaskit/editor-common/ui-color';
|
|
7
|
+
import { ArrowKeyNavigationType } from '@atlaskit/editor-common/ui-menu';
|
|
8
|
+
import { hexToEditorTextPaletteColor } from '@atlaskit/editor-palette';
|
|
6
9
|
import { akEditorMenuZIndex } from '@atlaskit/editor-shared-styles';
|
|
7
10
|
import ExpandIcon from '@atlaskit/icon/glyph/chevron-down';
|
|
8
|
-
import ColorPalette from '../../../../ui/ColorPalette';
|
|
11
|
+
import ColorPalette, { textPaletteTooltipMessages } from '../../../../ui/ColorPalette';
|
|
9
12
|
import Dropdown from '../../../../ui/Dropdown';
|
|
10
13
|
import { expandIconWrapperStyle, wrapperStyle, separatorStyles, triggerWrapperStyles } from '../../../../ui/styles';
|
|
11
14
|
import ToolbarButton, { TOOLBAR_BUTTON } from '../../../../ui/ToolbarButton';
|
|
@@ -27,7 +30,8 @@ export class ToolbarTextColor extends React.Component {
|
|
|
27
30
|
constructor(...args) {
|
|
28
31
|
super(...args);
|
|
29
32
|
_defineProperty(this, "state", {
|
|
30
|
-
isOpen: false
|
|
33
|
+
isOpen: false,
|
|
34
|
+
isOpenedByKeyboard: false
|
|
31
35
|
});
|
|
32
36
|
_defineProperty(this, "toolbarItemRef", /*#__PURE__*/React.createRef());
|
|
33
37
|
_defineProperty(this, "changeColor", color => commands.changeColor(color)(this.props.editorView.state, this.props.editorView.dispatch));
|
|
@@ -39,6 +43,7 @@ export class ToolbarTextColor extends React.Component {
|
|
|
39
43
|
});
|
|
40
44
|
});
|
|
41
45
|
_defineProperty(this, "changeTextColor", (color, disabled) => {
|
|
46
|
+
var _this$toolbarItemRef, _this$toolbarItemRef$;
|
|
42
47
|
if (!disabled) {
|
|
43
48
|
var _this$props$editorVie;
|
|
44
49
|
const {
|
|
@@ -60,6 +65,7 @@ export class ToolbarTextColor extends React.Component {
|
|
|
60
65
|
//To set the focus on the textcolor button when the menu is closed by 'Esc' only to meet aria guidelines
|
|
61
66
|
(_this$props$editorVie = this.props.editorView) === null || _this$props$editorVie === void 0 ? void 0 : _this$props$editorVie.focus();
|
|
62
67
|
}
|
|
68
|
+
(_this$toolbarItemRef = this.toolbarItemRef) === null || _this$toolbarItemRef === void 0 ? void 0 : (_this$toolbarItemRef$ = _this$toolbarItemRef.current) === null || _this$toolbarItemRef$ === void 0 ? void 0 : _this$toolbarItemRef$.focus();
|
|
63
69
|
return false;
|
|
64
70
|
});
|
|
65
71
|
_defineProperty(this, "toggleOpen", () => {
|
|
@@ -68,6 +74,15 @@ export class ToolbarTextColor extends React.Component {
|
|
|
68
74
|
logCloseEvent: true
|
|
69
75
|
});
|
|
70
76
|
});
|
|
77
|
+
_defineProperty(this, "onKeyDown", event => {
|
|
78
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
79
|
+
event.preventDefault();
|
|
80
|
+
this.setState({
|
|
81
|
+
isOpenedByKeyboard: true
|
|
82
|
+
});
|
|
83
|
+
this.toggleOpen();
|
|
84
|
+
}
|
|
85
|
+
});
|
|
71
86
|
_defineProperty(this, "handleOpenChange", ({
|
|
72
87
|
isOpen,
|
|
73
88
|
logCloseEvent,
|
|
@@ -76,14 +91,19 @@ export class ToolbarTextColor extends React.Component {
|
|
|
76
91
|
this.setState({
|
|
77
92
|
isOpen
|
|
78
93
|
});
|
|
94
|
+
if (!isOpen) {
|
|
95
|
+
this.setState({
|
|
96
|
+
isOpenedByKeyboard: false
|
|
97
|
+
});
|
|
98
|
+
}
|
|
79
99
|
if (logCloseEvent) {
|
|
80
100
|
this.dispatchAnalyticsEvent(this.buildAnalyticsPalette(isOpen ? ACTION.OPENED : ACTION.CLOSED, {
|
|
81
101
|
noSelect: isOpen === false
|
|
82
102
|
}));
|
|
83
103
|
}
|
|
84
104
|
if (!isOpen && event instanceof KeyboardEvent && (event === null || event === void 0 ? void 0 : event.key) === 'Escape') {
|
|
85
|
-
var _this$
|
|
86
|
-
(_this$
|
|
105
|
+
var _this$toolbarItemRef2, _this$toolbarItemRef3;
|
|
106
|
+
(_this$toolbarItemRef2 = this.toolbarItemRef) === null || _this$toolbarItemRef2 === void 0 ? void 0 : (_this$toolbarItemRef3 = _this$toolbarItemRef2.current) === null || _this$toolbarItemRef3 === void 0 ? void 0 : _this$toolbarItemRef3.focus();
|
|
87
107
|
}
|
|
88
108
|
});
|
|
89
109
|
_defineProperty(this, "hide", e => {
|
|
@@ -98,20 +118,21 @@ export class ToolbarTextColor extends React.Component {
|
|
|
98
118
|
isOpen: false
|
|
99
119
|
});
|
|
100
120
|
if (e instanceof KeyboardEvent && e.key === 'Escape') {
|
|
101
|
-
var _this$
|
|
102
|
-
(_this$
|
|
121
|
+
var _this$toolbarItemRef4, _this$toolbarItemRef5;
|
|
122
|
+
(_this$toolbarItemRef4 = this.toolbarItemRef) === null || _this$toolbarItemRef4 === void 0 ? void 0 : (_this$toolbarItemRef5 = _this$toolbarItemRef4.current) === null || _this$toolbarItemRef5 === void 0 ? void 0 : _this$toolbarItemRef5.focus();
|
|
103
123
|
}
|
|
104
124
|
}
|
|
105
125
|
});
|
|
106
126
|
_defineProperty(this, "hideonEsc", e => {
|
|
107
|
-
var _this$
|
|
127
|
+
var _this$toolbarItemRef6, _this$toolbarItemRef7;
|
|
108
128
|
this.hide(e);
|
|
109
|
-
(_this$
|
|
129
|
+
(_this$toolbarItemRef6 = this.toolbarItemRef) === null || _this$toolbarItemRef6 === void 0 ? void 0 : (_this$toolbarItemRef7 = _this$toolbarItemRef6.current) === null || _this$toolbarItemRef7 === void 0 ? void 0 : _this$toolbarItemRef7.focus();
|
|
110
130
|
});
|
|
111
131
|
}
|
|
112
132
|
render() {
|
|
113
133
|
const {
|
|
114
|
-
isOpen
|
|
134
|
+
isOpen,
|
|
135
|
+
isOpenedByKeyboard
|
|
115
136
|
} = this.state;
|
|
116
137
|
const {
|
|
117
138
|
popupsMountPoint,
|
|
@@ -138,6 +159,10 @@ export class ToolbarTextColor extends React.Component {
|
|
|
138
159
|
fitWidth = 242;
|
|
139
160
|
}
|
|
140
161
|
const selectedColor = pluginState.color !== pluginState.defaultColor && pluginState.color;
|
|
162
|
+
const {
|
|
163
|
+
selectedRowIndex,
|
|
164
|
+
selectedColumnIndex
|
|
165
|
+
} = getSelectedRowAndColumnFromPalette(palette, pluginState.color);
|
|
141
166
|
return jsx("span", {
|
|
142
167
|
css: wrapperStyle
|
|
143
168
|
}, jsx(Dropdown, {
|
|
@@ -151,6 +176,13 @@ export class ToolbarTextColor extends React.Component {
|
|
|
151
176
|
fitWidth: fitWidth,
|
|
152
177
|
onOpenChange: this.onOpenChange,
|
|
153
178
|
closeOnTab: true,
|
|
179
|
+
arrowKeyNavigationProviderOptions: {
|
|
180
|
+
type: ArrowKeyNavigationType.COLOR,
|
|
181
|
+
selectedRowIndex,
|
|
182
|
+
selectedColumnIndex,
|
|
183
|
+
isOpenedByKeyboard,
|
|
184
|
+
isPopupPositioned: true
|
|
185
|
+
},
|
|
154
186
|
trigger: jsx(ToolbarButton, {
|
|
155
187
|
buttonId: TOOLBAR_BUTTON.TEXT_COLOR,
|
|
156
188
|
spacing: isReducedSpacing ? 'none' : 'default',
|
|
@@ -161,6 +193,7 @@ export class ToolbarTextColor extends React.Component {
|
|
|
161
193
|
"aria-haspopup": true,
|
|
162
194
|
title: labelTextColor,
|
|
163
195
|
onClick: this.toggleOpen,
|
|
196
|
+
onKeyDown: this.onKeyDown,
|
|
164
197
|
ref: this.toolbarItemRef,
|
|
165
198
|
iconBefore: jsx("div", {
|
|
166
199
|
css: triggerWrapperStyles
|
|
@@ -177,11 +210,14 @@ export class ToolbarTextColor extends React.Component {
|
|
|
177
210
|
}, jsx("div", {
|
|
178
211
|
"data-testid": "text-color-palette"
|
|
179
212
|
}, jsx(ColorPalette, {
|
|
180
|
-
palette: palette,
|
|
181
213
|
onClick: color => this.changeTextColor(color, pluginState.disabled),
|
|
182
214
|
selectedColor: pluginState.color,
|
|
183
|
-
|
|
184
|
-
|
|
215
|
+
paletteOptions: {
|
|
216
|
+
palette,
|
|
217
|
+
hexToPaletteColor: hexToEditorTextPaletteColor,
|
|
218
|
+
paletteColorTooltipMessages: textPaletteTooltipMessages,
|
|
219
|
+
showSomewhatSemanticTooltips: useSomewhatSemanticTextColorNames
|
|
220
|
+
}
|
|
185
221
|
}))), jsx("span", {
|
|
186
222
|
css: separatorStyles
|
|
187
223
|
}));
|
|
@@ -12,14 +12,19 @@ import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, PUNC, SYMBOL } f
|
|
|
12
12
|
function replaceTextUsingCaptureGroup(text) {
|
|
13
13
|
return (state, match, start, end) => {
|
|
14
14
|
const [, prefix,, suffix] = match;
|
|
15
|
-
const replacement =
|
|
15
|
+
const replacement = text + (suffix || '');
|
|
16
16
|
let {
|
|
17
17
|
tr,
|
|
18
18
|
selection: {
|
|
19
19
|
$to
|
|
20
20
|
}
|
|
21
21
|
} = state;
|
|
22
|
-
|
|
22
|
+
const startPos = start + (prefix || '').length;
|
|
23
|
+
const safePos = Math.min(
|
|
24
|
+
// I know it is almost impossible to have a negative value at this point.
|
|
25
|
+
// But, this is JS #trustnoone
|
|
26
|
+
Math.max(startPos, 0), end);
|
|
27
|
+
tr.replaceWith(safePos, end, state.schema.text(replacement, $to.marks()));
|
|
23
28
|
tr.setSelection(Selection.near(tr.doc.resolve(tr.selection.to)));
|
|
24
29
|
return tr;
|
|
25
30
|
};
|
|
@@ -67,6 +72,7 @@ function createSingleQuotesRules() {
|
|
|
67
72
|
// apostrophe
|
|
68
73
|
createReplacementRule('’', /(\w+)(')(\w+)$/)];
|
|
69
74
|
}
|
|
75
|
+
|
|
70
76
|
/**
|
|
71
77
|
* Get replacement rules related to product
|
|
72
78
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useCallback, useMemo } from 'react';
|
|
1
|
+
import React, { useCallback, useMemo, useState } from 'react';
|
|
2
2
|
import { akEditorMenuZIndex } from '@atlaskit/editor-shared-styles';
|
|
3
3
|
import DropdownMenu from '../../../../ui/DropdownMenu';
|
|
4
4
|
import { useMenuState } from './hooks/menu-state';
|
|
@@ -14,6 +14,7 @@ export const FormattingTextDropdownMenu = /*#__PURE__*/React.memo(({
|
|
|
14
14
|
popupsScrollableElement
|
|
15
15
|
}) => {
|
|
16
16
|
const [isMenuOpen, toggleMenu, closeMenu] = useMenuState();
|
|
17
|
+
const [isOpenedByKeyboard, setIsOpenedByKeyboard] = useState(false);
|
|
17
18
|
const group = useMemo(() => [{
|
|
18
19
|
items
|
|
19
20
|
}], [items]);
|
|
@@ -37,13 +38,29 @@ export const FormattingTextDropdownMenu = /*#__PURE__*/React.memo(({
|
|
|
37
38
|
zIndex: akEditorMenuZIndex,
|
|
38
39
|
fitHeight: 188,
|
|
39
40
|
fitWidth: 136,
|
|
40
|
-
shouldUseDefaultRole: true
|
|
41
|
+
shouldUseDefaultRole: true,
|
|
42
|
+
shouldFocusFirstItem: () => {
|
|
43
|
+
if (isOpenedByKeyboard) {
|
|
44
|
+
setIsOpenedByKeyboard(false);
|
|
45
|
+
}
|
|
46
|
+
return isOpenedByKeyboard;
|
|
47
|
+
}
|
|
41
48
|
}, /*#__PURE__*/React.createElement(MoreButton, {
|
|
42
49
|
isSelected: isMenuOpen || hasFormattingActive,
|
|
43
50
|
label: moreButtonLabel,
|
|
44
51
|
isReducedSpacing: isReducedSpacing,
|
|
45
52
|
isDisabled: false,
|
|
46
|
-
onClick:
|
|
53
|
+
onClick: () => {
|
|
54
|
+
toggleMenu();
|
|
55
|
+
setIsOpenedByKeyboard(false);
|
|
56
|
+
},
|
|
57
|
+
onKeyDown: event => {
|
|
58
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
59
|
+
event.preventDefault();
|
|
60
|
+
toggleMenu();
|
|
61
|
+
setIsOpenedByKeyboard(true);
|
|
62
|
+
}
|
|
63
|
+
},
|
|
47
64
|
"aria-expanded": isMenuOpen
|
|
48
65
|
}));
|
|
49
66
|
});
|
|
@@ -10,8 +10,9 @@ import { SingleToolbarButtons } from './single-toolbar-buttons';
|
|
|
10
10
|
import { MoreButton } from './more-button';
|
|
11
11
|
import { FormattingTextDropdownMenu } from './dropdown-menu';
|
|
12
12
|
import { toolbarMessages } from './toolbar-messages';
|
|
13
|
-
import {
|
|
13
|
+
import { compareItemsArrays, isArrayContainsContent } from '../../utils';
|
|
14
14
|
import Announcer from '../../../../utils/announcer/announcer';
|
|
15
|
+
import { usePreviousState } from '@atlaskit/editor-common/hooks';
|
|
15
16
|
const ToolbarFormatting = ({
|
|
16
17
|
shouldUseResponsiveToolbar,
|
|
17
18
|
popupsMountPoint,
|
|
@@ -23,6 +24,7 @@ const ToolbarFormatting = ({
|
|
|
23
24
|
isToolbarDisabled,
|
|
24
25
|
intl
|
|
25
26
|
}) => {
|
|
27
|
+
var _usePreviousState;
|
|
26
28
|
const editorState = useMemo(() => editorView.state, [editorView.state]);
|
|
27
29
|
const [message, setMessage] = useState('');
|
|
28
30
|
const defaultIcons = useFormattingIcons({
|
|
@@ -54,7 +56,7 @@ const ToolbarFormatting = ({
|
|
|
54
56
|
const superscriptOffSubscriptOnStatus = intl.formatMessage(toolbarMessages.superscriptOffSubscriptOn);
|
|
55
57
|
const subscriptOffSuperscriptOnStatus = intl.formatMessage(toolbarMessages.subscriptOffSuperscriptOn);
|
|
56
58
|
const activeItems = [...dropdownItems, ...singleItems].filter(item => item.isActive);
|
|
57
|
-
const prevActiveItems =
|
|
59
|
+
const prevActiveItems = (_usePreviousState = usePreviousState(activeItems)) !== null && _usePreviousState !== void 0 ? _usePreviousState : [];
|
|
58
60
|
const fromSuperscriptToSubscript = isArrayContainsContent(activeItems, 'Subscript') && isArrayContainsContent(prevActiveItems, 'Superscript');
|
|
59
61
|
const fromSubscriptToSuperscript = isArrayContainsContent(activeItems, 'Superscript') && isArrayContainsContent(prevActiveItems, 'Subscript');
|
|
60
62
|
let comparedItems;
|
|
@@ -10,12 +10,14 @@ export const MoreButton = /*#__PURE__*/React.memo(({
|
|
|
10
10
|
isReducedSpacing,
|
|
11
11
|
isSelected,
|
|
12
12
|
isDisabled,
|
|
13
|
-
onClick
|
|
13
|
+
onClick,
|
|
14
|
+
onKeyDown
|
|
14
15
|
}) => {
|
|
15
16
|
return jsx(ToolbarButton, {
|
|
16
17
|
disabled: isDisabled,
|
|
17
18
|
selected: isSelected,
|
|
18
19
|
onClick: onClick,
|
|
20
|
+
onKeyDown: onKeyDown,
|
|
19
21
|
spacing: isReducedSpacing ? 'none' : 'default',
|
|
20
22
|
title: label,
|
|
21
23
|
iconBefore: jsx("div", {
|
|
@@ -1,25 +1,5 @@
|
|
|
1
|
-
import { useRef, useEffect } from 'react';
|
|
2
1
|
import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
|
|
3
2
|
import { FORMATTING_MARK_TYPES, FORMATTING_NODE_TYPES } from './commands/clear-formatting';
|
|
4
|
-
export const nodeLen = node => {
|
|
5
|
-
return node.nodeType === 3 && node.nodeValue ? node.nodeValue.length : node.childNodes.length;
|
|
6
|
-
};
|
|
7
|
-
export const isIgnorable = dom => dom.pmViewDesc && dom.pmViewDesc.size === 0;
|
|
8
|
-
export const isBlockNode = dom => {
|
|
9
|
-
const desc = dom.pmViewDesc;
|
|
10
|
-
return desc && desc.node && desc.node.isBlock;
|
|
11
|
-
};
|
|
12
|
-
export const domIndex = function (node) {
|
|
13
|
-
if (node) {
|
|
14
|
-
for (let index = 0;; index++) {
|
|
15
|
-
node = node.previousSibling;
|
|
16
|
-
if (!node) {
|
|
17
|
-
return index;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return;
|
|
22
|
-
};
|
|
23
3
|
export const hasCode = (state, pos) => {
|
|
24
4
|
const {
|
|
25
5
|
code
|
|
@@ -116,13 +96,6 @@ const marksArePresent = state => {
|
|
|
116
96
|
export const checkFormattingIsPresent = state => {
|
|
117
97
|
return marksArePresent(state) || blockStylingIsPresent(state);
|
|
118
98
|
};
|
|
119
|
-
export const usePreviousObjectState = value => {
|
|
120
|
-
const ref = useRef([]);
|
|
121
|
-
useEffect(() => {
|
|
122
|
-
ref.current = value;
|
|
123
|
-
});
|
|
124
|
-
return ref.current;
|
|
125
|
-
};
|
|
126
99
|
export const compareItemsArrays = (items, prevItems) => {
|
|
127
100
|
return items && items.filter(item => !prevItems.includes(item));
|
|
128
101
|
};
|
|
@@ -25,6 +25,7 @@ export function ToolbarDropdown(props) {
|
|
|
25
25
|
onItemActivated
|
|
26
26
|
} = props;
|
|
27
27
|
const [isDropdownOpen, setIsDropdownOpen] = React.useState(false);
|
|
28
|
+
const [isOpenedByKeyboard, setOpenedByKeyboard] = React.useState(false);
|
|
28
29
|
const labelLists = formatMessage(listMessages.lists);
|
|
29
30
|
const onOpenChange = attrs => {
|
|
30
31
|
setIsDropdownOpen(attrs.isDropdownOpen);
|
|
@@ -34,6 +35,13 @@ export function ToolbarDropdown(props) {
|
|
|
34
35
|
isDropdownOpen: !isDropdownOpen
|
|
35
36
|
});
|
|
36
37
|
};
|
|
38
|
+
const handleOnKeyDown = event => {
|
|
39
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
setIsDropdownOpen(!isDropdownOpen);
|
|
42
|
+
setOpenedByKeyboard(true);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
37
45
|
const items = useItems(props);
|
|
38
46
|
const handleOnItemActivated = ({
|
|
39
47
|
item,
|
|
@@ -57,7 +65,13 @@ export function ToolbarDropdown(props) {
|
|
|
57
65
|
onOpenChange: onOpenChange,
|
|
58
66
|
fitHeight: 188,
|
|
59
67
|
fitWidth: 175,
|
|
60
|
-
shouldUseDefaultRole: true
|
|
68
|
+
shouldUseDefaultRole: true,
|
|
69
|
+
shouldFocusFirstItem: () => {
|
|
70
|
+
if (isOpenedByKeyboard) {
|
|
71
|
+
setOpenedByKeyboard(false);
|
|
72
|
+
}
|
|
73
|
+
return isOpenedByKeyboard;
|
|
74
|
+
}
|
|
61
75
|
}, jsx(ToolbarButton, {
|
|
62
76
|
spacing: isReducedSpacing ? 'none' : 'default',
|
|
63
77
|
selected: bulletListActive || orderedListActive,
|
|
@@ -66,6 +80,7 @@ export function ToolbarDropdown(props) {
|
|
|
66
80
|
"aria-label": labelLists,
|
|
67
81
|
disabled: disabled,
|
|
68
82
|
onClick: handleTriggerClick,
|
|
83
|
+
onKeyDown: handleOnKeyDown,
|
|
69
84
|
title: labelLists,
|
|
70
85
|
iconBefore: jsx("span", {
|
|
71
86
|
css: wrapperStyle
|
|
@@ -2,11 +2,6 @@ export const TYPE_AHEAD_DECORATION_KEY = 'typeahead_decoration_key';
|
|
|
2
2
|
export const TYPE_AHEAD_DECORATION_DATA_ATTRIBUTE = 'typeaheadDecoration';
|
|
3
3
|
export const TYPE_AHEAD_POPUP_CONTENT_CLASS = 'fabric-editor-typeahead';
|
|
4
4
|
export const TYPE_AHEAD_DECORATION_ELEMENT_ID = 'typeahaed_decoration_element_id';
|
|
5
|
-
export let NavigationDirection;
|
|
6
|
-
(function (NavigationDirection) {
|
|
7
|
-
NavigationDirection[NavigationDirection["LEFT"] = -1] = "LEFT";
|
|
8
|
-
NavigationDirection[NavigationDirection["RIGHT"] = 1] = "RIGHT";
|
|
9
|
-
})(NavigationDirection || (NavigationDirection = {}));
|
|
10
5
|
export let CloseSelectionOptions;
|
|
11
6
|
(function (CloseSelectionOptions) {
|
|
12
7
|
CloseSelectionOptions["BEFORE_TEXT_INSERTED"] = "BEFORE_TEXT_INSERTED";
|
|
@@ -19,7 +19,7 @@ import { getPluginState } from './utils';
|
|
|
19
19
|
import { useItemInsert } from './ui/hooks/use-item-insert';
|
|
20
20
|
import { updateSelectedIndex } from './commands/update-selected-index';
|
|
21
21
|
import { StatsModifier } from './stats-modifier';
|
|
22
|
-
import { ACTION, ACTION_SUBJECT, INPUT_METHOD, EVENT_TYPE, fireAnalyticsEvent } from '
|
|
22
|
+
import { ACTION, ACTION_SUBJECT, INPUT_METHOD, EVENT_TYPE, fireAnalyticsEvent } from '@atlaskit/editor-common/analytics';
|
|
23
23
|
const TypeAheadMenu = /*#__PURE__*/React.memo(({
|
|
24
24
|
editorView,
|
|
25
25
|
popupMountRef,
|
|
@@ -145,39 +145,4 @@ export const factoryDecorations = ({
|
|
|
145
145
|
createDecorations,
|
|
146
146
|
removeDecorations
|
|
147
147
|
};
|
|
148
|
-
};
|
|
149
|
-
export const isSelectionInsideTypeAhead = ({
|
|
150
|
-
decorationSet,
|
|
151
|
-
selection
|
|
152
|
-
}) => {
|
|
153
|
-
if (!decorationSet || decorationSet === DecorationSet.empty) {
|
|
154
|
-
return false;
|
|
155
|
-
}
|
|
156
|
-
const typeAheadDecorations = decorationSet.find(undefined, undefined, spec => {
|
|
157
|
-
return spec.isTypeAheadDecoration;
|
|
158
|
-
});
|
|
159
|
-
if (!typeAheadDecorations || typeAheadDecorations.length === 0) {
|
|
160
|
-
return false;
|
|
161
|
-
}
|
|
162
|
-
return typeAheadDecorations.some(dec => {
|
|
163
|
-
return dec.from === selection.from && dec.to === selection.to;
|
|
164
|
-
});
|
|
165
|
-
};
|
|
166
|
-
export const findDecorationElement = ({
|
|
167
|
-
selection,
|
|
168
|
-
decorationSet
|
|
169
|
-
}) => {
|
|
170
|
-
if (!decorationSet || decorationSet === DecorationSet.empty || !(selection instanceof TextSelection) || !selection.$cursor) {
|
|
171
|
-
return null;
|
|
172
|
-
}
|
|
173
|
-
const {
|
|
174
|
-
$cursor: {
|
|
175
|
-
pos
|
|
176
|
-
}
|
|
177
|
-
} = selection;
|
|
178
|
-
const decoration = decorationSet.find(pos, pos, spec => spec === null || spec === void 0 ? void 0 : spec.isTypeAheadDecoration);
|
|
179
|
-
if (!decoration || decoration.length !== 1) {
|
|
180
|
-
return null;
|
|
181
|
-
}
|
|
182
|
-
return document.querySelector(`#${decoration[0].spec.key}`);
|
|
183
148
|
};
|