@atlaskit/renderer 111.2.7 → 111.2.9

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,30 @@
1
1
  # @atlaskit/renderer
2
2
 
3
+ ## 111.2.9
4
+
5
+ ### Patch Changes
6
+
7
+ - [#155853](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/155853)
8
+ [`1986c9bd0cc15`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1986c9bd0cc15) -
9
+ [ux] ED-25409 Support comments on media for external images in renderer
10
+ - [#155735](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/155735)
11
+ [`1beeeda29023a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1beeeda29023a) -
12
+ Upgrades editor packages to react 18
13
+ - Updated dependencies
14
+
15
+ ## 111.2.8
16
+
17
+ ### Patch Changes
18
+
19
+ - [#155195](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/155195)
20
+ [`73c97aeb48ea9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/73c97aeb48ea9) -
21
+ Add platform_editor_support_table_in_comment_jira experiment to control table drag and drop and
22
+ table scaling features to support new table features in jira
23
+ - [#152897](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/152897)
24
+ [`ecafb0e3e4fdf`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/ecafb0e3e4fdf) -
25
+ [ux] [ED-25418] Fix z-indexes for media badges in renderer
26
+ - Updated dependencies
27
+
3
28
  ## 111.2.7
4
29
 
5
30
  ### Patch Changes
@@ -333,7 +333,8 @@ var Media = /*#__PURE__*/function (_PureComponent) {
333
333
  }, (0, _experiments.editorExperiment)('add-media-from-url', true) && (0, _react2.jsx)(_mediaSingle.MediaBadges, {
334
334
  mediaElement: mediaSingleElement,
335
335
  mediaWidth: width,
336
- mediaHeight: height
336
+ mediaHeight: height,
337
+ useMinimumZIndex: true
337
338
  }, function (_ref8) {
338
339
  var badgeSize = _ref8.badgeSize;
339
340
  return (0, _react2.jsx)(_react.default.Fragment, null, shouldShowExternalMediaBadge && (0, _react2.jsx)(_mediaSingle.ExternalImageBadge, {
@@ -176,6 +176,8 @@ var Colgroup = exports.Colgroup = function Colgroup(props) {
176
176
  var colStyles = renderScaleDownColgroup(_objectSpread(_objectSpread({}, props), {}, {
177
177
  isTableScalingEnabled: !!(flags && 'tablePreserveWidth' in flags && flags.tablePreserveWidth) || props.rendererAppearance === 'comment' && (0, _experiments.editorExperiment)('support_table_in_comment', true, {
178
178
  exposure: true
179
+ }) || props.rendererAppearance === 'comment' && (0, _experiments.editorExperiment)('support_table_in_comment_jira', true, {
180
+ exposure: true
179
181
  }),
180
182
  isTableFixedColumnWidthsOptionEnabled: !!(flags && 'tableWithFixedColumnWidthsOption' in flags && flags.tableWithFixedColumnWidthsOption) && (props.rendererAppearance === 'full-page' || props.rendererAppearance === 'full-width')
181
183
  }));
@@ -21,6 +21,7 @@ var _traverse = require("@atlaskit/adf-utils/traverse");
21
21
  var _mediaCard = require("@atlaskit/media-card");
22
22
  var _mediaClientReact = require("@atlaskit/media-client-react");
23
23
  var _utils = require("@atlaskit/editor-common/utils");
24
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
24
25
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
25
26
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
27
  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; }
@@ -215,7 +216,8 @@ var MediaCardView = exports.MediaCardView = /*#__PURE__*/function (_Component) {
215
216
  alt = _this$props4.alt,
216
217
  featureFlags = _this$props4.featureFlags,
217
218
  ssr = _this$props4.ssr,
218
- mediaClient = _this$props4.mediaClient;
219
+ mediaClient = _this$props4.mediaClient,
220
+ dataAttributes = _this$props4.dataAttributes;
219
221
  if (imageStatus === 'loading' || !url) {
220
222
  return this.renderLoadingCard();
221
223
  }
@@ -227,23 +229,45 @@ var MediaCardView = exports.MediaCardView = /*#__PURE__*/function (_Component) {
227
229
 
228
230
  // we need this statement for the mandatory mediaClientConfig below
229
231
  var mediaClientConfig = mediaClient === null || mediaClient === void 0 ? void 0 : mediaClient.mediaClientConfig;
230
- return /*#__PURE__*/_react.default.createElement(_mediaCard.Card
231
- // TODO MPT-315: clean up after we move mediaClientConfig into FileIdentifier
232
- // context is not really used when the type is external and we want to render the component asap
233
- , {
234
- mediaClientConfig: mediaClientConfig,
235
- alt: alt,
236
- identifier: identifier,
237
- dimensions: cardDimensions,
238
- appearance: appearance,
239
- resizeMode: resizeMode,
240
- disableOverlay: disableOverlay,
241
- shouldOpenMediaViewer: shouldOpenMediaViewer,
242
- mediaViewerItems: Array.from(mediaIdentifierMap.values()),
243
- featureFlags: featureFlags,
244
- ssr: ssr === null || ssr === void 0 ? void 0 : ssr.mode,
245
- shouldHideTooltip: false
246
- });
232
+ if ((0, _platformFeatureFlags.fg)('platform_editor_external_media_comment_bugfix')) {
233
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, dataAttributes, {
234
+ "data-node-type": "media"
235
+ }), /*#__PURE__*/_react.default.createElement(_mediaCard.Card
236
+ // TODO MPT-315: clean up after we move mediaClientConfig into FileIdentifier
237
+ // context is not really used when the type is external and we want to render the component asap
238
+ , {
239
+ mediaClientConfig: mediaClientConfig,
240
+ alt: alt,
241
+ identifier: identifier,
242
+ dimensions: cardDimensions,
243
+ appearance: appearance,
244
+ resizeMode: resizeMode,
245
+ disableOverlay: disableOverlay,
246
+ shouldOpenMediaViewer: shouldOpenMediaViewer,
247
+ mediaViewerItems: Array.from(mediaIdentifierMap.values()),
248
+ featureFlags: featureFlags,
249
+ ssr: ssr === null || ssr === void 0 ? void 0 : ssr.mode,
250
+ shouldHideTooltip: false
251
+ }));
252
+ } else {
253
+ return /*#__PURE__*/_react.default.createElement(_mediaCard.Card
254
+ // TODO MPT-315: clean up after we move mediaClientConfig into FileIdentifier
255
+ // context is not really used when the type is external and we want to render the component asap
256
+ , {
257
+ mediaClientConfig: mediaClientConfig,
258
+ alt: alt,
259
+ identifier: identifier,
260
+ dimensions: cardDimensions,
261
+ appearance: appearance,
262
+ resizeMode: resizeMode,
263
+ disableOverlay: disableOverlay,
264
+ shouldOpenMediaViewer: shouldOpenMediaViewer,
265
+ mediaViewerItems: Array.from(mediaIdentifierMap.values()),
266
+ featureFlags: featureFlags,
267
+ ssr: ssr === null || ssr === void 0 ? void 0 : ssr.mode,
268
+ shouldHideTooltip: false
269
+ });
270
+ }
247
271
  }
248
272
  }, {
249
273
  key: "render",
@@ -65,7 +65,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
65
65
  var NORMAL_SEVERITY_THRESHOLD = exports.NORMAL_SEVERITY_THRESHOLD = 2000;
66
66
  var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
67
67
  var packageName = "@atlaskit/renderer";
68
- var packageVersion = "111.2.7";
68
+ var packageVersion = "111.2.9";
69
69
  var setAsQueryContainerStyles = (0, _react2.css)({
70
70
  containerName: 'ak-renderer-wrapper',
71
71
  containerType: 'inline-size',
@@ -300,7 +300,8 @@ class Media extends PureComponent {
300
300
  }, editorExperiment('add-media-from-url', true) && jsx(MediaBadges, {
301
301
  mediaElement: mediaSingleElement,
302
302
  mediaWidth: width,
303
- mediaHeight: height
303
+ mediaHeight: height,
304
+ useMinimumZIndex: true
304
305
  }, ({
305
306
  badgeSize
306
307
  }) => jsx(React.Fragment, null, shouldShowExternalMediaBadge && jsx(ExternalImageBadge, {
@@ -166,6 +166,8 @@ export const Colgroup = props => {
166
166
  ...props,
167
167
  isTableScalingEnabled: !!(flags && 'tablePreserveWidth' in flags && flags.tablePreserveWidth) || props.rendererAppearance === 'comment' && editorExperiment('support_table_in_comment', true, {
168
168
  exposure: true
169
+ }) || props.rendererAppearance === 'comment' && editorExperiment('support_table_in_comment_jira', true, {
170
+ exposure: true
169
171
  }),
170
172
  isTableFixedColumnWidthsOptionEnabled: !!(flags && 'tableWithFixedColumnWidthsOption' in flags && flags.tableWithFixedColumnWidthsOption) && (props.rendererAppearance === 'full-page' || props.rendererAppearance === 'full-width')
171
173
  });
@@ -5,6 +5,7 @@ import { filter } from '@atlaskit/adf-utils/traverse';
5
5
  import { Card, CardLoading, CardError } from '@atlaskit/media-card';
6
6
  import { MediaClientContext } from '@atlaskit/media-client-react';
7
7
  import { withImageLoader } from '@atlaskit/editor-common/utils';
8
+ import { fg } from '@atlaskit/platform-feature-flags';
8
9
  export const mediaIdentifierMap = new Map();
9
10
  export const getListOfIdentifiersFromDoc = doc => {
10
11
  if (!doc) {
@@ -147,7 +148,8 @@ export class MediaCardView extends Component {
147
148
  alt,
148
149
  featureFlags,
149
150
  ssr,
150
- mediaClient
151
+ mediaClient,
152
+ dataAttributes
151
153
  } = this.props;
152
154
  if (imageStatus === 'loading' || !url) {
153
155
  return this.renderLoadingCard();
@@ -160,23 +162,45 @@ export class MediaCardView extends Component {
160
162
 
161
163
  // we need this statement for the mandatory mediaClientConfig below
162
164
  const mediaClientConfig = mediaClient === null || mediaClient === void 0 ? void 0 : mediaClient.mediaClientConfig;
163
- return /*#__PURE__*/React.createElement(Card
164
- // TODO MPT-315: clean up after we move mediaClientConfig into FileIdentifier
165
- // context is not really used when the type is external and we want to render the component asap
166
- , {
167
- mediaClientConfig: mediaClientConfig,
168
- alt: alt,
169
- identifier: identifier,
170
- dimensions: cardDimensions,
171
- appearance: appearance,
172
- resizeMode: resizeMode,
173
- disableOverlay: disableOverlay,
174
- shouldOpenMediaViewer: shouldOpenMediaViewer,
175
- mediaViewerItems: Array.from(mediaIdentifierMap.values()),
176
- featureFlags: featureFlags,
177
- ssr: ssr === null || ssr === void 0 ? void 0 : ssr.mode,
178
- shouldHideTooltip: false
179
- });
165
+ if (fg('platform_editor_external_media_comment_bugfix')) {
166
+ return /*#__PURE__*/React.createElement("div", _extends({}, dataAttributes, {
167
+ "data-node-type": "media"
168
+ }), /*#__PURE__*/React.createElement(Card
169
+ // TODO MPT-315: clean up after we move mediaClientConfig into FileIdentifier
170
+ // context is not really used when the type is external and we want to render the component asap
171
+ , {
172
+ mediaClientConfig: mediaClientConfig,
173
+ alt: alt,
174
+ identifier: identifier,
175
+ dimensions: cardDimensions,
176
+ appearance: appearance,
177
+ resizeMode: resizeMode,
178
+ disableOverlay: disableOverlay,
179
+ shouldOpenMediaViewer: shouldOpenMediaViewer,
180
+ mediaViewerItems: Array.from(mediaIdentifierMap.values()),
181
+ featureFlags: featureFlags,
182
+ ssr: ssr === null || ssr === void 0 ? void 0 : ssr.mode,
183
+ shouldHideTooltip: false
184
+ }));
185
+ } else {
186
+ return /*#__PURE__*/React.createElement(Card
187
+ // TODO MPT-315: clean up after we move mediaClientConfig into FileIdentifier
188
+ // context is not really used when the type is external and we want to render the component asap
189
+ , {
190
+ mediaClientConfig: mediaClientConfig,
191
+ alt: alt,
192
+ identifier: identifier,
193
+ dimensions: cardDimensions,
194
+ appearance: appearance,
195
+ resizeMode: resizeMode,
196
+ disableOverlay: disableOverlay,
197
+ shouldOpenMediaViewer: shouldOpenMediaViewer,
198
+ mediaViewerItems: Array.from(mediaIdentifierMap.values()),
199
+ featureFlags: featureFlags,
200
+ ssr: ssr === null || ssr === void 0 ? void 0 : ssr.mode,
201
+ shouldHideTooltip: false
202
+ });
203
+ }
180
204
  }
181
205
  render() {
182
206
  const {
@@ -45,7 +45,7 @@ import { countNodes } from './count-nodes';
45
45
  export const NORMAL_SEVERITY_THRESHOLD = 2000;
46
46
  export const DEGRADED_SEVERITY_THRESHOLD = 3000;
47
47
  const packageName = "@atlaskit/renderer";
48
- const packageVersion = "111.2.7";
48
+ const packageVersion = "111.2.9";
49
49
  const setAsQueryContainerStyles = css({
50
50
  containerName: 'ak-renderer-wrapper',
51
51
  containerType: 'inline-size',
@@ -324,7 +324,8 @@ var Media = /*#__PURE__*/function (_PureComponent) {
324
324
  }, editorExperiment('add-media-from-url', true) && jsx(MediaBadges, {
325
325
  mediaElement: mediaSingleElement,
326
326
  mediaWidth: width,
327
- mediaHeight: height
327
+ mediaHeight: height,
328
+ useMinimumZIndex: true
328
329
  }, function (_ref8) {
329
330
  var badgeSize = _ref8.badgeSize;
330
331
  return jsx(React.Fragment, null, shouldShowExternalMediaBadge && jsx(ExternalImageBadge, {
@@ -169,6 +169,8 @@ export var Colgroup = function Colgroup(props) {
169
169
  var colStyles = renderScaleDownColgroup(_objectSpread(_objectSpread({}, props), {}, {
170
170
  isTableScalingEnabled: !!(flags && 'tablePreserveWidth' in flags && flags.tablePreserveWidth) || props.rendererAppearance === 'comment' && editorExperiment('support_table_in_comment', true, {
171
171
  exposure: true
172
+ }) || props.rendererAppearance === 'comment' && editorExperiment('support_table_in_comment_jira', true, {
173
+ exposure: true
172
174
  }),
173
175
  isTableFixedColumnWidthsOptionEnabled: !!(flags && 'tableWithFixedColumnWidthsOption' in flags && flags.tableWithFixedColumnWidthsOption) && (props.rendererAppearance === 'full-page' || props.rendererAppearance === 'full-width')
174
176
  }));
@@ -17,6 +17,7 @@ import { filter } from '@atlaskit/adf-utils/traverse';
17
17
  import { Card, CardLoading, CardError } from '@atlaskit/media-card';
18
18
  import { MediaClientContext } from '@atlaskit/media-client-react';
19
19
  import { withImageLoader } from '@atlaskit/editor-common/utils';
20
+ import { fg } from '@atlaskit/platform-feature-flags';
20
21
  export var mediaIdentifierMap = new Map();
21
22
  export var getListOfIdentifiersFromDoc = function getListOfIdentifiersFromDoc(doc) {
22
23
  if (!doc) {
@@ -205,7 +206,8 @@ export var MediaCardView = /*#__PURE__*/function (_Component) {
205
206
  alt = _this$props4.alt,
206
207
  featureFlags = _this$props4.featureFlags,
207
208
  ssr = _this$props4.ssr,
208
- mediaClient = _this$props4.mediaClient;
209
+ mediaClient = _this$props4.mediaClient,
210
+ dataAttributes = _this$props4.dataAttributes;
209
211
  if (imageStatus === 'loading' || !url) {
210
212
  return this.renderLoadingCard();
211
213
  }
@@ -217,23 +219,45 @@ export var MediaCardView = /*#__PURE__*/function (_Component) {
217
219
 
218
220
  // we need this statement for the mandatory mediaClientConfig below
219
221
  var mediaClientConfig = mediaClient === null || mediaClient === void 0 ? void 0 : mediaClient.mediaClientConfig;
220
- return /*#__PURE__*/React.createElement(Card
221
- // TODO MPT-315: clean up after we move mediaClientConfig into FileIdentifier
222
- // context is not really used when the type is external and we want to render the component asap
223
- , {
224
- mediaClientConfig: mediaClientConfig,
225
- alt: alt,
226
- identifier: identifier,
227
- dimensions: cardDimensions,
228
- appearance: appearance,
229
- resizeMode: resizeMode,
230
- disableOverlay: disableOverlay,
231
- shouldOpenMediaViewer: shouldOpenMediaViewer,
232
- mediaViewerItems: Array.from(mediaIdentifierMap.values()),
233
- featureFlags: featureFlags,
234
- ssr: ssr === null || ssr === void 0 ? void 0 : ssr.mode,
235
- shouldHideTooltip: false
236
- });
222
+ if (fg('platform_editor_external_media_comment_bugfix')) {
223
+ return /*#__PURE__*/React.createElement("div", _extends({}, dataAttributes, {
224
+ "data-node-type": "media"
225
+ }), /*#__PURE__*/React.createElement(Card
226
+ // TODO MPT-315: clean up after we move mediaClientConfig into FileIdentifier
227
+ // context is not really used when the type is external and we want to render the component asap
228
+ , {
229
+ mediaClientConfig: mediaClientConfig,
230
+ alt: alt,
231
+ identifier: identifier,
232
+ dimensions: cardDimensions,
233
+ appearance: appearance,
234
+ resizeMode: resizeMode,
235
+ disableOverlay: disableOverlay,
236
+ shouldOpenMediaViewer: shouldOpenMediaViewer,
237
+ mediaViewerItems: Array.from(mediaIdentifierMap.values()),
238
+ featureFlags: featureFlags,
239
+ ssr: ssr === null || ssr === void 0 ? void 0 : ssr.mode,
240
+ shouldHideTooltip: false
241
+ }));
242
+ } else {
243
+ return /*#__PURE__*/React.createElement(Card
244
+ // TODO MPT-315: clean up after we move mediaClientConfig into FileIdentifier
245
+ // context is not really used when the type is external and we want to render the component asap
246
+ , {
247
+ mediaClientConfig: mediaClientConfig,
248
+ alt: alt,
249
+ identifier: identifier,
250
+ dimensions: cardDimensions,
251
+ appearance: appearance,
252
+ resizeMode: resizeMode,
253
+ disableOverlay: disableOverlay,
254
+ shouldOpenMediaViewer: shouldOpenMediaViewer,
255
+ mediaViewerItems: Array.from(mediaIdentifierMap.values()),
256
+ featureFlags: featureFlags,
257
+ ssr: ssr === null || ssr === void 0 ? void 0 : ssr.mode,
258
+ shouldHideTooltip: false
259
+ });
260
+ }
237
261
  }
238
262
  }, {
239
263
  key: "render",
@@ -55,7 +55,7 @@ import { countNodes } from './count-nodes';
55
55
  export var NORMAL_SEVERITY_THRESHOLD = 2000;
56
56
  export var DEGRADED_SEVERITY_THRESHOLD = 3000;
57
57
  var packageName = "@atlaskit/renderer";
58
- var packageVersion = "111.2.7";
58
+ var packageVersion = "111.2.9";
59
59
  var setAsQueryContainerStyles = css({
60
60
  containerName: 'ak-renderer-wrapper',
61
61
  containerType: 'inline-size',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "111.2.7",
3
+ "version": "111.2.9",
4
4
  "description": "Renderer component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -23,22 +23,22 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@atlaskit/adf-schema": "^42.3.1",
26
- "@atlaskit/adf-utils": "^19.9.0",
26
+ "@atlaskit/adf-utils": "^19.10.0",
27
27
  "@atlaskit/analytics-listeners": "^8.11.0",
28
28
  "@atlaskit/analytics-namespaced-context": "^6.12.0",
29
29
  "@atlaskit/analytics-next": "^10.1.0",
30
- "@atlaskit/button": "^20.2.0",
30
+ "@atlaskit/button": "^20.3.0",
31
31
  "@atlaskit/code": "^15.6.0",
32
- "@atlaskit/editor-common": "^94.0.0",
32
+ "@atlaskit/editor-common": "^94.2.0",
33
33
  "@atlaskit/editor-json-transformer": "^8.20.0",
34
- "@atlaskit/editor-palette": "1.6.1",
34
+ "@atlaskit/editor-palette": "1.6.2",
35
35
  "@atlaskit/editor-prosemirror": "6.0.0",
36
36
  "@atlaskit/editor-shared-styles": "^3.0.0",
37
37
  "@atlaskit/emoji": "^67.8.0",
38
38
  "@atlaskit/feature-gate-js-client": "^4.20.0",
39
- "@atlaskit/icon": "^22.23.0",
39
+ "@atlaskit/icon": "^22.24.0",
40
40
  "@atlaskit/link-datasource": "^3.6.0",
41
- "@atlaskit/media-card": "^78.7.0",
41
+ "@atlaskit/media-card": "^78.8.0",
42
42
  "@atlaskit/media-client": "^28.0.0",
43
43
  "@atlaskit/media-client-react": "^2.2.0",
44
44
  "@atlaskit/media-common": "^11.6.0",
@@ -93,8 +93,6 @@
93
93
  "jsdom": "^22.0.0",
94
94
  "mockdate": "^3.0.5",
95
95
  "puppeteer": "13.7.0",
96
- "react": "^16.8.0",
97
- "react-dom": "^16.8.0",
98
96
  "react-live-clock": "^5.0.0",
99
97
  "react-magnetic-di": "^3.1.4",
100
98
  "react-moment": "^1.1.2",
@@ -136,6 +134,9 @@
136
134
  },
137
135
  "platform-datasources-enable-two-way-sync": {
138
136
  "type": "boolean"
137
+ },
138
+ "platform_editor_external_media_comment_bugfix": {
139
+ "type": "boolean"
139
140
  }
140
141
  },
141
142
  "af:exports": {