@atlaskit/editor-core 182.0.3 → 182.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +2 -0
- package/CHANGELOG.md +40 -0
- package/README.md +20 -0
- package/architecture/0001-record-architecture-decisions.md +25 -0
- package/architecture/0002-deep-equality-check-for-getsharedstate.md +67 -0
- package/architecture/0003-explicit-plugin-dependencies.md +291 -0
- package/dist/cjs/actions/index.js +17 -6
- package/dist/cjs/analytics-api/attach-payload-into-transaction.js +2 -1
- package/dist/cjs/create-editor/ErrorBoundary.js +1 -16
- package/dist/cjs/create-editor/ReactEditorViewInternal.js +3 -3
- package/dist/cjs/editor-next/editor-internal.js +2 -1
- package/dist/cjs/editor-next/index.js +5 -1
- package/dist/cjs/editor.js +9 -5
- package/dist/cjs/keymaps/index.js +12 -0
- package/dist/cjs/labs/next/internal/hooks/use-editor/index.js +5 -7
- package/dist/cjs/labs/next/presets/default.js +1 -2
- package/dist/cjs/plugins/card/index.js +16 -5
- package/dist/cjs/plugins/card/pm-plugins/actions.js +10 -1
- package/dist/cjs/plugins/card/pm-plugins/analytics/create-analytics-queue.js +48 -0
- package/dist/cjs/plugins/card/pm-plugins/analytics/events-from-tr.js +337 -0
- package/dist/cjs/plugins/card/pm-plugins/analytics/index.js +19 -0
- package/dist/cjs/plugins/card/pm-plugins/analytics/types.js +5 -0
- package/dist/cjs/plugins/card/pm-plugins/analytics/utils.js +139 -0
- package/dist/cjs/plugins/card/pm-plugins/doc.js +99 -22
- package/dist/cjs/plugins/card/pm-plugins/main.js +16 -10
- package/dist/cjs/plugins/card/pm-plugins/reducers.js +7 -0
- package/dist/cjs/plugins/card/pm-plugins/util/resolve.js +3 -7
- package/dist/cjs/plugins/card/toolbar.js +18 -8
- package/dist/cjs/plugins/card/ui/EditLinkToolbar.js +12 -8
- package/dist/cjs/plugins/card/ui/EditorSmartCardEventsNext.js +202 -0
- package/dist/cjs/plugins/card/ui/LinkToolbarAppearance.js +12 -4
- package/dist/cjs/plugins/card/utils.js +4 -2
- package/dist/cjs/plugins/extension/context-panel.js +3 -2
- package/dist/cjs/plugins/extension/index.js +4 -1
- package/dist/cjs/plugins/help-dialog/ui/index.js +29 -8
- package/dist/cjs/plugins/hyperlink/Toolbar.js +12 -2
- package/dist/cjs/plugins/hyperlink/commands.js +9 -5
- package/dist/cjs/plugins/hyperlink/pm-plugins/input-rule.js +4 -0
- package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +2 -2
- package/dist/cjs/plugins/index.js +0 -7
- package/dist/cjs/plugins/insert-block/index.js +5 -1
- package/dist/cjs/plugins/insert-block/ui/ToolbarInsertBlock/index.js +25 -23
- package/dist/cjs/plugins/media/index.js +9 -5
- package/dist/cjs/plugins/media/pm-plugins/main.js +5 -4
- package/dist/cjs/plugins/media/utils/media-single.js +1 -4
- package/dist/cjs/plugins/panel/pm-plugins/keymaps.js +2 -1
- package/dist/cjs/plugins/paste/handlers.js +5 -5
- package/dist/cjs/plugins/paste/index.js +4 -2
- package/dist/cjs/plugins/paste/pm-plugins/main.js +6 -4
- package/dist/cjs/plugins/rule/commands.js +2 -2
- package/dist/cjs/plugins/rule/index.js +5 -4
- package/dist/cjs/plugins/rule/pm-plugins/input-rule.js +6 -8
- package/dist/cjs/plugins/rule/pm-plugins/keymap.js +2 -2
- package/dist/cjs/plugins/text-color/index.js +5 -2
- package/dist/cjs/plugins/text-color/ui/ToolbarTextColor/index.js +3 -4
- package/dist/cjs/plugins/text-formatting/ui/Toolbar/toolbar-messages.js +10 -0
- package/dist/cjs/ui/Appearance/FullPage/FullPage.js +2 -4
- package/dist/cjs/ui/ColorPalette/index.js +6 -0
- package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +15 -10
- package/dist/cjs/ui/ConfigPanel/ConfigPanelFieldsLoader.js +3 -1
- package/dist/cjs/ui/ConfigPanel/Fields/ColorPicker.js +248 -17
- package/dist/cjs/ui/ConfigPanel/FormContent.js +12 -6
- package/dist/cjs/ui/ConfigPanel/utils.js +2 -12
- package/dist/cjs/ui/ContentStyles/index.js +2 -5
- package/dist/cjs/ui/MediaAndEmbedsToolbar/index.js +16 -8
- package/dist/cjs/utils/document.js +5 -3
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/actions/index.js +10 -4
- package/dist/es2019/analytics-api/attach-payload-into-transaction.js +2 -1
- package/dist/es2019/create-editor/ErrorBoundary.js +1 -13
- package/dist/es2019/create-editor/ReactEditorViewInternal.js +2 -2
- package/dist/es2019/editor-next/editor-internal.js +2 -1
- package/dist/es2019/editor-next/index.js +5 -1
- package/dist/es2019/editor.js +5 -2
- package/dist/es2019/keymaps/index.js +1 -1
- package/dist/es2019/labs/next/internal/hooks/use-editor/index.js +4 -6
- package/dist/es2019/labs/next/presets/default.js +1 -2
- package/dist/es2019/plugins/card/index.js +15 -5
- package/dist/es2019/plugins/card/pm-plugins/actions.js +4 -0
- package/dist/es2019/plugins/card/pm-plugins/analytics/create-analytics-queue.js +38 -0
- package/dist/es2019/plugins/card/pm-plugins/analytics/events-from-tr.js +316 -0
- package/dist/es2019/plugins/card/pm-plugins/analytics/index.js +2 -0
- package/dist/es2019/plugins/card/pm-plugins/analytics/types.js +1 -0
- package/dist/es2019/plugins/card/pm-plugins/analytics/utils.js +124 -0
- package/dist/es2019/plugins/card/pm-plugins/doc.js +94 -20
- package/dist/es2019/plugins/card/pm-plugins/main.js +17 -8
- package/dist/es2019/plugins/card/pm-plugins/reducers.js +8 -0
- package/dist/es2019/plugins/card/pm-plugins/util/resolve.js +3 -7
- package/dist/es2019/plugins/card/toolbar.js +16 -8
- package/dist/es2019/plugins/card/ui/EditLinkToolbar.js +13 -9
- package/dist/es2019/plugins/card/ui/EditorSmartCardEventsNext.js +180 -0
- package/dist/es2019/plugins/card/ui/LinkToolbarAppearance.js +11 -2
- package/dist/es2019/plugins/card/utils.js +6 -2
- package/dist/es2019/plugins/extension/context-panel.js +3 -2
- package/dist/es2019/plugins/extension/index.js +45 -41
- package/dist/es2019/plugins/help-dialog/ui/index.js +17 -1
- package/dist/es2019/plugins/hyperlink/Toolbar.js +13 -4
- package/dist/es2019/plugins/hyperlink/commands.js +9 -6
- package/dist/es2019/plugins/hyperlink/pm-plugins/input-rule.js +4 -0
- package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +2 -2
- package/dist/es2019/plugins/index.js +0 -1
- package/dist/es2019/plugins/insert-block/index.js +96 -91
- package/dist/es2019/plugins/insert-block/ui/ToolbarInsertBlock/index.js +3 -2
- package/dist/es2019/plugins/media/index.js +202 -198
- package/dist/es2019/plugins/media/pm-plugins/main.js +5 -4
- package/dist/es2019/plugins/media/utils/media-single.js +1 -5
- package/dist/es2019/plugins/panel/pm-plugins/keymaps.js +3 -2
- package/dist/es2019/plugins/paste/handlers.js +6 -6
- package/dist/es2019/plugins/paste/index.js +18 -14
- package/dist/es2019/plugins/paste/pm-plugins/main.js +7 -5
- package/dist/es2019/plugins/rule/commands.js +2 -2
- package/dist/es2019/plugins/rule/index.js +49 -46
- package/dist/es2019/plugins/rule/pm-plugins/input-rule.js +6 -7
- package/dist/es2019/plugins/rule/pm-plugins/keymap.js +2 -2
- package/dist/es2019/plugins/text-color/index.js +49 -44
- package/dist/es2019/plugins/text-color/ui/ToolbarTextColor/index.js +3 -3
- package/dist/es2019/plugins/text-formatting/ui/Toolbar/toolbar-messages.js +10 -0
- package/dist/es2019/ui/Appearance/FullPage/FullPage.js +2 -4
- package/dist/es2019/ui/ColorPalette/index.js +2 -2
- package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +8 -4
- package/dist/es2019/ui/ConfigPanel/ConfigPanelFieldsLoader.js +3 -1
- package/dist/es2019/ui/ConfigPanel/Fields/ColorPicker.js +238 -13
- package/dist/es2019/ui/ConfigPanel/FormContent.js +12 -6
- package/dist/es2019/ui/ConfigPanel/utils.js +1 -11
- package/dist/es2019/ui/ContentStyles/index.js +2 -5
- package/dist/es2019/ui/MediaAndEmbedsToolbar/index.js +12 -10
- package/dist/es2019/utils/document.js +5 -3
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/actions/index.js +17 -6
- package/dist/esm/analytics-api/attach-payload-into-transaction.js +2 -1
- package/dist/esm/create-editor/ErrorBoundary.js +1 -16
- package/dist/esm/create-editor/ReactEditorViewInternal.js +2 -2
- package/dist/esm/editor-next/editor-internal.js +2 -1
- package/dist/esm/editor-next/index.js +5 -1
- package/dist/esm/editor.js +9 -5
- package/dist/esm/keymaps/index.js +1 -1
- package/dist/esm/labs/next/internal/hooks/use-editor/index.js +4 -6
- package/dist/esm/labs/next/presets/default.js +1 -2
- package/dist/esm/plugins/card/index.js +13 -5
- package/dist/esm/plugins/card/pm-plugins/actions.js +8 -0
- package/dist/esm/plugins/card/pm-plugins/analytics/create-analytics-queue.js +41 -0
- package/dist/esm/plugins/card/pm-plugins/analytics/events-from-tr.js +328 -0
- package/dist/esm/plugins/card/pm-plugins/analytics/index.js +2 -0
- package/dist/esm/plugins/card/pm-plugins/analytics/types.js +1 -0
- package/dist/esm/plugins/card/pm-plugins/analytics/utils.js +124 -0
- package/dist/esm/plugins/card/pm-plugins/doc.js +98 -22
- package/dist/esm/plugins/card/pm-plugins/main.js +16 -10
- package/dist/esm/plugins/card/pm-plugins/reducers.js +7 -0
- package/dist/esm/plugins/card/pm-plugins/util/resolve.js +3 -7
- package/dist/esm/plugins/card/toolbar.js +18 -8
- package/dist/esm/plugins/card/ui/EditLinkToolbar.js +13 -9
- package/dist/esm/plugins/card/ui/EditorSmartCardEventsNext.js +191 -0
- package/dist/esm/plugins/card/ui/LinkToolbarAppearance.js +12 -4
- package/dist/esm/plugins/card/utils.js +4 -2
- package/dist/esm/plugins/extension/context-panel.js +3 -2
- package/dist/esm/plugins/extension/index.js +4 -1
- package/dist/esm/plugins/help-dialog/ui/index.js +29 -8
- package/dist/esm/plugins/hyperlink/Toolbar.js +13 -3
- package/dist/esm/plugins/hyperlink/commands.js +9 -5
- package/dist/esm/plugins/hyperlink/pm-plugins/input-rule.js +4 -0
- package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/index.js +2 -2
- package/dist/esm/plugins/index.js +0 -1
- package/dist/esm/plugins/insert-block/index.js +5 -1
- package/dist/esm/plugins/insert-block/ui/ToolbarInsertBlock/index.js +25 -23
- package/dist/esm/plugins/media/index.js +9 -5
- package/dist/esm/plugins/media/pm-plugins/main.js +5 -4
- package/dist/esm/plugins/media/utils/media-single.js +1 -4
- package/dist/esm/plugins/panel/pm-plugins/keymaps.js +3 -2
- package/dist/esm/plugins/paste/handlers.js +6 -6
- package/dist/esm/plugins/paste/index.js +4 -2
- package/dist/esm/plugins/paste/pm-plugins/main.js +7 -5
- package/dist/esm/plugins/rule/commands.js +2 -2
- package/dist/esm/plugins/rule/index.js +5 -4
- package/dist/esm/plugins/rule/pm-plugins/input-rule.js +6 -8
- package/dist/esm/plugins/rule/pm-plugins/keymap.js +2 -2
- package/dist/esm/plugins/text-color/index.js +5 -2
- package/dist/esm/plugins/text-color/ui/ToolbarTextColor/index.js +3 -4
- package/dist/esm/plugins/text-formatting/ui/Toolbar/toolbar-messages.js +10 -0
- package/dist/esm/ui/Appearance/FullPage/FullPage.js +2 -4
- package/dist/esm/ui/ColorPalette/index.js +2 -2
- package/dist/esm/ui/ConfigPanel/ConfigPanel.js +15 -10
- package/dist/esm/ui/ConfigPanel/ConfigPanelFieldsLoader.js +3 -1
- package/dist/esm/ui/ConfigPanel/Fields/ColorPicker.js +244 -19
- package/dist/esm/ui/ConfigPanel/FormContent.js +12 -6
- package/dist/esm/ui/ConfigPanel/utils.js +0 -10
- package/dist/esm/ui/ContentStyles/index.js +2 -5
- package/dist/esm/ui/MediaAndEmbedsToolbar/index.js +16 -8
- package/dist/esm/utils/document.js +5 -3
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/actions/index.d.ts +3 -2
- package/dist/types/create-editor/ErrorBoundary.d.ts +2 -2
- package/dist/types/editor-next/index.d.ts +1 -0
- package/dist/types/editor.d.ts +1 -0
- package/dist/types/keymaps/index.d.ts +1 -1
- package/dist/types/labs/next/internal/hooks/use-editor/index.d.ts +2 -1
- package/dist/types/labs/next/presets/cxhtml.d.ts +1 -5
- package/dist/types/labs/next/presets/default.d.ts +2 -10
- package/dist/types/labs/next/presets/mobile.d.ts +1 -5
- package/dist/types/plugins/card/pm-plugins/actions.d.ts +2 -1
- package/dist/types/plugins/card/pm-plugins/analytics/create-analytics-queue.d.ts +10 -0
- package/dist/types/plugins/card/pm-plugins/analytics/events-from-tr.d.ts +17 -0
- package/dist/types/plugins/card/pm-plugins/analytics/index.d.ts +2 -0
- package/dist/types/plugins/card/pm-plugins/analytics/types.d.ts +10 -0
- package/dist/types/plugins/card/pm-plugins/analytics/utils.d.ts +26 -0
- package/dist/types/plugins/card/pm-plugins/doc.d.ts +8 -7
- package/dist/types/plugins/card/pm-plugins/main.d.ts +1 -1
- package/dist/types/plugins/card/pm-plugins/util/resolve.d.ts +2 -2
- package/dist/types/plugins/card/pm-plugins/util/state.d.ts +3 -0
- package/dist/types/plugins/card/types.d.ts +81 -7
- package/dist/types/plugins/card/ui/EditLinkToolbar.d.ts +2 -1
- package/dist/types/plugins/card/ui/EditorSmartCardEventsNext.d.ts +18 -0
- package/dist/types/plugins/card/utils.d.ts +1 -1
- package/dist/types/plugins/extension/context-panel.d.ts +2 -1
- package/dist/types/plugins/extension/index.d.ts +2 -0
- package/dist/types/plugins/hyperlink/commands.d.ts +3 -2
- package/dist/types/plugins/hyperlink/ui/HyperlinkAddToolbar/index.d.ts +2 -1
- package/dist/types/plugins/index.d.ts +0 -1
- package/dist/types/plugins/insert-block/index.d.ts +2 -0
- package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/types.d.ts +2 -1
- package/dist/types/plugins/media/index.d.ts +2 -0
- package/dist/types/plugins/media/pm-plugins/main.d.ts +3 -2
- package/dist/types/plugins/media/utils/media-single.d.ts +1 -1
- package/dist/types/plugins/paste/index.d.ts +2 -0
- package/dist/types/plugins/paste/pm-plugins/main.d.ts +2 -1
- package/dist/types/plugins/rule/commands.d.ts +2 -1
- package/dist/types/plugins/rule/index.d.ts +5 -1
- package/dist/types/plugins/rule/pm-plugins/input-rule.d.ts +1 -1
- package/dist/types/plugins/rule/pm-plugins/keymap.d.ts +2 -1
- package/dist/types/plugins/text-color/index.d.ts +2 -0
- package/dist/types/plugins/text-color/ui/ToolbarTextColor/index.d.ts +2 -0
- package/dist/types/plugins/text-formatting/ui/Toolbar/toolbar-messages.d.ts +10 -0
- package/dist/types/types/editor-appearance-component.d.ts +1 -1
- package/dist/types/types/editor-props.d.ts +1 -0
- package/dist/types/ui/Appearance/FullPage/FullPage.d.ts +2 -0
- package/dist/types/ui/ColorPalette/index.d.ts +2 -2
- package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +3 -1
- package/dist/types/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +3 -1
- package/dist/types/ui/ConfigPanel/Fields/ColorPicker.d.ts +12 -1
- package/dist/types/ui/ConfigPanel/FormContent.d.ts +2 -2
- package/dist/types/ui/ConfigPanel/types.d.ts +3 -0
- package/dist/types/ui/ConfigPanel/utils.d.ts +0 -1
- package/dist/types/ui/MediaAndEmbedsToolbar/index.d.ts +1 -1
- package/package.json +14 -13
- package/report.api.md +10 -0
- package/dist/cjs/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +0 -12
- package/dist/cjs/plugins/feature-flags-context/get-feature-flags.js +0 -11
- package/dist/cjs/plugins/feature-flags-context/index.js +0 -50
- package/dist/cjs/plugins/feature-flags-context/plugin-key.js +0 -9
- package/dist/es2019/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +0 -1
- package/dist/es2019/plugins/feature-flags-context/get-feature-flags.js +0 -2
- package/dist/es2019/plugins/feature-flags-context/index.js +0 -29
- package/dist/es2019/plugins/feature-flags-context/plugin-key.js +0 -2
- package/dist/esm/plugins/feature-flags-context/get-enabled-feature-flag-keys.js +0 -1
- package/dist/esm/plugins/feature-flags-context/get-feature-flags.js +0 -4
- package/dist/esm/plugins/feature-flags-context/index.js +0 -40
- package/dist/esm/plugins/feature-flags-context/plugin-key.js +0 -2
- package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +0 -1
- package/dist/types/plugins/feature-flags-context/get-feature-flags.d.ts +0 -3
- package/dist/types/plugins/feature-flags-context/index.d.ts +0 -9
- package/dist/types/plugins/feature-flags-context/plugin-key.d.ts +0 -2
|
@@ -27,6 +27,7 @@ var _editorPropTypes = require("./utils/editorPropTypes");
|
|
|
27
27
|
var _trackEditorActions = _interopRequireDefault(require("./utils/trackEditorActions"));
|
|
28
28
|
var _onEditorCreated2 = _interopRequireDefault(require("./utils/onEditorCreated"));
|
|
29
29
|
var _deprecationWarnings = _interopRequireDefault(require("./utils/deprecationWarnings"));
|
|
30
|
+
var _featureFlagsFromProps = require("../create-editor/feature-flags-from-props");
|
|
30
31
|
var _plugins = require("../plugins");
|
|
31
32
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
32
33
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -52,6 +53,9 @@ var EditorNext = /*#__PURE__*/function (_React$Component) {
|
|
|
52
53
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleAnalyticsEvent", function (data) {
|
|
53
54
|
return (0, _analytics.fireAnalyticsEvent)(_this.createAnalyticsEvent)(data);
|
|
54
55
|
});
|
|
56
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getFeatureFlags", function () {
|
|
57
|
+
return (0, _featureFlagsFromProps.createFeatureFlagsFromProps)(_this.props);
|
|
58
|
+
});
|
|
55
59
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getExperienceStore", function () {
|
|
56
60
|
return _this.experienceStore;
|
|
57
61
|
});
|
|
@@ -89,7 +93,7 @@ var EditorNext = /*#__PURE__*/function (_React$Component) {
|
|
|
89
93
|
}, {
|
|
90
94
|
key: "registerEditorForActions",
|
|
91
95
|
value: function registerEditorForActions(editorView, eventDispatcher, contentTransformer) {
|
|
92
|
-
this.editorActions._privateRegisterEditor(editorView, eventDispatcher, contentTransformer);
|
|
96
|
+
this.editorActions._privateRegisterEditor(editorView, eventDispatcher, contentTransformer, this.getFeatureFlags);
|
|
93
97
|
}
|
|
94
98
|
}, {
|
|
95
99
|
key: "unregisterEditorFromActions",
|
package/dist/cjs/editor.js
CHANGED
|
@@ -27,6 +27,7 @@ var _editorPropTypes = require("./editor-next/utils/editorPropTypes");
|
|
|
27
27
|
var _trackEditorActions2 = _interopRequireDefault(require("./editor-next/utils/trackEditorActions"));
|
|
28
28
|
var _onEditorCreated2 = _interopRequireDefault(require("./editor-next/utils/onEditorCreated"));
|
|
29
29
|
var _deprecationWarnings = _interopRequireDefault(require("./editor-next/utils/deprecationWarnings"));
|
|
30
|
+
var _featureFlagsFromProps = require("./create-editor/feature-flags-from-props");
|
|
30
31
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
31
32
|
var _prepareQuickInsertProvider = _interopRequireDefault(require("./utils/prepare-quick-insert-provider"));
|
|
32
33
|
var _prepareExtensionProvider = _interopRequireDefault(require("./utils/prepare-extension-provider"));
|
|
@@ -66,6 +67,9 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
66
67
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleAnalyticsEvent", function (data) {
|
|
67
68
|
return (0, _analytics.fireAnalyticsEvent)(_this.createAnalyticsEvent)(data);
|
|
68
69
|
});
|
|
70
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getFeatureFlags", function () {
|
|
71
|
+
return (0, _featureFlagsFromProps.createFeatureFlagsFromProps)(_this.props);
|
|
72
|
+
});
|
|
69
73
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getExperienceStore", function () {
|
|
70
74
|
return _this.experienceStore;
|
|
71
75
|
});
|
|
@@ -262,18 +266,18 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
262
266
|
* and need to find a workaround.
|
|
263
267
|
*/
|
|
264
268
|
function registerEditorForActions(editorView, eventDispatcher, contentTransformer) {
|
|
265
|
-
this.editorActions._privateRegisterEditor(editorView, eventDispatcher, contentTransformer);
|
|
269
|
+
this.editorActions._privateRegisterEditor(editorView, eventDispatcher, contentTransformer, this.getFeatureFlags);
|
|
266
270
|
}
|
|
267
|
-
|
|
271
|
+
}, {
|
|
272
|
+
key: "unregisterEditorFromActions",
|
|
273
|
+
value:
|
|
268
274
|
/**
|
|
269
275
|
* @private
|
|
270
276
|
* @deprecated - Do not override this at all, this is an antipattern.
|
|
271
277
|
* Please reach out to the Editor team if you were previously using this
|
|
272
278
|
* and need to find a workaround.
|
|
273
279
|
*/
|
|
274
|
-
|
|
275
|
-
key: "unregisterEditorFromActions",
|
|
276
|
-
value: function unregisterEditorFromActions() {
|
|
280
|
+
function unregisterEditorFromActions() {
|
|
277
281
|
this.editorActions._privateUnregisterEditor();
|
|
278
282
|
}
|
|
279
283
|
}, {
|
|
@@ -285,6 +285,18 @@ Object.defineProperty(exports, "moveUp", {
|
|
|
285
285
|
return _keymaps.moveUp;
|
|
286
286
|
}
|
|
287
287
|
});
|
|
288
|
+
Object.defineProperty(exports, "navToEditorToolbar", {
|
|
289
|
+
enumerable: true,
|
|
290
|
+
get: function get() {
|
|
291
|
+
return _keymaps.navToEditorToolbar;
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
Object.defineProperty(exports, "navToFloatingToolbar", {
|
|
295
|
+
enumerable: true,
|
|
296
|
+
get: function get() {
|
|
297
|
+
return _keymaps.navToFloatingToolbar;
|
|
298
|
+
}
|
|
299
|
+
});
|
|
288
300
|
Object.defineProperty(exports, "nextCell", {
|
|
289
301
|
enumerable: true,
|
|
290
302
|
get: function get() {
|
|
@@ -13,8 +13,7 @@ var _utils = require("@atlaskit/editor-common/utils");
|
|
|
13
13
|
var _measureEnum = _interopRequireDefault(require("../../../../../utils/performance/measure-enum"));
|
|
14
14
|
var _utils2 = require("../../../../../utils");
|
|
15
15
|
var _analytics = require("../../../../../plugins/analytics");
|
|
16
|
-
var
|
|
17
|
-
var _featureFlagsContext = require("../../../../../plugins/feature-flags-context/");
|
|
16
|
+
var _normalizeFeatureFlags = require("@atlaskit/editor-common/normalize-feature-flags");
|
|
18
17
|
var _useAnalytics = require("../use-analytics");
|
|
19
18
|
var _createDispatchTransaction = require("./create-dispatch-transaction");
|
|
20
19
|
var _createEditor = require("./create-editor");
|
|
@@ -28,7 +27,7 @@ function useEditor(config) {
|
|
|
28
27
|
editorSharedConfig = _useCreateEditor2[0],
|
|
29
28
|
mountEditor = _useCreateEditor2[1];
|
|
30
29
|
useApplyEditorViewProps(editorSharedConfig, config.disabled);
|
|
31
|
-
useHandleEditorLifecycle(editorSharedConfig);
|
|
30
|
+
useHandleEditorLifecycle(editorSharedConfig, config.featureFlags);
|
|
32
31
|
(0, _useAnalytics.useAnalyticsHandler)(editorSharedConfig);
|
|
33
32
|
return [editorSharedConfig, mountEditor];
|
|
34
33
|
}
|
|
@@ -127,7 +126,7 @@ function useApplyEditorViewProps(editorSharedConfig, disabled) {
|
|
|
127
126
|
/**
|
|
128
127
|
* Handles editor component unmount
|
|
129
128
|
*/
|
|
130
|
-
function useHandleEditorLifecycle(editorSharedConfig) {
|
|
129
|
+
function useHandleEditorLifecycle(editorSharedConfig, featureFlags) {
|
|
131
130
|
_react.default.useEffect(function () {
|
|
132
131
|
//#region Did mount
|
|
133
132
|
if (editorSharedConfig) {
|
|
@@ -140,8 +139,7 @@ function useHandleEditorLifecycle(editorSharedConfig) {
|
|
|
140
139
|
if (onMount) {
|
|
141
140
|
onMount(editorActions);
|
|
142
141
|
}
|
|
143
|
-
var
|
|
144
|
-
var featureFlagsEnabled = featureFlags ? (0, _getEnabledFeatureFlagKeys.getEnabledFeatureFlagKeys)(featureFlags) : [];
|
|
142
|
+
var featureFlagsEnabled = featureFlags ? (0, _normalizeFeatureFlags.getEnabledFeatureFlagKeys)(featureFlags) : [];
|
|
145
143
|
|
|
146
144
|
// Fire editor started event
|
|
147
145
|
dispatch(_consts.analyticsEventKey, {
|
|
@@ -191,5 +189,5 @@ function useHandleEditorLifecycle(editorSharedConfig) {
|
|
|
191
189
|
editorView.destroy();
|
|
192
190
|
}
|
|
193
191
|
};
|
|
194
|
-
}, [editorSharedConfig]);
|
|
192
|
+
}, [editorSharedConfig, featureFlags]);
|
|
195
193
|
}
|
|
@@ -18,7 +18,6 @@ var _editorDisabled = _interopRequireDefault(require("../../../plugins/editor-di
|
|
|
18
18
|
var _typeAhead = _interopRequireDefault(require("../../../plugins/type-ahead"));
|
|
19
19
|
var _submitEditor = _interopRequireDefault(require("../../../plugins/submit-editor"));
|
|
20
20
|
var _fakeTextCursor = _interopRequireDefault(require("../../../plugins/fake-text-cursor"));
|
|
21
|
-
var _featureFlagsContext = _interopRequireDefault(require("../../../plugins/feature-flags-context"));
|
|
22
21
|
var _editorPluginFeatureFlags = _interopRequireDefault(require("@atlaskit/editor-plugin-feature-flags"));
|
|
23
22
|
var _floatingToolbar = _interopRequireDefault(require("../../../plugins/floating-toolbar"));
|
|
24
23
|
var _clipboard = _interopRequireDefault(require("../../../plugins/clipboard"));
|
|
@@ -52,7 +51,7 @@ function createDefaultPreset(options) {
|
|
|
52
51
|
return builder;
|
|
53
52
|
}).add([_hyperlink.default, options.hyperlinkOptions]).add([_textFormatting.default, options.textFormatting]).add(_width.default).add([_quickInsert.default, options.quickInsert]).add([_typeAhead.default, options.typeAhead || {
|
|
54
53
|
createAnalyticsEvent: options.createAnalyticsEvent
|
|
55
|
-
}]).add(_unsupportedContent.default).add(_editorDisabled.default).add([_submitEditor.default, options.submitEditor]).add(_fakeTextCursor.default).add(_floatingToolbar.default).add([
|
|
54
|
+
}]).add(_unsupportedContent.default).add(_editorDisabled.default).add([_submitEditor.default, options.submitEditor]).add(_fakeTextCursor.default).add(_floatingToolbar.default).add([_selection.default, options.selection]).add([_codeBlock.default, options.codeBlock || {
|
|
56
55
|
appearance: 'full-page'
|
|
57
56
|
}]);
|
|
58
57
|
return preset;
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.default = void 0;
|
|
8
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
11
12
|
var _main = require("./pm-plugins/main");
|
|
12
13
|
var _toolbar = require("./toolbar");
|
|
13
14
|
var _EditorSmartCardEvents = require("./ui/EditorSmartCardEvents");
|
|
14
15
|
var _keymap = require("./pm-plugins/keymap");
|
|
16
|
+
var _EditorSmartCardEventsNext = require("./ui/EditorSmartCardEventsNext");
|
|
17
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
19
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
20
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
21
|
var cardPlugin = function cardPlugin(options, api) {
|
|
@@ -36,16 +40,20 @@ var cardPlugin = function cardPlugin(options, api) {
|
|
|
36
40
|
return nodes;
|
|
37
41
|
},
|
|
38
42
|
pmPlugins: function pmPlugins() {
|
|
39
|
-
var _options$allowBlockCa, _options$allowResizin, _options$useAlternati;
|
|
43
|
+
var _options$allowBlockCa, _options$allowResizin, _options$useAlternati, _options$allowWrappin, _options$allowAlignme;
|
|
40
44
|
var allowBlockCards = (_options$allowBlockCa = options.allowBlockCards) !== null && _options$allowBlockCa !== void 0 ? _options$allowBlockCa : true;
|
|
41
45
|
var allowResizing = (_options$allowResizin = options.allowResizing) !== null && _options$allowResizin !== void 0 ? _options$allowResizin : true;
|
|
42
46
|
var useAlternativePreloader = (_options$useAlternati = options.useAlternativePreloader) !== null && _options$useAlternati !== void 0 ? _options$useAlternati : true;
|
|
47
|
+
var allowWrapping = (_options$allowWrappin = options.allowWrapping) !== null && _options$allowWrappin !== void 0 ? _options$allowWrappin : true;
|
|
48
|
+
var allowAlignment = (_options$allowAlignme = options.allowAlignment) !== null && _options$allowAlignme !== void 0 ? _options$allowAlignme : true;
|
|
43
49
|
var plugins = [{
|
|
44
50
|
name: 'card',
|
|
45
51
|
plugin: (0, _main.createPlugin)(_objectSpread(_objectSpread({}, options), {}, {
|
|
46
52
|
allowBlockCards: allowBlockCards,
|
|
47
53
|
allowResizing: allowResizing,
|
|
48
|
-
useAlternativePreloader: useAlternativePreloader
|
|
54
|
+
useAlternativePreloader: useAlternativePreloader,
|
|
55
|
+
allowWrapping: allowWrapping,
|
|
56
|
+
allowAlignment: allowAlignment
|
|
49
57
|
}))
|
|
50
58
|
}];
|
|
51
59
|
plugins.push({
|
|
@@ -59,9 +67,12 @@ var cardPlugin = function cardPlugin(options, api) {
|
|
|
59
67
|
},
|
|
60
68
|
contentComponent: function contentComponent(_ref2) {
|
|
61
69
|
var editorView = _ref2.editorView;
|
|
62
|
-
|
|
70
|
+
var lpAnalyticsEventsNext = featureFlags.lpAnalyticsEventsNext;
|
|
71
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_EditorSmartCardEvents.EditorSmartCardEvents, {
|
|
63
72
|
editorView: editorView
|
|
64
|
-
})
|
|
73
|
+
}), lpAnalyticsEventsNext && /*#__PURE__*/_react.default.createElement(_EditorSmartCardEventsNext.EditorSmartCardEventsNext, {
|
|
74
|
+
editorView: editorView
|
|
75
|
+
}));
|
|
65
76
|
},
|
|
66
77
|
pluginsOptions: {
|
|
67
78
|
floatingToolbar: (0, _toolbar.floatingToolbar)(options, featureFlags, options.platform, options.linkPicker)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.showLinkToolbar = exports.setProvider = exports.resolveCard = exports.registerSmartCardEvents = exports.registerCard = exports.queueCards = exports.hideLinkToolbar = exports.cardAction = void 0;
|
|
6
|
+
exports.showLinkToolbar = exports.setProvider = exports.resolveCard = exports.registerSmartCardEventsNext = exports.registerSmartCardEvents = exports.registerCard = exports.queueCards = exports.hideLinkToolbar = exports.cardAction = void 0;
|
|
7
7
|
var _pluginKey = require("./plugin-key");
|
|
8
8
|
var cardAction = function cardAction(tr, action) {
|
|
9
9
|
return tr.setMeta(_pluginKey.pluginKey, action);
|
|
@@ -45,6 +45,15 @@ var registerSmartCardEvents = function registerSmartCardEvents(smartLinkEvents)
|
|
|
45
45
|
};
|
|
46
46
|
};
|
|
47
47
|
exports.registerSmartCardEvents = registerSmartCardEvents;
|
|
48
|
+
var registerSmartCardEventsNext = function registerSmartCardEventsNext(smartLinkEvents) {
|
|
49
|
+
return function (tr) {
|
|
50
|
+
return cardAction(tr, {
|
|
51
|
+
type: 'REGISTER_EVENTS_NEXT',
|
|
52
|
+
smartLinkEvents: smartLinkEvents
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
exports.registerSmartCardEventsNext = registerSmartCardEventsNext;
|
|
48
57
|
var setProvider = function setProvider(cardProvider) {
|
|
49
58
|
return function (tr) {
|
|
50
59
|
return cardAction(tr, {
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createAnalyticsQueue = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Simple mechanism to defer analytics related callbacks
|
|
9
|
+
*/
|
|
10
|
+
var createAnalyticsQueue = function createAnalyticsQueue() {
|
|
11
|
+
var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
12
|
+
var queue = [];
|
|
13
|
+
var callbacksRef = {
|
|
14
|
+
current: null
|
|
15
|
+
};
|
|
16
|
+
var setCallbacks = function setCallbacks(callbacks) {
|
|
17
|
+
callbacksRef.current = callbacks;
|
|
18
|
+
};
|
|
19
|
+
var push = function push() {
|
|
20
|
+
var callbacks = callbacksRef.current;
|
|
21
|
+
if (!enabled || !callbacks) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
queue.push.apply(queue, arguments);
|
|
25
|
+
};
|
|
26
|
+
var flush = function flush() {
|
|
27
|
+
var callbacks = callbacksRef.current;
|
|
28
|
+
if (!enabled || !callbacks) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
while (queue.length) {
|
|
32
|
+
var event = queue.pop();
|
|
33
|
+
if (event) {
|
|
34
|
+
callbacks[event.type](event.data);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var getSize = function getSize() {
|
|
39
|
+
return queue.length;
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
push: push,
|
|
43
|
+
flush: flush,
|
|
44
|
+
setCallbacks: setCallbacks,
|
|
45
|
+
getSize: getSize
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
exports.createAnalyticsQueue = createAnalyticsQueue;
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.eventsFromTransaction = eventsFromTransaction;
|
|
8
|
+
exports.findChangedLinks = void 0;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
|
+
var _prosemirrorTransform = require("prosemirror-transform");
|
|
13
|
+
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
14
|
+
var _utils = require("@atlaskit/editor-common/utils");
|
|
15
|
+
var _card = require("@atlaskit/editor-common/card");
|
|
16
|
+
var _steps = require("@atlaskit/adf-schema/steps");
|
|
17
|
+
var _pmHistoryTypes = require("../../../history/pm-history-types");
|
|
18
|
+
var _state = require("../util/state");
|
|
19
|
+
var _pluginKey = require("../plugin-key");
|
|
20
|
+
var _utils2 = require("./utils");
|
|
21
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
|
+
var findLinksInNodeRange = function findLinksInNodeRange(node, schema, from, to) {
|
|
24
|
+
var links = [];
|
|
25
|
+
node.nodesBetween(from, to, function (node, pos) {
|
|
26
|
+
if ((0, _utils2.isLink)(schema, node)) {
|
|
27
|
+
var entireLinkInRange = pos >= from && pos + node.nodeSize <= to;
|
|
28
|
+
if (entireLinkInRange) {
|
|
29
|
+
var link = (0, _utils2.linkObjectFromNode)(schema, node, pos);
|
|
30
|
+
if (link) {
|
|
31
|
+
links.push(link);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return links;
|
|
37
|
+
};
|
|
38
|
+
var findChangedLinks = function findChangedLinks(tr, state) {
|
|
39
|
+
var schema = tr.doc.type.schema;
|
|
40
|
+
var removed = [];
|
|
41
|
+
var inserted = [];
|
|
42
|
+
var updated = [];
|
|
43
|
+
var queuedForUpgrade = isTransactionQueuedForUpgrade(tr);
|
|
44
|
+
var isResolveReplace = isTransactionResolveReplace(tr);
|
|
45
|
+
|
|
46
|
+
// History
|
|
47
|
+
var historyMeta = tr.getMeta(_pmHistoryTypes.pmHistoryPluginKey);
|
|
48
|
+
var isUndo = isHistoryMeta(historyMeta) && historyMeta.redo === false;
|
|
49
|
+
var isRedo = isHistoryMeta(historyMeta) && historyMeta.redo === true;
|
|
50
|
+
var isUpdate = isUpdateTr(tr, isUndo || isRedo);
|
|
51
|
+
var _loop = function _loop(i) {
|
|
52
|
+
var step = tr.steps[i];
|
|
53
|
+
var stepMap = step.getMap();
|
|
54
|
+
var removedInStep = [];
|
|
55
|
+
var insertedInStep = [];
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* AddMarkStep and RemoveMarkSteps don't produce stepMap ranges
|
|
59
|
+
* because there are no "changed tokens" only marks added/removed
|
|
60
|
+
* So have to check these manually
|
|
61
|
+
*/
|
|
62
|
+
if (step instanceof _prosemirrorTransform.AddMarkStep) {
|
|
63
|
+
var addMarkStep = step;
|
|
64
|
+
if ((0, _utils.isLinkMark)(addMarkStep.mark, schema)) {
|
|
65
|
+
/**
|
|
66
|
+
* For url text pasted on plain text
|
|
67
|
+
*/
|
|
68
|
+
insertedInStep.push({
|
|
69
|
+
type: 'mark',
|
|
70
|
+
pos: addMarkStep.from,
|
|
71
|
+
mark: addMarkStep.mark
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (step instanceof _prosemirrorTransform.RemoveMarkStep) {
|
|
76
|
+
var removeMarkStep = step;
|
|
77
|
+
if ((0, _utils.isLinkMark)(removeMarkStep.mark, schema)) {
|
|
78
|
+
/**
|
|
79
|
+
* For url text pasted on plain text
|
|
80
|
+
*/
|
|
81
|
+
removedInStep.push({
|
|
82
|
+
type: 'mark',
|
|
83
|
+
pos: removeMarkStep.from,
|
|
84
|
+
mark: removeMarkStep.mark
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
stepMap.forEach(function (oldStart, oldEnd, newStart, newEnd) {
|
|
89
|
+
var _tr$docs;
|
|
90
|
+
var before = tr.docs[i];
|
|
91
|
+
var after = (_tr$docs = tr.docs[i + 1]) !== null && _tr$docs !== void 0 ? _tr$docs : tr.doc;
|
|
92
|
+
var removedInRange = [];
|
|
93
|
+
var insertedInRange = [];
|
|
94
|
+
|
|
95
|
+
// Removed
|
|
96
|
+
removedInRange.push.apply(removedInRange, (0, _toConsumableArray2.default)(findLinksInNodeRange(before, schema, oldStart, oldEnd)));
|
|
97
|
+
// Inserted
|
|
98
|
+
insertedInRange.push.apply(insertedInRange, (0, _toConsumableArray2.default)(findLinksInNodeRange(after, schema, newStart, newEnd)));
|
|
99
|
+
removedInStep.push.apply(removedInStep, removedInRange);
|
|
100
|
+
insertedInStep.push.apply(insertedInStep, insertedInRange);
|
|
101
|
+
});
|
|
102
|
+
var omitQueuedLinks = function omitQueuedLinks(links) {
|
|
103
|
+
if (!queuedForUpgrade) {
|
|
104
|
+
return links;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Skip/filter out links that have been queued, they will be tracked later
|
|
108
|
+
*/
|
|
109
|
+
var queuedPositions = getQueuedPositions(tr);
|
|
110
|
+
return links.filter(function (link) {
|
|
111
|
+
return !queuedPositions.includes(link.pos);
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Skip "deletions" when the transaction is relating to
|
|
117
|
+
* replacing links queued for upgrade to cards,
|
|
118
|
+
* because the "deleted" link has not actually been
|
|
119
|
+
* tracked as "created" yet
|
|
120
|
+
*/
|
|
121
|
+
if (!isResolveReplace) {
|
|
122
|
+
removed.push.apply(removed, removedInStep);
|
|
123
|
+
}
|
|
124
|
+
inserted.push.apply(inserted, (0, _toConsumableArray2.default)(omitQueuedLinks(insertedInStep)));
|
|
125
|
+
};
|
|
126
|
+
for (var i = 0; i < tr.steps.length; i++) {
|
|
127
|
+
_loop(i);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* If there are no links changed but the transaction is a "resolve" action
|
|
132
|
+
* Then this means we have resolved a link but it has failed to upgrade
|
|
133
|
+
* We should track all resolved links as now being created
|
|
134
|
+
*/
|
|
135
|
+
if (inserted.length === 0 && isResolveReplace) {
|
|
136
|
+
var positions = getResolvePositions(tr, state);
|
|
137
|
+
inserted.push.apply(inserted, (0, _toConsumableArray2.default)((0, _utils2.findLinksAtPositions)(tr, positions)));
|
|
138
|
+
}
|
|
139
|
+
if (!isUpdate) {
|
|
140
|
+
return {
|
|
141
|
+
removed: removed,
|
|
142
|
+
inserted: inserted,
|
|
143
|
+
updated: updated
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
for (var _i = 0; _i < inserted.length; _i++) {
|
|
147
|
+
if (isResolveReplace) {
|
|
148
|
+
var newLink = inserted[_i];
|
|
149
|
+
|
|
150
|
+
// what is the 2nd argument 'assoc = -1' doing here exactly?
|
|
151
|
+
var mappedPos = tr.mapping.map(newLink.pos, -1);
|
|
152
|
+
var previousDisplay = getResolveLinkPrevDisplay(state, mappedPos);
|
|
153
|
+
updated.push({
|
|
154
|
+
inserted: inserted[_i],
|
|
155
|
+
previous: {
|
|
156
|
+
display: previousDisplay
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
if (inserted.length === removed.length) {
|
|
162
|
+
updated.push({
|
|
163
|
+
removed: removed[_i],
|
|
164
|
+
inserted: inserted[_i]
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
inserted: [],
|
|
170
|
+
removed: [],
|
|
171
|
+
updated: updated
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* List of actions to be considered link "updates"
|
|
177
|
+
*/
|
|
178
|
+
exports.findChangedLinks = findChangedLinks;
|
|
179
|
+
var UPDATE_ACTIONS = [_analytics.ACTION.CHANGED_TYPE, _analytics.ACTION.UPDATED];
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Returns true if the transaction has LinkMetaSteps that indicate the transaction is
|
|
183
|
+
* intended to be perceived as an update to links, rather than insertion+deletion
|
|
184
|
+
*/
|
|
185
|
+
var isUpdateTr = function isUpdateTr(tr, isUndoOrRedo) {
|
|
186
|
+
return !!tr.steps.find(function (step) {
|
|
187
|
+
if (!(step instanceof _steps.LinkMetaStep)) {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
var _step$getMetadata = step.getMetadata(),
|
|
191
|
+
action = _step$getMetadata.action,
|
|
192
|
+
cardAction = _step$getMetadata.cardAction;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Undo of a resolve step should be considered an update
|
|
196
|
+
* because the user is choosing to update the url back to the un-upgraded display
|
|
197
|
+
*/
|
|
198
|
+
if (cardAction === 'RESOLVE' && isUndoOrRedo) {
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
if (!action) {
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
return UPDATE_ACTIONS.includes(action);
|
|
205
|
+
});
|
|
206
|
+
};
|
|
207
|
+
var hasType = function hasType(pluginMeta) {
|
|
208
|
+
return (0, _typeof2.default)(pluginMeta) === 'object' && pluginMeta !== null && 'type' in pluginMeta;
|
|
209
|
+
};
|
|
210
|
+
var isTransactionQueuedForUpgrade = function isTransactionQueuedForUpgrade(tr) {
|
|
211
|
+
var pluginMeta = tr.getMeta(_pluginKey.pluginKey);
|
|
212
|
+
return hasType(pluginMeta) && pluginMeta.type === 'QUEUE';
|
|
213
|
+
};
|
|
214
|
+
var isTransactionResolveReplace = function isTransactionResolveReplace(tr) {
|
|
215
|
+
var pluginMeta = tr.getMeta(_pluginKey.pluginKey);
|
|
216
|
+
return hasType(pluginMeta) && pluginMeta.type === 'RESOLVE';
|
|
217
|
+
};
|
|
218
|
+
var isHistoryMeta = function isHistoryMeta(meta) {
|
|
219
|
+
return (0, _typeof2.default)(meta) === 'object' && meta !== null && 'redo' in meta;
|
|
220
|
+
};
|
|
221
|
+
var getQueuedPositions = function getQueuedPositions(tr) {
|
|
222
|
+
var pluginMeta = tr.getMeta(_pluginKey.pluginKey);
|
|
223
|
+
if (!isTransactionQueuedForUpgrade(tr)) {
|
|
224
|
+
return [];
|
|
225
|
+
}
|
|
226
|
+
return pluginMeta.requests.map(function (_ref) {
|
|
227
|
+
var pos = _ref.pos;
|
|
228
|
+
return pos;
|
|
229
|
+
});
|
|
230
|
+
};
|
|
231
|
+
var getResolvePositions = function getResolvePositions(tr, state) {
|
|
232
|
+
var cardState = (0, _state.getPluginState)(state);
|
|
233
|
+
if (!cardState) {
|
|
234
|
+
return [];
|
|
235
|
+
}
|
|
236
|
+
var pluginMeta = tr.getMeta(_pluginKey.pluginKey);
|
|
237
|
+
if (!isTransactionResolveReplace(tr)) {
|
|
238
|
+
return [];
|
|
239
|
+
}
|
|
240
|
+
return cardState.requests.filter(function (request) {
|
|
241
|
+
return request.url === pluginMeta.url;
|
|
242
|
+
}).map(function (request) {
|
|
243
|
+
return request.pos;
|
|
244
|
+
});
|
|
245
|
+
};
|
|
246
|
+
var getResolveLinkPrevDisplay = function getResolveLinkPrevDisplay(state, pos) {
|
|
247
|
+
var _cardState$requests$f;
|
|
248
|
+
var cardState = (0, _state.getPluginState)(state);
|
|
249
|
+
if (!cardState) {
|
|
250
|
+
return undefined;
|
|
251
|
+
}
|
|
252
|
+
return (_cardState$requests$f = cardState.requests.find(function (request) {
|
|
253
|
+
return request.pos === pos;
|
|
254
|
+
})) === null || _cardState$requests$f === void 0 ? void 0 : _cardState$requests$f.previousAppearance;
|
|
255
|
+
};
|
|
256
|
+
function eventsFromTransaction(tr, state) {
|
|
257
|
+
var events = [];
|
|
258
|
+
try {
|
|
259
|
+
/**
|
|
260
|
+
* Skip transactions sent by collab (identified by 'isRemote' key)
|
|
261
|
+
* Skip entire document replace steps
|
|
262
|
+
* We are only concerned with transactions performed on the document directly by the user
|
|
263
|
+
*/
|
|
264
|
+
var isRemote = tr.getMeta('isRemote');
|
|
265
|
+
var isReplaceDocument = tr.getMeta('replaceDocument');
|
|
266
|
+
if (isRemote || isReplaceDocument) {
|
|
267
|
+
return events;
|
|
268
|
+
}
|
|
269
|
+
var historyMeta = tr.getMeta(_pmHistoryTypes.pmHistoryPluginKey);
|
|
270
|
+
var isUndo = isHistoryMeta(historyMeta) && historyMeta.redo === false;
|
|
271
|
+
var isRedo = isHistoryMeta(historyMeta) && historyMeta.redo === true;
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Retrieve metadata from the LinkMetaStep(s) in the transaction
|
|
275
|
+
*/
|
|
276
|
+
var _getLinkMetadataFromT = (0, _card.getLinkMetadataFromTransaction)(tr),
|
|
277
|
+
action = _getLinkMetadataFromT.action,
|
|
278
|
+
inputMethod = _getLinkMetadataFromT.inputMethod,
|
|
279
|
+
sourceEvent = _getLinkMetadataFromT.sourceEvent;
|
|
280
|
+
var contextualData = {
|
|
281
|
+
action: action,
|
|
282
|
+
inputMethod: inputMethod,
|
|
283
|
+
sourceEvent: sourceEvent,
|
|
284
|
+
isUndo: isUndo,
|
|
285
|
+
isRedo: isRedo
|
|
286
|
+
};
|
|
287
|
+
var _findChangedLinks = findChangedLinks(tr, state),
|
|
288
|
+
removed = _findChangedLinks.removed,
|
|
289
|
+
inserted = _findChangedLinks.inserted,
|
|
290
|
+
updated = _findChangedLinks.updated;
|
|
291
|
+
var MAX_LINK_EVENTS = 10;
|
|
292
|
+
if ([removed, inserted, updated].some(function (arr) {
|
|
293
|
+
return arr.length > MAX_LINK_EVENTS;
|
|
294
|
+
})) {
|
|
295
|
+
return [];
|
|
296
|
+
}
|
|
297
|
+
for (var i = 0; i < updated.length; i++) {
|
|
298
|
+
var _update$previous$disp;
|
|
299
|
+
var update = updated[i];
|
|
300
|
+
var link = update.inserted;
|
|
301
|
+
var url = (0, _utils2.getLinkUrl)(link);
|
|
302
|
+
var display = (0, _utils2.appearanceForLink)(link);
|
|
303
|
+
var previousDisplay = 'removed' in update ? (0, _utils2.appearanceForLink)(update.removed) : (_update$previous$disp = update.previous.display) !== null && _update$previous$disp !== void 0 ? _update$previous$disp : 'unknown';
|
|
304
|
+
if (url) {
|
|
305
|
+
events.push({
|
|
306
|
+
type: 'updated',
|
|
307
|
+
data: _objectSpread(_objectSpread({}, contextualData), {}, {
|
|
308
|
+
url: url,
|
|
309
|
+
display: display,
|
|
310
|
+
previousDisplay: previousDisplay
|
|
311
|
+
})
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
var pushEvents = function pushEvents(links, type) {
|
|
316
|
+
for (var _i2 = 0; _i2 < links.length; _i2++) {
|
|
317
|
+
var _link = links[_i2];
|
|
318
|
+
var _url = (0, _utils2.getLinkUrl)(_link);
|
|
319
|
+
var _display = (0, _utils2.appearanceForLink)(_link);
|
|
320
|
+
if (_url) {
|
|
321
|
+
events.push({
|
|
322
|
+
type: type,
|
|
323
|
+
data: _objectSpread(_objectSpread({}, contextualData), {}, {
|
|
324
|
+
url: _url,
|
|
325
|
+
display: _display
|
|
326
|
+
})
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
pushEvents(removed, 'deleted');
|
|
332
|
+
pushEvents(inserted, 'created');
|
|
333
|
+
return events;
|
|
334
|
+
} catch (err) {
|
|
335
|
+
return events;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "createAnalyticsQueue", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _createAnalyticsQueue.createAnalyticsQueue;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "eventsFromTransaction", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _eventsFromTr.eventsFromTransaction;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _createAnalyticsQueue = require("./create-analytics-queue");
|
|
19
|
+
var _eventsFromTr = require("./events-from-tr");
|