@atlaskit/editor-common 93.1.5 → 93.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.
Files changed (62) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/afm-jira/tsconfig.json +3 -0
  4. package/afm-post-office/tsconfig.json +3 -0
  5. package/dist/cjs/analytics/types/engagement-platform-events.js +5 -0
  6. package/dist/cjs/analytics/types/enums.js +2 -0
  7. package/dist/cjs/element-browser/components/StatelessElementBrowser.js +1 -2
  8. package/dist/cjs/extensibility/ExtensionComponent.js +263 -10
  9. package/dist/cjs/monitoring/error.js +1 -1
  10. package/dist/cjs/ui/DropList/index.js +1 -1
  11. package/dist/cjs/ui/FloatingToolbar/Button.js +6 -2
  12. package/dist/cjs/ui/Mention/index.js +15 -3
  13. package/dist/cjs/ui/Mention/mention-with-providers.js +58 -8
  14. package/dist/cjs/ui/Pulse/Pulse.js +36 -0
  15. package/dist/cjs/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +2 -11
  16. package/dist/cjs/ui-menu/DropdownMenu/index.js +5 -20
  17. package/dist/cjs/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +5 -9
  18. package/dist/es2019/analytics/types/engagement-platform-events.js +1 -0
  19. package/dist/es2019/analytics/types/enums.js +2 -0
  20. package/dist/es2019/element-browser/components/StatelessElementBrowser.js +1 -2
  21. package/dist/es2019/extensibility/ExtensionComponent.js +231 -3
  22. package/dist/es2019/monitoring/error.js +1 -1
  23. package/dist/es2019/ui/DropList/index.js +1 -1
  24. package/dist/es2019/ui/FloatingToolbar/Button.js +6 -2
  25. package/dist/es2019/ui/Mention/index.js +15 -2
  26. package/dist/es2019/ui/Mention/mention-with-providers.js +49 -2
  27. package/dist/es2019/ui/Pulse/Pulse.js +29 -0
  28. package/dist/es2019/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +2 -11
  29. package/dist/es2019/ui-menu/DropdownMenu/index.js +5 -20
  30. package/dist/es2019/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +5 -9
  31. package/dist/esm/analytics/types/engagement-platform-events.js +1 -0
  32. package/dist/esm/analytics/types/enums.js +2 -0
  33. package/dist/esm/element-browser/components/StatelessElementBrowser.js +1 -2
  34. package/dist/esm/extensibility/ExtensionComponent.js +266 -9
  35. package/dist/esm/monitoring/error.js +1 -1
  36. package/dist/esm/ui/DropList/index.js +1 -1
  37. package/dist/esm/ui/FloatingToolbar/Button.js +6 -2
  38. package/dist/esm/ui/Mention/index.js +15 -2
  39. package/dist/esm/ui/Mention/mention-with-providers.js +59 -10
  40. package/dist/esm/ui/Pulse/Pulse.js +29 -0
  41. package/dist/esm/ui-menu/ArrowKeyNavigationProvider/MenuArrowKeyNavigationProvider/index.js +2 -11
  42. package/dist/esm/ui-menu/DropdownMenu/index.js +5 -20
  43. package/dist/esm/ui-menu/ToolbarArrowKeyNavigationProvider/index.js +5 -9
  44. package/dist/types/analytics/types/engagement-platform-events.d.ts +20 -0
  45. package/dist/types/analytics/types/enums.d.ts +3 -1
  46. package/dist/types/analytics/types/events.d.ts +2 -1
  47. package/dist/types/analytics/types/general-events.d.ts +7 -1
  48. package/dist/types/extensibility/ExtensionComponent.d.ts +7 -1
  49. package/dist/types/types/floating-toolbar.d.ts +4 -0
  50. package/dist/types/ui/FloatingToolbar/Button.d.ts +3 -1
  51. package/dist/types/ui/Mention/mention-with-providers.d.ts +2 -1
  52. package/dist/types/ui/Pulse/Pulse.d.ts +18 -0
  53. package/dist/types-ts4.5/analytics/types/engagement-platform-events.d.ts +20 -0
  54. package/dist/types-ts4.5/analytics/types/enums.d.ts +3 -1
  55. package/dist/types-ts4.5/analytics/types/events.d.ts +2 -1
  56. package/dist/types-ts4.5/analytics/types/general-events.d.ts +7 -1
  57. package/dist/types-ts4.5/extensibility/ExtensionComponent.d.ts +7 -1
  58. package/dist/types-ts4.5/types/floating-toolbar.d.ts +4 -0
  59. package/dist/types-ts4.5/ui/FloatingToolbar/Button.d.ts +3 -1
  60. package/dist/types-ts4.5/ui/Mention/mention-with-providers.d.ts +2 -1
  61. package/dist/types-ts4.5/ui/Pulse/Pulse.d.ts +18 -0
  62. package/package.json +11 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 93.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#150260](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/150260)
