@atlaskit/renderer 112.6.12 → 112.6.14

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 (68) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/actions/index.js +1 -0
  3. package/dist/cjs/react/marks/annotation.js +2 -2
  4. package/dist/cjs/react/nodes/date.js +1 -1
  5. package/dist/cjs/react/nodes/media/index.js +6 -5
  6. package/dist/cjs/react/nodes/taskItem.js +1 -1
  7. package/dist/cjs/react/nodes/text-wrapper.js +2 -2
  8. package/dist/cjs/ui/Renderer/index.js +350 -9
  9. package/dist/cjs/ui/annotations/element/index.js +6 -4
  10. package/dist/cjs/ui/annotations/hover/mounter.js +2 -2
  11. package/dist/cjs/ui/annotations/index.js +0 -14
  12. package/dist/cjs/ui/annotations/selection/mounter.js +2 -2
  13. package/dist/cjs/ui/annotations/view/index.js +2 -2
  14. package/dist/cjs/ui/annotations/wrapper.js +4 -4
  15. package/dist/es2019/actions/index.js +1 -0
  16. package/dist/es2019/react/marks/annotation.js +1 -1
  17. package/dist/es2019/react/nodes/date.js +1 -1
  18. package/dist/es2019/react/nodes/media/index.js +2 -1
  19. package/dist/es2019/react/nodes/taskItem.js +1 -1
  20. package/dist/es2019/react/nodes/text-wrapper.js +1 -1
  21. package/dist/es2019/ui/Renderer/index.js +349 -10
  22. package/dist/es2019/ui/annotations/element/index.js +3 -1
  23. package/dist/es2019/ui/annotations/hover/mounter.js +1 -1
  24. package/dist/es2019/ui/annotations/index.js +1 -3
  25. package/dist/es2019/ui/annotations/selection/mounter.js +1 -1
  26. package/dist/es2019/ui/annotations/view/index.js +1 -1
  27. package/dist/es2019/ui/annotations/wrapper.js +2 -2
  28. package/dist/esm/actions/index.js +1 -0
  29. package/dist/esm/react/marks/annotation.js +1 -1
  30. package/dist/esm/react/nodes/date.js +1 -1
  31. package/dist/esm/react/nodes/media/index.js +2 -1
  32. package/dist/esm/react/nodes/taskItem.js +1 -1
  33. package/dist/esm/react/nodes/text-wrapper.js +1 -1
  34. package/dist/esm/ui/Renderer/index.js +351 -10
  35. package/dist/esm/ui/annotations/element/index.js +3 -1
  36. package/dist/esm/ui/annotations/hover/mounter.js +1 -1
  37. package/dist/esm/ui/annotations/index.js +1 -3
  38. package/dist/esm/ui/annotations/selection/mounter.js +1 -1
  39. package/dist/esm/ui/annotations/view/index.js +1 -1
  40. package/dist/esm/ui/annotations/wrapper.js +2 -2
  41. package/dist/types/ui/annotations/index.d.ts +0 -2
  42. package/dist/types-ts4.5/ui/annotations/index.d.ts +0 -2
  43. package/package.json +7 -4
  44. package/dist/cjs/ui/TaskItemsFormatContext/index.js +0 -24
  45. package/dist/cjs/ui/annotations/draft/index.js +0 -19
  46. package/dist/cjs/ui/annotations/hooks/index.js +0 -32
  47. package/dist/cjs/ui/annotations/hover/index.js +0 -12
  48. package/dist/cjs/ui/annotations/selection/index.js +0 -12
  49. package/dist/es2019/ui/TaskItemsFormatContext/index.js +0 -1
  50. package/dist/es2019/ui/annotations/draft/index.js +0 -2
  51. package/dist/es2019/ui/annotations/hooks/index.js +0 -3
  52. package/dist/es2019/ui/annotations/hover/index.js +0 -1
  53. package/dist/es2019/ui/annotations/selection/index.js +0 -1
  54. package/dist/esm/ui/TaskItemsFormatContext/index.js +0 -1
  55. package/dist/esm/ui/annotations/draft/index.js +0 -2
  56. package/dist/esm/ui/annotations/hooks/index.js +0 -3
  57. package/dist/esm/ui/annotations/hover/index.js +0 -1
  58. package/dist/esm/ui/annotations/selection/index.js +0 -1
  59. package/dist/types/ui/TaskItemsFormatContext/index.d.ts +0 -1
  60. package/dist/types/ui/annotations/draft/index.d.ts +0 -2
  61. package/dist/types/ui/annotations/hooks/index.d.ts +0 -3
  62. package/dist/types/ui/annotations/hover/index.d.ts +0 -1
  63. package/dist/types/ui/annotations/selection/index.d.ts +0 -1
  64. package/dist/types-ts4.5/ui/TaskItemsFormatContext/index.d.ts +0 -1
  65. package/dist/types-ts4.5/ui/annotations/draft/index.d.ts +0 -2
  66. package/dist/types-ts4.5/ui/annotations/hooks/index.d.ts +0 -3
  67. package/dist/types-ts4.5/ui/annotations/hover/index.d.ts +0 -1
  68. package/dist/types-ts4.5/ui/annotations/selection/index.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/renderer
2
2
 
