@atlaskit/editor-core 166.0.4 → 167.0.2
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/.eslintrc.js +46 -1
- package/CHANGELOG.md +99 -0
- package/dist/cjs/actions/index.js +26 -2
- package/dist/cjs/create-editor/ReactEditorView.js +2 -0
- package/dist/cjs/create-editor/create-plugins-list.js +1 -2
- package/dist/cjs/editor.js +5 -2
- package/dist/cjs/keymaps/index.js +5 -1
- package/dist/cjs/labs/next/ContentComponents.js +8 -4
- package/dist/cjs/labs/next/full-page.js +14 -8
- package/dist/cjs/nodeviews/getInlineNodeViewProducer.js +7 -3
- package/dist/cjs/nodeviews/getInlineNodeViewProducer.styles.js +3 -1
- package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/styles.js +3 -1
- package/dist/cjs/plugins/analytics/types/enums.js +3 -0
- package/dist/cjs/plugins/base/index.js +8 -17
- package/dist/cjs/plugins/base/pm-plugins/better-type-history.js +3 -12
- package/dist/cjs/plugins/base/pm-plugins/inline-cursor-target.js +71 -16
- package/dist/cjs/plugins/block-type/commands/block-type.js +32 -22
- package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/styled.js +4 -2
- package/dist/cjs/plugins/breakout/ui/LayoutButton.js +4 -11
- package/dist/cjs/plugins/card/styles.js +1 -1
- package/dist/cjs/plugins/card/ui/LinkToolbarIconDropdown.js +2 -2
- package/dist/cjs/plugins/code-block/actions.js +36 -2
- package/dist/cjs/plugins/code-block/nodeviews/code-block.js +70 -1
- package/dist/cjs/plugins/code-block/pm-plugins/actions.js +2 -1
- package/dist/cjs/plugins/code-block/pm-plugins/main.js +46 -8
- package/dist/cjs/plugins/code-block/styles.js +28 -24
- package/dist/cjs/plugins/collab-edit/styles.js +4 -2
- package/dist/cjs/plugins/collab-edit/ui/styles.js +4 -2
- package/dist/cjs/plugins/collab-edit/utils.js +1 -0
- package/dist/cjs/plugins/date/ui/DatePicker/index.js +3 -1
- package/dist/cjs/plugins/expand/ui/styles.js +16 -14
- package/dist/cjs/plugins/extension/commands.js +3 -2
- package/dist/cjs/plugins/extension/context-panel.js +21 -7
- package/dist/cjs/plugins/extension/ui/Extension/Extension/styles.js +6 -4
- package/dist/cjs/plugins/extension/ui/Extension/InlineExtension/styles.js +3 -1
- package/dist/cjs/plugins/extension/ui/Extension/styles.js +7 -5
- package/dist/cjs/plugins/extension/ui/SaveIndicator/SaveIndicator.js +4 -2
- package/dist/cjs/plugins/fake-text-cursor/styles.js +3 -1
- package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
- package/dist/cjs/plugins/find-replace/styles.js +2 -6
- package/dist/cjs/plugins/find-replace/ui/styles.js +4 -2
- package/dist/cjs/plugins/floating-toolbar/ui/DropdownMenu.js +3 -1
- package/dist/cjs/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +3 -1
- package/dist/cjs/plugins/floating-toolbar/ui/Separator.js +3 -1
- package/dist/cjs/plugins/floating-toolbar/ui/Toolbar.js +6 -4
- package/dist/cjs/plugins/floating-toolbar/ui/styles.js +12 -10
- package/dist/cjs/plugins/grid/styles.js +3 -1
- package/dist/cjs/plugins/help-dialog/ui/styles.js +9 -7
- package/dist/cjs/plugins/hyperlink/pm-plugins/input-rule.js +23 -1
- package/dist/cjs/plugins/hyperlink/pm-plugins/keymap.js +10 -1
- package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +5 -3
- package/dist/cjs/plugins/hyperlink/utils.js +53 -2
- package/dist/cjs/plugins/insert-block/index.js +1 -1
- package/dist/cjs/plugins/jira-issue/nodeviews/jira-issue.js +4 -2
- package/dist/cjs/plugins/layout/styles.js +1 -1
- package/dist/cjs/plugins/media/commands/helpers.js +10 -9
- package/dist/cjs/plugins/media/nodeviews/mediaInline.js +23 -4
- package/dist/cjs/plugins/media/nodeviews/mediaNodeView/media.js +6 -0
- package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -3
- package/dist/cjs/plugins/media/pm-plugins/main.js +1 -0
- package/dist/cjs/plugins/media/styles.js +1 -1
- package/dist/cjs/plugins/media/ui/CaptionPlaceholder/index.js +3 -1
- package/dist/cjs/plugins/media/ui/Media/DropPlaceholder.js +4 -2
- package/dist/cjs/plugins/media/ui/MediaLinkingToolbar.js +3 -1
- package/dist/cjs/plugins/mentions/styles.js +3 -1
- package/dist/cjs/plugins/mentions/ui/InviteItem/index.js +3 -1
- package/dist/cjs/plugins/mentions/ui/InviteItem/styles.js +4 -2
- package/dist/cjs/plugins/panel/index.js +1 -0
- package/dist/cjs/plugins/panel/nodeviews/panel.js +4 -1
- package/dist/cjs/plugins/panel/pm-plugins/keymaps.js +21 -3
- package/dist/cjs/plugins/paste/handlers.js +23 -0
- package/dist/cjs/plugins/paste/linkify-md-plugin.js +7 -0
- package/dist/cjs/plugins/paste/pm-plugins/analytics.js +9 -1
- package/dist/cjs/plugins/paste/pm-plugins/main.js +27 -1
- package/dist/cjs/plugins/placeholder/index.js +15 -3
- package/dist/cjs/plugins/placeholder/styles.js +3 -1
- package/dist/cjs/plugins/placeholder-text/styles.js +3 -1
- package/dist/cjs/plugins/quick-insert/search.js +3 -1
- package/dist/cjs/plugins/selection/gap-cursor/styles.js +1 -1
- package/dist/cjs/plugins/selection/pm-plugins/gap-cursor-main.js +2 -2
- package/dist/cjs/plugins/status/ui/statusPicker.js +3 -3
- package/dist/cjs/plugins/table/index.js +14 -4
- package/dist/cjs/plugins/table/nodeviews/TableComponent.js +6 -6
- package/dist/cjs/plugins/table/nodeviews/table.js +9 -4
- package/dist/cjs/plugins/table/pm-plugins/main.js +1 -4
- package/dist/cjs/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +118 -0
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +2 -4
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin.js +2 -5
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -8
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -3
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +0 -3
- package/dist/cjs/plugins/table/transforms/column-width.js +1 -2
- package/dist/cjs/plugins/table/transforms/fix-tables.js +1 -3
- package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +4 -1
- package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +3 -1
- package/dist/cjs/plugins/table/ui/common-styles.js +4 -2
- package/dist/cjs/plugins/table/ui/consts.js +14 -11
- package/dist/cjs/plugins/table/ui/ui-styles.js +17 -10
- package/dist/cjs/plugins/table/utils/decoration.js +3 -4
- package/dist/cjs/plugins/table/utils/paste.js +9 -9
- package/dist/cjs/plugins/text-formatting/pm-plugins/input-rule.js +1 -1
- package/dist/cjs/plugins/type-ahead/index.js +4 -3
- package/dist/cjs/plugins/type-ahead/pm-plugins/decorations.js +3 -1
- package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +4 -4
- package/dist/cjs/plugins/type-ahead/ui/TypeAheadListItem.js +11 -9
- package/dist/cjs/plugins/type-ahead/ui/TypeAheadPopup.js +73 -3
- package/dist/cjs/plugins/unsupported-content/styles.js +1 -1
- package/dist/cjs/ui/Addon/Dropdown/styles.js +3 -1
- package/dist/cjs/ui/Addon/DropdownItem/styles.js +3 -1
- package/dist/cjs/ui/Appearance/Chromeless.js +2 -1
- package/dist/cjs/ui/Appearance/Comment/Comment.js +10 -3
- package/dist/cjs/ui/Appearance/Comment/Toolbar.js +4 -2
- package/dist/cjs/ui/Appearance/FullPage/FullPage.js +5 -2
- package/dist/cjs/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
- package/dist/cjs/ui/Appearance/FullPage/FullPageToolbar.js +12 -11
- package/dist/cjs/ui/Appearance/FullPage/MainToolbar.js +6 -3
- package/dist/cjs/ui/ChromeCollapsed/styles.js +1 -1
- package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +21 -14
- package/dist/cjs/ui/ConfigPanel/ConfigPanelFieldsLoader.js +2 -0
- package/dist/cjs/ui/ConfigPanel/Fields/CheckboxGroup.js +3 -1
- package/dist/cjs/ui/ConfigPanel/Fields/Expand.js +3 -1
- package/dist/cjs/ui/ConfigPanel/Fields/Fieldset.js +3 -1
- package/dist/cjs/ui/ConfigPanel/Fields/common/RequiredIndicator.js +3 -1
- package/dist/cjs/ui/ConfigPanel/Header.js +4 -2
- package/dist/cjs/ui/ConfigPanel/NestedForms/RemovableField.js +4 -8
- package/dist/cjs/ui/ContentStyles/index.js +4 -2
- package/dist/cjs/ui/ContextPanel/index.js +3 -1
- package/dist/cjs/ui/DropdownMenu/index.js +5 -0
- package/dist/cjs/ui/ElementBrowser/InsertMenu.js +6 -4
- package/dist/cjs/ui/ElementBrowser/ModalElementBrowser.js +4 -2
- package/dist/cjs/ui/ElementBrowser/components/CategoryList.js +4 -2
- package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +12 -5
- package/dist/cjs/ui/ElementBrowser/components/ElementList/EmptyState.js +3 -1
- package/dist/cjs/ui/ElementBrowser/components/ElementSearch.js +3 -1
- package/dist/cjs/ui/ElementBrowser/constants.js +3 -1
- package/dist/cjs/ui/FloatingToolbar/styles.js +2 -2
- package/dist/cjs/ui/LinkSearch/LinkSearchListItem.js +5 -3
- package/dist/cjs/ui/PanelTextInput/styles.js +3 -1
- package/dist/cjs/ui/PluginSlot/index.js +7 -4
- package/dist/cjs/ui/Toolbar/ToolbarInner.js +2 -1
- package/dist/cjs/ui/Toolbar/ToolbarWithSizeDetector.js +5 -2
- package/dist/cjs/ui/ToolbarFeedback/styles.js +5 -3
- package/dist/cjs/ui/WithFlash/index.js +4 -2
- package/dist/cjs/ui/styles.js +6 -4
- package/dist/cjs/utils/document.js +62 -6
- package/dist/cjs/utils/filter/privacy-filter.js +2 -2
- package/dist/cjs/utils/step.js +17 -1
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/actions/index.js +25 -1
- package/dist/es2019/create-editor/ReactEditorView.js +2 -0
- package/dist/es2019/create-editor/create-plugins-list.js +1 -2
- package/dist/es2019/editor.js +5 -2
- package/dist/es2019/keymaps/index.js +5 -1
- package/dist/es2019/labs/next/ContentComponents.js +7 -2
- package/dist/es2019/labs/next/full-page.js +11 -8
- package/dist/es2019/nodeviews/getInlineNodeViewProducer.js +4 -3
- package/dist/es2019/nodeviews/getInlineNodeViewProducer.styles.js +16 -4
- package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/styles.js +2 -1
- package/dist/es2019/plugins/analytics/types/enums.js +3 -0
- package/dist/es2019/plugins/base/index.js +6 -15
- package/dist/es2019/plugins/base/pm-plugins/better-type-history.js +1 -11
- package/dist/es2019/plugins/base/pm-plugins/inline-cursor-target.js +72 -17
- package/dist/es2019/plugins/block-type/commands/block-type.js +25 -16
- package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/styled.js +3 -2
- package/dist/es2019/plugins/breakout/ui/LayoutButton.js +6 -10
- package/dist/es2019/plugins/card/styles.js +1 -1
- package/dist/es2019/plugins/card/ui/LinkToolbarIconDropdown.js +2 -2
- package/dist/es2019/plugins/code-block/actions.js +32 -0
- package/dist/es2019/plugins/code-block/nodeviews/code-block.js +61 -1
- package/dist/es2019/plugins/code-block/pm-plugins/actions.js +2 -1
- package/dist/es2019/plugins/code-block/pm-plugins/main.js +37 -3
- package/dist/es2019/plugins/code-block/styles.js +30 -27
- package/dist/es2019/plugins/collab-edit/styles.js +3 -2
- package/dist/es2019/plugins/collab-edit/ui/styles.js +4 -3
- package/dist/es2019/plugins/collab-edit/utils.js +1 -0
- package/dist/es2019/plugins/date/ui/DatePicker/index.js +3 -2
- package/dist/es2019/plugins/expand/ui/styles.js +15 -14
- package/dist/es2019/plugins/extension/commands.js +3 -2
- package/dist/es2019/plugins/extension/context-panel.js +11 -3
- package/dist/es2019/plugins/extension/ui/Extension/Extension/styles.js +5 -4
- package/dist/es2019/plugins/extension/ui/Extension/InlineExtension/styles.js +2 -1
- package/dist/es2019/plugins/extension/ui/Extension/styles.js +7 -6
- package/dist/es2019/plugins/extension/ui/SaveIndicator/SaveIndicator.js +4 -4
- package/dist/es2019/plugins/fake-text-cursor/styles.js +3 -2
- package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
- package/dist/es2019/plugins/find-replace/styles.js +4 -4
- package/dist/es2019/plugins/find-replace/ui/styles.js +3 -2
- package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
- package/dist/es2019/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +2 -1
- package/dist/es2019/plugins/floating-toolbar/ui/Separator.js +2 -1
- package/dist/es2019/plugins/floating-toolbar/ui/Toolbar.js +4 -4
- package/dist/es2019/plugins/floating-toolbar/ui/styles.js +11 -10
- package/dist/es2019/plugins/grid/styles.js +4 -2
- package/dist/es2019/plugins/help-dialog/ui/styles.js +10 -9
- package/dist/es2019/plugins/hyperlink/pm-plugins/input-rule.js +24 -2
- package/dist/es2019/plugins/hyperlink/pm-plugins/keymap.js +9 -1
- package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +5 -4
- package/dist/es2019/plugins/hyperlink/utils.js +43 -2
- package/dist/es2019/plugins/insert-block/index.js +1 -1
- package/dist/es2019/plugins/jira-issue/nodeviews/jira-issue.js +6 -5
- package/dist/es2019/plugins/layout/styles.js +10 -7
- package/dist/es2019/plugins/media/commands/helpers.js +6 -8
- package/dist/es2019/plugins/media/nodeviews/mediaInline.js +21 -5
- package/dist/es2019/plugins/media/nodeviews/mediaNodeView/media.js +7 -0
- package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +5 -4
- package/dist/es2019/plugins/media/pm-plugins/main.js +2 -0
- package/dist/es2019/plugins/media/styles.js +3 -3
- package/dist/es2019/plugins/media/ui/CaptionPlaceholder/index.js +2 -1
- package/dist/es2019/plugins/media/ui/Media/DropPlaceholder.js +4 -3
- package/dist/es2019/plugins/media/ui/MediaLinkingToolbar.js +2 -1
- package/dist/es2019/plugins/mentions/styles.js +5 -4
- package/dist/es2019/plugins/mentions/ui/InviteItem/index.js +2 -1
- package/dist/es2019/plugins/mentions/ui/InviteItem/styles.js +3 -2
- package/dist/es2019/plugins/panel/index.js +1 -0
- package/dist/es2019/plugins/panel/nodeviews/panel.js +4 -1
- package/dist/es2019/plugins/panel/pm-plugins/keymaps.js +22 -4
- package/dist/es2019/plugins/paste/handlers.js +23 -0
- package/dist/es2019/plugins/paste/linkify-md-plugin.js +7 -1
- package/dist/es2019/plugins/paste/pm-plugins/analytics.js +4 -1
- package/dist/es2019/plugins/paste/pm-plugins/main.js +27 -2
- package/dist/es2019/plugins/placeholder/index.js +12 -1
- package/dist/es2019/plugins/placeholder/styles.js +3 -1
- package/dist/es2019/plugins/placeholder-text/styles.js +5 -4
- package/dist/es2019/plugins/quick-insert/search.js +1 -1
- package/dist/es2019/plugins/selection/gap-cursor/styles.js +9 -9
- package/dist/es2019/plugins/selection/pm-plugins/gap-cursor-main.js +2 -2
- package/dist/es2019/plugins/status/ui/statusPicker.js +3 -3
- package/dist/es2019/plugins/table/index.js +13 -4
- package/dist/es2019/plugins/table/nodeviews/TableComponent.js +6 -6
- package/dist/es2019/plugins/table/nodeviews/table.js +6 -2
- package/dist/es2019/plugins/table/pm-plugins/main.js +1 -4
- package/dist/es2019/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +106 -0
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/event-handlers.js +2 -4
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/plugin.js +2 -4
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/misc.js +3 -7
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -3
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +0 -3
- package/dist/es2019/plugins/table/transforms/column-width.js +1 -2
- package/dist/es2019/plugins/table/transforms/fix-tables.js +1 -3
- package/dist/es2019/plugins/table/ui/FloatingContextualButton/styles.js +4 -2
- package/dist/es2019/plugins/table/ui/FloatingContextualMenu/styles.js +4 -3
- package/dist/es2019/plugins/table/ui/common-styles.js +29 -27
- package/dist/es2019/plugins/table/ui/consts.js +15 -12
- package/dist/es2019/plugins/table/ui/ui-styles.js +28 -23
- package/dist/es2019/plugins/table/utils/decoration.js +1 -4
- package/dist/es2019/plugins/table/utils/paste.js +9 -9
- package/dist/es2019/plugins/text-formatting/pm-plugins/input-rule.js +1 -1
- package/dist/es2019/plugins/type-ahead/index.js +4 -3
- package/dist/es2019/plugins/type-ahead/pm-plugins/decorations.js +2 -1
- package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +4 -4
- package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +10 -9
- package/dist/es2019/plugins/type-ahead/ui/TypeAheadPopup.js +64 -6
- package/dist/es2019/plugins/unsupported-content/styles.js +1 -1
- package/dist/es2019/ui/Addon/Dropdown/styles.js +3 -2
- package/dist/es2019/ui/Addon/DropdownItem/styles.js +3 -2
- package/dist/es2019/ui/Appearance/Chromeless.js +2 -1
- package/dist/es2019/ui/Appearance/Comment/Comment.js +9 -4
- package/dist/es2019/ui/Appearance/Comment/Toolbar.js +4 -2
- package/dist/es2019/ui/Appearance/FullPage/FullPage.js +6 -2
- package/dist/es2019/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
- package/dist/es2019/ui/Appearance/FullPage/FullPageToolbar.js +12 -11
- package/dist/es2019/ui/Appearance/FullPage/MainToolbar.js +7 -3
- package/dist/es2019/ui/ChromeCollapsed/styles.js +4 -3
- package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +10 -2
- package/dist/es2019/ui/ConfigPanel/ConfigPanelFieldsLoader.js +2 -0
- package/dist/es2019/ui/ConfigPanel/ErrorMessage/ErrorImage.js +3 -0
- package/dist/es2019/ui/ConfigPanel/Fields/CheckboxGroup.js +2 -1
- package/dist/es2019/ui/ConfigPanel/Fields/Expand.js +2 -1
- package/dist/es2019/ui/ConfigPanel/Fields/Fieldset.js +2 -1
- package/dist/es2019/ui/ConfigPanel/Fields/common/RequiredIndicator.js +2 -1
- package/dist/es2019/ui/ConfigPanel/Header.js +3 -2
- package/dist/es2019/ui/ConfigPanel/NestedForms/RemovableField.js +4 -3
- package/dist/es2019/ui/ContentStyles/index.js +3 -2
- package/dist/es2019/ui/ContextPanel/index.js +2 -1
- package/dist/es2019/ui/DropdownMenu/index.js +5 -0
- package/dist/es2019/ui/ElementBrowser/InsertMenu.js +6 -3
- package/dist/es2019/ui/ElementBrowser/ModalElementBrowser.js +3 -2
- package/dist/es2019/ui/ElementBrowser/components/CategoryList.js +3 -2
- package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +12 -5
- package/dist/es2019/ui/ElementBrowser/components/ElementList/EmptyState.js +2 -1
- package/dist/es2019/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +3 -0
- package/dist/es2019/ui/ElementBrowser/components/ElementSearch.js +2 -1
- package/dist/es2019/ui/ElementBrowser/constants.js +3 -1
- package/dist/es2019/ui/FloatingToolbar/styles.js +4 -4
- package/dist/es2019/ui/LinkSearch/LinkSearchListItem.js +4 -3
- package/dist/es2019/ui/PanelTextInput/styles.js +5 -5
- package/dist/es2019/ui/PluginSlot/index.js +7 -4
- package/dist/es2019/ui/Toolbar/ToolbarInner.js +2 -1
- package/dist/es2019/ui/Toolbar/ToolbarWithSizeDetector.js +4 -2
- package/dist/es2019/ui/ToolbarFeedback/styles.js +5 -4
- package/dist/es2019/ui/WithFlash/index.js +4 -3
- package/dist/es2019/ui/styles.js +10 -9
- package/dist/es2019/utils/document.js +58 -5
- package/dist/es2019/utils/filter/privacy-filter.js +1 -1
- package/dist/es2019/utils/step.js +12 -1
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/actions/index.js +26 -1
- package/dist/esm/create-editor/ReactEditorView.js +2 -0
- package/dist/esm/create-editor/create-plugins-list.js +1 -2
- package/dist/esm/editor.js +5 -2
- package/dist/esm/keymaps/index.js +5 -1
- package/dist/esm/labs/next/ContentComponents.js +8 -4
- package/dist/esm/labs/next/full-page.js +11 -8
- package/dist/esm/nodeviews/getInlineNodeViewProducer.js +4 -3
- package/dist/esm/nodeviews/getInlineNodeViewProducer.styles.js +3 -2
- package/dist/esm/plugins/alignment/ui/ToolbarAlignment/styles.js +2 -1
- package/dist/esm/plugins/analytics/types/enums.js +3 -0
- package/dist/esm/plugins/base/index.js +8 -17
- package/dist/esm/plugins/base/pm-plugins/better-type-history.js +1 -11
- package/dist/esm/plugins/base/pm-plugins/inline-cursor-target.js +72 -17
- package/dist/esm/plugins/block-type/commands/block-type.js +31 -22
- package/dist/esm/plugins/block-type/ui/ToolbarBlockType/styled.js +3 -2
- package/dist/esm/plugins/breakout/ui/LayoutButton.js +3 -5
- package/dist/esm/plugins/card/styles.js +1 -1
- package/dist/esm/plugins/card/ui/LinkToolbarIconDropdown.js +2 -2
- package/dist/esm/plugins/code-block/actions.js +28 -0
- package/dist/esm/plugins/code-block/nodeviews/code-block.js +67 -1
- package/dist/esm/plugins/code-block/pm-plugins/actions.js +2 -1
- package/dist/esm/plugins/code-block/pm-plugins/main.js +39 -3
- package/dist/esm/plugins/code-block/styles.js +27 -23
- package/dist/esm/plugins/collab-edit/styles.js +3 -2
- package/dist/esm/plugins/collab-edit/ui/styles.js +3 -2
- package/dist/esm/plugins/collab-edit/utils.js +2 -0
- package/dist/esm/plugins/date/ui/DatePicker/index.js +2 -1
- package/dist/esm/plugins/expand/ui/styles.js +15 -14
- package/dist/esm/plugins/extension/commands.js +3 -2
- package/dist/esm/plugins/extension/context-panel.js +21 -7
- package/dist/esm/plugins/extension/ui/Extension/Extension/styles.js +5 -4
- package/dist/esm/plugins/extension/ui/Extension/InlineExtension/styles.js +2 -1
- package/dist/esm/plugins/extension/ui/Extension/styles.js +6 -5
- package/dist/esm/plugins/extension/ui/SaveIndicator/SaveIndicator.js +3 -2
- package/dist/esm/plugins/fake-text-cursor/styles.js +2 -1
- package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
- package/dist/esm/plugins/find-replace/styles.js +3 -3
- package/dist/esm/plugins/find-replace/ui/styles.js +3 -2
- package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +2 -1
- package/dist/esm/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +2 -1
- package/dist/esm/plugins/floating-toolbar/ui/Separator.js +2 -1
- package/dist/esm/plugins/floating-toolbar/ui/Toolbar.js +5 -4
- package/dist/esm/plugins/floating-toolbar/ui/styles.js +11 -10
- package/dist/esm/plugins/grid/styles.js +2 -1
- package/dist/esm/plugins/help-dialog/ui/styles.js +8 -7
- package/dist/esm/plugins/hyperlink/pm-plugins/input-rule.js +24 -2
- package/dist/esm/plugins/hyperlink/pm-plugins/keymap.js +9 -1
- package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +4 -3
- package/dist/esm/plugins/hyperlink/utils.js +44 -2
- package/dist/esm/plugins/insert-block/index.js +1 -1
- package/dist/esm/plugins/jira-issue/nodeviews/jira-issue.js +3 -2
- package/dist/esm/plugins/layout/styles.js +1 -1
- package/dist/esm/plugins/media/commands/helpers.js +6 -8
- package/dist/esm/plugins/media/nodeviews/mediaInline.js +22 -4
- package/dist/esm/plugins/media/nodeviews/mediaNodeView/media.js +7 -0
- package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +4 -3
- package/dist/esm/plugins/media/pm-plugins/main.js +2 -0
- package/dist/esm/plugins/media/styles.js +1 -1
- package/dist/esm/plugins/media/ui/CaptionPlaceholder/index.js +2 -1
- package/dist/esm/plugins/media/ui/Media/DropPlaceholder.js +3 -2
- package/dist/esm/plugins/media/ui/MediaLinkingToolbar.js +2 -1
- package/dist/esm/plugins/mentions/styles.js +2 -1
- package/dist/esm/plugins/mentions/ui/InviteItem/index.js +2 -1
- package/dist/esm/plugins/mentions/ui/InviteItem/styles.js +3 -2
- package/dist/esm/plugins/panel/index.js +1 -0
- package/dist/esm/plugins/panel/nodeviews/panel.js +4 -1
- package/dist/esm/plugins/panel/pm-plugins/keymaps.js +22 -4
- package/dist/esm/plugins/paste/handlers.js +21 -0
- package/dist/esm/plugins/paste/linkify-md-plugin.js +7 -1
- package/dist/esm/plugins/paste/pm-plugins/analytics.js +6 -1
- package/dist/esm/plugins/paste/pm-plugins/main.js +27 -2
- package/dist/esm/plugins/placeholder/index.js +12 -1
- package/dist/esm/plugins/placeholder/styles.js +2 -1
- package/dist/esm/plugins/placeholder-text/styles.js +2 -1
- package/dist/esm/plugins/quick-insert/search.js +3 -1
- package/dist/esm/plugins/selection/gap-cursor/styles.js +1 -1
- package/dist/esm/plugins/selection/pm-plugins/gap-cursor-main.js +2 -2
- package/dist/esm/plugins/status/ui/statusPicker.js +2 -2
- package/dist/esm/plugins/table/index.js +13 -4
- package/dist/esm/plugins/table/nodeviews/TableComponent.js +6 -6
- package/dist/esm/plugins/table/nodeviews/table.js +6 -2
- package/dist/esm/plugins/table/pm-plugins/main.js +1 -4
- package/dist/esm/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +102 -0
- package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +2 -4
- package/dist/esm/plugins/table/pm-plugins/table-resizing/plugin.js +2 -5
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/misc.js +4 -8
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +2 -3
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +0 -3
- package/dist/esm/plugins/table/transforms/column-width.js +1 -2
- package/dist/esm/plugins/table/transforms/fix-tables.js +1 -3
- package/dist/esm/plugins/table/ui/FloatingContextualButton/styles.js +3 -1
- package/dist/esm/plugins/table/ui/FloatingContextualMenu/styles.js +2 -1
- package/dist/esm/plugins/table/ui/common-styles.js +4 -2
- package/dist/esm/plugins/table/ui/consts.js +15 -12
- package/dist/esm/plugins/table/ui/ui-styles.js +15 -10
- package/dist/esm/plugins/table/utils/decoration.js +3 -4
- package/dist/esm/plugins/table/utils/paste.js +9 -9
- package/dist/esm/plugins/text-formatting/pm-plugins/input-rule.js +1 -1
- package/dist/esm/plugins/type-ahead/index.js +4 -3
- package/dist/esm/plugins/type-ahead/pm-plugins/decorations.js +2 -1
- package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +4 -4
- package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +10 -9
- package/dist/esm/plugins/type-ahead/ui/TypeAheadPopup.js +71 -5
- package/dist/esm/plugins/unsupported-content/styles.js +1 -1
- package/dist/esm/ui/Addon/Dropdown/styles.js +2 -1
- package/dist/esm/ui/Addon/DropdownItem/styles.js +2 -1
- package/dist/esm/ui/Appearance/Chromeless.js +2 -1
- package/dist/esm/ui/Appearance/Comment/Comment.js +10 -3
- package/dist/esm/ui/Appearance/Comment/Toolbar.js +3 -2
- package/dist/esm/ui/Appearance/FullPage/FullPage.js +6 -2
- package/dist/esm/ui/Appearance/FullPage/FullPageContentArea.js +2 -1
- package/dist/esm/ui/Appearance/FullPage/FullPageToolbar.js +12 -11
- package/dist/esm/ui/Appearance/FullPage/MainToolbar.js +5 -3
- package/dist/esm/ui/ChromeCollapsed/styles.js +1 -1
- package/dist/esm/ui/ConfigPanel/ConfigPanel.js +21 -14
- package/dist/esm/ui/ConfigPanel/ConfigPanelFieldsLoader.js +2 -0
- package/dist/esm/ui/ConfigPanel/ErrorMessage/ErrorImage.js +3 -0
- package/dist/esm/ui/ConfigPanel/Fields/CheckboxGroup.js +2 -1
- package/dist/esm/ui/ConfigPanel/Fields/Expand.js +2 -1
- package/dist/esm/ui/ConfigPanel/Fields/Fieldset.js +2 -1
- package/dist/esm/ui/ConfigPanel/Fields/common/RequiredIndicator.js +2 -1
- package/dist/esm/ui/ConfigPanel/Header.js +3 -2
- package/dist/esm/ui/ConfigPanel/NestedForms/RemovableField.js +3 -2
- package/dist/esm/ui/ContentStyles/index.js +3 -2
- package/dist/esm/ui/ContextPanel/index.js +2 -1
- package/dist/esm/ui/DropdownMenu/index.js +5 -0
- package/dist/esm/ui/ElementBrowser/InsertMenu.js +5 -4
- package/dist/esm/ui/ElementBrowser/ModalElementBrowser.js +3 -2
- package/dist/esm/ui/ElementBrowser/components/CategoryList.js +3 -2
- package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +11 -5
- package/dist/esm/ui/ElementBrowser/components/ElementList/EmptyState.js +2 -1
- package/dist/esm/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +3 -0
- package/dist/esm/ui/ElementBrowser/components/ElementSearch.js +2 -1
- package/dist/esm/ui/ElementBrowser/constants.js +3 -1
- package/dist/esm/ui/FloatingToolbar/styles.js +3 -3
- package/dist/esm/ui/LinkSearch/LinkSearchListItem.js +4 -3
- package/dist/esm/ui/PanelTextInput/styles.js +4 -3
- package/dist/esm/ui/PluginSlot/index.js +7 -4
- package/dist/esm/ui/Toolbar/ToolbarInner.js +2 -1
- package/dist/esm/ui/Toolbar/ToolbarWithSizeDetector.js +4 -2
- package/dist/esm/ui/ToolbarFeedback/styles.js +4 -3
- package/dist/esm/ui/WithFlash/index.js +3 -2
- package/dist/esm/ui/styles.js +5 -4
- package/dist/esm/utils/document.js +59 -5
- package/dist/esm/utils/filter/privacy-filter.js +1 -1
- package/dist/esm/utils/step.js +12 -1
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/actions/index.d.ts +6 -0
- package/dist/types/labs/next/ContentComponents.d.ts +7 -1
- package/dist/types/nodeviews/getInlineNodeViewProducer.d.ts +1 -0
- package/dist/types/plugins/analytics/types/enums.d.ts +3 -0
- package/dist/types/plugins/analytics/types/general-events.d.ts +7 -1
- package/dist/types/plugins/base/pm-plugins/inline-cursor-target.d.ts +1 -1
- package/dist/types/plugins/code-block/actions.d.ts +2 -0
- package/dist/types/plugins/code-block/nodeviews/code-block.d.ts +2 -0
- package/dist/types/plugins/code-block/pm-plugins/actions.d.ts +1 -0
- package/dist/types/plugins/code-block/pm-plugins/main-state.d.ts +1 -0
- package/dist/types/plugins/extension/commands.d.ts +1 -1
- package/dist/types/plugins/extension/types.d.ts +1 -0
- package/dist/types/plugins/extension/ui/Extension/Extension/index.d.ts +6 -0
- package/dist/types/plugins/find-replace/styles.d.ts +0 -2
- package/dist/types/plugins/hyperlink/utils.d.ts +8 -0
- package/dist/types/plugins/media/commands/helpers.d.ts +2 -0
- package/dist/types/plugins/media/nodeviews/mediaNodeView/media.d.ts +1 -0
- package/dist/types/plugins/media/pm-plugins/main.d.ts +2 -1
- package/dist/types/plugins/media/pm-plugins/types.d.ts +2 -1
- package/dist/types/plugins/paste/handlers.d.ts +1 -0
- package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +1 -0
- package/dist/types/plugins/table/commands/misc.d.ts +0 -1
- package/dist/types/plugins/table/index.d.ts +0 -1
- package/dist/types/plugins/table/nodeviews/TableComponent.d.ts +1 -0
- package/dist/types/plugins/table/nodeviews/types.d.ts +0 -1
- package/dist/types/plugins/table/pm-plugins/main.d.ts +1 -1
- package/dist/types/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.d.ts +15 -0
- package/dist/types/plugins/table/pm-plugins/table-resizing/event-handlers.d.ts +1 -1
- package/dist/types/plugins/table/pm-plugins/table-resizing/plugin.d.ts +1 -1
- package/dist/types/plugins/table/pm-plugins/table-resizing/utils/misc.d.ts +1 -2
- package/dist/types/plugins/table/pm-plugins/table-resizing/utils/resize-state.d.ts +1 -1
- package/dist/types/plugins/table/pm-plugins/table-resizing/utils/scale-table.d.ts +0 -1
- package/dist/types/plugins/table/transforms/fix-tables.d.ts +0 -1
- package/dist/types/plugins/table/types.d.ts +0 -1
- package/dist/types/plugins/table/ui/consts.d.ts +9 -9
- package/dist/types/plugins/type-ahead/ui/TypeAheadList.d.ts +2 -0
- package/dist/types/plugins/type-ahead/ui/TypeAheadListItem.d.ts +4 -4
- package/dist/types/types/editor-appearance-component.d.ts +0 -1
- package/dist/types/types/editor-props.d.ts +4 -0
- package/dist/types/types/feature-flags.d.ts +8 -0
- package/dist/types/types/ui-components.d.ts +1 -0
- package/dist/types/ui/Appearance/FullPage/FullPage.d.ts +1 -0
- package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +1 -0
- package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +3 -2
- package/dist/types/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +3 -2
- package/dist/types/ui/PluginSlot/index.d.ts +1 -0
- package/dist/types/ui/Toolbar/toolbar-types.d.ts +1 -0
- package/dist/types/utils/document.d.ts +1 -0
- package/dist/types/utils/step.d.ts +1 -0
- package/docs/0-intro.tsx +12 -4
- package/package.json +23 -23
|
@@ -2,6 +2,7 @@ import { css } from '@emotion/react';
|
|
|
2
2
|
import { MentionSharedCssClassName } from '@atlaskit/editor-common/mention';
|
|
3
3
|
import { SelectionStyle, getSelectionStyles, akEditorSelectedBorderSize, akEditorDeleteBorder, akEditorDeleteBackgroundWithOpacity, akEditorSelectedNodeClassName } from '@atlaskit/editor-shared-styles';
|
|
4
4
|
import { N500, N30A } from '@atlaskit/theme/colors';
|
|
5
|
+
import { token } from '@atlaskit/tokens';
|
|
5
6
|
export const mentionsStyles = css`
|
|
6
7
|
.${MentionSharedCssClassName.MENTION_CONTAINER} {
|
|
7
8
|
&.${akEditorSelectedNodeClassName} [data-mention-id] > span {
|
|
@@ -9,7 +10,7 @@ export const mentionsStyles = css`
|
|
|
9
10
|
|
|
10
11
|
/* need to specify dark text colour because personal mentions
|
|
11
12
|
(in dark blue) have white text by default */
|
|
12
|
-
color: ${N500};
|
|
13
|
+
color: ${token('color.text.subtle', N500)};
|
|
13
14
|
}
|
|
14
15
|
}
|
|
15
16
|
|
|
@@ -18,11 +19,11 @@ export const mentionsStyles = css`
|
|
|
18
19
|
> span
|
|
19
20
|
> span {
|
|
20
21
|
box-shadow: 0 0 0 ${akEditorSelectedBorderSize}px ${akEditorDeleteBorder};
|
|
21
|
-
background-color: ${akEditorDeleteBackgroundWithOpacity};
|
|
22
|
+
background-color: ${token('color.background.danger', akEditorDeleteBackgroundWithOpacity)};
|
|
22
23
|
}
|
|
23
24
|
.${MentionSharedCssClassName.MENTION_CONTAINER} > span > span {
|
|
24
|
-
background-color: ${N30A};
|
|
25
|
-
color: ${N500};
|
|
25
|
+
background-color: ${token('color.background.neutral', N30A)};
|
|
26
|
+
color: ${token('color.text.subtle', N500)};
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
`;
|
|
@@ -4,6 +4,7 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
4
4
|
import { jsx } from '@emotion/react';
|
|
5
5
|
import AddIcon from '@atlaskit/icon/glyph/add';
|
|
6
6
|
import { N300 } from '@atlaskit/theme/colors';
|
|
7
|
+
import { token } from '@atlaskit/tokens';
|
|
7
8
|
import React, { useCallback, useEffect } from 'react';
|
|
8
9
|
import { FormattedMessage, injectIntl } from 'react-intl-next';
|
|
9
10
|
import { avatarStyle, capitalizedStyle, mentionItemStyle, nameSectionStyle, rowStyle, ROW_SIDE_PADDING, AVATAR_HEIGHT, mentionItemSelectedStyle } from './styles';
|
|
@@ -53,7 +54,7 @@ const InviteItem = ({
|
|
|
53
54
|
css: avatarStyle
|
|
54
55
|
}, jsx(AddIcon, {
|
|
55
56
|
label: intl.formatMessage(messages.mentionsAddLabel),
|
|
56
|
-
primaryColor: N300
|
|
57
|
+
primaryColor: token('color.icon.subtle', N300)
|
|
57
58
|
})), jsx("div", {
|
|
58
59
|
css: nameSectionStyle,
|
|
59
60
|
"data-testid": "name-section"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { css } from '@emotion/react';
|
|
2
2
|
import { N30, N300 } from '@atlaskit/theme/colors';
|
|
3
|
+
import { token } from '@atlaskit/tokens';
|
|
3
4
|
export const ROW_SIDE_PADDING = 14;
|
|
4
5
|
export const rowStyle = css`
|
|
5
6
|
align-items: center;
|
|
@@ -29,7 +30,7 @@ export const nameSectionStyle = css`
|
|
|
29
30
|
flex: 1;
|
|
30
31
|
min-width: 0;
|
|
31
32
|
margin-left: 14px;
|
|
32
|
-
color: ${N300};
|
|
33
|
+
color: ${token('color.text.subtle', N300)};
|
|
33
34
|
opacity: inherit;
|
|
34
35
|
`;
|
|
35
36
|
export const mentionItemStyle = css`
|
|
@@ -40,7 +41,7 @@ export const mentionItemStyle = css`
|
|
|
40
41
|
cursor: pointer;
|
|
41
42
|
`;
|
|
42
43
|
export const mentionItemSelectedStyle = css`
|
|
43
|
-
background-color: ${N30};
|
|
44
|
+
background-color: ${token('color.background.neutral.subtle.hovered', N30)};
|
|
44
45
|
`;
|
|
45
46
|
export const capitalizedStyle = css`
|
|
46
47
|
text-transform: capitalize;
|
|
@@ -77,7 +77,10 @@ class PanelNodeView {
|
|
|
77
77
|
|
|
78
78
|
ignoreMutation(mutation) {
|
|
79
79
|
// ignore mutation if it caused by the icon.
|
|
80
|
-
|
|
80
|
+
const isIcon = mutation.target === this.icon || mutation.target.parentNode === this.icon; // ignore mutation if it caused by the lazy load emoji inside icon.
|
|
81
|
+
|
|
82
|
+
const isInsideIcon = this.icon.contains(mutation.target);
|
|
83
|
+
return isIcon || isInsideIcon;
|
|
81
84
|
}
|
|
82
85
|
|
|
83
86
|
}
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import { keymap } from 'prosemirror-keymap';
|
|
2
|
-
import { setTextSelection } from 'prosemirror-utils';
|
|
3
|
-
|
|
2
|
+
import { setTextSelection, findParentNodeOfType } from 'prosemirror-utils';
|
|
3
|
+
import { isEmptyNode } from '../../../utils';
|
|
4
|
+
|
|
5
|
+
function findParentNode(selection, nodeType) {
|
|
6
|
+
const parentPosition = findParentNodeOfType(nodeType)(selection);
|
|
7
|
+
|
|
8
|
+
if (parentPosition) {
|
|
9
|
+
return parentPosition.node;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function isInsideAnEmptyNode(selection, nodeType, schema) {
|
|
16
|
+
const parentNode = findParentNode(selection, nodeType);
|
|
17
|
+
return parentNode && isEmptyNode(schema)(parentNode);
|
|
18
|
+
} // Somewhat broken and subverted: https://product-fabric.atlassian.net/browse/ED-6504
|
|
19
|
+
|
|
20
|
+
|
|
4
21
|
export function keymapPlugin() {
|
|
5
22
|
const deleteCurrentItem = ($from, tr) => {
|
|
6
23
|
return tr.delete($from.before($from.depth) - 1, $from.end($from.depth) + 1);
|
|
@@ -16,7 +33,8 @@ export function keymapPlugin() {
|
|
|
16
33
|
tr
|
|
17
34
|
} = state;
|
|
18
35
|
const {
|
|
19
|
-
panel
|
|
36
|
+
panel,
|
|
37
|
+
blockquote
|
|
20
38
|
} = nodes;
|
|
21
39
|
const {
|
|
22
40
|
$from,
|
|
@@ -38,7 +56,7 @@ export function keymapPlugin() {
|
|
|
38
56
|
const isPreviousNodeAPanel = previousNodeType === panel;
|
|
39
57
|
const isParentNodeAPanel = parentNodeType === panel; // Stops merging panels when deleting empty paragraph in between
|
|
40
58
|
|
|
41
|
-
if (isPreviousNodeAPanel && !isParentNodeAPanel) {
|
|
59
|
+
if (isPreviousNodeAPanel && !isParentNodeAPanel || isInsideAnEmptyNode(selection, panel, state.schema) || isInsideAnEmptyNode(selection, blockquote, state.schema)) {
|
|
42
60
|
const content = $from.node($from.depth).content;
|
|
43
61
|
const insertPos = previousPos.pos - 1;
|
|
44
62
|
deleteCurrentItem($from, tr).insert(insertPos, content);
|
|
@@ -690,6 +690,29 @@ export function handleRichText(slice) {
|
|
|
690
690
|
return true;
|
|
691
691
|
};
|
|
692
692
|
}
|
|
693
|
+
export function handlePasteIntoCaption(slice) {
|
|
694
|
+
return (state, dispatch) => {
|
|
695
|
+
const {
|
|
696
|
+
caption
|
|
697
|
+
} = state.schema.nodes;
|
|
698
|
+
const tr = state.tr;
|
|
699
|
+
|
|
700
|
+
if (hasParentNodeOfType(caption)(state.selection)) {
|
|
701
|
+
// We let PM replace the selection and it will insert as text where it can't place the node
|
|
702
|
+
// This is totally fine as caption is just a simple block that only contains inline contents
|
|
703
|
+
// And it is more in line with WYSIWYG expectations
|
|
704
|
+
tr.replaceSelection(slice).scrollIntoView();
|
|
705
|
+
|
|
706
|
+
if (dispatch) {
|
|
707
|
+
dispatch(tr);
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
return true;
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
return false;
|
|
714
|
+
};
|
|
715
|
+
}
|
|
693
716
|
export const handleSelectedTable = slice => (state, dispatch) => {
|
|
694
717
|
const tr = replaceSelectedTable(state, slice, INPUT_METHOD.CLIPBOARD);
|
|
695
718
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { linkifyMatch } from '@atlaskit/adf-schema';
|
|
2
|
-
import LinkifyIt from 'linkify-it';
|
|
2
|
+
import LinkifyIt from 'linkify-it';
|
|
3
|
+
import { findFilepaths, isLinkInMatches } from '../hyperlink/utils'; // modified version of the original Linkify plugin
|
|
3
4
|
// https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js
|
|
4
5
|
|
|
5
6
|
const arrayReplaceAt = (src, pos, newElements) => {
|
|
@@ -67,8 +68,13 @@ const linkify = state => {
|
|
|
67
68
|
const nodes = [];
|
|
68
69
|
let level = currentToken.level;
|
|
69
70
|
let lastPos = 0;
|
|
71
|
+
const filepaths = findFilepaths(text);
|
|
70
72
|
|
|
71
73
|
for (let ln = 0; ln < links.length; ln++) {
|
|
74
|
+
if (isLinkInMatches(links[ln].index, filepaths)) {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
|
|
72
78
|
const {
|
|
73
79
|
url
|
|
74
80
|
} = links[ln];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ACTION, INPUT_METHOD, EVENT_TYPE, ACTION_SUBJECT, ACTION_SUBJECT_ID, addAnalytics, PasteTypes, PasteContents, withAnalytics } from '../../analytics';
|
|
2
2
|
import { getPasteSource } from '../util';
|
|
3
|
-
import { handlePasteAsPlainText, handlePasteIntoTaskAndDecision, handleCodeBlock, handleMediaSingle, handlePastePreservingMarks, handleMarkdown, handleRichText, handleExpandPasteInTable, handleSelectedTable, handlePasteLinkOnSelectedText } from '../handlers';
|
|
3
|
+
import { handlePasteAsPlainText, handlePasteIntoTaskAndDecision, handleCodeBlock, handleMediaSingle, handlePastePreservingMarks, handleMarkdown, handleRichText, handleExpandPasteInTable, handleSelectedTable, handlePasteLinkOnSelectedText, handlePasteIntoCaption } from '../handlers';
|
|
4
4
|
import { pipe } from '../../../utils';
|
|
5
5
|
import { findParentNode } from 'prosemirror-utils';
|
|
6
6
|
import { mapSlice } from '../../../utils/slice';
|
|
@@ -222,6 +222,9 @@ export const handlePasteAsPlainTextWithAnalytics = (view, event, slice) => pipe(
|
|
|
222
222
|
export const handlePasteIntoTaskAndDecisionWithAnalytics = (view, event, slice, type) => pipe(handlePasteIntoTaskAndDecision, pasteCommandWithAnalytics(view, event, slice, {
|
|
223
223
|
type: type
|
|
224
224
|
}))(slice);
|
|
225
|
+
export const handlePasteIntoCaptionWithAnalytics = (view, event, slice, type) => pipe(handlePasteIntoCaption, pasteCommandWithAnalytics(view, event, slice, {
|
|
226
|
+
type: type
|
|
227
|
+
}))(slice);
|
|
225
228
|
export const handleCodeBlockWithAnalytics = (view, event, slice, text) => pipe(handleCodeBlock, pasteCommandWithAnalytics(view, event, slice, {
|
|
226
229
|
type: PasteTypes.plain
|
|
227
230
|
}))(text);
|
|
@@ -12,7 +12,7 @@ import { linkifyContent } from '../../hyperlink/utils';
|
|
|
12
12
|
import { transformSliceNestedExpandToExpand } from '../../expand/utils';
|
|
13
13
|
import { handleMacroAutoConvert, handleMention, handleParagraphBlockMarks } from '../handlers';
|
|
14
14
|
import { transformSliceToJoinAdjacentCodeBlocks, transformSingleLineCodeBlockToCodeMark } from '../../code-block/utils';
|
|
15
|
-
import { createPasteMeasurePayload, getContentNodeTypes, handlePasteAsPlainTextWithAnalytics, handlePasteIntoTaskAndDecisionWithAnalytics, handleCodeBlockWithAnalytics, handleMediaSingleWithAnalytics, handlePastePreservingMarksWithAnalytics, handleMarkdownWithAnalytics, handleRichTextWithAnalytics, handleExpandWithAnalytics, handleSelectedTableWithAnalytics, handlePasteLinkOnSelectedTextWithAnalytics, sendPasteAnalyticsEvent } from './analytics';
|
|
15
|
+
import { createPasteMeasurePayload, getContentNodeTypes, handlePasteAsPlainTextWithAnalytics, handlePasteIntoTaskAndDecisionWithAnalytics, handleCodeBlockWithAnalytics, handleMediaSingleWithAnalytics, handlePastePreservingMarksWithAnalytics, handleMarkdownWithAnalytics, handleRichTextWithAnalytics, handleExpandWithAnalytics, handleSelectedTableWithAnalytics, handlePasteLinkOnSelectedTextWithAnalytics, sendPasteAnalyticsEvent, handlePasteIntoCaptionWithAnalytics } from './analytics';
|
|
16
16
|
import { analyticsPluginKey, PasteTypes } from '../../analytics';
|
|
17
17
|
import { insideTable, measurements } from '../../../utils';
|
|
18
18
|
import { measureRender } from '@atlaskit/editor-common/utils';
|
|
@@ -26,6 +26,7 @@ import { pluginKey as betterTypePluginKey } from '../../base/pm-plugins/better-t
|
|
|
26
26
|
import { clipboardTextSerializer } from './clipboard-text-serializer';
|
|
27
27
|
import { htmlHasIncompleteTable, tryRebuildCompleteTableHtml, isPastedFromTinyMCEConfluence } from '../util/tinyMCE';
|
|
28
28
|
import { handlePaste as handlePasteTable } from '@atlaskit/editor-tables/utils';
|
|
29
|
+
import { extractSliceFromStep } from '../../../utils/step';
|
|
29
30
|
export const stateKey = new PluginKey('pastePlugin');
|
|
30
31
|
export { md } from '../md';
|
|
31
32
|
export function createPlugin(schema, dispatchAnalyticsEvent, plainTextPasteLinkification, cardOptions, sanitizePrivateContent, providerFactory) {
|
|
@@ -157,8 +158,25 @@ export function createPlugin(schema, dispatchAnalyticsEvent, plainTextPasteLinki
|
|
|
157
158
|
const {
|
|
158
159
|
placeholder
|
|
159
160
|
} = state.schema.nodes;
|
|
161
|
+
const isPastingTextInsidePlaceholderText = ((_state$doc$resolve$no = state.doc.resolve(state.selection.$anchor.pos).nodeAfter) === null || _state$doc$resolve$no === void 0 ? void 0 : _state$doc$resolve$no.type) === placeholder; // don't add closeHistory call if we're pasting a table, as some tables may involve additional
|
|
162
|
+
// appendedTransactions to repair them (if they're partial or incomplete) and we don't want
|
|
163
|
+
// to split those repairing transactions in prosemirror-history when they're being added to the
|
|
164
|
+
// "done" stack
|
|
165
|
+
|
|
166
|
+
const isPastingTable = tr.steps.some(step => {
|
|
167
|
+
var _slice$content;
|
|
168
|
+
|
|
169
|
+
const slice = extractSliceFromStep(step);
|
|
170
|
+
let tableExists = false;
|
|
171
|
+
slice === null || slice === void 0 ? void 0 : (_slice$content = slice.content) === null || _slice$content === void 0 ? void 0 : _slice$content.forEach(node => {
|
|
172
|
+
if (node.type === state.schema.nodes.table) {
|
|
173
|
+
tableExists = true;
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
return tableExists;
|
|
177
|
+
});
|
|
160
178
|
|
|
161
|
-
if (
|
|
179
|
+
if (!isPastingTextInsidePlaceholderText && !isPastingTable) {
|
|
162
180
|
tr.setMeta(betterTypePluginKey, true);
|
|
163
181
|
}
|
|
164
182
|
|
|
@@ -281,6 +299,13 @@ export function createPlugin(schema, dispatchAnalyticsEvent, plainTextPasteLinki
|
|
|
281
299
|
|
|
282
300
|
if (!insideTable(state)) {
|
|
283
301
|
slice = transformSliceNestedExpandToExpand(slice, state.schema);
|
|
302
|
+
} // Create a custom handler to avoid handling with handleRichText method
|
|
303
|
+
// As SafeInsert is used inside handleRichText which caused some bad UX like this:
|
|
304
|
+
// https://product-fabric.atlassian.net/browse/MEX-1520
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
if (handlePasteIntoCaptionWithAnalytics(view, event, slice, PasteTypes.richText)(state, dispatch)) {
|
|
308
|
+
return true;
|
|
284
309
|
}
|
|
285
310
|
|
|
286
311
|
return handleRichTextWithAnalytics(view, event, slice)(state, dispatch);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
2
|
+
import { browser } from '@atlaskit/editor-common/utils';
|
|
2
3
|
import { PluginKey } from 'prosemirror-state';
|
|
3
4
|
import { DecorationSet, Decoration } from 'prosemirror-view';
|
|
4
5
|
import { isInEmptyLine, isEmptyDocument, bracketTyped } from '../../utils/document';
|
|
@@ -26,7 +27,17 @@ export function createPlaceholderDecoration(editorState, placeholderText, pos =
|
|
|
26
27
|
placeholderDecoration.className = placeHolderClass;
|
|
27
28
|
const placeholderNode = document.createElement('span');
|
|
28
29
|
placeholderNode.textContent = placeholderText;
|
|
29
|
-
placeholderDecoration.appendChild(placeholderNode);
|
|
30
|
+
placeholderDecoration.appendChild(placeholderNode); // ME-2289 Tapping on backspace in empty editor hides and displays the keyboard
|
|
31
|
+
// Add a editable buff node as the cursor moving forward is inevitable
|
|
32
|
+
// when backspace in GBoard composition
|
|
33
|
+
|
|
34
|
+
if (browser.android && browser.chrome) {
|
|
35
|
+
const buffNode = document.createElement('span');
|
|
36
|
+
buffNode.setAttribute('contenteditable', 'true');
|
|
37
|
+
buffNode.textContent = ' ';
|
|
38
|
+
placeholderDecoration.appendChild(buffNode);
|
|
39
|
+
}
|
|
40
|
+
|
|
30
41
|
return DecorationSet.create(editorState.doc, [Decoration.widget(pos, placeholderDecoration, {
|
|
31
42
|
side: -1,
|
|
32
43
|
key: 'placeholder'
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { css } from '@emotion/react';
|
|
2
2
|
import { N200 } from '@atlaskit/theme/colors';
|
|
3
|
+
import { token } from '@atlaskit/tokens';
|
|
3
4
|
export const placeHolderClassName = 'placeholder-decoration';
|
|
4
5
|
export const placeholderStyles = css`
|
|
5
6
|
.ProseMirror .${placeHolderClassName} {
|
|
6
7
|
position: relative;
|
|
7
|
-
color: ${N200};
|
|
8
|
+
color: ${token('color.text.subtlest', N200)};
|
|
8
9
|
width: 100%;
|
|
9
10
|
|
|
10
11
|
pointer-events: none;
|
|
@@ -14,6 +15,7 @@ export const placeholderStyles = css`
|
|
|
14
15
|
> span {
|
|
15
16
|
position: absolute;
|
|
16
17
|
pointer-events: none;
|
|
18
|
+
outline: none;
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
&.align-end > span {
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { css } from '@emotion/react';
|
|
2
2
|
import { N300 } from '@atlaskit/theme/colors';
|
|
3
3
|
import { SelectionStyle, getSelectionStyles, akEditorSelectedNodeClassName } from '@atlaskit/editor-shared-styles';
|
|
4
|
+
import { token } from '@atlaskit/tokens';
|
|
4
5
|
export const placeholderTextStyles = css`
|
|
5
6
|
.ProseMirror span[data-placeholder] {
|
|
6
|
-
color: ${N300};
|
|
7
|
+
color: ${token('color.text.subtlest', N300)};
|
|
7
8
|
display: inline;
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
.ProseMirror span.pm-placeholder {
|
|
11
12
|
display: inline;
|
|
12
|
-
color: ${N300};
|
|
13
|
+
color: ${token('color.text.subtlest', N300)};
|
|
13
14
|
}
|
|
14
15
|
.ProseMirror span.pm-placeholder__text {
|
|
15
16
|
display: inline;
|
|
16
|
-
color: ${N300};
|
|
17
|
+
color: ${token('color.text.subtlest', N300)};
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
.ProseMirror span.pm-placeholder.${akEditorSelectedNodeClassName} {
|
|
@@ -21,7 +22,7 @@ export const placeholderTextStyles = css`
|
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
.ProseMirror span.pm-placeholder__text[data-placeholder]::after {
|
|
24
|
-
color: ${N300};
|
|
25
|
+
color: ${token('color.text.subtlest', N300)};
|
|
25
26
|
cursor: text;
|
|
26
27
|
content: attr(data-placeholder);
|
|
27
28
|
display: inline;
|
|
@@ -28,7 +28,7 @@ export function find(query, items) {
|
|
|
28
28
|
return items.slice(0).sort((a, b) => (a.priority || Number.POSITIVE_INFINITY) - (b.priority || Number.POSITIVE_INFINITY));
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
return fuse.search(query);
|
|
31
|
+
return fuse.search(query).map(result => result.item);
|
|
32
32
|
}
|
|
33
33
|
export const searchQuickInsertItems = (quickInsertState, options) => (query, category) => {
|
|
34
34
|
const defaultItems = options && options.disableDefaultItems ? [] : quickInsertState.lazyDefaultItems();
|
|
@@ -56,15 +56,15 @@ export const gapCursorStyles = css`
|
|
|
56
56
|
float: right;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
/* fix vertical
|
|
60
|
-
&:first-
|
|
61
|
-
&:first-
|
|
62
|
-
&:first-
|
|
63
|
-
&:first-
|
|
64
|
-
&:first-
|
|
65
|
-
&:first-
|
|
66
|
-
&:first-
|
|
67
|
-
&:first-
|
|
59
|
+
/* fix vertical alignment of gap cursor */
|
|
60
|
+
&:first-of-type + ul,
|
|
61
|
+
&:first-of-type + span + ul,
|
|
62
|
+
&:first-of-type + ol,
|
|
63
|
+
&:first-of-type + span + ol,
|
|
64
|
+
&:first-of-type + pre,
|
|
65
|
+
&:first-of-type + span + pre,
|
|
66
|
+
&:first-of-type + blockquote,
|
|
67
|
+
&:first-of-type + span + blockquote {
|
|
68
68
|
margin-top: 0;
|
|
69
69
|
}
|
|
70
70
|
}
|
|
@@ -32,8 +32,8 @@ const plugin = new SafePlugin({
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
return {
|
|
35
|
-
update(view
|
|
36
|
-
const pluginState = gapCursorPluginKey.getState(state);
|
|
35
|
+
update(view) {
|
|
36
|
+
const pluginState = gapCursorPluginKey.getState(view.state);
|
|
37
37
|
/**
|
|
38
38
|
* Starting with prosemirror-view 1.19.4, cursor wrapper that previousely was hiding cursor doesn't exist:
|
|
39
39
|
* https://github.com/ProseMirror/prosemirror-view/commit/4a56bc7b7e61e96ef879d1dae1014ede0fc09e43
|
|
@@ -9,10 +9,10 @@ import { akEditorFloatingDialogZIndex } from '@atlaskit/editor-shared-styles';
|
|
|
9
9
|
import { StatusPicker as AkStatusPicker } from '@atlaskit/status/picker';
|
|
10
10
|
import { borderRadius, gridSize } from '@atlaskit/theme/constants';
|
|
11
11
|
import { N0 } from '@atlaskit/theme/colors';
|
|
12
|
-
import { dropShadow } from '../../../ui/styles';
|
|
13
12
|
import withOuterListeners from '../../../ui/with-outer-listeners';
|
|
14
13
|
import { DEFAULT_STATUS } from '../actions';
|
|
15
14
|
import { analyticsState, createStatusAnalyticsAndFire } from '../analytics';
|
|
15
|
+
import { token } from '@atlaskit/tokens';
|
|
16
16
|
const PopupWithListeners = withOuterListeners(Popup);
|
|
17
17
|
export let InputMethod;
|
|
18
18
|
|
|
@@ -23,10 +23,10 @@ export let InputMethod;
|
|
|
23
23
|
})(InputMethod || (InputMethod = {}));
|
|
24
24
|
|
|
25
25
|
const pickerContainer = css`
|
|
26
|
-
background: ${N0};
|
|
26
|
+
background: ${token('elevation.surface.overlay', N0)};
|
|
27
27
|
padding: ${gridSize()}px 0;
|
|
28
28
|
border-radius: ${borderRadius()}px;
|
|
29
|
-
${
|
|
29
|
+
box-shadow: ${token('elevation.shadow.overlay', '0 0 1px rgba(9, 30, 66, 0.31), 0 4px 8px -2px rgba(9, 30, 66, 0.25)')};
|
|
30
30
|
input {
|
|
31
31
|
text-transform: uppercase;
|
|
32
32
|
}
|
|
@@ -11,6 +11,7 @@ import { IconTable } from '../quick-insert/assets';
|
|
|
11
11
|
import { pluginConfig } from './create-plugin-config';
|
|
12
12
|
import { createPlugin as createTableLocalIdPlugin } from './pm-plugins/table-local-id';
|
|
13
13
|
import { createPlugin as createTableSafariDelayedDomSelectionSyncingWorkaroundPlugin } from './pm-plugins/safari-delayed-dom-selection-syncing-workaround';
|
|
14
|
+
import { createPlugin as createTableSafariDeleteCompositionTextIssueWorkaroundPlugin } from './pm-plugins/safari-delete-composition-text-issue-workaround';
|
|
14
15
|
import { createPlugin as createDecorationsPlugin } from './pm-plugins/decorations/plugin';
|
|
15
16
|
import { keymapPlugin } from './pm-plugins/keymap';
|
|
16
17
|
import { tableSelectionKeymapPlugin } from './pm-plugins/table-selection-keymap';
|
|
@@ -56,13 +57,12 @@ const tablesPlugin = options => ({
|
|
|
56
57
|
eventDispatcher
|
|
57
58
|
}) => {
|
|
58
59
|
const {
|
|
59
|
-
dynamicSizingEnabled,
|
|
60
60
|
fullWidthEnabled,
|
|
61
61
|
wasFullWidthEnabled,
|
|
62
62
|
breakoutEnabled,
|
|
63
63
|
tableOptions
|
|
64
64
|
} = options || {};
|
|
65
|
-
return createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig(tableOptions), breakoutEnabled
|
|
65
|
+
return createPlugin(dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig(tableOptions), breakoutEnabled, fullWidthEnabled, wasFullWidthEnabled);
|
|
66
66
|
}
|
|
67
67
|
}, {
|
|
68
68
|
name: 'tablePMColResizing',
|
|
@@ -70,7 +70,6 @@ const tablesPlugin = options => ({
|
|
|
70
70
|
dispatch
|
|
71
71
|
}) => {
|
|
72
72
|
const {
|
|
73
|
-
dynamicSizingEnabled,
|
|
74
73
|
fullWidthEnabled,
|
|
75
74
|
tableOptions
|
|
76
75
|
} = options || {};
|
|
@@ -78,7 +77,6 @@ const tablesPlugin = options => ({
|
|
|
78
77
|
allowColumnResizing
|
|
79
78
|
} = pluginConfig(tableOptions);
|
|
80
79
|
return allowColumnResizing ? createFlexiResizingPlugin(dispatch, {
|
|
81
|
-
dynamicTextSizing: dynamicSizingEnabled && !fullWidthEnabled,
|
|
82
80
|
lastColumnResizable: !fullWidthEnabled
|
|
83
81
|
}) : undefined;
|
|
84
82
|
}
|
|
@@ -120,6 +118,17 @@ const tablesPlugin = options => ({
|
|
|
120
118
|
return createTableSafariDelayedDomSelectionSyncingWorkaroundPlugin();
|
|
121
119
|
}
|
|
122
120
|
});
|
|
121
|
+
} // Workaround for table element breaking issue caused by composition event with an inputType of deleteCompositionText.
|
|
122
|
+
// https://github.com/ProseMirror/prosemirror/issues/934
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
if (browser.safari) {
|
|
126
|
+
plugins.push({
|
|
127
|
+
name: 'tableSafariDeleteCompositionTextIssueWorkaround',
|
|
128
|
+
plugin: () => {
|
|
129
|
+
return createTableSafariDeleteCompositionTextIssueWorkaroundPlugin();
|
|
130
|
+
}
|
|
131
|
+
});
|
|
123
132
|
}
|
|
124
133
|
|
|
125
134
|
return plugins;
|
|
@@ -207,7 +207,6 @@ class TableComponent extends React.Component {
|
|
|
207
207
|
view,
|
|
208
208
|
getNode,
|
|
209
209
|
getPos,
|
|
210
|
-
options,
|
|
211
210
|
containerWidth
|
|
212
211
|
} = this.props;
|
|
213
212
|
const node = getNode();
|
|
@@ -218,7 +217,6 @@ class TableComponent extends React.Component {
|
|
|
218
217
|
}
|
|
219
218
|
|
|
220
219
|
autoSizeTable(view, node, this.table, pos, {
|
|
221
|
-
dynamicTextSizing: options && options.dynamicTextSizing || false,
|
|
222
220
|
containerWidth: containerWidth.width
|
|
223
221
|
});
|
|
224
222
|
}
|
|
@@ -315,10 +313,8 @@ class TableComponent extends React.Component {
|
|
|
315
313
|
this.node = _getNode();
|
|
316
314
|
this.containerWidth = _containerWidth; // store table size using previous full-width mode so can detect if it has changed
|
|
317
315
|
|
|
318
|
-
const dynamicTextSizing = _options ? _options.dynamicTextSizing : false;
|
|
319
316
|
const isFullWidthModeEnabled = _options ? _options.wasFullWidthModeEnabled : false;
|
|
320
317
|
this.layoutSize = this.tableNodeLayoutSize(this.node, _containerWidth.width, {
|
|
321
|
-
dynamicTextSizing,
|
|
322
318
|
isFullWidthModeEnabled
|
|
323
319
|
}); // Disable inline table editing and resizing controls in Firefox
|
|
324
320
|
// https://github.com/ProseMirror/prosemirror/issues/432
|
|
@@ -399,7 +395,9 @@ class TableComponent extends React.Component {
|
|
|
399
395
|
componentDidUpdate(prevProps) {
|
|
400
396
|
const {
|
|
401
397
|
view,
|
|
402
|
-
getNode
|
|
398
|
+
getNode,
|
|
399
|
+
isMediaFullscreen,
|
|
400
|
+
allowColumnResizing
|
|
403
401
|
} = this.props;
|
|
404
402
|
const {
|
|
405
403
|
tableOverflowShadowsOptimization
|
|
@@ -426,7 +424,9 @@ class TableComponent extends React.Component {
|
|
|
426
424
|
if (currentTable.attrs.__autoSize) {
|
|
427
425
|
// Wait for next tick to handle auto sizing, gives the browser time to do layout calc etc.
|
|
428
426
|
this.handleAutoSizeDebounced();
|
|
429
|
-
}
|
|
427
|
+
} // re-drawing will cause media component get unmounted that will exit fullscreen mode if media is in fullscreen mode
|
|
428
|
+
// see https://product-fabric.atlassian.net/browse/MEX-1290
|
|
429
|
+
else if (allowColumnResizing && this.table && !isMediaFullscreen) {
|
|
430
430
|
// If col widths (e.g. via collab) or number of columns (e.g. delete a column) have changed,
|
|
431
431
|
// re-draw colgroup.
|
|
432
432
|
const previousTable = this.node;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { DOMSerializer } from 'prosemirror-model';
|
|
4
|
+
import { stateKey as mediaPluginKey } from '../../../plugins/media/pm-plugins/plugin-key';
|
|
4
5
|
import ReactNodeView from '../../../nodeviews/ReactNodeView';
|
|
5
6
|
import WithPluginState from '../../../ui/WithPluginState';
|
|
6
7
|
import { pluginKey as widthPluginKey } from '../../width';
|
|
@@ -74,14 +75,16 @@ export default class TableView extends ReactNodeView {
|
|
|
74
75
|
plugins: {
|
|
75
76
|
containerWidth: widthPluginKey,
|
|
76
77
|
pluginState: pluginKey,
|
|
77
|
-
tableResizingPluginState: tableResizingPluginKey
|
|
78
|
+
tableResizingPluginState: tableResizingPluginKey,
|
|
79
|
+
mediaState: mediaPluginKey
|
|
78
80
|
},
|
|
79
81
|
editorView: props.view,
|
|
80
82
|
render: pluginStates => {
|
|
81
83
|
const {
|
|
82
84
|
tableResizingPluginState,
|
|
83
85
|
pluginState,
|
|
84
|
-
containerWidth
|
|
86
|
+
containerWidth,
|
|
87
|
+
mediaState
|
|
85
88
|
} = pluginStates;
|
|
86
89
|
const tableActive = props.getPos() === pluginState.tablePos;
|
|
87
90
|
return /*#__PURE__*/React.createElement(TableComponent, {
|
|
@@ -89,6 +92,7 @@ export default class TableView extends ReactNodeView {
|
|
|
89
92
|
allowColumnResizing: props.allowColumnResizing,
|
|
90
93
|
eventDispatcher: props.eventDispatcher,
|
|
91
94
|
getPos: props.getPos,
|
|
95
|
+
isMediaFullscreen: mediaState === null || mediaState === void 0 ? void 0 : mediaState.isFullscreen,
|
|
92
96
|
options: props.options,
|
|
93
97
|
allowControls: pluginState.pluginConfig.allowControls,
|
|
94
98
|
isHeaderRowEnabled: pluginState.isHeaderRowEnabled,
|
|
@@ -22,14 +22,12 @@ import { transformSliceToRemoveOpenBodiedExtension } from '../../extension/actio
|
|
|
22
22
|
import { insideTable } from '../../../utils';
|
|
23
23
|
import { isHeaderRowRequired } from '../utils/paste';
|
|
24
24
|
let isBreakoutEnabled;
|
|
25
|
-
let isDynamicTextSizingEnabled;
|
|
26
25
|
let isFullWidthModeEnabled;
|
|
27
26
|
let wasFullWidthModeEnabled;
|
|
28
|
-
export const createPlugin = (dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig,
|
|
27
|
+
export const createPlugin = (dispatchAnalyticsEvent, dispatch, portalProviderAPI, eventDispatcher, pluginConfig, breakoutEnabled, fullWidthModeEnabled, previousFullWidthModeEnabled) => {
|
|
29
28
|
var _window;
|
|
30
29
|
|
|
31
30
|
isBreakoutEnabled = breakoutEnabled;
|
|
32
|
-
isDynamicTextSizingEnabled = dynamicTextSizing;
|
|
33
31
|
isFullWidthModeEnabled = fullWidthModeEnabled;
|
|
34
32
|
wasFullWidthModeEnabled = previousFullWidthModeEnabled;
|
|
35
33
|
const state = createPluginState(dispatch, {
|
|
@@ -256,7 +254,6 @@ export const createPlugin = (dispatchAnalyticsEvent, dispatch, portalProviderAPI
|
|
|
256
254
|
...tableCellNodeview,
|
|
257
255
|
table: (node, view, getPos) => createTableView(node, view, getPos, portalProviderAPI, eventDispatcher, {
|
|
258
256
|
isBreakoutEnabled,
|
|
259
|
-
dynamicTextSizing: isDynamicTextSizingEnabled,
|
|
260
257
|
isFullWidthModeEnabled,
|
|
261
258
|
wasFullWidthModeEnabled
|
|
262
259
|
})
|