@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,261 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
4
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
5
|
+
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; }
|
|
6
|
+
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; }
|
|
7
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import { getExtensionKeyAndNodeKey } from '@atlaskit/editor-common/extensions';
|
|
10
|
+
import { GapCursorSelection } from '@atlaskit/editor-common/selection';
|
|
11
|
+
import { NodeSelection, TextSelection } from '@atlaskit/editor-prosemirror/state';
|
|
12
|
+
import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
|
|
13
|
+
import { buildExtensionNode } from './actions';
|
|
14
|
+
import { clearEditingContext, forceAutoSave, updateState } from './commands';
|
|
15
|
+
import { getPluginState } from './pm-plugins/main';
|
|
16
|
+
import ConfigPanelLoader from './ui/ConfigPanel/ConfigPanelLoader';
|
|
17
|
+
import { SaveIndicator } from './ui/SaveIndicator/SaveIndicator';
|
|
18
|
+
import { getSelectedExtension } from './utils';
|
|
19
|
+
var areParametersEqual = function areParametersEqual(firstParameters, secondParameters) {
|
|
20
|
+
if (_typeof(firstParameters) === 'object' && _typeof(secondParameters) === 'object' && firstParameters !== null && secondParameters !== null) {
|
|
21
|
+
var firstKeys = Object.keys(firstParameters);
|
|
22
|
+
var secondKeys = Object.keys(secondParameters);
|
|
23
|
+
return firstKeys.length === secondKeys.length && firstKeys.every(function (key) {
|
|
24
|
+
return firstParameters[key] === secondParameters[key];
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return firstParameters === secondParameters;
|
|
28
|
+
};
|
|
29
|
+
export var duplicateSelection = function duplicateSelection(selectionToDuplicate, doc) {
|
|
30
|
+
if (selectionToDuplicate instanceof NodeSelection) {
|
|
31
|
+
return NodeSelection.create(doc, selectionToDuplicate.from);
|
|
32
|
+
} else if (selectionToDuplicate instanceof TextSelection) {
|
|
33
|
+
return TextSelection.create(doc, selectionToDuplicate.from, selectionToDuplicate.to);
|
|
34
|
+
} else if (selectionToDuplicate instanceof GapCursorSelection) {
|
|
35
|
+
return new GapCursorSelection(doc.resolve(selectionToDuplicate.from), selectionToDuplicate.side);
|
|
36
|
+
} else if (selectionToDuplicate instanceof CellSelection) {
|
|
37
|
+
return new CellSelection(doc.resolve(selectionToDuplicate.$anchorCell.pos), doc.resolve(selectionToDuplicate.$headCell.pos));
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
export var getContextPanel = function getContextPanel(getEditorView) {
|
|
41
|
+
return function (allowAutoSave, featureFlags, applyChange) {
|
|
42
|
+
return function (state) {
|
|
43
|
+
var nodeWithPos = getSelectedExtension(state, true);
|
|
44
|
+
|
|
45
|
+
// Adding checks to bail out early
|
|
46
|
+
if (!nodeWithPos) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
var extensionState = getPluginState(state);
|
|
50
|
+
var autoSaveResolve = extensionState.autoSaveResolve,
|
|
51
|
+
autoSaveReject = extensionState.autoSaveReject,
|
|
52
|
+
showContextPanel = extensionState.showContextPanel,
|
|
53
|
+
extensionProvider = extensionState.extensionProvider,
|
|
54
|
+
processParametersBefore = extensionState.processParametersBefore,
|
|
55
|
+
processParametersAfter = extensionState.processParametersAfter;
|
|
56
|
+
if (extensionState && showContextPanel && extensionProvider && processParametersAfter) {
|
|
57
|
+
var _nodeWithPos$node$att = nodeWithPos.node.attrs,
|
|
58
|
+
extensionType = _nodeWithPos$node$att.extensionType,
|
|
59
|
+
extensionKey = _nodeWithPos$node$att.extensionKey,
|
|
60
|
+
parameters = _nodeWithPos$node$att.parameters;
|
|
61
|
+
var _getExtensionKeyAndNo = getExtensionKeyAndNodeKey(extensionKey, extensionType),
|
|
62
|
+
_getExtensionKeyAndNo2 = _slicedToArray(_getExtensionKeyAndNo, 2),
|
|
63
|
+
extKey = _getExtensionKeyAndNo2[0],
|
|
64
|
+
nodeKey = _getExtensionKeyAndNo2[1];
|
|
65
|
+
var configParams = processParametersBefore ? processParametersBefore(parameters || {}) : parameters;
|
|
66
|
+
return /*#__PURE__*/React.createElement(SaveIndicator, {
|
|
67
|
+
duration: 5000,
|
|
68
|
+
visible: allowAutoSave
|
|
69
|
+
}, function (_ref) {
|
|
70
|
+
var onSaveStarted = _ref.onSaveStarted,
|
|
71
|
+
onSaveEnded = _ref.onSaveEnded;
|
|
72
|
+
var editorView = getEditorView === null || getEditorView === void 0 ? void 0 : getEditorView();
|
|
73
|
+
if (!editorView) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return /*#__PURE__*/React.createElement(ConfigPanelLoader, {
|
|
77
|
+
showHeader: true,
|
|
78
|
+
closeOnEsc: true,
|
|
79
|
+
extensionType: extensionType,
|
|
80
|
+
extensionKey: extKey,
|
|
81
|
+
nodeKey: nodeKey,
|
|
82
|
+
extensionParameters: parameters,
|
|
83
|
+
parameters: configParams,
|
|
84
|
+
extensionProvider: extensionProvider,
|
|
85
|
+
autoSave: allowAutoSave,
|
|
86
|
+
autoSaveTrigger: autoSaveResolve,
|
|
87
|
+
autoSaveReject: autoSaveReject,
|
|
88
|
+
onChange: /*#__PURE__*/function () {
|
|
89
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(updatedParameters) {
|
|
90
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
91
|
+
while (1) switch (_context.prev = _context.next) {
|
|
92
|
+
case 0:
|
|
93
|
+
_context.next = 2;
|
|
94
|
+
return onChangeAction(editorView, updatedParameters, parameters, nodeWithPos, onSaveStarted);
|
|
95
|
+
case 2:
|
|
96
|
+
onSaveEnded();
|
|
97
|
+
if (autoSaveResolve) {
|
|
98
|
+
autoSaveResolve();
|
|
99
|
+
}
|
|
100
|
+
if (!allowAutoSave) {
|
|
101
|
+
clearEditingContext(applyChange)(editorView.state, editorView.dispatch);
|
|
102
|
+
}
|
|
103
|
+
case 5:
|
|
104
|
+
case "end":
|
|
105
|
+
return _context.stop();
|
|
106
|
+
}
|
|
107
|
+
}, _callee);
|
|
108
|
+
}));
|
|
109
|
+
return function (_x) {
|
|
110
|
+
return _ref2.apply(this, arguments);
|
|
111
|
+
};
|
|
112
|
+
}(),
|
|
113
|
+
onCancel: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
114
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
115
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
116
|
+
case 0:
|
|
117
|
+
if (!allowAutoSave) {
|
|
118
|
+
_context2.next = 9;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
_context2.prev = 1;
|
|
122
|
+
_context2.next = 4;
|
|
123
|
+
return new Promise(function (resolve, reject) {
|
|
124
|
+
forceAutoSave(applyChange)(resolve, reject)(editorView.state, editorView.dispatch);
|
|
125
|
+
});
|
|
126
|
+
case 4:
|
|
127
|
+
_context2.next = 9;
|
|
128
|
+
break;
|
|
129
|
+
case 6:
|
|
130
|
+
_context2.prev = 6;
|
|
131
|
+
_context2.t0 = _context2["catch"](1);
|
|
132
|
+
// Even if the save failed, we should proceed with closing the panel
|
|
133
|
+
// eslint-disable-next-line no-console
|
|
134
|
+
console.error("Autosave failed with error", _context2.t0);
|
|
135
|
+
case 9:
|
|
136
|
+
clearEditingContext(applyChange)(editorView.state, editorView.dispatch);
|
|
137
|
+
case 10:
|
|
138
|
+
case "end":
|
|
139
|
+
return _context2.stop();
|
|
140
|
+
}
|
|
141
|
+
}, _callee2, null, [[1, 6]]);
|
|
142
|
+
})),
|
|
143
|
+
featureFlags: featureFlags
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
export function onChangeAction(_x2) {
|
|
151
|
+
return _onChangeAction.apply(this, arguments);
|
|
152
|
+
}
|
|
153
|
+
function _onChangeAction() {
|
|
154
|
+
_onChangeAction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(editorView) {
|
|
155
|
+
var updatedParameters,
|
|
156
|
+
oldParameters,
|
|
157
|
+
nodeWithPos,
|
|
158
|
+
onSaving,
|
|
159
|
+
_ref4,
|
|
160
|
+
processParametersAfter,
|
|
161
|
+
processParametersBefore,
|
|
162
|
+
unwrappedOldParameters,
|
|
163
|
+
key,
|
|
164
|
+
_ref5,
|
|
165
|
+
previousPositions,
|
|
166
|
+
newParameters,
|
|
167
|
+
_ref6,
|
|
168
|
+
positions,
|
|
169
|
+
node,
|
|
170
|
+
newNode,
|
|
171
|
+
positionUpdated,
|
|
172
|
+
transaction,
|
|
173
|
+
prevSelection,
|
|
174
|
+
selection,
|
|
175
|
+
positionsLess,
|
|
176
|
+
_args3 = arguments;
|
|
177
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
178
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
179
|
+
case 0:
|
|
180
|
+
updatedParameters = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
|
|
181
|
+
oldParameters = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {};
|
|
182
|
+
nodeWithPos = _args3.length > 3 ? _args3[3] : undefined;
|
|
183
|
+
onSaving = _args3.length > 4 ? _args3[4] : undefined;
|
|
184
|
+
// WARNING: editorView.state stales quickly, do not unpack
|
|
185
|
+
_ref4 = getPluginState(editorView.state), processParametersAfter = _ref4.processParametersAfter, processParametersBefore = _ref4.processParametersBefore;
|
|
186
|
+
if (processParametersAfter) {
|
|
187
|
+
_context3.next = 7;
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
return _context3.abrupt("return");
|
|
191
|
+
case 7:
|
|
192
|
+
unwrappedOldParameters = processParametersBefore ? processParametersBefore(oldParameters) : oldParameters; // todo: update to only check parameters which are in the manifest's field definitions
|
|
193
|
+
if (!areParametersEqual(unwrappedOldParameters, updatedParameters)) {
|
|
194
|
+
_context3.next = 10;
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
return _context3.abrupt("return");
|
|
198
|
+
case 10:
|
|
199
|
+
if (onSaving) {
|
|
200
|
+
onSaving();
|
|
201
|
+
}
|
|
202
|
+
key = Date.now();
|
|
203
|
+
_ref5 = getPluginState(editorView.state), previousPositions = _ref5.positions;
|
|
204
|
+
_context3.next = 15;
|
|
205
|
+
return updateState({
|
|
206
|
+
positions: _objectSpread(_objectSpread({}, previousPositions), {}, _defineProperty({}, key, nodeWithPos.pos))
|
|
207
|
+
})(editorView.state, editorView.dispatch);
|
|
208
|
+
case 15:
|
|
209
|
+
_context3.next = 17;
|
|
210
|
+
return processParametersAfter(updatedParameters);
|
|
211
|
+
case 17:
|
|
212
|
+
newParameters = _context3.sent;
|
|
213
|
+
_ref6 = getPluginState(editorView.state), positions = _ref6.positions;
|
|
214
|
+
if (positions) {
|
|
215
|
+
_context3.next = 21;
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
return _context3.abrupt("return");
|
|
219
|
+
case 21:
|
|
220
|
+
if (key in positions) {
|
|
221
|
+
_context3.next = 23;
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
return _context3.abrupt("return");
|
|
225
|
+
case 23:
|
|
226
|
+
node = nodeWithPos.node;
|
|
227
|
+
newNode = buildExtensionNode(nodeWithPos.node.toJSON().type, editorView.state.schema, _objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
228
|
+
parameters: _objectSpread(_objectSpread({}, oldParameters), newParameters)
|
|
229
|
+
}), node.content, node.marks);
|
|
230
|
+
if (newNode) {
|
|
231
|
+
_context3.next = 27;
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
return _context3.abrupt("return");
|
|
235
|
+
case 27:
|
|
236
|
+
positionUpdated = positions[key];
|
|
237
|
+
transaction = editorView.state.tr.replaceWith(positionUpdated, positionUpdated + newNode.nodeSize, newNode); // Ensure we preserve the selection, tr.replaceWith causes it to be lost in some cases
|
|
238
|
+
// when replacing the node
|
|
239
|
+
prevSelection = editorView.state.selection;
|
|
240
|
+
if (!prevSelection.eq(transaction.selection)) {
|
|
241
|
+
selection = duplicateSelection(prevSelection, transaction.doc);
|
|
242
|
+
if (selection) {
|
|
243
|
+
transaction.setSelection(selection);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
positionsLess = _objectSpread({}, getPluginState(editorView.state).positions);
|
|
247
|
+
delete positionsLess[key];
|
|
248
|
+
_context3.next = 35;
|
|
249
|
+
return updateState({
|
|
250
|
+
positions: positionsLess
|
|
251
|
+
})(editorView.state, editorView.dispatch);
|
|
252
|
+
case 35:
|
|
253
|
+
editorView.dispatch(transaction);
|
|
254
|
+
case 36:
|
|
255
|
+
case "end":
|
|
256
|
+
return _context3.stop();
|
|
257
|
+
}
|
|
258
|
+
}, _callee3);
|
|
259
|
+
}));
|
|
260
|
+
return _onChangeAction.apply(this, arguments);
|
|
261
|
+
}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
2
|
+
import { validator } from '@atlaskit/adf-utils/validator';
|
|
3
|
+
import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
4
|
+
import { nodeToJSON } from '@atlaskit/editor-common/utils';
|
|
5
|
+
import { JSONTransformer } from '@atlaskit/editor-json-transformer';
|
|
6
|
+
import { Fragment, Mark } from '@atlaskit/editor-prosemirror/model';
|
|
7
|
+
import { NodeSelection, Selection } from '@atlaskit/editor-prosemirror/state';
|
|
8
|
+
import { setTextSelection } from '@atlaskit/editor-prosemirror/utils';
|
|
9
|
+
import { setEditingContextToContextPanel } from './commands';
|
|
10
|
+
import { insertMacroFromMacroBrowser } from './pm-plugins/macro/actions';
|
|
11
|
+
import { pluginKey as macroPluginKey } from './pm-plugins/macro/plugin-key';
|
|
12
|
+
import { findNodePosWithLocalId, getDataConsumerMark, getNodeTypesReferenced, getSelectedExtension } from './utils';
|
|
13
|
+
export var getEditInLegacyMacroBrowser = function getEditInLegacyMacroBrowser(_ref) {
|
|
14
|
+
var view = _ref.view,
|
|
15
|
+
macroProvider = _ref.macroProvider,
|
|
16
|
+
editorAnalyticsAPI = _ref.editorAnalyticsAPI;
|
|
17
|
+
return function () {
|
|
18
|
+
if (!view) {
|
|
19
|
+
throw new Error("Missing view. Can't update without EditorView");
|
|
20
|
+
}
|
|
21
|
+
if (!macroProvider) {
|
|
22
|
+
throw new Error("Missing macroProvider. Can't use the macro browser for updates");
|
|
23
|
+
}
|
|
24
|
+
var nodeWithPos = getSelectedExtension(view.state, true);
|
|
25
|
+
if (!nodeWithPos) {
|
|
26
|
+
throw new Error("Missing nodeWithPos. Can't determine position of node");
|
|
27
|
+
}
|
|
28
|
+
insertMacroFromMacroBrowser(editorAnalyticsAPI)(macroProvider, nodeWithPos.node, true)(view);
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
var extensionAPICallPayload = function extensionAPICallPayload(functionName) {
|
|
32
|
+
return {
|
|
33
|
+
action: ACTION.INVOKED,
|
|
34
|
+
actionSubject: ACTION_SUBJECT.EXTENSION,
|
|
35
|
+
actionSubjectId: ACTION_SUBJECT_ID.EXTENSION_API,
|
|
36
|
+
attributes: {
|
|
37
|
+
functionName: functionName
|
|
38
|
+
},
|
|
39
|
+
eventType: EVENT_TYPE.TRACK
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
export var createExtensionAPI = function createExtensionAPI(options) {
|
|
43
|
+
var schema = options.editorView.state.schema,
|
|
44
|
+
editorAnalyticsAPI = options.editorAnalyticsAPI;
|
|
45
|
+
var nodes = Object.keys(schema.nodes);
|
|
46
|
+
var marks = Object.keys(schema.marks);
|
|
47
|
+
var validate = validator(nodes, marks, {
|
|
48
|
+
allowPrivateAttributes: true
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Finds the node and its position by `localId`. Throws if the node could not be found.
|
|
53
|
+
*
|
|
54
|
+
* @returns {NodeWithPos}
|
|
55
|
+
*/
|
|
56
|
+
var ensureNodePosByLocalId = function ensureNodePosByLocalId(localId, _ref2) {
|
|
57
|
+
var opName = _ref2.opName;
|
|
58
|
+
// Be extra cautious since 3rd party devs can use regular JS without type safety
|
|
59
|
+
if (typeof localId !== 'string' || localId === '') {
|
|
60
|
+
throw new Error("".concat(opName, "(): Invalid localId '").concat(localId, "'."));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Find the node + position matching the given ID
|
|
64
|
+
var state = options.editorView.state;
|
|
65
|
+
var nodePos = findNodePosWithLocalId(state, localId);
|
|
66
|
+
if (!nodePos) {
|
|
67
|
+
throw new Error("".concat(opName, "(): Could not find node with ID '").concat(localId, "'."));
|
|
68
|
+
}
|
|
69
|
+
return nodePos;
|
|
70
|
+
};
|
|
71
|
+
var doc = {
|
|
72
|
+
insertAfter: function insertAfter(localId, adf, opt) {
|
|
73
|
+
try {
|
|
74
|
+
validate(adf);
|
|
75
|
+
} catch (e) {
|
|
76
|
+
throw new Error("insertAfter(): Invalid ADF given.");
|
|
77
|
+
}
|
|
78
|
+
var nodePos = ensureNodePosByLocalId(localId, {
|
|
79
|
+
opName: 'insertAfter'
|
|
80
|
+
});
|
|
81
|
+
var editorView = options.editorView;
|
|
82
|
+
var dispatch = editorView.dispatch,
|
|
83
|
+
state = editorView.state;
|
|
84
|
+
|
|
85
|
+
// Validate the given ADF
|
|
86
|
+
var tr = state.tr,
|
|
87
|
+
schema = state.schema;
|
|
88
|
+
var nodeType = schema.nodes[adf.type];
|
|
89
|
+
if (!nodeType) {
|
|
90
|
+
throw new Error("insertAfter(): Invalid ADF type '".concat(adf.type, "'."));
|
|
91
|
+
}
|
|
92
|
+
var fragment = Fragment.fromJSON(schema, adf.content);
|
|
93
|
+
var marks = (adf.marks || []).map(function (markEntity) {
|
|
94
|
+
return Mark.fromJSON(schema, markEntity);
|
|
95
|
+
});
|
|
96
|
+
var newNode = nodeType === null || nodeType === void 0 ? void 0 : nodeType.createChecked(adf.attrs, fragment, marks);
|
|
97
|
+
if (!newNode) {
|
|
98
|
+
throw new Error('insertAfter(): Could not create a node for given ADFEntity.');
|
|
99
|
+
}
|
|
100
|
+
var insertPosition = nodePos.pos + nodePos.node.nodeSize;
|
|
101
|
+
tr.insert(insertPosition, newNode);
|
|
102
|
+
|
|
103
|
+
// Validate if the document is valid at this point
|
|
104
|
+
try {
|
|
105
|
+
tr.doc.check();
|
|
106
|
+
} catch (err) {
|
|
107
|
+
throw new Error("insertAfter(): The given ADFEntity cannot be inserted in the current position.\n".concat(err));
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Analytics - tracking the api call
|
|
111
|
+
var apiCallPayload = extensionAPICallPayload('insertAfter');
|
|
112
|
+
editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(apiCallPayload)(tr);
|
|
113
|
+
|
|
114
|
+
// Analytics - tracking node types added
|
|
115
|
+
var nodesAdded = [newNode];
|
|
116
|
+
newNode.descendants(function (node) {
|
|
117
|
+
nodesAdded.push(node);
|
|
118
|
+
return true;
|
|
119
|
+
});
|
|
120
|
+
nodesAdded.forEach(function (node) {
|
|
121
|
+
var _node$attrs = node.attrs,
|
|
122
|
+
extensionKey = _node$attrs.extensionKey,
|
|
123
|
+
extensionType = _node$attrs.extensionType;
|
|
124
|
+
var dataConsumerMark = getDataConsumerMark(node);
|
|
125
|
+
var stringIds = (dataConsumerMark === null || dataConsumerMark === void 0 ? void 0 : dataConsumerMark.attrs.sources.map(function (sourceId) {
|
|
126
|
+
return sourceId;
|
|
127
|
+
})) || [];
|
|
128
|
+
var hasReferentiality = !!dataConsumerMark;
|
|
129
|
+
var nodeTypesReferenced = hasReferentiality ? getNodeTypesReferenced(stringIds, state) : undefined;
|
|
130
|
+
|
|
131
|
+
// fire off analytics for this ADF
|
|
132
|
+
var payload = {
|
|
133
|
+
action: ACTION.INSERTED,
|
|
134
|
+
actionSubject: ACTION_SUBJECT.DOCUMENT,
|
|
135
|
+
attributes: {
|
|
136
|
+
nodeType: node.type.name,
|
|
137
|
+
inputMethod: INPUT_METHOD.EXTENSION_API,
|
|
138
|
+
hasReferentiality: hasReferentiality,
|
|
139
|
+
nodeTypesReferenced: nodeTypesReferenced,
|
|
140
|
+
layout: node.attrs.layout,
|
|
141
|
+
extensionType: extensionType,
|
|
142
|
+
extensionKey: extensionKey
|
|
143
|
+
},
|
|
144
|
+
eventType: EVENT_TYPE.TRACK
|
|
145
|
+
};
|
|
146
|
+
editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(payload)(tr);
|
|
147
|
+
});
|
|
148
|
+
if (opt && opt.allowSelectionToNewNode) {
|
|
149
|
+
tr.setSelection(new NodeSelection(tr.doc.resolve(insertPosition)));
|
|
150
|
+
}
|
|
151
|
+
dispatch(tr);
|
|
152
|
+
},
|
|
153
|
+
scrollTo: function scrollTo(localId) {
|
|
154
|
+
var nodePos = ensureNodePosByLocalId(localId, {
|
|
155
|
+
opName: 'scrollTo'
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
// Analytics - tracking the api call
|
|
159
|
+
var apiCallPayload = extensionAPICallPayload('scrollTo');
|
|
160
|
+
var _options$editorView = options.editorView,
|
|
161
|
+
dispatch = _options$editorView.dispatch,
|
|
162
|
+
state = _options$editorView.state;
|
|
163
|
+
var tr = state.tr;
|
|
164
|
+
editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(apiCallPayload)(tr);
|
|
165
|
+
tr = setTextSelection(nodePos.pos)(tr);
|
|
166
|
+
tr = tr.scrollIntoView();
|
|
167
|
+
dispatch(tr);
|
|
168
|
+
},
|
|
169
|
+
update: function update(localId, mutationCallback) {
|
|
170
|
+
var _changedValues$marks;
|
|
171
|
+
var _ensureNodePosByLocal = ensureNodePosByLocalId(localId, {
|
|
172
|
+
opName: 'update'
|
|
173
|
+
}),
|
|
174
|
+
node = _ensureNodePosByLocal.node,
|
|
175
|
+
pos = _ensureNodePosByLocal.pos;
|
|
176
|
+
var _options$editorView2 = options.editorView,
|
|
177
|
+
dispatch = _options$editorView2.dispatch,
|
|
178
|
+
state = _options$editorView2.state;
|
|
179
|
+
var tr = state.tr,
|
|
180
|
+
schema = state.schema;
|
|
181
|
+
var changedValues = mutationCallback({
|
|
182
|
+
content: nodeToJSON(node).content,
|
|
183
|
+
attrs: node.attrs,
|
|
184
|
+
marks: node.marks.map(function (pmMark) {
|
|
185
|
+
return {
|
|
186
|
+
type: pmMark.type.name,
|
|
187
|
+
attrs: pmMark.attrs
|
|
188
|
+
};
|
|
189
|
+
})
|
|
190
|
+
});
|
|
191
|
+
var ensureValidMark = function ensureValidMark(mark) {
|
|
192
|
+
if (_typeof(mark) !== 'object' || Array.isArray(mark)) {
|
|
193
|
+
throw new Error("update(): Invalid mark given.");
|
|
194
|
+
}
|
|
195
|
+
var _state$doc$resolve = state.doc.resolve(pos),
|
|
196
|
+
parent = _state$doc$resolve.parent;
|
|
197
|
+
// Ensure that the given mark is present in the schema
|
|
198
|
+
var markType = schema.marks[mark.type];
|
|
199
|
+
if (!markType) {
|
|
200
|
+
throw new Error("update(): Invalid ADF mark type '".concat(mark.type, "'."));
|
|
201
|
+
}
|
|
202
|
+
if (!parent.type.allowsMarkType(markType)) {
|
|
203
|
+
throw new Error("update(): Parent of type '".concat(parent.type.name, "' does not allow marks of type '").concat(mark.type, "'."));
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
mark: markType,
|
|
207
|
+
attrs: mark.attrs
|
|
208
|
+
};
|
|
209
|
+
};
|
|
210
|
+
var newMarks = changedValues.hasOwnProperty('marks') ? (_changedValues$marks = changedValues.marks) === null || _changedValues$marks === void 0 ? void 0 : _changedValues$marks.map(ensureValidMark).map(function (_ref3) {
|
|
211
|
+
var mark = _ref3.mark,
|
|
212
|
+
attrs = _ref3.attrs;
|
|
213
|
+
return mark.create(attrs);
|
|
214
|
+
}) : node.marks;
|
|
215
|
+
var newContent = changedValues.hasOwnProperty('content') ? Fragment.fromJSON(schema, changedValues.content) : node.content;
|
|
216
|
+
var newAttrs = changedValues.hasOwnProperty('attrs') ? changedValues.attrs : node.attrs;
|
|
217
|
+
|
|
218
|
+
// Validate if the new attributes, content and marks result in a valid node and adf.
|
|
219
|
+
try {
|
|
220
|
+
var newNode = node.type.createChecked(newAttrs, newContent, newMarks);
|
|
221
|
+
var newNodeAdf = new JSONTransformer().encodeNode(newNode);
|
|
222
|
+
validate(newNodeAdf);
|
|
223
|
+
tr.replaceWith(pos, pos + node.nodeSize, newNode);
|
|
224
|
+
|
|
225
|
+
// Keep selection if content does not change
|
|
226
|
+
if (newContent === node.content) {
|
|
227
|
+
tr.setSelection(Selection.fromJSON(tr.doc, state.selection.toJSON()));
|
|
228
|
+
}
|
|
229
|
+
} catch (err) {
|
|
230
|
+
throw new Error("update(): The given ADFEntity cannot be inserted in the current position.\n".concat(err));
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Analytics - tracking the api call
|
|
234
|
+
var apiCallPayload = extensionAPICallPayload('update');
|
|
235
|
+
editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(apiCallPayload)(tr);
|
|
236
|
+
dispatch(tr);
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
return {
|
|
240
|
+
editInContextPanel: function editInContextPanel(transformBefore, transformAfter) {
|
|
241
|
+
var editorView = options.editorView;
|
|
242
|
+
setEditingContextToContextPanel(transformBefore, transformAfter, options.applyChange)(editorView.state, editorView.dispatch, editorView);
|
|
243
|
+
},
|
|
244
|
+
_editInLegacyMacroBrowser: function _editInLegacyMacroBrowser() {
|
|
245
|
+
var editorView = options.editorView;
|
|
246
|
+
var editInLegacy = options.editInLegacyMacroBrowser;
|
|
247
|
+
if (!editInLegacy) {
|
|
248
|
+
var macroState = macroPluginKey.getState(editorView.state);
|
|
249
|
+
editInLegacy = getEditInLegacyMacroBrowser({
|
|
250
|
+
view: options.editorView,
|
|
251
|
+
macroProvider: (macroState === null || macroState === void 0 ? void 0 : macroState.macroProvider) || undefined,
|
|
252
|
+
editorAnalyticsAPI: editorAnalyticsAPI
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
editInLegacy();
|
|
256
|
+
},
|
|
257
|
+
doc: doc
|
|
258
|
+
};
|
|
259
|
+
};
|
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export { extensionPlugin } from './plugin';
|
|
@@ -0,0 +1,25 @@
|
|
|
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 { pluginFactory } from '@atlaskit/editor-common/utils';
|
|
5
|
+
import { pluginKey } from './plugin-key';
|
|
6
|
+
import reducer from './reducer';
|
|
7
|
+
var factory = pluginFactory(pluginKey, reducer, {
|
|
8
|
+
mapping: function mapping(tr, state) {
|
|
9
|
+
var _ref = state,
|
|
10
|
+
previousPositions = _ref.positions;
|
|
11
|
+
if (!previousPositions) {
|
|
12
|
+
return state;
|
|
13
|
+
}
|
|
14
|
+
var positions = _objectSpread({}, previousPositions);
|
|
15
|
+
for (var key in positions) {
|
|
16
|
+
positions[key] = tr.mapping.map(positions[key]);
|
|
17
|
+
}
|
|
18
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
19
|
+
positions: positions
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
export var createPluginState = factory.createPluginState;
|
|
24
|
+
export var createCommand = factory.createCommand;
|
|
25
|
+
export var getPluginState = factory.getPluginState;
|