@atlaskit/editor-core 150.0.0 → 151.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/dist/cjs/actions/index.js +5 -23
- package/dist/cjs/create-editor/ErrorBoundary.js +113 -79
- package/dist/cjs/create-editor/ReactEditorView.js +145 -31
- package/dist/cjs/create-editor/create-plugins-list.js +4 -2
- package/dist/cjs/editor.js +101 -40
- package/dist/cjs/labs/next/presets/cxhtml.js +2 -1
- package/dist/cjs/plugins/analytics/types/enums.js +3 -1
- package/dist/cjs/plugins/base/index.js +4 -3
- package/dist/cjs/plugins/base/pm-plugins/frozen-editor.js +66 -36
- package/dist/cjs/plugins/block-type/ui/ToolbarBlockType/styled.js +3 -1
- package/dist/cjs/plugins/card/index.js +13 -2
- package/dist/cjs/plugins/card/nodeviews/embedCard.js +1 -0
- package/dist/cjs/plugins/card/pm-plugins/main.js +7 -2
- package/dist/cjs/plugins/card/pm-plugins/util/resolve.js +10 -3
- package/dist/cjs/plugins/code-block/toolbar.js +1 -1
- package/dist/cjs/plugins/collab-edit/ui/to-avatar.js +4 -8
- package/dist/cjs/plugins/emoji/styles.js +1 -1
- package/dist/cjs/plugins/extension/pm-plugins/main.js +1 -4
- package/dist/cjs/plugins/extension/toolbar.js +28 -23
- package/dist/cjs/plugins/feature-flags-context/feature-flags-from-props.js +8 -3
- package/dist/cjs/plugins/find-replace/ui/Find.js +27 -7
- package/dist/cjs/plugins/hyperlink/pm-plugins/keymap.js +3 -3
- package/dist/cjs/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +7 -4
- package/dist/cjs/plugins/hyperlink/utils.js +6 -69
- package/dist/cjs/plugins/media/index.js +14 -3
- package/dist/cjs/plugins/media/nodeviews/mediaGroup.js +24 -10
- package/dist/cjs/plugins/media/nodeviews/mediaInline.js +179 -0
- package/dist/cjs/plugins/media/pm-plugins/main.js +18 -9
- package/dist/cjs/plugins/media/toolbar/index.js +49 -17
- package/dist/cjs/plugins/media/toolbar/utils.js +20 -2
- package/dist/cjs/plugins/media/utils/media-files.js +67 -1
- package/dist/cjs/plugins/mentions/type-ahead/index.js +39 -3
- package/dist/cjs/plugins/panel/index.js +2 -3
- package/dist/cjs/plugins/panel/message.js +47 -0
- package/dist/cjs/plugins/panel/toolbar.js +64 -84
- package/dist/cjs/plugins/panel/utils.js +2 -2
- package/dist/cjs/plugins/paste/linkify-md-plugin.js +3 -3
- package/dist/cjs/plugins/status/styles.js +1 -1
- package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +18 -2
- package/dist/cjs/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +20 -3
- package/dist/cjs/profiler/render-count.js +82 -0
- package/dist/cjs/ui/Appearance/Comment/Comment.js +6 -5
- package/dist/cjs/utils/react-hooks/use-component-renderer-tracking/index.js +55 -19
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/actions/index.js +6 -28
- package/dist/es2019/create-editor/ErrorBoundary.js +73 -60
- package/dist/es2019/create-editor/ReactEditorView.js +130 -23
- package/dist/es2019/create-editor/create-plugins-list.js +4 -2
- package/dist/es2019/editor.js +74 -35
- package/dist/es2019/labs/next/presets/cxhtml.js +2 -1
- package/dist/es2019/plugins/analytics/types/enums.js +3 -1
- package/dist/es2019/plugins/base/index.js +4 -3
- package/dist/es2019/plugins/base/pm-plugins/frozen-editor.js +63 -35
- package/dist/es2019/plugins/block-type/ui/ToolbarBlockType/styled.js +2 -1
- package/dist/es2019/plugins/card/index.js +7 -2
- package/dist/es2019/plugins/card/nodeviews/embedCard.js +1 -0
- package/dist/es2019/plugins/card/pm-plugins/main.js +9 -2
- package/dist/es2019/plugins/card/pm-plugins/util/resolve.js +12 -5
- package/dist/es2019/plugins/code-block/toolbar.js +1 -1
- package/dist/es2019/plugins/collab-edit/ui/to-avatar.js +2 -6
- package/dist/es2019/plugins/emoji/styles.js +2 -0
- package/dist/es2019/plugins/extension/pm-plugins/main.js +1 -4
- package/dist/es2019/plugins/extension/toolbar.js +30 -25
- package/dist/es2019/plugins/feature-flags-context/feature-flags-from-props.js +8 -4
- package/dist/es2019/plugins/find-replace/ui/Find.js +27 -6
- package/dist/es2019/plugins/hyperlink/pm-plugins/keymap.js +1 -1
- package/dist/es2019/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +7 -4
- package/dist/es2019/plugins/hyperlink/utils.js +3 -59
- package/dist/es2019/plugins/media/index.js +13 -4
- package/dist/es2019/plugins/media/nodeviews/mediaGroup.js +16 -7
- package/dist/es2019/plugins/media/nodeviews/mediaInline.js +88 -0
- package/dist/es2019/plugins/media/pm-plugins/main.js +20 -11
- package/dist/es2019/plugins/media/toolbar/index.js +44 -15
- package/dist/es2019/plugins/media/toolbar/utils.js +16 -0
- package/dist/es2019/plugins/media/utils/media-files.js +68 -2
- package/dist/es2019/plugins/mentions/type-ahead/index.js +21 -2
- package/dist/es2019/plugins/panel/index.js +3 -4
- package/dist/es2019/plugins/panel/message.js +38 -0
- package/dist/es2019/plugins/panel/toolbar.js +52 -71
- package/dist/es2019/plugins/panel/utils.js +2 -2
- package/dist/es2019/plugins/paste/linkify-md-plugin.js +2 -2
- package/dist/es2019/plugins/status/styles.js +2 -0
- package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +18 -2
- package/dist/es2019/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +20 -3
- package/dist/es2019/profiler/render-count.js +60 -0
- package/dist/es2019/ui/Appearance/Comment/Comment.js +4 -2
- package/dist/es2019/utils/react-hooks/use-component-renderer-tracking/index.js +51 -18
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/actions/index.js +6 -24
- package/dist/esm/create-editor/ErrorBoundary.js +113 -78
- package/dist/esm/create-editor/ReactEditorView.js +146 -31
- package/dist/esm/create-editor/create-plugins-list.js +4 -2
- package/dist/esm/editor.js +100 -40
- package/dist/esm/labs/next/presets/cxhtml.js +2 -1
- package/dist/esm/plugins/analytics/types/enums.js +3 -1
- package/dist/esm/plugins/base/index.js +4 -3
- package/dist/esm/plugins/base/pm-plugins/frozen-editor.js +64 -36
- package/dist/esm/plugins/block-type/ui/ToolbarBlockType/styled.js +3 -1
- package/dist/esm/plugins/card/index.js +13 -2
- package/dist/esm/plugins/card/nodeviews/embedCard.js +1 -0
- package/dist/esm/plugins/card/pm-plugins/main.js +7 -2
- package/dist/esm/plugins/card/pm-plugins/util/resolve.js +12 -5
- package/dist/esm/plugins/code-block/toolbar.js +1 -1
- package/dist/esm/plugins/collab-edit/ui/to-avatar.js +4 -8
- package/dist/esm/plugins/emoji/styles.js +1 -1
- package/dist/esm/plugins/extension/pm-plugins/main.js +1 -4
- package/dist/esm/plugins/extension/toolbar.js +28 -23
- package/dist/esm/plugins/feature-flags-context/feature-flags-from-props.js +8 -4
- package/dist/esm/plugins/find-replace/ui/Find.js +27 -7
- package/dist/esm/plugins/hyperlink/pm-plugins/keymap.js +1 -1
- package/dist/esm/plugins/hyperlink/ui/HyperlinkAddToolbar/HyperlinkAddToolbar.js +7 -4
- package/dist/esm/plugins/hyperlink/utils.js +3 -59
- package/dist/esm/plugins/media/index.js +14 -4
- package/dist/esm/plugins/media/nodeviews/mediaGroup.js +24 -10
- package/dist/esm/plugins/media/nodeviews/mediaInline.js +147 -0
- package/dist/esm/plugins/media/pm-plugins/main.js +19 -11
- package/dist/esm/plugins/media/toolbar/index.js +47 -19
- package/dist/esm/plugins/media/toolbar/utils.js +15 -1
- package/dist/esm/plugins/media/utils/media-files.js +60 -2
- package/dist/esm/plugins/mentions/type-ahead/index.js +39 -3
- package/dist/esm/plugins/panel/index.js +3 -4
- package/dist/esm/plugins/panel/message.js +38 -0
- package/dist/esm/plugins/panel/toolbar.js +57 -77
- package/dist/esm/plugins/panel/utils.js +2 -2
- package/dist/esm/plugins/paste/linkify-md-plugin.js +2 -2
- package/dist/esm/plugins/status/styles.js +1 -1
- package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +18 -2
- package/dist/esm/plugins/type-ahead/transforms/open-typeahead-at-cursor.js +20 -3
- package/dist/esm/profiler/render-count.js +57 -0
- package/dist/esm/ui/Appearance/Comment/Comment.js +6 -5
- package/dist/esm/utils/react-hooks/use-component-renderer-tracking/index.js +53 -20
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/create-editor/ErrorBoundary.d.ts +6 -6
- package/dist/types/create-editor/ReactEditorView.d.ts +15 -3
- package/dist/types/editor.d.ts +3 -1
- package/dist/types/plugins/analytics/analytics-queue.d.ts +1 -1
- package/dist/types/plugins/analytics/index.d.ts +1 -1
- package/dist/types/plugins/analytics/types/enums.d.ts +4 -2
- package/dist/types/plugins/analytics/types/events.d.ts +7 -2
- package/dist/types/plugins/analytics/types/general-events.d.ts +4 -1
- package/dist/types/plugins/analytics/types/index.d.ts +1 -1
- package/dist/types/plugins/analytics/types/insert-events.d.ts +6 -1
- package/dist/types/plugins/analytics/types/link-tool-bar-events.d.ts +1 -0
- package/dist/types/plugins/base/index.d.ts +1 -0
- package/dist/types/plugins/base/pm-plugins/frozen-editor.d.ts +3 -2
- package/dist/types/plugins/card/pm-plugins/main.d.ts +2 -3
- package/dist/types/plugins/card/pm-plugins/util/resolve.d.ts +2 -1
- package/dist/types/plugins/card/types.d.ts +6 -0
- package/dist/types/plugins/collab-edit/ui/to-avatar.d.ts +1 -1
- package/dist/types/plugins/extension/types.d.ts +0 -2
- package/dist/types/plugins/extension/ui/Extension/ExtensionComponent.d.ts +2 -2
- package/dist/types/plugins/feature-flags-context/get-enabled-feature-flag-keys.d.ts +1 -1
- package/dist/types/plugins/floating-toolbar/types.d.ts +1 -1
- package/dist/types/plugins/floating-toolbar/ui/Select.d.ts +1 -1
- package/dist/types/plugins/hyperlink/utils.d.ts +0 -21
- package/dist/types/plugins/insert-block/ui/ToolbarInsertBlock/create-items.d.ts +1 -1
- package/dist/types/plugins/media/nodeviews/mediaInline.d.ts +27 -0
- package/dist/types/plugins/media/pm-plugins/main.d.ts +2 -2
- package/dist/types/plugins/media/toolbar/utils.d.ts +2 -0
- package/dist/types/plugins/media/utils/media-files.d.ts +8 -0
- package/dist/types/plugins/panel/message.d.ts +37 -0
- package/dist/types/plugins/panel/toolbar.d.ts +4 -37
- package/dist/types/plugins/panel/types.d.ts +1 -0
- package/dist/types/plugins/quick-insert/index.d.ts +1 -1
- package/dist/types/profiler/render-count.d.ts +14 -0
- package/dist/types/types/feature-flags.d.ts +8 -0
- package/dist/types/ui/LinkSearch/types.d.ts +1 -0
- package/dist/types/utils/react-hooks/use-component-renderer-tracking/index.d.ts +17 -1
- package/package.json +20 -17
- package/dist/cjs/plugins/caption/nodeviews/index.test.js +0 -135
- package/dist/cjs/plugins/caption/pm-plugins/keymap.test.js +0 -203
- package/dist/cjs/plugins/caption/pm-plugins/main.test.js +0 -141
- package/dist/cjs/plugins/code-block/language-list.test.js +0 -74
- package/dist/cjs/plugins/extension/ui/SaveIndicator/SaveIndicator.test.js +0 -101
- package/dist/cjs/plugins/floating-toolbar/ui/EmojiPickerButton.test.js +0 -98
- package/dist/cjs/plugins/media/commands/captions.test.js +0 -149
- package/dist/cjs/plugins/media/commands/linking.test.js +0 -296
- package/dist/cjs/plugins/media/ui/CaptionPlaceholder/index.test.js +0 -50
- package/dist/cjs/plugins/panel/toolbar.test.js +0 -250
- package/dist/cjs/ui/ColorPickerButton/index.test.js +0 -123
- package/dist/cjs/ui/PortalProvider/index.test.js +0 -139
- package/dist/es2019/plugins/caption/nodeviews/index.test.js +0 -122
- package/dist/es2019/plugins/caption/pm-plugins/keymap.test.js +0 -193
- package/dist/es2019/plugins/caption/pm-plugins/main.test.js +0 -132
- package/dist/es2019/plugins/code-block/language-list.test.js +0 -69
- package/dist/es2019/plugins/extension/ui/SaveIndicator/SaveIndicator.test.js +0 -83
- package/dist/es2019/plugins/floating-toolbar/ui/EmojiPickerButton.test.js +0 -85
- package/dist/es2019/plugins/media/commands/captions.test.js +0 -126
- package/dist/es2019/plugins/media/commands/linking.test.js +0 -208
- package/dist/es2019/plugins/media/ui/CaptionPlaceholder/index.test.js +0 -41
- package/dist/es2019/plugins/panel/toolbar.test.js +0 -200
- package/dist/es2019/ui/ColorPickerButton/index.test.js +0 -88
- package/dist/es2019/ui/PortalProvider/index.test.js +0 -115
- package/dist/esm/plugins/caption/nodeviews/index.test.js +0 -125
- package/dist/esm/plugins/caption/pm-plugins/keymap.test.js +0 -195
- package/dist/esm/plugins/caption/pm-plugins/main.test.js +0 -124
- package/dist/esm/plugins/code-block/language-list.test.js +0 -71
- package/dist/esm/plugins/extension/ui/SaveIndicator/SaveIndicator.test.js +0 -92
- package/dist/esm/plugins/floating-toolbar/ui/EmojiPickerButton.test.js +0 -85
- package/dist/esm/plugins/media/commands/captions.test.js +0 -135
- package/dist/esm/plugins/media/commands/linking.test.js +0 -268
- package/dist/esm/plugins/media/ui/CaptionPlaceholder/index.test.js +0 -41
- package/dist/esm/plugins/panel/toolbar.test.js +0 -230
- package/dist/esm/ui/ColorPickerButton/index.test.js +0 -107
- package/dist/esm/ui/PortalProvider/index.test.js +0 -129
|
@@ -38,6 +38,8 @@ var _reactIntl = require("react-intl");
|
|
|
38
38
|
|
|
39
39
|
var _editorCommon = require("@atlaskit/editor-common");
|
|
40
40
|
|
|
41
|
+
var _ufo = require("@atlaskit/editor-common/ufo");
|
|
42
|
+
|
|
41
43
|
var _eventDispatcher = require("../event-dispatcher");
|
|
42
44
|
|
|
43
45
|
var _utils = require("../utils");
|
|
@@ -148,7 +150,12 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
148
150
|
|
|
149
151
|
return _analytics.FULL_WIDTH_MODE.FIXED_WIDTH;
|
|
150
152
|
});
|
|
151
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "
|
|
153
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resetEditorState", function (_ref) {
|
|
154
|
+
var _this$props$editorPro, _this$props$editorPro2;
|
|
155
|
+
|
|
156
|
+
var doc = _ref.doc,
|
|
157
|
+
shouldScrollToBottom = _ref.shouldScrollToBottom;
|
|
158
|
+
|
|
152
159
|
if (!_this.view) {
|
|
153
160
|
return;
|
|
154
161
|
} // We cannot currently guarentee when all the portals will have re-rendered during a reconfigure
|
|
@@ -156,9 +163,49 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
156
163
|
// nodes that haven't been re-rendered to the document yet.
|
|
157
164
|
|
|
158
165
|
|
|
166
|
+
_this.blur();
|
|
167
|
+
|
|
168
|
+
_this.featureFlags = (0, _featureFlagsFromProps.createFeatureFlagsFromProps)(_this.props.editorProps);
|
|
169
|
+
_this.editorState = _this.createEditorState({
|
|
170
|
+
props: _this.props,
|
|
171
|
+
context: _this.context,
|
|
172
|
+
doc: doc,
|
|
173
|
+
resetting: true,
|
|
174
|
+
selectionAtStart: !shouldScrollToBottom
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
_this.view.updateState(_this.editorState);
|
|
178
|
+
|
|
179
|
+
(_this$props$editorPro = (_this$props$editorPro2 = _this.props.editorProps).onChange) === null || _this$props$editorPro === void 0 ? void 0 : _this$props$editorPro.call(_this$props$editorPro2, _this.view, {
|
|
180
|
+
source: 'local'
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "blur", function () {
|
|
184
|
+
if (!_this.view) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
|
|
159
188
|
if (_this.view.dom instanceof HTMLElement && _this.view.hasFocus()) {
|
|
160
189
|
_this.view.dom.blur();
|
|
190
|
+
} // The selectionToDOM method uses the document selection to determine currently selected node
|
|
191
|
+
// We need to mimic blurring this as it seems doing the above is not enough.
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
var sel = _this.view.root.getSelection();
|
|
195
|
+
|
|
196
|
+
if (sel) {
|
|
197
|
+
sel.removeAllRanges();
|
|
161
198
|
}
|
|
199
|
+
});
|
|
200
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "reconfigureState", function (props) {
|
|
201
|
+
if (!_this.view) {
|
|
202
|
+
return;
|
|
203
|
+
} // We cannot currently guarentee when all the portals will have re-rendered during a reconfigure
|
|
204
|
+
// so we blur here to stop ProseMirror from trying to apply selection to detached nodes or
|
|
205
|
+
// nodes that haven't been re-rendered to the document yet.
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
_this.blur();
|
|
162
209
|
|
|
163
210
|
_this.config = (0, _createEditor.processPluginsList)(_this.getPlugins(props.editorProps, _this.props.editorProps, _this.props.createAnalyticsEvent));
|
|
164
211
|
var state = _this.editorState;
|
|
@@ -197,7 +244,7 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
197
244
|
(0, _analytics.fireAnalyticsEvent)(_this.props.createAnalyticsEvent)(payload);
|
|
198
245
|
});
|
|
199
246
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "createEditorState", function (options) {
|
|
200
|
-
if (_this.view) {
|
|
247
|
+
if (_this.view && !options.resetting) {
|
|
201
248
|
/**
|
|
202
249
|
* There's presently a number of issues with changing the schema of a
|
|
203
250
|
* editor inflight. A significant issue is that we lose the ability
|
|
@@ -212,9 +259,7 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
212
259
|
|
|
213
260
|
_this.config = (0, _createEditor.processPluginsList)(_this.getPlugins(options.props.editorProps, undefined, options.props.createAnalyticsEvent));
|
|
214
261
|
var schema = (0, _createSchema.createSchema)(_this.config);
|
|
215
|
-
var
|
|
216
|
-
contentTransformerProvider = _options$props$editor.contentTransformerProvider,
|
|
217
|
-
defaultValue = _options$props$editor.defaultValue;
|
|
262
|
+
var contentTransformerProvider = options.props.editorProps.contentTransformerProvider;
|
|
218
263
|
var plugins = (0, _createEditor.createPMPlugins)({
|
|
219
264
|
schema: schema,
|
|
220
265
|
dispatch: _this.dispatch,
|
|
@@ -234,15 +279,14 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
234
279
|
_this.contentTransformer = contentTransformerProvider ? contentTransformerProvider(schema) : undefined;
|
|
235
280
|
var doc;
|
|
236
281
|
|
|
237
|
-
if (options.
|
|
238
|
-
doc = (0, _utils.processRawValue)(schema,
|
|
282
|
+
if (options.doc) {
|
|
283
|
+
doc = (0, _utils.processRawValue)(schema, options.doc, options.props.providerFactory, options.props.editorProps.sanitizePrivateContent, _this.contentTransformer, _this.dispatchAnalyticsEvent);
|
|
239
284
|
}
|
|
240
285
|
|
|
241
286
|
var selection;
|
|
242
287
|
|
|
243
288
|
if (doc) {
|
|
244
|
-
|
|
245
|
-
selection = (0, _isFullPage.isFullPage)(options.props.editorProps.appearance) ? _prosemirrorState.Selection.atStart(doc) : _prosemirrorState.Selection.atEnd(doc);
|
|
289
|
+
selection = options.selectionAtStart ? _prosemirrorState.Selection.atStart(doc) : _prosemirrorState.Selection.atEnd(doc);
|
|
246
290
|
} // Workaround for ED-3507: When media node is the last element, scrollIntoView throws an error
|
|
247
291
|
|
|
248
292
|
|
|
@@ -254,11 +298,11 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
254
298
|
selection: patchedSelection
|
|
255
299
|
});
|
|
256
300
|
});
|
|
257
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onEditorViewStateUpdated", function (
|
|
258
|
-
var originalTransaction =
|
|
259
|
-
transactions =
|
|
260
|
-
oldEditorState =
|
|
261
|
-
newEditorState =
|
|
301
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onEditorViewStateUpdated", function (_ref2) {
|
|
302
|
+
var originalTransaction = _ref2.originalTransaction,
|
|
303
|
+
transactions = _ref2.transactions,
|
|
304
|
+
oldEditorState = _ref2.oldEditorState,
|
|
305
|
+
newEditorState = _ref2.newEditorState;
|
|
262
306
|
var trackinEnabled = _this.transactionTracking.enabled;
|
|
263
307
|
|
|
264
308
|
_this.config.onEditorViewStateUpdatedCallbacks.forEach(function (entry) {
|
|
@@ -303,6 +347,13 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
303
347
|
stopMeasure = _this$transactionTrac.stopMeasure;
|
|
304
348
|
|
|
305
349
|
startMeasure(_trackTransactions.EVENT_NAME_DISPATCH_TRANSACTION);
|
|
350
|
+
|
|
351
|
+
if (_this.transactionTracker.shouldTrackTransaction(_this.transactionTracking)) {
|
|
352
|
+
var _this$experienceStore;
|
|
353
|
+
|
|
354
|
+
(_this$experienceStore = _this.experienceStore) === null || _this$experienceStore === void 0 ? void 0 : _this$experienceStore.start(_ufo.EditorExperience.interaction);
|
|
355
|
+
}
|
|
356
|
+
|
|
306
357
|
var nodes = (0, _nodes.findChangedNodesFromTransaction)(transaction);
|
|
307
358
|
var changedNodesValid = (0, _nodes.validateNodes)(nodes);
|
|
308
359
|
|
|
@@ -315,7 +366,11 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
315
366
|
editorState = _this$view$state$appl.state,
|
|
316
367
|
transactions = _this$view$state$appl.transactions;
|
|
317
368
|
|
|
318
|
-
stopMeasure(_trackTransactions.EVENT_NAME_STATE_APPLY)
|
|
369
|
+
stopMeasure(_trackTransactions.EVENT_NAME_STATE_APPLY, function (duration, startTime) {
|
|
370
|
+
var _this$experienceStore2;
|
|
371
|
+
|
|
372
|
+
(_this$experienceStore2 = _this.experienceStore) === null || _this$experienceStore2 === void 0 ? void 0 : _this$experienceStore2.mark(_ufo.EditorExperience.interaction, 'stateApply', startTime + duration);
|
|
373
|
+
});
|
|
319
374
|
|
|
320
375
|
_this.trackValidTransactions();
|
|
321
376
|
|
|
@@ -327,7 +382,11 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
327
382
|
|
|
328
383
|
_this.view.updateState(editorState);
|
|
329
384
|
|
|
330
|
-
stopMeasure(_trackTransactions.EVENT_NAME_UPDATE_STATE)
|
|
385
|
+
stopMeasure(_trackTransactions.EVENT_NAME_UPDATE_STATE, function (duration, startTime) {
|
|
386
|
+
var _this$experienceStore3;
|
|
387
|
+
|
|
388
|
+
(_this$experienceStore3 = _this.experienceStore) === null || _this$experienceStore3 === void 0 ? void 0 : _this$experienceStore3.mark(_ufo.EditorExperience.interaction, 'viewUpdateState', startTime + duration);
|
|
389
|
+
});
|
|
331
390
|
startMeasure(_trackTransactions.EVENT_NAME_VIEW_STATE_UPDATED);
|
|
332
391
|
|
|
333
392
|
_this.onEditorViewStateUpdated({
|
|
@@ -337,7 +396,11 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
337
396
|
newEditorState: editorState
|
|
338
397
|
});
|
|
339
398
|
|
|
340
|
-
stopMeasure(_trackTransactions.EVENT_NAME_VIEW_STATE_UPDATED)
|
|
399
|
+
stopMeasure(_trackTransactions.EVENT_NAME_VIEW_STATE_UPDATED, function (duration, startTime) {
|
|
400
|
+
var _this$experienceStore4;
|
|
401
|
+
|
|
402
|
+
(_this$experienceStore4 = _this.experienceStore) === null || _this$experienceStore4 === void 0 ? void 0 : _this$experienceStore4.mark(_ufo.EditorExperience.interaction, 'onEditorViewStateUpdated', startTime + duration);
|
|
403
|
+
});
|
|
341
404
|
|
|
342
405
|
if (_this.props.editorProps.onChange && transaction.docChanged) {
|
|
343
406
|
var source = transaction.getMeta('isRemote') ? 'remote' : 'local';
|
|
@@ -348,9 +411,11 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
348
411
|
});
|
|
349
412
|
|
|
350
413
|
stopMeasure(_trackTransactions.EVENT_NAME_ON_CHANGE, function (duration, startTime) {
|
|
351
|
-
var _this$props$
|
|
414
|
+
var _this$experienceStore5, _this$props$editorPro3, _this$props$editorPro4;
|
|
415
|
+
|
|
416
|
+
(_this$experienceStore5 = _this.experienceStore) === null || _this$experienceStore5 === void 0 ? void 0 : _this$experienceStore5.mark(_ufo.EditorExperience.interaction, 'onChange', startTime + duration);
|
|
352
417
|
|
|
353
|
-
if (((_this$props$
|
|
418
|
+
if (((_this$props$editorPro3 = _this.props.editorProps.performanceTracking) === null || _this$props$editorPro3 === void 0 ? void 0 : (_this$props$editorPro4 = _this$props$editorPro3.onChangeCallbackTracking) === null || _this$props$editorPro4 === void 0 ? void 0 : _this$props$editorPro4.enabled) !== true) {
|
|
354
419
|
return;
|
|
355
420
|
}
|
|
356
421
|
|
|
@@ -367,7 +432,15 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
367
432
|
}
|
|
368
433
|
|
|
369
434
|
_this.editorState = editorState;
|
|
435
|
+
stopMeasure(_trackTransactions.EVENT_NAME_DISPATCH_TRANSACTION, function (duration, startTime) {
|
|
436
|
+
var _this$experienceStore6, _this$experienceStore7;
|
|
437
|
+
|
|
438
|
+
(_this$experienceStore6 = _this.experienceStore) === null || _this$experienceStore6 === void 0 ? void 0 : _this$experienceStore6.mark(_ufo.EditorExperience.interaction, 'dispatchTransaction', startTime + duration);
|
|
439
|
+
(_this$experienceStore7 = _this.experienceStore) === null || _this$experienceStore7 === void 0 ? void 0 : _this$experienceStore7.success(_ufo.EditorExperience.interaction);
|
|
440
|
+
});
|
|
370
441
|
} else {
|
|
442
|
+
var _this$experienceStore8;
|
|
443
|
+
|
|
371
444
|
var invalidNodes = nodes.filter(function (node) {
|
|
372
445
|
return !(0, _nodes.validNode)(node);
|
|
373
446
|
}).map(function (node) {
|
|
@@ -385,9 +458,12 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
385
458
|
invalidNodes: invalidNodes
|
|
386
459
|
}
|
|
387
460
|
});
|
|
388
|
-
}
|
|
389
461
|
|
|
390
|
-
|
|
462
|
+
(_this$experienceStore8 = _this.experienceStore) === null || _this$experienceStore8 === void 0 ? void 0 : _this$experienceStore8.fail(_ufo.EditorExperience.interaction, {
|
|
463
|
+
reason: 'invalid transaction',
|
|
464
|
+
invalidNodes: invalidNodes.toString()
|
|
465
|
+
});
|
|
466
|
+
}
|
|
391
467
|
});
|
|
392
468
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getDirectEditorProps", function (state) {
|
|
393
469
|
return {
|
|
@@ -411,14 +487,17 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
411
487
|
});
|
|
412
488
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "createEditorView", function (node) {
|
|
413
489
|
(0, _editorCommon.measureRender)(_measureEnum.default.PROSEMIRROR_RENDERED, function (duration, startTime) {
|
|
414
|
-
var _this$props$
|
|
490
|
+
var _this$props$editorPro5, _this$props$editorPro6, _proseMirrorRenderedT, _proseMirrorRenderedT2;
|
|
415
491
|
|
|
416
|
-
var proseMirrorRenderedTracking = (_this$props$
|
|
492
|
+
var proseMirrorRenderedTracking = (_this$props$editorPro5 = _this.props.editorProps) === null || _this$props$editorPro5 === void 0 ? void 0 : (_this$props$editorPro6 = _this$props$editorPro5.performanceTracking) === null || _this$props$editorPro6 === void 0 ? void 0 : _this$props$editorPro6.proseMirrorRenderedTracking;
|
|
417
493
|
var forceSeverityTracking = typeof proseMirrorRenderedTracking === 'undefined' && (0, _editorCommon.shouldForceTracking)();
|
|
418
494
|
_this.proseMirrorRenderedSeverity = !!forceSeverityTracking || proseMirrorRenderedTracking !== null && proseMirrorRenderedTracking !== void 0 && proseMirrorRenderedTracking.trackSeverity ? (0, _editorCommon.getAnalyticsEventSeverity)(duration, (_proseMirrorRenderedT = proseMirrorRenderedTracking === null || proseMirrorRenderedTracking === void 0 ? void 0 : proseMirrorRenderedTracking.severityNormalThreshold) !== null && _proseMirrorRenderedT !== void 0 ? _proseMirrorRenderedT : _consts.PROSEMIRROR_RENDERED_NORMAL_SEVERITY_THRESHOLD, (_proseMirrorRenderedT2 = proseMirrorRenderedTracking === null || proseMirrorRenderedTracking === void 0 ? void 0 : proseMirrorRenderedTracking.severityDegradedThreshold) !== null && _proseMirrorRenderedT2 !== void 0 ? _proseMirrorRenderedT2 : _consts.PROSEMIRROR_RENDERED_DEGRADED_SEVERITY_THRESHOLD) : undefined;
|
|
419
495
|
|
|
420
496
|
if (_this.view) {
|
|
421
|
-
var _getContextIdentifier;
|
|
497
|
+
var _getContextIdentifier, _this$experienceStore9, _this$experienceStore10;
|
|
498
|
+
|
|
499
|
+
var nodes = (0, _document.getNodesCount)(_this.view.state.doc);
|
|
500
|
+
var ttfb = (0, _editorCommon.getResponseEndTime)();
|
|
422
501
|
|
|
423
502
|
_this.dispatchAnalyticsEvent({
|
|
424
503
|
action: _analytics.ACTION.PROSEMIRROR_RENDERED,
|
|
@@ -426,13 +505,19 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
426
505
|
attributes: {
|
|
427
506
|
duration: duration,
|
|
428
507
|
startTime: startTime,
|
|
429
|
-
nodes:
|
|
430
|
-
ttfb:
|
|
508
|
+
nodes: nodes,
|
|
509
|
+
ttfb: ttfb,
|
|
431
510
|
severity: _this.proseMirrorRenderedSeverity,
|
|
432
511
|
objectId: (_getContextIdentifier = (0, _contextIdentifier.getContextIdentifier)(_this.editorState)) === null || _getContextIdentifier === void 0 ? void 0 : _getContextIdentifier.objectId
|
|
433
512
|
},
|
|
434
513
|
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
435
514
|
});
|
|
515
|
+
|
|
516
|
+
(_this$experienceStore9 = _this.experienceStore) === null || _this$experienceStore9 === void 0 ? void 0 : _this$experienceStore9.mark(_ufo.EditorExperience.loadEditor, _analytics.ACTION.PROSEMIRROR_RENDERED, startTime + duration);
|
|
517
|
+
(_this$experienceStore10 = _this.experienceStore) === null || _this$experienceStore10 === void 0 ? void 0 : _this$experienceStore10.addMetadata(_ufo.EditorExperience.loadEditor, {
|
|
518
|
+
nodes: nodes,
|
|
519
|
+
ttfb: ttfb
|
|
520
|
+
});
|
|
436
521
|
}
|
|
437
522
|
}); // Creates the editor-view from this.editorState. If an editor has been mounted
|
|
438
523
|
// previously, this will contain the previous state of the editor.
|
|
@@ -454,8 +539,27 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
454
539
|
transformer: _this.contentTransformer
|
|
455
540
|
});
|
|
456
541
|
|
|
542
|
+
if (_this.featureFlags.ufo) {
|
|
543
|
+
_this.reliabilityInterval = window.setInterval(function () {
|
|
544
|
+
var reliabilityEvent = {
|
|
545
|
+
action: _analytics.ACTION.UFO_SESSION_COMPLETE,
|
|
546
|
+
actionSubject: _analytics.ACTION_SUBJECT.EDITOR,
|
|
547
|
+
attributes: {
|
|
548
|
+
interval: _ufo.RELIABILITY_INTERVAL
|
|
549
|
+
},
|
|
550
|
+
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
551
|
+
};
|
|
552
|
+
|
|
553
|
+
_this.dispatchAnalyticsEvent(reliabilityEvent);
|
|
554
|
+
}, _ufo.RELIABILITY_INTERVAL);
|
|
555
|
+
}
|
|
556
|
+
|
|
457
557
|
if (_this.props.editorProps.shouldFocus && view.props.editable && view.props.editable(view.state)) {
|
|
458
558
|
_this.focusTimeoutId = handleEditorFocus(view);
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
if (_this.featureFlags.ufo) {
|
|
562
|
+
_this.experienceStore = _ufo.ExperienceStore.getInstance(view);
|
|
459
563
|
} // Force React to re-render so consumers get a reference to the editor view
|
|
460
564
|
|
|
461
565
|
|
|
@@ -520,10 +624,14 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
520
624
|
|
|
521
625
|
_this.eventDispatcher.on(_editorCommon.analyticsEventKey, _this.handleAnalyticsEvent);
|
|
522
626
|
|
|
627
|
+
_this.eventDispatcher.on('resetEditorState', _this.resetEditorState);
|
|
628
|
+
|
|
523
629
|
_this.editorState = _this.createEditorState({
|
|
524
630
|
props: _props,
|
|
525
631
|
context: context,
|
|
526
|
-
|
|
632
|
+
doc: _props.editorProps.defaultValue,
|
|
633
|
+
// ED-4759: Don't set selection at end for full-page editor - should be at start.
|
|
634
|
+
selectionAtStart: (0, _isFullPage.isFullPage)(_props.editorProps.appearance)
|
|
527
635
|
});
|
|
528
636
|
|
|
529
637
|
_this.dispatchAnalyticsEvent({
|
|
@@ -544,9 +652,9 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
544
652
|
get: // ProseMirror is instantiated prior to the initial React render cycle,
|
|
545
653
|
// so we allow transactions by default, to avoid discarding the initial one.
|
|
546
654
|
function get() {
|
|
547
|
-
var _this$props$
|
|
655
|
+
var _this$props$editorPro7, _this$props$editorPro8;
|
|
548
656
|
|
|
549
|
-
return (_this$props$
|
|
657
|
+
return (_this$props$editorPro7 = (_this$props$editorPro8 = this.props.editorProps.performanceTracking) === null || _this$props$editorPro8 === void 0 ? void 0 : _this$props$editorPro8.transactionTracking) !== null && _this$props$editorPro7 !== void 0 ? _this$props$editorPro7 : {
|
|
550
658
|
enabled: false
|
|
551
659
|
};
|
|
552
660
|
}
|
|
@@ -639,6 +747,11 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
639
747
|
this.canDispatchTransactions = false;
|
|
640
748
|
this.eventDispatcher.destroy();
|
|
641
749
|
clearTimeout(this.focusTimeoutId);
|
|
750
|
+
|
|
751
|
+
if (this.reliabilityInterval) {
|
|
752
|
+
clearInterval(this.reliabilityInterval);
|
|
753
|
+
}
|
|
754
|
+
|
|
642
755
|
this.pluginPerformanceObserver.disconnect();
|
|
643
756
|
|
|
644
757
|
if (this.view) {
|
|
@@ -655,6 +768,7 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
655
768
|
|
|
656
769
|
|
|
657
770
|
this.eventDispatcher.off(_editorCommon.analyticsEventKey, this.handleAnalyticsEvent);
|
|
771
|
+
this.eventDispatcher.off('resetEditorState', this.resetEditorState);
|
|
658
772
|
} // Helper to allow tests to inject plugins directly
|
|
659
773
|
|
|
660
774
|
}, {
|
|
@@ -674,9 +788,9 @@ var ReactEditorView = /*#__PURE__*/function (_React$Component) {
|
|
|
674
788
|
}, {
|
|
675
789
|
key: "render",
|
|
676
790
|
value: function render() {
|
|
677
|
-
var _this$props$
|
|
791
|
+
var _this$props$editorPro9, _this$props$editorPro10;
|
|
678
792
|
|
|
679
|
-
var renderTracking = (_this$props$
|
|
793
|
+
var renderTracking = (_this$props$editorPro9 = this.props.editorProps.performanceTracking) === null || _this$props$editorPro9 === void 0 ? void 0 : (_this$props$editorPro10 = _this$props$editorPro9.renderTracking) === null || _this$props$editorPro10 === void 0 ? void 0 : _this$props$editorPro10.reactEditorView;
|
|
680
794
|
var renderTrackingEnabled = renderTracking === null || renderTracking === void 0 ? void 0 : renderTracking.enabled;
|
|
681
795
|
var useShallow = renderTracking === null || renderTracking === void 0 ? void 0 : renderTracking.useShallow;
|
|
682
796
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, renderTrackingEnabled && /*#__PURE__*/_react.default.createElement(_useComponentRendererTracking.RenderTracking, {
|
|
@@ -85,7 +85,8 @@ function getDefaultPresetOptionsFromEditorProps(props, createAnalyticsEvent) {
|
|
|
85
85
|
allowInlineCursorTarget: !isMobile,
|
|
86
86
|
allowScrollGutter: getScrollGutterOptions(props),
|
|
87
87
|
inputTracking: inputTracking,
|
|
88
|
-
browserFreezeTracking: (_props$performanceTra2 = props.performanceTracking) === null || _props$performanceTra2 === void 0 ? void 0 : _props$performanceTra2.bFreezeTracking
|
|
88
|
+
browserFreezeTracking: (_props$performanceTra2 = props.performanceTracking) === null || _props$performanceTra2 === void 0 ? void 0 : _props$performanceTra2.bFreezeTracking,
|
|
89
|
+
ufo: (0, _featureFlagsFromProps.createFeatureFlagsFromProps)(props).ufo
|
|
89
90
|
},
|
|
90
91
|
blockType: {
|
|
91
92
|
lastNodeMustBeParagraph: appearance === 'comment' || appearance === 'chromeless',
|
|
@@ -296,7 +297,8 @@ function createPluginsList(props, prevProps, createAnalyticsEvent) {
|
|
|
296
297
|
if (props.allowPanel) {
|
|
297
298
|
preset.add([_plugins.panelPlugin, {
|
|
298
299
|
useLongPressSelection: false,
|
|
299
|
-
UNSAFE_allowCustomPanel: props.allowPanel.UNSAFE_allowCustomPanel
|
|
300
|
+
UNSAFE_allowCustomPanel: props.allowPanel.UNSAFE_allowCustomPanel,
|
|
301
|
+
UNSAFE_allowCustomPanelEdit: props.allowPanel.UNSAFE_allowCustomPanelEdit
|
|
300
302
|
}]);
|
|
301
303
|
}
|
|
302
304
|
|
package/dist/cjs/editor.js
CHANGED
|
@@ -43,6 +43,8 @@ var _versionWrapper = require("./version-wrapper");
|
|
|
43
43
|
|
|
44
44
|
var _editorCommon = require("@atlaskit/editor-common");
|
|
45
45
|
|
|
46
|
+
var _ufo = require("@atlaskit/editor-common/ufo");
|
|
47
|
+
|
|
46
48
|
var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
47
49
|
|
|
48
50
|
var _analyticsNamespacedContext = require("@atlaskit/analytics-namespaced-context");
|
|
@@ -87,6 +89,8 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
87
89
|
var _super = _createSuper(Editor);
|
|
88
90
|
|
|
89
91
|
function Editor(props, context) {
|
|
92
|
+
var _props$performanceTra, _props$performanceTra2, _props$featureFlags;
|
|
93
|
+
|
|
90
94
|
var _this;
|
|
91
95
|
|
|
92
96
|
(0, _classCallCheck2.default)(this, Editor);
|
|
@@ -128,11 +132,16 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
128
132
|
_this.trackEditorActions(_this.editorActions, props);
|
|
129
133
|
|
|
130
134
|
_this.editorSessionId = (0, _v.default)();
|
|
135
|
+
_this.startTime = performance.now();
|
|
131
136
|
(0, _editorCommon.startMeasure)(_measureEnum.default.EDITOR_MOUNTED);
|
|
132
137
|
|
|
133
|
-
if (props.performanceTracking &&
|
|
138
|
+
if ((_props$performanceTra = props.performanceTracking) !== null && _props$performanceTra !== void 0 && (_props$performanceTra2 = _props$performanceTra.ttiTracking) !== null && _props$performanceTra2 !== void 0 && _props$performanceTra2.enabled || (_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.ufo) {
|
|
139
|
+
var _props$performanceTra5, _props$performanceTra6, _props$performanceTra7, _props$performanceTra8;
|
|
140
|
+
|
|
134
141
|
(0, _editorCommon.measureTTI)(function (tti, ttiFromInvocation, canceled) {
|
|
135
|
-
|
|
142
|
+
var _props$performanceTra3, _props$performanceTra4, _props$featureFlags2;
|
|
143
|
+
|
|
144
|
+
if ((_props$performanceTra3 = props.performanceTracking) !== null && _props$performanceTra3 !== void 0 && (_props$performanceTra4 = _props$performanceTra3.ttiTracking) !== null && _props$performanceTra4 !== void 0 && _props$performanceTra4.enabled && _this.createAnalyticsEvent) {
|
|
136
145
|
var _ttiTracking;
|
|
137
146
|
|
|
138
147
|
var ttiEvent = {
|
|
@@ -165,7 +174,14 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
165
174
|
|
|
166
175
|
(0, _analytics.fireAnalyticsEvent)(_this.createAnalyticsEvent)(ttiEvent);
|
|
167
176
|
}
|
|
168
|
-
|
|
177
|
+
|
|
178
|
+
if ((_props$featureFlags2 = props.featureFlags) !== null && _props$featureFlags2 !== void 0 && _props$featureFlags2.ufo) {
|
|
179
|
+
var _this$experienceStore, _this$experienceStore2;
|
|
180
|
+
|
|
181
|
+
(_this$experienceStore = _this.experienceStore) === null || _this$experienceStore === void 0 ? void 0 : _this$experienceStore.mark(_ufo.EditorExperience.loadEditor, _analytics.ACTION.EDITOR_TTI, tti);
|
|
182
|
+
(_this$experienceStore2 = _this.experienceStore) === null || _this$experienceStore2 === void 0 ? void 0 : _this$experienceStore2.success(_ufo.EditorExperience.loadEditor);
|
|
183
|
+
}
|
|
184
|
+
}, (_props$performanceTra5 = props.performanceTracking) === null || _props$performanceTra5 === void 0 ? void 0 : (_props$performanceTra6 = _props$performanceTra5.ttiTracking) === null || _props$performanceTra6 === void 0 ? void 0 : _props$performanceTra6.ttiIdleThreshold, (_props$performanceTra7 = props.performanceTracking) === null || _props$performanceTra7 === void 0 ? void 0 : (_props$performanceTra8 = _props$performanceTra7.ttiTracking) === null || _props$performanceTra8 === void 0 ? void 0 : _props$performanceTra8.ttiCancelTimeout);
|
|
169
185
|
}
|
|
170
186
|
|
|
171
187
|
var _extensionProvider = _this.prepareExtensionProvider(props.extensionProviders);
|
|
@@ -211,21 +227,29 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
211
227
|
}, {
|
|
212
228
|
key: "componentWillUnmount",
|
|
213
229
|
value: function componentWillUnmount() {
|
|
214
|
-
var _this$props2, _this$props2$performa, _this$props2$performa2;
|
|
230
|
+
var _this$props2, _this$props2$performa, _this$props2$performa2, _this$props$featureFl;
|
|
215
231
|
|
|
216
232
|
this.unregisterEditorFromActions();
|
|
217
233
|
this.providerFactory.destroy();
|
|
218
234
|
(0, _editorCommon.clearMeasure)(_measureEnum.default.EDITOR_MOUNTED);
|
|
219
235
|
((_this$props2 = this.props) === null || _this$props2 === void 0 ? void 0 : (_this$props2$performa = _this$props2.performanceTracking) === null || _this$props2$performa === void 0 ? void 0 : (_this$props2$performa2 = _this$props2$performa.onEditorReadyCallbackTracking) === null || _this$props2$performa2 === void 0 ? void 0 : _this$props2$performa2.enabled) && (0, _editorCommon.clearMeasure)(_measureEnum.default.ON_EDITOR_READY_CALLBACK);
|
|
236
|
+
|
|
237
|
+
if ((_this$props$featureFl = this.props.featureFlags) !== null && _this$props$featureFl !== void 0 && _this$props$featureFl.ufo) {
|
|
238
|
+
var _this$experienceStore3;
|
|
239
|
+
|
|
240
|
+
(_this$experienceStore3 = this.experienceStore) === null || _this$experienceStore3 === void 0 ? void 0 : _this$experienceStore3.abortAll({
|
|
241
|
+
reason: 'editor component unmounted'
|
|
242
|
+
});
|
|
243
|
+
}
|
|
220
244
|
}
|
|
221
245
|
}, {
|
|
222
246
|
key: "trackEditorActions",
|
|
223
247
|
value: function trackEditorActions(editorActions, props) {
|
|
224
|
-
var _props$
|
|
225
|
-
_props$
|
|
248
|
+
var _props$performanceTra9,
|
|
249
|
+
_props$performanceTra10,
|
|
226
250
|
_this3 = this;
|
|
227
251
|
|
|
228
|
-
if (props !== null && props !== void 0 && (_props$
|
|
252
|
+
if (props !== null && props !== void 0 && (_props$performanceTra9 = props.performanceTracking) !== null && _props$performanceTra9 !== void 0 && (_props$performanceTra10 = _props$performanceTra9.contentRetrievalTracking) !== null && _props$performanceTra10 !== void 0 && _props$performanceTra10.enabled) {
|
|
229
253
|
var DEFAULT_SAMPLING_RATE = 100;
|
|
230
254
|
var getValue = editorActions.getValue.bind(editorActions);
|
|
231
255
|
|
|
@@ -246,7 +270,7 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
246
270
|
if (!getValueTracked) {
|
|
247
271
|
var getValueWithTracking = /*#__PURE__*/function () {
|
|
248
272
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
249
|
-
var _props$
|
|
273
|
+
var _props$performanceTra11, _props$performanceTra12, _props$performanceTra13, value, _props$performanceTra14, _props$performanceTra15, _props$performanceTra16, _props$performanceTra17, _props$performanceTra18;
|
|
250
274
|
|
|
251
275
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
252
276
|
while (1) {
|
|
@@ -259,7 +283,7 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
259
283
|
case 3:
|
|
260
284
|
value = _context.sent;
|
|
261
285
|
|
|
262
|
-
if (samplingCounters.success === ((_props$
|
|
286
|
+
if (samplingCounters.success === ((_props$performanceTra11 = props === null || props === void 0 ? void 0 : (_props$performanceTra12 = props.performanceTracking) === null || _props$performanceTra12 === void 0 ? void 0 : (_props$performanceTra13 = _props$performanceTra12.contentRetrievalTracking) === null || _props$performanceTra13 === void 0 ? void 0 : _props$performanceTra13.successSamplingRate) !== null && _props$performanceTra11 !== void 0 ? _props$performanceTra11 : DEFAULT_SAMPLING_RATE)) {
|
|
263
287
|
_this3.handleAnalyticsEvent({
|
|
264
288
|
payload: {
|
|
265
289
|
action: _analytics.ACTION.EDITOR_CONTENT_RETRIEVAL_PERFORMED,
|
|
@@ -281,7 +305,7 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
281
305
|
_context.prev = 9;
|
|
282
306
|
_context.t0 = _context["catch"](0);
|
|
283
307
|
|
|
284
|
-
if (samplingCounters.failure === ((_props$
|
|
308
|
+
if (samplingCounters.failure === ((_props$performanceTra14 = props === null || props === void 0 ? void 0 : (_props$performanceTra15 = props.performanceTracking) === null || _props$performanceTra15 === void 0 ? void 0 : (_props$performanceTra16 = _props$performanceTra15.contentRetrievalTracking) === null || _props$performanceTra16 === void 0 ? void 0 : _props$performanceTra16.failureSamplingRate) !== null && _props$performanceTra14 !== void 0 ? _props$performanceTra14 : DEFAULT_SAMPLING_RATE)) {
|
|
285
309
|
_this3.handleAnalyticsEvent({
|
|
286
310
|
payload: {
|
|
287
311
|
action: _analytics.ACTION.EDITOR_CONTENT_RETRIEVAL_PERFORMED,
|
|
@@ -289,7 +313,7 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
289
313
|
attributes: {
|
|
290
314
|
success: false,
|
|
291
315
|
errorInfo: _context.t0.toString(),
|
|
292
|
-
errorStack: props !== null && props !== void 0 && (_props$
|
|
316
|
+
errorStack: props !== null && props !== void 0 && (_props$performanceTra17 = props.performanceTracking) !== null && _props$performanceTra17 !== void 0 && (_props$performanceTra18 = _props$performanceTra17.contentRetrievalTracking) !== null && _props$performanceTra18 !== void 0 && _props$performanceTra18.reportErrorStack ? _context.t0.stack : undefined
|
|
293
317
|
},
|
|
294
318
|
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
295
319
|
}
|
|
@@ -324,14 +348,22 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
324
348
|
}, {
|
|
325
349
|
key: "onEditorCreated",
|
|
326
350
|
value: function onEditorCreated(instance) {
|
|
351
|
+
var _this$props$featureFl2;
|
|
352
|
+
|
|
327
353
|
this.registerEditorForActions(instance.view, instance.eventDispatcher, instance.transformer);
|
|
328
354
|
|
|
355
|
+
if ((_this$props$featureFl2 = this.props.featureFlags) !== null && _this$props$featureFl2 !== void 0 && _this$props$featureFl2.ufo) {
|
|
356
|
+
this.experienceStore = _ufo.ExperienceStore.getInstance(instance.view);
|
|
357
|
+
this.experienceStore.start(_ufo.EditorExperience.loadEditor, this.startTime);
|
|
358
|
+
}
|
|
359
|
+
|
|
329
360
|
if (this.props.onEditorReady) {
|
|
330
|
-
var _this$props3, _this$props3$performa, _this$props3$performa2, _this$
|
|
361
|
+
var _this$props3, _this$props3$performa, _this$props3$performa2, _this$props$featureFl3;
|
|
331
362
|
|
|
332
|
-
((_this$props3 = this.props) === null || _this$props3 === void 0 ? void 0 : (_this$props3$performa = _this$props3.performanceTracking) === null || _this$props3$performa === void 0 ? void 0 : (_this$props3$performa2 = _this$props3$performa.onEditorReadyCallbackTracking) === null || _this$props3$performa2 === void 0 ? void 0 : _this$props3$performa2.enabled)
|
|
363
|
+
var measureEditorReady = ((_this$props3 = this.props) === null || _this$props3 === void 0 ? void 0 : (_this$props3$performa = _this$props3.performanceTracking) === null || _this$props3$performa === void 0 ? void 0 : (_this$props3$performa2 = _this$props3$performa.onEditorReadyCallbackTracking) === null || _this$props3$performa2 === void 0 ? void 0 : _this$props3$performa2.enabled) || ((_this$props$featureFl3 = this.props.featureFlags) === null || _this$props$featureFl3 === void 0 ? void 0 : _this$props$featureFl3.ufo);
|
|
364
|
+
measureEditorReady && (0, _editorCommon.startMeasure)(_measureEnum.default.ON_EDITOR_READY_CALLBACK);
|
|
333
365
|
this.props.onEditorReady(this.editorActions);
|
|
334
|
-
|
|
366
|
+
measureEditorReady && (0, _editorCommon.stopMeasure)(_measureEnum.default.ON_EDITOR_READY_CALLBACK, this.sendDurationAnalytics(_analytics.ACTION.ON_EDITOR_READY_CALLBACK));
|
|
335
367
|
}
|
|
336
368
|
}
|
|
337
369
|
}, {
|
|
@@ -339,28 +371,57 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
339
371
|
value: function sendDurationAnalytics(action) {
|
|
340
372
|
var _this4 = this;
|
|
341
373
|
|
|
342
|
-
return function (
|
|
343
|
-
|
|
344
|
-
var
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
374
|
+
return /*#__PURE__*/function () {
|
|
375
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(duration, startTime) {
|
|
376
|
+
var _this4$props$featureF;
|
|
377
|
+
|
|
378
|
+
var contextIdentifier, objectId, _this4$experienceStor, _this4$experienceStor2;
|
|
379
|
+
|
|
380
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
381
|
+
while (1) {
|
|
382
|
+
switch (_context2.prev = _context2.next) {
|
|
383
|
+
case 0:
|
|
384
|
+
_context2.next = 2;
|
|
385
|
+
return _this4.props.contextIdentifierProvider;
|
|
386
|
+
|
|
387
|
+
case 2:
|
|
388
|
+
contextIdentifier = _context2.sent;
|
|
389
|
+
objectId = contextIdentifier === null || contextIdentifier === void 0 ? void 0 : contextIdentifier.objectId;
|
|
390
|
+
|
|
391
|
+
if (_this4.createAnalyticsEvent) {
|
|
392
|
+
(0, _analytics.fireAnalyticsEvent)(_this4.createAnalyticsEvent)({
|
|
393
|
+
payload: {
|
|
394
|
+
action: action,
|
|
395
|
+
actionSubject: _analytics.ACTION_SUBJECT.EDITOR,
|
|
396
|
+
attributes: {
|
|
397
|
+
duration: duration,
|
|
398
|
+
startTime: startTime,
|
|
399
|
+
objectId: objectId
|
|
400
|
+
},
|
|
401
|
+
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
402
|
+
}
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
if ((_this4$props$featureF = _this4.props.featureFlags) !== null && _this4$props$featureF !== void 0 && _this4$props$featureF.ufo) {
|
|
407
|
+
(_this4$experienceStor = _this4.experienceStore) === null || _this4$experienceStor === void 0 ? void 0 : _this4$experienceStor.mark(_ufo.EditorExperience.loadEditor, action, startTime + duration);
|
|
408
|
+
(_this4$experienceStor2 = _this4.experienceStore) === null || _this4$experienceStor2 === void 0 ? void 0 : _this4$experienceStor2.addMetadata(_ufo.EditorExperience.loadEditor, {
|
|
409
|
+
objectId: objectId
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
case 6:
|
|
414
|
+
case "end":
|
|
415
|
+
return _context2.stop();
|
|
355
416
|
}
|
|
356
|
-
}
|
|
357
|
-
};
|
|
417
|
+
}
|
|
418
|
+
}, _callee2);
|
|
419
|
+
}));
|
|
358
420
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
};
|
|
421
|
+
return function (_x, _x2) {
|
|
422
|
+
return _ref2.apply(this, arguments);
|
|
423
|
+
};
|
|
424
|
+
}();
|
|
364
425
|
}
|
|
365
426
|
}, {
|
|
366
427
|
key: "deprecationWarnings",
|
|
@@ -519,14 +580,14 @@ var Editor = /*#__PURE__*/function (_React$Component) {
|
|
|
519
580
|
onEditorDestroyed: _this5.onEditorDestroyed,
|
|
520
581
|
allowAnalyticsGASV3: _this5.props.allowAnalyticsGASV3,
|
|
521
582
|
disabled: _this5.props.disabled,
|
|
522
|
-
render: function render(
|
|
583
|
+
render: function render(_ref3) {
|
|
523
584
|
var _this5$props$featureF, _this5$props$featureF2;
|
|
524
585
|
|
|
525
|
-
var editor =
|
|
526
|
-
view =
|
|
527
|
-
eventDispatcher =
|
|
528
|
-
config =
|
|
529
|
-
dispatchAnalyticsEvent =
|
|
586
|
+
var editor = _ref3.editor,
|
|
587
|
+
view = _ref3.view,
|
|
588
|
+
eventDispatcher = _ref3.eventDispatcher,
|
|
589
|
+
config = _ref3.config,
|
|
590
|
+
dispatchAnalyticsEvent = _ref3.dispatchAnalyticsEvent;
|
|
530
591
|
return /*#__PURE__*/_react.default.createElement(_editorCommon.BaseTheme, {
|
|
531
592
|
dynamicTextSizing: _this5.props.allowDynamicTextSizing && _this5.props.appearance !== 'full-width',
|
|
532
593
|
baseFontSize: _this5.getBaseFontSize()
|
|
@@ -46,7 +46,8 @@ function useCXHTMLPreset(_ref) {
|
|
|
46
46
|
}
|
|
47
47
|
}]);
|
|
48
48
|
preset.add([_plugins.panelPlugin, {
|
|
49
|
-
UNSAFE_allowCustomPanel: true
|
|
49
|
+
UNSAFE_allowCustomPanel: true,
|
|
50
|
+
UNSAFE_allowCustomPanelEdit: true
|
|
50
51
|
}]);
|
|
51
52
|
preset.add(_plugins.listPlugin);
|
|
52
53
|
preset.add(_plugins.textColorPlugin);
|