@atlaskit/editor-plugin-collab-edit 3.2.5 → 3.3.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 +9 -0
- package/dist/cjs/collabEditPlugin.js +7 -4
- package/dist/cjs/pm-plugins/events/send-transaction.js +4 -2
- package/dist/es2019/collabEditPlugin.js +5 -2
- package/dist/es2019/pm-plugins/events/send-transaction.js +4 -2
- package/dist/esm/collabEditPlugin.js +5 -2
- package/dist/esm/pm-plugins/events/send-transaction.js +4 -2
- package/dist/types/pm-plugins/events/send-transaction.d.ts +4 -2
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types-ts4.5/pm-plugins/events/send-transaction.d.ts +4 -2
- package/dist/types-ts4.5/types/index.d.ts +1 -0
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-collab-edit
|
|
2
2
|
|
|
3
|
+
## 3.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#136936](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/136936)
|
|
8
|
+
[`505147cb14bae`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/505147cb14bae) -
|
|
9
|
+
[ux] [ED-27431] Do not transmit telecursor position on initial load of non-empty live pages when
|
|
10
|
+
hideTelecursorOnLoad is set.
|
|
11
|
+
|
|
3
12
|
## 3.2.5
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -10,6 +10,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
10
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
12
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
13
|
+
var _utils = require("@atlaskit/editor-common/utils");
|
|
13
14
|
var _editorJsonTransformer = require("@atlaskit/editor-json-transformer");
|
|
14
15
|
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
15
16
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
@@ -25,7 +26,7 @@ var _trackLastOrganicChange = require("./pm-plugins/track-last-organic-change");
|
|
|
25
26
|
var _trackNcsInitialization = require("./pm-plugins/track-ncs-initialization");
|
|
26
27
|
var _trackReconnectionConflict = require("./pm-plugins/track-reconnection-conflict");
|
|
27
28
|
var _trackSteps = require("./pm-plugins/track-steps");
|
|
28
|
-
var
|
|
29
|
+
var _utils2 = require("./pm-plugins/utils");
|
|
29
30
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
30
31
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
31
32
|
var providerBuilder = function providerBuilder(collabEditProviderPromise) {
|
|
@@ -149,7 +150,7 @@ var collabEditPlugin = exports.collabEditPlugin = function collabEditPlugin(_ref
|
|
|
149
150
|
};
|
|
150
151
|
},
|
|
151
152
|
actions: {
|
|
152
|
-
getAvatarColor:
|
|
153
|
+
getAvatarColor: _utils2.getAvatarColor,
|
|
153
154
|
addInlineCommentMark: createAddInlineCommentMark(collabEditProviderPromise),
|
|
154
155
|
addInlineCommentNodeMark: createAddInlineCommentNodeMark(collabEditProviderPromise),
|
|
155
156
|
isRemoteReplaceDocumentTransaction: function isRemoteReplaceDocumentTransaction(tr) {
|
|
@@ -260,15 +261,17 @@ var collabEditPlugin = exports.collabEditPlugin = function collabEditPlugin(_ref
|
|
|
260
261
|
return plugins;
|
|
261
262
|
},
|
|
262
263
|
onEditorViewStateUpdated: function onEditorViewStateUpdated(props) {
|
|
263
|
-
var _api$analytics2, _api$editorViewMode, _options$useNativePlu;
|
|
264
|
+
var _api$analytics2, _api$editorViewMode, _options$useNativePlu, _options$hideTelecurs;
|
|
264
265
|
var addErrorAnalytics = (0, _analytics2.addSynchronyErrorAnalytics)(props.newEditorState, props.newEditorState.tr, featureFlags, api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions);
|
|
266
|
+
var isEmptyDoc = (0, _utils.isEmptyDocument)(props.newEditorState.doc);
|
|
265
267
|
var viewMode = api === null || api === void 0 || (_api$editorViewMode = api.editorViewMode) === null || _api$editorViewMode === void 0 || (_api$editorViewMode = _api$editorViewMode.sharedState.currentState()) === null || _api$editorViewMode === void 0 ? void 0 : _api$editorViewMode.mode;
|
|
266
268
|
executeProviderCode((0, _sendTransaction.sendTransaction)({
|
|
267
269
|
originalTransaction: props.originalTransaction,
|
|
268
270
|
transactions: props.transactions,
|
|
269
271
|
oldEditorState: props.oldEditorState,
|
|
270
272
|
newEditorState: props.newEditorState,
|
|
271
|
-
useNativePlugin: (_options$useNativePlu = options
|
|
273
|
+
useNativePlugin: (_options$useNativePlu = options.useNativePlugin) !== null && _options$useNativePlu !== void 0 ? _options$useNativePlu : false,
|
|
274
|
+
hideTelecursorOnLoad: !isEmptyDoc && ((_options$hideTelecurs = options.hideTelecursorOnLoad) !== null && _options$hideTelecurs !== void 0 ? _options$hideTelecurs : false),
|
|
272
275
|
viewMode: viewMode
|
|
273
276
|
}), addErrorAnalytics);
|
|
274
277
|
(0, _trackSteps.track)(_objectSpread(_objectSpread({}, props), {}, {
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.sendTransaction = void 0;
|
|
7
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
7
8
|
var _actions = require("../actions");
|
|
8
9
|
var _pluginKey = require("../main/plugin-key");
|
|
9
10
|
var sendTransaction = exports.sendTransaction = function sendTransaction(_ref) {
|
|
@@ -12,7 +13,8 @@ var sendTransaction = exports.sendTransaction = function sendTransaction(_ref) {
|
|
|
12
13
|
oldEditorState = _ref.oldEditorState,
|
|
13
14
|
newEditorState = _ref.newEditorState,
|
|
14
15
|
useNativePlugin = _ref.useNativePlugin,
|
|
15
|
-
viewMode = _ref.viewMode
|
|
16
|
+
viewMode = _ref.viewMode,
|
|
17
|
+
hideTelecursorOnLoad = _ref.hideTelecursorOnLoad;
|
|
16
18
|
return function (provider) {
|
|
17
19
|
var docChangedTransaction = transactions.find(function (tr) {
|
|
18
20
|
return tr.docChanged;
|
|
@@ -35,7 +37,7 @@ var sendTransaction = exports.sendTransaction = function sendTransaction(_ref) {
|
|
|
35
37
|
sessionId = currentPluginState.sessionId;
|
|
36
38
|
var selectionChanged = !oldEditorState.selection.eq(newEditorState.selection);
|
|
37
39
|
var participantsChanged = prevActiveParticipants && !prevActiveParticipants.eq(activeParticipants);
|
|
38
|
-
if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged)) {
|
|
40
|
+
if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || ((0, _platformFeatureFlags.fg)('platform_editor_no_telecursor_on_live_doc_init') ? participantsChanged && !hideTelecursorOnLoad : participantsChanged))) {
|
|
39
41
|
var selection = (0, _actions.getSendableSelection)(newEditorState.selection);
|
|
40
42
|
var message = {
|
|
41
43
|
type: 'telepointer',
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
2
|
+
import { isEmptyDocument } from '@atlaskit/editor-common/utils';
|
|
2
3
|
import { JSONTransformer } from '@atlaskit/editor-json-transformer';
|
|
3
4
|
import { AddMarkStep, AddNodeMarkStep } from '@atlaskit/editor-prosemirror/transform';
|
|
4
5
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
@@ -206,15 +207,17 @@ export const collabEditPlugin = ({
|
|
|
206
207
|
return plugins;
|
|
207
208
|
},
|
|
208
209
|
onEditorViewStateUpdated(props) {
|
|
209
|
-
var _api$analytics2, _api$editorViewMode, _api$editorViewMode$s, _options$useNativePlu;
|
|
210
|
+
var _api$analytics2, _api$editorViewMode, _api$editorViewMode$s, _options$useNativePlu, _options$hideTelecurs;
|
|
210
211
|
const addErrorAnalytics = addSynchronyErrorAnalytics(props.newEditorState, props.newEditorState.tr, featureFlags, api === null || api === void 0 ? void 0 : (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions);
|
|
212
|
+
const isEmptyDoc = isEmptyDocument(props.newEditorState.doc);
|
|
211
213
|
const viewMode = api === null || api === void 0 ? void 0 : (_api$editorViewMode = api.editorViewMode) === null || _api$editorViewMode === void 0 ? void 0 : (_api$editorViewMode$s = _api$editorViewMode.sharedState.currentState()) === null || _api$editorViewMode$s === void 0 ? void 0 : _api$editorViewMode$s.mode;
|
|
212
214
|
executeProviderCode(sendTransaction({
|
|
213
215
|
originalTransaction: props.originalTransaction,
|
|
214
216
|
transactions: props.transactions,
|
|
215
217
|
oldEditorState: props.oldEditorState,
|
|
216
218
|
newEditorState: props.newEditorState,
|
|
217
|
-
useNativePlugin: (_options$useNativePlu = options
|
|
219
|
+
useNativePlugin: (_options$useNativePlu = options.useNativePlugin) !== null && _options$useNativePlu !== void 0 ? _options$useNativePlu : false,
|
|
220
|
+
hideTelecursorOnLoad: !isEmptyDoc && ((_options$hideTelecurs = options.hideTelecursorOnLoad) !== null && _options$hideTelecurs !== void 0 ? _options$hideTelecurs : false),
|
|
218
221
|
viewMode
|
|
219
222
|
}), addErrorAnalytics);
|
|
220
223
|
track({
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
2
|
import { getSendableSelection } from '../actions';
|
|
2
3
|
import { pluginKey } from '../main/plugin-key';
|
|
3
4
|
export const sendTransaction = ({
|
|
@@ -6,7 +7,8 @@ export const sendTransaction = ({
|
|
|
6
7
|
oldEditorState,
|
|
7
8
|
newEditorState,
|
|
8
9
|
useNativePlugin,
|
|
9
|
-
viewMode
|
|
10
|
+
viewMode,
|
|
11
|
+
hideTelecursorOnLoad
|
|
10
12
|
}) => provider => {
|
|
11
13
|
const docChangedTransaction = transactions.find(tr => tr.docChanged);
|
|
12
14
|
const currentPluginState = pluginKey.getState(newEditorState);
|
|
@@ -30,7 +32,7 @@ export const sendTransaction = ({
|
|
|
30
32
|
} = currentPluginState;
|
|
31
33
|
const selectionChanged = !oldEditorState.selection.eq(newEditorState.selection);
|
|
32
34
|
const participantsChanged = prevActiveParticipants && !prevActiveParticipants.eq(activeParticipants);
|
|
33
|
-
if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged)) {
|
|
35
|
+
if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || (fg('platform_editor_no_telecursor_on_live_doc_init') ? participantsChanged && !hideTelecursorOnLoad : participantsChanged))) {
|
|
34
36
|
const selection = getSendableSelection(newEditorState.selection);
|
|
35
37
|
const message = {
|
|
36
38
|
type: 'telepointer',
|
|
@@ -5,6 +5,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
5
5
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
6
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
7
7
|
import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
8
|
+
import { isEmptyDocument } from '@atlaskit/editor-common/utils';
|
|
8
9
|
import { JSONTransformer } from '@atlaskit/editor-json-transformer';
|
|
9
10
|
import { AddMarkStep, AddNodeMarkStep } from '@atlaskit/editor-prosemirror/transform';
|
|
10
11
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
@@ -253,15 +254,17 @@ export var collabEditPlugin = function collabEditPlugin(_ref4) {
|
|
|
253
254
|
return plugins;
|
|
254
255
|
},
|
|
255
256
|
onEditorViewStateUpdated: function onEditorViewStateUpdated(props) {
|
|
256
|
-
var _api$analytics2, _api$editorViewMode, _options$useNativePlu;
|
|
257
|
+
var _api$analytics2, _api$editorViewMode, _options$useNativePlu, _options$hideTelecurs;
|
|
257
258
|
var addErrorAnalytics = addSynchronyErrorAnalytics(props.newEditorState, props.newEditorState.tr, featureFlags, api === null || api === void 0 || (_api$analytics2 = api.analytics) === null || _api$analytics2 === void 0 ? void 0 : _api$analytics2.actions);
|
|
259
|
+
var isEmptyDoc = isEmptyDocument(props.newEditorState.doc);
|
|
258
260
|
var viewMode = api === null || api === void 0 || (_api$editorViewMode = api.editorViewMode) === null || _api$editorViewMode === void 0 || (_api$editorViewMode = _api$editorViewMode.sharedState.currentState()) === null || _api$editorViewMode === void 0 ? void 0 : _api$editorViewMode.mode;
|
|
259
261
|
executeProviderCode(sendTransaction({
|
|
260
262
|
originalTransaction: props.originalTransaction,
|
|
261
263
|
transactions: props.transactions,
|
|
262
264
|
oldEditorState: props.oldEditorState,
|
|
263
265
|
newEditorState: props.newEditorState,
|
|
264
|
-
useNativePlugin: (_options$useNativePlu = options
|
|
266
|
+
useNativePlugin: (_options$useNativePlu = options.useNativePlugin) !== null && _options$useNativePlu !== void 0 ? _options$useNativePlu : false,
|
|
267
|
+
hideTelecursorOnLoad: !isEmptyDoc && ((_options$hideTelecurs = options.hideTelecursorOnLoad) !== null && _options$hideTelecurs !== void 0 ? _options$hideTelecurs : false),
|
|
265
268
|
viewMode: viewMode
|
|
266
269
|
}), addErrorAnalytics);
|
|
267
270
|
track(_objectSpread(_objectSpread({}, props), {}, {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
2
|
import { getSendableSelection } from '../actions';
|
|
2
3
|
import { pluginKey } from '../main/plugin-key';
|
|
3
4
|
export var sendTransaction = function sendTransaction(_ref) {
|
|
@@ -6,7 +7,8 @@ export var sendTransaction = function sendTransaction(_ref) {
|
|
|
6
7
|
oldEditorState = _ref.oldEditorState,
|
|
7
8
|
newEditorState = _ref.newEditorState,
|
|
8
9
|
useNativePlugin = _ref.useNativePlugin,
|
|
9
|
-
viewMode = _ref.viewMode
|
|
10
|
+
viewMode = _ref.viewMode,
|
|
11
|
+
hideTelecursorOnLoad = _ref.hideTelecursorOnLoad;
|
|
10
12
|
return function (provider) {
|
|
11
13
|
var docChangedTransaction = transactions.find(function (tr) {
|
|
12
14
|
return tr.docChanged;
|
|
@@ -29,7 +31,7 @@ export var sendTransaction = function sendTransaction(_ref) {
|
|
|
29
31
|
sessionId = currentPluginState.sessionId;
|
|
30
32
|
var selectionChanged = !oldEditorState.selection.eq(newEditorState.selection);
|
|
31
33
|
var participantsChanged = prevActiveParticipants && !prevActiveParticipants.eq(activeParticipants);
|
|
32
|
-
if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || participantsChanged)) {
|
|
34
|
+
if (sessionId && viewMode === 'edit' && (selectionChanged && !docChangedTransaction || (fg('platform_editor_no_telecursor_on_live_doc_init') ? participantsChanged && !hideTelecursorOnLoad : participantsChanged))) {
|
|
33
35
|
var selection = getSendableSelection(newEditorState.selection);
|
|
34
36
|
var message = {
|
|
35
37
|
type: 'telepointer',
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CollabEditProvider } from '@atlaskit/editor-common/collab';
|
|
2
|
+
import { ViewMode } from '@atlaskit/editor-plugin-editor-viewmode';
|
|
2
3
|
import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
4
|
type Props = {
|
|
4
5
|
originalTransaction: Readonly<Transaction>;
|
|
@@ -6,7 +7,8 @@ type Props = {
|
|
|
6
7
|
oldEditorState: EditorState;
|
|
7
8
|
newEditorState: EditorState;
|
|
8
9
|
useNativePlugin: boolean;
|
|
9
|
-
|
|
10
|
+
hideTelecursorOnLoad: boolean;
|
|
11
|
+
viewMode?: ViewMode;
|
|
10
12
|
};
|
|
11
|
-
export declare const sendTransaction: ({ originalTransaction, transactions, oldEditorState, newEditorState, useNativePlugin, viewMode, }: Props) => (provider: CollabEditProvider) => void;
|
|
13
|
+
export declare const sendTransaction: ({ originalTransaction, transactions, oldEditorState, newEditorState, useNativePlugin, viewMode, hideTelecursorOnLoad, }: Props) => (provider: CollabEditProvider) => void;
|
|
12
14
|
export {};
|
|
@@ -4,6 +4,7 @@ import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
|
4
4
|
export type PrivateCollabEditOptions = CollabEditOptions & {
|
|
5
5
|
sanitizePrivateContent?: boolean;
|
|
6
6
|
onSyncUpError?: SyncUpErrorFunction;
|
|
7
|
+
hideTelecursorOnLoad?: boolean;
|
|
7
8
|
};
|
|
8
9
|
export type ProviderCallback = <ReturnType>(codeToExecute: (provider: CollabEditProvider) => ReturnType | undefined, onError?: (err: Error) => void) => Promise<ReturnType | undefined> | undefined;
|
|
9
10
|
export type ProviderBuilder = (collabEditProviderPromise: Promise<CollabEditProvider>) => ProviderCallback;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CollabEditProvider } from '@atlaskit/editor-common/collab';
|
|
2
|
+
import { ViewMode } from '@atlaskit/editor-plugin-editor-viewmode';
|
|
2
3
|
import type { EditorState, Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
4
|
type Props = {
|
|
4
5
|
originalTransaction: Readonly<Transaction>;
|
|
@@ -6,7 +7,8 @@ type Props = {
|
|
|
6
7
|
oldEditorState: EditorState;
|
|
7
8
|
newEditorState: EditorState;
|
|
8
9
|
useNativePlugin: boolean;
|
|
9
|
-
|
|
10
|
+
hideTelecursorOnLoad: boolean;
|
|
11
|
+
viewMode?: ViewMode;
|
|
10
12
|
};
|
|
11
|
-
export declare const sendTransaction: ({ originalTransaction, transactions, oldEditorState, newEditorState, useNativePlugin, viewMode, }: Props) => (provider: CollabEditProvider) => void;
|
|
13
|
+
export declare const sendTransaction: ({ originalTransaction, transactions, oldEditorState, newEditorState, useNativePlugin, viewMode, hideTelecursorOnLoad, }: Props) => (provider: CollabEditProvider) => void;
|
|
12
14
|
export {};
|
|
@@ -4,6 +4,7 @@ import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
|
4
4
|
export type PrivateCollabEditOptions = CollabEditOptions & {
|
|
5
5
|
sanitizePrivateContent?: boolean;
|
|
6
6
|
onSyncUpError?: SyncUpErrorFunction;
|
|
7
|
+
hideTelecursorOnLoad?: boolean;
|
|
7
8
|
};
|
|
8
9
|
export type ProviderCallback = <ReturnType>(codeToExecute: (provider: CollabEditProvider) => ReturnType | undefined, onError?: (err: Error) => void) => Promise<ReturnType | undefined> | undefined;
|
|
9
10
|
export type ProviderBuilder = (collabEditProviderPromise: Promise<CollabEditProvider>) => ProviderCallback;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-collab-edit",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "Collab Edit plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -114,6 +114,9 @@
|
|
|
114
114
|
},
|
|
115
115
|
"platform_editor_selection_without_left_shift": {
|
|
116
116
|
"type": "boolean"
|
|
117
|
+
},
|
|
118
|
+
"platform_editor_no_telecursor_on_live_doc_init": {
|
|
119
|
+
"type": "boolean"
|
|
117
120
|
}
|
|
118
121
|
}
|
|
119
122
|
}
|