@atlaskit/renderer 114.9.0 → 114.10.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/messages.js +1 -8
  3. package/dist/cjs/react/nodes/emoji.js +3 -1
  4. package/dist/cjs/react/nodes/status.js +18 -26
  5. package/dist/cjs/render-document.js +50 -26
  6. package/dist/cjs/steps/index.js +8 -0
  7. package/dist/cjs/ui/Renderer/index.js +1 -1
  8. package/dist/cjs/ui/annotations/context.js +16 -2
  9. package/dist/cjs/ui/annotations/index.js +2 -1
  10. package/dist/cjs/ui/annotations/wrapper.js +4 -2
  11. package/dist/es2019/messages.js +0 -7
  12. package/dist/es2019/react/nodes/emoji.js +3 -1
  13. package/dist/es2019/react/nodes/status.js +18 -26
  14. package/dist/es2019/render-document.js +20 -4
  15. package/dist/es2019/steps/index.js +8 -0
  16. package/dist/es2019/ui/Renderer/index.js +1 -1
  17. package/dist/es2019/ui/annotations/context.js +15 -2
  18. package/dist/es2019/ui/annotations/index.js +2 -1
  19. package/dist/es2019/ui/annotations/wrapper.js +4 -2
  20. package/dist/esm/messages.js +0 -7
  21. package/dist/esm/react/nodes/emoji.js +3 -1
  22. package/dist/esm/react/nodes/status.js +18 -26
  23. package/dist/esm/render-document.js +50 -26
  24. package/dist/esm/steps/index.js +8 -0
  25. package/dist/esm/ui/Renderer/index.js +1 -1
  26. package/dist/esm/ui/annotations/context.js +16 -2
  27. package/dist/esm/ui/annotations/index.js +2 -1
  28. package/dist/esm/ui/annotations/wrapper.js +4 -2
  29. package/dist/types/messages.d.ts +0 -7
  30. package/dist/types/ui/annotations/context.d.ts +1 -0
  31. package/dist/types/ui/annotations/wrapper.d.ts +1 -0
  32. package/dist/types-ts4.5/messages.d.ts +0 -7
  33. package/dist/types-ts4.5/ui/annotations/context.d.ts +1 -0
  34. package/dist/types-ts4.5/ui/annotations/wrapper.d.ts +1 -0
  35. package/package.json +20 -11
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @atlaskit/renderer
2
2
 
3
+ ## 114.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#144384](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/144384)
8
+ [`3a650f8970f01`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/3a650f8970f01) -
9
+ Adding emoji load callbacks to Renderer EmojiConfig
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
15
+ ## 114.9.1
16
+
17
+ ### Patch Changes
18
+
19
+ - [#141018](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/141018)
20
+ [`1d2bde2b40c75`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/1d2bde2b40c75) -
21
+ [ux] [A11Y-20936] Removed "Status: " text from statuses to prevent unintended text while copying.
22
+ Made status nodes have an "Emphasis" role so that accessibility tools will emphasize the text
23
+ - Updated dependencies
24
+
3
25
  ## 114.9.0
4
26
 
5
27
  ### Minor Changes
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.tableCellMessages = exports.statusMessages = exports.inlineCommentMessages = exports.headingAnchorLinkMessages = void 0;
6
+ exports.tableCellMessages = exports.inlineCommentMessages = exports.headingAnchorLinkMessages = void 0;
7
7
  var _reactIntlNext = require("react-intl-next");
8
8
  /* eslint-disable @atlaskit/editor/no-re-export */
9
9
  // Entry file in package.json
@@ -58,11 +58,4 @@ var inlineCommentMessages = exports.inlineCommentMessages = (0, _reactIntlNext.d
58
58
  defaultMessage: 'inline comment end',
59
59
  description: 'Ending marker to indicate that text was highlighted with an inline comment by a screen reader.'
60
60
  }
61
- });
62
- var statusMessages = exports.statusMessages = (0, _reactIntlNext.defineMessages)({
63
- accessibilityLabelForStatus: {
64
- id: 'fabric.editor.status.accessibilityLabel',
65
- defaultMessage: 'status: ',
66
- description: 'Accessibility label for status'
67
- }
68
61
  });
@@ -63,7 +63,9 @@ var EmojiNode = /*#__PURE__*/function (_PureComponent) {
63
63
  fallback: fallback,
64
64
  shortName: shortName
65
65
  }),
66
- editorEmoji: true
66
+ editorEmoji: true,
67
+ onEmojiLoadSuccess: resourceConfig === null || resourceConfig === void 0 ? void 0 : resourceConfig.onEmojiLoadSuccess,
68
+ onEmojiLoadFail: resourceConfig === null || resourceConfig === void 0 ? void 0 : resourceConfig.onEmojiLoadFail
67
69
  });
68
70
  });
69
71
  _this.providerFactory = props.providers || new _providerFactory.ProviderFactory();
@@ -6,14 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _react = _interopRequireWildcard(require("react"));
10
11
  var _element = require("@atlaskit/status/element");
11
12
  var _analyticsNamespacedContext = require("@atlaskit/analytics-namespaced-context");
12
- var _visuallyHidden = _interopRequireDefault(require("@atlaskit/visually-hidden"));
13
13
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
14
- var _reactIntlNext = require("react-intl-next");
15
14
  var _useInlineAnnotationProps = require("../../ui/annotations/element/useInlineAnnotationProps");
16
- var _messages = require("../../messages");
17
15
  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); }
18
16
  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; }