3
+ ## 112.6.14
4
+
5
+ ### Patch Changes
6
+
7
+ - [#174633](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/174633)
8
+ [`11d98912f520d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/11d98912f520d) -
9
+ Removed internal re-exports
10
+
11
+ ## 112.6.13
12
+
13
+ ### Patch Changes
14
+
15
+ - [#156429](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/156429)
16
+ [`01453825d9537`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/01453825d9537) -
17
+ added renderer functional component behind FF as part of React18 upgrade
18
+
3
19
  ## 112.6.12
4
20
 
5
21
  ### Patch Changes
@@ -210,6 +210,7 @@ var RendererActions = exports.default = /*#__PURE__*/function () {
210
210
  }
211
211
  }
212
212
 
213
+ // eslint-disable-next-line @repo/internal/deprecations/deprecation-ticket-required -- Ignored via go/ED-25883
213
214
  /**
214
215
  * This is replaced by `isRangeAnnotatable`.
215
216
  *
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
  var _adfSchema = require("@atlaskit/adf-schema");
12
- var _annotations = require("../../ui/annotations");
12
+ var _element = require("../../ui/annotations/element");
13
13
  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; }
14
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
15
  var isAnnotationMark = exports.isAnnotationMark = function isAnnotationMark(mark) {
@@ -38,7 +38,7 @@ var AnnotationComponent = function AnnotationComponent(_ref) {
38
38
  // when using comment navigation to access comments on mediaInline
39
39
  _react.default.createElement("span", {
40
40
  id: id
41
- }, children) : /*#__PURE__*/_react.default.createElement(_annotations.AnnotationMark, {
41
+ }, children) : /*#__PURE__*/_react.default.createElement(_element.MarkElement, {
42
42
  id: id,
43
43
  dataAttributes: data,
44
44
  annotationParentIds: annotationParentIds,
@@ -12,7 +12,7 @@ var _react = _interopRequireWildcard(require("react"));
12
12
  var _styles = require("@atlaskit/editor-common/styles");
13
13
  var _utils = require("@atlaskit/editor-common/utils");
14
14
  var _reactIntlNext = require("react-intl-next");
15
- var _TaskItemsFormatContext = require("../../ui/TaskItemsFormatContext");
15
+ var _TaskItemsFormatContext = require("../../ui/TaskItemsFormatContext/TaskItemsFormatContext");
16
16
  var _useInlineAnnotationProps = require("../../ui/annotations/element/useInlineAnnotationProps");
17
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); }
18
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; }
@@ -34,7 +34,8 @@ var _annotation = _interopRequireDefault(require("../../marks/annotation"));
34
34
  var _context = require("../../../ui/annotations/context");
35
35
  var _mediaSingle = require("@atlaskit/editor-common/media-single");
36
36
  var _reactIntlNext = require("react-intl-next");
37
- var _hooks = require("../../../ui/annotations/hooks");
37
+ var _useInlineCommentsFilter = require("../../../ui/annotations/hooks/use-inline-comments-filter");
38
+ var _useInlineCommentSubscriber = require("../../../ui/annotations/hooks/use-inline-comment-subscriber");
38
39
  var _types = require("@atlaskit/editor-common/types");
39
40
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
40
41
  var _excluded = ["marks", "mediaSingleElement", "isDrafting"],
@@ -151,8 +152,8 @@ var CommentBadgeWrapper = function CommentBadgeWrapper(_ref5) {
151
152
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
152
153
  entered = _useState4[0],
153
154
  setEntered = _useState4[1];
154
- var updateSubscriber = (0, _hooks.useInlineCommentSubscriberContext)();
155
- var activeParentIds = (0, _hooks.useInlineCommentsFilter)({
155
+ var updateSubscriber = (0, _useInlineCommentSubscriber.useInlineCommentSubscriberContext)();
156
+ var activeParentIds = (0, _useInlineCommentsFilter.useInlineCommentsFilter)({
156
157
  annotationIds: (_marks$map = marks === null || marks === void 0 ? void 0 : marks.map(function (mark) {
157
158
  return mark.attrs.id;
158
159
  })) !== null && _marks$map !== void 0 ? _marks$map : [''],
@@ -230,8 +231,8 @@ var CommentBadgeNextWrapper = function CommentBadgeNextWrapper(_ref6) {
230
231
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
231
232
  entered = _useState8[0],
232
233
  setEntered = _useState8[1];
233
- var updateSubscriber = (0, _hooks.useInlineCommentSubscriberContext)();
234
- var activeParentIds = (0, _hooks.useInlineCommentsFilter)({
234
+ var updateSubscriber = (0, _useInlineCommentSubscriber.useInlineCommentSubscriberContext)();
235
+ var activeParentIds = (0, _useInlineCommentsFilter.useInlineCommentsFilter)({
235
236
  annotationIds: (_marks$map2 = marks === null || marks === void 0 ? void 0 : marks.map(function (mark) {
236
237
  return mark.attrs.id;
237
238
  })) !== null && _marks$map2 !== void 0 ? _marks$map2 : [''],
@@ -18,7 +18,7 @@ var _react = _interopRequireWildcard(require("react"));
18
18
  var _providerFactory = require("@atlaskit/editor-common/provider-factory");
19
19
  var _taskItemWithProviders = _interopRequireDefault(require("./task-item-with-providers"));
20
20
  var _analyticsNamespacedContext = require("@atlaskit/analytics-namespaced-context");
21
- var _TaskItemsFormatContext = require("../../ui/TaskItemsFormatContext");
21
+ var _TaskItemsFormatContext = require("../../ui/TaskItemsFormatContext/TaskItemsFormatContext");
22
22
  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); }
23
23
  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; }
24
24
  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); }; }
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
- var _annotations = require("../../ui/annotations");
9
+ var _component = require("../../ui/annotations/draft/component");
10
10
  var TextWrapper = function TextWrapper(props) {
11
11
  var startPos = props.startPos,
12
12
  endPos = props.endPos;
@@ -14,7 +14,7 @@ var TextWrapper = function TextWrapper(props) {
14
14
  if (!children) {
15
15
  return null;
16
16
  }
17
- return /*#__PURE__*/_react.default.createElement(_annotations.TextWithAnnotationDraft, {
17
+ return /*#__PURE__*/_react.default.createElement(_component.TextWithAnnotationDraft, {
18
18
  startPos: startPos,
19
19
  endPos: endPos,
20
20
  textHighlighter: props.textHighlighter,
@@ -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 = "112.6.12";
68
+ var packageVersion = "112.6.14";
69
69
  var setAsQueryContainerStyles = (0, _react2.css)({
70
70
  containerName: 'ak-renderer-wrapper',
71
71
  containerType: 'inline-size',
@@ -76,6 +76,7 @@ var defaultNodeComponents = exports.defaultNodeComponents = _nodes.nodeToReact;
76
76
  /**
77
77
  * Exported due to enzyme test reliance on this component.
78
78
  */
79
+ // eslint-disable-next-line @repo/internal/react/no-class-components
79
80
  var __RendererClassComponent = exports.__RendererClassComponent = /*#__PURE__*/function (_PureComponent) {
80
81
  (0, _inherits2.default)(__RendererClassComponent, _PureComponent);
81
82
  var _super = _createSuper(__RendererClassComponent);
@@ -445,18 +446,357 @@ var __RendererClassComponent = exports.__RendererClassComponent = /*#__PURE__*/f
445
446
  }]);
446
447
  return __RendererClassComponent;
447
448
  }(_react.PureComponent);
449
+ var handleMouseTripleClickInTables = function handleMouseTripleClickInTables(event) {
450
+ var _parentElement3, _parentElement4;
451
+ if (_browser.browser.ios || _browser.browser.android) {
452
+ return;
453
+ }
454
+ var badBrowser = _browser.browser.chrome || _browser.browser.safari;
455
+ var tripleClick = event.detail >= 3;
456
+ if (!(badBrowser && tripleClick)) {
457
+ return;
458
+ }
459
+ var selection = window.getSelection();
460
+ if (!selection) {
461
+ return;
462
+ }
463
+ var type = selection.type,
464
+ anchorNode = selection.anchorNode,
465
+ focusNode = selection.focusNode;
466
+ var rangeSelection = Boolean(type === 'Range' && anchorNode && focusNode);
467
+ if (!rangeSelection) {
468
+ return;
469
+ }
470
+ var target = event.target;
471
+ var tableCell = target.closest('td,th');
472
+ var clickedInCell = Boolean(tableCell);
473
+ if (!clickedInCell) {
474
+ return;
475
+ }
476
+ var anchorInCell = tableCell.contains(anchorNode);
477
+ var focusInCell = tableCell.contains(focusNode);
478
+ var selectionStartsOrEndsOutsideClickedCell = !(anchorInCell && focusInCell);
479
+ if (!selectionStartsOrEndsOutsideClickedCell) {
480
+ return;
481
+ }
482
+
483
+ // Ensure that selecting text in the renderer doesn't trigger onUnhandledClick
484
+ // This logic originated in jira-frontend:
485
+ // src/packages/issue/issue-view/src/views/field/rich-text/rich-text-inline-edit-view.js
486
+
487
+ // The selection is required to be checked in `onMouseDown` and here. If not here, a new
488
+ // selection isn't reported; if not in `onMouseDown`, a click outside the selection will
489
+ // return an empty selection, which will erroneously fire onUnhandledClick.
490
+
491
+ var elementToSelect = anchorInCell ? (_parentElement3 = anchorNode.parentElement) === null || _parentElement3 === void 0 ? void 0 : _parentElement3.closest('div,p') : focusInCell ? (_parentElement4 = focusNode.parentElement) === null || _parentElement4 === void 0 ? void 0 : _parentElement4.closest('div,p') : tableCell;
492
+ if (elementToSelect) {
493
+ selection.selectAllChildren(elementToSelect);
494
+ }
495
+ };
496
+
497
+ /**
498
+ * Handle clicks inside renderer. If the click isn't on media, in the media picker, or on a
499
+ * link, call the onUnhandledClick eventHandler (which in Jira for example, may switch the
500
+ * renderer out for the editor).
501
+ * @param event Click event anywhere inside renderer
502
+ */
503
+ var handleWrapperOnClick = function handleWrapperOnClick(event, props, mouseDownSelection) {
504
+ var _props$eventHandlers;
505
+ var targetElement = event.target;
506
+ handleMouseTripleClickInTables(event);
507
+
508
+ // ED-14862: When a user triple clicks to select a line of content inside a
509
+ // a table cell, but the browser incorrectly moves the selection start or end into
510
+ // a different table cell, we manually set the selection back to within the original
511
+ // table cell the user intended to target
512
+ if (!((_props$eventHandlers = props.eventHandlers) !== null && _props$eventHandlers !== void 0 && _props$eventHandlers.onUnhandledClick)) {
513
+ return;
514
+ }
515
+ if (!(targetElement instanceof window.Element)) {
516
+ return;
517
+ }
518
+ var rendererWrapper = event.currentTarget;
519
+ var isInteractiveElementInTree = (0, _utils2.findInTree)(targetElement, rendererWrapper, _clickToEdit.isInteractiveElement);
520
+ if (isInteractiveElementInTree) {
521
+ return;
522
+ }
523
+
524
+ // Ensure that selecting text in the renderer doesn't trigger onUnhandledClick
525
+ // This logic originated in jira-frontend:
526
+ // src/packages/issue/issue-view/src/views/field/rich-text/rich-text-inline-edit-view.js
527
+
528
+ // The selection is required to be checked in `onMouseDown` and here. If not here, a new
529
+ // selection isn't reported; if not in `onMouseDown`, a click outside the selection will
530
+ // return an empty selection, which will erroneously fire onUnhandledClick.
531
+ var windowSelection = window.getSelection();
532
+ var selection = windowSelection !== null ? windowSelection.toString() : undefined;
533
+ var hasSelection = selection && selection.length !== 0;
534
+ var hasSelectionMouseDown = mouseDownSelection.current && mouseDownSelection.current.length !== 0;
535
+ var allowEditBasedOnSelection = !hasSelection && !hasSelectionMouseDown;
536
+ if (allowEditBasedOnSelection) {
537
+ props.eventHandlers.onUnhandledClick(event);
538
+ }
539
+ };
540
+ var RendererFunctionalComponent = function RendererFunctionalComponent(props) {
541
+ var mouseDownSelection = (0, _react.useRef)(undefined);
542
+ var providerFactory = (0, _react.useMemo)(function () {
543
+ return props.dataProviders || new _providerFactory.ProviderFactory();
544
+ }, [props.dataProviders]);
545
+ var createRendererContext = (0, _react.useMemo)(function () {
546
+ return function (featureFlags, isTopLevelRenderer) {
547
+ var normalizedFeatureFlags = (0, _normalizeFeatureFlags.normalizeFeatureFlags)(featureFlags);
548
+ return {
549
+ featureFlags: normalizedFeatureFlags,
550
+ isTopLevelRenderer: isTopLevelRenderer === undefined
551
+ };
552
+ };
553
+ }, []);
554
+ var _fireAnalyticsEvent = (0, _react.useCallback)(function (event) {
555
+ var createAnalyticsEvent = props.createAnalyticsEvent;
556
+ if (createAnalyticsEvent) {
557
+ var channel = _types.FabricChannel.editor;
558
+ createAnalyticsEvent(event).fire(channel);
559
+ }
560
+ }, [props]);
561
+ var deriveSerializerProps = (0, _react.useCallback)(function (props) {
562
+ var stickyHeaders = props.stickyHeaders ? props.stickyHeaders === true ? {} : props.stickyHeaders : undefined;
563
+ var annotationProvider = props.annotationProvider;
564
+ var allowAnnotationsDraftMode = Boolean(annotationProvider && annotationProvider.inlineComment && annotationProvider.inlineComment.allowDraftMode);
565
+ var _createRendererContex = createRendererContext(props.featureFlags, props.isTopLevelRenderer),
566
+ featureFlags = _createRendererContex.featureFlags;
567
+ return {
568
+ startPos: props.startPos,
569
+ providers: providerFactory,
570
+ eventHandlers: props.eventHandlers,
571
+ extensionHandlers: props.extensionHandlers,
572
+ portal: props.portal,
573
+ objectContext: _objectSpread({
574
+ adDoc: props.document,
575
+ schema: props.schema
576
+ }, props.rendererContext),
577
+ appearance: props.appearance,
578
+ disableHeadingIDs: props.disableHeadingIDs,
579
+ disableActions: props.disableActions,
580
+ allowHeadingAnchorLinks: props.allowHeadingAnchorLinks,
581
+ allowColumnSorting: props.allowColumnSorting,
582
+ fireAnalyticsEvent: _fireAnalyticsEvent,
583
+ shouldOpenMediaViewer: props.shouldOpenMediaViewer,
584
+ allowAltTextOnImages: props.allowAltTextOnImages,
585
+ stickyHeaders: stickyHeaders,
586
+ allowMediaLinking: props.media && props.media.allowLinking,
587
+ surroundTextNodesWithTextWrapper: allowAnnotationsDraftMode,
588
+ media: props.media,
589
+ emojiResourceConfig: props.emojiResourceConfig,
590
+ smartLinks: props.smartLinks,
591
+ allowCopyToClipboard: props.allowCopyToClipboard,
592
+ allowWrapCodeBlock: props.allowWrapCodeBlock,
593
+ allowCustomPanels: props.allowCustomPanels,
594
+ allowAnnotations: props.allowAnnotations,
595
+ allowSelectAllTrap: props.allowSelectAllTrap,
596
+ allowPlaceholderText: props.allowPlaceholderText,
597
+ nodeComponents: props.nodeComponents,
598
+ allowWindowedCodeBlock: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.allowWindowedCodeBlock,
599
+ isInsideOfInlineExtension: props.isInsideOfInlineExtension,
600
+ textHighlighter: props.UNSTABLE_textHighlighter,
601
+ allowTableAlignment: props.UNSTABLE_allowTableAlignment,
602
+ allowTableResizing: props.UNSTABLE_allowTableResizing
603
+ };
604
+ }, [createRendererContext, providerFactory, _fireAnalyticsEvent]);
605
+ var serializer = (0, _react.useMemo)(function () {
606
+ var _props$startPos;
607
+ return new _.ReactSerializer(deriveSerializerProps(_objectSpread(_objectSpread({}, props), {}, {
608
+ startPos: (_props$startPos = props.startPos) !== null && _props$startPos !== void 0 ? _props$startPos : 0
609
+ })));
610
+ }, [deriveSerializerProps, props]);
611
+ var localRef = (0, _react.useRef)(null);
612
+ var editorRef = props.innerRef || localRef;
613
+ var id = (0, _react.useMemo)(function () {
614
+ return (0, _v.default)();
615
+ }, []);
616
+ var renderedMeasurementDistortedDurationMonitor = (0, _react.useMemo)(function () {
617
+ return (0, _measureRender.getDistortedDurationMonitor)();
618
+ }, []);
619
+
620
+ // we are doing this to ensure it runs as
621
+ // early as possible in the React lifecycle
622
+ // to avoid any other side effects
623
+ var measureStarted = (0, _react.useRef)(false);
624
+ var startAnalyticsMeasure = function startAnalyticsMeasure() {
625
+ (0, _performanceMeasures.startMeasure)("Renderer Render Time: ".concat(id));
626
+ };
627
+ if (!measureStarted.current) {
628
+ startAnalyticsMeasure();
629
+ measureStarted.current = true;
630
+ }
631
+ var anchorLinkAnalytics = (0, _react.useCallback)(function () {
632
+ var hash = window.location.hash && decodeURIComponent(window.location.hash.slice(1));
633
+ var disableHeadingIDs = props.disableHeadingIDs;
634
+ if (!disableHeadingIDs && hash && editorRef && editorRef.current instanceof HTMLElement) {
635
+ var anchorLinkElement = document.getElementById(hash);
636
+ if (anchorLinkElement && editorRef.current.contains(anchorLinkElement)) {
637
+ _fireAnalyticsEvent({
638
+ action: _analytics.ACTION.VIEWED,
639
+ actionSubject: _analytics.ACTION_SUBJECT.ANCHOR_LINK,
640
+ attributes: {
641
+ platform: _events.PLATFORM.WEB,
642
+ mode: _events.MODE.RENDERER
643
+ },
644
+ eventType: _analytics.EVENT_TYPE.UI
645
+ });
646
+ }
647
+ }
648
+ }, [props.disableHeadingIDs, editorRef, _fireAnalyticsEvent]);
649
+ var getSchema = (0, _react.useMemo)(function () {
650
+ return function (schema, adfStage) {
651
+ if (schema) {
652
+ return schema;
653
+ }
654
+ return (0, _schemaDefault.getSchemaBasedOnStage)(adfStage);
655
+ };
656
+ }, []);
657
+ var onMouseDownEditView = function onMouseDownEditView() {
658
+ var windowSelection = window.getSelection();
659
+ mouseDownSelection.current = windowSelection !== null ? windowSelection.toString() : undefined;
660
+ };
661
+ var dataProviders = props.dataProviders,
662
+ analyticsEventSeverityTracking = props.analyticsEventSeverityTracking;
663
+ (0, _react.useEffect)(function () {
664
+ var rafID;
665
+ var handleAnalytics = function handleAnalytics() {
666
+ _fireAnalyticsEvent({
667
+ action: _analytics.ACTION.STARTED,
668
+ actionSubject: _analytics.ACTION_SUBJECT.RENDERER,
669
+ attributes: {
670
+ platform: _events.PLATFORM.WEB
671
+ },
672
+ eventType: _analytics.EVENT_TYPE.UI
673
+ });
674
+ rafID = requestAnimationFrame(function () {
675
+ (0, _performanceMeasures.stopMeasure)("Renderer Render Time: ".concat(id), function (duration) {
676
+ var _analyticsEventSeveri3, _analyticsEventSeveri4;
677
+ var forceSeverityTracking = typeof analyticsEventSeverityTracking === 'undefined' && (0, _utils.shouldForceTracking)();
678
+ var severity = !!forceSeverityTracking || analyticsEventSeverityTracking !== null && analyticsEventSeverityTracking !== void 0 && analyticsEventSeverityTracking.enabled ? (0, _utils.getAnalyticsEventSeverity)(duration, (_analyticsEventSeveri3 = analyticsEventSeverityTracking === null || analyticsEventSeverityTracking === void 0 ? void 0 : analyticsEventSeverityTracking.severityNormalThreshold) !== null && _analyticsEventSeveri3 !== void 0 ? _analyticsEventSeveri3 : NORMAL_SEVERITY_THRESHOLD, (_analyticsEventSeveri4 = analyticsEventSeverityTracking === null || analyticsEventSeverityTracking === void 0 ? void 0 : analyticsEventSeverityTracking.severityDegradedThreshold) !== null && _analyticsEventSeveri4 !== void 0 ? _analyticsEventSeveri4 : DEGRADED_SEVERITY_THRESHOLD) : undefined;
679
+ var isTTRTrackingExplicitlyDisabled = (analyticsEventSeverityTracking === null || analyticsEventSeverityTracking === void 0 ? void 0 : analyticsEventSeverityTracking.enabled) === false;
680
+ if (!isTTRTrackingExplicitlyDisabled) {
681
+ _fireAnalyticsEvent({
682
+ action: _analytics.ACTION.RENDERED,
683
+ actionSubject: _analytics.ACTION_SUBJECT.RENDERER,
684
+ attributes: {
685
+ platform: _events.PLATFORM.WEB,
686
+ duration: duration,
687
+ distortedDuration: renderedMeasurementDistortedDurationMonitor.distortedDuration,
688
+ ttfb: (0, _navigation.getResponseEndTime)(),
689
+ nodes: (0, _countNodes.countNodes)(props.document),
690
+ severity: severity
691
+ },
692
+ eventType: _analytics.EVENT_TYPE.OPERATIONAL
693
+ });
694
+ }
695
+ renderedMeasurementDistortedDurationMonitor.cleanup();
696
+ });
697
+ anchorLinkAnalytics();
698
+ });
699
+ };
700
+ handleAnalytics();
701
+ return function () {
702
+ if (rafID) {
703
+ window.cancelAnimationFrame(rafID);
704
+ }
705
+ if (dataProviders) {
706
+ providerFactory.destroy();
707
+ }
708
+ };
709
+ // we are going to ignore this because I'm doing this on purpose
710
+ // having a dependency array means we run stopMeasure twice per render
711
+ // eslint-disable-next-line react-hooks/exhaustive-deps
712
+ }, []);
713
+ try {
714
+ var _createRendererContex2, _props$media;
715
+ var schema = getSchema(props.schema, props.adfStage);
716
+ var _renderDocument2 = (0, _.renderDocument)(props.document, serializer, schema, props.adfStage, props.useSpecBasedValidator, id, _fireAnalyticsEvent, props.unsupportedContentLevelsTracking, props.appearance, props.includeNodesCountInStats),
717
+ result = _renderDocument2.result,
718
+ stat = _renderDocument2.stat,
719
+ pmDoc = _renderDocument2.pmDoc;
720
+ if (props.onComplete) {
721
+ props.onComplete(stat);
722
+ }
723
+ var rendererOutput = (0, _react2.jsx)(_rendererContext.RendererContextProvider, {
724
+ value: createRendererContext(props.featureFlags, props.isTopLevelRenderer)
725
+ }, (0, _react2.jsx)(_activeHeaderIdProvider.ActiveHeaderIdProvider, {
726
+ value: (0, _links.getActiveHeadingId)(props.allowHeadingAnchorLinks)
727
+ }, (0, _react2.jsx)(_analyticsContext.default.Provider, {
728
+ value: {
729
+ fireAnalyticsEvent: function fireAnalyticsEvent(event) {
730
+ return _fireAnalyticsEvent(event);
731
+ }
732
+ }
733
+ }, (0, _react2.jsx)(_SmartCardStorage.Provider, null, (0, _react2.jsx)(_providerFactory.ProviderFactoryProvider, {
734
+ value: providerFactory
735
+ }, (0, _react2.jsx)(RendererWrapper, {
736
+ allowAnnotations: props.allowAnnotations,
737
+ appearance: props.appearance,
738
+ allowNestedHeaderLinks: (0, _links.isNestedHeaderLinksEnabled)(props.allowHeadingAnchorLinks),
739
+ allowColumnSorting: props.allowColumnSorting,
740
+ allowCopyToClipboard: props.allowCopyToClipboard,
741
+ allowWrapCodeBlock: props.allowWrapCodeBlock,
742
+ allowCustomPanels: props.allowCustomPanels,
743
+ allowPlaceholderText: props.allowPlaceholderText,
744
+ useBlockRenderForCodeBlock: (_createRendererContex2 = createRendererContext(props.featureFlags, props.isTopLevelRenderer).featureFlags.useBlockRenderForCodeBlock) !== null && _createRendererContex2 !== void 0 ? _createRendererContex2 : true,
745
+ addTelepointer: props.addTelepointer,
746
+ innerRef: editorRef,
747
+ onClick: function onClick(event) {
748
+ return handleWrapperOnClick(event, props, mouseDownSelection);
749
+ },
750
+ onMouseDown: onMouseDownEditView,
751
+ ssr: (_props$media = props.media) === null || _props$media === void 0 ? void 0 : _props$media.ssr,
752
+ isInsideOfInlineExtension: props.isInsideOfInlineExtension,
753
+ isTopLevelRenderer: createRendererContext(props.featureFlags, props.isTopLevelRenderer).isTopLevelRenderer
754
+ }, props.enableSsrInlineScripts ? (0, _react2.jsx)(_breakoutSsr.BreakoutSSRInlineScript, null) : null, (0, _react2.jsx)(RendererActionsInternalUpdater, {
755
+ doc: pmDoc,
756
+ schema: schema,
757
+ onAnalyticsEvent: _fireAnalyticsEvent
758
+ }, result)))))));
759
+ var rendererResult = props.truncated ? (0, _react2.jsx)(_truncatedWrapper.TruncatedWrapper, {
760
+ height: props.maxHeight,
761
+ fadeHeight: props.fadeOutHeight
762
+ }, rendererOutput) : rendererOutput;
763
+ return (0, _react2.jsx)(_react.Fragment, null, rendererResult);
764
+ } catch (e) {
765
+ var _createRendererContex3;
766
+ if (props.onError) {
767
+ props.onError(e);
768
+ }
769
+ return (0, _react2.jsx)(RendererWrapper, {
770
+ allowAnnotations: props.allowAnnotations,
771
+ appearance: props.appearance,
772
+ allowCopyToClipboard: props.allowCopyToClipboard,
773
+ allowWrapCodeBlock: props.allowWrapCodeBlock,
774
+ allowPlaceholderText: props.allowPlaceholderText,
775
+ allowColumnSorting: props.allowColumnSorting,
776
+ allowNestedHeaderLinks: (0, _links.isNestedHeaderLinksEnabled)(props.allowHeadingAnchorLinks),
777
+ useBlockRenderForCodeBlock: (_createRendererContex3 = createRendererContext(props.featureFlags, props.isTopLevelRenderer).featureFlags.useBlockRenderForCodeBlock) !== null && _createRendererContex3 !== void 0 ? _createRendererContex3 : true,
778
+ addTelepointer: props.addTelepointer,
779
+ onClick: function onClick(event) {
780
+ return handleWrapperOnClick(event, props, mouseDownSelection);
781
+ },
782
+ isTopLevelRenderer: createRendererContext(props.featureFlags, props.isTopLevelRenderer).isTopLevelRenderer
783
+ }, (0, _react2.jsx)(_ui.UnsupportedBlock, null));
784
+ }
785
+ };
448
786
  function Renderer(props) {
449
787
  var _React$useContext = _react.default.useContext(_annotations.AnnotationsPositionContext),
450
788
  startPos = _React$useContext.startPos;
451
789
  var _useRendererContext = (0, _rendererContext.useRendererContext)(),
452
790
  isTopLevelRenderer = _useRendererContext.isTopLevelRenderer;
453
- return (
454
- // eslint-disable-next-line react/jsx-pascal-case
455
- (0, _react2.jsx)(__RendererClassComponent, (0, _extends2.default)({}, props, {
456
- startPos: startPos,
457
- isTopLevelRenderer: isTopLevelRenderer
458
- }))
459
- );
791
+ return (0, _platformFeatureFlags.fg)('platform_editor_react18_renderer') ? (0, _react2.jsx)(RendererFunctionalComponent, (0, _extends2.default)({}, props, {
792
+ startPos: startPos,
793
+ isTopLevelRenderer: isTopLevelRenderer
794
+ })) :
795
+ // eslint-disable-next-line react/jsx-pascal-case
796
+ (0, _react2.jsx)(__RendererClassComponent, (0, _extends2.default)({}, props, {
797
+ startPos: startPos,
798
+ isTopLevelRenderer: isTopLevelRenderer
799
+ }));
460
800
  }
461
801
 
462
802
  // Usage notes:
@@ -506,7 +846,7 @@ var RendererWrapper = /*#__PURE__*/_react.default.memo(function (props) {
506
846
  return telepointer;
507
847
  };
508
848
  var initialUpdate = _react.default.useRef(true);
509
- _react.default.useEffect(function () {
849
+ (0, _react.useEffect)(function () {
510
850
  // We must check if window is defined, if it isn't we are in a SSR environment
511
851
  // and we don't want to add the telepointer
512
852
  if (typeof window !== 'undefined' && addTelepointer && innerRef !== null && innerRef !== void 0 && innerRef.current) {
@@ -660,5 +1000,6 @@ var RendererWithAnnotationSelection = function RendererWithAnnotationSelection(p
660
1000
  }))));
661
1001
  };
662
1002
 
1003
+ // eslint-disable-next-line @repo/internal/deprecations/deprecation-ticket-required -- Ignored via go/ED-25883
663
1004
  /* @deprecated using this version of the renderer causes the RendererActions to inaccessible from any consumers */
664
1005
  var _default = exports.default = RendererWithAnnotationSelection;
@@ -8,7 +8,9 @@ exports.MarkElement = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _adfSchema = require("@atlaskit/adf-schema");
10
10
  var _mark = require("./mark");
11
- var _hooks = require("../hooks");
11
+ var _useInlineCommentsFilter = require("../hooks/use-inline-comments-filter");
12
+ var _useInlineCommentSubscriber = require("../hooks/use-inline-comment-subscriber");
13
+ var _useEvents = require("../hooks/use-events");
12
14
  var _context = require("../context");
13
15
  var _types = require("@atlaskit/editor-common/types");
14
16
  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); }
@@ -19,9 +21,9 @@ var MarkElement = exports.MarkElement = function MarkElement(_ref) {
19
21
  dataAttributes = _ref.dataAttributes,
20
22
  id = _ref.id,
21
23
  useBlockLevel = _ref.useBlockLevel;
22
- var updateSubscriber = (0, _hooks.useInlineCommentSubscriberContext)();
24
+ var updateSubscriber = (0, _useInlineCommentSubscriber.useInlineCommentSubscriberContext)();
23
25
  var states = (0, _react.useContext)(_context.InlineCommentsStateContext);
24
- var _useHasFocusEvent = (0, _hooks.useHasFocusEvent)({
26
+ var _useHasFocusEvent = (0, _useEvents.useHasFocusEvent)({
25
27
  id: id,
26
28
  updateSubscriber: updateSubscriber
27
29
  }),
@@ -44,7 +46,7 @@ var MarkElement = exports.MarkElement = function MarkElement(_ref) {
44
46
  eventTarget: eventTarget
45
47
  });
46
48
  }, [updateSubscriber, useBlockLevel]);
47
- var activeParentIds = (0, _hooks.useInlineCommentsFilter)({
49
+ var activeParentIds = (0, _useInlineCommentsFilter.useInlineCommentsFilter)({
48
50
  annotationIds: annotationParentIds,
49
51
  filter: {
50
52
  state: _adfSchema.AnnotationMarkStates.ACTIVE
@@ -9,7 +9,7 @@ exports.Mounter = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _adfSchema = require("@atlaskit/adf-schema");
12
- var _draft = require("../draft");
12
+ var _dom = require("../draft/dom");
13
13
  var _types = require("@atlaskit/analytics-listeners/types");
14
14
  var _analytics = require("@atlaskit/editor-common/analytics");
15
15
  var _RendererActionsContext = require("../../RendererActionsContext");
@@ -91,7 +91,7 @@ var Mounter = exports.Mounter = /*#__PURE__*/_react.default.memo(function (props
91
91
  }
92
92
  window.requestAnimationFrame(function () {
93
93
  if (options.keepNativeSelection) {
94
- (0, _draft.updateWindowSelectionAroundDraft)(documentPosition);
94
+ (0, _dom.updateWindowSelectionAroundDraft)(documentPosition);
95
95
  } else {
96
96
  var sel = window.getSelection();
97
97
  if (sel) {
@@ -4,19 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- Object.defineProperty(exports, "AnnotationMark", {
8
- enumerable: true,
9
- get: function get() {
10
- return _element.MarkElement;
11
- }
12
- });
13
7
  exports.AnnotationsWrapper = exports.AnnotationsPositionContext = void 0;
14
- Object.defineProperty(exports, "TextWithAnnotationDraft", {
15
- enumerable: true,
16
- get: function get() {
17
- return _draft.TextWithAnnotationDraft;
18
- }
19
- });
20
8
  var _react = _interopRequireDefault(require("react"));
21
9
  var _adfSchema = require("@atlaskit/adf-schema");
22
10
  var _view = require("./view");
@@ -27,8 +15,6 @@ var _useEvents = require("./hooks/use-events");
27
15
  var _analyticsNext = require("@atlaskit/analytics-next");
28
16
  var _AnnotationRangeContext = require("./contexts/AnnotationRangeContext");
29
17
  var _AnnotationHoverContext = require("./contexts/AnnotationHoverContext");
30
- var _draft = require("./draft");
31
- var _element = require("./element");
32
18
  var LoadAnnotations = /*#__PURE__*/_react.default.memo(function (_ref) {
33
19
  var adfDocument = _ref.adfDocument,
34
20
  isNestedRender = _ref.isNestedRender,
@@ -10,7 +10,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _adfSchema = require("@atlaskit/adf-schema");
12
12
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
- var _draft = require("../draft");
13
+ var _dom = require("../draft/dom");
14
14
  var _types = require("@atlaskit/analytics-listeners/types");
15
15
  var _analytics = require("@atlaskit/editor-common/analytics");
16
16
  var _getRendererRangeInlineNodeNames = require("../../../actions/get-renderer-range-inline-node-names");
@@ -130,7 +130,7 @@ var SelectionInlineCommentMounter = exports.SelectionInlineCommentMounter = /*#_
130
130
  }
131
131
  window.requestAnimationFrame(function () {
132
132
  if (options.keepNativeSelection) {
133
- (0, _draft.updateWindowSelectionAroundDraft)(documentPosition);
133
+ (0, _dom.updateWindowSelectionAroundDraft)(documentPosition);
134
134
  } else {
135
135
  var sel = window.getSelection();
136
136
  if (sel) {
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.AnnotationView = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _context = require("../context");
10
- var _hooks = require("../hooks");
10
+ var _useEvents = require("../hooks/use-events");
11
11
  var _RendererActionsContext = require("../../../ui/RendererActionsContext");
12
12
  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); }
13
13
  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; }
@@ -16,7 +16,7 @@ var AnnotationView = exports.AnnotationView = function AnnotationView(props) {
16
16
  var actionContext = (0, _react.useContext)(_RendererActionsContext.RendererContext);
17
17
  var inlineCommentProvider = providers && providers.inlineComment;
18
18
  var updateSubscriber = inlineCommentProvider && inlineCommentProvider.updateSubscriber || null;
19
- var viewComponentProps = (0, _hooks.useAnnotationClickEvent)({
19
+ var viewComponentProps = (0, _useEvents.useAnnotationClickEvent)({
20
20
  updateSubscriber: updateSubscriber,
21
21
  createAnalyticsEvent: props.createAnalyticsEvent,
22
22
  isNestedRender: props.isNestedRender