@atlaskit/editor-core 162.0.1 → 163.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 +42 -0
- package/dist/cjs/create-editor/ErrorBoundary.js +1 -1
- package/dist/cjs/create-editor/ReactEditorView.js +2 -2
- package/dist/cjs/editor.js +3 -7
- package/dist/cjs/keymaps/index.js +14 -9
- package/dist/cjs/labs/next/full-page.js +34 -46
- package/dist/cjs/labs/next/presets/cxhtml.js +0 -1
- package/dist/cjs/nodeviews/ReactNodeView.js +16 -41
- package/dist/cjs/nodeviews/getInlineNodeViewProducer.js +227 -0
- package/dist/cjs/nodeviews/getInlineNodeViewProducer.styles.js +21 -0
- package/dist/cjs/nodeviews/getPerformanceOptions.js +64 -0
- package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/index.js +16 -6
- package/dist/cjs/plugins/alignment/ui/ToolbarAlignment/styles.js +10 -17
- package/dist/cjs/plugins/analytics/types/enums.js +2 -0
- package/dist/cjs/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +9 -16
- package/dist/cjs/plugins/base/index.js +26 -7
- package/dist/cjs/plugins/base/pm-plugins/inline-cursor-target.js +141 -76
- package/dist/cjs/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +5 -8
- package/dist/cjs/plugins/block-type/commands/block-type.js +21 -9
- package/dist/cjs/plugins/breakout/ui/LayoutButton.js +9 -9
- package/dist/cjs/plugins/card/nodeviews/genericCard.js +4 -4
- package/dist/cjs/plugins/card/pm-plugins/doc.js +53 -6
- package/dist/cjs/plugins/card/pm-plugins/main.js +16 -1
- package/dist/cjs/plugins/card/styles.js +2 -2
- package/dist/cjs/plugins/card/ui/LinkToolbarIconDropdown.js +6 -6
- package/dist/cjs/plugins/card/ui/ResizableEmbedCard.js +7 -8
- package/dist/cjs/plugins/code-block/styles.js +2 -2
- package/dist/cjs/plugins/collab-edit/styles.js +2 -2
- package/dist/cjs/plugins/collab-edit/ui/avatars.js +6 -1
- package/dist/cjs/plugins/collab-edit/ui/colored-avatar-item.js +4 -5
- package/dist/cjs/plugins/collab-edit/ui/invite-to-edit.js +15 -4
- package/dist/cjs/plugins/collab-edit/ui/styles.js +10 -14
- package/dist/cjs/plugins/date/nodeviews/date.js +30 -75
- package/dist/cjs/plugins/date/pm-plugins/main.js +8 -11
- package/dist/cjs/plugins/date/styles.js +2 -2
- package/dist/cjs/plugins/date/ui/DatePicker/date-picker-input.js +7 -6
- package/dist/cjs/plugins/date/ui/DatePicker/index.js +8 -7
- package/dist/cjs/plugins/emoji/styles.js +3 -3
- package/dist/cjs/plugins/expand/ui/ExpandIconButton.js +13 -16
- package/dist/cjs/plugins/expand/ui/styles.js +26 -12
- package/dist/cjs/plugins/extension/ui/Extension/Extension/index.js +16 -9
- package/dist/cjs/plugins/extension/ui/Extension/Extension/styles.js +9 -6
- package/dist/cjs/plugins/extension/ui/Extension/InlineExtension/index.js +7 -3
- package/dist/cjs/plugins/extension/ui/Extension/InlineExtension/styles.js +7 -4
- package/dist/cjs/plugins/extension/ui/Extension/Lozenge.js +14 -13
- package/dist/cjs/plugins/extension/ui/Extension/styles.js +20 -26
- package/dist/cjs/plugins/extension/ui/SaveIndicator/SaveIndicator.js +14 -17
- package/dist/cjs/plugins/extension/ui/styles.js +2 -2
- package/dist/cjs/plugins/fake-text-cursor/styles.js +2 -2
- package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +1 -1
- package/dist/cjs/plugins/find-replace/styles.js +2 -2
- package/dist/cjs/plugins/floating-toolbar/ui/DropdownMenu.js +6 -7
- package/dist/cjs/plugins/floating-toolbar/ui/styles.js +7 -1
- package/dist/cjs/plugins/grid/styles.js +2 -2
- package/dist/cjs/plugins/help-dialog/ui/index.js +134 -40
- package/dist/cjs/plugins/help-dialog/ui/styles.js +26 -49
- package/dist/cjs/plugins/hyperlink/styles.js +6 -16
- package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +23 -20
- package/dist/cjs/plugins/jira-issue/nodeviews/jira-issue.js +13 -10
- package/dist/cjs/plugins/list/commands/index.js +8 -0
- package/dist/cjs/plugins/list/pm-plugins/main.js +6 -0
- package/dist/cjs/plugins/list/styles.js +2 -2
- package/dist/cjs/plugins/list/utils/node.js +4 -3
- package/dist/cjs/plugins/media/index.js +9 -40
- package/dist/cjs/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +28 -23
- package/dist/cjs/plugins/media/pm-plugins/main.js +1 -8
- package/dist/cjs/plugins/media/pm-plugins/media-editor-plugin-factory.js +2 -67
- package/dist/cjs/plugins/media/styles.js +1 -1
- package/dist/cjs/plugins/media/toolbar/index.js +0 -13
- package/dist/cjs/plugins/media/ui/MediaLinkingToolbar.js +1 -1
- package/dist/cjs/plugins/media/ui/ResizableMediaSingle/index.js +12 -8
- package/dist/cjs/plugins/media/ui/ResizableMediaSingle/styled.js +7 -6
- package/dist/cjs/plugins/media/utils/media-single.js +8 -4
- package/dist/cjs/plugins/mentions/styles.js +2 -2
- package/dist/cjs/plugins/panel/styles.js +5 -2
- package/dist/cjs/plugins/placeholder/styles.js +2 -2
- package/dist/cjs/plugins/placeholder-text/styles.js +2 -2
- package/dist/cjs/plugins/rule/pm-plugins/input-rule.js +2 -1
- package/dist/cjs/plugins/rule/styles.js +5 -2
- package/dist/cjs/plugins/selection/gap-cursor/styles.js +4 -4
- package/dist/cjs/plugins/selection/pm-plugins/selection-main.js +13 -30
- package/dist/cjs/plugins/status/index.js +9 -12
- package/dist/cjs/plugins/status/nodeviews/status.js +43 -126
- package/dist/cjs/plugins/status/plugin.js +14 -6
- package/dist/cjs/plugins/status/styles.js +2 -2
- package/dist/cjs/plugins/table/index.js +1 -1
- package/dist/cjs/plugins/table/ui/FloatingContextualButton/index.js +10 -16
- package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +2 -2
- package/dist/cjs/plugins/table/ui/FloatingContextualMenu/index.js +7 -12
- package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +2 -2
- package/dist/cjs/plugins/table/ui/common-styles.js +1 -1
- package/dist/cjs/plugins/tasks-and-decisions/styles.js +2 -2
- package/dist/cjs/plugins/type-ahead/constants.js +3 -1
- package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +8 -0
- package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +15 -56
- package/dist/cjs/plugins/type-ahead/ui/TypeAheadListItem.js +48 -3
- package/dist/cjs/plugins/type-ahead/ui/TypeAheadPopup.js +4 -1
- package/dist/cjs/plugins/unsupported-content/styles.js +2 -2
- package/dist/cjs/profiler/render-count.js +1 -3
- package/dist/cjs/ui/Appearance/Comment/Toolbar.js +1 -1
- package/dist/cjs/ui/Appearance/FullPage/FullPage.js +0 -1
- package/dist/cjs/ui/Appearance/FullPage/FullPageContentArea.js +0 -1
- package/dist/cjs/ui/Appearance/FullPage/messages.js +2 -2
- package/dist/cjs/ui/ConfigPanel/ErrorMessage/ErrorImage.js +18 -16
- package/dist/cjs/ui/ConfigPanel/Fields/Boolean.js +16 -14
- package/dist/cjs/ui/ConfigPanel/Fields/TabGroup.js +13 -10
- package/dist/cjs/ui/ConfigPanel/Fields/UserSelect.js +15 -4
- package/dist/cjs/ui/ConfigPanel/Header.js +30 -30
- package/dist/cjs/ui/ContentStyles/index.js +13 -20
- package/dist/cjs/ui/ElementBrowser/InsertMenu.js +5 -6
- package/dist/cjs/ui/ElementBrowser/ModalElementBrowser.js +30 -23
- package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +51 -47
- package/dist/cjs/ui/ElementBrowser/components/ElementList/EmptyState.js +17 -14
- package/dist/cjs/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +18 -18
- package/dist/cjs/ui/ElementBrowser/components/StatelessElementBrowser.js +55 -68
- package/dist/cjs/ui/ElementBrowser/hooks/use-container-width.js +10 -11
- package/dist/cjs/ui/FloatingToolbar/styles.js +1 -1
- package/dist/cjs/ui/LinkSearch/LinkSearchList.js +18 -22
- package/dist/cjs/ui/PortalProvider/index.js +3 -3
- package/dist/cjs/ui/Resizer/styled.js +7 -5
- package/dist/cjs/ui/Toolbar/ToolbarInner.js +5 -3
- package/dist/cjs/ui/WithFlash/index.js +9 -17
- package/dist/cjs/utils/insert.js +25 -2
- package/dist/cjs/utils/performance/components/RenderTracking.js +52 -0
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/create-editor/ErrorBoundary.js +2 -2
- package/dist/es2019/create-editor/ReactEditorView.js +1 -1
- package/dist/es2019/editor.js +3 -5
- package/dist/es2019/keymaps/index.js +10 -4
- package/dist/es2019/labs/next/full-page.js +44 -43
- package/dist/es2019/labs/next/presets/cxhtml.js +0 -1
- package/dist/es2019/nodeviews/ReactNodeView.js +13 -35
- package/dist/es2019/nodeviews/getInlineNodeViewProducer.js +216 -0
- package/dist/es2019/nodeviews/getInlineNodeViewProducer.styles.js +15 -0
- package/dist/es2019/nodeviews/getPerformanceOptions.js +47 -0
- package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/index.js +18 -7
- package/dist/es2019/plugins/alignment/ui/ToolbarAlignment/styles.js +5 -5
- package/dist/es2019/plugins/analytics/types/enums.js +2 -0
- package/dist/es2019/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +12 -7
- package/dist/es2019/plugins/base/index.js +24 -5
- package/dist/es2019/plugins/base/pm-plugins/inline-cursor-target.js +135 -77
- package/dist/es2019/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +5 -4
- package/dist/es2019/plugins/block-type/commands/block-type.js +18 -11
- package/dist/es2019/plugins/breakout/ui/LayoutButton.js +10 -6
- package/dist/es2019/plugins/card/nodeviews/genericCard.js +5 -5
- package/dist/es2019/plugins/card/pm-plugins/doc.js +44 -4
- package/dist/es2019/plugins/card/pm-plugins/main.js +17 -1
- package/dist/es2019/plugins/card/styles.js +1 -1
- package/dist/es2019/plugins/card/ui/LinkToolbarIconDropdown.js +6 -6
- package/dist/es2019/plugins/card/ui/ResizableEmbedCard.js +8 -7
- package/dist/es2019/plugins/code-block/styles.js +4 -0
- package/dist/es2019/plugins/collab-edit/styles.js +1 -1
- package/dist/es2019/plugins/collab-edit/ui/avatars.js +6 -2
- package/dist/es2019/plugins/collab-edit/ui/colored-avatar-item.js +5 -4
- package/dist/es2019/plugins/collab-edit/ui/invite-to-edit.js +9 -5
- package/dist/es2019/plugins/collab-edit/ui/styles.js +5 -7
- package/dist/es2019/plugins/date/nodeviews/date.js +37 -48
- package/dist/es2019/plugins/date/pm-plugins/main.js +8 -10
- package/dist/es2019/plugins/date/styles.js +1 -1
- package/dist/es2019/plugins/date/ui/DatePicker/date-picker-input.js +8 -4
- package/dist/es2019/plugins/date/ui/DatePicker/index.js +9 -5
- package/dist/es2019/plugins/emoji/styles.js +1 -2
- package/dist/es2019/plugins/expand/ui/ExpandIconButton.js +13 -14
- package/dist/es2019/plugins/expand/ui/styles.js +32 -22
- package/dist/es2019/plugins/extension/ui/Extension/Extension/index.js +17 -11
- package/dist/es2019/plugins/extension/ui/Extension/Extension/styles.js +7 -6
- package/dist/es2019/plugins/extension/ui/Extension/InlineExtension/index.js +9 -5
- package/dist/es2019/plugins/extension/ui/Extension/InlineExtension/styles.js +5 -3
- package/dist/es2019/plugins/extension/ui/Extension/Lozenge.js +14 -7
- package/dist/es2019/plugins/extension/ui/Extension/styles.js +14 -8
- package/dist/es2019/plugins/extension/ui/SaveIndicator/SaveIndicator.js +15 -9
- package/dist/es2019/plugins/extension/ui/styles.js +2 -1
- package/dist/es2019/plugins/fake-text-cursor/styles.js +1 -1
- package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +1 -1
- package/dist/es2019/plugins/find-replace/styles.js +1 -1
- package/dist/es2019/plugins/floating-toolbar/ui/DropdownMenu.js +12 -8
- package/dist/es2019/plugins/floating-toolbar/ui/styles.js +7 -1
- package/dist/es2019/plugins/grid/styles.js +1 -1
- package/dist/es2019/plugins/help-dialog/ui/index.js +132 -37
- package/dist/es2019/plugins/help-dialog/ui/styles.js +13 -13
- package/dist/es2019/plugins/hyperlink/styles.js +1 -5
- package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +25 -20
- package/dist/es2019/plugins/jira-issue/nodeviews/jira-issue.js +14 -7
- package/dist/es2019/plugins/list/commands/index.js +7 -0
- package/dist/es2019/plugins/list/pm-plugins/main.js +6 -0
- package/dist/es2019/plugins/list/styles.js +1 -1
- package/dist/es2019/plugins/list/utils/node.js +4 -3
- package/dist/es2019/plugins/media/index.js +1 -28
- package/dist/es2019/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +30 -16
- package/dist/es2019/plugins/media/pm-plugins/main.js +1 -7
- package/dist/es2019/plugins/media/pm-plugins/media-editor-plugin-factory.js +1 -49
- package/dist/es2019/plugins/media/styles.js +1 -2
- package/dist/es2019/plugins/media/toolbar/index.js +0 -12
- package/dist/es2019/plugins/media/ui/MediaLinkingToolbar.js +0 -1
- package/dist/es2019/plugins/media/ui/ResizableMediaSingle/index.js +14 -9
- package/dist/es2019/plugins/media/ui/ResizableMediaSingle/styled.js +4 -5
- package/dist/es2019/plugins/media/utils/media-single.js +9 -5
- package/dist/es2019/plugins/mentions/styles.js +1 -1
- package/dist/es2019/plugins/panel/styles.js +3 -3
- package/dist/es2019/plugins/placeholder/styles.js +1 -1
- package/dist/es2019/plugins/placeholder-text/styles.js +1 -1
- package/dist/es2019/plugins/rule/pm-plugins/input-rule.js +4 -1
- package/dist/es2019/plugins/rule/styles.js +3 -3
- package/dist/es2019/plugins/selection/gap-cursor/styles.js +2 -2
- package/dist/es2019/plugins/selection/pm-plugins/selection-main.js +4 -20
- package/dist/es2019/plugins/status/index.js +1 -5
- package/dist/es2019/plugins/status/nodeviews/status.js +45 -82
- package/dist/es2019/plugins/status/plugin.js +13 -6
- package/dist/es2019/plugins/status/styles.js +1 -7
- package/dist/es2019/plugins/table/index.js +1 -1
- package/dist/es2019/plugins/table/ui/FloatingContextualButton/index.js +11 -10
- package/dist/es2019/plugins/table/ui/FloatingContextualButton/styles.js +1 -1
- package/dist/es2019/plugins/table/ui/FloatingContextualMenu/index.js +7 -8
- package/dist/es2019/plugins/table/ui/FloatingContextualMenu/styles.js +1 -1
- package/dist/es2019/plugins/table/ui/common-styles.js +4 -0
- package/dist/es2019/plugins/tasks-and-decisions/styles.js +1 -1
- package/dist/es2019/plugins/type-ahead/constants.js +1 -0
- package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +11 -1
- package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +19 -51
- package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +41 -3
- package/dist/es2019/plugins/type-ahead/ui/TypeAheadPopup.js +3 -1
- package/dist/es2019/plugins/unsupported-content/styles.js +1 -1
- package/dist/es2019/profiler/render-count.js +1 -1
- package/dist/es2019/ui/Appearance/Comment/Toolbar.js +2 -0
- package/dist/es2019/ui/Appearance/FullPage/FullPage.js +0 -1
- package/dist/es2019/ui/Appearance/FullPage/FullPageContentArea.js +0 -1
- package/dist/es2019/ui/Appearance/FullPage/messages.js +1 -1
- package/dist/es2019/ui/ConfigPanel/ErrorMessage/ErrorImage.js +19 -16
- package/dist/es2019/ui/ConfigPanel/Fields/Boolean.js +18 -13
- package/dist/es2019/ui/ConfigPanel/Fields/TabGroup.js +14 -8
- package/dist/es2019/ui/ConfigPanel/Fields/UserSelect.js +12 -3
- package/dist/es2019/ui/ConfigPanel/Header.js +30 -19
- package/dist/es2019/ui/ContentStyles/index.js +33 -38
- package/dist/es2019/ui/ElementBrowser/InsertMenu.js +5 -6
- package/dist/es2019/ui/ElementBrowser/ModalElementBrowser.js +49 -38
- package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +54 -33
- package/dist/es2019/ui/ElementBrowser/components/ElementList/EmptyState.js +18 -10
- package/dist/es2019/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +19 -17
- package/dist/es2019/ui/ElementBrowser/components/StatelessElementBrowser.js +132 -119
- package/dist/es2019/ui/ElementBrowser/hooks/use-container-width.js +10 -9
- package/dist/es2019/ui/FloatingToolbar/styles.js +2 -1
- package/dist/es2019/ui/LinkSearch/LinkSearchList.js +14 -9
- package/dist/es2019/ui/PortalProvider/index.js +3 -3
- package/dist/es2019/ui/Resizer/styled.js +3 -3
- package/dist/es2019/ui/Toolbar/ToolbarInner.js +6 -3
- package/dist/es2019/ui/WithFlash/index.js +15 -6
- package/dist/es2019/utils/insert.js +20 -0
- package/dist/es2019/utils/performance/components/RenderTracking.js +37 -0
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/create-editor/ErrorBoundary.js +2 -2
- package/dist/esm/create-editor/ReactEditorView.js +1 -1
- package/dist/esm/editor.js +3 -5
- package/dist/esm/keymaps/index.js +7 -4
- package/dist/esm/labs/next/full-page.js +38 -36
- package/dist/esm/labs/next/presets/cxhtml.js +0 -1
- package/dist/esm/nodeviews/ReactNodeView.js +17 -38
- package/dist/esm/nodeviews/getInlineNodeViewProducer.js +212 -0
- package/dist/esm/nodeviews/getInlineNodeViewProducer.styles.js +9 -0
- package/dist/esm/nodeviews/getPerformanceOptions.js +45 -0
- package/dist/esm/plugins/alignment/ui/ToolbarAlignment/index.js +17 -7
- package/dist/esm/plugins/alignment/ui/ToolbarAlignment/styles.js +5 -5
- package/dist/esm/plugins/analytics/types/enums.js +2 -0
- package/dist/esm/plugins/avatar-group/ui/AvatarGroupPluginWrapper.js +9 -9
- package/dist/esm/plugins/base/index.js +26 -7
- package/dist/esm/plugins/base/pm-plugins/inline-cursor-target.js +134 -69
- package/dist/esm/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.js +5 -4
- package/dist/esm/plugins/block-type/commands/block-type.js +19 -9
- package/dist/esm/plugins/breakout/ui/LayoutButton.js +9 -6
- package/dist/esm/plugins/card/nodeviews/genericCard.js +5 -5
- package/dist/esm/plugins/card/pm-plugins/doc.js +47 -4
- package/dist/esm/plugins/card/pm-plugins/main.js +15 -1
- package/dist/esm/plugins/card/styles.js +1 -1
- package/dist/esm/plugins/card/ui/LinkToolbarIconDropdown.js +6 -6
- package/dist/esm/plugins/card/ui/ResizableEmbedCard.js +8 -9
- package/dist/esm/plugins/code-block/styles.js +2 -2
- package/dist/esm/plugins/collab-edit/styles.js +1 -1
- package/dist/esm/plugins/collab-edit/ui/avatars.js +6 -2
- package/dist/esm/plugins/collab-edit/ui/colored-avatar-item.js +5 -4
- package/dist/esm/plugins/collab-edit/ui/invite-to-edit.js +9 -5
- package/dist/esm/plugins/collab-edit/ui/styles.js +6 -7
- package/dist/esm/plugins/date/nodeviews/date.js +30 -71
- package/dist/esm/plugins/date/pm-plugins/main.js +8 -9
- package/dist/esm/plugins/date/styles.js +1 -1
- package/dist/esm/plugins/date/ui/DatePicker/date-picker-input.js +7 -4
- package/dist/esm/plugins/date/ui/DatePicker/index.js +8 -5
- package/dist/esm/plugins/emoji/styles.js +2 -2
- package/dist/esm/plugins/expand/ui/ExpandIconButton.js +13 -15
- package/dist/esm/plugins/expand/ui/styles.js +24 -12
- package/dist/esm/plugins/extension/ui/Extension/Extension/index.js +18 -11
- package/dist/esm/plugins/extension/ui/Extension/Extension/styles.js +5 -5
- package/dist/esm/plugins/extension/ui/Extension/InlineExtension/index.js +9 -5
- package/dist/esm/plugins/extension/ui/Extension/InlineExtension/styles.js +5 -3
- package/dist/esm/plugins/extension/ui/Extension/Lozenge.js +13 -7
- package/dist/esm/plugins/extension/ui/Extension/styles.js +13 -11
- package/dist/esm/plugins/extension/ui/SaveIndicator/SaveIndicator.js +15 -9
- package/dist/esm/plugins/extension/ui/styles.js +2 -2
- package/dist/esm/plugins/fake-text-cursor/styles.js +1 -1
- package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +1 -1
- package/dist/esm/plugins/find-replace/styles.js +1 -1
- package/dist/esm/plugins/floating-toolbar/ui/DropdownMenu.js +6 -7
- package/dist/esm/plugins/floating-toolbar/ui/styles.js +7 -1
- package/dist/esm/plugins/grid/styles.js +1 -1
- package/dist/esm/plugins/help-dialog/ui/index.js +135 -41
- package/dist/esm/plugins/help-dialog/ui/styles.js +13 -13
- package/dist/esm/plugins/hyperlink/styles.js +3 -5
- package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +24 -20
- package/dist/esm/plugins/jira-issue/nodeviews/jira-issue.js +14 -7
- package/dist/esm/plugins/list/commands/index.js +7 -0
- package/dist/esm/plugins/list/pm-plugins/main.js +6 -0
- package/dist/esm/plugins/list/styles.js +1 -1
- package/dist/esm/plugins/list/utils/node.js +4 -3
- package/dist/esm/plugins/media/index.js +9 -37
- package/dist/esm/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.js +29 -15
- package/dist/esm/plugins/media/pm-plugins/main.js +1 -9
- package/dist/esm/plugins/media/pm-plugins/media-editor-plugin-factory.js +1 -58
- package/dist/esm/plugins/media/styles.js +1 -1
- package/dist/esm/plugins/media/toolbar/index.js +0 -12
- package/dist/esm/plugins/media/ui/MediaLinkingToolbar.js +1 -1
- package/dist/esm/plugins/media/ui/ResizableMediaSingle/index.js +13 -9
- package/dist/esm/plugins/media/ui/ResizableMediaSingle/styled.js +4 -3
- package/dist/esm/plugins/media/utils/media-single.js +9 -5
- package/dist/esm/plugins/mentions/styles.js +1 -1
- package/dist/esm/plugins/panel/styles.js +4 -2
- package/dist/esm/plugins/placeholder/styles.js +1 -1
- package/dist/esm/plugins/placeholder-text/styles.js +1 -1
- package/dist/esm/plugins/rule/pm-plugins/input-rule.js +2 -1
- package/dist/esm/plugins/rule/styles.js +4 -2
- package/dist/esm/plugins/selection/gap-cursor/styles.js +3 -3
- package/dist/esm/plugins/selection/pm-plugins/selection-main.js +5 -21
- package/dist/esm/plugins/status/index.js +9 -12
- package/dist/esm/plugins/status/nodeviews/status.js +37 -115
- package/dist/esm/plugins/status/plugin.js +13 -6
- package/dist/esm/plugins/status/styles.js +2 -2
- package/dist/esm/plugins/table/index.js +1 -1
- package/dist/esm/plugins/table/ui/FloatingContextualButton/index.js +10 -11
- package/dist/esm/plugins/table/ui/FloatingContextualButton/styles.js +1 -1
- package/dist/esm/plugins/table/ui/FloatingContextualMenu/index.js +7 -10
- package/dist/esm/plugins/table/ui/FloatingContextualMenu/styles.js +1 -1
- package/dist/esm/plugins/table/ui/common-styles.js +1 -1
- package/dist/esm/plugins/tasks-and-decisions/styles.js +1 -1
- package/dist/esm/plugins/type-ahead/constants.js +1 -0
- package/dist/esm/plugins/type-ahead/ui/InputQuery.js +9 -1
- package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +18 -56
- package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +44 -3
- package/dist/esm/plugins/type-ahead/ui/TypeAheadPopup.js +3 -1
- package/dist/esm/plugins/unsupported-content/styles.js +1 -1
- package/dist/esm/profiler/render-count.js +1 -1
- package/dist/esm/ui/Appearance/Comment/Toolbar.js +1 -1
- package/dist/esm/ui/Appearance/FullPage/FullPage.js +0 -1
- package/dist/esm/ui/Appearance/FullPage/FullPageContentArea.js +0 -1
- package/dist/esm/ui/Appearance/FullPage/messages.js +1 -1
- package/dist/esm/ui/ConfigPanel/ErrorMessage/ErrorImage.js +19 -16
- package/dist/esm/ui/ConfigPanel/Fields/Boolean.js +17 -13
- package/dist/esm/ui/ConfigPanel/Fields/TabGroup.js +13 -8
- package/dist/esm/ui/ConfigPanel/Fields/UserSelect.js +14 -3
- package/dist/esm/ui/ConfigPanel/Header.js +30 -19
- package/dist/esm/ui/ContentStyles/index.js +12 -17
- package/dist/esm/ui/ElementBrowser/InsertMenu.js +5 -6
- package/dist/esm/ui/ElementBrowser/ModalElementBrowser.js +29 -18
- package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +50 -35
- package/dist/esm/ui/ElementBrowser/components/ElementList/EmptyState.js +18 -10
- package/dist/esm/ui/ElementBrowser/components/ElementList/NotFoundIllustration.js +19 -17
- package/dist/esm/ui/ElementBrowser/components/StatelessElementBrowser.js +53 -52
- package/dist/esm/ui/ElementBrowser/hooks/use-container-width.js +9 -8
- package/dist/esm/ui/FloatingToolbar/styles.js +1 -1
- package/dist/esm/ui/LinkSearch/LinkSearchList.js +14 -9
- package/dist/esm/ui/PortalProvider/index.js +3 -3
- package/dist/esm/ui/Resizer/styled.js +4 -2
- package/dist/esm/ui/Toolbar/ToolbarInner.js +6 -3
- package/dist/esm/ui/WithFlash/index.js +8 -8
- package/dist/esm/utils/insert.js +20 -0
- package/dist/esm/utils/performance/components/RenderTracking.js +39 -0
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/editor.d.ts +1 -1
- package/dist/types/keymaps/index.d.ts +3 -2
- package/dist/types/labs/next/full-page.d.ts +1 -1
- package/dist/types/labs/next/mobile.d.ts +1 -1
- package/dist/types/nodeviews/ReactNodeView.d.ts +0 -5
- package/dist/types/nodeviews/getInlineNodeViewProducer.d.ts +23 -0
- package/dist/types/nodeviews/getInlineNodeViewProducer.styles.d.ts +1 -0
- package/dist/types/nodeviews/getPerformanceOptions.d.ts +19 -0
- package/dist/types/plugins/alignment/ui/ToolbarAlignment/index.d.ts +3 -1
- package/dist/types/plugins/alignment/ui/ToolbarAlignment/styles.d.ts +4 -5
- package/dist/types/plugins/analytics/types/enums.d.ts +2 -0
- package/dist/types/plugins/analytics/types/events.d.ts +11 -3
- package/dist/types/plugins/analytics/types/general-events.d.ts +1 -1
- package/dist/types/plugins/analytics/types/utils.d.ts +4 -0
- package/dist/types/plugins/avatar-group/ui/AvatarGroupPluginWrapper.d.ts +2 -2
- package/dist/types/plugins/base/pm-plugins/inline-cursor-target.d.ts +12 -6
- package/dist/types/plugins/before-primaryToolbar/ui/BeforePrimaryToolbarWrapper.d.ts +3 -3
- package/dist/types/plugins/breakout/ui/LayoutButton.d.ts +1 -0
- package/dist/types/plugins/card/pm-plugins/doc.d.ts +1 -0
- package/dist/types/plugins/card/pm-plugins/main.d.ts +1 -1
- package/dist/types/plugins/card/styles.d.ts +1 -1
- package/dist/types/plugins/card/ui/LinkToolbarButtonGroup.d.ts +1 -1
- package/dist/types/plugins/collab-edit/styles.d.ts +1 -1
- package/dist/types/plugins/collab-edit/ui/avatars.d.ts +1 -0
- package/dist/types/plugins/collab-edit/ui/colored-avatar-item.d.ts +3 -2
- package/dist/types/plugins/collab-edit/ui/invite-to-edit.d.ts +1 -0
- package/dist/types/plugins/collab-edit/ui/styles.d.ts +3 -8
- package/dist/types/plugins/date/nodeviews/date.d.ts +3 -15
- package/dist/types/plugins/date/styles.d.ts +1 -1
- package/dist/types/plugins/date/ui/DatePicker/date-picker-input.d.ts +1 -0
- package/dist/types/plugins/date/ui/DatePicker/index.d.ts +1 -0
- package/dist/types/plugins/emoji/styles.d.ts +2 -2
- package/dist/types/plugins/expand/ui/ExpandIconButton.d.ts +5 -3
- package/dist/types/plugins/expand/ui/styles.d.ts +2 -1
- package/dist/types/plugins/extension/ui/Extension/Extension/index.d.ts +1 -0
- package/dist/types/plugins/extension/ui/Extension/Extension/styles.d.ts +3 -8
- package/dist/types/plugins/extension/ui/Extension/InlineExtension/index.d.ts +3 -1
- package/dist/types/plugins/extension/ui/Extension/InlineExtension/styles.d.ts +2 -2
- package/dist/types/plugins/extension/ui/Extension/Lozenge.d.ts +3 -1
- package/dist/types/plugins/extension/ui/Extension/styles.d.ts +6 -6
- package/dist/types/plugins/extension/ui/SaveIndicator/SaveIndicator.d.ts +1 -0
- package/dist/types/plugins/extension/ui/styles.d.ts +1 -1
- package/dist/types/plugins/fake-text-cursor/styles.d.ts +1 -1
- package/dist/types/plugins/find-replace/styles.d.ts +1 -1
- package/dist/types/plugins/floating-toolbar/ui/styles.d.ts +6 -1
- package/dist/types/plugins/grid/styles.d.ts +1 -1
- package/dist/types/plugins/help-dialog/ui/index.d.ts +3 -1
- package/dist/types/plugins/help-dialog/ui/styles.d.ts +12 -13
- package/dist/types/plugins/hyperlink/styles.d.ts +2 -4
- package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.d.ts +4 -2
- package/dist/types/plugins/jira-issue/nodeviews/jira-issue.d.ts +3 -2
- package/dist/types/plugins/list/styles.d.ts +1 -1
- package/dist/types/plugins/list/utils/node.d.ts +0 -1
- package/dist/types/plugins/media/pm-plugins/alt-text/ui/AltTextEdit.d.ts +3 -1
- package/dist/types/plugins/media/pm-plugins/main.d.ts +0 -1
- package/dist/types/plugins/media/pm-plugins/media-editor-plugin-factory.d.ts +1 -3
- package/dist/types/plugins/media/types.d.ts +0 -19
- package/dist/types/plugins/media/ui/ResizableMediaSingle/index.d.ts +3 -1
- package/dist/types/plugins/media/ui/ResizableMediaSingle/styled.d.ts +2 -2
- package/dist/types/plugins/mentions/styles.d.ts +1 -1
- package/dist/types/plugins/panel/styles.d.ts +2 -1
- package/dist/types/plugins/placeholder/styles.d.ts +1 -1
- package/dist/types/plugins/placeholder-text/styles.d.ts +1 -1
- package/dist/types/plugins/rule/styles.d.ts +2 -1
- package/dist/types/plugins/selection/gap-cursor/styles.d.ts +1 -1
- package/dist/types/plugins/status/nodeviews/status.d.ts +6 -13
- package/dist/types/plugins/status/plugin.d.ts +2 -3
- package/dist/types/plugins/status/styles.d.ts +1 -1
- package/dist/types/plugins/status/ui/statusPicker.d.ts +1 -1
- package/dist/types/plugins/table/ui/FloatingContextualButton/index.d.ts +4 -2
- package/dist/types/plugins/table/ui/FloatingContextualButton/styles.d.ts +1 -1
- package/dist/types/plugins/table/ui/FloatingContextualMenu/index.d.ts +3 -2
- package/dist/types/plugins/table/ui/FloatingContextualMenu/styles.d.ts +1 -1
- package/dist/types/plugins/tasks-and-decisions/styles.d.ts +1 -1
- package/dist/types/plugins/type-ahead/constants.d.ts +1 -0
- package/dist/types/plugins/type-ahead/ui/TypeAheadList.d.ts +1 -0
- package/dist/types/plugins/type-ahead/ui/TypeAheadListItem.d.ts +26 -0
- package/dist/types/plugins/unsupported-content/styles.d.ts +1 -1
- package/dist/types/types/editor-appearance-component.d.ts +0 -1
- package/dist/types/ui/Appearance/FullPage/FullPageContentArea.d.ts +0 -1
- package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +3 -9
- package/dist/types/ui/ColorPickerButton/index.d.ts +1 -1
- package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +1 -1
- package/dist/types/ui/ConfigPanel/ErrorMessage/ErrorImage.d.ts +1 -0
- package/dist/types/ui/ConfigPanel/Fields/Boolean.d.ts +2 -2
- package/dist/types/ui/ConfigPanel/Fields/TabGroup.d.ts +1 -0
- package/dist/types/ui/ConfigPanel/FormErrorBoundary.d.ts +1 -1
- package/dist/types/ui/ConfigPanel/Header.d.ts +3 -3
- package/dist/types/ui/ContentStyles/index.d.ts +1 -4
- package/dist/types/ui/ElementBrowser/ModalElementBrowser.d.ts +1 -0
- package/dist/types/ui/ElementBrowser/components/ElementList/ElementList.d.ts +1 -0
- package/dist/types/ui/ElementBrowser/components/ElementSearch.d.ts +1 -1
- package/dist/types/ui/ElementBrowser/components/StatelessElementBrowser.d.ts +2 -1
- package/dist/types/ui/ElementBrowser/hooks/use-container-width.d.ts +1 -0
- package/dist/types/ui/LinkSearch/LinkSearchList.d.ts +4 -3
- package/dist/types/ui/Resizer/styled.d.ts +1 -2
- package/dist/types/ui/Toolbar/ToolbarInner.d.ts +3 -1
- package/dist/types/ui/ToolbarButton/index.d.ts +3 -3
- package/dist/types/ui/ToolbarButton/styles.d.ts +2 -2
- package/dist/types/ui/WithFlash/index.d.ts +3 -1
- package/dist/types/utils/insert.d.ts +2 -1
- package/dist/types/utils/performance/components/RenderTracking.d.ts +13 -0
- package/package.json +27 -29
- package/dist/cjs/plugins/media/commands/media-editor.js +0 -80
- package/dist/cjs/plugins/media/pm-plugins/media-editor.js +0 -106
- package/dist/cjs/plugins/media/toolbar/annotation.js +0 -244
- package/dist/cjs/plugins/media/ui/MediaEditor.js +0 -88
- package/dist/cjs/utils/compare.js +0 -136
- package/dist/cjs/utils/react-hooks/use-component-renderer-tracking/index.js +0 -83
- package/dist/es2019/plugins/media/commands/media-editor.js +0 -46
- package/dist/es2019/plugins/media/pm-plugins/media-editor.js +0 -43
- package/dist/es2019/plugins/media/toolbar/annotation.js +0 -136
- package/dist/es2019/plugins/media/ui/MediaEditor.js +0 -51
- package/dist/es2019/utils/compare.js +0 -99
- package/dist/es2019/utils/react-hooks/use-component-renderer-tracking/index.js +0 -66
- package/dist/esm/plugins/media/commands/media-editor.js +0 -59
- package/dist/esm/plugins/media/pm-plugins/media-editor.js +0 -90
- package/dist/esm/plugins/media/toolbar/annotation.js +0 -218
- package/dist/esm/plugins/media/ui/MediaEditor.js +0 -76
- package/dist/esm/utils/compare.js +0 -115
- package/dist/esm/utils/react-hooks/use-component-renderer-tracking/index.js +0 -68
- package/dist/types/plugins/media/commands/media-editor.d.ts +0 -7
- package/dist/types/plugins/media/pm-plugins/media-editor.d.ts +0 -3
- package/dist/types/plugins/media/toolbar/annotation.d.ts +0 -24
- package/dist/types/plugins/media/ui/MediaEditor.d.ts +0 -14
- package/dist/types/utils/compare.d.ts +0 -32
- package/dist/types/utils/react-hooks/use-component-renderer-tracking/index.d.ts +0 -30
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
|
|
3
|
+
/** @jsx jsx */
|
|
2
4
|
import React from 'react';
|
|
5
|
+
import { jsx } from '@emotion/react';
|
|
3
6
|
import { injectIntl } from 'react-intl-next';
|
|
4
7
|
import ExpandIcon from '@atlaskit/icon/glyph/chevron-down';
|
|
5
8
|
import ToolbarButton from '../../../../ui/ToolbarButton';
|
|
6
9
|
import Dropdown from '../../../../ui/Dropdown';
|
|
7
10
|
import Alignment from '../../../../ui/Alignment';
|
|
8
|
-
import {
|
|
11
|
+
import { expandIconWrapper, separator, triggerWrapper, wrapper } from './styles';
|
|
9
12
|
import { IconMap } from './icon-map';
|
|
10
13
|
import { messages } from './messages';
|
|
11
14
|
export class AlignmentToolbar extends React.Component {
|
|
@@ -58,7 +61,9 @@ export class AlignmentToolbar extends React.Component {
|
|
|
58
61
|
intl
|
|
59
62
|
} = this.props;
|
|
60
63
|
const title = intl.formatMessage(messages.alignment);
|
|
61
|
-
return
|
|
64
|
+
return jsx("span", {
|
|
65
|
+
css: wrapper
|
|
66
|
+
}, jsx(Dropdown, {
|
|
62
67
|
mountTo: popupsMountPoint,
|
|
63
68
|
boundariesElement: popupsBoundariesElement,
|
|
64
69
|
scrollableElement: popupsScrollableElement,
|
|
@@ -67,7 +72,7 @@ export class AlignmentToolbar extends React.Component {
|
|
|
67
72
|
handleEscapeKeydown: this.hide,
|
|
68
73
|
fitWidth: 112,
|
|
69
74
|
fitHeight: 80,
|
|
70
|
-
trigger:
|
|
75
|
+
trigger: jsx(ToolbarButton, {
|
|
71
76
|
spacing: isReducedSpacing ? 'none' : 'default',
|
|
72
77
|
disabled: disabled,
|
|
73
78
|
selected: isOpen,
|
|
@@ -77,16 +82,22 @@ export class AlignmentToolbar extends React.Component {
|
|
|
77
82
|
"aria-expanded": isOpen,
|
|
78
83
|
"aria-haspopup": true,
|
|
79
84
|
onClick: this.toggleOpen,
|
|
80
|
-
iconBefore:
|
|
85
|
+
iconBefore: jsx("div", {
|
|
86
|
+
css: triggerWrapper
|
|
87
|
+
}, jsx(IconMap, {
|
|
81
88
|
alignment: pluginState.align
|
|
82
|
-
}),
|
|
89
|
+
}), jsx("span", {
|
|
90
|
+
css: expandIconWrapper
|
|
91
|
+
}, jsx(ExpandIcon, {
|
|
83
92
|
label: ""
|
|
84
93
|
})))
|
|
85
94
|
})
|
|
86
|
-
},
|
|
95
|
+
}, jsx(Alignment, {
|
|
87
96
|
onClick: align => this.changeAlignment(align),
|
|
88
97
|
selectedAlignment: pluginState.align
|
|
89
|
-
})),
|
|
98
|
+
})), jsx("span", {
|
|
99
|
+
css: separator
|
|
100
|
+
}));
|
|
90
101
|
}
|
|
91
102
|
|
|
92
103
|
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { css } from '@emotion/react';
|
|
2
2
|
import { N30 } from '@atlaskit/theme/colors';
|
|
3
|
-
export const
|
|
3
|
+
export const triggerWrapper = css`
|
|
4
4
|
display: flex;
|
|
5
5
|
`;
|
|
6
|
-
export const
|
|
6
|
+
export const separator = css`
|
|
7
7
|
background: ${N30};
|
|
8
8
|
width: 1px;
|
|
9
9
|
height: 24px;
|
|
10
10
|
display: inline-block;
|
|
11
11
|
margin: 0 8px;
|
|
12
12
|
`;
|
|
13
|
-
export const
|
|
13
|
+
export const wrapper = css`
|
|
14
14
|
display: flex;
|
|
15
15
|
align-items: center;
|
|
16
16
|
div {
|
|
17
17
|
display: flex;
|
|
18
18
|
}
|
|
19
19
|
`;
|
|
20
|
-
export const
|
|
20
|
+
export const expandIconWrapper = css`
|
|
21
21
|
margin-left: -8px;
|
|
22
22
|
`;
|
|
@@ -43,6 +43,7 @@ export let ACTION;
|
|
|
43
43
|
ACTION["RE_RENDERED"] = "reRendered";
|
|
44
44
|
ACTION["ENTERED"] = "entered";
|
|
45
45
|
ACTION["ERRORED"] = "errored";
|
|
46
|
+
ACTION["EXPOSED"] = "exposed";
|
|
46
47
|
ACTION["FAILED_TO_UNMOUNT"] = "failedToUnmount";
|
|
47
48
|
ACTION["FIND_NEXT_PERFORMED"] = "findNextPerformed";
|
|
48
49
|
ACTION["FIND_PERFORMED"] = "findPerformed";
|
|
@@ -158,6 +159,7 @@ export let ACTION_SUBJECT;
|
|
|
158
159
|
ACTION_SUBJECT["EMBEDS"] = "embeds";
|
|
159
160
|
ACTION_SUBJECT["EXPAND"] = "expand";
|
|
160
161
|
ACTION_SUBJECT["EXTENSION"] = "extension";
|
|
162
|
+
ACTION_SUBJECT["FEATURE"] = "feature";
|
|
161
163
|
ACTION_SUBJECT["FEEDBACK_DIALOG"] = "feedbackDialog";
|
|
162
164
|
ACTION_SUBJECT["FIND_REPLACE_DIALOG"] = "findReplaceDialog";
|
|
163
165
|
ACTION_SUBJECT["FLOATING_CONTEXTUAL_BUTTON"] = "floatingContextualButton";
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import { css, jsx } from '@emotion/react';
|
|
2
4
|
import AvatarsWithPluginState from '../../collab-edit/ui/avatars-with-plugin-state';
|
|
3
|
-
import styled from 'styled-components';
|
|
4
5
|
import { useIntl } from 'react-intl-next';
|
|
5
6
|
import { avatarGroupMessages } from '../messages';
|
|
6
7
|
import { ACTION, ACTION_SUBJECT, EVENT_TYPE, ACTION_SUBJECT_ID } from '../../analytics';
|
|
7
|
-
const
|
|
8
|
+
const toolbarButtonWrapper = css`
|
|
8
9
|
display: flex;
|
|
9
|
-
flex-grow: ${props => props.takeFullWidth ? 1 : 0};
|
|
10
10
|
justify-content: flex-end;
|
|
11
|
+
flex-grow: 0;
|
|
11
12
|
align-items: center;
|
|
12
13
|
& > div {
|
|
13
14
|
margin-right: 0;
|
|
14
15
|
}
|
|
15
16
|
`;
|
|
17
|
+
const toolbarButtonWrapperFullWidth = css`
|
|
18
|
+
${toolbarButtonWrapper}
|
|
19
|
+
flex-grow: 1;
|
|
20
|
+
`;
|
|
16
21
|
|
|
17
22
|
const AvatarGroupPluginWrapper = props => {
|
|
18
23
|
const {
|
|
@@ -31,11 +36,11 @@ const AvatarGroupPluginWrapper = props => {
|
|
|
31
36
|
eventType: EVENT_TYPE.UI
|
|
32
37
|
});
|
|
33
38
|
}, [dispatchAnalyticsEvent]);
|
|
34
|
-
return
|
|
39
|
+
return jsx("div", {
|
|
35
40
|
"aria-label": intl.formatMessage(avatarGroupMessages.editors),
|
|
36
41
|
"data-testid": 'avatar-group-in-plugin',
|
|
37
|
-
|
|
38
|
-
},
|
|
42
|
+
css: props.takeFullWidth ? toolbarButtonWrapperFullWidth : toolbarButtonWrapper
|
|
43
|
+
}, jsx(AvatarsWithPluginState, {
|
|
39
44
|
editorView: props.editorView,
|
|
40
45
|
eventDispatcher: props.eventDispatcher,
|
|
41
46
|
inviteToEditComponent: props.collabEdit && props.collabEdit.inviteToEditComponent,
|
|
@@ -27,10 +27,29 @@ const basePlugin = options => ({
|
|
|
27
27
|
plugin: ({
|
|
28
28
|
dispatchAnalyticsEvent
|
|
29
29
|
}) => filterStepsPlugin(dispatchAnalyticsEvent)
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
}]; // In Chrome, when the selection is placed between adjacent nodes which are not contenteditatble
|
|
31
|
+
// the cursor appears at the right most point of the parent container.
|
|
32
|
+
// In Firefox, when the selection is placed between adjacent nodes which are not contenteditatble
|
|
33
|
+
// no cursor is presented to users.
|
|
34
|
+
// In Safari, when the selection is placed between adjacent nodes which are not contenteditatble
|
|
35
|
+
// the cursor appears inside the adjacent nodes.
|
|
36
|
+
// This plugin workarounds the issues with chrome and firefox by inserting decorations between
|
|
37
|
+
// inline nodes which are set as contenteditable, and have a zero width space.
|
|
38
|
+
// At time of development, using this workaround in Safari caused additional issues;
|
|
39
|
+
// - visual artifacts when moving across inline nodes (ie. using the arrow key to traverse a
|
|
40
|
+
// series of inline nodes)
|
|
41
|
+
// - blocking the right arrow key when at the start of a line from moving to the end of the
|
|
42
|
+
// previous line.
|
|
43
|
+
// As such we only apply the workaround for firefox and chrome.
|
|
44
|
+
|
|
45
|
+
if (browser.chrome || browser.gecko) {
|
|
46
|
+
plugins.push({
|
|
47
|
+
name: 'inlineCursorTargetPlugin',
|
|
48
|
+
plugin: () => options && options.allowInlineCursorTarget ? inlineCursorTargetPlugin() : undefined
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
plugins.push({
|
|
34
53
|
name: 'focusHandlerPlugin',
|
|
35
54
|
plugin: ({
|
|
36
55
|
dispatch
|
|
@@ -75,7 +94,7 @@ const basePlugin = options => ({
|
|
|
75
94
|
dispatch,
|
|
76
95
|
providerFactory
|
|
77
96
|
}) => betterTypeHistoryPlugin()
|
|
78
|
-
}
|
|
97
|
+
});
|
|
79
98
|
|
|
80
99
|
if (options && options.allowScrollGutter) {
|
|
81
100
|
plugins.push({
|
|
@@ -2,65 +2,21 @@ import { DecorationSet, Decoration } from 'prosemirror-view';
|
|
|
2
2
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
3
3
|
import { PluginKey } from 'prosemirror-state';
|
|
4
4
|
import { ZERO_WIDTH_SPACE } from '@atlaskit/editor-common/utils';
|
|
5
|
+
import { isTextSelection } from '../../../utils';
|
|
5
6
|
export const inlineCursorTargetStateKey = new PluginKey('inlineCursorTargetPlugin');
|
|
6
|
-
export const
|
|
7
|
-
|
|
8
|
-
return node && SPECIAL_NODES.indexOf(node.type.name) !== -1;
|
|
9
|
-
};
|
|
10
|
-
export const findSpecialNodeAfter = ($pos, tr) => {
|
|
11
|
-
if (isSpecial($pos.nodeAfter)) {
|
|
12
|
-
return $pos.pos + 1;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const {
|
|
16
|
-
parentOffset,
|
|
17
|
-
parent
|
|
18
|
-
} = $pos;
|
|
19
|
-
const docSize = tr.doc.nodeSize - 2;
|
|
20
|
-
|
|
21
|
-
if (parentOffset === parent.content.size && $pos.pos + 1 < docSize - 2) {
|
|
22
|
-
const {
|
|
23
|
-
nodeAfter
|
|
24
|
-
} = tr.doc.resolve($pos.pos + 1);
|
|
25
|
-
|
|
26
|
-
if (nodeAfter && isSpecial(nodeAfter.firstChild)) {
|
|
27
|
-
return $pos.pos + 2;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return;
|
|
32
|
-
};
|
|
33
|
-
export const findSpecialNodeBefore = ($pos, tr) => {
|
|
34
|
-
if (isSpecial($pos.nodeBefore)) {
|
|
35
|
-
return $pos.pos - 1;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if ($pos.pos === 0) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const {
|
|
43
|
-
parentOffset
|
|
44
|
-
} = $pos;
|
|
45
|
-
|
|
46
|
-
if (parentOffset === 0) {
|
|
47
|
-
const {
|
|
48
|
-
nodeBefore
|
|
49
|
-
} = tr.doc.resolve($pos.pos - 1);
|
|
50
|
-
|
|
51
|
-
if (nodeBefore && isSpecial(nodeBefore.firstChild)) {
|
|
52
|
-
return $pos.pos - 2;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return;
|
|
7
|
+
export const isInlineNodeView = node => {
|
|
8
|
+
return node && node.type.isInline && !node.type.isText;
|
|
57
9
|
};
|
|
10
|
+
export const findInlineNodeViewAfter = $pos => isInlineNodeView($pos.nodeAfter);
|
|
11
|
+
export const findInlineNodeViewBefore = $pos => isInlineNodeView($pos.nodeBefore) || // This prevents the cursor from disappearing when at the beginning
|
|
12
|
+
// of a paragraph and next to an inline node view.
|
|
13
|
+
$pos.parentOffset === 0 && isInlineNodeView($pos.nodeAfter);
|
|
58
14
|
export default (() => {
|
|
59
15
|
return new SafePlugin({
|
|
60
16
|
key: inlineCursorTargetStateKey,
|
|
61
17
|
state: {
|
|
62
18
|
init: () => ({
|
|
63
|
-
|
|
19
|
+
cursorTarget: undefined
|
|
64
20
|
}),
|
|
65
21
|
|
|
66
22
|
apply(tr) {
|
|
@@ -68,22 +24,45 @@ export default (() => {
|
|
|
68
24
|
selection
|
|
69
25
|
} = tr;
|
|
70
26
|
const {
|
|
71
|
-
$from
|
|
27
|
+
$from,
|
|
28
|
+
$to
|
|
72
29
|
} = selection;
|
|
73
|
-
const positions = [];
|
|
74
|
-
const posAfter = findSpecialNodeAfter($from, tr);
|
|
75
|
-
const posBefore = findSpecialNodeBefore($from, tr);
|
|
76
|
-
|
|
77
|
-
if (posAfter !== undefined) {
|
|
78
|
-
positions.push(posAfter);
|
|
79
|
-
}
|
|
80
30
|
|
|
81
|
-
if (
|
|
82
|
-
|
|
31
|
+
if (selection && isTextSelection(selection)) {
|
|
32
|
+
const hasInlineNodeViewAfter = findInlineNodeViewAfter($from);
|
|
33
|
+
const hasInlineNodeViewBefore = findInlineNodeViewBefore($from); // Create editable widgets either side of the cursor to allow
|
|
34
|
+
// text input. This prevents issues with the cursor disappearing
|
|
35
|
+
// or apperaing in the wrong place when positioned between
|
|
36
|
+
// non contenteditable nodes.
|
|
37
|
+
// We check beforeInput events below to prevent content
|
|
38
|
+
// being added to the decorations.
|
|
39
|
+
|
|
40
|
+
if (hasInlineNodeViewAfter && hasInlineNodeViewBefore) {
|
|
41
|
+
const createWidget = side => {
|
|
42
|
+
const node = document.createElement('span');
|
|
43
|
+
node.contentEditable = 'true';
|
|
44
|
+
node.appendChild(document.createTextNode(ZERO_WIDTH_SPACE));
|
|
45
|
+
return Decoration.widget(selection.from, node, {
|
|
46
|
+
raw: true,
|
|
47
|
+
side: side === 'left' ? -1 : 1,
|
|
48
|
+
key: 'inlineCursor'
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
cursorTarget: {
|
|
54
|
+
decorations: [createWidget('left'), createWidget('right')],
|
|
55
|
+
positions: {
|
|
56
|
+
from: $from.pos,
|
|
57
|
+
to: $to.pos
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
83
62
|
}
|
|
84
63
|
|
|
85
64
|
return {
|
|
86
|
-
|
|
65
|
+
cursorTarget: undefined
|
|
87
66
|
};
|
|
88
67
|
}
|
|
89
68
|
|
|
@@ -94,25 +73,104 @@ export default (() => {
|
|
|
94
73
|
doc
|
|
95
74
|
} = state;
|
|
96
75
|
const {
|
|
97
|
-
|
|
76
|
+
cursorTarget
|
|
98
77
|
} = inlineCursorTargetStateKey.getState(state);
|
|
99
78
|
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
const node = document.createElement('span');
|
|
103
|
-
node.appendChild(document.createTextNode(ZERO_WIDTH_SPACE));
|
|
104
|
-
return Decoration.widget(position, node, {
|
|
105
|
-
raw: true,
|
|
106
|
-
side: -1,
|
|
107
|
-
key: 'inlineCursor'
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
return DecorationSet.create(doc, decorations);
|
|
79
|
+
if (cursorTargetHasValidDecorations(cursorTarget)) {
|
|
80
|
+
return DecorationSet.create(doc, cursorTarget.decorations);
|
|
111
81
|
}
|
|
112
82
|
|
|
113
83
|
return null;
|
|
114
|
-
}
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
handleDOMEvents: {
|
|
87
|
+
// Check the DOM to see if there are inline cursor targets
|
|
88
|
+
// after a composition event ends. If so, manually insert the
|
|
89
|
+
// event data in order to prevent contents ending up inside
|
|
90
|
+
// of the cursor target decorations.
|
|
91
|
+
compositionend: (view, incorrectlyTypedEvent) => {
|
|
92
|
+
// This is typed by the prosemirror definitions as Event,
|
|
93
|
+
// this type is incorrect, and it is actually an InputEvent
|
|
94
|
+
const event = incorrectlyTypedEvent;
|
|
95
|
+
const {
|
|
96
|
+
state
|
|
97
|
+
} = view;
|
|
98
|
+
const {
|
|
99
|
+
cursorTarget
|
|
100
|
+
} = inlineCursorTargetStateKey.getState(state);
|
|
101
|
+
|
|
102
|
+
if (cursorTarget !== undefined) {
|
|
103
|
+
handleTextInputInsideCursorTargetDecoration({
|
|
104
|
+
event,
|
|
105
|
+
cursorTarget,
|
|
106
|
+
view
|
|
107
|
+
});
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return false;
|
|
112
|
+
},
|
|
113
|
+
// Check the DOM to see if there are inline cursor targets
|
|
114
|
+
// before any input event. If so, manually insert the
|
|
115
|
+
// event data in order to prevent contents ending up inside
|
|
116
|
+
// of the cursor target decorations.
|
|
117
|
+
beforeinput: (view, incorrectlyTypedEvent) => {
|
|
118
|
+
// This is typed by the prosemirror definitions as Event,
|
|
119
|
+
// this type is incorrect, and it is actually an InputEvent
|
|
120
|
+
const event = incorrectlyTypedEvent;
|
|
121
|
+
const {
|
|
122
|
+
state
|
|
123
|
+
} = view;
|
|
124
|
+
const {
|
|
125
|
+
cursorTarget
|
|
126
|
+
} = inlineCursorTargetStateKey.getState(state);
|
|
127
|
+
|
|
128
|
+
if (!event.isComposing && cursorTarget !== undefined) {
|
|
129
|
+
handleTextInputInsideCursorTargetDecoration({
|
|
130
|
+
event,
|
|
131
|
+
cursorTarget,
|
|
132
|
+
view
|
|
133
|
+
});
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
115
136
|
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
116
140
|
}
|
|
117
141
|
});
|
|
118
|
-
});
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
function cursorTargetHasValidDecorations(cursorTarget) {
|
|
145
|
+
if (!cursorTarget || // Decorations can end up as null when the decorations prop is
|
|
146
|
+
// called after the decorations have been removed from the dom.
|
|
147
|
+
// https://github.com/ProseMirror/prosemirror-view/blob/8f0d313a6389b86a335274fba36534ba1cb21f12/src/decoration.js#L30
|
|
148
|
+
cursorTarget.decorations.includes(null)) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
function handleTextInputInsideCursorTargetDecoration({
|
|
156
|
+
event,
|
|
157
|
+
view,
|
|
158
|
+
cursorTarget
|
|
159
|
+
}) {
|
|
160
|
+
event.stopPropagation();
|
|
161
|
+
event.preventDefault();
|
|
162
|
+
const content = event.data || '';
|
|
163
|
+
const tr = view.state.tr; // ensure any custom handleTextInput handlers are called for the input event
|
|
164
|
+
// ie. type ahead, emoji shortcuts.
|
|
165
|
+
|
|
166
|
+
const potentiallyHandleByHandleTextInput = view.someProp('handleTextInput', f => f(view, cursorTarget.positions.from, cursorTarget.positions.to, content));
|
|
167
|
+
|
|
168
|
+
if (potentiallyHandleByHandleTextInput) {
|
|
169
|
+
// if a handleTextInput handler has handled the event, we don't want to
|
|
170
|
+
// manually update the document.
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
tr.insertText(content);
|
|
175
|
+
view.dispatch(tr);
|
|
176
|
+
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { css, jsx } from '@emotion/react';
|
|
3
|
+
const beforePrimaryToolbarPluginWrapper = css`
|
|
4
4
|
display: flex;
|
|
5
5
|
margin-right: 8px;
|
|
6
6
|
flex-grow: 1;
|
|
7
7
|
justify-content: flex-end;
|
|
8
8
|
align-items: center;
|
|
9
9
|
`;
|
|
10
|
-
export const BeforePrimaryToolbarWrapper = props =>
|
|
10
|
+
export const BeforePrimaryToolbarWrapper = props => jsx("div", {
|
|
11
|
+
css: beforePrimaryToolbarPluginWrapper,
|
|
11
12
|
"data-testid": 'before-primary-toolbar-components-plugin'
|
|
12
13
|
}, props.beforePrimaryToolbarComponents);
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Selection } from 'prosemirror-state';
|
|
2
2
|
import { findWrapping } from 'prosemirror-transform';
|
|
3
|
+
import { safeInsert } from 'prosemirror-utils';
|
|
3
4
|
import { CODE_BLOCK, BLOCK_QUOTE, PANEL, HEADINGS_BY_NAME, NORMAL_TEXT } from '../types';
|
|
4
5
|
import { removeBlockMarks } from '../../../utils/mark';
|
|
6
|
+
import { shouldSplitSelectedNodeOnNodeInsertion } from '../../../utils/insert';
|
|
5
7
|
import { withAnalytics, ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '../../analytics';
|
|
6
8
|
import { filterChildrenBetween } from '../../../utils';
|
|
7
9
|
import { PanelType } from '@atlaskit/adf-schema';
|
|
@@ -226,9 +228,6 @@ function wrapSelectionIn(type) {
|
|
|
226
228
|
$from,
|
|
227
229
|
$to
|
|
228
230
|
} = state.selection;
|
|
229
|
-
const {
|
|
230
|
-
paragraph
|
|
231
|
-
} = state.schema.nodes;
|
|
232
231
|
const {
|
|
233
232
|
alignment,
|
|
234
233
|
indentation
|
|
@@ -244,8 +243,7 @@ function wrapSelectionIn(type) {
|
|
|
244
243
|
tr.wrap(range, wrapping).scrollIntoView();
|
|
245
244
|
} else {
|
|
246
245
|
/** We always want to append a block type */
|
|
247
|
-
|
|
248
|
-
tr.setSelection(Selection.near(tr.doc.resolve(state.selection.to + 1)));
|
|
246
|
+
safeInsert(type.createAndFill())(tr).scrollIntoView();
|
|
249
247
|
}
|
|
250
248
|
|
|
251
249
|
if (dispatch) {
|
|
@@ -262,21 +260,30 @@ function wrapSelectionIn(type) {
|
|
|
262
260
|
|
|
263
261
|
function insertCodeBlock() {
|
|
264
262
|
return function (state, dispatch) {
|
|
263
|
+
var _state$selection$$fro;
|
|
264
|
+
|
|
265
265
|
const {
|
|
266
266
|
tr
|
|
267
267
|
} = state;
|
|
268
268
|
const {
|
|
269
|
-
$to
|
|
269
|
+
$to,
|
|
270
|
+
$from
|
|
270
271
|
} = state.selection;
|
|
271
272
|
const {
|
|
272
273
|
codeBlock
|
|
273
274
|
} = state.schema.nodes;
|
|
274
|
-
const
|
|
275
|
-
const
|
|
276
|
-
/** We always want to append a block type
|
|
275
|
+
const grandParentType = (_state$selection$$fro = state.selection.$from.node(-1)) === null || _state$selection$$fro === void 0 ? void 0 : _state$selection$$fro.type;
|
|
276
|
+
const parentType = state.selection.$from.parent.type;
|
|
277
|
+
/** We always want to append a block type unless we're inserting into a paragraph
|
|
278
|
+
* AND it's a valid child of the grandparent node
|
|
279
|
+
*/
|
|
277
280
|
|
|
278
|
-
|
|
279
|
-
|
|
281
|
+
if (shouldSplitSelectedNodeOnNodeInsertion(parentType, grandParentType, codeBlock.createAndFill())) {
|
|
282
|
+
tr.replaceRangeWith($from.pos, $to.pos, codeBlock.createAndFill());
|
|
283
|
+
tr.setSelection(Selection.near(tr.doc.resolve(state.selection.to)));
|
|
284
|
+
} else {
|
|
285
|
+
safeInsert(codeBlock.createAndFill())(tr).scrollIntoView();
|
|
286
|
+
}
|
|
280
287
|
|
|
281
288
|
if (dispatch) {
|
|
282
289
|
dispatch(tr);
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
|
|
3
|
+
/** @jsx jsx */
|
|
2
4
|
import React from 'react';
|
|
5
|
+
import { css, jsx } from '@emotion/react';
|
|
3
6
|
import * as colors from '@atlaskit/theme/colors';
|
|
4
7
|
import { injectIntl } from 'react-intl-next';
|
|
5
8
|
import { findParentDomRefOfType, findDomRefAtPos } from 'prosemirror-utils';
|
|
@@ -7,7 +10,6 @@ import { Popup } from '@atlaskit/editor-common/ui';
|
|
|
7
10
|
import CollapseIcon from '@atlaskit/icon/glyph/editor/collapse';
|
|
8
11
|
import ExpandIcon from '@atlaskit/icon/glyph/editor/expand';
|
|
9
12
|
import ToolbarButton from '../../../ui/ToolbarButton';
|
|
10
|
-
import styled from 'styled-components';
|
|
11
13
|
import { getBreakoutMode } from '../utils/get-breakout-mode';
|
|
12
14
|
import { setBreakoutMode } from '../commands/set-breakout-mode';
|
|
13
15
|
import { removeBreakout } from '../commands/remove-breakout';
|
|
@@ -22,7 +24,7 @@ const {
|
|
|
22
24
|
N300,
|
|
23
25
|
N20A
|
|
24
26
|
} = colors;
|
|
25
|
-
const
|
|
27
|
+
const toolbarButtonWrapper = css`
|
|
26
28
|
&& button {
|
|
27
29
|
background: ${N20A};
|
|
28
30
|
color: ${N300};
|
|
@@ -123,7 +125,7 @@ class LayoutButton extends React.Component {
|
|
|
123
125
|
element = closestEl.firstChild;
|
|
124
126
|
}
|
|
125
127
|
|
|
126
|
-
return
|
|
128
|
+
return jsx(Popup, {
|
|
127
129
|
ariaLabel: title,
|
|
128
130
|
target: element,
|
|
129
131
|
offset: [5, 0],
|
|
@@ -134,13 +136,15 @@ class LayoutButton extends React.Component {
|
|
|
134
136
|
scrollableElement: scrollableElement,
|
|
135
137
|
stick: true,
|
|
136
138
|
forcePlacement: true
|
|
137
|
-
},
|
|
139
|
+
}, jsx("div", {
|
|
140
|
+
css: toolbarButtonWrapper
|
|
141
|
+
}, jsx(ToolbarButton, {
|
|
138
142
|
title: title,
|
|
139
143
|
testId: titleMessage.id,
|
|
140
144
|
onClick: this.handleClick(nextBreakoutMode),
|
|
141
|
-
iconBefore: breakoutMode === BREAKOUT_MODE.FULL_WIDTH ?
|
|
145
|
+
iconBefore: breakoutMode === BREAKOUT_MODE.FULL_WIDTH ? jsx(CollapseIcon, {
|
|
142
146
|
label: title
|
|
143
|
-
}) :
|
|
147
|
+
}) : jsx(ExpandIcon, {
|
|
144
148
|
label: title
|
|
145
149
|
})
|
|
146
150
|
})));
|
|
@@ -4,11 +4,11 @@ import React from 'react';
|
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import { isSafeUrl } from '@atlaskit/adf-schema';
|
|
6
6
|
import { titleUrlPairFromNode } from '../utils';
|
|
7
|
-
import {
|
|
7
|
+
import { changeSelectedCardToLinkFallback } from '../pm-plugins/doc';
|
|
8
8
|
export function Card(SmartCardComponent, UnsupportedComponent) {
|
|
9
|
-
var _class
|
|
9
|
+
var _class;
|
|
10
10
|
|
|
11
|
-
return
|
|
11
|
+
return _class = class extends React.Component {
|
|
12
12
|
constructor(...args) {
|
|
13
13
|
super(...args);
|
|
14
14
|
|
|
@@ -69,7 +69,7 @@ export function Card(SmartCardComponent, UnsupportedComponent) {
|
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
changeSelectedCardToLinkFallback(undefined, url, true, node, getPos())(view.state, view.dispatch);
|
|
73
73
|
return null;
|
|
74
74
|
} else {
|
|
75
75
|
// Otherwise, render a blue link as fallback (above in render()).
|
|
@@ -81,5 +81,5 @@ export function Card(SmartCardComponent, UnsupportedComponent) {
|
|
|
81
81
|
|
|
82
82
|
}, _defineProperty(_class, "contextTypes", {
|
|
83
83
|
contextAdapter: PropTypes.object
|
|
84
|
-
}),
|
|
84
|
+
}), _class;
|
|
85
85
|
}
|