19
17
  var _default = exports.default = /*#__PURE__*/(0, _react.memo)(function Status(props) {
@@ -21,39 +19,33 @@ var _default = exports.default = /*#__PURE__*/(0, _react.memo)(function Status(p
21
19
  color = props.color,
22
20
  localId = props.localId;
23
21
  var inlineAnnotationProps = (0, _useInlineAnnotationProps.useInlineAnnotationProps)(props);
24
- var intl = (0, _reactIntlNext.useIntl)();
25
22
  if ((0, _platformFeatureFlags.fg)('editor_inline_comments_on_inline_nodes')) {
26
- return (
27
- /*#__PURE__*/
28
- // Ignored via go/ees005
29
- // eslint-disable-next-line react/jsx-props-no-spreading
30
- _react.default.createElement("span", inlineAnnotationProps, (0, _platformFeatureFlags.fg)('editor_a11y_status_renderer_description') && /*#__PURE__*/_react.default.createElement(_visuallyHidden.default, {
31
- role: "generic"
32
- }, intl.formatMessage(_messages.statusMessages.accessibilityLabelForStatus)), /*#__PURE__*/_react.default.createElement(_analyticsNamespacedContext.FabricElementsAnalyticsContext, {
33
- data: {
34
- userContext: 'document'
35
- }
36
- }, /*#__PURE__*/_react.default.createElement(_element.Status, {
37
- text: text,
38
- color: color,
39
- localId: localId,
40
- role: (0, _platformFeatureFlags.fg)('editor_a11y_status_renderer_description') ? undefined : 'presentation',
41
- isBold: (0, _platformFeatureFlags.fg)('platform-component-visual-refresh')
42
- })))
43
- );
23
+ return /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({}, inlineAnnotationProps, {
24
+ role: (0, _platformFeatureFlags.fg)('editor_a11y_status_renderer_description') ? 'emphasis' : undefined
25
+ }), /*#__PURE__*/_react.default.createElement(_analyticsNamespacedContext.FabricElementsAnalyticsContext, {
26
+ data: {
27
+ userContext: 'document'
28
+ }
29
+ }, /*#__PURE__*/_react.default.createElement(_element.Status, {
30
+ text: text,
31
+ color: color,
32
+ localId: localId,
33
+ role: (0, _platformFeatureFlags.fg)('editor_a11y_status_renderer_description') ? undefined : 'presentation',
34
+ isBold: (0, _platformFeatureFlags.fg)('platform-component-visual-refresh')
35
+ })));
44
36
  }
45
37
  return /*#__PURE__*/_react.default.createElement(_analyticsNamespacedContext.FabricElementsAnalyticsContext, {
46
38
  data: {
47
39
  userContext: 'document'
48
40
  }
49
- }, (0, _platformFeatureFlags.fg)('editor_a11y_status_renderer_description') ? /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_visuallyHidden.default, {
50
- role: "generic"
51
- }, intl.formatMessage(_messages.statusMessages.accessibilityLabelForStatus)), /*#__PURE__*/_react.default.createElement(_element.Status, {
41
+ }, (0, _platformFeatureFlags.fg)('editor_a11y_status_renderer_description') ? /*#__PURE__*/_react.default.createElement("span", {
42
+ role: "emphasis"
43
+ }, /*#__PURE__*/_react.default.createElement(_element.Status, {
52
44
  text: text,
53
45
  color: color,
54
46
  localId: localId,
55
47
  isBold: (0, _platformFeatureFlags.fg)('platform-component-visual-refresh')
56
- }))) : /*#__PURE__*/_react.default.createElement(_element.Status, {
48
+ })) : /*#__PURE__*/_react.default.createElement(_element.Status, {
57
49
  text: text,
58
50
  color: color,
59
51
  localId: localId,
@@ -98,21 +98,45 @@ var _validation = function _validation(doc, schema, adfStage, useSpecBasedValida
98
98
  return result;
99
99
  };
100
100
  var memoValidation = (0, _memoizeOne.default)(_validation, function (newArgs, lastArgs) {
101
- var _newArgs = (0, _slicedToArray2.default)(newArgs, 5),
102
- newDoc = _newArgs[0],
103
- newSchema = _newArgs[1],
104
- newADFStage = _newArgs[2],
105
- newUseSpecValidator = _newArgs[3],
106
- skipValidation = _newArgs[4];
107
- var _lastArgs = (0, _slicedToArray2.default)(lastArgs, 5),
108
- oldDoc = _lastArgs[0],
109
- oldSchema = _lastArgs[1],
110
- oldADFStage = _lastArgs[2],
111
- oldUseSpecValidator = _lastArgs[3],
112
- oldSkipValidation = _lastArgs[4];
101
+ var result = false;
102
+ if ((0, _platformFeatureFlags.fg)('cc_complexit_fe_memoValidation_redundant_calls')) {
103
+ var _newArgs = (0, _slicedToArray2.default)(newArgs, 6),
104
+ newDoc = _newArgs[0],
105
+ newSchema = _newArgs[1],
106
+ newADFStage = _newArgs[2],
107
+ newUseSpecValidator = _newArgs[3],
108
+ // ignoring dispatchAnalyticsEvent
109
+ newSkipValidation = _newArgs[5];
113
110
 
114
- // we're ignoring changes to dispatchAnalyticsEvent in this check
115
- var result = areDocsEqual(newDoc, oldDoc) && newSchema === oldSchema && newADFStage === oldADFStage && newUseSpecValidator === oldUseSpecValidator && skipValidation === oldSkipValidation;
111
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
112
+ var _lastArgs = (0, _slicedToArray2.default)(lastArgs, 6),
113
+ oldDoc = _lastArgs[0],
114
+ oldSchema = _lastArgs[1],
115
+ oldADFStage = _lastArgs[2],
116
+ oldUseSpecValidator = _lastArgs[3],
117
+ // ignoring dispatchAnalyticsEvent
118
+ oldSkipValidation = _lastArgs[5];
119
+ result = areDocsEqual(newDoc, oldDoc) && newSchema === oldSchema && newADFStage === oldADFStage && newUseSpecValidator === oldUseSpecValidator && newSkipValidation === oldSkipValidation;
120
+ } else {
121
+ // This path has a bug and it will wrongfully assign dispatchAnalyticsEvent to skipValidation/oldSkipValidation
122
+ // instead of ignoring it as it does not skip it when unpacking the array.
123
+ // This results the fucntion returning false when it should return true
124
+ // and causing extra re-renders. see https://hello.jira.atlassian.cloud/browse/COMPLEXIT-161.
125
+
126
+ var _newArgs2 = (0, _slicedToArray2.default)(newArgs, 5),
127
+ _newDoc = _newArgs2[0],
128
+ _newSchema = _newArgs2[1],
129
+ _newADFStage = _newArgs2[2],
130
+ _newUseSpecValidator = _newArgs2[3],
131
+ _skipValidation = _newArgs2[4];
132
+ var _lastArgs2 = (0, _slicedToArray2.default)(lastArgs, 5),
133
+ _oldDoc = _lastArgs2[0],
134
+ _oldSchema = _lastArgs2[1],
135
+ _oldADFStage = _lastArgs2[2],
136
+ _oldUseSpecValidator = _lastArgs2[3],
137
+ _oldSkipValidation = _lastArgs2[4];
138
+ result = areDocsEqual(_newDoc, _oldDoc) && _newSchema === _oldSchema && _newADFStage === _oldADFStage && _newUseSpecValidator === _oldUseSpecValidator && _skipValidation === _oldSkipValidation;
139
+ }
116
140
  return result;
117
141
  });
118
142
 
@@ -138,12 +162,12 @@ var _serializeFragment = function _serializeFragment(serializer, doc) {
138
162
  return serializer.serializeFragment(doc.content);
139
163
  };
140
164
  var memoSerializeFragment = (0, _memoizeOne.default)(_serializeFragment, function (newArgs, lastArgs) {
141
- var _newArgs2 = (0, _slicedToArray2.default)(newArgs, 2),
142
- newSerializer = _newArgs2[0],
143
- newDoc = _newArgs2[1];
144
- var _lastArgs2 = (0, _slicedToArray2.default)(lastArgs, 2),
145
- oldSerializer = _lastArgs2[0],
146
- oldDoc = _lastArgs2[1];
165
+ var _newArgs3 = (0, _slicedToArray2.default)(newArgs, 2),
166
+ newSerializer = _newArgs3[0],
167
+ newDoc = _newArgs3[1];
168
+ var _lastArgs3 = (0, _slicedToArray2.default)(lastArgs, 2),
169
+ oldSerializer = _lastArgs3[0],
170
+ oldDoc = _lastArgs3[1];
147
171
  return newSerializer === oldSerializer && areDocsEqual(newDoc, oldDoc);
148
172
  });
149
173
  var _createNodeAndCheck = function _createNodeAndCheck(schema, doc, dispatchAnalyticsEvent) {
@@ -167,12 +191,12 @@ var _createNodeAndCheck = function _createNodeAndCheck(schema, doc, dispatchAnal
167
191
  };
168
192
  var memoCreateNodeAndCheck = (0, _memoizeOne.default)(_createNodeAndCheck, function (newArgs, lastArgs) {
169
193
  // ignore dispatchAnalyticsEvent
170
- var _newArgs3 = (0, _slicedToArray2.default)(newArgs, 2),
171
- newSchema = _newArgs3[0],
172
- newDoc = _newArgs3[1];
173
- var _lastArgs3 = (0, _slicedToArray2.default)(lastArgs, 2),
174
- oldSchema = _lastArgs3[0],
175
- oldDoc = _lastArgs3[1];
194
+ var _newArgs4 = (0, _slicedToArray2.default)(newArgs, 2),
195
+ newSchema = _newArgs4[0],
196
+ newDoc = _newArgs4[1];
197
+ var _lastArgs4 = (0, _slicedToArray2.default)(lastArgs, 2),
198
+ oldSchema = _lastArgs4[0],
199
+ oldDoc = _lastArgs4[1];
176
200
  return newSchema === oldSchema && areDocsEqual(newDoc, oldDoc);
177
201
  });
178
202
  var renderDocument = exports.renderDocument = function renderDocument(doc, serializer) {
@@ -110,6 +110,14 @@ function resolveNodePos(node) {
110
110
  var resolvedPos = 0;
111
111
  var prev = node.previousSibling;
112
112
  while (prev) {
113
+ if ((0, _platformFeatureFlags.fg)('platform_editor_annotation_position_comment_nodes')) {
114
+ if (prev.nodeType === Node.COMMENT_NODE) {
115
+ // Comment nodes should not result in the position being
116
+ // incremented, so we skip them.
117
+ prev = prev.previousSibling;
118
+ continue;
119
+ }
120
+ }
113
121
  if (prev && (isTextNode(prev) || isHighlightTextNode(prev))) {
114
122
  resolvedPos += (prev.textContent || '').length;
115
123
  } else if (prev) {
@@ -67,7 +67,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
67
67
  var NORMAL_SEVERITY_THRESHOLD = exports.NORMAL_SEVERITY_THRESHOLD = 2000;
68
68
  var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
69
69
  var packageName = "@atlaskit/renderer";
70
- var packageVersion = "114.9.0";
70
+ var packageVersion = "114.10.0";
71
71
  var setAsQueryContainerStyles = (0, _react2.css)({
72
72
  containerName: 'ak-renderer-wrapper',
73
73
  containerType: 'inline-size',
@@ -13,6 +13,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
13
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
  var _react = _interopRequireWildcard(require("react"));
16
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
17
  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); }
17
18
  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; }
18
19
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
@@ -63,11 +64,24 @@ var AnnotationsDraftContextWrapper = exports.AnnotationsDraftContextWrapper = /*
63
64
  return (0, _createClass2.default)(AnnotationsDraftContextWrapper, [{
64
65
  key: "render",
65
66
  value: function render() {
66
- var children = this.props.children;
67
+ var _this$props = this.props,
68
+ children = _this$props.children,
69
+ isNestedRender = _this$props.isNestedRender;
67
70
  var position = this.state.position;
68
71
  var applyAnnotationDraftAt = this.applyAnnotationDraftAt;
69
72
  var clearAnnotationDraft = this.clearAnnotationDraft;
70
- return /*#__PURE__*/_react.default.createElement(AnnotationsDraftContext.Provider, {
73
+
74
+ /*
75
+ * If this is a nested render, we do not provide the draft context
76
+ * because it has already been provided higher up the component tree
77
+ * and we need the original context to create draft annotations on extensions.
78
+ */
79
+ return isNestedRender && (0, _platformFeatureFlags.fg)('confluence_frontend_fix_extension_draft_annotation') ? /*#__PURE__*/_react.default.createElement("span", {
80
+ "data-testid": "context-wrapper-without-provider"
81
+ }, children({
82
+ applyAnnotationDraftAt: applyAnnotationDraftAt,
83
+ clearAnnotationDraft: clearAnnotationDraft
84
+ })) : /*#__PURE__*/_react.default.createElement(AnnotationsDraftContext.Provider, {
71
85
  value: position
72
86
  }, children({
73
87
  applyAnnotationDraftAt: applyAnnotationDraftAt,
@@ -57,7 +57,8 @@ var AnnotationsWrapper = exports.AnnotationsWrapper = function AnnotationsWrappe
57
57
  allowCommentsOnMedia: (_annotationProvider$i = annotationProvider === null || annotationProvider === void 0 || (_annotationProvider$i2 = annotationProvider.inlineComment) === null || _annotationProvider$i2 === void 0 ? void 0 : _annotationProvider$i2.allowCommentsOnMedia) !== null && _annotationProvider$i !== void 0 ? _annotationProvider$i : false
58
58
  }, /*#__PURE__*/_react.default.createElement(_AnnotationHoverContext.AnnotationHoverContext, null, /*#__PURE__*/_react.default.createElement(_wrapper.AnnotationsContextWrapper, {
59
59
  createAnalyticsEvent: createAnalyticsEvent,
60
- rendererRef: rendererRef
60
+ rendererRef: rendererRef,
61
+ isNestedRender: isNestedRender
61
62
  }, /*#__PURE__*/_react.default.createElement(LoadAnnotations, {
62
63
  adfDocument: adfDocument,
63
64
  isNestedRender: isNestedRender,
@@ -22,7 +22,8 @@ var AnnotationsContextWrapper = exports.AnnotationsContextWrapper = function Ann
22
22
  clearDraftRange = _useAnnotationRangeDi.clearDraftRange;
23
23
  var rendererRef = props.rendererRef,
24
24
  createAnalyticsEvent = props.createAnalyticsEvent,
25
- children = props.children;
25
+ children = props.children,
26
+ isNestedRender = props.isNestedRender;
26
27
  var inlineCommentProvider = providers && providers.inlineComment;
27
28
  var selectionComponent = inlineCommentProvider && inlineCommentProvider.selectionComponent;
28
29
  var hoverComponent = inlineCommentProvider && inlineCommentProvider.hoverComponent;
@@ -62,6 +63,7 @@ var AnnotationsContextWrapper = exports.AnnotationsContextWrapper = function Ann
62
63
  }
63
64
  return /*#__PURE__*/_react.default.createElement(_context.AnnotationsDraftContextWrapper, {
64
65
  setDraftRange: setRangeForDraft,
65
- clearDraftRange: clearRangeForDraft
66
+ clearDraftRange: clearRangeForDraft,
67
+ isNestedRender: isNestedRender
66
68
  }, render);
67
69
  };
@@ -52,11 +52,4 @@ export const inlineCommentMessages = defineMessages({
52
52
  defaultMessage: 'inline comment end',
53
53
  description: 'Ending marker to indicate that text was highlighted with an inline comment by a screen reader.'
54
54
  }
55
- });
56
- export const statusMessages = defineMessages({
57
- accessibilityLabelForStatus: {
58
- id: 'fabric.editor.status.accessibilityLabel',
59
- defaultMessage: 'status: ',
60
- description: 'Accessibility label for status'
61
- }
62
55
  });
@@ -50,7 +50,9 @@ class EmojiNode extends PureComponent {
50
50
  fallback,
51
51
  shortName
52
52
  }),
53
- editorEmoji: true
53
+ editorEmoji: true,
54
+ onEmojiLoadSuccess: resourceConfig === null || resourceConfig === void 0 ? void 0 : resourceConfig.onEmojiLoadSuccess,
55
+ onEmojiLoadFail: resourceConfig === null || resourceConfig === void 0 ? void 0 : resourceConfig.onEmojiLoadFail
54
56
  });
55
57
  });
56
58
  this.providerFactory = props.providers || new ProviderFactory();
@@ -1,11 +1,9 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import React, { memo } from 'react';
2
3
  import { Status as AkStatus } from '@atlaskit/status/element';
3
4
  import { FabricElementsAnalyticsContext } from '@atlaskit/analytics-namespaced-context';
4
- import VisuallyHidden from '@atlaskit/visually-hidden';
5
5
  import { fg } from '@atlaskit/platform-feature-flags';
6
- import { useIntl } from 'react-intl-next';
7
6
  import { useInlineAnnotationProps } from '../../ui/annotations/element/useInlineAnnotationProps';
8
- import { statusMessages } from '../../messages';
9
7
  export default /*#__PURE__*/memo(function Status(props) {
10
8
  const {
11
9
  text,
@@ -13,39 +11,33 @@ export default /*#__PURE__*/memo(function Status(props) {
13
11
  localId
14
12
  } = props;
15
13
  const inlineAnnotationProps = useInlineAnnotationProps(props);
16
- const intl = useIntl();
17
14
  if (fg('editor_inline_comments_on_inline_nodes')) {
18
- return (
19
- /*#__PURE__*/
20
- // Ignored via go/ees005
21
- // eslint-disable-next-line react/jsx-props-no-spreading
22
- React.createElement("span", inlineAnnotationProps, fg('editor_a11y_status_renderer_description') && /*#__PURE__*/React.createElement(VisuallyHidden, {
23
- role: "generic"
24
- }, intl.formatMessage(statusMessages.accessibilityLabelForStatus)), /*#__PURE__*/React.createElement(FabricElementsAnalyticsContext, {
25
- data: {
26
- userContext: 'document'
27
- }
28
- }, /*#__PURE__*/React.createElement(AkStatus, {
29
- text: text,
30
- color: color,
31
- localId: localId,
32
- role: fg('editor_a11y_status_renderer_description') ? undefined : 'presentation',
33
- isBold: fg('platform-component-visual-refresh')
34
- })))
35
- );
15
+ return /*#__PURE__*/React.createElement("span", _extends({}, inlineAnnotationProps, {
16
+ role: fg('editor_a11y_status_renderer_description') ? 'emphasis' : undefined
17
+ }), /*#__PURE__*/React.createElement(FabricElementsAnalyticsContext, {
18
+ data: {
19
+ userContext: 'document'
20
+ }
21
+ }, /*#__PURE__*/React.createElement(AkStatus, {
22
+ text: text,
23
+ color: color,
24
+ localId: localId,
25
+ role: fg('editor_a11y_status_renderer_description') ? undefined : 'presentation',
26
+ isBold: fg('platform-component-visual-refresh')
27
+ })));
36
28
  }
37
29
  return /*#__PURE__*/React.createElement(FabricElementsAnalyticsContext, {
38
30
  data: {
39
31
  userContext: 'document'
40
32
  }
41
- }, fg('editor_a11y_status_renderer_description') ? /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(VisuallyHidden, {
42
- role: "generic"
43
- }, intl.formatMessage(statusMessages.accessibilityLabelForStatus)), /*#__PURE__*/React.createElement(AkStatus, {
33
+ }, fg('editor_a11y_status_renderer_description') ? /*#__PURE__*/React.createElement("span", {
34
+ role: "emphasis"
35
+ }, /*#__PURE__*/React.createElement(AkStatus, {
44
36
  text: text,
45
37
  color: color,
46
38
  localId: localId,
47
39
  isBold: fg('platform-component-visual-refresh')
48
- }))) : /*#__PURE__*/React.createElement(AkStatus, {
40
+ })) : /*#__PURE__*/React.createElement(AkStatus, {
49
41
  text: text,
50
42
  color: color,
51
43
  localId: localId,
@@ -92,11 +92,27 @@ const _validation = (doc, schema, adfStage, useSpecBasedValidator, dispatchAnaly
92
92
  return result;
93
93
  };
94
94
  const memoValidation = memoizeOne(_validation, (newArgs, lastArgs) => {
95
- const [newDoc, newSchema, newADFStage, newUseSpecValidator, skipValidation] = newArgs;
96
- const [oldDoc, oldSchema, oldADFStage, oldUseSpecValidator, oldSkipValidation] = lastArgs;
95
+ let result = false;
96
+ if (fg('cc_complexit_fe_memoValidation_redundant_calls')) {
97
+ const [newDoc, newSchema, newADFStage, newUseSpecValidator,,
98
+ // ignoring dispatchAnalyticsEvent
99
+ newSkipValidation] = newArgs;
97
100
 
98
- // we're ignoring changes to dispatchAnalyticsEvent in this check
99
- const result = areDocsEqual(newDoc, oldDoc) && newSchema === oldSchema && newADFStage === oldADFStage && newUseSpecValidator === oldUseSpecValidator && skipValidation === oldSkipValidation;
101
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
+ const [oldDoc, oldSchema, oldADFStage, oldUseSpecValidator,,
103
+ // ignoring dispatchAnalyticsEvent
104
+ oldSkipValidation] = lastArgs;
105
+ result = areDocsEqual(newDoc, oldDoc) && newSchema === oldSchema && newADFStage === oldADFStage && newUseSpecValidator === oldUseSpecValidator && newSkipValidation === oldSkipValidation;
106
+ } else {
107
+ // This path has a bug and it will wrongfully assign dispatchAnalyticsEvent to skipValidation/oldSkipValidation
108
+ // instead of ignoring it as it does not skip it when unpacking the array.
109
+ // This results the fucntion returning false when it should return true
110
+ // and causing extra re-renders. see https://hello.jira.atlassian.cloud/browse/COMPLEXIT-161.
111
+
112
+ const [newDoc, newSchema, newADFStage, newUseSpecValidator, skipValidation] = newArgs;
113
+ const [oldDoc, oldSchema, oldADFStage, oldUseSpecValidator, oldSkipValidation] = lastArgs;
114
+ result = areDocsEqual(newDoc, oldDoc) && newSchema === oldSchema && newADFStage === oldADFStage && newUseSpecValidator === oldUseSpecValidator && skipValidation === oldSkipValidation;
115
+ }
100
116
  return result;
101
117
  });
102
118
 
@@ -105,6 +105,14 @@ function resolveNodePos(node) {
105
105
  let resolvedPos = 0;
106
106
  let prev = node.previousSibling;
107
107
  while (prev) {
108
+ if (fg('platform_editor_annotation_position_comment_nodes')) {
109
+ if (prev.nodeType === Node.COMMENT_NODE) {
110
+ // Comment nodes should not result in the position being
111
+ // incremented, so we skip them.
112
+ prev = prev.previousSibling;
113
+ continue;
114
+ }
115
+ }
108
116
  if (prev && (isTextNode(prev) || isHighlightTextNode(prev))) {
109
117
  resolvedPos += (prev.textContent || '').length;
110
118
  } else if (prev) {
@@ -48,7 +48,7 @@ import { removeEmptySpaceAroundContent } from './rendererHelper';
48
48
  export const NORMAL_SEVERITY_THRESHOLD = 2000;
49
49
  export const DEGRADED_SEVERITY_THRESHOLD = 3000;
50
50
  const packageName = "@atlaskit/renderer";
51
- const packageVersion = "114.9.0";
51
+ const packageVersion = "114.10.0";
52
52
  const setAsQueryContainerStyles = css({
53
53
  containerName: 'ak-renderer-wrapper',
54
54
  containerType: 'inline-size',
@@ -1,5 +1,6 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import React, { createContext } from 'react';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
3
4
  export const AnnotationsDraftContext = /*#__PURE__*/createContext(null);
4
5
  export const ProvidersContext = /*#__PURE__*/createContext(null);
5
6
  export const InlineCommentsStateContext = /*#__PURE__*/createContext({});
@@ -42,14 +43,26 @@ export class AnnotationsDraftContextWrapper extends React.Component {
42
43
  }
43
44
  render() {
44
45
  const {
45
- children
46
+ children,
47
+ isNestedRender
46
48
  } = this.props;
47
49
  const {
48
50
  position
49
51
  } = this.state;
50
52
  const applyAnnotationDraftAt = this.applyAnnotationDraftAt;
51
53
  const clearAnnotationDraft = this.clearAnnotationDraft;
52
- return /*#__PURE__*/React.createElement(AnnotationsDraftContext.Provider, {
54
+
55
+ /*
56
+ * If this is a nested render, we do not provide the draft context
57
+ * because it has already been provided higher up the component tree
58
+ * and we need the original context to create draft annotations on extensions.
59
+ */
60
+ return isNestedRender && fg('confluence_frontend_fix_extension_draft_annotation') ? /*#__PURE__*/React.createElement("span", {
61
+ "data-testid": "context-wrapper-without-provider"
62
+ }, children({
63
+ applyAnnotationDraftAt,
64
+ clearAnnotationDraft
65
+ })) : /*#__PURE__*/React.createElement(AnnotationsDraftContext.Provider, {
53
66
  value: position
54
67
  }, children({
55
68
  applyAnnotationDraftAt,
@@ -54,7 +54,8 @@ export const AnnotationsWrapper = props => {
54
54
  allowCommentsOnMedia: (_annotationProvider$i = annotationProvider === null || annotationProvider === void 0 ? void 0 : (_annotationProvider$i2 = annotationProvider.inlineComment) === null || _annotationProvider$i2 === void 0 ? void 0 : _annotationProvider$i2.allowCommentsOnMedia) !== null && _annotationProvider$i !== void 0 ? _annotationProvider$i : false
55
55
  }, /*#__PURE__*/React.createElement(AnnotationHoverContext, null, /*#__PURE__*/React.createElement(AnnotationsContextWrapper, {
56
56
  createAnalyticsEvent: createAnalyticsEvent,
57
- rendererRef: rendererRef
57
+ rendererRef: rendererRef,
58
+ isNestedRender: isNestedRender
58
59
  }, /*#__PURE__*/React.createElement(LoadAnnotations, {
59
60
  adfDocument: adfDocument,
60
61
  isNestedRender: isNestedRender,
@@ -16,7 +16,8 @@ export const AnnotationsContextWrapper = props => {
16
16
  const {
17
17
  rendererRef,
18
18
  createAnalyticsEvent,
19
- children
19
+ children,
20
+ isNestedRender
20
21
  } = props;
21
22
  const inlineCommentProvider = providers && providers.inlineComment;
22
23
  const selectionComponent = inlineCommentProvider && inlineCommentProvider.selectionComponent;
@@ -58,6 +59,7 @@ export const AnnotationsContextWrapper = props => {
58
59
  }
59
60
  return /*#__PURE__*/React.createElement(AnnotationsDraftContextWrapper, {
60
61
  setDraftRange: setRangeForDraft,
61
- clearDraftRange: clearRangeForDraft
62
+ clearDraftRange: clearRangeForDraft,
63
+ isNestedRender: isNestedRender
62
64
  }, render);
63
65
  };
@@ -52,11 +52,4 @@ export var inlineCommentMessages = defineMessages({
52
52
  defaultMessage: 'inline comment end',
53
53
  description: 'Ending marker to indicate that text was highlighted with an inline comment by a screen reader.'
54
54
  }
55
- });
56
- export var statusMessages = defineMessages({
57
- accessibilityLabelForStatus: {
58
- id: 'fabric.editor.status.accessibilityLabel',
59
- defaultMessage: 'status: ',
60
- description: 'Accessibility label for status'
61
- }
62
55
  });
@@ -58,7 +58,9 @@ var EmojiNode = /*#__PURE__*/function (_PureComponent) {
58
58
  fallback: fallback,
59
59
  shortName: shortName
60
60
  }),
61
- editorEmoji: true
61
+ editorEmoji: true,
62
+ onEmojiLoadSuccess: resourceConfig === null || resourceConfig === void 0 ? void 0 : resourceConfig.onEmojiLoadSuccess,
63
+ onEmojiLoadFail: resourceConfig === null || resourceConfig === void 0 ? void 0 : resourceConfig.onEmojiLoadFail
62
64
  });
63
65
  });
64
66
  _this.providerFactory = props.providers || new ProviderFactory();
@@ -1,49 +1,41 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import React, { memo } from 'react';
2
3
  import { Status as AkStatus } from '@atlaskit/status/element';
3
4
  import { FabricElementsAnalyticsContext } from '@atlaskit/analytics-namespaced-context';
4
- import VisuallyHidden from '@atlaskit/visually-hidden';
5
5
  import { fg } from '@atlaskit/platform-feature-flags';
6
- import { useIntl } from 'react-intl-next';
7
6
  import { useInlineAnnotationProps } from '../../ui/annotations/element/useInlineAnnotationProps';
8
- import { statusMessages } from '../../messages';
9
7
  export default /*#__PURE__*/memo(function Status(props) {
10
8
  var text = props.text,
11
9
  color = props.color,
12
10
  localId = props.localId;
13
11
  var inlineAnnotationProps = useInlineAnnotationProps(props);
14
- var intl = useIntl();
15
12
  if (fg('editor_inline_comments_on_inline_nodes')) {
16
- return (
17
- /*#__PURE__*/
18
- // Ignored via go/ees005
19
- // eslint-disable-next-line react/jsx-props-no-spreading
20
- React.createElement("span", inlineAnnotationProps, fg('editor_a11y_status_renderer_description') && /*#__PURE__*/React.createElement(VisuallyHidden, {
21
- role: "generic"
22
- }, intl.formatMessage(statusMessages.accessibilityLabelForStatus)), /*#__PURE__*/React.createElement(FabricElementsAnalyticsContext, {
23
- data: {
24
- userContext: 'document'
25
- }
26
- }, /*#__PURE__*/React.createElement(AkStatus, {
27
- text: text,
28
- color: color,
29
- localId: localId,
30
- role: fg('editor_a11y_status_renderer_description') ? undefined : 'presentation',
31
- isBold: fg('platform-component-visual-refresh')
32
- })))
33
- );
13
+ return /*#__PURE__*/React.createElement("span", _extends({}, inlineAnnotationProps, {
14
+ role: fg('editor_a11y_status_renderer_description') ? 'emphasis' : undefined
15
+ }), /*#__PURE__*/React.createElement(FabricElementsAnalyticsContext, {
16
+ data: {
17
+ userContext: 'document'
18
+ }
19
+ }, /*#__PURE__*/React.createElement(AkStatus, {
20
+ text: text,
21
+ color: color,
22
+ localId: localId,
23
+ role: fg('editor_a11y_status_renderer_description') ? undefined : 'presentation',
24
+ isBold: fg('platform-component-visual-refresh')
25
+ })));
34
26
  }
35
27
  return /*#__PURE__*/React.createElement(FabricElementsAnalyticsContext, {
36
28
  data: {
37
29
  userContext: 'document'
38
30
  }
39
- }, fg('editor_a11y_status_renderer_description') ? /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(VisuallyHidden, {
40
- role: "generic"
41
- }, intl.formatMessage(statusMessages.accessibilityLabelForStatus)), /*#__PURE__*/React.createElement(AkStatus, {
31
+ }, fg('editor_a11y_status_renderer_description') ? /*#__PURE__*/React.createElement("span", {
32
+ role: "emphasis"
33
+ }, /*#__PURE__*/React.createElement(AkStatus, {
42
34
  text: text,
43
35
  color: color,
44
36
  localId: localId,
45
37
  isBold: fg('platform-component-visual-refresh')
46
- }))) : /*#__PURE__*/React.createElement(AkStatus, {
38
+ })) : /*#__PURE__*/React.createElement(AkStatus, {
47
39
  text: text,
48
40
  color: color,
49
41
  localId: localId,
@@ -91,21 +91,45 @@ var _validation = function _validation(doc, schema, adfStage, useSpecBasedValida
91
91
  return result;
92
92
  };
93
93
  var memoValidation = memoizeOne(_validation, function (newArgs, lastArgs) {
94
- var _newArgs = _slicedToArray(newArgs, 5),
95
- newDoc = _newArgs[0],
96
- newSchema = _newArgs[1],
97
- newADFStage = _newArgs[2],
98
- newUseSpecValidator = _newArgs[3],
99
- skipValidation = _newArgs[4];
100
- var _lastArgs = _slicedToArray(lastArgs, 5),
101
- oldDoc = _lastArgs[0],
102
- oldSchema = _lastArgs[1],
103
- oldADFStage = _lastArgs[2],
104
- oldUseSpecValidator = _lastArgs[3],
105
- oldSkipValidation = _lastArgs[4];
94
+ var result = false;
95
+ if (fg('cc_complexit_fe_memoValidation_redundant_calls')) {
96
+ var _newArgs = _slicedToArray(newArgs, 6),
97
+ newDoc = _newArgs[0],
98
+ newSchema = _newArgs[1],
99
+ newADFStage = _newArgs[2],
100
+ newUseSpecValidator = _newArgs[3],
101
+ // ignoring dispatchAnalyticsEvent
102
+ newSkipValidation = _newArgs[5];
106
103
 
107
- // we're ignoring changes to dispatchAnalyticsEvent in this check
108
- var result = areDocsEqual(newDoc, oldDoc) && newSchema === oldSchema && newADFStage === oldADFStage && newUseSpecValidator === oldUseSpecValidator && skipValidation === oldSkipValidation;
104
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
105
+ var _lastArgs = _slicedToArray(lastArgs, 6),
106
+ oldDoc = _lastArgs[0],
107
+ oldSchema = _lastArgs[1],
108
+ oldADFStage = _lastArgs[2],
109
+ oldUseSpecValidator = _lastArgs[3],
110
+ // ignoring dispatchAnalyticsEvent
111
+ oldSkipValidation = _lastArgs[5];
112
+ result = areDocsEqual(newDoc, oldDoc) && newSchema === oldSchema && newADFStage === oldADFStage && newUseSpecValidator === oldUseSpecValidator && newSkipValidation === oldSkipValidation;
113
+ } else {
114
+ // This path has a bug and it will wrongfully assign dispatchAnalyticsEvent to skipValidation/oldSkipValidation
115
+ // instead of ignoring it as it does not skip it when unpacking the array.
116
+ // This results the fucntion returning false when it should return true
117
+ // and causing extra re-renders. see https://hello.jira.atlassian.cloud/browse/COMPLEXIT-161.
118
+
119
+ var _newArgs2 = _slicedToArray(newArgs, 5),
120
+ _newDoc = _newArgs2[0],
121
+ _newSchema = _newArgs2[1],
122
+ _newADFStage = _newArgs2[2],
123
+ _newUseSpecValidator = _newArgs2[3],
124
+ _skipValidation = _newArgs2[4];
125
+ var _lastArgs2 = _slicedToArray(lastArgs, 5),
126
+ _oldDoc = _lastArgs2[0],
127
+ _oldSchema = _lastArgs2[1],
128
+ _oldADFStage = _lastArgs2[2],
129
+ _oldUseSpecValidator = _lastArgs2[3],
130
+ _oldSkipValidation = _lastArgs2[4];
131
+ result = areDocsEqual(_newDoc, _oldDoc) && _newSchema === _oldSchema && _newADFStage === _oldADFStage && _newUseSpecValidator === _oldUseSpecValidator && _skipValidation === _oldSkipValidation;
132
+ }
109
133
  return result;
110
134
  });
111
135
 
@@ -131,12 +155,12 @@ var _serializeFragment = function _serializeFragment(serializer, doc) {
131
155
  return serializer.serializeFragment(doc.content);
132
156
  };
133
157
  var memoSerializeFragment = memoizeOne(_serializeFragment, function (newArgs, lastArgs) {
134
- var _newArgs2 = _slicedToArray(newArgs, 2),
135
- newSerializer = _newArgs2[0],
136
- newDoc = _newArgs2[1];
137
- var _lastArgs2 = _slicedToArray(lastArgs, 2),
138
- oldSerializer = _lastArgs2[0],
139
- oldDoc = _lastArgs2[1];
158
+ var _newArgs3 = _slicedToArray(newArgs, 2),
159
+ newSerializer = _newArgs3[0],
160
+ newDoc = _newArgs3[1];
161
+ var _lastArgs3 = _slicedToArray(lastArgs, 2),
162
+ oldSerializer = _lastArgs3[0],
163
+ oldDoc = _lastArgs3[1];
140
164
  return newSerializer === oldSerializer && areDocsEqual(newDoc, oldDoc);
141
165
  });
142
166
  var _createNodeAndCheck = function _createNodeAndCheck(schema, doc, dispatchAnalyticsEvent) {
@@ -160,12 +184,12 @@ var _createNodeAndCheck = function _createNodeAndCheck(schema, doc, dispatchAnal
160
184
  };
161
185
  var memoCreateNodeAndCheck = memoizeOne(_createNodeAndCheck, function (newArgs, lastArgs) {
162
186
  // ignore dispatchAnalyticsEvent
163
- var _newArgs3 = _slicedToArray(newArgs, 2),
164
- newSchema = _newArgs3[0],
165
- newDoc = _newArgs3[1];
166
- var _lastArgs3 = _slicedToArray(lastArgs, 2),
167
- oldSchema = _lastArgs3[0],
168
- oldDoc = _lastArgs3[1];
187
+ var _newArgs4 = _slicedToArray(newArgs, 2),
188
+ newSchema = _newArgs4[0],
189
+ newDoc = _newArgs4[1];
190
+ var _lastArgs4 = _slicedToArray(lastArgs, 2),
191
+ oldSchema = _lastArgs4[0],
192
+ oldDoc = _lastArgs4[1];
169
193
  return newSchema === oldSchema && areDocsEqual(newDoc, oldDoc);
170
194
  });
171
195
  export var renderDocument = function renderDocument(doc, serializer) {
@@ -101,6 +101,14 @@ function resolveNodePos(node) {
101
101
  var resolvedPos = 0;
102
102
  var prev = node.previousSibling;
103
103
  while (prev) {
104
+ if (fg('platform_editor_annotation_position_comment_nodes')) {
105
+ if (prev.nodeType === Node.COMMENT_NODE) {
106
+ // Comment nodes should not result in the position being
107
+ // incremented, so we skip them.
108
+ prev = prev.previousSibling;
109
+ continue;
110
+ }
111
+ }
104
112
  if (prev && (isTextNode(prev) || isHighlightTextNode(prev))) {
105
113
  resolvedPos += (prev.textContent || '').length;
106
114
  } else if (prev) {
@@ -57,7 +57,7 @@ import { removeEmptySpaceAroundContent } from './rendererHelper';
57
57
  export var NORMAL_SEVERITY_THRESHOLD = 2000;
58
58
  export var DEGRADED_SEVERITY_THRESHOLD = 3000;
59
59
  var packageName = "@atlaskit/renderer";
60
- var packageVersion = "114.9.0";
60
+ var packageVersion = "114.10.0";
61
61
  var setAsQueryContainerStyles = css({
62
62
  containerName: 'ak-renderer-wrapper',
63
63
  containerType: 'inline-size',
@@ -7,6 +7,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
7
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
8
8
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
9
9
  import React, { createContext } from 'react';
10
+ import { fg } from '@atlaskit/platform-feature-flags';
10
11
  export var AnnotationsDraftContext = /*#__PURE__*/createContext(null);
11
12
  export var ProvidersContext = /*#__PURE__*/createContext(null);
12
13
  export var InlineCommentsStateContext = /*#__PURE__*/createContext({});
@@ -53,11 +54,24 @@ export var AnnotationsDraftContextWrapper = /*#__PURE__*/function (_React$Compon
53
54
  return _createClass(AnnotationsDraftContextWrapper, [{
54
55
  key: "render",
55
56
  value: function render() {
56
- var children = this.props.children;
57
+ var _this$props = this.props,
58
+ children = _this$props.children,
59
+ isNestedRender = _this$props.isNestedRender;
57
60
  var position = this.state.position;
58
61
  var applyAnnotationDraftAt = this.applyAnnotationDraftAt;
59
62
  var clearAnnotationDraft = this.clearAnnotationDraft;
60
- return /*#__PURE__*/React.createElement(AnnotationsDraftContext.Provider, {
63
+
64
+ /*
65
+ * If this is a nested render, we do not provide the draft context
66
+ * because it has already been provided higher up the component tree
67
+ * and we need the original context to create draft annotations on extensions.
68
+ */
69
+ return isNestedRender && fg('confluence_frontend_fix_extension_draft_annotation') ? /*#__PURE__*/React.createElement("span", {
70
+ "data-testid": "context-wrapper-without-provider"
71
+ }, children({
72
+ applyAnnotationDraftAt: applyAnnotationDraftAt,
73
+ clearAnnotationDraft: clearAnnotationDraft
74
+ })) : /*#__PURE__*/React.createElement(AnnotationsDraftContext.Provider, {
61
75
  value: position
62
76
  }, children({
63
77
  applyAnnotationDraftAt: applyAnnotationDraftAt,
@@ -50,7 +50,8 @@ export var AnnotationsWrapper = function AnnotationsWrapper(props) {
50
50
  allowCommentsOnMedia: (_annotationProvider$i = annotationProvider === null || annotationProvider === void 0 || (_annotationProvider$i2 = annotationProvider.inlineComment) === null || _annotationProvider$i2 === void 0 ? void 0 : _annotationProvider$i2.allowCommentsOnMedia) !== null && _annotationProvider$i !== void 0 ? _annotationProvider$i : false
51
51
  }, /*#__PURE__*/React.createElement(AnnotationHoverContext, null, /*#__PURE__*/React.createElement(AnnotationsContextWrapper, {
52
52
  createAnalyticsEvent: createAnalyticsEvent,
53
- rendererRef: rendererRef
53
+ rendererRef: rendererRef,
54
+ isNestedRender: isNestedRender
54
55
  }, /*#__PURE__*/React.createElement(LoadAnnotations, {
55
56
  adfDocument: adfDocument,
56
57
  isNestedRender: isNestedRender,
@@ -13,7 +13,8 @@ export var AnnotationsContextWrapper = function AnnotationsContextWrapper(props)
13
13
  clearDraftRange = _useAnnotationRangeDi.clearDraftRange;
14
14
  var rendererRef = props.rendererRef,
15
15
  createAnalyticsEvent = props.createAnalyticsEvent,
16
- children = props.children;
16
+ children = props.children,
17
+ isNestedRender = props.isNestedRender;
17
18
  var inlineCommentProvider = providers && providers.inlineComment;
18
19
  var selectionComponent = inlineCommentProvider && inlineCommentProvider.selectionComponent;
19
20
  var hoverComponent = inlineCommentProvider && inlineCommentProvider.hoverComponent;
@@ -53,6 +54,7 @@ export var AnnotationsContextWrapper = function AnnotationsContextWrapper(props)
53
54
  }
54
55
  return /*#__PURE__*/React.createElement(AnnotationsDraftContextWrapper, {
55
56
  setDraftRange: setRangeForDraft,
56
- clearDraftRange: clearRangeForDraft
57
+ clearDraftRange: clearRangeForDraft,
58
+ isNestedRender: isNestedRender
57
59
  }, render);
58
60
  };
@@ -49,10 +49,3 @@ export declare const inlineCommentMessages: {
49
49
  description: string;
50
50
  };
51
51
  };
52
- export declare const statusMessages: {
53
- accessibilityLabelForStatus: {
54
- id: string;
55
- defaultMessage: string;
56
- description: string;
57
- };
58
- };
@@ -11,6 +11,7 @@ type Props = {
11
11
  setDraftRange: () => void;
12
12
  clearDraftRange: () => void;
13
13
  children: RenderCallbackType;
14
+ isNestedRender?: boolean;
14
15
  };
15
16
  type State = {
16
17
  position: Position | null;
@@ -3,6 +3,7 @@ import type { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
3
3
  type Props = {
4
4
  rendererRef: React.RefObject<HTMLDivElement>;
5
5
  createAnalyticsEvent?: CreateUIAnalyticsEvent;
6
+ isNestedRender?: boolean;
6
7
  };
7
8
  export declare const AnnotationsContextWrapper: (props: React.PropsWithChildren<Props>) => JSX.Element;
8
9
  export {};
@@ -49,10 +49,3 @@ export declare const inlineCommentMessages: {
49
49
  description: string;
50
50
  };
51
51
  };
52
- export declare const statusMessages: {
53
- accessibilityLabelForStatus: {
54
- id: string;
55
- defaultMessage: string;
56
- description: string;
57
- };
58
- };
@@ -11,6 +11,7 @@ type Props = {
11
11
  setDraftRange: () => void;
12
12
  clearDraftRange: () => void;
13
13
  children: RenderCallbackType;
14
+ isNestedRender?: boolean;
14
15
  };
15
16
  type State = {
16
17
  position: Position | null;
@@ -3,6 +3,7 @@ import type { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
3
3
  type Props = {
4
4
  rendererRef: React.RefObject<HTMLDivElement>;
5
5
  createAnalyticsEvent?: CreateUIAnalyticsEvent;
6
+ isNestedRender?: boolean;
6
7
  };
7
8
  export declare const AnnotationsContextWrapper: (props: React.PropsWithChildren<Props>) => JSX.Element;
8
9
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "114.9.0",
3
+ "version": "114.10.0",
4
4
  "description": "Renderer component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -31,16 +31,16 @@
31
31
  "@atlaskit/analytics-next": "^11.0.0",
32
32
  "@atlaskit/button": "^23.0.0",
33
33
  "@atlaskit/code": "^17.0.0",
34
- "@atlaskit/editor-common": "^103.6.0",
34
+ "@atlaskit/editor-common": "^103.14.0",
35
35
  "@atlaskit/editor-json-transformer": "^8.24.0",
36
36
  "@atlaskit/editor-palette": "^2.1.0",
37
37
  "@atlaskit/editor-prosemirror": "7.0.0",
38
38
  "@atlaskit/editor-shared-styles": "^3.4.0",
39
- "@atlaskit/emoji": "^69.0.0",
40
- "@atlaskit/feature-gate-js-client": "^5.0.0",
41
- "@atlaskit/icon": "^25.5.0",
42
- "@atlaskit/link-datasource": "^4.3.0",
43
- "@atlaskit/media-card": "^79.0.0",
39
+ "@atlaskit/emoji": "^69.1.0",
40
+ "@atlaskit/feature-gate-js-client": "^5.2.0",
41
+ "@atlaskit/icon": "^25.6.0",
42
+ "@atlaskit/link-datasource": "^4.5.0",
43
+ "@atlaskit/media-card": "^79.2.0",
44
44
  "@atlaskit/media-client": "^32.0.0",
45
45
  "@atlaskit/media-client-react": "^4.0.0",
46
46
  "@atlaskit/media-common": "^12.0.0",
@@ -49,13 +49,13 @@
49
49
  "@atlaskit/media-viewer": "^52.0.0",
50
50
  "@atlaskit/platform-feature-flags": "^1.1.0",
51
51
  "@atlaskit/platform-feature-flags-react": "^0.1.0",
52
- "@atlaskit/react-ufo": "^3.5.0",
53
- "@atlaskit/smart-card": "^36.6.0",
52
+ "@atlaskit/react-ufo": "^3.6.0",
53
+ "@atlaskit/smart-card": "^36.8.0",
54
54
  "@atlaskit/status": "^3.0.0",
55
55
  "@atlaskit/task-decision": "^19.1.0",
56
56
  "@atlaskit/theme": "^18.0.0",
57
- "@atlaskit/tmp-editor-statsig": "^4.7.0",
58
- "@atlaskit/tokens": "^4.7.0",
57
+ "@atlaskit/tmp-editor-statsig": "^4.13.0",
58
+ "@atlaskit/tokens": "^4.8.0",
59
59
  "@atlaskit/tooltip": "^20.0.0",
60
60
  "@atlaskit/visually-hidden": "^3.0.0",
61
61
  "@babel/runtime": "^7.0.0",
@@ -123,6 +123,9 @@
123
123
  "cc_complexit_fe_improve_table_sorting": {
124
124
  "type": "boolean"
125
125
  },
126
+ "platform_editor_annotation_position_comment_nodes": {
127
+ "type": "boolean"
128
+ },
126
129
  "platform_editor_typography_ugc": {
127
130
  "type": "boolean"
128
131
  },
@@ -212,6 +215,12 @@
212
215
  },
213
216
  "platform_editor_table_column_group_width_check": {
214
217
  "type": "boolean"
218
+ },
219
+ "cc_complexit_fe_memoValidation_redundant_calls": {
220
+ "type": "boolean"
221
+ },
222
+ "confluence_frontend_fix_extension_draft_annotation": {
223
+ "type": "boolean"
215
224
  }
216
225
  },
217
226
  "af:exports": {