@atlaskit/editor-core 150.0.3 → 151.1.2
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 +69 -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 +8 -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-bidi-warning/index.js +25 -0
- package/dist/cjs/plugins/code-bidi-warning/plugin-key.js +11 -0
- package/dist/cjs/plugins/code-bidi-warning/pm-plugins/main.js +43 -0
- package/dist/cjs/plugins/code-bidi-warning/pm-plugins/plugin-factory.js +118 -0
- package/dist/cjs/plugins/code-bidi-warning/pm-plugins/reducer.js +12 -0
- package/dist/cjs/plugins/code-bidi-warning/pm-plugins/types.js +5 -0
- package/dist/cjs/plugins/code-block/index.js +10 -6
- package/dist/cjs/plugins/code-block/nodeviews/highlighting-code-block.js +16 -5
- package/dist/cjs/plugins/code-block/pm-plugins/main.js +12 -3
- package/dist/cjs/plugins/code-block/toolbar.js +1 -1
- 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 +9 -3
- package/dist/cjs/plugins/find-replace/ui/Find.js +27 -7
- package/dist/cjs/plugins/hyperlink/HyperlinkToolbarAppearance.js +2 -2
- 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/index.js +8 -0
- 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/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/rank.js +1 -1
- 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/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 +9 -3
- 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-bidi-warning/index.js +15 -0
- package/dist/es2019/plugins/code-bidi-warning/plugin-key.js +2 -0
- package/dist/es2019/plugins/code-bidi-warning/pm-plugins/main.js +31 -0
- package/dist/es2019/plugins/code-bidi-warning/pm-plugins/plugin-factory.js +88 -0
- package/dist/es2019/plugins/code-bidi-warning/pm-plugins/reducer.js +3 -0
- package/dist/es2019/plugins/code-bidi-warning/pm-plugins/types.js +1 -0
- package/dist/es2019/plugins/code-block/index.js +6 -1
- package/dist/es2019/plugins/code-block/nodeviews/highlighting-code-block.js +16 -4
- package/dist/es2019/plugins/code-block/pm-plugins/main.js +50 -39
- package/dist/es2019/plugins/code-block/toolbar.js +1 -1
- 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 +9 -4
- package/dist/es2019/plugins/find-replace/ui/Find.js +27 -6
- package/dist/es2019/plugins/hyperlink/HyperlinkToolbarAppearance.js +1 -1
- 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/index.js +2 -1
- 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/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/rank.js +1 -1
- package/dist/es2019/plugins/status/styles.js +5 -0
- package/dist/es2019/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +18 -2
- 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 +9 -3
- 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-bidi-warning/index.js +17 -0
- package/dist/esm/plugins/code-bidi-warning/plugin-key.js +2 -0
- package/dist/esm/plugins/code-bidi-warning/pm-plugins/main.js +30 -0
- package/dist/esm/plugins/code-bidi-warning/pm-plugins/plugin-factory.js +96 -0
- package/dist/esm/plugins/code-bidi-warning/pm-plugins/reducer.js +3 -0
- package/dist/esm/plugins/code-bidi-warning/pm-plugins/types.js +1 -0
- package/dist/esm/plugins/code-block/index.js +10 -6
- package/dist/esm/plugins/code-block/nodeviews/highlighting-code-block.js +16 -5
- package/dist/esm/plugins/code-block/pm-plugins/main.js +11 -3
- package/dist/esm/plugins/code-block/toolbar.js +1 -1
- 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 +9 -4
- package/dist/esm/plugins/find-replace/ui/Find.js +27 -7
- package/dist/esm/plugins/hyperlink/HyperlinkToolbarAppearance.js +2 -2
- 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/index.js +2 -1
- 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/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/rank.js +1 -1
- 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/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 +2 -0
- 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/code-bidi-warning/index.d.ts +3 -0
- package/dist/types/plugins/code-bidi-warning/plugin-key.d.ts +2 -0
- package/dist/types/plugins/code-bidi-warning/pm-plugins/main.d.ts +3 -0
- package/dist/types/plugins/code-bidi-warning/pm-plugins/plugin-factory.d.ts +7 -0
- package/dist/types/plugins/code-bidi-warning/pm-plugins/reducer.d.ts +3 -0
- package/dist/types/plugins/code-bidi-warning/pm-plugins/types.d.ts +5 -0
- package/dist/types/plugins/code-block/nodeviews/highlighting-code-block.d.ts +11 -2
- package/dist/types/plugins/code-block/pm-plugins/main.d.ts +5 -1
- package/dist/types/plugins/extension/types.d.ts +0 -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/HyperlinkToolbarAppearance.d.ts +1 -1
- package/dist/types/plugins/hyperlink/utils.d.ts +0 -21
- package/dist/types/plugins/index.d.ts +1 -0
- 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/profiler/render-count.d.ts +14 -0
- package/dist/types/types/feature-flags.d.ts +17 -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 +21 -18
- 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
|
@@ -102,6 +102,7 @@ exports.ACTION = ACTION;
|
|
|
102
102
|
ACTION["ON_EDITOR_READY_CALLBACK"] = "onEditorReadyCallback";
|
|
103
103
|
ACTION["ON_CHANGE_CALLBACK"] = "onChangeCalled";
|
|
104
104
|
ACTION["REMOVE_ICON"] = "removedIcon";
|
|
105
|
+
ACTION["UFO_SESSION_COMPLETE"] = "ufoSessionComplete";
|
|
105
106
|
})(ACTION || (exports.ACTION = ACTION = {}));
|
|
106
107
|
|
|
107
108
|
var INPUT_METHOD;
|
|
@@ -246,8 +247,9 @@ exports.ACTION_SUBJECT_ID = ACTION_SUBJECT_ID;
|
|
|
246
247
|
ACTION_SUBJECT_ID["LINK"] = "link";
|
|
247
248
|
ACTION_SUBJECT_ID["LINK_PREVIEW"] = "linkPreview";
|
|
248
249
|
ACTION_SUBJECT_ID["MEDIA"] = "media";
|
|
249
|
-
ACTION_SUBJECT_ID["MEDIA_SINGLE"] = "mediaSingle";
|
|
250
250
|
ACTION_SUBJECT_ID["MEDIA_GROUP"] = "mediaGroup";
|
|
251
|
+
ACTION_SUBJECT_ID["MEDIA_INLINE"] = "mediaInline";
|
|
252
|
+
ACTION_SUBJECT_ID["MEDIA_SINGLE"] = "mediaSingle";
|
|
251
253
|
ACTION_SUBJECT_ID["MEDIA_LINK"] = "mediaLink";
|
|
252
254
|
ACTION_SUBJECT_ID["MENTION"] = "mention";
|
|
253
255
|
ACTION_SUBJECT_ID["NESTED_EXPAND"] = "nestedExpand";
|
|
@@ -81,9 +81,10 @@ var basePlugin = function basePlugin(options) {
|
|
|
81
81
|
}, {
|
|
82
82
|
name: 'frozenEditor',
|
|
83
83
|
plugin: function plugin(_ref3) {
|
|
84
|
-
var
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
var _options$inputTrackin;
|
|
85
|
+
|
|
86
|
+
var dispatchAnalyticsEvent = _ref3.dispatchAnalyticsEvent;
|
|
87
|
+
return options !== null && options !== void 0 && (_options$inputTrackin = options.inputTracking) !== null && _options$inputTrackin !== void 0 && _options$inputTrackin.enabled || options !== null && options !== void 0 && options.ufo ? (0, _frozenEditor.default)(dispatchAnalyticsEvent, options.inputTracking, options.browserFreezeTracking, options.ufo) : undefined;
|
|
87
88
|
}
|
|
88
89
|
}, {
|
|
89
90
|
name: 'decorationPlugin',
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.default = exports.DEFAULT_TRACK_SEVERITY_THRESHOLD_DEGRADED = exports.DEFAULT_TRACK_SEVERITY_THRESHOLD_NORMAL = exports.DEGRADED_SEVERITY_THRESHOLD = exports.NORMAL_SEVERITY_THRESHOLD = exports.DEFAULT_FREEZE_THRESHOLD = void 0;
|
|
8
|
+
exports.default = exports.DEFAULT_TRACK_SEVERITY_THRESHOLD_DEGRADED = exports.DEFAULT_TRACK_SEVERITY_THRESHOLD_NORMAL = exports.DEGRADED_SEVERITY_THRESHOLD = exports.NORMAL_SEVERITY_THRESHOLD = exports.DEFAULT_FREEZE_THRESHOLD = exports.frozenEditorPluginKey = void 0;
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
@@ -13,6 +13,8 @@ var _prosemirrorState = require("prosemirror-state");
|
|
|
13
13
|
|
|
14
14
|
var _editorCommon = require("@atlaskit/editor-common");
|
|
15
15
|
|
|
16
|
+
var _ufo = require("@atlaskit/editor-common/ufo");
|
|
17
|
+
|
|
16
18
|
var _analytics = require("../../analytics");
|
|
17
19
|
|
|
18
20
|
var _getParticipantsCount = require("../../collab-edit/get-participants-count");
|
|
@@ -29,6 +31,8 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
29
31
|
|
|
30
32
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
31
33
|
|
|
34
|
+
var frozenEditorPluginKey = new _prosemirrorState.PluginKey('frozenEditor');
|
|
35
|
+
exports.frozenEditorPluginKey = frozenEditorPluginKey;
|
|
32
36
|
var DEFAULT_KEYSTROKE_SAMPLING_LIMIT = 100;
|
|
33
37
|
var DEFAULT_SLOW_THRESHOLD = 300;
|
|
34
38
|
var DEFAULT_FREEZE_THRESHOLD = 600;
|
|
@@ -64,7 +68,7 @@ var dispatchLongTaskEvent = function dispatchLongTaskEvent(dispatchAnalyticsEven
|
|
|
64
68
|
});
|
|
65
69
|
};
|
|
66
70
|
|
|
67
|
-
var _default = function _default(dispatchAnalyticsEvent, inputTracking, browserFreezeTracking) {
|
|
71
|
+
var _default = function _default(dispatchAnalyticsEvent, inputTracking, browserFreezeTracking, ufo) {
|
|
68
72
|
var keystrokeCount = 0;
|
|
69
73
|
var interactionType;
|
|
70
74
|
|
|
@@ -80,6 +84,7 @@ var _default = function _default(dispatchAnalyticsEvent, inputTracking, browserF
|
|
|
80
84
|
var severityThresholdNormal = (inputTracking === null || inputTracking === void 0 ? void 0 : inputTracking.severityNormalThreshold) || DEFAULT_TRACK_SEVERITY_THRESHOLD_NORMAL;
|
|
81
85
|
var severityThresholdDegraded = (inputTracking === null || inputTracking === void 0 ? void 0 : inputTracking.severityDegradedThreshold) || DEFAULT_TRACK_SEVERITY_THRESHOLD_DEGRADED;
|
|
82
86
|
return new _prosemirrorState.Plugin({
|
|
87
|
+
key: frozenEditorPluginKey,
|
|
83
88
|
props: (0, _editorCommon.isPerformanceAPIAvailable)() ? {
|
|
84
89
|
handleTextInput: function handleTextInput(view) {
|
|
85
90
|
var state = view.state;
|
|
@@ -89,51 +94,76 @@ var _default = function _default(dispatchAnalyticsEvent, inputTracking, browserF
|
|
|
89
94
|
interactionType = _analytics.BROWSER_FREEZE_INTERACTION_TYPE.TYPING;
|
|
90
95
|
}
|
|
91
96
|
|
|
97
|
+
var experienceStore = ufo ? _ufo.ExperienceStore.getInstance(view) : undefined;
|
|
98
|
+
var trackTyping = samplingRate && ++keystrokeCount === samplingRate;
|
|
99
|
+
|
|
100
|
+
if (trackTyping) {
|
|
101
|
+
experienceStore === null || experienceStore === void 0 ? void 0 : experienceStore.start(_ufo.EditorExperience.typing);
|
|
102
|
+
}
|
|
103
|
+
|
|
92
104
|
requestAnimationFrame(function () {
|
|
93
105
|
var diff = (0, _getPerformanceTiming.getTimeSince)(now);
|
|
94
106
|
|
|
95
|
-
if (
|
|
96
|
-
var _getContextIdentifier2;
|
|
97
|
-
|
|
107
|
+
if (diff > slowThreshold) {
|
|
98
108
|
var nodesCount = allowCountNodes ? (0, _countNodes.countNodes)(view.state) : {};
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
|
|
110
|
+
if (inputTracking !== null && inputTracking !== void 0 && inputTracking.enabled) {
|
|
111
|
+
var _getContextIdentifier2;
|
|
112
|
+
|
|
113
|
+
dispatchAnalyticsEvent({
|
|
114
|
+
action: _analytics.ACTION.SLOW_INPUT,
|
|
115
|
+
actionSubject: _analytics.ACTION_SUBJECT.EDITOR,
|
|
116
|
+
attributes: _objectSpread(_objectSpread({
|
|
117
|
+
time: diff,
|
|
118
|
+
nodeSize: state.doc.nodeSize
|
|
119
|
+
}, nodesCount), {}, {
|
|
120
|
+
participants: (0, _getParticipantsCount.getParticipantsCount)(state),
|
|
121
|
+
objectId: (_getContextIdentifier2 = (0, _contextIdentifier.getContextIdentifier)(state)) === null || _getContextIdentifier2 === void 0 ? void 0 : _getContextIdentifier2.objectId
|
|
122
|
+
}),
|
|
123
|
+
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
124
|
+
});
|
|
115
125
|
}
|
|
116
126
|
|
|
117
|
-
|
|
127
|
+
experienceStore === null || experienceStore === void 0 ? void 0 : experienceStore.addMetadata(_ufo.EditorExperience.typing, {
|
|
128
|
+
slowInput: true
|
|
129
|
+
});
|
|
118
130
|
}
|
|
119
131
|
|
|
120
|
-
if (
|
|
121
|
-
var
|
|
132
|
+
if (trackTyping) {
|
|
133
|
+
var _getContextIdentifier4;
|
|
122
134
|
|
|
123
135
|
var _nodesCount = allowCountNodes ? (0, _countNodes.countNodes)(view.state) : {};
|
|
124
136
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
+
keystrokeCount = 0;
|
|
138
|
+
var severity = shouldTrackSeverity ? (0, _editorCommon.getAnalyticsEventSeverity)(diff, severityThresholdNormal, severityThresholdDegraded) : undefined;
|
|
139
|
+
|
|
140
|
+
if (inputTracking !== null && inputTracking !== void 0 && inputTracking.enabled) {
|
|
141
|
+
var _getContextIdentifier3;
|
|
142
|
+
|
|
143
|
+
var payload = {
|
|
144
|
+
action: _analytics.ACTION.INPUT_PERF_SAMPLING,
|
|
145
|
+
actionSubject: _analytics.ACTION_SUBJECT.EDITOR,
|
|
146
|
+
attributes: _objectSpread(_objectSpread({
|
|
147
|
+
time: diff,
|
|
148
|
+
nodeSize: state.doc.nodeSize
|
|
149
|
+
}, _nodesCount), {}, {
|
|
150
|
+
participants: (0, _getParticipantsCount.getParticipantsCount)(state),
|
|
151
|
+
objectId: (_getContextIdentifier3 = (0, _contextIdentifier.getContextIdentifier)(state)) === null || _getContextIdentifier3 === void 0 ? void 0 : _getContextIdentifier3.objectId,
|
|
152
|
+
severity: severity
|
|
153
|
+
}),
|
|
154
|
+
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
155
|
+
};
|
|
156
|
+
dispatchAnalyticsEvent(payload);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
experienceStore === null || experienceStore === void 0 ? void 0 : experienceStore.success(_ufo.EditorExperience.typing, _objectSpread(_objectSpread({
|
|
160
|
+
nodeSize: state.doc.nodeSize
|
|
161
|
+
}, _nodesCount), {}, {
|
|
162
|
+
participants: (0, _getParticipantsCount.getParticipantsCount)(state),
|
|
163
|
+
objectId: (_getContextIdentifier4 = (0, _contextIdentifier.getContextIdentifier)(state)) === null || _getContextIdentifier4 === void 0 ? void 0 : _getContextIdentifier4.objectId,
|
|
164
|
+
time: diff,
|
|
165
|
+
severity: severity
|
|
166
|
+
}));
|
|
137
167
|
}
|
|
138
168
|
});
|
|
139
169
|
return false;
|
|
@@ -20,7 +20,9 @@ var _styles = require("../../../../ui/styles");
|
|
|
20
20
|
var _templateObject, _templateObject2;
|
|
21
21
|
|
|
22
22
|
var BlockTypeMenuItem = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n > {\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n }\n }\n ", ";\n"])), _editorCommon.headingsSharedStyles, function (props) {
|
|
23
|
-
return
|
|
23
|
+
return (// TEMP FIX: See https://product-fabric.atlassian.net/browse/ED-13878
|
|
24
|
+
props.selected ? "".concat(props.tagName, " { color: white !important; }") : ''
|
|
25
|
+
);
|
|
24
26
|
});
|
|
25
27
|
|
|
26
28
|
exports.BlockTypeMenuItem = BlockTypeMenuItem;
|
|
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
10
12
|
var _react = _interopRequireDefault(require("react"));
|
|
11
13
|
|
|
12
14
|
var _adfSchema = require("@atlaskit/adf-schema");
|
|
@@ -17,6 +19,10 @@ var _toolbar = require("./toolbar");
|
|
|
17
19
|
|
|
18
20
|
var _EditorSmartCardEvents = require("./ui/EditorSmartCardEvents");
|
|
19
21
|
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
23
|
+
|
|
24
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
25
|
+
|
|
20
26
|
var cardPlugin = function cardPlugin(options) {
|
|
21
27
|
return {
|
|
22
28
|
name: 'card',
|
|
@@ -39,13 +45,18 @@ var cardPlugin = function cardPlugin(options) {
|
|
|
39
45
|
return nodes;
|
|
40
46
|
},
|
|
41
47
|
pmPlugins: function pmPlugins() {
|
|
42
|
-
var _options$allowResizin, _options$useAlternati;
|
|
48
|
+
var _options$allowBlockCa, _options$allowResizin, _options$useAlternati;
|
|
43
49
|
|
|
50
|
+
var allowBlockCards = (_options$allowBlockCa = options.allowBlockCards) !== null && _options$allowBlockCa !== void 0 ? _options$allowBlockCa : true;
|
|
44
51
|
var allowResizing = (_options$allowResizin = options.allowResizing) !== null && _options$allowResizin !== void 0 ? _options$allowResizin : true;
|
|
45
52
|
var useAlternativePreloader = (_options$useAlternati = options.useAlternativePreloader) !== null && _options$useAlternati !== void 0 ? _options$useAlternati : true;
|
|
46
53
|
return [{
|
|
47
54
|
name: 'card',
|
|
48
|
-
plugin: (0, _main.createPlugin)(
|
|
55
|
+
plugin: (0, _main.createPlugin)(_objectSpread(_objectSpread({}, options), {}, {
|
|
56
|
+
allowBlockCards: allowBlockCards,
|
|
57
|
+
allowResizing: allowResizing,
|
|
58
|
+
useAlternativePreloader: useAlternativePreloader
|
|
59
|
+
}))
|
|
49
60
|
}];
|
|
50
61
|
},
|
|
51
62
|
contentComponent: function contentComponent(_ref) {
|
|
@@ -284,6 +284,7 @@ var EmbedCardComponent = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
284
284
|
var containerWidth = (0, _richMediaUtils.isRichMediaInsideOfBlockNode)(view, pos) ? lineLength : widthStateWidth;
|
|
285
285
|
|
|
286
286
|
var smartCard = /*#__PURE__*/_react.default.createElement(_smartCard.Card, {
|
|
287
|
+
key: url,
|
|
287
288
|
url: url,
|
|
288
289
|
appearance: "embed",
|
|
289
290
|
onClick: _this2.onClick,
|
|
@@ -31,12 +31,17 @@ var _blockCard = require("../nodeviews/blockCard");
|
|
|
31
31
|
|
|
32
32
|
var _inlineCard = require("../nodeviews/inlineCard");
|
|
33
33
|
|
|
34
|
-
var createPlugin = function createPlugin(
|
|
34
|
+
var createPlugin = function createPlugin(options) {
|
|
35
35
|
return function (_ref) {
|
|
36
36
|
var portalProviderAPI = _ref.portalProviderAPI,
|
|
37
37
|
eventDispatcher = _ref.eventDispatcher,
|
|
38
38
|
providerFactory = _ref.providerFactory,
|
|
39
39
|
dispatchAnalyticsEvent = _ref.dispatchAnalyticsEvent;
|
|
40
|
+
var platform = options.platform,
|
|
41
|
+
allowResizing = options.allowResizing,
|
|
42
|
+
useAlternativePreloader = options.useAlternativePreloader,
|
|
43
|
+
fullWidthMode = options.fullWidthMode,
|
|
44
|
+
createAnalyticsEvent = options.createAnalyticsEvent;
|
|
40
45
|
return new _prosemirrorState.Plugin({
|
|
41
46
|
state: {
|
|
42
47
|
init: function init() {
|
|
@@ -94,7 +99,7 @@ var createPlugin = function createPlugin(platform, allowResizing, useAlternative
|
|
|
94
99
|
* other tasks as per common implementations of the JavaScript event loop in browsers.
|
|
95
100
|
*/
|
|
96
101
|
var invoke = (0, _rafSchd.default)(function () {
|
|
97
|
-
return (0, _resolve.resolveWithProvider)(view, outstandingRequests, provider, request);
|
|
102
|
+
return (0, _resolve.resolveWithProvider)(view, outstandingRequests, provider, request, options);
|
|
98
103
|
});
|
|
99
104
|
rafCancellationCallbacks.push(invoke.cancel);
|
|
100
105
|
invoke();
|
|
@@ -14,19 +14,26 @@ var _doc = require("../doc");
|
|
|
14
14
|
// ============================================================================ //
|
|
15
15
|
// Used for all interactions with the EditorCardProvider.
|
|
16
16
|
// ============================================================================ //
|
|
17
|
-
var resolveWithProvider = function resolveWithProvider(view, outstandingRequests, provider, request) {
|
|
17
|
+
var resolveWithProvider = function resolveWithProvider(view, outstandingRequests, provider, request, options) {
|
|
18
18
|
var handleResolve = provider.resolve(request.url, request.appearance).then(function (resolvedCard) {
|
|
19
19
|
delete outstandingRequests[request.url];
|
|
20
20
|
return resolvedCard;
|
|
21
|
-
}).then(handleResolved(view, request), handleRejected(view, request));
|
|
21
|
+
}).then(handleResolved(view, request, options), handleRejected(view, request));
|
|
22
22
|
outstandingRequests[request.url] = handleResolve;
|
|
23
23
|
return handleResolve;
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
exports.resolveWithProvider = resolveWithProvider;
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var updateCardType = function updateCardType(resolvedCard, options) {
|
|
29
|
+
if ((resolvedCard === null || resolvedCard === void 0 ? void 0 : resolvedCard.type) === 'blockCard' && !options.allowBlockCards || (resolvedCard === null || resolvedCard === void 0 ? void 0 : resolvedCard.type) === 'embedCard' && !options.allowEmbeds) {
|
|
30
|
+
resolvedCard.type = 'inlineCard';
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var handleResolved = function handleResolved(view, request, options) {
|
|
29
35
|
return function (resolvedCard) {
|
|
36
|
+
updateCardType(resolvedCard, options);
|
|
30
37
|
(0, _doc.replaceQueuedUrlWithCard)(request.url, resolvedCard, request.analyticsAction)(view.state, view.dispatch);
|
|
31
38
|
return resolvedCard;
|
|
32
39
|
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _main = require("./pm-plugins/main");
|
|
9
|
+
|
|
10
|
+
var codeBidiWarning = function codeBidiWarning() {
|
|
11
|
+
return {
|
|
12
|
+
name: 'codeBidiWarning',
|
|
13
|
+
pmPlugins: function pmPlugins() {
|
|
14
|
+
return [{
|
|
15
|
+
name: 'codeBidiWarning',
|
|
16
|
+
plugin: function plugin(options) {
|
|
17
|
+
return (0, _main.createPlugin)(options);
|
|
18
|
+
}
|
|
19
|
+
}];
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
var _default = codeBidiWarning;
|
|
25
|
+
exports.default = _default;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.codeBidiWarningPluginKey = void 0;
|
|
7
|
+
|
|
8
|
+
var _prosemirrorState = require("prosemirror-state");
|
|
9
|
+
|
|
10
|
+
var codeBidiWarningPluginKey = new _prosemirrorState.PluginKey('codeBidiWarningPlugin');
|
|
11
|
+
exports.codeBidiWarningPluginKey = codeBidiWarningPluginKey;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createPlugin = void 0;
|
|
7
|
+
|
|
8
|
+
var _prosemirrorState = require("prosemirror-state");
|
|
9
|
+
|
|
10
|
+
var _messages = require("@atlaskit/editor-common/messages");
|
|
11
|
+
|
|
12
|
+
var _pluginKey = require("../plugin-key");
|
|
13
|
+
|
|
14
|
+
var _pluginFactory = require("./plugin-factory");
|
|
15
|
+
|
|
16
|
+
var createPlugin = function createPlugin(_ref) {
|
|
17
|
+
var dispatch = _ref.dispatch,
|
|
18
|
+
reactContext = _ref.reactContext;
|
|
19
|
+
var intl = reactContext().intl;
|
|
20
|
+
var codeBidiWarningLabel = intl.formatMessage(_messages.codeBidiWarningMessages.label);
|
|
21
|
+
return new _prosemirrorState.Plugin({
|
|
22
|
+
key: _pluginKey.codeBidiWarningPluginKey,
|
|
23
|
+
state: (0, _pluginFactory.createPluginState)(dispatch, function (state) {
|
|
24
|
+
return {
|
|
25
|
+
decorationSet: (0, _pluginFactory.createBidiWarningsDecorationSetFromDoc)({
|
|
26
|
+
doc: state.doc,
|
|
27
|
+
codeBidiWarningLabel: codeBidiWarningLabel
|
|
28
|
+
}),
|
|
29
|
+
codeBidiWarningLabel: codeBidiWarningLabel
|
|
30
|
+
};
|
|
31
|
+
}),
|
|
32
|
+
props: {
|
|
33
|
+
decorations: function decorations(state) {
|
|
34
|
+
var _getPluginState = (0, _pluginFactory.getPluginState)(state),
|
|
35
|
+
decorationSet = _getPluginState.decorationSet;
|
|
36
|
+
|
|
37
|
+
return decorationSet;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.createPlugin = createPlugin;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createBidiWarningsDecorationSetFromDoc = createBidiWarningsDecorationSetFromDoc;
|
|
9
|
+
exports.getPluginState = exports.createPluginState = void 0;
|
|
10
|
+
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
|
|
13
|
+
var _react = _interopRequireDefault(require("react"));
|
|
14
|
+
|
|
15
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
16
|
+
|
|
17
|
+
var _prosemirrorView = require("prosemirror-view");
|
|
18
|
+
|
|
19
|
+
var _bidiWarning = _interopRequireDefault(require("@atlaskit/code/bidi-warning"));
|
|
20
|
+
|
|
21
|
+
var _bidiWarningDecorator = _interopRequireDefault(require("@atlaskit/code/bidi-warning-decorator"));
|
|
22
|
+
|
|
23
|
+
var _pluginStateFactory = require("../../../utils/plugin-state-factory");
|
|
24
|
+
|
|
25
|
+
var _step = require("../../../utils/step");
|
|
26
|
+
|
|
27
|
+
var _pluginKey = require("../plugin-key");
|
|
28
|
+
|
|
29
|
+
var _reducer = _interopRequireDefault(require("./reducer"));
|
|
30
|
+
|
|
31
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
34
|
+
|
|
35
|
+
var _pluginFactory = (0, _pluginStateFactory.pluginFactory)(_pluginKey.codeBidiWarningPluginKey, _reducer.default, {
|
|
36
|
+
onDocChanged: function onDocChanged(tr, pluginState) {
|
|
37
|
+
if (!tr.steps.find(_step.stepHasSlice)) {
|
|
38
|
+
return pluginState;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
var newBidiWarningsDecorationSet = createBidiWarningsDecorationSetFromDoc({
|
|
42
|
+
doc: tr.doc,
|
|
43
|
+
codeBidiWarningLabel: pluginState.codeBidiWarningLabel
|
|
44
|
+
});
|
|
45
|
+
return _objectSpread(_objectSpread({}, pluginState), {}, {
|
|
46
|
+
decorationSet: newBidiWarningsDecorationSet
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}),
|
|
50
|
+
createPluginState = _pluginFactory.createPluginState,
|
|
51
|
+
getPluginState = _pluginFactory.getPluginState;
|
|
52
|
+
|
|
53
|
+
exports.getPluginState = getPluginState;
|
|
54
|
+
exports.createPluginState = createPluginState;
|
|
55
|
+
|
|
56
|
+
function createBidiWarningsDecorationSetFromDoc(_ref) {
|
|
57
|
+
var doc = _ref.doc,
|
|
58
|
+
codeBidiWarningLabel = _ref.codeBidiWarningLabel;
|
|
59
|
+
var bidiCharactersAndTheirPositions = [];
|
|
60
|
+
doc.descendants(function (node, pos) {
|
|
61
|
+
var isTextWithCodeMark = node.type.name === 'text' && node.marks && node.marks.some(function (mark) {
|
|
62
|
+
return mark.type.name === 'code';
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
if (isTextWithCodeMark) {
|
|
66
|
+
(0, _bidiWarningDecorator.default)(node.textContent, function (_ref2) {
|
|
67
|
+
var bidiCharacter = _ref2.bidiCharacter,
|
|
68
|
+
index = _ref2.index;
|
|
69
|
+
bidiCharactersAndTheirPositions.push({
|
|
70
|
+
position: pos + index,
|
|
71
|
+
bidiCharacter: bidiCharacter
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
var isCodeBlock = node.type.name === 'codeBlock';
|
|
78
|
+
|
|
79
|
+
if (isCodeBlock) {
|
|
80
|
+
(0, _bidiWarningDecorator.default)(node.textContent, function (_ref3) {
|
|
81
|
+
var bidiCharacter = _ref3.bidiCharacter,
|
|
82
|
+
index = _ref3.index;
|
|
83
|
+
bidiCharactersAndTheirPositions.push({
|
|
84
|
+
position: pos + index + 1,
|
|
85
|
+
bidiCharacter: bidiCharacter
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}); // Bidi characters are not expected to commonly appear in code snippets, so recreating the decoration set
|
|
90
|
+
// for documents rather than reusing existing decorations seems a reasonable performance/complexity tradeoff.
|
|
91
|
+
|
|
92
|
+
if (bidiCharactersAndTheirPositions.length === 0) {
|
|
93
|
+
return _prosemirrorView.DecorationSet.empty;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
var newBidiWarningsDecorationSet = _prosemirrorView.DecorationSet.create(doc, bidiCharactersAndTheirPositions.map(function (_ref4) {
|
|
97
|
+
var position = _ref4.position,
|
|
98
|
+
bidiCharacter = _ref4.bidiCharacter;
|
|
99
|
+
return _prosemirrorView.Decoration.widget(position, function () {
|
|
100
|
+
return renderDOM(bidiCharacter, codeBidiWarningLabel);
|
|
101
|
+
});
|
|
102
|
+
}));
|
|
103
|
+
|
|
104
|
+
return newBidiWarningsDecorationSet;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function renderDOM(bidiCharacter, codeBidiWarningLabel) {
|
|
108
|
+
var element = document.createElement('span'); // Note: we use this pattern elsewhere (see highlighting code block, and drop cursor widget decoration)
|
|
109
|
+
// we should investigate if there is a memory leak with such usage.
|
|
110
|
+
|
|
111
|
+
_reactDom.default.render( /*#__PURE__*/_react.default.createElement(_bidiWarning.default, {
|
|
112
|
+
bidiCharacter: bidiCharacter,
|
|
113
|
+
skipChildren: true,
|
|
114
|
+
label: codeBidiWarningLabel
|
|
115
|
+
}), element);
|
|
116
|
+
|
|
117
|
+
return element;
|
|
118
|
+
}
|
|
@@ -40,8 +40,12 @@ var codeBlockPlugin = function codeBlockPlugin() {
|
|
|
40
40
|
pmPlugins: function pmPlugins() {
|
|
41
41
|
return [{
|
|
42
42
|
name: 'codeBlock',
|
|
43
|
-
plugin: function plugin() {
|
|
44
|
-
|
|
43
|
+
plugin: function plugin(_ref) {
|
|
44
|
+
var reactContext = _ref.reactContext;
|
|
45
|
+
return (0, _main.createPlugin)({
|
|
46
|
+
useLongPressSelection: options.useLongPressSelection,
|
|
47
|
+
reactContext: reactContext
|
|
48
|
+
});
|
|
45
49
|
}
|
|
46
50
|
}, {
|
|
47
51
|
name: 'codeBlockIDEKeyBindings',
|
|
@@ -50,8 +54,8 @@ var codeBlockPlugin = function codeBlockPlugin() {
|
|
|
50
54
|
}
|
|
51
55
|
}, {
|
|
52
56
|
name: 'codeBlockKeyMap',
|
|
53
|
-
plugin: function plugin(
|
|
54
|
-
var schema =
|
|
57
|
+
plugin: function plugin(_ref2) {
|
|
58
|
+
var schema = _ref2.schema;
|
|
55
59
|
return (0, _keymaps.default)(schema);
|
|
56
60
|
}
|
|
57
61
|
}];
|
|
@@ -62,8 +66,8 @@ var codeBlockPlugin = function codeBlockPlugin() {
|
|
|
62
66
|
(0, _refreshBrowserSelection.default)(props.originalTransaction, props.newEditorState);
|
|
63
67
|
},
|
|
64
68
|
pluginsOptions: {
|
|
65
|
-
quickInsert: function quickInsert(
|
|
66
|
-
var formatMessage =
|
|
69
|
+
quickInsert: function quickInsert(_ref3) {
|
|
70
|
+
var formatMessage = _ref3.formatMessage;
|
|
67
71
|
return [{
|
|
68
72
|
id: 'codeblock',
|
|
69
73
|
title: formatMessage(_messages.messages.codeblock),
|
|
@@ -50,7 +50,7 @@ var toDOM = function toDOM(node) {
|
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
var CodeBlockView = /*#__PURE__*/function () {
|
|
53
|
-
function CodeBlockView(_node, view, getPos) {
|
|
53
|
+
function CodeBlockView(_node, view, getPos, codeBidiWarningOptions) {
|
|
54
54
|
var _this = this;
|
|
55
55
|
|
|
56
56
|
(0, _classCallCheck2.default)(this, CodeBlockView);
|
|
@@ -77,6 +77,7 @@ var CodeBlockView = /*#__PURE__*/function () {
|
|
|
77
77
|
dom = _DOMSerializer$render.dom,
|
|
78
78
|
contentDOM = _DOMSerializer$render.contentDOM;
|
|
79
79
|
|
|
80
|
+
this.codeBidiWarningOptions = codeBidiWarningOptions;
|
|
80
81
|
this.getPos = getPos;
|
|
81
82
|
this.view = view;
|
|
82
83
|
this.node = _node;
|
|
@@ -130,7 +131,9 @@ var CodeBlockView = /*#__PURE__*/function () {
|
|
|
130
131
|
_reactDom.default.render( /*#__PURE__*/_react.default.createElement(_code.CodeBlock, {
|
|
131
132
|
text: node.textContent,
|
|
132
133
|
language: node.attrs.language,
|
|
133
|
-
showLineNumbers: false
|
|
134
|
+
showLineNumbers: false,
|
|
135
|
+
codeBidiWarnings: this.codeBidiWarningOptions.enabled,
|
|
136
|
+
codeBidiWarningLabel: this.codeBidiWarningOptions.label
|
|
134
137
|
}), highlighting);
|
|
135
138
|
|
|
136
139
|
this.measure(performance.now() - start);
|
|
@@ -164,7 +167,10 @@ var CodeBlockView = /*#__PURE__*/function () {
|
|
|
164
167
|
value: function ignoreMutation(record) {
|
|
165
168
|
var _this$highlighting$co, _this$highlighting;
|
|
166
169
|
|
|
167
|
-
|
|
170
|
+
var lineNumberChanges = record.target === this.lineNumberGutter || record.target.parentNode === this.lineNumberGutter;
|
|
171
|
+
var outsideTheCodeBlockChanges = (_this$highlighting$co = (_this$highlighting = this.highlighting) === null || _this$highlighting === void 0 ? void 0 : _this$highlighting.contains(record.target)) !== null && _this$highlighting$co !== void 0 ? _this$highlighting$co : false;
|
|
172
|
+
var codeBidiWarningDecorationChanges = record.type === 'attributes' && record.attributeName === 'aria-describedby';
|
|
173
|
+
return lineNumberChanges || outsideTheCodeBlockChanges || codeBidiWarningDecorationChanges;
|
|
168
174
|
}
|
|
169
175
|
}]);
|
|
170
176
|
return CodeBlockView;
|
|
@@ -172,9 +178,14 @@ var CodeBlockView = /*#__PURE__*/function () {
|
|
|
172
178
|
|
|
173
179
|
exports.CodeBlockView = CodeBlockView;
|
|
174
180
|
|
|
175
|
-
var highlightingCodeBlockNodeView = function highlightingCodeBlockNodeView() {
|
|
181
|
+
var highlightingCodeBlockNodeView = function highlightingCodeBlockNodeView(_ref) {
|
|
182
|
+
var codeBidiWarnings = _ref.codeBidiWarnings,
|
|
183
|
+
codeBidiWarningLabel = _ref.codeBidiWarningLabel;
|
|
176
184
|
return function (node, view, getPos) {
|
|
177
|
-
return new CodeBlockView(node, view, getPos
|
|
185
|
+
return new CodeBlockView(node, view, getPos, {
|
|
186
|
+
enabled: codeBidiWarnings,
|
|
187
|
+
label: codeBidiWarningLabel
|
|
188
|
+
});
|
|
178
189
|
};
|
|
179
190
|
};
|
|
180
191
|
|