8
+ [`b6d9de1b0e543`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/b6d9de1b0e543) -
9
+ Added an editor analytics event for clicking the copy anchor link floating toolbar item
10
+
11
+ ### Patch Changes
12
+
13
+ - [#150241](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/150241)
14
+ [`11814f141483a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/11814f141483a) -
15
+ ED-24117: remediates extension component for react 18
16
+ - Updated dependencies
17
+
18
+ ## 93.1.6
19
+
20
+ ### Patch Changes
21
+
22
+ - [#150384](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/150384)
23
+ [`d3dad252dbe46`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/d3dad252dbe46) -
24
+ [EDF-1177](https://product-fabric.atlassian.net/browse/EDF-1177) - add pulse effect support into
25
+ editor floating toolbar
26
+ - [#150125](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/150125)
27
+ [`79a44707fe935`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/79a44707fe935) -
28
+ [ED-24001] This change is cleaning up the feature gate for the image border options dropdown a11y
29
+ fix.
30
+ - [#150606](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/150606)
31
+ [`7680d21f5d481`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/7680d21f5d481) -
32
+ [ED-24257] This change cleans up the feature gate for the main toolbar navigation escape fix.
33
+ - [#150606](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/150606)
34
+ [`d4d1f4dc8f6dc`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/d4d1f4dc8f6dc) -
35
+ ED-24117: upgrades mention with provider to fc for react 18 migration
36
+ - [#150384](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/150384)
37
+ [`704af5d7d4a1a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/704af5d7d4a1a) -
38
+ [EDF-1668](https://product-fabric.atlassian.net/browse/EDF-1668) - add external message API
39
+ support into editor-plugin-engagement-platform
40
+ - Updated dependencies
41
+
3
42
  ## 93.1.5
4
43
 
5
44
  ### Patch Changes
@@ -108,6 +108,9 @@
108
108
  {
109
109
  "path": "../../../design-system/menu/afm-cc/tsconfig.json"
110
110
  },
111
+ {
112
+ "path": "../../../design-system/onboarding/afm-cc/tsconfig.json"
113
+ },
111
114
  {
112
115
  "path": "../../../platform/feature-flags/afm-cc/tsconfig.json"
113
116
  },
@@ -107,6 +107,9 @@
107
107
  {
108
108
  "path": "../../../design-system/menu/afm-jira/tsconfig.json"
109
109
  },
110
+ {
111
+ "path": "../../../design-system/onboarding/afm-jira/tsconfig.json"
112
+ },
110
113
  {
111
114
  "path": "../../../platform/feature-flags/afm-jira/tsconfig.json"
112
115
  },
@@ -107,6 +107,9 @@
107
107
  {
108
108
  "path": "../../../design-system/menu/afm-post-office/tsconfig.json"
109
109
  },
110
+ {
111
+ "path": "../../../design-system/onboarding/afm-post-office/tsconfig.json"
112
+ },
110
113
  {
111
114
  "path": "../../../platform/feature-flags/afm-post-office/tsconfig.json"
112
115
  },
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -259,6 +259,7 @@ var ACTION_SUBJECT = exports.ACTION_SUBJECT = /*#__PURE__*/function (ACTION_SUBJ
259
259
  ACTION_SUBJECT["ELEMENT"] = "element";
260
260
  ACTION_SUBJECT["CONTEXT_MENU"] = "contextMenu";
261
261
  ACTION_SUBJECT["INLINE_DIALOG"] = "inlineDialog";
262
+ ACTION_SUBJECT["ENGAGEMENT_PLATFORM"] = "engagementPlatform";
262
263
  return ACTION_SUBJECT;
263
264
  }({});
264
265
  var ACTION_SUBJECT_ID = exports.ACTION_SUBJECT_ID = /*#__PURE__*/function (ACTION_SUBJECT_ID) {
@@ -280,6 +281,7 @@ var ACTION_SUBJECT_ID = exports.ACTION_SUBJECT_ID = /*#__PURE__*/function (ACTIO
280
281
  ACTION_SUBJECT_ID["CODE_BLOCK"] = "codeBlock";
281
282
  ACTION_SUBJECT_ID["CODEBLOCK_COPY"] = "codeBlockCopy";
282
283
  ACTION_SUBJECT_ID["CODEBLOCK_WRAP"] = "codeBlockWrap";
284
+ ACTION_SUBJECT_ID["COPY_LINK_TO_ANCHOR"] = "copyLinkToAnchor";
283
285
  ACTION_SUBJECT_ID["CREATE_INLINE_COMMENT_FROM_HIGHLIGHT_ACTIONS_MENU"] = "createInlineCommentFromHighlightActionsMenu";
284
286
  ACTION_SUBJECT_ID["DATE"] = "date";
285
287
  ACTION_SUBJECT_ID["DATE_DAY"] = "day";
@@ -13,7 +13,6 @@ var _react2 = require("@emotion/react");
13
13
  var _reactIntlNext = require("react-intl-next");
14
14
  var _withAnalyticsContext = _interopRequireDefault(require("@atlaskit/analytics-next/withAnalyticsContext"));
15
15
  var _withAnalyticsEvents = _interopRequireDefault(require("@atlaskit/analytics-next/withAnalyticsEvents"));
16
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
16
  var _analytics = require("../../analytics");
18
17
  var _constants = require("../constants");
19
18
  var _useContainerWidth2 = _interopRequireDefault(require("../hooks/use-container-width"));
@@ -226,7 +225,7 @@ function StatelessElementBrowser(props) {
226
225
  return (0, _react2.jsx)("div", {
227
226
  css: wrapper,
228
227
  "data-testid": "element-browser",
229
- id: (0, _platformFeatureFlags.fg)('editor-fix-esc-main-toolbar-navigation') ? _constants.ELEMENT_BROWSER_ID : undefined
228
+ id: _constants.ELEMENT_BROWSER_ID
230
229
  }, (0, _react2.jsx)(ContainerWidthMonitor, null), containerWidth < _constants.DEVICE_BREAKPOINT_NUMBERS.medium ? (0, _react2.jsx)(MobileBrowser, (0, _extends2.default)({}, props, {
231
230
  selectedItemIndex: selectedItemIndex,
232
231
  focusedItemIndex: focusedItemIndex,
@@ -5,7 +5,10 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.ExtensionComponent = void 0;
8
+ exports.ExtensionComponentOld = exports.ExtensionComponentNew = exports.ExtensionComponent = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
13
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -18,21 +21,25 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
18
21
  var _react = _interopRequireWildcard(require("react"));
19
22
  var _memoizeOne = _interopRequireDefault(require("memoize-one"));
20
23
  var _state = require("@atlaskit/editor-prosemirror/state");
24
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
21
25
  var _extensions = require("../extensions");
22
26
  var _utils = require("../utils");
23
27
  var _Extension = _interopRequireDefault(require("./Extension/Extension"));
24
28
  var _InlineExtension = _interopRequireDefault(require("./Extension/InlineExtension"));
25
29
  var _MultiBodiedExtension = _interopRequireDefault(require("./MultiBodiedExtension"));
30
+ var _excluded = ["extensionProvider"];
26
31
  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); }
27
32
  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; }
28
33
  function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
29
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
30
- var ExtensionComponent = exports.ExtensionComponent = /*#__PURE__*/function (_Component) {
31
- (0, _inherits2.default)(ExtensionComponent, _Component);
32
- var _super = _createSuper(ExtensionComponent);
33
- function ExtensionComponent() {
34
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable @repo/internal/react/no-class-components */
35
+ /* temporary type until FG cleaned up */
36
+ /* temporary type until FG cleaned up */
37
+ var ExtensionComponentOld = exports.ExtensionComponentOld = /*#__PURE__*/function (_Component) {
38
+ (0, _inherits2.default)(ExtensionComponentOld, _Component);
39
+ var _super = _createSuper(ExtensionComponentOld);
40
+ function ExtensionComponentOld() {
34
41
  var _this;
35
- (0, _classCallCheck2.default)(this, ExtensionComponent);
42
+ (0, _classCallCheck2.default)(this, ExtensionComponentOld);
36
43
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
37
44
  args[_key] = arguments[_key];
38
45
  }
@@ -156,7 +163,7 @@ var ExtensionComponent = exports.ExtensionComponent = /*#__PURE__*/function (_Co
156
163
  });
157
164
  return _this;
158
165
  }
159
- (0, _createClass2.default)(ExtensionComponent, [{
166
+ (0, _createClass2.default)(ExtensionComponentOld, [{
160
167
  key: "UNSAFE_componentWillMount",
161
168
  value: function UNSAFE_componentWillMount() {
162
169
  this.mounted = true;
@@ -274,5 +281,251 @@ var ExtensionComponent = exports.ExtensionComponent = /*#__PURE__*/function (_Co
274
281
  return null;
275
282
  }
276
283
  }]);
277
- return ExtensionComponent;
278
- }(_react.Component);
284
+ return ExtensionComponentOld;
285
+ }(_react.Component);
286
+ var ExtensionComponentNew = exports.ExtensionComponentNew = function ExtensionComponentNew(props) {
287
+ var extensionProviderResolver = props.extensionProvider,
288
+ restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
289
+ var _useState = (0, _react.useState)(undefined),
290
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
291
+ extensionProvider = _useState2[0],
292
+ setExtensionProvider = _useState2[1];
293
+ var mountedRef = (0, _react.useRef)(true);
294
+ (0, _react.useLayoutEffect)(function () {
295
+ mountedRef.current = true;
296
+ return function () {
297
+ mountedRef.current = false;
298
+ };
299
+ }, []);
300
+ (0, _react.useEffect)(function () {
301
+ extensionProviderResolver === null || extensionProviderResolver === void 0 || extensionProviderResolver.then(function (provider) {
302
+ if (mountedRef.current) {
303
+ setExtensionProvider(provider);
304
+ }
305
+ });
306
+ }, [extensionProviderResolver]);
307
+ return /*#__PURE__*/_react.default.createElement(ExtensionComponentInner, (0, _extends2.default)({}, restProps, {
308
+ extensionProvider: extensionProvider
309
+ }));
310
+ };
311
+ var ExtensionComponentInner = /*#__PURE__*/function (_Component2) {
312
+ (0, _inherits2.default)(ExtensionComponentInner, _Component2);
313
+ var _super2 = _createSuper(ExtensionComponentInner);
314
+ function ExtensionComponentInner() {
315
+ var _this2;
316
+ (0, _classCallCheck2.default)(this, ExtensionComponentInner);
317
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
318
+ args[_key2] = arguments[_key2];
319
+ }
320
+ _this2 = _super2.call.apply(_super2, [this].concat(args));
321
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "privatePropsParsed", false);
322
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "state", {});
323
+ // memoized to avoid rerender on extension state changes
324
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "getNodeRenderer", (0, _memoizeOne.default)(_extensions.getNodeRenderer));
325
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "getExtensionModuleNodePrivateProps", (0, _memoizeOne.default)(_extensions.getExtensionModuleNodePrivateProps));
326
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "setIsNodeHovered", function (isHovered) {
327
+ _this2.setState({
328
+ isNodeHovered: isHovered
329
+ });
330
+ });
331
+ /**
332
+ * Parses any private nodes once an extension provider is available.
333
+ *
334
+ * We do this separately from resolving a node renderer component since the
335
+ * private props come from extension provider, rather than an extension
336
+ * handler which only handles `render`/component concerns.
337
+ */
338
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "parsePrivateNodePropsIfNeeded", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
339
+ var _this2$props$node$att, extensionType, extensionKey, privateProps;
340
+ return _regenerator.default.wrap(function _callee2$(_context2) {
341
+ while (1) switch (_context2.prev = _context2.next) {
342
+ case 0:
343
+ if (!(_this2.privatePropsParsed || !_this2.props.extensionProvider)) {
344
+ _context2.next = 2;
345
+ break;
346
+ }
347
+ return _context2.abrupt("return");
348
+ case 2:
349
+ _this2.privatePropsParsed = true;
350
+ _this2$props$node$att = _this2.props.node.attrs, extensionType = _this2$props$node$att.extensionType, extensionKey = _this2$props$node$att.extensionKey;
351
+ /**
352
+ * getExtensionModuleNodePrivateProps can throw if there are issues in the
353
+ * manifest
354
+ */
355
+ _context2.prev = 4;
356
+ _context2.next = 7;
357
+ return _this2.getExtensionModuleNodePrivateProps(_this2.props.extensionProvider, extensionType, extensionKey);
358
+ case 7:
359
+ privateProps = _context2.sent;
360
+ _this2.setState({
361
+ _privateProps: privateProps
362
+ });
363
+ _context2.next = 14;
364
+ break;
365
+ case 11:
366
+ _context2.prev = 11;
367
+ _context2.t0 = _context2["catch"](4);
368
+ // eslint-disable-next-line no-console
369
+ console.error('Provided extension handler has thrown an error\n', _context2.t0);
370
+ /** We don't want this error to block renderer */
371
+ /** We keep rendering the default content */
372
+ case 14:
373
+ case "end":
374
+ return _context2.stop();
375
+ }
376
+ }, _callee2, null, [[4, 11]]);
377
+ })));
378
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "handleExtension", function (pmNode, actions) {
379
+ var _pmNode$marks2;
380
+ var _this2$props = _this2.props,
381
+ extensionHandlers = _this2$props.extensionHandlers,
382
+ editorView = _this2$props.editorView;
383
+ var _pmNode$attrs2 = pmNode.attrs,
384
+ extensionType = _pmNode$attrs2.extensionType,
385
+ extensionKey = _pmNode$attrs2.extensionKey,
386
+ parameters = _pmNode$attrs2.parameters,
387
+ text = _pmNode$attrs2.text;
388
+ var isBodiedExtension = pmNode.type.name === 'bodiedExtension';
389
+ if (isBodiedExtension) {
390
+ return;
391
+ }
392
+ var fragmentLocalId = pmNode === null || pmNode === void 0 || (_pmNode$marks2 = pmNode.marks) === null || _pmNode$marks2 === void 0 || (_pmNode$marks2 = _pmNode$marks2.find(function (m) {
393
+ return m.type.name === 'fragment';
394
+ })) === null || _pmNode$marks2 === void 0 || (_pmNode$marks2 = _pmNode$marks2.attrs) === null || _pmNode$marks2 === void 0 ? void 0 : _pmNode$marks2.localId;
395
+ var node = {
396
+ type: pmNode.type.name,
397
+ extensionType: extensionType,
398
+ extensionKey: extensionKey,
399
+ parameters: parameters,
400
+ content: text,
401
+ localId: pmNode.attrs.localId,
402
+ fragmentLocalId: fragmentLocalId
403
+ };
404
+ var result;
405
+ if (extensionHandlers && extensionHandlers[extensionType]) {
406
+ var render = (0, _utils.getExtensionRenderer)(extensionHandlers[extensionType]);
407
+ result = render(node, editorView.state.doc, actions);
408
+ }
409
+ if (!result) {
410
+ var extensionHandlerFromProvider = _this2.props.extensionProvider && _this2.getNodeRenderer(_this2.props.extensionProvider, extensionType, extensionKey);
411
+ if (extensionHandlerFromProvider) {
412
+ var NodeRenderer = extensionHandlerFromProvider;
413
+ if (node.type === 'multiBodiedExtension') {
414
+ return /*#__PURE__*/_react.default.createElement(NodeRenderer, {
415
+ node: node,
416
+ references: _this2.props.references,
417
+ actions: actions
418
+ });
419
+ } else {
420
+ return /*#__PURE__*/_react.default.createElement(NodeRenderer, {
421
+ node: node,
422
+ references: _this2.props.references
423
+ });
424
+ }
425
+ }
426
+ }
427
+ return result;
428
+ });
429
+ return _this2;
430
+ }
431
+ (0, _createClass2.default)(ExtensionComponentInner, [{
432
+ key: "componentDidUpdate",
433
+ value: function componentDidUpdate() {
434
+ this.parsePrivateNodePropsIfNeeded();
435
+ }
436
+ }, {
437
+ key: "render",
438
+ value: function render() {
439
+ var _this$state$_privateP2;
440
+ var _this$props3 = this.props,
441
+ node = _this$props3.node,
442
+ handleContentDOMRef = _this$props3.handleContentDOMRef,
443
+ editorView = _this$props3.editorView,
444
+ references = _this$props3.references,
445
+ editorAppearance = _this$props3.editorAppearance,
446
+ pluginInjectionApi = _this$props3.pluginInjectionApi,
447
+ getPos = _this$props3.getPos,
448
+ eventDispatcher = _this$props3.eventDispatcher,
449
+ macroInteractionDesignFeatureFlags = _this$props3.macroInteractionDesignFeatureFlags,
450
+ extensionProvider = _this$props3.extensionProvider;
451
+ var selection = editorView.state.selection;
452
+ var selectedNode = selection instanceof _state.NodeSelection && selection.node;
453
+ var position = typeof getPos === 'function' && getPos();
454
+ var resolvedPosition = position && editorView.state.doc.resolve(position);
455
+ var isNodeNested = !!(resolvedPosition && resolvedPosition.depth > 0);
456
+ if (node.type.name === 'multiBodiedExtension') {
457
+ return /*#__PURE__*/_react.default.createElement(_MultiBodiedExtension.default, {
458
+ node: node,
459
+ editorView: editorView,
460
+ getPos: getPos,
461
+ handleContentDOMRef: handleContentDOMRef,
462
+ tryExtensionHandler: this.tryExtensionHandler.bind(this),
463
+ eventDispatcher: eventDispatcher,
464
+ pluginInjectionApi: pluginInjectionApi,
465
+ editorAppearance: editorAppearance,
466
+ macroInteractionDesignFeatureFlags: macroInteractionDesignFeatureFlags,
467
+ isNodeSelected: selectedNode === node,
468
+ isNodeNested: isNodeNested,
469
+ isNodeHovered: this.state.isNodeHovered,
470
+ setIsNodeHovered: this.setIsNodeHovered
471
+ });
472
+ }
473
+ var extensionHandlerResult = this.tryExtensionHandler(undefined);
474
+ switch (node.type.name) {
475
+ case 'extension':
476
+ case 'bodiedExtension':
477
+ return /*#__PURE__*/_react.default.createElement(_Extension.default, {
478
+ node: node,
479
+ getPos: this.props.getPos,
480
+ references: references,
481
+ extensionProvider: extensionProvider,
482
+ handleContentDOMRef: handleContentDOMRef,
483
+ view: editorView,
484
+ editorAppearance: editorAppearance,
485
+ hideFrame: (_this$state$_privateP2 = this.state._privateProps) === null || _this$state$_privateP2 === void 0 ? void 0 : _this$state$_privateP2.__hideFrame,
486
+ pluginInjectionApi: pluginInjectionApi,
487
+ macroInteractionDesignFeatureFlags: macroInteractionDesignFeatureFlags,
488
+ isNodeSelected: selectedNode === node,
489
+ isNodeHovered: this.state.isNodeHovered,
490
+ isNodeNested: isNodeNested,
491
+ setIsNodeHovered: this.setIsNodeHovered
492
+ }, extensionHandlerResult);
493
+ case 'inlineExtension':
494
+ return /*#__PURE__*/_react.default.createElement(_InlineExtension.default, {
495
+ node: node,
496
+ macroInteractionDesignFeatureFlags: macroInteractionDesignFeatureFlags,
497
+ isNodeSelected: selectedNode === node,
498
+ pluginInjectionApi: pluginInjectionApi,
499
+ isNodeHovered: this.state.isNodeHovered,
500
+ setIsNodeHovered: this.setIsNodeHovered
501
+ }, extensionHandlerResult);
502
+ default:
503
+ return null;
504
+ }
505
+ }
506
+ }, {
507
+ key: "tryExtensionHandler",
508
+ value: function tryExtensionHandler(actions) {
509
+ var node = this.props.node;
510
+ try {
511
+ var extensionContent = this.handleExtension(node, actions);
512
+ if (extensionContent && /*#__PURE__*/_react.default.isValidElement(extensionContent)) {
513
+ return extensionContent;
514
+ }
515
+ } catch (e) {
516
+ // eslint-disable-next-line no-console
517
+ console.error('Provided extension handler has thrown an error\n', e);
518
+ /** We don't want this error to block renderer */
519
+ /** We keep rendering the default content */
520
+ }
521
+ return null;
522
+ }
523
+ }]);
524
+ return ExtensionComponentInner;
525
+ }(_react.Component);
526
+ var ExtensionComponent = exports.ExtensionComponent = function ExtensionComponent(props) {
527
+ if ((0, _platformFeatureFlags.fg)('platform_editor_react18_extension_component')) {
528
+ return /*#__PURE__*/_react.default.createElement(ExtensionComponentNew, props);
529
+ }
530
+ return /*#__PURE__*/_react.default.createElement(ExtensionComponentOld, props);
531
+ };
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
17
17
  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
