@atlaskit/editor-core 148.0.0 → 149.0.3
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 +110 -0
- package/dist/cjs/create-editor/create-plugins-list.js +6 -1
- package/dist/cjs/editor.js +1 -4
- package/dist/cjs/index.js +24 -40
- package/dist/cjs/labs/next/presets/default.js +1 -1
- package/dist/cjs/messages.js +5 -0
- package/dist/cjs/nodeviews/SelectionBasedNodeView.js +1 -2
- package/dist/cjs/plugins/analytics/plugin.js +9 -7
- package/dist/cjs/plugins/analytics/types/enums.js +5 -0
- package/dist/cjs/plugins/analytics/types/type-ahead.js +5 -0
- package/dist/cjs/plugins/block-type/messages.js +10 -0
- package/dist/cjs/plugins/card/nodeviews/embedCard.js +1 -3
- package/dist/cjs/plugins/collab-edit/participants.js +15 -0
- package/dist/cjs/plugins/collab-edit/plugin-state.js +14 -0
- package/dist/cjs/plugins/collab-edit/ui/avatars-with-plugin-state.js +6 -4
- package/dist/cjs/plugins/collab-edit/ui/avatars.js +19 -2
- package/dist/cjs/plugins/collab-edit/utils.js +42 -2
- package/dist/cjs/plugins/date/actions.js +4 -2
- package/dist/cjs/plugins/date/index.js +1 -1
- package/dist/cjs/plugins/date/pm-plugins/utils.js +6 -1
- package/dist/cjs/plugins/emoji/index.js +143 -120
- package/dist/cjs/plugins/emoji/pm-plugins/ascii-input-rules.js +0 -14
- package/dist/cjs/plugins/expand/pm-plugins/keymap.js +3 -7
- package/dist/cjs/plugins/extension/actions.js +16 -16
- package/dist/cjs/plugins/extension/pm-plugins/main.js +4 -4
- package/dist/cjs/plugins/extension/ui/Extension/ExtensionComponent.js +5 -4
- package/dist/cjs/plugins/extension/ui/Extension/index.js +2 -2
- package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
- package/dist/cjs/plugins/floating-toolbar/ui/ConfirmationModal.js +12 -14
- package/dist/cjs/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +35 -0
- package/dist/cjs/plugins/floating-toolbar/ui/EditorHideEmojiIcon.js +38 -0
- package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.js +5 -7
- package/dist/cjs/plugins/help-dialog/ui/index.js +12 -18
- package/dist/cjs/plugins/help-dialog/ui/styles.js +2 -6
- package/dist/cjs/plugins/hyperlink/index.js +4 -10
- package/dist/cjs/plugins/insert-block/index.js +9 -8
- package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +7 -3
- package/dist/cjs/plugins/list/index.js +5 -0
- package/dist/cjs/plugins/macro/actions.js +14 -14
- package/dist/cjs/plugins/media/index.js +1 -0
- package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +1 -0
- package/dist/cjs/plugins/media/pm-plugins/main.js +26 -14
- package/dist/cjs/plugins/media/styles.js +1 -1
- package/dist/cjs/plugins/media/toolbar/filePreviewItem.js +86 -0
- package/dist/cjs/plugins/media/toolbar/index.js +161 -44
- package/dist/cjs/plugins/media/toolbar/utils.js +77 -0
- package/dist/cjs/plugins/mentions/index.js +57 -602
- package/dist/cjs/plugins/mentions/pm-plugins/key.js +11 -0
- package/dist/cjs/plugins/mentions/pm-plugins/main.js +162 -0
- package/dist/cjs/plugins/mentions/pm-plugins/utils.js +12 -0
- package/dist/cjs/plugins/mentions/type-ahead/index.js +449 -0
- package/dist/cjs/plugins/mentions/ui/InviteItem/index.js +3 -1
- package/dist/cjs/plugins/mentions/ui/InviteItem/styles.js +8 -3
- package/dist/cjs/plugins/mentions/ui/ToolbarMention/index.js +3 -3
- package/dist/cjs/plugins/mentions/utils.js +24 -2
- package/dist/cjs/plugins/panel/index.js +46 -13
- package/dist/cjs/plugins/panel/nodeviews/panel.js +39 -25
- package/dist/cjs/plugins/panel/toolbar.js +94 -6
- package/dist/cjs/plugins/panel/toolbar.test.js +149 -16
- package/dist/cjs/plugins/paste/handlers.js +2 -2
- package/dist/cjs/plugins/paste/pm-plugins/analytics.js +6 -3
- package/dist/cjs/plugins/placeholder/index.js +6 -0
- package/dist/cjs/plugins/quick-insert/api.js +30 -0
- package/dist/cjs/plugins/quick-insert/assets/custom-panel.js +55 -0
- package/dist/cjs/plugins/quick-insert/assets/index.js +14 -1
- package/dist/cjs/plugins/quick-insert/index.js +10 -24
- package/dist/cjs/plugins/quick-insert/ui/ModalElementBrowser/index.js +1 -0
- package/dist/cjs/plugins/rank.js +1 -1
- package/dist/cjs/plugins/rule/index.js +1 -25
- package/dist/cjs/plugins/scroll-into-view/index.js +1 -4
- package/dist/cjs/plugins/selection/gap-cursor/actions.js +5 -6
- package/dist/cjs/plugins/selection/pm-plugins/selection-main.js +1 -3
- package/dist/cjs/plugins/status/actions.js +5 -2
- package/dist/cjs/plugins/status/plugin.js +1 -1
- package/dist/cjs/plugins/table/commands/selection.js +24 -24
- package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +8 -1
- package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +14 -15
- package/dist/cjs/plugins/tasks-and-decisions/nodeviews/decisionItem.js +3 -1
- package/dist/cjs/plugins/tasks-and-decisions/nodeviews/taskItem.js +3 -1
- package/dist/cjs/plugins/tasks-and-decisions/pm-plugins/keymaps.js +1 -2
- package/dist/cjs/plugins/text-formatting/pm-plugins/cursor.js +1 -4
- package/dist/cjs/plugins/type-ahead/api.js +243 -0
- package/dist/cjs/plugins/type-ahead/commands/insert-type-ahead-item.js +238 -0
- package/dist/cjs/plugins/type-ahead/commands/update-list-items.js +30 -0
- package/dist/cjs/plugins/type-ahead/commands/update-query.js +16 -18
- package/dist/cjs/plugins/type-ahead/commands/update-selected-index.js +36 -0
- package/dist/cjs/plugins/type-ahead/constants.js +25 -0
- package/dist/cjs/plugins/type-ahead/index.js +183 -52
- package/dist/cjs/plugins/type-ahead/insert-utils.js +132 -0
- package/dist/cjs/plugins/type-ahead/pm-plugins/actions.js +12 -9
- package/dist/cjs/plugins/type-ahead/pm-plugins/decorations.js +238 -0
- package/dist/cjs/plugins/type-ahead/pm-plugins/input-rules.js +20 -40
- package/dist/cjs/plugins/type-ahead/pm-plugins/insert-item-plugin.js +28 -0
- package/dist/cjs/plugins/type-ahead/pm-plugins/{plugin-key.js → key.js} +0 -0
- package/dist/cjs/plugins/type-ahead/pm-plugins/main.js +79 -424
- package/dist/cjs/plugins/type-ahead/pm-plugins/reducer.js +188 -0
- package/dist/cjs/plugins/type-ahead/pm-plugins/utils.js +26 -0
- package/dist/cjs/plugins/type-ahead/stats-modifier.js +49 -0
- package/dist/cjs/plugins/type-ahead/transforms/close-type-ahead.js +18 -0
- package/dist/cjs/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +51 -0
- package/dist/cjs/plugins/type-ahead/transforms/set-selection-before-query.js +24 -0
- package/dist/cjs/plugins/type-ahead/ui/DynamicHeightListItem.js +77 -0
- package/dist/cjs/plugins/type-ahead/ui/InputQuery.js +325 -0
- package/dist/cjs/plugins/type-ahead/ui/TypeAheadList.js +195 -0
- package/dist/cjs/plugins/type-ahead/ui/TypeAheadListItem.js +141 -0
- package/dist/cjs/plugins/type-ahead/ui/TypeAheadPopup.js +141 -0
- package/dist/cjs/plugins/type-ahead/ui/WrapperTypeAhead.js +151 -0
- package/dist/cjs/plugins/type-ahead/ui/hooks/use-dynamic-list-height-calculation.js +118 -0
- package/dist/cjs/plugins/type-ahead/ui/hooks/use-item-insert.js +132 -0
- package/dist/cjs/plugins/type-ahead/ui/hooks/use-load-items.js +61 -0
- package/dist/cjs/plugins/type-ahead/ui/hooks/use-on-force-select.js +50 -0
- package/dist/cjs/plugins/type-ahead/ui/hooks/use-resize-observer.js +70 -0
- package/dist/cjs/plugins/type-ahead/utils.js +127 -0
- package/dist/cjs/plugins/undo-redo/ui/ToolbarUndoRedo/index.js +33 -2
- package/dist/cjs/plugins/view-update-subscription/index.js +19 -14
- package/dist/cjs/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +10 -3
- package/dist/cjs/plugins/view-update-subscription/subscribe/type-ahead-updates.js +46 -0
- package/dist/cjs/test-utils.js +17 -0
- package/dist/cjs/types/empty-state-handler.js +5 -0
- package/dist/cjs/ui/ConfigPanel/Fields/ColorPicker.js +4 -21
- package/dist/cjs/ui/ElementBrowser/ElementBrowser.js +4 -2
- package/dist/cjs/ui/ElementBrowser/InsertMenu.js +1 -0
- package/dist/cjs/ui/ElementBrowser/ModalElementBrowser.js +16 -23
- package/dist/cjs/ui/ElementBrowser/components/ElementList/ElementList.js +11 -4
- package/dist/cjs/ui/ElementBrowser/components/StatelessElementBrowser.js +12 -4
- package/dist/cjs/ui/PanelTextInput/index.js +1 -3
- package/dist/cjs/utils/compare.js +7 -7
- package/dist/cjs/utils/index.js +7 -8
- package/dist/cjs/utils/rich-media-utils.js +2 -2
- package/dist/cjs/utils/selection.js +6 -3
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/create-editor/create-plugins-list.js +6 -1
- package/dist/es2019/editor.js +1 -4
- package/dist/es2019/index.js +4 -6
- package/dist/es2019/labs/next/presets/default.js +2 -2
- package/dist/es2019/messages.js +5 -0
- package/dist/es2019/nodeviews/SelectionBasedNodeView.js +1 -2
- package/dist/es2019/plugins/analytics/plugin.js +5 -1
- package/dist/es2019/plugins/analytics/types/enums.js +5 -0
- package/dist/es2019/plugins/analytics/types/type-ahead.js +1 -0
- package/dist/es2019/plugins/block-type/messages.js +10 -0
- package/dist/es2019/plugins/card/nodeviews/embedCard.js +1 -3
- package/dist/es2019/plugins/collab-edit/participants.js +14 -0
- package/dist/es2019/plugins/collab-edit/plugin-state.js +17 -1
- package/dist/es2019/plugins/collab-edit/ui/avatars-with-plugin-state.js +6 -4
- package/dist/es2019/plugins/collab-edit/ui/avatars.js +17 -2
- package/dist/es2019/plugins/collab-edit/utils.js +34 -0
- package/dist/es2019/plugins/date/actions.js +4 -2
- package/dist/es2019/plugins/date/index.js +1 -1
- package/dist/es2019/plugins/date/pm-plugins/utils.js +6 -1
- package/dist/es2019/plugins/emoji/index.js +169 -146
- package/dist/es2019/plugins/emoji/pm-plugins/ascii-input-rules.js +0 -11
- package/dist/es2019/plugins/expand/pm-plugins/keymap.js +3 -6
- package/dist/es2019/plugins/extension/actions.js +16 -16
- package/dist/es2019/plugins/extension/pm-plugins/main.js +4 -4
- package/dist/es2019/plugins/extension/ui/Extension/ExtensionComponent.js +5 -4
- package/dist/es2019/plugins/extension/ui/Extension/index.js +2 -2
- package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
- package/dist/es2019/plugins/floating-toolbar/ui/ConfirmationModal.js +12 -15
- package/dist/es2019/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +25 -0
- package/dist/es2019/plugins/floating-toolbar/ui/EditorHideEmojiIcon.js +28 -0
- package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.js +3 -5
- package/dist/es2019/plugins/help-dialog/ui/index.js +20 -26
- package/dist/es2019/plugins/help-dialog/ui/styles.js +2 -2
- package/dist/es2019/plugins/hyperlink/index.js +4 -12
- package/dist/es2019/plugins/insert-block/index.js +4 -4
- package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +8 -4
- package/dist/es2019/plugins/list/index.js +20 -14
- package/dist/es2019/plugins/macro/actions.js +14 -14
- package/dist/es2019/plugins/media/index.js +1 -0
- package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +1 -0
- package/dist/es2019/plugins/media/pm-plugins/main.js +27 -12
- package/dist/es2019/plugins/media/styles.js +7 -2
- package/dist/es2019/plugins/media/toolbar/filePreviewItem.js +59 -0
- package/dist/es2019/plugins/media/toolbar/index.js +158 -42
- package/dist/es2019/plugins/media/toolbar/utils.js +32 -0
- package/dist/es2019/plugins/mentions/index.js +34 -536
- package/dist/es2019/plugins/mentions/pm-plugins/key.js +2 -0
- package/dist/es2019/plugins/mentions/pm-plugins/main.js +138 -0
- package/dist/es2019/plugins/mentions/pm-plugins/utils.js +4 -0
- package/dist/es2019/plugins/mentions/type-ahead/index.js +394 -0
- package/dist/es2019/plugins/mentions/ui/InviteItem/index.js +2 -1
- package/dist/es2019/plugins/mentions/ui/InviteItem/styles.js +4 -2
- package/dist/es2019/plugins/mentions/ui/ToolbarMention/index.js +2 -2
- package/dist/es2019/plugins/mentions/utils.js +20 -1
- package/dist/es2019/plugins/panel/index.js +95 -62
- package/dist/es2019/plugins/panel/nodeviews/panel.js +7 -1
- package/dist/es2019/plugins/panel/toolbar.js +90 -6
- package/dist/es2019/plugins/panel/toolbar.test.js +131 -14
- package/dist/es2019/plugins/paste/handlers.js +2 -2
- package/dist/es2019/plugins/paste/pm-plugins/analytics.js +6 -3
- package/dist/es2019/plugins/placeholder/index.js +5 -0
- package/dist/es2019/plugins/quick-insert/api.js +18 -0
- package/dist/es2019/plugins/quick-insert/assets/custom-panel.js +45 -0
- package/dist/es2019/plugins/quick-insert/assets/index.js +6 -0
- package/dist/es2019/plugins/quick-insert/index.js +12 -23
- package/dist/es2019/plugins/quick-insert/search.js +1 -3
- package/dist/es2019/plugins/quick-insert/ui/ModalElementBrowser/index.js +1 -0
- package/dist/es2019/plugins/rank.js +1 -1
- package/dist/es2019/plugins/rule/index.js +1 -22
- package/dist/es2019/plugins/scroll-into-view/index.js +1 -3
- package/dist/es2019/plugins/selection/gap-cursor/actions.js +5 -6
- package/dist/es2019/plugins/selection/pm-plugins/selection-main.js +1 -3
- package/dist/es2019/plugins/status/actions.js +5 -2
- package/dist/es2019/plugins/status/plugin.js +1 -1
- package/dist/es2019/plugins/table/commands/selection.js +25 -25
- package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +8 -1
- package/dist/es2019/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +14 -15
- package/dist/es2019/plugins/tasks-and-decisions/nodeviews/decisionItem.js +2 -1
- package/dist/es2019/plugins/tasks-and-decisions/nodeviews/taskItem.js +2 -1
- package/dist/es2019/plugins/tasks-and-decisions/pm-plugins/keymaps.js +1 -2
- package/dist/es2019/plugins/text-formatting/pm-plugins/cursor.js +1 -4
- package/dist/es2019/plugins/type-ahead/api.js +224 -0
- package/dist/es2019/plugins/type-ahead/commands/insert-type-ahead-item.js +222 -0
- package/dist/es2019/plugins/type-ahead/commands/update-list-items.js +19 -0
- package/dist/es2019/plugins/type-ahead/commands/update-query.js +17 -15
- package/dist/es2019/plugins/type-ahead/commands/update-selected-index.js +25 -0
- package/dist/es2019/plugins/type-ahead/constants.js +15 -0
- package/dist/es2019/plugins/type-ahead/index.js +203 -78
- package/dist/es2019/plugins/type-ahead/insert-utils.js +119 -0
- package/dist/es2019/plugins/type-ahead/pm-plugins/actions.js +11 -8
- package/dist/es2019/plugins/type-ahead/pm-plugins/decorations.js +211 -0
- package/dist/es2019/plugins/type-ahead/pm-plugins/input-rules.js +18 -32
- package/dist/es2019/plugins/type-ahead/pm-plugins/insert-item-plugin.js +19 -0
- package/dist/es2019/plugins/type-ahead/pm-plugins/{plugin-key.js → key.js} +0 -0
- package/dist/es2019/plugins/type-ahead/pm-plugins/main.js +81 -401
- package/dist/es2019/plugins/type-ahead/pm-plugins/reducer.js +165 -0
- package/dist/es2019/plugins/type-ahead/pm-plugins/utils.js +16 -0
- package/dist/es2019/plugins/type-ahead/stats-modifier.js +41 -0
- package/dist/es2019/plugins/type-ahead/transforms/close-type-ahead.js +7 -0
- package/dist/es2019/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +40 -0
- package/dist/es2019/plugins/type-ahead/transforms/set-selection-before-query.js +11 -0
- package/dist/es2019/plugins/type-ahead/ui/DynamicHeightListItem.js +51 -0
- package/dist/es2019/plugins/type-ahead/ui/InputQuery.js +307 -0
- package/dist/es2019/plugins/type-ahead/ui/TypeAheadList.js +163 -0
- package/dist/es2019/plugins/type-ahead/ui/TypeAheadListItem.js +136 -0
- package/dist/es2019/plugins/type-ahead/ui/TypeAheadPopup.js +120 -0
- package/dist/es2019/plugins/type-ahead/ui/WrapperTypeAhead.js +110 -0
- package/dist/es2019/plugins/type-ahead/ui/hooks/use-dynamic-list-height-calculation.js +97 -0
- package/dist/es2019/plugins/type-ahead/ui/hooks/use-item-insert.js +126 -0
- package/dist/es2019/plugins/type-ahead/ui/hooks/use-load-items.js +43 -0
- package/dist/es2019/plugins/type-ahead/ui/hooks/use-on-force-select.js +41 -0
- package/dist/es2019/plugins/type-ahead/ui/hooks/use-resize-observer.js +53 -0
- package/dist/es2019/plugins/type-ahead/utils.js +93 -0
- package/dist/es2019/plugins/undo-redo/ui/ToolbarUndoRedo/index.js +29 -2
- package/dist/es2019/plugins/view-update-subscription/index.js +19 -14
- package/dist/es2019/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +9 -3
- package/dist/es2019/plugins/view-update-subscription/subscribe/type-ahead-updates.js +34 -0
- package/dist/es2019/test-utils.js +7 -0
- package/dist/es2019/types/empty-state-handler.js +1 -0
- package/dist/es2019/ui/ConfigPanel/Fields/ColorPicker.js +4 -8
- package/dist/es2019/ui/ConfigPanel/transformers.js +9 -9
- package/dist/es2019/ui/ElementBrowser/ElementBrowser.js +4 -2
- package/dist/es2019/ui/ElementBrowser/InsertMenu.js +1 -0
- package/dist/es2019/ui/ElementBrowser/ModalElementBrowser.js +20 -21
- package/dist/es2019/ui/ElementBrowser/components/ElementList/ElementList.js +9 -2
- package/dist/es2019/ui/ElementBrowser/components/StatelessElementBrowser.js +12 -4
- package/dist/es2019/ui/PanelTextInput/index.js +1 -3
- package/dist/es2019/utils/compare.js +7 -7
- package/dist/es2019/utils/index.js +7 -8
- package/dist/es2019/utils/rich-media-utils.js +2 -2
- package/dist/es2019/utils/selection.js +6 -3
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/create-editor/create-plugins-list.js +6 -1
- package/dist/esm/editor.js +1 -4
- package/dist/esm/index.js +4 -6
- package/dist/esm/labs/next/presets/default.js +2 -2
- package/dist/esm/messages.js +5 -0
- package/dist/esm/nodeviews/SelectionBasedNodeView.js +1 -2
- package/dist/esm/plugins/analytics/plugin.js +8 -6
- package/dist/esm/plugins/analytics/types/enums.js +5 -0
- package/dist/esm/plugins/analytics/types/type-ahead.js +1 -0
- package/dist/esm/plugins/block-type/messages.js +10 -0
- package/dist/esm/plugins/card/nodeviews/embedCard.js +1 -3
- package/dist/esm/plugins/collab-edit/participants.js +15 -0
- package/dist/esm/plugins/collab-edit/plugin-state.js +15 -1
- package/dist/esm/plugins/collab-edit/ui/avatars-with-plugin-state.js +6 -4
- package/dist/esm/plugins/collab-edit/ui/avatars.js +17 -2
- package/dist/esm/plugins/collab-edit/utils.js +32 -0
- package/dist/esm/plugins/date/actions.js +4 -2
- package/dist/esm/plugins/date/index.js +1 -1
- package/dist/esm/plugins/date/pm-plugins/utils.js +6 -1
- package/dist/esm/plugins/emoji/index.js +136 -112
- package/dist/esm/plugins/emoji/pm-plugins/ascii-input-rules.js +0 -13
- package/dist/esm/plugins/expand/pm-plugins/keymap.js +3 -6
- package/dist/esm/plugins/extension/actions.js +16 -16
- package/dist/esm/plugins/extension/pm-plugins/main.js +4 -4
- package/dist/esm/plugins/extension/ui/Extension/ExtensionComponent.js +5 -4
- package/dist/esm/plugins/extension/ui/Extension/index.js +2 -2
- package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +3 -2
- package/dist/esm/plugins/floating-toolbar/ui/ConfirmationModal.js +12 -15
- package/dist/esm/plugins/floating-toolbar/ui/EditorEmojiAddIcon.js +25 -0
- package/dist/esm/plugins/floating-toolbar/ui/EditorHideEmojiIcon.js +28 -0
- package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.js +3 -5
- package/dist/esm/plugins/help-dialog/ui/index.js +13 -19
- package/dist/esm/plugins/help-dialog/ui/styles.js +2 -6
- package/dist/esm/plugins/hyperlink/index.js +4 -10
- package/dist/esm/plugins/insert-block/index.js +5 -5
- package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +8 -4
- package/dist/esm/plugins/list/index.js +5 -0
- package/dist/esm/plugins/macro/actions.js +14 -14
- package/dist/esm/plugins/media/index.js +1 -0
- package/dist/esm/plugins/media/nodeviews/mediaGroup.js +1 -0
- package/dist/esm/plugins/media/pm-plugins/main.js +27 -14
- package/dist/esm/plugins/media/styles.js +2 -2
- package/dist/esm/plugins/media/toolbar/filePreviewItem.js +62 -0
- package/dist/esm/plugins/media/toolbar/index.js +154 -43
- package/dist/esm/plugins/media/toolbar/utils.js +60 -0
- package/dist/esm/plugins/mentions/index.js +45 -557
- package/dist/esm/plugins/mentions/pm-plugins/key.js +2 -0
- package/dist/esm/plugins/mentions/pm-plugins/main.js +145 -0
- package/dist/esm/plugins/mentions/pm-plugins/utils.js +4 -0
- package/dist/esm/plugins/mentions/type-ahead/index.js +415 -0
- package/dist/esm/plugins/mentions/ui/InviteItem/index.js +2 -1
- package/dist/esm/plugins/mentions/ui/InviteItem/styles.js +4 -2
- package/dist/esm/plugins/mentions/ui/ToolbarMention/index.js +2 -2
- package/dist/esm/plugins/mentions/utils.js +19 -0
- package/dist/esm/plugins/panel/index.js +44 -13
- package/dist/esm/plugins/panel/nodeviews/panel.js +36 -22
- package/dist/esm/plugins/panel/toolbar.js +92 -6
- package/dist/esm/plugins/panel/toolbar.test.js +148 -16
- package/dist/esm/plugins/paste/handlers.js +2 -2
- package/dist/esm/plugins/paste/pm-plugins/analytics.js +6 -3
- package/dist/esm/plugins/placeholder/index.js +5 -0
- package/dist/esm/plugins/quick-insert/api.js +20 -0
- package/dist/esm/plugins/quick-insert/assets/custom-panel.js +45 -0
- package/dist/esm/plugins/quick-insert/assets/index.js +12 -0
- package/dist/esm/plugins/quick-insert/index.js +10 -24
- package/dist/esm/plugins/quick-insert/search.js +1 -3
- package/dist/esm/plugins/quick-insert/ui/ModalElementBrowser/index.js +1 -0
- package/dist/esm/plugins/rank.js +1 -1
- package/dist/esm/plugins/rule/index.js +1 -22
- package/dist/esm/plugins/scroll-into-view/index.js +1 -3
- package/dist/esm/plugins/selection/gap-cursor/actions.js +5 -6
- package/dist/esm/plugins/selection/pm-plugins/selection-main.js +1 -3
- package/dist/esm/plugins/status/actions.js +5 -2
- package/dist/esm/plugins/status/plugin.js +1 -1
- package/dist/esm/plugins/table/commands/selection.js +24 -24
- package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +8 -1
- package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +14 -15
- package/dist/esm/plugins/tasks-and-decisions/nodeviews/decisionItem.js +2 -1
- package/dist/esm/plugins/tasks-and-decisions/nodeviews/taskItem.js +2 -1
- package/dist/esm/plugins/tasks-and-decisions/pm-plugins/keymaps.js +1 -2
- package/dist/esm/plugins/text-formatting/pm-plugins/cursor.js +1 -4
- package/dist/esm/plugins/type-ahead/api.js +228 -0
- package/dist/esm/plugins/type-ahead/commands/insert-type-ahead-item.js +217 -0
- package/dist/esm/plugins/type-ahead/commands/update-list-items.js +19 -0
- package/dist/esm/plugins/type-ahead/commands/update-query.js +13 -13
- package/dist/esm/plugins/type-ahead/commands/update-selected-index.js +25 -0
- package/dist/esm/plugins/type-ahead/constants.js +15 -0
- package/dist/esm/plugins/type-ahead/index.js +173 -53
- package/dist/esm/plugins/type-ahead/insert-utils.js +116 -0
- package/dist/esm/plugins/type-ahead/pm-plugins/actions.js +11 -8
- package/dist/esm/plugins/type-ahead/pm-plugins/decorations.js +204 -0
- package/dist/esm/plugins/type-ahead/pm-plugins/input-rules.js +18 -33
- package/dist/esm/plugins/type-ahead/pm-plugins/insert-item-plugin.js +18 -0
- package/dist/esm/plugins/type-ahead/pm-plugins/{plugin-key.js → key.js} +0 -0
- package/dist/esm/plugins/type-ahead/pm-plugins/main.js +80 -393
- package/dist/esm/plugins/type-ahead/pm-plugins/reducer.js +168 -0
- package/dist/esm/plugins/type-ahead/pm-plugins/utils.js +16 -0
- package/dist/esm/plugins/type-ahead/stats-modifier.js +43 -0
- package/dist/esm/plugins/type-ahead/transforms/close-type-ahead.js +7 -0
- package/dist/esm/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +39 -0
- package/dist/esm/plugins/type-ahead/transforms/set-selection-before-query.js +13 -0
- package/dist/esm/plugins/type-ahead/ui/DynamicHeightListItem.js +51 -0
- package/dist/esm/plugins/type-ahead/ui/InputQuery.js +302 -0
- package/dist/esm/plugins/type-ahead/ui/TypeAheadList.js +168 -0
- package/dist/esm/plugins/type-ahead/ui/TypeAheadListItem.js +105 -0
- package/dist/esm/plugins/type-ahead/ui/TypeAheadPopup.js +114 -0
- package/dist/esm/plugins/type-ahead/ui/WrapperTypeAhead.js +125 -0
- package/dist/esm/plugins/type-ahead/ui/hooks/use-dynamic-list-height-calculation.js +101 -0
- package/dist/esm/plugins/type-ahead/ui/hooks/use-item-insert.js +118 -0
- package/dist/esm/plugins/type-ahead/ui/hooks/use-load-items.js +46 -0
- package/dist/esm/plugins/type-ahead/ui/hooks/use-on-force-select.js +38 -0
- package/dist/esm/plugins/type-ahead/ui/hooks/use-resize-observer.js +48 -0
- package/dist/esm/plugins/type-ahead/utils.js +88 -0
- package/dist/esm/plugins/undo-redo/ui/ToolbarUndoRedo/index.js +33 -2
- package/dist/esm/plugins/view-update-subscription/index.js +19 -14
- package/dist/esm/plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates.js +10 -3
- package/dist/esm/plugins/view-update-subscription/subscribe/type-ahead-updates.js +33 -0
- package/dist/esm/test-utils.js +7 -0
- package/dist/esm/types/empty-state-handler.js +1 -0
- package/dist/esm/ui/ConfigPanel/Fields/ColorPicker.js +4 -14
- package/dist/esm/ui/ElementBrowser/ElementBrowser.js +4 -2
- package/dist/esm/ui/ElementBrowser/InsertMenu.js +1 -0
- package/dist/esm/ui/ElementBrowser/ModalElementBrowser.js +16 -23
- package/dist/esm/ui/ElementBrowser/components/ElementList/ElementList.js +10 -3
- package/dist/esm/ui/ElementBrowser/components/StatelessElementBrowser.js +12 -4
- package/dist/esm/ui/PanelTextInput/index.js +1 -3
- package/dist/esm/utils/compare.js +7 -7
- package/dist/esm/utils/index.js +7 -8
- package/dist/esm/utils/rich-media-utils.js +2 -2
- package/dist/esm/utils/selection.js +6 -3
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/commands/index.d.ts +1 -1
- package/dist/types/create-editor/ErrorBoundary.d.ts +1 -1
- package/dist/types/index.d.ts +3 -5
- package/dist/types/labs/next/full-page.d.ts +1 -1
- package/dist/types/labs/next/mobile.d.ts +1 -1
- package/dist/types/labs/next/presets/default.d.ts +2 -0
- package/dist/types/messages.d.ts +5 -0
- package/dist/types/plugins/alignment/commands/index.d.ts +2 -2
- package/dist/types/plugins/analytics/types/enums.d.ts +6 -1
- package/dist/types/plugins/analytics/types/events.d.ts +12 -2
- package/dist/types/plugins/analytics/types/general-events.d.ts +2 -23
- package/dist/types/plugins/analytics/types/type-ahead.d.ts +27 -0
- package/dist/types/plugins/block-type/messages.d.ts +10 -0
- package/dist/types/plugins/card/ui/ResizableEmbedCard.d.ts +1 -1
- package/dist/types/plugins/collab-edit/participants.d.ts +1 -0
- package/dist/types/plugins/collab-edit/ui/avatars.d.ts +3 -1
- package/dist/types/plugins/collab-edit/ui/invite-to-edit.d.ts +1 -1
- package/dist/types/plugins/collab-edit/utils.d.ts +4 -2
- package/dist/types/plugins/date/actions.d.ts +1 -1
- package/dist/types/plugins/date/pm-plugins/types.d.ts +1 -0
- package/dist/types/plugins/emoji/index.d.ts +2 -4
- package/dist/types/plugins/emoji/types.d.ts +2 -2
- package/dist/types/plugins/extension/ui/Extension/Extension/index.d.ts +2 -3
- package/dist/types/plugins/extension/ui/Extension/Extension/styles.d.ts +1 -1
- package/dist/types/plugins/extension/ui/Extension/ExtensionComponent.d.ts +2 -3
- package/dist/types/plugins/extension/ui/Extension/index.d.ts +2 -3
- package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -1
- package/dist/types/plugins/find-replace/ui/styles.d.ts +3 -3
- package/dist/types/plugins/floating-toolbar/ui/EditorEmojiAddIcon.d.ts +1 -0
- package/dist/types/plugins/floating-toolbar/ui/EditorHideEmojiIcon.d.ts +1 -0
- package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.d.ts +1 -1
- package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/types.d.ts +0 -1
- package/dist/types/plugins/media/pm-plugins/main.d.ts +1 -0
- package/dist/types/plugins/media/toolbar/filePreviewItem.d.ts +7 -0
- package/dist/types/plugins/media/toolbar/utils.d.ts +4 -0
- package/dist/types/plugins/media/types.d.ts +3 -0
- package/dist/types/plugins/media/ui/ResizableMediaSingle/index.d.ts +1 -1
- package/dist/types/plugins/media/utils/media-single.d.ts +1 -1
- package/dist/types/plugins/mentions/analytics.d.ts +1 -1
- package/dist/types/plugins/mentions/index.d.ts +4 -30
- package/dist/types/plugins/mentions/pm-plugins/key.d.ts +3 -0
- package/dist/types/plugins/mentions/pm-plugins/main.d.ts +8 -0
- package/dist/types/plugins/mentions/pm-plugins/utils.d.ts +3 -0
- package/dist/types/plugins/mentions/type-ahead/index.d.ts +17 -0
- package/dist/types/plugins/mentions/types.d.ts +2 -0
- package/dist/types/plugins/mentions/ui/InviteItem/index.d.ts +1 -0
- package/dist/types/plugins/mentions/ui/InviteItem/styles.d.ts +2 -0
- package/dist/types/plugins/mentions/utils.d.ts +4 -0
- package/dist/types/plugins/panel/nodeviews/panel.d.ts +19 -3
- package/dist/types/plugins/paste/pm-plugins/analytics.d.ts +2 -0
- package/dist/types/plugins/quick-insert/api.d.ts +6 -0
- package/dist/types/plugins/quick-insert/assets/custom-panel.d.ts +1 -0
- package/dist/types/plugins/quick-insert/assets/index.d.ts +1 -0
- package/dist/types/plugins/quick-insert/search.d.ts +1 -1
- package/dist/types/plugins/quick-insert/types.d.ts +3 -0
- package/dist/types/plugins/status/actions.d.ts +3 -1
- package/dist/types/plugins/status/ui/statusPicker.d.ts +1 -1
- package/dist/types/plugins/type-ahead/api.d.ts +53 -0
- package/dist/types/plugins/type-ahead/commands/insert-type-ahead-item.d.ts +12 -0
- package/dist/types/plugins/type-ahead/commands/update-list-items.d.ts +3 -0
- package/dist/types/plugins/type-ahead/commands/update-query.d.ts +2 -2
- package/dist/types/plugins/type-ahead/commands/update-selected-index.d.ts +2 -0
- package/dist/types/plugins/type-ahead/constants.d.ts +10 -0
- package/dist/types/plugins/type-ahead/index.d.ts +5 -4
- package/dist/types/plugins/type-ahead/insert-utils.d.ts +18 -0
- package/dist/types/plugins/type-ahead/pm-plugins/actions.d.ts +9 -8
- package/dist/types/plugins/type-ahead/pm-plugins/decorations.d.ts +24 -0
- package/dist/types/plugins/type-ahead/pm-plugins/input-rules.d.ts +0 -1
- package/dist/types/plugins/type-ahead/pm-plugins/insert-item-plugin.d.ts +2 -0
- package/dist/types/plugins/type-ahead/pm-plugins/{plugin-key.d.ts → key.d.ts} +0 -0
- package/dist/types/plugins/type-ahead/pm-plugins/main.d.ts +12 -39
- package/dist/types/plugins/type-ahead/pm-plugins/reducer.d.ts +10 -0
- package/dist/types/plugins/type-ahead/pm-plugins/utils.d.ts +4 -0
- package/dist/types/plugins/type-ahead/stats-modifier.d.ts +20 -0
- package/dist/types/plugins/type-ahead/transforms/close-type-ahead.d.ts +2 -0
- package/dist/types/plugins/type-ahead/transforms/open-typeahead-at-cursor.d.ts +9 -0
- package/dist/types/plugins/type-ahead/transforms/set-selection-before-query.d.ts +2 -0
- package/dist/types/plugins/type-ahead/types.d.ts +95 -30
- package/dist/types/plugins/type-ahead/ui/DynamicHeightListItem.d.ts +21 -0
- package/dist/types/plugins/type-ahead/ui/InputQuery.d.ts +22 -0
- package/dist/types/plugins/type-ahead/ui/TypeAheadList.d.ts +11 -0
- package/dist/types/plugins/type-ahead/ui/TypeAheadListItem.d.ts +15 -0
- package/dist/types/plugins/type-ahead/ui/TypeAheadPopup.d.ts +22 -0
- package/dist/types/plugins/type-ahead/ui/WrapperTypeAhead.d.ts +20 -0
- package/dist/types/plugins/type-ahead/ui/hooks/use-dynamic-list-height-calculation.d.ts +25 -0
- package/dist/types/plugins/type-ahead/ui/hooks/use-item-insert.d.ts +3 -0
- package/dist/types/plugins/type-ahead/ui/hooks/use-load-items.d.ts +3 -0
- package/dist/types/plugins/type-ahead/ui/hooks/use-on-force-select.d.ts +11 -0
- package/dist/types/plugins/type-ahead/ui/hooks/use-resize-observer.d.ts +9 -0
- package/dist/types/plugins/type-ahead/utils.d.ts +18 -0
- package/dist/types/plugins/view-update-subscription/subscribe/type-ahead-updates.d.ts +9 -0
- package/dist/types/test-utils.d.ts +2 -0
- package/dist/types/types/editor-props.d.ts +2 -0
- package/dist/types/types/empty-state-handler.d.ts +7 -0
- package/dist/types/types/feature-flags.d.ts +8 -0
- package/dist/types/ui/Appearance/FullPage/StyledComponents.d.ts +1 -1
- 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/FormErrorBoundary.d.ts +1 -1
- package/dist/types/ui/ElementBrowser/ElementBrowser.d.ts +2 -0
- package/dist/types/ui/ElementBrowser/ModalElementBrowser.d.ts +2 -0
- package/dist/types/ui/ElementBrowser/components/CategoryList.d.ts +1 -1
- package/dist/types/ui/ElementBrowser/components/ElementList/ElementList.d.ts +5 -1
- package/dist/types/ui/ElementBrowser/components/StatelessElementBrowser.d.ts +3 -1
- package/dist/types/ui/LinkSearch/index.d.ts +20 -20
- package/dist/types/ui/PortalProvider/index.d.ts +1 -1
- package/dist/types/ui/ToolbarButton/index.d.ts +4 -4
- package/dist/types/ui/ToolbarButton/styles.d.ts +2 -2
- package/dist/types/utils/selection.d.ts +2 -2
- package/package.json +32 -29
- package/dist/cjs/plugins/emoji/commands/insert-emoji-query.js +0 -22
- package/dist/cjs/plugins/mentions/commands/insert-mention-query.js +0 -22
- package/dist/cjs/plugins/type-ahead/commands/dismiss.js +0 -44
- package/dist/cjs/plugins/type-ahead/commands/insert-query.js +0 -38
- package/dist/cjs/plugins/type-ahead/commands/items-list-updated.js +0 -25
- package/dist/cjs/plugins/type-ahead/commands/select-item.js +0 -163
- package/dist/cjs/plugins/type-ahead/commands/set-current-index.js +0 -25
- package/dist/cjs/plugins/type-ahead/pm-plugins/keymap.js +0 -115
- package/dist/cjs/plugins/type-ahead/ui/TypeAhead.js +0 -221
- package/dist/cjs/plugins/type-ahead/ui/TypeAheadItemsList.js +0 -239
- package/dist/cjs/plugins/type-ahead/utils/find-query-mark.js +0 -33
- package/dist/cjs/plugins/type-ahead/utils/is-query-active.js +0 -16
- package/dist/es2019/plugins/emoji/commands/insert-emoji-query.js +0 -13
- package/dist/es2019/plugins/mentions/commands/insert-mention-query.js +0 -13
- package/dist/es2019/plugins/type-ahead/commands/dismiss.js +0 -36
- package/dist/es2019/plugins/type-ahead/commands/insert-query.js +0 -26
- package/dist/es2019/plugins/type-ahead/commands/items-list-updated.js +0 -12
- package/dist/es2019/plugins/type-ahead/commands/select-item.js +0 -119
- package/dist/es2019/plugins/type-ahead/commands/set-current-index.js +0 -13
- package/dist/es2019/plugins/type-ahead/pm-plugins/keymap.js +0 -94
- package/dist/es2019/plugins/type-ahead/ui/TypeAhead.js +0 -175
- package/dist/es2019/plugins/type-ahead/ui/TypeAheadItemsList.js +0 -196
- package/dist/es2019/plugins/type-ahead/utils/find-query-mark.js +0 -29
- package/dist/es2019/plugins/type-ahead/utils/is-query-active.js +0 -9
- package/dist/esm/plugins/emoji/commands/insert-emoji-query.js +0 -13
- package/dist/esm/plugins/mentions/commands/insert-mention-query.js +0 -13
- package/dist/esm/plugins/type-ahead/commands/dismiss.js +0 -33
- package/dist/esm/plugins/type-ahead/commands/insert-query.js +0 -26
- package/dist/esm/plugins/type-ahead/commands/items-list-updated.js +0 -14
- package/dist/esm/plugins/type-ahead/commands/select-item.js +0 -132
- package/dist/esm/plugins/type-ahead/commands/set-current-index.js +0 -15
- package/dist/esm/plugins/type-ahead/pm-plugins/keymap.js +0 -94
- package/dist/esm/plugins/type-ahead/ui/TypeAhead.js +0 -202
- package/dist/esm/plugins/type-ahead/ui/TypeAheadItemsList.js +0 -204
- package/dist/esm/plugins/type-ahead/utils/find-query-mark.js +0 -24
- package/dist/esm/plugins/type-ahead/utils/is-query-active.js +0 -9
- package/dist/types/plugins/emoji/commands/insert-emoji-query.d.ts +0 -2
- package/dist/types/plugins/mentions/commands/insert-mention-query.d.ts +0 -2
- package/dist/types/plugins/type-ahead/commands/dismiss.d.ts +0 -2
- package/dist/types/plugins/type-ahead/commands/insert-query.d.ts +0 -2
- package/dist/types/plugins/type-ahead/commands/items-list-updated.d.ts +0 -3
- package/dist/types/plugins/type-ahead/commands/select-item.d.ts +0 -9
- package/dist/types/plugins/type-ahead/commands/set-current-index.d.ts +0 -2
- package/dist/types/plugins/type-ahead/pm-plugins/keymap.d.ts +0 -3
- package/dist/types/plugins/type-ahead/ui/TypeAhead.d.ts +0 -37
- package/dist/types/plugins/type-ahead/ui/TypeAheadItemsList.d.ts +0 -32
- package/dist/types/plugins/type-ahead/utils/find-query-mark.d.ts +0 -10
- package/dist/types/plugins/type-ahead/utils/is-query-active.d.ts +0 -2
|
@@ -41,7 +41,7 @@ var _analytics = require("../../../../plugins/analytics");
|
|
|
41
41
|
|
|
42
42
|
var _fallback = _interopRequireDefault(require("../../../../plugins/quick-insert/assets/fallback"));
|
|
43
43
|
|
|
44
|
-
var
|
|
44
|
+
var _TypeAheadListItem = require("../../../../plugins/type-ahead/ui/TypeAheadListItem");
|
|
45
45
|
|
|
46
46
|
var _styles = require("../../../styles");
|
|
47
47
|
|
|
@@ -76,7 +76,10 @@ function ElementList(_ref) {
|
|
|
76
76
|
focusedItemIndex = _ref.focusedItemIndex,
|
|
77
77
|
setColumnCount = _ref.setColumnCount,
|
|
78
78
|
createAnalyticsEvent = _ref.createAnalyticsEvent,
|
|
79
|
-
|
|
79
|
+
emptyStateHandler = _ref.emptyStateHandler,
|
|
80
|
+
selectedCategory = _ref.selectedCategory,
|
|
81
|
+
searchTerm = _ref.searchTerm,
|
|
82
|
+
props = (0, _objectWithoutProperties2.default)(_ref, ["items", "mode", "selectedItemIndex", "focusedItemIndex", "setColumnCount", "createAnalyticsEvent", "emptyStateHandler", "selectedCategory", "searchTerm"]);
|
|
80
83
|
|
|
81
84
|
var _useContainerWidth = (0, _useContainerWidth2.default)(),
|
|
82
85
|
containerWidth = _useContainerWidth.containerWidth,
|
|
@@ -129,7 +132,11 @@ function ElementList(_ref) {
|
|
|
129
132
|
}, props)));
|
|
130
133
|
};
|
|
131
134
|
}, [items, fullMode, selectedItemIndex, focusedItemIndex, props]);
|
|
132
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ContainerWidthMonitor, null), !items.length ?
|
|
135
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ContainerWidthMonitor, null), !items.length ? emptyStateHandler ? emptyStateHandler({
|
|
136
|
+
mode: mode,
|
|
137
|
+
selectedCategory: selectedCategory,
|
|
138
|
+
searchTerm: searchTerm
|
|
139
|
+
}) : /*#__PURE__*/_react.default.createElement(_EmptyState.default, {
|
|
133
140
|
onExternalLinkClick: onExternalLinkClick
|
|
134
141
|
}) : /*#__PURE__*/_react.default.createElement(ElementItemsWrapper, {
|
|
135
142
|
"data-testid": "element-items"
|
|
@@ -314,7 +321,7 @@ var ItemTitle = _styledComponents.default.p(_templateObject9 || (_templateObject
|
|
|
314
321
|
|
|
315
322
|
var ItemAfter = _styledComponents.default.div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n flex: 0 0 auto;\n"])));
|
|
316
323
|
|
|
317
|
-
var StyledItemIcon = (0, _styledComponents.default)(
|
|
324
|
+
var StyledItemIcon = (0, _styledComponents.default)(_TypeAheadListItem.ItemIcon)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n img {\n height: 40px;\n width: 40px;\n object-fit: cover;\n }\n"])));
|
|
318
325
|
var MemoizedElementListWithAnalytics = /*#__PURE__*/(0, _react.memo)((0, _analyticsNext.withAnalyticsContext)({
|
|
319
326
|
component: 'ElementList'
|
|
320
327
|
})(ElementList));
|
|
@@ -156,7 +156,8 @@ function MobileBrowser(_ref) {
|
|
|
156
156
|
onKeyPress = _ref.onKeyPress,
|
|
157
157
|
onKeyDown = _ref.onKeyDown,
|
|
158
158
|
searchTerm = _ref.searchTerm,
|
|
159
|
-
createAnalyticsEvent = _ref.createAnalyticsEvent
|
|
159
|
+
createAnalyticsEvent = _ref.createAnalyticsEvent,
|
|
160
|
+
emptyStateHandler = _ref.emptyStateHandler;
|
|
160
161
|
return /*#__PURE__*/_react.default.createElement(MobileElementBrowserContainer, {
|
|
161
162
|
onKeyPress: onKeyPress,
|
|
162
163
|
onKeyDown: onKeyDown,
|
|
@@ -183,7 +184,10 @@ function MobileBrowser(_ref) {
|
|
|
183
184
|
focusedItemIndex: focusedItemIndex,
|
|
184
185
|
setFocusedItemIndex: setFocusedItemIndex,
|
|
185
186
|
setColumnCount: setColumnCount,
|
|
186
|
-
createAnalyticsEvent: createAnalyticsEvent
|
|
187
|
+
createAnalyticsEvent: createAnalyticsEvent,
|
|
188
|
+
emptyStateHandler: emptyStateHandler,
|
|
189
|
+
selectedCategory: selectedCategory,
|
|
190
|
+
searchTerm: searchTerm
|
|
187
191
|
})));
|
|
188
192
|
}
|
|
189
193
|
|
|
@@ -206,7 +210,8 @@ function DesktopBrowser(_ref2) {
|
|
|
206
210
|
onKeyPress = _ref2.onKeyPress,
|
|
207
211
|
onKeyDown = _ref2.onKeyDown,
|
|
208
212
|
searchTerm = _ref2.searchTerm,
|
|
209
|
-
createAnalyticsEvent = _ref2.createAnalyticsEvent
|
|
213
|
+
createAnalyticsEvent = _ref2.createAnalyticsEvent,
|
|
214
|
+
emptyStateHandler = _ref2.emptyStateHandler;
|
|
210
215
|
return /*#__PURE__*/_react.default.createElement(ElementBrowserContainer, {
|
|
211
216
|
"data-testid": "desktop__element-browser"
|
|
212
217
|
}, showCategories && /*#__PURE__*/_react.default.createElement(SideBar, {
|
|
@@ -237,7 +242,10 @@ function DesktopBrowser(_ref2) {
|
|
|
237
242
|
focusedItemIndex: focusedItemIndex,
|
|
238
243
|
setFocusedItemIndex: setFocusedItemIndex,
|
|
239
244
|
setColumnCount: setColumnCount,
|
|
240
|
-
createAnalyticsEvent: createAnalyticsEvent
|
|
245
|
+
createAnalyticsEvent: createAnalyticsEvent,
|
|
246
|
+
emptyStateHandler: emptyStateHandler,
|
|
247
|
+
selectedCategory: selectedCategory,
|
|
248
|
+
searchTerm: searchTerm
|
|
241
249
|
})));
|
|
242
250
|
}
|
|
243
251
|
|
|
@@ -178,9 +178,7 @@ var PanelTextInput = /*#__PURE__*/function (_PureComponent) {
|
|
|
178
178
|
}, {
|
|
179
179
|
key: "isUndoEvent",
|
|
180
180
|
value: function isUndoEvent(event) {
|
|
181
|
-
return event.keyCode === KeyZCode && (
|
|
182
|
-
_editorCommon.browser.mac && event.metaKey && !event.shiftKey || // ctrl + z for non-mac
|
|
183
|
-
!_editorCommon.browser.mac && event.ctrlKey);
|
|
181
|
+
return event.keyCode === KeyZCode && (_editorCommon.browser.mac && event.metaKey && !event.shiftKey || !_editorCommon.browser.mac && event.ctrlKey);
|
|
184
182
|
}
|
|
185
183
|
}, {
|
|
186
184
|
key: "isRedoEvent",
|
|
@@ -49,13 +49,13 @@ var serializeValue = function serializeValue(value) {
|
|
|
49
49
|
} // Calling toString of function returns whole function text with body.
|
|
50
50
|
// So, just return function with name.
|
|
51
51
|
else if (valueType === 'function') {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
52
|
+
return "function:".concat(value.name);
|
|
53
|
+
} else if (valueType === 'object') {
|
|
54
|
+
return {
|
|
55
|
+
type: 'object',
|
|
56
|
+
keys: Object.keys(value)
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
59
|
};
|
|
60
60
|
|
|
61
61
|
exports.serializeValue = serializeValue;
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -533,17 +533,16 @@ function liftSelection(tr, doc, $from, $to) {
|
|
|
533
533
|
var endPos = $to.end($to.depth);
|
|
534
534
|
var target = Math.max(0, findAncestorPosition(doc, $from).depth - 1);
|
|
535
535
|
tr.doc.nodesBetween(startPos, endPos, function (node, pos) {
|
|
536
|
-
if (node.isText || //
|
|
537
|
-
node.isTextblock && !node.textContent // Empty paragraph
|
|
536
|
+
if (node.isText || node.isTextblock && !node.textContent // Empty paragraph
|
|
538
537
|
) {
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
538
|
+
var res = tr.doc.resolve(tr.mapping.map(pos));
|
|
539
|
+
var sel = new _prosemirrorState.NodeSelection(res);
|
|
540
|
+
var range = sel.$from.blockRange(sel.$to);
|
|
542
541
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
}
|
|
542
|
+
if ((0, _prosemirrorTransform.liftTarget)(range) !== undefined) {
|
|
543
|
+
tr.lift(range, target);
|
|
546
544
|
}
|
|
545
|
+
}
|
|
547
546
|
});
|
|
548
547
|
startPos = tr.mapping.map(startPos);
|
|
549
548
|
endPos = tr.mapping.map(endPos);
|
|
@@ -55,8 +55,8 @@ var alignAttributes = function alignAttributes(layout, oldAttrs) {
|
|
|
55
55
|
// 'full-width' or 'wide' or 'center' -> 'wrap-left' or 'wrap-right' or 'align-end' or 'align-start'
|
|
56
56
|
if (!width || width >= 100 || oldLayout !== 'center' // == 'full-width' or 'wide'
|
|
57
57
|
) {
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
width = 50;
|
|
59
|
+
}
|
|
60
60
|
} else if (layout !== oldLayout && ['full-width', 'wide'].indexOf(oldLayout) > -1) {
|
|
61
61
|
// 'full-width' -> 'center' or 'wide'
|
|
62
62
|
// 'wide' -> 'center' or 'full-width'
|
|
@@ -64,8 +64,11 @@ function setCellSelection(view, anchor, head) {
|
|
|
64
64
|
dispatch(state.tr.setSelection(_cellSelection.CellSelection.create(state.doc, anchor, head)));
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
var normaliseNestedLayout = function normaliseNestedLayout(
|
|
68
|
-
|
|
67
|
+
var normaliseNestedLayout = function normaliseNestedLayout(_ref, node) {
|
|
68
|
+
var selection = _ref.selection,
|
|
69
|
+
doc = _ref.doc;
|
|
70
|
+
|
|
71
|
+
if (selection.$from.depth > 1) {
|
|
69
72
|
if (node.attrs.layout && node.attrs.layout !== 'default') {
|
|
70
73
|
return node.type.createChecked(_objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
71
74
|
layout: 'default'
|
|
@@ -74,7 +77,7 @@ var normaliseNestedLayout = function normaliseNestedLayout(state, node) {
|
|
|
74
77
|
// Since default isn't a valid breakout mode.
|
|
75
78
|
|
|
76
79
|
|
|
77
|
-
var breakoutMark =
|
|
80
|
+
var breakoutMark = doc.type.schema.marks.breakout;
|
|
78
81
|
|
|
79
82
|
if (breakoutMark && breakoutMark.isInSet(node.marks)) {
|
|
80
83
|
var newMarks = breakoutMark.removeFromSet(node.marks);
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.nextMajorVersion = exports.version = exports.name = void 0;
|
|
7
7
|
var name = "@atlaskit/editor-core";
|
|
8
8
|
exports.name = name;
|
|
9
|
-
var version = "
|
|
9
|
+
var version = "149.0.3";
|
|
10
10
|
exports.version = version;
|
|
11
11
|
|
|
12
12
|
var nextMajorVersion = function nextMajorVersion() {
|
package/dist/cjs/version.json
CHANGED
|
@@ -44,6 +44,10 @@ export function getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEve
|
|
|
44
44
|
const inputTracking = (_props$performanceTra = props.performanceTracking) === null || _props$performanceTra === void 0 ? void 0 : _props$performanceTra.inputTracking;
|
|
45
45
|
return {
|
|
46
46
|
createAnalyticsEvent,
|
|
47
|
+
typeAhead: {
|
|
48
|
+
createAnalyticsEvent,
|
|
49
|
+
isMobile
|
|
50
|
+
},
|
|
47
51
|
featureFlags: createFeatureFlagsFromProps(props),
|
|
48
52
|
paste: {
|
|
49
53
|
cardOptions: props.smartLinks || props.UNSAFE_cards,
|
|
@@ -74,7 +78,8 @@ export function getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEve
|
|
|
74
78
|
enableElementBrowser: props.elementBrowser && props.elementBrowser.showModal,
|
|
75
79
|
elementBrowserHelpUrl: props.elementBrowser && props.elementBrowser.helpUrl,
|
|
76
80
|
disableDefaultItems: isMobile,
|
|
77
|
-
headless: isMobile
|
|
81
|
+
headless: isMobile,
|
|
82
|
+
emptyStateHandler: props.elementBrowser && props.elementBrowser.emptyStateHandler
|
|
78
83
|
},
|
|
79
84
|
selection: {
|
|
80
85
|
useLongPressSelection: false
|
package/dist/es2019/editor.js
CHANGED
|
@@ -125,10 +125,7 @@ export default class Editor extends React.Component {
|
|
|
125
125
|
quickInsert
|
|
126
126
|
} = this.props;
|
|
127
127
|
|
|
128
|
-
if (extensionProviders && extensionProviders !== prevProps.extensionProviders ||
|
|
129
|
-
// loading but we can remove it soon when Forge will move to new API.
|
|
130
|
-
// quickInsert={Promise.resolve(consumerQuickInsert)} is one of the main reason behind this performance issue.
|
|
131
|
-
quickInsert && quickInsert !== prevProps.quickInsert) {
|
|
128
|
+
if (extensionProviders && extensionProviders !== prevProps.extensionProviders || quickInsert && quickInsert !== prevProps.quickInsert) {
|
|
132
129
|
const extensionProvider = this.prepareExtensionProvider(extensionProviders);
|
|
133
130
|
const quickInsertProvider = this.prepareQuickInsertProvider(extensionProvider, quickInsert);
|
|
134
131
|
this.setState({
|
package/dist/es2019/index.js
CHANGED
|
@@ -26,6 +26,7 @@ export { InsertStatus as HyperlinkInsertStatus, stateKey as hyperlinkStateKey }
|
|
|
26
26
|
export { pluginKey as listStateKey } from './plugins/list/pm-plugins/main';
|
|
27
27
|
export { toggleSuperscript, toggleSuperscriptWithAnalytics, toggleSubscript, toggleSubscriptWithAnalytics, toggleStrike, toggleStrikeWithAnalytics, toggleCode, toggleCodeWithAnalytics, toggleUnderline, toggleUnderlineWithAnalytics, toggleEm, toggleEmWithAnalytics, toggleStrong, toggleStrongWithAnalytics } from './plugins/text-formatting/commands/text-formatting';
|
|
28
28
|
export { subscribeToToolbarAndPickerUpdates } from './plugins/view-update-subscription/subscribe/toolbarAndPickerUpdates';
|
|
29
|
+
export { subscribeTypeAheadUpdates } from './plugins/view-update-subscription/subscribe/type-ahead-updates';
|
|
29
30
|
export { insertBlockType, insertBlockTypesWithAnalytics, setBlockType, setBlockTypeWithAnalytics } from './plugins/block-type/commands';
|
|
30
31
|
export { createTable } from './plugins/table/commands';
|
|
31
32
|
export { insertTaskDecision } from './plugins/tasks-and-decisions/commands';
|
|
@@ -37,9 +38,6 @@ export { pluginKey as datePluginKey } from './plugins/date/pm-plugins/plugin-key
|
|
|
37
38
|
export { commitStatusPicker, setStatusPickerAt, updateStatus, updateStatusWithAnalytics, removeStatus } from './plugins/status/actions';
|
|
38
39
|
export { typeAheadPluginKey } from './plugins/type-ahead';
|
|
39
40
|
export { pluginKey as quickInsertPluginKey, memoProcessItems as processQuickInsertItems } from './plugins/quick-insert';
|
|
40
|
-
export { selectItem } from './plugins/type-ahead/commands/select-item';
|
|
41
|
-
export { insertTypeAheadQuery } from './plugins/type-ahead/commands/insert-query';
|
|
42
|
-
export { dismissCommand } from './plugins/type-ahead/commands/dismiss';
|
|
43
41
|
export { insertLink, insertLinkWithAnalyticsMobileNative, insertLinkWithAnalytics, isTextAtPos, isLinkAtPos, updateLink } from './plugins/hyperlink/commands';
|
|
44
42
|
export { historyPluginKey } from './plugins/history';
|
|
45
43
|
export { INPUT_METHOD, ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from './plugins/analytics';
|
|
@@ -53,12 +51,12 @@ export { default as EditorActions } from './actions'; // Re-export from provider
|
|
|
53
51
|
|
|
54
52
|
export { PortalProvider, PortalProviderAPI, PortalRenderer } from './ui/PortalProvider';
|
|
55
53
|
export { GapCursorSelection, Side as GapCursorSide } from './plugins/selection/gap-cursor-selection';
|
|
56
|
-
export { insertMentionQuery } from './plugins/mentions/commands/insert-mention-query';
|
|
57
|
-
export { insertEmojiQuery } from './plugins/emoji/commands/insert-emoji-query';
|
|
58
54
|
export { selectionPluginKey } from './plugins/mobile-selection';
|
|
59
55
|
export { insertExpand } from './plugins/expand/commands';
|
|
60
56
|
export { default as WithPluginState } from './ui/WithPluginState';
|
|
61
57
|
export { pluginKey as floatingToolbarPluginKey } from './plugins/floating-toolbar';
|
|
62
58
|
export { lightModeStatusColorPalette, darkModeStatusColorPalette } from './ui/ColorPalette/Palettes/statusColorPalette';
|
|
63
59
|
export { DEFAULT_BORDER_COLOR } from './ui/ColorPalette/Palettes/common';
|
|
64
|
-
export { default as messages, statusMessages, dateMessages } from './messages';
|
|
60
|
+
export { default as messages, statusMessages, dateMessages } from './messages';
|
|
61
|
+
export { createTypeAheadTools } from './plugins/type-ahead/api';
|
|
62
|
+
export { createQuickInsertTools } from './plugins/quick-insert/api';
|
|
@@ -22,7 +22,7 @@ import annotationPlugin from '../../../plugins/annotation';
|
|
|
22
22
|
import quickInsertPlugin from '../../../plugins/quick-insert';
|
|
23
23
|
import selectionPlugin from '../../../plugins/selection';
|
|
24
24
|
import codeBlockPlugin from '../../../plugins/code-block';
|
|
25
|
-
import undoRedoPlugin from '../../../plugins/undo-redo';
|
|
25
|
+
import undoRedoPlugin from '../../../plugins/undo-redo';
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Note: The order that presets are added determines
|
|
@@ -52,7 +52,7 @@ export function createDefaultPreset(options) {
|
|
|
52
52
|
preset.add([textFormattingPlugin, options.textFormatting]);
|
|
53
53
|
preset.add(widthPlugin);
|
|
54
54
|
preset.add([quickInsertPlugin, options.quickInsert]);
|
|
55
|
-
preset.add([typeAheadPlugin, {
|
|
55
|
+
preset.add([typeAheadPlugin, options.typeAhead || {
|
|
56
56
|
createAnalyticsEvent: options.createAnalyticsEvent
|
|
57
57
|
}]);
|
|
58
58
|
preset.add(unsupportedContentPlugin);
|
package/dist/es2019/messages.js
CHANGED
|
@@ -89,6 +89,11 @@ export default defineMessages({
|
|
|
89
89
|
defaultMessage: 'Remove',
|
|
90
90
|
description: 'Delete the element (image, panel, table, etc.) from your document'
|
|
91
91
|
},
|
|
92
|
+
hideEmoji: {
|
|
93
|
+
id: 'fabric.editor.hideEmoji',
|
|
94
|
+
defaultMessage: 'Hide emoji',
|
|
95
|
+
description: 'Hide the emoji panel icon from custom panel'
|
|
96
|
+
},
|
|
92
97
|
visit: {
|
|
93
98
|
id: 'fabric.editor.visit',
|
|
94
99
|
defaultMessage: 'Open link in a new window',
|
|
@@ -64,8 +64,7 @@ export class SelectionBasedNodeView extends ReactNodeView {
|
|
|
64
64
|
to
|
|
65
65
|
}
|
|
66
66
|
} = this.view.state;
|
|
67
|
-
return selection.node === this.node ||
|
|
68
|
-
this.pos === from && this.posEnd === to && selection.node.eq(this.node);
|
|
67
|
+
return selection.node === this.node || this.pos === from && this.posEnd === to && selection.node.eq(this.node);
|
|
69
68
|
}
|
|
70
69
|
|
|
71
70
|
return false;
|
|
@@ -17,7 +17,11 @@ function createPlugin(options) {
|
|
|
17
17
|
return new Plugin({
|
|
18
18
|
key: analyticsPluginKey,
|
|
19
19
|
state: {
|
|
20
|
-
init: () =>
|
|
20
|
+
init: () => {
|
|
21
|
+
return { ...options,
|
|
22
|
+
fireAnalytics: fireAnalyticsEvent(options.createAnalyticsEvent)
|
|
23
|
+
};
|
|
24
|
+
},
|
|
21
25
|
apply: (tr, pluginState, _, state) => {
|
|
22
26
|
var _getFeatureFlags;
|
|
23
27
|
|
|
@@ -13,6 +13,8 @@ export let ACTION;
|
|
|
13
13
|
ACTION["ACTIVATED"] = "activated";
|
|
14
14
|
ACTION["ADDED"] = "added";
|
|
15
15
|
ACTION["BROWSER_FREEZE"] = "browserFreeze";
|
|
16
|
+
ACTION["CHANGED_BACKGROUND_COLOR"] = "changedBackgroundColor";
|
|
17
|
+
ACTION["CHANGED_ICON"] = "changedIcon";
|
|
16
18
|
ACTION["CHANGED_FULL_WIDTH_MODE"] = "changedFullWidthMode";
|
|
17
19
|
ACTION["CHANGED_LAYOUT"] = "changedLayout";
|
|
18
20
|
ACTION["CHANGED_REPLACEMENT_TEXT"] = "changedReplacementText";
|
|
@@ -56,6 +58,7 @@ export let ACTION;
|
|
|
56
58
|
ACTION["INVOKED"] = "invoked";
|
|
57
59
|
ACTION["LANGUAGE_SELECTED"] = "languageSelected";
|
|
58
60
|
ACTION["LIST_ITEM_JOINED"] = "listItemJoined";
|
|
61
|
+
ACTION["MATCHED"] = "matched";
|
|
59
62
|
ACTION["NODE_CONTENT_SANITIZED"] = "nodeContentSanitized";
|
|
60
63
|
ACTION["OPENED"] = "opened";
|
|
61
64
|
ACTION["OUTDENTED"] = "outdented";
|
|
@@ -91,6 +94,7 @@ export let ACTION;
|
|
|
91
94
|
ACTION["RENDERED"] = "rendered";
|
|
92
95
|
ACTION["ON_EDITOR_READY_CALLBACK"] = "onEditorReadyCallback";
|
|
93
96
|
ACTION["ON_CHANGE_CALLBACK"] = "onChangeCalled";
|
|
97
|
+
ACTION["REMOVE_ICON"] = "removedIcon";
|
|
94
98
|
})(ACTION || (ACTION = {}));
|
|
95
99
|
|
|
96
100
|
export let INPUT_METHOD;
|
|
@@ -162,6 +166,7 @@ export let ACTION_SUBJECT;
|
|
|
162
166
|
ACTION_SUBJECT["PLUS_MENU"] = "plusMenu";
|
|
163
167
|
ACTION_SUBJECT["PLUGIN_SLOT"] = "pluginSlot";
|
|
164
168
|
ACTION_SUBJECT["REACT_NODE_VIEW"] = "reactNodeView";
|
|
169
|
+
ACTION_SUBJECT["SELECTION"] = "selection";
|
|
165
170
|
ACTION_SUBJECT["SMART_LINK"] = "smartLink";
|
|
166
171
|
ACTION_SUBJECT["HYPERLINK"] = "hyperlink";
|
|
167
172
|
ACTION_SUBJECT["TABLE"] = "table";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -135,6 +135,16 @@ export const messages = defineMessages({
|
|
|
135
135
|
defaultMessage: 'Call out errors in a colored panel',
|
|
136
136
|
description: 'Visually distinguishes your text by adding a error panel'
|
|
137
137
|
},
|
|
138
|
+
customPanel: {
|
|
139
|
+
id: 'fabric.editor.customPanel',
|
|
140
|
+
defaultMessage: 'Custom panel',
|
|
141
|
+
description: 'Visually distinguishes your panel by adding a emoji icon and background color'
|
|
142
|
+
},
|
|
143
|
+
customPanelDescription: {
|
|
144
|
+
id: 'fabric.editor.customPanel.description',
|
|
145
|
+
defaultMessage: 'Add a note with an emoji and colored background',
|
|
146
|
+
description: 'Visually distinguishes your panel by adding a emoji icon and background color '
|
|
147
|
+
},
|
|
138
148
|
other: {
|
|
139
149
|
id: 'fabric.editor.other',
|
|
140
150
|
defaultMessage: 'Others...',
|
|
@@ -205,9 +205,7 @@ export class EmbedCardComponent extends React.PureComponent {
|
|
|
205
205
|
// since `heightAlone` is defined only when just height is available.
|
|
206
206
|
|
|
207
207
|
let heightAlone = liveHeight !== null && liveHeight !== void 0 ? liveHeight : !originalWidth && originalHeight || undefined;
|
|
208
|
-
const aspectRatio = !heightAlone && ( //
|
|
209
|
-
initialAspectRatio || // If we have initialAspectRatio (coming from iframely) we should go with that
|
|
210
|
-
originalHeight && originalWidth && originalWidth / originalHeight) || // If ADF contains both width and height we get ratio from that
|
|
208
|
+
const aspectRatio = !heightAlone && (initialAspectRatio || originalHeight && originalWidth && originalWidth / originalHeight) || // If ADF contains both width and height we get ratio from that
|
|
211
209
|
undefined;
|
|
212
210
|
const cardProps = {
|
|
213
211
|
layout,
|
|
@@ -33,6 +33,20 @@ export class Participants {
|
|
|
33
33
|
return new Participants(newSet);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
updateCursorPos(sessionId, cursorPos) {
|
|
37
|
+
const newSet = new Map(this.participants);
|
|
38
|
+
const data = newSet.get(sessionId);
|
|
39
|
+
|
|
40
|
+
if (!data) {
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
newSet.set(sessionId, { ...data,
|
|
45
|
+
cursorPos
|
|
46
|
+
});
|
|
47
|
+
return new Participants(newSet);
|
|
48
|
+
}
|
|
49
|
+
|
|
36
50
|
toArray() {
|
|
37
51
|
return Array.from(this.participants.values());
|
|
38
52
|
}
|
|
@@ -3,7 +3,7 @@ import { Selection } from 'prosemirror-state';
|
|
|
3
3
|
import { DecorationSet } from 'prosemirror-view';
|
|
4
4
|
import { ReplaceStep } from 'prosemirror-transform';
|
|
5
5
|
import { Participants } from './participants';
|
|
6
|
-
import { findPointers, createTelepointers } from './utils';
|
|
6
|
+
import { findPointers, createTelepointers, getPositionOfTelepointer } from './utils';
|
|
7
7
|
|
|
8
8
|
const isReplaceStep = step => step instanceof ReplaceStep;
|
|
9
9
|
|
|
@@ -198,6 +198,22 @@ export class PluginState {
|
|
|
198
198
|
|
|
199
199
|
if (add.length) {
|
|
200
200
|
this.decorationSet = this.decorationSet.add(tr.doc, add);
|
|
201
|
+
} // This piece needs to be after the decorationSet adjustments,
|
|
202
|
+
// otherwise it's always one step behind where the cursor is
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
if (telepointerData) {
|
|
206
|
+
const {
|
|
207
|
+
sessionId
|
|
208
|
+
} = telepointerData;
|
|
209
|
+
|
|
210
|
+
if (participants.get(sessionId)) {
|
|
211
|
+
const positionForScroll = getPositionOfTelepointer(sessionId, this.decorationSet);
|
|
212
|
+
|
|
213
|
+
if (positionForScroll) {
|
|
214
|
+
participants = participants.updateCursorPos(sessionId, positionForScroll);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
201
217
|
}
|
|
202
218
|
|
|
203
219
|
const nextState = new PluginState(this.decorationSet, participants, sid, collabInitialised);
|
|
@@ -11,7 +11,8 @@ const AvatarsWithPluginState = props => {
|
|
|
11
11
|
const {
|
|
12
12
|
isInviteToEditButtonSelected: selected,
|
|
13
13
|
inviteToEditHandler: onClick,
|
|
14
|
-
inviteToEditComponent: Component
|
|
14
|
+
inviteToEditComponent: Component,
|
|
15
|
+
editorView
|
|
15
16
|
} = props;
|
|
16
17
|
const render = React.useCallback(({
|
|
17
18
|
data
|
|
@@ -22,20 +23,21 @@ const AvatarsWithPluginState = props => {
|
|
|
22
23
|
|
|
23
24
|
return /*#__PURE__*/React.createElement(Avatars, {
|
|
24
25
|
sessionId: data.sessionId,
|
|
25
|
-
participants: data.activeParticipants
|
|
26
|
+
participants: data.activeParticipants,
|
|
27
|
+
editorView: editorView
|
|
26
28
|
}, /*#__PURE__*/React.createElement(InviteToEditButton, {
|
|
27
29
|
title: title,
|
|
28
30
|
selected: selected,
|
|
29
31
|
onClick: onClick,
|
|
30
32
|
Component: Component
|
|
31
33
|
}));
|
|
32
|
-
}, [selected, onClick, Component, title]);
|
|
34
|
+
}, [selected, onClick, Component, title, editorView]);
|
|
33
35
|
return /*#__PURE__*/React.createElement(WithPluginState, {
|
|
34
36
|
plugins: {
|
|
35
37
|
data: collabEditPluginKey
|
|
36
38
|
},
|
|
37
39
|
render: render,
|
|
38
|
-
editorView:
|
|
40
|
+
editorView: editorView
|
|
39
41
|
});
|
|
40
42
|
};
|
|
41
43
|
|
|
@@ -2,9 +2,12 @@ import React from 'react';
|
|
|
2
2
|
import AvatarGroup from '@atlaskit/avatar-group';
|
|
3
3
|
import { AvatarContainer } from './styles';
|
|
4
4
|
import toAvatar from './to-avatar';
|
|
5
|
+
import { scrollToCollabCursor } from '../utils';
|
|
6
|
+
import { getFeatureFlags } from '../../feature-flags-context';
|
|
5
7
|
export const Avatars = /*#__PURE__*/React.memo(props => {
|
|
6
8
|
const {
|
|
7
|
-
sessionId
|
|
9
|
+
sessionId,
|
|
10
|
+
editorView
|
|
8
11
|
} = props;
|
|
9
12
|
const participants = props.participants.toArray();
|
|
10
13
|
const avatars = participants.sort(p => p.sessionId === sessionId ? -1 : 1).map(toAvatar);
|
|
@@ -17,6 +20,18 @@ export const Avatars = /*#__PURE__*/React.memo(props => {
|
|
|
17
20
|
appearance: "stack",
|
|
18
21
|
size: "medium",
|
|
19
22
|
data: avatars,
|
|
20
|
-
maxCount: 3
|
|
23
|
+
maxCount: 3,
|
|
24
|
+
onAvatarClick: (_event, _analytics, index) => {
|
|
25
|
+
if (!editorView) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const featureFlags = getFeatureFlags(editorView.state);
|
|
30
|
+
const allowCollabAvatarScroll = featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.collabAvatarScroll; // user does not need to scroll to their own position (index 0)
|
|
31
|
+
|
|
32
|
+
if (allowCollabAvatarScroll && index > 0) {
|
|
33
|
+
scrollToCollabCursor(editorView, participants, props.sessionId, index);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
21
36
|
}), props.children);
|
|
22
37
|
});
|
|
@@ -3,6 +3,8 @@ import { Decoration } from 'prosemirror-view';
|
|
|
3
3
|
import * as themeColors from '@atlaskit/theme/colors';
|
|
4
4
|
import { hexToRgba } from '@atlaskit/adf-schema';
|
|
5
5
|
import { ZERO_WIDTH_SPACE } from '@atlaskit/editor-common';
|
|
6
|
+
import { addAnalytics } from '../analytics/utils';
|
|
7
|
+
import { EVENT_TYPE, ACTION, ACTION_SUBJECT } from '../analytics/types';
|
|
6
8
|
export const colors = [themeColors.R100, themeColors.R300, themeColors.R500, themeColors.Y100, themeColors.Y300, themeColors.Y500, themeColors.G100, themeColors.G300, themeColors.G500, themeColors.T100, themeColors.T300, themeColors.T500, themeColors.B100, themeColors.B300, themeColors.B500, themeColors.P100, themeColors.P300, themeColors.P500, themeColors.N70, themeColors.N200, themeColors.N800].map(solid => ({
|
|
7
9
|
solid,
|
|
8
10
|
selection: hexToRgba(solid, 0.2)
|
|
@@ -99,4 +101,36 @@ export const replaceDocument = (doc, state, version, options, reserveCursor) =>
|
|
|
99
101
|
}
|
|
100
102
|
|
|
101
103
|
return tr;
|
|
104
|
+
};
|
|
105
|
+
export const scrollToCollabCursor = (editorView, participants, sessionId, index) => {
|
|
106
|
+
const selectedUser = participants[index];
|
|
107
|
+
|
|
108
|
+
if (selectedUser && selectedUser.cursorPos !== undefined && selectedUser.sessionId !== sessionId) {
|
|
109
|
+
const {
|
|
110
|
+
state
|
|
111
|
+
} = editorView;
|
|
112
|
+
let tr = state.tr;
|
|
113
|
+
const analyticsPayload = {
|
|
114
|
+
action: ACTION.MATCHED,
|
|
115
|
+
actionSubject: ACTION_SUBJECT.SELECTION,
|
|
116
|
+
eventType: EVENT_TYPE.TRACK
|
|
117
|
+
};
|
|
118
|
+
tr.setSelection(Selection.near(tr.doc.resolve(selectedUser.cursorPos)));
|
|
119
|
+
tr = addAnalytics(state, tr, analyticsPayload);
|
|
120
|
+
tr.scrollIntoView();
|
|
121
|
+
editorView.dispatch(tr);
|
|
122
|
+
|
|
123
|
+
if (!editorView.hasFocus()) {
|
|
124
|
+
editorView.focus();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
export const getPositionOfTelepointer = (sessionId, decorationSet) => {
|
|
129
|
+
let scrollPosition;
|
|
130
|
+
decorationSet.find().forEach(deco => {
|
|
131
|
+
if (deco.type.spec.pointer.sessionId === sessionId) {
|
|
132
|
+
scrollPosition = deco.from;
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
return scrollPosition;
|
|
102
136
|
};
|
|
@@ -5,14 +5,16 @@ import { pluginKey } from './pm-plugins/plugin-key';
|
|
|
5
5
|
import { withAnalytics, addAnalytics, ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '../analytics';
|
|
6
6
|
import { isToday } from './utils/internal';
|
|
7
7
|
import { canInsert } from 'prosemirror-utils';
|
|
8
|
-
export const createDate =
|
|
8
|
+
export const createDate = isQuickInsertAction => (insert, state) => {
|
|
9
9
|
const dateNode = state.schema.nodes.date.createChecked({
|
|
10
10
|
timestamp: todayTimestampInUTC()
|
|
11
11
|
});
|
|
12
|
-
const
|
|
12
|
+
const space = state.schema.text(' ');
|
|
13
|
+
const tr = insert(Fragment.from([dateNode, space]), {
|
|
13
14
|
selectInlineNode: true
|
|
14
15
|
});
|
|
15
16
|
const newPluginState = {
|
|
17
|
+
isQuickInsertAction,
|
|
16
18
|
showDatePickerAt: tr.selection.from,
|
|
17
19
|
isNew: true,
|
|
18
20
|
isDateEmpty: false,
|
|
@@ -137,7 +137,7 @@ const datePlugin = () => ({
|
|
|
137
137
|
icon: () => /*#__PURE__*/React.createElement(IconDate, null),
|
|
138
138
|
|
|
139
139
|
action(insert, state) {
|
|
140
|
-
const tr = createDate()(insert, state);
|
|
140
|
+
const tr = createDate(true)(insert, state);
|
|
141
141
|
addAnalytics(state, tr, {
|
|
142
142
|
action: ACTION.INSERTED,
|
|
143
143
|
actionSubject: ACTION_SUBJECT.DOCUMENT,
|
|
@@ -42,7 +42,12 @@ export function mapping(tr, pluginState) {
|
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
export function onSelectionChanged(tr, pluginState) {
|
|
45
|
-
if (
|
|
45
|
+
if (tr.docChanged && isDateNodeSelection(tr.selection)) {
|
|
46
|
+
return { ...pluginState,
|
|
47
|
+
isQuickInsertAction: false,
|
|
48
|
+
showDatePickerAt: tr.selection.from
|
|
49
|
+
};
|
|
50
|
+
} else if (!isDateNodeSelection(tr.selection) && !pluginState.isQuickInsertAction) {
|
|
46
51
|
if (pluginState.showDatePickerAt) {
|
|
47
52
|
return {
|
|
48
53
|
showDatePickerAt: null,
|