@atlaskit/editor-core 190.1.28 → 190.2.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 CHANGED
@@ -1,5 +1,29 @@
1
1
  # @atlaskit/editor-core
2
2
 
3
+ ## 190.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#64320](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/64320) [`1f21567ce911`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1f21567ce911) - Deprecate the jira issue plugin and allowJiraIssue prop in Editor.
8
+
9
+ These will be removed in a future version.
10
+
11
+ This also removes `confluenceJiraIssue` node from editor as it is no longer required.
12
+
13
+ Updated the confluence transformer to no longer support `confluenceJiraIssue`. This is behind a feature flag and will be removed in a future version.
14
+
15
+ ### Patch Changes
16
+
17
+ - [#64775](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/64775) [`a88b0fdcc0c4`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a88b0fdcc0c4) - Fix contentComponents (with before and after) crashing on non-full-page appearances.
18
+
19
+ ## 190.1.30
20
+
21
+ ### Patch Changes
22
+
23
+ - [#64152](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/64152) [`4bc51e1731ba`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/4bc51e1731ba) - [ux] Added a table selector button to the full page toolbar and button styles
24
+ - [#64193](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/64193) [`5b5fa24e7856`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/5b5fa24e7856) - [ux] Fixed floating toolbar position for multiBodiedExtension
25
+ - Updated dependencies
26
+
3
27
  ## 190.1.28
4
28
 
5
29
  ### Patch Changes
@@ -163,6 +163,31 @@ var getToolbarConfig = exports.getToolbarConfig = function getToolbarConfig(_ref
163
163
  return extensionState.element.parentElement || undefined;
164
164
  },
165
165
  nodeType: nodeType,
166
+ onPositionCalculated: function onPositionCalculated(editorView, nextPos) {
167
+ var _editorView$state = editorView.state,
168
+ schema = _editorView$state.schema,
169
+ selection = _editorView$state.selection;
170
+ var mbeNode = (0, _utils2.getSelectedExtension)(state, true);
171
+ var mbeFrame = (0, _utils.findParentNodeOfType)(schema.nodes.extensionFrame)(selection);
172
+ if (!mbeNode || !mbeFrame) {
173
+ return nextPos;
174
+ }
175
+ var mbeDomElement = editorView.nodeDOM(mbeNode.pos);
176
+ var mbeFrameElement = editorView.nodeDOM(mbeFrame.pos);
177
+ var mbeNodeRect = mbeDomElement === null || mbeDomElement === void 0 ? void 0 : mbeDomElement.getBoundingClientRect();
178
+ var mbeFrameRect = mbeFrameElement.getBoundingClientRect();
179
+
180
+ /**
181
+ * MbeNodeRect height will include mbeFrameRect height and the navigation toolbar of the MBE
182
+ * excluding nav toolbar height from the floaing extention toolbar position calculated.
183
+ * adding 15px extra for the spacing between MBE node and floating toolbar.
184
+ *
185
+ */
186
+ return {
187
+ top: mbeNodeRect.top + mbeFrameRect.height + 15,
188
+ left: nextPos.left
189
+ };
190
+ },
166
191
  items: [].concat((0, _toConsumableArray2.default)(editButtonArray), (0, _toConsumableArray2.default)(breakoutButtonArray), [{
167
192
  type: 'separator',
168
193
  hidden: editButtonArray.length === 0 && breakoutButtonArray.length === 0
@@ -257,7 +257,7 @@ function createUniversalPreset(appearance, props, featureFlags, prevAppearance,
257
257
  }
258
258
  return builder;
259
259
  }).maybeAdd(_plugins.jiraIssuePlugin, function (plugin, builder) {
260
- if (props.allowJiraIssue) {
260
+ if (!(0, _platformFeatureFlags.getBooleanFF)('platform.editor.deprecate-jira-issue-plugin') && props.allowJiraIssue) {
261
261
  return builder.add(plugin);
262
262
  }
263
263
  return builder;
@@ -366,6 +366,7 @@ function createUniversalPreset(appearance, props, featureFlags, prevAppearance,
366
366
  allowExpand: isExpandInsertionEnabled(props),
367
367
  insertMenuItems: props.insertMenuItems,
368
368
  horizontalRuleEnabled: props.allowRule,
369
+ tableSelectorSupported: (0, _platformFeatureFlags.getBooleanFF)('platform.editor.insert-block.table-selector-button') && isFullPage,
369
370
  nativeStatusSupported: !statusMenuDisabled,
370
371
  showElementBrowserLink: props.elementBrowser && props.elementBrowser.showModal || false,
371
372
  replacePlusMenuWithElementBrowser: props.elementBrowser && props.elementBrowser.replacePlusMenu || false
@@ -75,7 +75,7 @@ var Editor = exports.default = /*#__PURE__*/function (_React$Component) {
75
75
  }, (0, _react2.jsx)(ContentArea, {
76
76
  className: "ak-editor-content-area",
77
77
  featureFlags: featureFlags
78
- }, customContentComponents, (0, _react2.jsx)(_PluginSlot.default, {
78
+ }, customContentComponents && 'before' in customContentComponents ? customContentComponents.before : customContentComponents, (0, _react2.jsx)(_PluginSlot.default, {
79
79
  editorView: editorView,
80
80
  editorActions: editorActions,
81
81
  eventDispatcher: eventDispatcher,
@@ -90,7 +90,7 @@ var Editor = exports.default = /*#__PURE__*/function (_React$Component) {
90
90
  dispatchAnalyticsEvent: dispatchAnalyticsEvent,
91
91
  wrapperElement: _this.containerElement,
92
92
  pluginHooks: pluginHooks
93
- }), editorDOMElement)));
93
+ }), editorDOMElement, customContentComponents && 'after' in customContentComponents ? customContentComponents.after : null)));
94
94
  });
95
95
  return _this;
96
96
  }
