@atlaskit/editor-plugin-extension 0.4.2 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +26 -0
- package/CHANGELOG.md +16 -0
- package/dist/cjs/actions.js +236 -0
- package/dist/cjs/commands.js +122 -0
- package/dist/cjs/context-panel.js +269 -0
- package/dist/cjs/extension-api.js +266 -0
- package/dist/cjs/index.js +8 -1
- package/dist/cjs/plugin-factory.js +32 -0
- package/dist/cjs/plugin-key.js +8 -0
- package/dist/cjs/plugin.js +147 -0
- package/dist/cjs/pm-plugins/keymap.js +21 -0
- package/dist/cjs/pm-plugins/macro/actions.js +186 -0
- package/dist/cjs/pm-plugins/macro/index.js +72 -0
- package/dist/cjs/pm-plugins/macro/plugin-key.js +8 -0
- package/dist/cjs/pm-plugins/macro/types.js +5 -0
- package/dist/cjs/pm-plugins/main.js +323 -0
- package/dist/cjs/pm-plugins/unique-id.js +80 -0
- package/dist/cjs/pm-plugins/utils.js +75 -0
- package/dist/cjs/reducer.js +18 -0
- package/dist/cjs/toolbar.js +242 -0
- package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +475 -0
- package/dist/cjs/ui/ConfigPanel/ConfigPanelFieldsLoader.js +122 -0
- package/dist/cjs/ui/ConfigPanel/ConfigPanelLoader.js +23 -0
- package/dist/cjs/ui/ConfigPanel/ErrorMessage/ErrorImage.js +76 -0
- package/dist/cjs/ui/ConfigPanel/ErrorMessage/index.js +33 -0
- package/dist/cjs/ui/ConfigPanel/FieldMessages.js +105 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Boolean.js +150 -0
- package/dist/cjs/ui/ConfigPanel/Fields/CheckboxGroup.js +101 -0
- package/dist/cjs/ui/ConfigPanel/Fields/ColorPicker.js +420 -0
- package/dist/cjs/ui/ConfigPanel/Fields/CustomSelect.js +192 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Date.js +55 -0
- package/dist/cjs/ui/ConfigPanel/Fields/DateRange.js +160 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Enum.js +41 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Expand.js +88 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Fieldset.js +270 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Number.js +64 -0
- package/dist/cjs/ui/ConfigPanel/Fields/RadioGroup.js +56 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Select.js +60 -0
- package/dist/cjs/ui/ConfigPanel/Fields/SelectItem.js +53 -0
- package/dist/cjs/ui/ConfigPanel/Fields/String.js +75 -0
- package/dist/cjs/ui/ConfigPanel/Fields/TabGroup.js +73 -0
- package/dist/cjs/ui/ConfigPanel/Fields/UnhandledType.js +19 -0
- package/dist/cjs/ui/ConfigPanel/Fields/UserSelect.js +268 -0
- package/dist/cjs/ui/ConfigPanel/Fields/common/RequiredIndicator.js +12 -0
- package/dist/cjs/ui/ConfigPanel/FormContent.js +231 -0
- package/dist/cjs/ui/ConfigPanel/FormErrorBoundary.js +140 -0
- package/dist/cjs/ui/ConfigPanel/Header.js +148 -0
- package/dist/cjs/ui/ConfigPanel/LoadingState.js +25 -0
- package/dist/cjs/ui/ConfigPanel/NestedForms/RemovableField.js +61 -0
- package/dist/cjs/ui/ConfigPanel/constants.js +13 -0
- package/dist/cjs/ui/ConfigPanel/index.js +9 -0
- package/dist/cjs/ui/ConfigPanel/messages.js +99 -0
- package/dist/cjs/ui/ConfigPanel/transformers.js +631 -0
- package/dist/cjs/ui/ConfigPanel/types.js +15 -0
- package/dist/cjs/ui/ConfigPanel/use-abortable-effect/index.js +56 -0
- package/dist/cjs/ui/ConfigPanel/use-state-from-promise/index.js +41 -0
- package/dist/cjs/ui/ConfigPanel/utils.js +116 -0
- package/dist/cjs/ui/SaveIndicator/SaveIndicator.js +79 -0
- package/dist/cjs/ui/SaveIndicator/messages.js +14 -0
- package/dist/cjs/ui/SaveIndicator/types.js +5 -0
- package/dist/cjs/utils.js +73 -0
- package/dist/es2019/actions.js +203 -0
- package/dist/es2019/commands.js +99 -0
- package/dist/es2019/context-panel.js +181 -0
- package/dist/es2019/extension-api.js +284 -0
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/plugin-factory.js +26 -0
- package/dist/es2019/plugin-key.js +2 -0
- package/dist/es2019/plugin.js +138 -0
- package/dist/es2019/pm-plugins/keymap.js +15 -0
- package/dist/es2019/pm-plugins/macro/actions.js +152 -0
- package/dist/es2019/pm-plugins/macro/index.js +36 -0
- package/dist/es2019/pm-plugins/macro/plugin-key.js +2 -0
- package/dist/es2019/pm-plugins/macro/types.js +1 -0
- package/dist/es2019/pm-plugins/main.js +230 -0
- package/dist/es2019/pm-plugins/unique-id.js +69 -0
- package/dist/es2019/pm-plugins/utils.js +30 -0
- package/dist/es2019/reducer.js +11 -0
- package/dist/es2019/toolbar.js +236 -0
- package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +415 -0
- package/dist/es2019/ui/ConfigPanel/ConfigPanelFieldsLoader.js +100 -0
- package/dist/es2019/ui/ConfigPanel/ConfigPanelLoader.js +7 -0
- package/dist/es2019/ui/ConfigPanel/ErrorMessage/ErrorImage.js +66 -0
- package/dist/es2019/ui/ConfigPanel/ErrorMessage/index.js +25 -0
- package/dist/es2019/ui/ConfigPanel/FieldMessages.js +101 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Boolean.js +138 -0
- package/dist/es2019/ui/ConfigPanel/Fields/CheckboxGroup.js +96 -0
- package/dist/es2019/ui/ConfigPanel/Fields/ColorPicker.js +411 -0
- package/dist/es2019/ui/ConfigPanel/Fields/CustomSelect.js +132 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Date.js +50 -0
- package/dist/es2019/ui/ConfigPanel/Fields/DateRange.js +139 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Enum.js +35 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Expand.js +73 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Fieldset.js +227 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Number.js +61 -0
- package/dist/es2019/ui/ConfigPanel/Fields/RadioGroup.js +40 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Select.js +50 -0
- package/dist/es2019/ui/ConfigPanel/Fields/SelectItem.js +47 -0
- package/dist/es2019/ui/ConfigPanel/Fields/String.js +67 -0
- package/dist/es2019/ui/ConfigPanel/Fields/TabGroup.js +57 -0
- package/dist/es2019/ui/ConfigPanel/Fields/UnhandledType.js +11 -0
- package/dist/es2019/ui/ConfigPanel/Fields/UserSelect.js +194 -0
- package/dist/es2019/ui/ConfigPanel/Fields/common/RequiredIndicator.js +5 -0
- package/dist/es2019/ui/ConfigPanel/FormContent.js +225 -0
- package/dist/es2019/ui/ConfigPanel/FormErrorBoundary.js +100 -0
- package/dist/es2019/ui/ConfigPanel/Header.js +140 -0
- package/dist/es2019/ui/ConfigPanel/LoadingState.js +15 -0
- package/dist/es2019/ui/ConfigPanel/NestedForms/RemovableField.js +52 -0
- package/dist/es2019/ui/ConfigPanel/constants.js +7 -0
- package/dist/es2019/ui/ConfigPanel/index.js +2 -0
- package/dist/es2019/ui/ConfigPanel/messages.js +93 -0
- package/dist/es2019/ui/ConfigPanel/transformers.js +367 -0
- package/dist/es2019/ui/ConfigPanel/types.js +9 -0
- package/dist/es2019/ui/ConfigPanel/use-abortable-effect/index.js +46 -0
- package/dist/es2019/ui/ConfigPanel/use-state-from-promise/index.js +30 -0
- package/dist/es2019/ui/ConfigPanel/utils.js +86 -0
- package/dist/es2019/ui/SaveIndicator/SaveIndicator.js +66 -0
- package/dist/es2019/ui/SaveIndicator/messages.js +8 -0
- package/dist/es2019/ui/SaveIndicator/types.js +1 -0
- package/dist/es2019/utils.js +65 -0
- package/dist/esm/actions.js +223 -0
- package/dist/esm/commands.js +113 -0
- package/dist/esm/context-panel.js +261 -0
- package/dist/esm/extension-api.js +259 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/plugin-factory.js +25 -0
- package/dist/esm/plugin-key.js +2 -0
- package/dist/esm/plugin.js +140 -0
- package/dist/esm/pm-plugins/keymap.js +15 -0
- package/dist/esm/pm-plugins/macro/actions.js +179 -0
- package/dist/esm/pm-plugins/macro/index.js +42 -0
- package/dist/esm/pm-plugins/macro/plugin-key.js +2 -0
- package/dist/esm/pm-plugins/macro/types.js +1 -0
- package/dist/esm/pm-plugins/main.js +298 -0
- package/dist/esm/pm-plugins/unique-id.js +74 -0
- package/dist/esm/pm-plugins/utils.js +68 -0
- package/dist/esm/reducer.js +11 -0
- package/dist/esm/toolbar.js +235 -0
- package/dist/esm/ui/ConfigPanel/ConfigPanel.js +465 -0
- package/dist/esm/ui/ConfigPanel/ConfigPanelFieldsLoader.js +112 -0
- package/dist/esm/ui/ConfigPanel/ConfigPanelLoader.js +11 -0
- package/dist/esm/ui/ConfigPanel/ErrorMessage/ErrorImage.js +68 -0
- package/dist/esm/ui/ConfigPanel/ErrorMessage/index.js +26 -0
- package/dist/esm/ui/ConfigPanel/FieldMessages.js +97 -0
- package/dist/esm/ui/ConfigPanel/Fields/Boolean.js +140 -0
- package/dist/esm/ui/ConfigPanel/Fields/CheckboxGroup.js +95 -0
- package/dist/esm/ui/ConfigPanel/Fields/ColorPicker.js +414 -0
- package/dist/esm/ui/ConfigPanel/Fields/CustomSelect.js +182 -0
- package/dist/esm/ui/ConfigPanel/Fields/Date.js +48 -0
- package/dist/esm/ui/ConfigPanel/Fields/DateRange.js +154 -0
- package/dist/esm/ui/ConfigPanel/Fields/Enum.js +34 -0
- package/dist/esm/ui/ConfigPanel/Fields/Expand.js +77 -0
- package/dist/esm/ui/ConfigPanel/Fields/Fieldset.js +261 -0
- package/dist/esm/ui/ConfigPanel/Fields/Number.js +57 -0
- package/dist/esm/ui/ConfigPanel/Fields/RadioGroup.js +46 -0
- package/dist/esm/ui/ConfigPanel/Fields/Select.js +50 -0
- package/dist/esm/ui/ConfigPanel/Fields/SelectItem.js +45 -0
- package/dist/esm/ui/ConfigPanel/Fields/String.js +65 -0
- package/dist/esm/ui/ConfigPanel/Fields/TabGroup.js +62 -0
- package/dist/esm/ui/ConfigPanel/Fields/UnhandledType.js +10 -0
- package/dist/esm/ui/ConfigPanel/Fields/UserSelect.js +258 -0
- package/dist/esm/ui/ConfigPanel/Fields/common/RequiredIndicator.js +5 -0
- package/dist/esm/ui/ConfigPanel/FormContent.js +223 -0
- package/dist/esm/ui/ConfigPanel/FormErrorBoundary.js +133 -0
- package/dist/esm/ui/ConfigPanel/Header.js +140 -0
- package/dist/esm/ui/ConfigPanel/LoadingState.js +17 -0
- package/dist/esm/ui/ConfigPanel/NestedForms/RemovableField.js +53 -0
- package/dist/esm/ui/ConfigPanel/constants.js +7 -0
- package/dist/esm/ui/ConfigPanel/index.js +2 -0
- package/dist/esm/ui/ConfigPanel/messages.js +93 -0
- package/dist/esm/ui/ConfigPanel/transformers.js +624 -0
- package/dist/esm/ui/ConfigPanel/types.js +9 -0
- package/dist/esm/ui/ConfigPanel/use-abortable-effect/index.js +49 -0
- package/dist/esm/ui/ConfigPanel/use-state-from-promise/index.js +34 -0
- package/dist/esm/ui/ConfigPanel/utils.js +109 -0
- package/dist/esm/ui/SaveIndicator/SaveIndicator.js +72 -0
- package/dist/esm/ui/SaveIndicator/messages.js +8 -0
- package/dist/esm/ui/SaveIndicator/types.js +1 -0
- package/dist/esm/utils.js +67 -0
- package/dist/types/actions.d.ts +20 -0
- package/dist/types/commands.d.ts +15 -0
- package/dist/types/context-panel.d.ts +10 -0
- package/dist/types/extension-api.d.ts +12 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/plugin-factory.d.ts +4 -0
- package/dist/types/plugin-key.d.ts +3 -0
- package/dist/types/plugin.d.ts +2 -0
- package/dist/types/pm-plugins/keymap.d.ts +3 -0
- package/dist/types/pm-plugins/macro/actions.d.ts +9 -0
- package/dist/types/pm-plugins/macro/index.d.ts +8 -0
- package/dist/types/pm-plugins/macro/plugin-key.d.ts +3 -0
- package/dist/types/pm-plugins/macro/types.d.ts +4 -0
- package/dist/types/pm-plugins/main.d.ts +25 -0
- package/dist/types/pm-plugins/unique-id.d.ts +3 -0
- package/dist/types/pm-plugins/utils.d.ts +3 -0
- package/dist/types/reducer.d.ts +2 -0
- package/dist/types/toolbar.d.ts +44 -0
- package/dist/types/types.d.ts +27 -2
- package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +22 -0
- package/dist/types/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +21 -0
- package/dist/types/ui/ConfigPanel/ConfigPanelLoader.d.ts +5 -0
- package/dist/types/ui/ConfigPanel/ErrorMessage/ErrorImage.d.ts +4 -0
- package/dist/types/ui/ConfigPanel/ErrorMessage/index.d.ts +10 -0
- package/dist/types/ui/ConfigPanel/FieldMessages.d.ts +12 -0
- package/dist/types/ui/ConfigPanel/Fields/Boolean.d.ts +8 -0
- package/dist/types/ui/ConfigPanel/Fields/CheckboxGroup.d.ts +8 -0
- package/dist/types/ui/ConfigPanel/Fields/ColorPicker.d.ts +20 -0
- package/dist/types/ui/ConfigPanel/Fields/CustomSelect.d.ts +24 -0
- package/dist/types/ui/ConfigPanel/Fields/Date.d.ts +20 -0
- package/dist/types/ui/ConfigPanel/Fields/DateRange.d.ts +20 -0
- package/dist/types/ui/ConfigPanel/Fields/Enum.d.ts +10 -0
- package/dist/types/ui/ConfigPanel/Fields/Expand.d.ts +16 -0
- package/dist/types/ui/ConfigPanel/Fields/Fieldset.d.ts +19 -0
- package/dist/types/ui/ConfigPanel/Fields/Number.d.ts +10 -0
- package/dist/types/ui/ConfigPanel/Fields/RadioGroup.d.ts +8 -0
- package/dist/types/ui/ConfigPanel/Fields/Select.d.ts +11 -0
- package/dist/types/ui/ConfigPanel/Fields/SelectItem.d.ts +5 -0
- package/dist/types/ui/ConfigPanel/Fields/String.d.ts +10 -0
- package/dist/types/ui/ConfigPanel/Fields/TabGroup.d.ts +14 -0
- package/dist/types/ui/ConfigPanel/Fields/UnhandledType.d.ts +6 -0
- package/dist/types/ui/ConfigPanel/Fields/UserSelect.d.ts +10 -0
- package/dist/types/ui/ConfigPanel/Fields/common/RequiredIndicator.d.ts +1 -0
- package/dist/types/ui/ConfigPanel/FormContent.d.ts +4 -0
- package/dist/types/ui/ConfigPanel/FormErrorBoundary.d.ts +16 -0
- package/dist/types/ui/ConfigPanel/Header.d.ts +23 -0
- package/dist/types/ui/ConfigPanel/LoadingState.d.ts +4 -0
- package/dist/types/ui/ConfigPanel/NestedForms/RemovableField.d.ts +19 -0
- package/dist/types/ui/ConfigPanel/constants.d.ts +2 -0
- package/dist/types/ui/ConfigPanel/index.d.ts +2 -0
- package/dist/types/ui/ConfigPanel/messages.d.ts +92 -0
- package/dist/types/ui/ConfigPanel/transformers.d.ts +9 -0
- package/dist/types/ui/ConfigPanel/types.d.ts +36 -0
- package/dist/types/ui/ConfigPanel/use-abortable-effect/index.d.ts +16 -0
- package/dist/types/ui/ConfigPanel/use-state-from-promise/index.d.ts +15 -0
- package/dist/types/ui/ConfigPanel/utils.d.ts +16 -0
- package/dist/types/ui/SaveIndicator/SaveIndicator.d.ts +4 -0
- package/dist/types/ui/SaveIndicator/messages.d.ts +7 -0
- package/dist/types/ui/SaveIndicator/types.d.ts +11 -0
- package/dist/types/utils.d.ts +15 -0
- package/dist/types-ts4.5/actions.d.ts +20 -0
- package/dist/types-ts4.5/commands.d.ts +15 -0
- package/dist/types-ts4.5/context-panel.d.ts +10 -0
- package/dist/types-ts4.5/extension-api.d.ts +12 -0
- package/dist/types-ts4.5/index.d.ts +2 -1
- package/dist/types-ts4.5/plugin-factory.d.ts +4 -0
- package/dist/types-ts4.5/plugin-key.d.ts +3 -0
- package/dist/types-ts4.5/plugin.d.ts +2 -0
- package/dist/types-ts4.5/pm-plugins/keymap.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/macro/actions.d.ts +9 -0
- package/dist/types-ts4.5/pm-plugins/macro/index.d.ts +8 -0
- package/dist/types-ts4.5/pm-plugins/macro/plugin-key.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/macro/types.d.ts +4 -0
- package/dist/types-ts4.5/pm-plugins/main.d.ts +25 -0
- package/dist/types-ts4.5/pm-plugins/unique-id.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils.d.ts +3 -0
- package/dist/types-ts4.5/reducer.d.ts +2 -0
- package/dist/types-ts4.5/toolbar.d.ts +44 -0
- package/dist/types-ts4.5/types.d.ts +27 -2
- package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanel.d.ts +22 -0
- package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +21 -0
- package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanelLoader.d.ts +5 -0
- package/dist/types-ts4.5/ui/ConfigPanel/ErrorMessage/ErrorImage.d.ts +4 -0
- package/dist/types-ts4.5/ui/ConfigPanel/ErrorMessage/index.d.ts +10 -0
- package/dist/types-ts4.5/ui/ConfigPanel/FieldMessages.d.ts +12 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Boolean.d.ts +8 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/CheckboxGroup.d.ts +8 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/ColorPicker.d.ts +20 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/CustomSelect.d.ts +24 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Date.d.ts +20 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/DateRange.d.ts +20 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Enum.d.ts +10 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Expand.d.ts +16 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Fieldset.d.ts +19 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Number.d.ts +10 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/RadioGroup.d.ts +8 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Select.d.ts +11 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/SelectItem.d.ts +5 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/String.d.ts +10 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/TabGroup.d.ts +14 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/UnhandledType.d.ts +6 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/UserSelect.d.ts +10 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/common/RequiredIndicator.d.ts +1 -0
- package/dist/types-ts4.5/ui/ConfigPanel/FormContent.d.ts +4 -0
- package/dist/types-ts4.5/ui/ConfigPanel/FormErrorBoundary.d.ts +16 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Header.d.ts +23 -0
- package/dist/types-ts4.5/ui/ConfigPanel/LoadingState.d.ts +4 -0
- package/dist/types-ts4.5/ui/ConfigPanel/NestedForms/RemovableField.d.ts +19 -0
- package/dist/types-ts4.5/ui/ConfigPanel/constants.d.ts +2 -0
- package/dist/types-ts4.5/ui/ConfigPanel/index.d.ts +2 -0
- package/dist/types-ts4.5/ui/ConfigPanel/messages.d.ts +92 -0
- package/dist/types-ts4.5/ui/ConfigPanel/transformers.d.ts +9 -0
- package/dist/types-ts4.5/ui/ConfigPanel/types.d.ts +39 -0
- package/dist/types-ts4.5/ui/ConfigPanel/use-abortable-effect/index.d.ts +16 -0
- package/dist/types-ts4.5/ui/ConfigPanel/use-state-from-promise/index.d.ts +18 -0
- package/dist/types-ts4.5/ui/ConfigPanel/utils.d.ts +16 -0
- package/dist/types-ts4.5/ui/SaveIndicator/SaveIndicator.d.ts +4 -0
- package/dist/types-ts4.5/ui/SaveIndicator/messages.d.ts +7 -0
- package/dist/types-ts4.5/ui/SaveIndicator/types.d.ts +11 -0
- package/dist/types-ts4.5/utils.d.ts +15 -0
- package/example-utils/config-panel/ConfigPanelWithExtensionPicker.tsx +217 -0
- package/example-utils/config-panel/ConfigPanelWithProviders.tsx +51 -0
- package/example-utils/config-panel/ExtensionNodePicker.tsx +141 -0
- package/example-utils/config-panel/FieldTypePicker.tsx +63 -0
- package/example-utils/config-panel/example-manifest-all-fields.ts +86 -0
- package/example-utils/config-panel/example-manifest-individual-fields.ts +85 -0
- package/example-utils/config-panel/fields.ts +611 -0
- package/package.json +49 -7
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
+
import { ExtensionNodeView } from '@atlaskit/editor-common/extensibility';
|
|
5
|
+
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
6
|
+
import { createSelectionClickHandler, isSelectionAtEndOfNode, isSelectionAtStartOfNode } from '@atlaskit/editor-common/selection';
|
|
7
|
+
import { NodeSelection, TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
8
|
+
import { findParentNodeOfTypeClosestToPos, findSelectedNodeOfType } from '@atlaskit/editor-prosemirror/utils';
|
|
9
|
+
import { clearEditingContext, updateState } from '../commands';
|
|
10
|
+
import { createCommand, createPluginState, getPluginState } from '../plugin-factory';
|
|
11
|
+
import { pluginKey } from '../plugin-key';
|
|
12
|
+
import { getSelectedDomElement, getSelectedExtension } from '../utils';
|
|
13
|
+
import { updateEditButton } from './utils';
|
|
14
|
+
var shouldShowEditButton = function shouldShowEditButton(extensionHandler, extensionProvider) {
|
|
15
|
+
var usesLegacyMacroBrowser = !extensionHandler && !extensionProvider || typeof extensionHandler === 'function';
|
|
16
|
+
var usesModernUpdateMethod = _typeof(extensionHandler) === 'object' && typeof extensionHandler.update === 'function';
|
|
17
|
+
if (usesLegacyMacroBrowser || usesModernUpdateMethod) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
return false;
|
|
21
|
+
};
|
|
22
|
+
var getUpdateExtensionPromise = /*#__PURE__*/function () {
|
|
23
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(view, extensionHandler, extensionProvider) {
|
|
24
|
+
var updateMethod;
|
|
25
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
26
|
+
while (1) switch (_context.prev = _context.next) {
|
|
27
|
+
case 0:
|
|
28
|
+
if (!(extensionHandler && _typeof(extensionHandler) === 'object')) {
|
|
29
|
+
_context.next = 4;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
return _context.abrupt("return", extensionHandler.update);
|
|
33
|
+
case 4:
|
|
34
|
+
if (!extensionProvider) {
|
|
35
|
+
_context.next = 10;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
_context.next = 7;
|
|
39
|
+
return updateEditButton(view, extensionProvider);
|
|
40
|
+
case 7:
|
|
41
|
+
updateMethod = _context.sent;
|
|
42
|
+
if (!updateMethod) {
|
|
43
|
+
_context.next = 10;
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
return _context.abrupt("return", updateMethod);
|
|
47
|
+
case 10:
|
|
48
|
+
throw new Error('No update method available');
|
|
49
|
+
case 11:
|
|
50
|
+
case "end":
|
|
51
|
+
return _context.stop();
|
|
52
|
+
}
|
|
53
|
+
}, _callee);
|
|
54
|
+
}));
|
|
55
|
+
return function getUpdateExtensionPromise(_x, _x2, _x3) {
|
|
56
|
+
return _ref.apply(this, arguments);
|
|
57
|
+
};
|
|
58
|
+
}();
|
|
59
|
+
export var createExtensionProviderHandler = function createExtensionProviderHandler(view) {
|
|
60
|
+
return /*#__PURE__*/function () {
|
|
61
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(name, provider) {
|
|
62
|
+
var extensionProvider;
|
|
63
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
64
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
65
|
+
case 0:
|
|
66
|
+
if (!(name === 'extensionProvider' && provider)) {
|
|
67
|
+
_context2.next = 13;
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
_context2.prev = 1;
|
|
71
|
+
_context2.next = 4;
|
|
72
|
+
return provider;
|
|
73
|
+
case 4:
|
|
74
|
+
extensionProvider = _context2.sent;
|
|
75
|
+
updateState({
|
|
76
|
+
extensionProvider: extensionProvider
|
|
77
|
+
})(view.state, view.dispatch);
|
|
78
|
+
_context2.next = 8;
|
|
79
|
+
return updateEditButton(view, extensionProvider);
|
|
80
|
+
case 8:
|
|
81
|
+
_context2.next = 13;
|
|
82
|
+
break;
|
|
83
|
+
case 10:
|
|
84
|
+
_context2.prev = 10;
|
|
85
|
+
_context2.t0 = _context2["catch"](1);
|
|
86
|
+
updateState({
|
|
87
|
+
extensionProvider: undefined
|
|
88
|
+
})(view.state, view.dispatch);
|
|
89
|
+
case 13:
|
|
90
|
+
case "end":
|
|
91
|
+
return _context2.stop();
|
|
92
|
+
}
|
|
93
|
+
}, _callee2, null, [[1, 10]]);
|
|
94
|
+
}));
|
|
95
|
+
return function (_x4, _x5) {
|
|
96
|
+
return _ref2.apply(this, arguments);
|
|
97
|
+
};
|
|
98
|
+
}();
|
|
99
|
+
};
|
|
100
|
+
export var createContextIdentifierProviderHandler = function createContextIdentifierProviderHandler(view) {
|
|
101
|
+
return /*#__PURE__*/function () {
|
|
102
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(name, provider) {
|
|
103
|
+
var contextIdentifierProvider;
|
|
104
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
105
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
106
|
+
case 0:
|
|
107
|
+
if (!(name === 'contextIdentifierProvider' && provider)) {
|
|
108
|
+
_context3.next = 11;
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
_context3.prev = 1;
|
|
112
|
+
_context3.next = 4;
|
|
113
|
+
return provider;
|
|
114
|
+
case 4:
|
|
115
|
+
contextIdentifierProvider = _context3.sent;
|
|
116
|
+
updateState({
|
|
117
|
+
contextIdentifierProvider: contextIdentifierProvider
|
|
118
|
+
})(view.state, view.dispatch);
|
|
119
|
+
_context3.next = 11;
|
|
120
|
+
break;
|
|
121
|
+
case 8:
|
|
122
|
+
_context3.prev = 8;
|
|
123
|
+
_context3.t0 = _context3["catch"](1);
|
|
124
|
+
updateState({
|
|
125
|
+
contextIdentifierProvider: undefined
|
|
126
|
+
})(view.state, view.dispatch);
|
|
127
|
+
case 11:
|
|
128
|
+
case "end":
|
|
129
|
+
return _context3.stop();
|
|
130
|
+
}
|
|
131
|
+
}, _callee3, null, [[1, 8]]);
|
|
132
|
+
}));
|
|
133
|
+
return function (_x6, _x7) {
|
|
134
|
+
return _ref3.apply(this, arguments);
|
|
135
|
+
};
|
|
136
|
+
}();
|
|
137
|
+
};
|
|
138
|
+
export var handleUpdate = function handleUpdate(_ref4) {
|
|
139
|
+
var view = _ref4.view,
|
|
140
|
+
prevState = _ref4.prevState,
|
|
141
|
+
domAtPos = _ref4.domAtPos,
|
|
142
|
+
extensionHandlers = _ref4.extensionHandlers,
|
|
143
|
+
applyChange = _ref4.applyChange;
|
|
144
|
+
var state = view.state,
|
|
145
|
+
dispatch = view.dispatch;
|
|
146
|
+
var _getPluginState = getPluginState(state),
|
|
147
|
+
element = _getPluginState.element,
|
|
148
|
+
localId = _getPluginState.localId,
|
|
149
|
+
extensionProvider = _getPluginState.extensionProvider,
|
|
150
|
+
showContextPanel = _getPluginState.showContextPanel,
|
|
151
|
+
showEditButton = _getPluginState.showEditButton;
|
|
152
|
+
|
|
153
|
+
// This fetches the selected extension node, either by keyboard selection or click for all types of extensions
|
|
154
|
+
var selectedExtension = getSelectedExtension(state, true);
|
|
155
|
+
if (!selectedExtension) {
|
|
156
|
+
if (showContextPanel) {
|
|
157
|
+
clearEditingContext(applyChange)(state, dispatch);
|
|
158
|
+
}
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
var node = selectedExtension.node;
|
|
162
|
+
var newElement = getSelectedDomElement(state.schema, domAtPos, selectedExtension);
|
|
163
|
+
|
|
164
|
+
// In some cases, showEditButton can be stale and the edit button doesn't show - @see ED-15285
|
|
165
|
+
// To be safe, we update the showEditButton state here
|
|
166
|
+
var shouldUpdateEditButton = !showEditButton && extensionProvider && element === newElement && !getSelectedExtension(prevState, true);
|
|
167
|
+
var isNewNodeSelected = node.attrs.localId ? localId !== node.attrs.localId :
|
|
168
|
+
// This is the current assumption and it's wrong but we are keeping it
|
|
169
|
+
// as fallback in case we need to turn off `allowLocalIdGeneration`
|
|
170
|
+
element !== newElement;
|
|
171
|
+
if (isNewNodeSelected || shouldUpdateEditButton) {
|
|
172
|
+
if (showContextPanel) {
|
|
173
|
+
clearEditingContext(applyChange)(state, dispatch);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
var extensionType = node.attrs.extensionType;
|
|
177
|
+
var extensionHandler = extensionHandlers[extensionType];
|
|
178
|
+
|
|
179
|
+
// showEditButton might change async based on results from extension providers
|
|
180
|
+
var _showEditButton = shouldShowEditButton(extensionHandler, extensionProvider);
|
|
181
|
+
var updateExtension = getUpdateExtensionPromise(view, extensionHandler, extensionProvider).catch(function () {
|
|
182
|
+
// do nothing;
|
|
183
|
+
});
|
|
184
|
+
updateState({
|
|
185
|
+
localId: node.attrs.localId,
|
|
186
|
+
showContextPanel: false,
|
|
187
|
+
element: newElement,
|
|
188
|
+
showEditButton: _showEditButton,
|
|
189
|
+
updateExtension: updateExtension
|
|
190
|
+
})(state, dispatch);
|
|
191
|
+
}
|
|
192
|
+
// New DOM element doesn't necessarily mean it's a new Node
|
|
193
|
+
else if (element !== newElement) {
|
|
194
|
+
updateState({
|
|
195
|
+
element: newElement
|
|
196
|
+
})(state, dispatch);
|
|
197
|
+
}
|
|
198
|
+
return true;
|
|
199
|
+
};
|
|
200
|
+
var createPlugin = function createPlugin(dispatch, providerFactory, extensionHandlers, portalProviderAPI, eventDispatcher, pluginInjectionApi) {
|
|
201
|
+
var _pluginInjectionApi$c;
|
|
202
|
+
var useLongPressSelection = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
|
|
203
|
+
var options = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : {};
|
|
204
|
+
var state = createPluginState(dispatch, {
|
|
205
|
+
showEditButton: false,
|
|
206
|
+
showContextPanel: false,
|
|
207
|
+
applyChangeToContextPanel: pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c = pluginInjectionApi.contextPanel) === null || _pluginInjectionApi$c === void 0 || (_pluginInjectionApi$c = _pluginInjectionApi$c.actions) === null || _pluginInjectionApi$c === void 0 ? void 0 : _pluginInjectionApi$c.applyChange
|
|
208
|
+
});
|
|
209
|
+
var extensionNodeViewOptions = {
|
|
210
|
+
appearance: options.appearance
|
|
211
|
+
};
|
|
212
|
+
return new SafePlugin({
|
|
213
|
+
state: state,
|
|
214
|
+
view: function view(editorView) {
|
|
215
|
+
var domAtPos = editorView.domAtPos.bind(editorView);
|
|
216
|
+
var extensionProviderHandler = createExtensionProviderHandler(editorView);
|
|
217
|
+
var contextIdentificationProviderHandler = createContextIdentifierProviderHandler(editorView);
|
|
218
|
+
providerFactory.subscribe('extensionProvider', extensionProviderHandler);
|
|
219
|
+
providerFactory.subscribe('contextIdentificationProvider', contextIdentificationProviderHandler);
|
|
220
|
+
return {
|
|
221
|
+
update: function update(view, prevState) {
|
|
222
|
+
var _pluginInjectionApi$c2;
|
|
223
|
+
handleUpdate({
|
|
224
|
+
view: view,
|
|
225
|
+
prevState: prevState,
|
|
226
|
+
domAtPos: domAtPos,
|
|
227
|
+
extensionHandlers: extensionHandlers,
|
|
228
|
+
applyChange: pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$c2 = pluginInjectionApi.contextPanel) === null || _pluginInjectionApi$c2 === void 0 ? void 0 : _pluginInjectionApi$c2.actions.applyChange
|
|
229
|
+
});
|
|
230
|
+
},
|
|
231
|
+
destroy: function destroy() {
|
|
232
|
+
providerFactory.unsubscribe('extensionProvider', extensionProviderHandler);
|
|
233
|
+
providerFactory.unsubscribe('contextIdentificationProvider', contextIdentificationProviderHandler);
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
},
|
|
237
|
+
key: pluginKey,
|
|
238
|
+
props: {
|
|
239
|
+
handleDOMEvents: {
|
|
240
|
+
/**
|
|
241
|
+
* ED-18072 - Cannot shift + arrow past bodied extension if it is not empty.
|
|
242
|
+
* This code is to handle the case where the selection starts inside or on the node and the user is trying to shift + arrow.
|
|
243
|
+
* For other part of the solution see code in: packages/editor/editor-core/src/plugins/selection/pm-plugins/events/keydown.ts
|
|
244
|
+
*/
|
|
245
|
+
keydown: function keydown(view, event) {
|
|
246
|
+
if (event instanceof KeyboardEvent && event.shiftKey && ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {
|
|
247
|
+
var _view$state = view.state,
|
|
248
|
+
schema = _view$state.schema,
|
|
249
|
+
selection = _view$state.selection,
|
|
250
|
+
$head = _view$state.selection.$head,
|
|
251
|
+
doc = _view$state.doc,
|
|
252
|
+
tr = _view$state.tr;
|
|
253
|
+
var bodiedExtension = schema.nodes.bodiedExtension;
|
|
254
|
+
if (selection instanceof TextSelection || selection instanceof NodeSelection) {
|
|
255
|
+
var maybeBodiedExtension = selection instanceof TextSelection ? findParentNodeOfTypeClosestToPos($head, bodiedExtension) : findSelectedNodeOfType(bodiedExtension)(selection);
|
|
256
|
+
if (maybeBodiedExtension) {
|
|
257
|
+
var end = maybeBodiedExtension.pos + maybeBodiedExtension.node.nodeSize;
|
|
258
|
+
if (event.key === 'ArrowUp' || event.key === 'ArrowLeft' && isSelectionAtStartOfNode($head, maybeBodiedExtension)) {
|
|
259
|
+
var anchor = end + 1;
|
|
260
|
+
|
|
261
|
+
// an offset is used here so that left arrow selects the first character before the node (consistent with arrow right)
|
|
262
|
+
var headOffset = event.key === 'ArrowLeft' ? -1 : 0;
|
|
263
|
+
var head = maybeBodiedExtension.pos + headOffset;
|
|
264
|
+
var newSelection = TextSelection.create(doc, Math.max(anchor, selection.anchor), head);
|
|
265
|
+
view.dispatch(tr.setSelection(newSelection));
|
|
266
|
+
return true;
|
|
267
|
+
}
|
|
268
|
+
if (event.key === 'ArrowDown' || event.key === 'ArrowRight' && isSelectionAtEndOfNode($head, maybeBodiedExtension)) {
|
|
269
|
+
var _anchor = maybeBodiedExtension.pos - 1;
|
|
270
|
+
var _head = end + 1;
|
|
271
|
+
var _newSelection = TextSelection.create(doc, Math.min(_anchor, selection.anchor), _head);
|
|
272
|
+
view.dispatch(tr.setSelection(_newSelection));
|
|
273
|
+
return true;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
nodeViews: {
|
|
282
|
+
// WARNING: referentiality-plugin also creates these nodeviews
|
|
283
|
+
extension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi),
|
|
284
|
+
// WARNING: referentiality-plugin also creates these nodeviews
|
|
285
|
+
bodiedExtension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi),
|
|
286
|
+
// WARNING: referentiality-plugin also creates these nodeviews
|
|
287
|
+
inlineExtension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi),
|
|
288
|
+
multiBodiedExtension: ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi)
|
|
289
|
+
},
|
|
290
|
+
handleClickOn: createSelectionClickHandler(['extension', 'bodiedExtension'], function (target) {
|
|
291
|
+
return !target.closest('.extension-content');
|
|
292
|
+
}, {
|
|
293
|
+
useLongPressSelection: useLongPressSelection
|
|
294
|
+
})
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
};
|
|
298
|
+
export { pluginKey, createPlugin, createCommand, getPluginState };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
import { uuid } from '@atlaskit/adf-schema';
|
|
5
|
+
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
6
|
+
import { stepAddsOneOf } from '@atlaskit/editor-common/utils';
|
|
7
|
+
import { PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
8
|
+
var pluginKey = new PluginKey('extensionUniqueIdPlugin');
|
|
9
|
+
var createPlugin = function createPlugin() {
|
|
10
|
+
return new SafePlugin({
|
|
11
|
+
// TODO: @see ED-8839
|
|
12
|
+
appendTransaction: function appendTransaction(transactions, _oldState, newState) {
|
|
13
|
+
var tr = newState.tr;
|
|
14
|
+
var selectionBookmark = tr.selection.getBookmark();
|
|
15
|
+
var modified = false;
|
|
16
|
+
var _newState$schema$node = newState.schema.nodes,
|
|
17
|
+
extension = _newState$schema$node.extension,
|
|
18
|
+
bodiedExtension = _newState$schema$node.bodiedExtension,
|
|
19
|
+
inlineExtension = _newState$schema$node.inlineExtension,
|
|
20
|
+
multiBodiedExtension = _newState$schema$node.multiBodiedExtension;
|
|
21
|
+
var extensionTypes = new Set([extension, bodiedExtension, inlineExtension, multiBodiedExtension]);
|
|
22
|
+
var idsObserved = new Set();
|
|
23
|
+
transactions.forEach(function (transaction) {
|
|
24
|
+
if (!transaction.docChanged) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
var isAddingExtension = transaction.steps.some(function (step) {
|
|
28
|
+
return stepAddsOneOf(step, extensionTypes);
|
|
29
|
+
});
|
|
30
|
+
if (isAddingExtension) {
|
|
31
|
+
// Can't simply look at changed nodes, as we could be adding an extension
|
|
32
|
+
newState.doc.descendants(function (node, pos) {
|
|
33
|
+
var localId = node.attrs.localId;
|
|
34
|
+
|
|
35
|
+
// Dealing with an extension - make sure it's a unique ID
|
|
36
|
+
if (!!node.type && extensionTypes.has(node.type)) {
|
|
37
|
+
if (localId && !idsObserved.has(localId)) {
|
|
38
|
+
idsObserved.add(localId);
|
|
39
|
+
// Also add a localId if it happens to not have one,
|
|
40
|
+
} else if (!localId || idsObserved.has(localId)) {
|
|
41
|
+
modified = true;
|
|
42
|
+
tr.setNodeMarkup(pos, undefined, _objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
43
|
+
localId: uuid.generate()
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* If it's a multiBodiedExtension or bodiedExtension, we'll need to keep digging;
|
|
48
|
+
* since we can have more extension nodes within the contents of that
|
|
49
|
+
*/
|
|
50
|
+
if ([multiBodiedExtension, bodiedExtension].includes(node.type)) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Otherwise continue traversing, we can encounter extensions nested in
|
|
58
|
+
* expands/bodiedExtensions
|
|
59
|
+
*/
|
|
60
|
+
return true;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
if (modified) {
|
|
65
|
+
// We want to restore to the original selection but w/o applying the mapping
|
|
66
|
+
// @see https://github.com/ProseMirror/prosemirror/issues/645
|
|
67
|
+
return tr.setSelection(selectionBookmark.resolve(tr.doc));
|
|
68
|
+
}
|
|
69
|
+
return;
|
|
70
|
+
},
|
|
71
|
+
key: pluginKey
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
export { createPlugin };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
import { getExtensionModuleNode } from '@atlaskit/editor-common/extensions';
|
|
4
|
+
import { updateState } from '../commands';
|
|
5
|
+
import { getSelectedExtension } from '../utils';
|
|
6
|
+
var maybeGetUpdateMethodFromExtensionProvider = /*#__PURE__*/function () {
|
|
7
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(view, extensionProvider) {
|
|
8
|
+
var nodeWithPos, _nodeWithPos$node$att, extensionType, extensionKey, extensionModuleNode, newNodeWithPos;
|
|
9
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
10
|
+
while (1) switch (_context.prev = _context.next) {
|
|
11
|
+
case 0:
|
|
12
|
+
nodeWithPos = getSelectedExtension(view.state, true);
|
|
13
|
+
if (nodeWithPos) {
|
|
14
|
+
_context.next = 3;
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
throw new Error('There is no selection');
|
|
18
|
+
case 3:
|
|
19
|
+
_nodeWithPos$node$att = nodeWithPos.node.attrs, extensionType = _nodeWithPos$node$att.extensionType, extensionKey = _nodeWithPos$node$att.extensionKey;
|
|
20
|
+
_context.next = 6;
|
|
21
|
+
return getExtensionModuleNode(extensionProvider, extensionType, extensionKey);
|
|
22
|
+
case 6:
|
|
23
|
+
extensionModuleNode = _context.sent;
|
|
24
|
+
newNodeWithPos = getSelectedExtension(view.state, true);
|
|
25
|
+
if (!(newNodeWithPos && newNodeWithPos.node.attrs.extensionType === extensionType && newNodeWithPos.node.attrs.extensionKey === extensionKey && newNodeWithPos.pos === nodeWithPos.pos && extensionModuleNode)) {
|
|
26
|
+
_context.next = 10;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
return _context.abrupt("return", extensionModuleNode.update);
|
|
30
|
+
case 10:
|
|
31
|
+
case "end":
|
|
32
|
+
return _context.stop();
|
|
33
|
+
}
|
|
34
|
+
}, _callee);
|
|
35
|
+
}));
|
|
36
|
+
return function maybeGetUpdateMethodFromExtensionProvider(_x, _x2) {
|
|
37
|
+
return _ref.apply(this, arguments);
|
|
38
|
+
};
|
|
39
|
+
}();
|
|
40
|
+
export var updateEditButton = /*#__PURE__*/function () {
|
|
41
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(view, extensionProvider) {
|
|
42
|
+
var updateMethod;
|
|
43
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
44
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
45
|
+
case 0:
|
|
46
|
+
_context2.prev = 0;
|
|
47
|
+
_context2.next = 3;
|
|
48
|
+
return maybeGetUpdateMethodFromExtensionProvider(view, extensionProvider);
|
|
49
|
+
case 3:
|
|
50
|
+
updateMethod = _context2.sent;
|
|
51
|
+
updateState({
|
|
52
|
+
showEditButton: !!updateMethod,
|
|
53
|
+
updateExtension: updateMethod && Promise.resolve(updateMethod) || undefined
|
|
54
|
+
})(view.state, view.dispatch);
|
|
55
|
+
return _context2.abrupt("return", updateMethod);
|
|
56
|
+
case 8:
|
|
57
|
+
_context2.prev = 8;
|
|
58
|
+
_context2.t0 = _context2["catch"](0);
|
|
59
|
+
case 10:
|
|
60
|
+
case "end":
|
|
61
|
+
return _context2.stop();
|
|
62
|
+
}
|
|
63
|
+
}, _callee2, null, [[0, 8]]);
|
|
64
|
+
}));
|
|
65
|
+
return function updateEditButton(_x3, _x4) {
|
|
66
|
+
return _ref2.apply(this, arguments);
|
|
67
|
+
};
|
|
68
|
+
}();
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
export default function (pluginState, action) {
|
|
5
|
+
switch (action.type) {
|
|
6
|
+
case 'UPDATE_STATE':
|
|
7
|
+
return _objectSpread(_objectSpread({}, pluginState), action.data);
|
|
8
|
+
default:
|
|
9
|
+
return pluginState;
|
|
10
|
+
}
|
|
11
|
+
}
|