18
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
19
19
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
20
- var packageVersion = "93.1.5";
20
+ var packageVersion = "93.2.0";
21
21
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
22
22
  // Remove URL as it has UGC
23
23
  // TODO: Sanitise the URL instead of just removing it
@@ -24,7 +24,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
24
24
  * @jsx jsx
25
25
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
26
  var packageName = "@atlaskit/editor-common";
27
- var packageVersion = "93.1.5";
27
+ var packageVersion = "93.2.0";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var DropList = /*#__PURE__*/function (_Component) {
@@ -11,6 +11,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
13
13
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
14
+ var _Pulse = require("../Pulse/Pulse");
14
15
  var _styles = require("./styles");
15
16
  var _excluded = ["buttonStyles"];
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); }
@@ -45,7 +46,8 @@ var _default = exports.default = function _default(_ref) {
45
46
  tabIndex = _ref.tabIndex,
46
47
  areaControls = _ref.areaControls,
47
48
  ariaLabel = _ref.ariaLabel,
48
- isRadioButton = _ref.isRadioButton;
49
+ isRadioButton = _ref.isRadioButton,
50
+ pulse = _ref.pulse;
49
51
  // Check if there's only an icon and add additional styles
50
52
  var iconOnly = (icon || iconAfter) && !children;
51
53
  var customSpacing = iconOnly ? _styles.iconOnlySpacing : {};
@@ -68,6 +70,8 @@ var _default = exports.default = function _default(_ref) {
68
70
  }, /*#__PURE__*/_react.default.createElement("div", {
69
71
  onMouseEnter: onMouseEnter,
70
72
  onMouseLeave: onMouseLeave
73
+ }, /*#__PURE__*/_react.default.createElement(_Pulse.Pulse, {
74
+ pulse: pulse
71
75
  }, /*#__PURE__*/_react.default.createElement(_customThemeButton.default
72
76
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
73
77
  , {
@@ -110,5 +114,5 @@ var _default = exports.default = function _default(_ref) {
110
114
  // should be fixed here https://a11y-internal.atlassian.net/browse/DST-287
111
115
  ,
112
116
  tabIndex: tabIndex
113
- }, children)));
117
+ }, children))));
114
118
  };