@@ -155,7 +155,7 @@ var Editor = /*#__PURE__*/function (_React$Component) {
155
155
  'less-margin': width < _editorSharedStyles.akEditorMobileBreakoutPoint
156
156
  }),
157
157
  featureFlags: featureFlags
158
- }, customContentComponents, (0, _react2.jsx)(_PluginSlot.default, {
158
+ }, customContentComponents && 'before' in customContentComponents ? customContentComponents.before : customContentComponents, (0, _react2.jsx)(_PluginSlot.default, {
159
159
  editorView: editorView,
160
160
  editorActions: editorActions,
161
161
  eventDispatcher: eventDispatcher,
@@ -170,7 +170,7 @@ var Editor = /*#__PURE__*/function (_React$Component) {
170
170
  disabled: !!disabled,
171
171
  wrapperElement: _this.wrapperElementRef.current,
172
172
  pluginHooks: pluginHooks
173
- }), editorDOMElement);
173
+ }), editorDOMElement, customContentComponents && 'after' in customContentComponents ? customContentComponents.after : null);
174
174
  }))), showSecondaryToolbar && (0, _react2.jsx)("div", {
175
175
  css: secondaryToolbarStyle,
176
176
  "data-testid": "ak-editor-secondary-toolbar"
@@ -5,4 +5,4 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.version = exports.name = void 0;
7
7
  var name = exports.name = "@atlaskit/editor-core";
8
- var version = exports.version = "190.1.28";
8
+ var version = exports.version = "190.2.0";
@@ -12,6 +12,7 @@ import { getSelectedExtension } from './utils';
12
12
  import { updateExtensionLayout, removeExtension, removeDescendantNodes } from './commands';
13
13
  import { pluginKey as macroPluginKey } from './pm-plugins/macro/plugin-key';
14
14
  import { isReferencedSource, getChildrenInfo, getNodeName } from '@atlaskit/editor-common/utils';
15
+ import { findParentNodeOfType } from '@atlaskit/editor-prosemirror/utils';
15
16
  export const messages = defineMessages({
16
17
  edit: {
17
18
  id: 'fabric.editor.edit',
@@ -157,6 +158,34 @@ export const getToolbarConfig = ({
157
158
  title: 'Extension floating controls',
158
159
  getDomRef: () => extensionState.element.parentElement || undefined,
159
160
  nodeType,
161
+ onPositionCalculated: (editorView, nextPos) => {
162
+ const {
163
+ state: {
164
+ schema,
165
+ selection
166
+ }
167
+ } = editorView;
168
+ const mbeNode = getSelectedExtension(state, true);
169
+ const mbeFrame = findParentNodeOfType(schema.nodes.extensionFrame)(selection);
170
+ if (!mbeNode || !mbeFrame) {
171
+ return nextPos;
172
+ }
173
+ const mbeDomElement = editorView.nodeDOM(mbeNode.pos);
174
+ const mbeFrameElement = editorView.nodeDOM(mbeFrame.pos);
175
+ const mbeNodeRect = mbeDomElement === null || mbeDomElement === void 0 ? void 0 : mbeDomElement.getBoundingClientRect();
176
+ const mbeFrameRect = mbeFrameElement.getBoundingClientRect();
177
+
178
+ /**
179
+ * MbeNodeRect height will include mbeFrameRect height and the navigation toolbar of the MBE
180
+ * excluding nav toolbar height from the floaing extention toolbar position calculated.
181
+ * adding 15px extra for the spacing between MBE node and floating toolbar.
182
+ *
183
+ */
184
+ return {
185
+ top: mbeNodeRect.top + mbeFrameRect.height + 15,
186
+ left: nextPos.left
187
+ };
188
+ },
160
189
  items: [...editButtonArray, ...breakoutButtonArray, {
161
190
  type: 'separator',
162
191
  hidden: editButtonArray.length === 0 && breakoutButtonArray.length === 0
@@ -250,7 +250,7 @@ export default function createUniversalPreset(appearance, props, featureFlags, p
250
250
  }
251
251
  return builder;
252
252
  }).maybeAdd(jiraIssuePlugin, (plugin, builder) => {
253
- if (props.allowJiraIssue) {
253
+ if (!getBooleanFF('platform.editor.deprecate-jira-issue-plugin') && props.allowJiraIssue) {
254
254
  return builder.add(plugin);
255
255
  }
256
256
  return builder;
@@ -363,6 +363,7 @@ export default function createUniversalPreset(appearance, props, featureFlags, p
363
363
  allowExpand: isExpandInsertionEnabled(props),
364
364
  insertMenuItems: props.insertMenuItems,
365
365
  horizontalRuleEnabled: props.allowRule,
366
+ tableSelectorSupported: getBooleanFF('platform.editor.insert-block.table-selector-button') && isFullPage,
366
367
  nativeStatusSupported: !statusMenuDisabled,
367
368
  showElementBrowserLink: props.elementBrowser && props.elementBrowser.showModal || false,
368
369
  replacePlusMenuWithElementBrowser: props.elementBrowser && props.elementBrowser.replacePlusMenu || false
@@ -72,7 +72,7 @@ export default class Editor extends React.Component {
72
72
  }, jsx(ContentArea, {
73
73
  className: "ak-editor-content-area",
74
74
  featureFlags: featureFlags
75
- }, customContentComponents, jsx(PluginSlot, {
75
+ }, customContentComponents && 'before' in customContentComponents ? customContentComponents.before : customContentComponents, jsx(PluginSlot, {
76
76
  editorView: editorView,
77
77
  editorActions: editorActions,
78
78
  eventDispatcher: eventDispatcher,
@@ -87,7 +87,7 @@ export default class Editor extends React.Component {
87
87
  dispatchAnalyticsEvent: dispatchAnalyticsEvent,
88
88
  wrapperElement: this.containerElement,
89
89
  pluginHooks: pluginHooks
90
- }), editorDOMElement)));
90
+ }), editorDOMElement, customContentComponents && 'after' in customContentComponents ? customContentComponents.after : null)));
91
91
  });
92
92
  }
93
93
  render() {
@@ -183,7 +183,7 @@ class Editor extends React.Component {
183
183
  'less-margin': width < akEditorMobileBreakoutPoint
184
184
  }),
185
185
  featureFlags: featureFlags
186
- }, customContentComponents, jsx(PluginSlot, {
186
+ }, customContentComponents && 'before' in customContentComponents ? customContentComponents.before : customContentComponents, jsx(PluginSlot, {
187
187
  editorView: editorView,
188
188
  editorActions: editorActions,
189
189
  eventDispatcher: eventDispatcher,
@@ -198,7 +198,7 @@ class Editor extends React.Component {
198
198
  disabled: !!disabled,
199
199
  wrapperElement: this.wrapperElementRef.current,
200
200
  pluginHooks: pluginHooks
201
- }), editorDOMElement);
201
+ }), editorDOMElement, customContentComponents && 'after' in customContentComponents ? customContentComponents.after : null);
202
202
  }))), showSecondaryToolbar && jsx("div", {
203
203
  css: secondaryToolbarStyle,
204
204
  "data-testid": "ak-editor-secondary-toolbar"
@@ -1,2 +1,2 @@
1
1
  export const name = "@atlaskit/editor-core";
2
- export const version = "190.1.28";
2
+ export const version = "190.2.0";
@@ -13,6 +13,7 @@ import { getSelectedExtension } from './utils';
13
13
  import { updateExtensionLayout, removeExtension, removeDescendantNodes } from './commands';
14
14
  import { pluginKey as macroPluginKey } from './pm-plugins/macro/plugin-key';
15
15
  import { isReferencedSource, getChildrenInfo as _getChildrenInfo, getNodeName } from '@atlaskit/editor-common/utils';
16
+ import { findParentNodeOfType } from '@atlaskit/editor-prosemirror/utils';
16
17
  export var messages = defineMessages({
17
18
  edit: {
18
19
  id: 'fabric.editor.edit',
@@ -156,6 +157,31 @@ export var getToolbarConfig = function getToolbarConfig(_ref) {
156
157
  return extensionState.element.parentElement || undefined;
157
158
  },
158
159
  nodeType: nodeType,
160
+ onPositionCalculated: function onPositionCalculated(editorView, nextPos) {
161
+ var _editorView$state = editorView.state,
162
+ schema = _editorView$state.schema,
163
+ selection = _editorView$state.selection;
164
+ var mbeNode = getSelectedExtension(state, true);
165
+ var mbeFrame = findParentNodeOfType(schema.nodes.extensionFrame)(selection);
166
+ if (!mbeNode || !mbeFrame) {
167
+ return nextPos;
168
+ }
169
+ var mbeDomElement = editorView.nodeDOM(mbeNode.pos);
170
+ var mbeFrameElement = editorView.nodeDOM(mbeFrame.pos);
171
+ var mbeNodeRect = mbeDomElement === null || mbeDomElement === void 0 ? void 0 : mbeDomElement.getBoundingClientRect();
172
+ var mbeFrameRect = mbeFrameElement.getBoundingClientRect();
173
+
174
+ /**
175
+ * MbeNodeRect height will include mbeFrameRect height and the navigation toolbar of the MBE
176
+ * excluding nav toolbar height from the floaing extention toolbar position calculated.
177
+ * adding 15px extra for the spacing between MBE node and floating toolbar.
178
+ *
179
+ */
180
+ return {
181
+ top: mbeNodeRect.top + mbeFrameRect.height + 15,
182
+ left: nextPos.left
183
+ };
184
+ },
159
185
  items: [].concat(_toConsumableArray(editButtonArray), _toConsumableArray(breakoutButtonArray), [{
160
186
  type: 'separator',
161
187
  hidden: editButtonArray.length === 0 && breakoutButtonArray.length === 0
@@ -249,7 +249,7 @@ export default function createUniversalPreset(appearance, props, featureFlags, p
249
249
  }
250
250
  return builder;
251
251
  }).maybeAdd(jiraIssuePlugin, function (plugin, builder) {
252
- if (props.allowJiraIssue) {
252
+ if (!getBooleanFF('platform.editor.deprecate-jira-issue-plugin') && props.allowJiraIssue) {
253
253
  return builder.add(plugin);
254
254
  }
255
255
  return builder;
@@ -358,6 +358,7 @@ export default function createUniversalPreset(appearance, props, featureFlags, p
358
358
  allowExpand: isExpandInsertionEnabled(props),
359
359
  insertMenuItems: props.insertMenuItems,
360
360
  horizontalRuleEnabled: props.allowRule,
361
+ tableSelectorSupported: getBooleanFF('platform.editor.insert-block.table-selector-button') && isFullPage,
361
362
  nativeStatusSupported: !statusMenuDisabled,
362
363
  showElementBrowserLink: props.elementBrowser && props.elementBrowser.showModal || false,
363
364
  replacePlusMenuWithElementBrowser: props.elementBrowser && props.elementBrowser.replacePlusMenu || false
@@ -65,7 +65,7 @@ var Editor = /*#__PURE__*/function (_React$Component) {
65
65
  }, jsx(ContentArea, {
66
66
  className: "ak-editor-content-area",
67
67
  featureFlags: featureFlags
68
- }, customContentComponents, jsx(PluginSlot, {
68
+ }, customContentComponents && 'before' in customContentComponents ? customContentComponents.before : customContentComponents, jsx(PluginSlot, {
69
69
  editorView: editorView,
70
70
  editorActions: editorActions,
71
71
  eventDispatcher: eventDispatcher,
@@ -80,7 +80,7 @@ var Editor = /*#__PURE__*/function (_React$Component) {
80
80
  dispatchAnalyticsEvent: dispatchAnalyticsEvent,
81
81
  wrapperElement: _this.containerElement,
82
82
  pluginHooks: pluginHooks
83
- }), editorDOMElement)));
83
+ }), editorDOMElement, customContentComponents && 'after' in customContentComponents ? customContentComponents.after : null)));
84
84
  });
85
85
  return _this;
86
86
  }
@@ -145,7 +145,7 @@ var Editor = /*#__PURE__*/function (_React$Component) {
145
145
  'less-margin': width < akEditorMobileBreakoutPoint
146
146
  }),
147
147
  featureFlags: featureFlags
148
- }, customContentComponents, jsx(PluginSlot, {
148
+ }, customContentComponents && 'before' in customContentComponents ? customContentComponents.before : customContentComponents, jsx(PluginSlot, {
149
149
  editorView: editorView,
150
150
  editorActions: editorActions,
151
151
  eventDispatcher: eventDispatcher,
@@ -160,7 +160,7 @@ var Editor = /*#__PURE__*/function (_React$Component) {
160
160
  disabled: !!disabled,
161
161
  wrapperElement: _this.wrapperElementRef.current,
162
162
  pluginHooks: pluginHooks
163
- }), editorDOMElement);
163
+ }), editorDOMElement, customContentComponents && 'after' in customContentComponents ? customContentComponents.after : null);
164
164
  }))), showSecondaryToolbar && jsx("div", {
165
165
  css: secondaryToolbarStyle,
166
166
  "data-testid": "ak-editor-secondary-toolbar"
@@ -1,2 +1,2 @@
1
1
  export var name = "@atlaskit/editor-core";
2
- export var version = "190.1.28";
2
+ export var version = "190.2.0";
@@ -7,3 +7,9 @@ export declare const getSelectedDomElement: (schema: Schema, domAtPos: DomAtPos,
7
7
  export declare const getDataConsumerMark: (newNode: PMNode) => Mark | undefined;
8
8
  export declare const getNodeTypesReferenced: (ids: string[], state: EditorState) => string[];
9
9
  export declare const findNodePosWithLocalId: (state: EditorState, localId: string) => NodeWithPos | undefined;
10
+ export interface Position {
11
+ top?: number;
12
+ right?: number;
13
+ bottom?: number;
14
+ left?: number;
15
+ }
@@ -187,6 +187,12 @@ export interface EditorPluginFeatureProps {
187
187
  allowBreakout?: boolean;
188
188
  allowRule?: boolean;
189
189
  allowHelpDialog?: boolean;
190
+ /**
191
+ * @deprecated
192
+ * This was a temporary setting for Confluence until we shipped smart cards. **Please do not use.*
193
+ * We have now shipped and no-longer require.
194
+ * This will be deprecated very soon.
195
+ */
190
196
  allowJiraIssue?: boolean;
191
197
  allowPanel?: boolean | PanelPluginConfig;
192
198
  allowExtension?: boolean | ExtensionConfig;
@@ -7,3 +7,9 @@ export declare const getSelectedDomElement: (schema: Schema, domAtPos: DomAtPos,
7
7
  export declare const getDataConsumerMark: (newNode: PMNode) => Mark | undefined;
8
8
  export declare const getNodeTypesReferenced: (ids: string[], state: EditorState) => string[];
9
9
  export declare const findNodePosWithLocalId: (state: EditorState, localId: string) => NodeWithPos | undefined;
10
+ export interface Position {
11
+ top?: number;
12
+ right?: number;
13
+ bottom?: number;
14
+ left?: number;
15
+ }
@@ -187,6 +187,12 @@ export interface EditorPluginFeatureProps {
187
187
  allowBreakout?: boolean;
188
188
  allowRule?: boolean;
189
189
  allowHelpDialog?: boolean;
190
+ /**
191
+ * @deprecated
192
+ * This was a temporary setting for Confluence until we shipped smart cards. **Please do not use.*
193
+ * We have now shipped and no-longer require.
194
+ * This will be deprecated very soon.
195
+ */
190
196
  allowJiraIssue?: boolean;
191
197
  allowPanel?: boolean | PanelPluginConfig;
192
198
  allowExtension?: boolean | ExtensionConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-core",
3
- "version": "190.1.28",
3
+ "version": "190.2.0",
4
4
  "description": "A package contains Atlassian editor core functionality",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -52,7 +52,7 @@
52
52
  "@atlaskit/checkbox": "^13.0.0",
53
53
  "@atlaskit/date": "^0.10.0",
54
54
  "@atlaskit/datetime-picker": "^13.0.3",
55
- "@atlaskit/editor-common": "^76.31.0",
55
+ "@atlaskit/editor-common": "^76.33.0",
56
56
  "@atlaskit/editor-json-transformer": "^8.10.0",
57
57
  "@atlaskit/editor-plugin-alignment": "^0.1.0",
58
58
  "@atlaskit/editor-plugin-analytics": "^0.4.0",
@@ -63,7 +63,7 @@
63
63
  "@atlaskit/editor-plugin-border": "^0.1.0",
64
64
  "@atlaskit/editor-plugin-breakout": "^0.1.0",
65
65
  "@atlaskit/editor-plugin-caption": "^0.2.0",
66
- "@atlaskit/editor-plugin-card": "^0.14.0",
66
+ "@atlaskit/editor-plugin-card": "^0.15.0",
67
67
  "@atlaskit/editor-plugin-clear-marks-on-empty-doc": "^0.1.0",
68
68
  "@atlaskit/editor-plugin-clipboard": "^0.1.0",
69
69
  "@atlaskit/editor-plugin-code-bidi-warning": "^0.1.0",
@@ -143,7 +143,7 @@
143
143
  "@atlaskit/textfield": "^6.0.0",
144
144
  "@atlaskit/theme": "^12.6.0",
145
145
  "@atlaskit/toggle": "^13.0.0",
146
- "@atlaskit/tokens": "^1.32.0",
146
+ "@atlaskit/tokens": "^1.33.0",
147
147
  "@atlaskit/tooltip": "^18.1.0",
148
148
  "@atlaskit/ufo": "^0.2.0",
149
149
  "@atlaskit/width-detector": "^4.1.0",
@@ -310,6 +310,9 @@
310
310
  "type": "boolean",
311
311
  "referenceOnly": "true"
312
312
  },
313
+ "platform.editor.insert-block.table-selector-button": {
314
+ "type": "boolean"
315
+ },
313
316
  "platform.editor.enable-selection-toolbar_ucdwd": {
314
317
  "type": "boolean"
315
318
  },
@@ -372,6 +375,9 @@
372
375
  "platform.editor.table.in-danger-hover-merged-cells-fix": {
373
376
  "type": "boolean",
374
377
  "referenceOnly": "true"
378
+ },
379
+ "platform.editor.deprecate-jira-issue-plugin": {
380
+ "type": "boolean"
375
381
  }
376
382
  }
377
383
  }