@@ -14,12 +14,13 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
14
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
16
  var _react = _interopRequireWildcard(require("react"));
17
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
18
  var _providerFactory = require("../../provider-factory");
18
- var _mentionWithProviders = _interopRequireDefault(require("./mention-with-providers"));
19
+ var _mentionWithProviders = require("./mention-with-providers");
19
20
  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); }
20
21
  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; }
21
22
  function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
22
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
23
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable @repo/internal/react/no-class-components */
23
24
  var Mention = exports.default = /*#__PURE__*/function (_PureComponent) {
24
25
  (0, _inherits2.default)(Mention, _PureComponent);
25
26
  var _super = _createSuper(Mention);
@@ -36,7 +37,18 @@ var Mention = exports.default = /*#__PURE__*/function (_PureComponent) {
36
37
  localId = _this$props.localId;
37
38
  var mentionProvider = providers.mentionProvider,
38
39
  profilecardProvider = providers.profilecardProvider;
39
- return /*#__PURE__*/_react.default.createElement(_mentionWithProviders.default, {
40
+ if ((0, _platformFeatureFlags.fg)('platform_editor_react18_mention_with_provider')) {
41
+ return /*#__PURE__*/_react.default.createElement(_mentionWithProviders.MentionWithProviders, {
42
+ id: id,
43
+ text: text,
44
+ accessLevel: accessLevel,
45
+ localId: localId,
46
+ eventHandlers: eventHandlers,
47
+ mentionProvider: mentionProvider,
48
+ profilecardProvider: profilecardProvider
49
+ });
50
+ }
51
+ return /*#__PURE__*/_react.default.createElement(_mentionWithProviders.MentionWithProvidersOld, {
40
52
  id: id,
41
53
  text: text,
42
54
  accessLevel: accessLevel,
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.MentionWithProvidersOld = exports.MentionWithProviders = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -14,6 +14,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
14
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
18
  var _react = _interopRequireWildcard(require("react"));
18
19
  var _element = require("@atlaskit/mention/element");
19
20
  var _mentionWithProfilecard = _interopRequireDefault(require("./mention-with-profilecard"));
@@ -23,12 +24,61 @@ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function
23
24
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
24
25
  var GENERIC_USER_IDS = ['HipChat', 'all', 'here'];
25
26
  var noop = function noop() {};
26
- var MentionWithProviders = exports.default = /*#__PURE__*/function (_PureComponent) {
27
- (0, _inherits2.default)(MentionWithProviders, _PureComponent);
28
- var _super = _createSuper(MentionWithProviders);
29
- function MentionWithProviders() {
27
+ var MentionWithProviders = exports.MentionWithProviders = function MentionWithProviders(_ref) {
28
+ var accessLevel = _ref.accessLevel,
29
+ eventHandlers = _ref.eventHandlers,
30
+ id = _ref.id,
31
+ mentionProvider = _ref.mentionProvider,
32
+ profilecardProviderResolver = _ref.profilecardProvider,
33
+ text = _ref.text,
34
+ localId = _ref.localId;
35
+ var _useState = (0, _react.useState)(null),
36
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
37
+ profilecardProvider = _useState2[0],
38
+ setProfilecardProvider = _useState2[1];
39
+ var mountedRef = (0, _react.useRef)(true);
40
+ (0, _react.useLayoutEffect)(function () {
41
+ mountedRef.current = true;
42
+ return function () {
43
+ mountedRef.current = false;
44
+ };
45
+ }, []);
46
+ (0, _react.useLayoutEffect)(function () {
47
+ // We are not using async/await here to avoid having an intermediate Promise
48
+ // introduced by the transpiler.
49
+ // This will allow consumer to use a SynchronousPromise.resolve and avoid useless
50
+ // rerendering
51
+ profilecardProviderResolver === null || profilecardProviderResolver === void 0 || profilecardProviderResolver.then(function (result) {
52
+ if (mountedRef.current) {
53
+ setProfilecardProvider(result);
54
+ }
55
+ }).catch(function () {
56
+ if (mountedRef.current) {
57
+ setProfilecardProvider(null);
58
+ }
59
+ });
60
+ }, [profilecardProviderResolver]);
61
+ var MentionComponent = profilecardProviderResolver && GENERIC_USER_IDS.indexOf(id) === -1 ? _mentionWithProfilecard.default : _element.ResourcedMention;
62
+ return /*#__PURE__*/_react.default.createElement(MentionComponent, {
63
+ id: id,
64
+ text: text,
65
+ accessLevel: accessLevel,
66
+ localId: localId,
67
+ mentionProvider: mentionProvider,
68
+ profilecardProvider: profilecardProvider,
69
+ onClick: eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.onClick,
70
+ onMouseEnter: eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.onMouseEnter,
71
+ onMouseLeave: eventHandlers === null || eventHandlers === void 0 ? void 0 : eventHandlers.onMouseLeave
72
+ });
73
+ };
74
+
75
+ // eslint-disable-next-line @repo/internal/react/no-class-components
76
+ var MentionWithProvidersOld = exports.MentionWithProvidersOld = /*#__PURE__*/function (_PureComponent) {
77
+ (0, _inherits2.default)(MentionWithProvidersOld, _PureComponent);
78
+ var _super = _createSuper(MentionWithProvidersOld);
79
+ function MentionWithProvidersOld() {
30
80
  var _this;
31
- (0, _classCallCheck2.default)(this, MentionWithProviders);
81
+ (0, _classCallCheck2.default)(this, MentionWithProvidersOld);
32
82
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
33
83
  args[_key] = arguments[_key];
34
84
  }
@@ -38,7 +88,7 @@ var MentionWithProviders = exports.default = /*#__PURE__*/function (_PureCompone
38
88
  });
39
89
  return _this;
40
90
  }
41
- (0, _createClass2.default)(MentionWithProviders, [{
91
+ (0, _createClass2.default)(MentionWithProvidersOld, [{
42
92
  key: "UNSAFE_componentWillMount",
43
93
  value: function UNSAFE_componentWillMount() {
44
94
  this.updateProfilecardProvider(this.props);
@@ -100,5 +150,5 @@ var MentionWithProviders = exports.default = /*#__PURE__*/function (_PureCompone
100
150
  }, actionHandlers));
101
151
  }
102
152
  }]);
103
- return MentionWithProviders;
153
+ return MentionWithProvidersOld;
104
154
  }(_react.PureComponent);