@atlaskit/renderer 120.2.1 → 120.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @atlaskit/renderer
2
2
 
3
+ ## 120.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#188983](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/188983)
8
+ [`4db0e4a06b450`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/4db0e4a06b450) -
9
+ EDITOR-1122: Fix telepointer not updating when childList is mutated instead of characterData.
10
+ Behind platform_editor_ai_iw_adf_streaming
11
+ - Updated dependencies
12
+
3
13
  ## 120.2.1
4
14
 
5
15
  ### Patch Changes
@@ -51,6 +51,7 @@ var _getBaseFontSize = require("./get-base-font-size");
51
51
  var _rendererHelper = require("./rendererHelper");
52
52
  var _useMemoFromPropsDerivative = require("./useMemoFromPropsDerivative");
53
53
  var _PortalContext = require("./PortalContext");
54
+ var _expValEqualsNoExposure = require("@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure");
54
55
  var _excluded = ["portal"];
55
56
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
56
57
  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; }
@@ -62,7 +63,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
62
63
  var NORMAL_SEVERITY_THRESHOLD = exports.NORMAL_SEVERITY_THRESHOLD = 2000;
63
64
  var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
64
65
  var packageName = "@atlaskit/renderer";
65
- var packageVersion = "120.2.0";
66
+ var packageVersion = "120.2.1";
66
67
  var setAsQueryContainerStyles = (0, _react2.css)({
67
68
  containerName: 'ak-renderer-wrapper',
68
69
  containerType: 'inline-size'
@@ -570,7 +571,8 @@ var RendererWrapper = /*#__PURE__*/_react.default.memo(function (props) {
570
571
  lastChild && lastChild.appendChild(createTelepointer());
571
572
  }
572
573
  var mutateTelepointer = function mutateTelepointer(mutations) {
573
- mutations.forEach(function (mutation) {
574
+ mutations.forEach(function (mutation, index) {
575
+ var _mutation$addedNodes$, _mutation$removedNode;
574
576
  if (initialUpdate.current) {
575
577
  var oldTelepointer = _renderer.querySelector("#".concat(_style.TELEPOINTER_ID));
576
578
  if (oldTelepointer) {
@@ -592,6 +594,33 @@ var RendererWrapper = /*#__PURE__*/_react.default.memo(function (props) {
592
594
  parentNode.appendChild(createTelepointer());
593
595
  }
594
596
  }
597
+
598
+ /**
599
+ * When streaming ADF content, we may receive mutations where nodes get
600
+ * replaced, rather than have characterData updated.
601
+ *
602
+ * Telepointer changes will also cause a childList mutation, so we manually ignore it.
603
+ * Telepointer changes are always a singular node-adds or node-removes.
604
+ */
605
+ if ((0, _expValEqualsNoExposure.expValEqualsNoExposure)('platform_editor_ai_iw_adf_streaming', 'isEnabled', true) && mutation.type === 'childList' && !(mutation.addedNodes.length === 1 && ((_mutation$addedNodes$ = mutation.addedNodes[0]) === null || _mutation$addedNodes$ === void 0 ? void 0 : _mutation$addedNodes$.id) === _style.TELEPOINTER_ID || mutation.removedNodes.length === 1 && ((_mutation$removedNode = mutation.removedNodes[0]) === null || _mutation$removedNode === void 0 ? void 0 : _mutation$removedNode.id) === _style.TELEPOINTER_ID)) {
606
+ var _lastChild2 = _renderer.lastChild;
607
+ if (_lastChild2) {
608
+ /**
609
+ * We want to place telepointer inside content (which has data-renderer-start-pos) and
610
+ * inside lines in codeblocks (which have data-ds--code--row).
611
+ */
612
+ var contentElements = _lastChild2.querySelectorAll('[data-renderer-start-pos],[data-ds--code--row]');
613
+ var lastElement = contentElements[contentElements.length - 1];
614
+ var _oldTelepointer2 = _renderer.querySelector("#".concat(_style.TELEPOINTER_ID));
615
+ if (lastElement) {
616
+ _oldTelepointer2 === null || _oldTelepointer2 === void 0 || _oldTelepointer2.remove();
617
+ lastElement === null || lastElement === void 0 || lastElement.appendChild(createTelepointer());
618
+ } else {
619
+ _oldTelepointer2 === null || _oldTelepointer2 === void 0 || _oldTelepointer2.remove();
620
+ _lastChild2 === null || _lastChild2 === void 0 || _lastChild2.appendChild(createTelepointer());
621
+ }
622
+ }
623
+ }
595
624
  });
596
625
  };
597
626
  var observer = new MutationObserver(mutateTelepointer);
@@ -45,10 +45,11 @@ import { getBaseFontSize } from './get-base-font-size';
45
45
  import { removeEmptySpaceAroundContent } from './rendererHelper';
46
46
  import { useMemoFromPropsDerivative } from './useMemoFromPropsDerivative';
47
47
  import { PortalContext } from './PortalContext';
48
+ import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
48
49
  export const NORMAL_SEVERITY_THRESHOLD = 2000;
49
50
  export const DEGRADED_SEVERITY_THRESHOLD = 3000;
50
51
  const packageName = "@atlaskit/renderer";
51
- const packageVersion = "120.2.0";
52
+ const packageVersion = "120.2.1";
52
53
  const setAsQueryContainerStyles = css({
53
54
  containerName: 'ak-renderer-wrapper',
54
55
  containerType: 'inline-size'
@@ -556,7 +557,8 @@ const RendererWrapper = /*#__PURE__*/React.memo(props => {
556
557
  lastChild && lastChild.appendChild(createTelepointer());
557
558
  }
558
559
  const mutateTelepointer = mutations => {
559
- mutations.forEach(mutation => {
560
+ mutations.forEach((mutation, index) => {
561
+ var _mutation$addedNodes$, _mutation$removedNode;
560
562
  if (initialUpdate.current) {
561
563
  const oldTelepointer = renderer.querySelector(`#${TELEPOINTER_ID}`);
562
564
  if (oldTelepointer) {
@@ -578,6 +580,33 @@ const RendererWrapper = /*#__PURE__*/React.memo(props => {
578
580
  parentNode.appendChild(createTelepointer());
579
581
  }
580
582
  }
583
+
584
+ /**
585
+ * When streaming ADF content, we may receive mutations where nodes get
586
+ * replaced, rather than have characterData updated.
587
+ *
588
+ * Telepointer changes will also cause a childList mutation, so we manually ignore it.
589
+ * Telepointer changes are always a singular node-adds or node-removes.
590
+ */
591
+ if (expValEqualsNoExposure('platform_editor_ai_iw_adf_streaming', 'isEnabled', true) && mutation.type === 'childList' && !(mutation.addedNodes.length === 1 && ((_mutation$addedNodes$ = mutation.addedNodes[0]) === null || _mutation$addedNodes$ === void 0 ? void 0 : _mutation$addedNodes$.id) === TELEPOINTER_ID || mutation.removedNodes.length === 1 && ((_mutation$removedNode = mutation.removedNodes[0]) === null || _mutation$removedNode === void 0 ? void 0 : _mutation$removedNode.id) === TELEPOINTER_ID)) {
592
+ const lastChild = renderer.lastChild;
593
+ if (lastChild) {
594
+ /**
595
+ * We want to place telepointer inside content (which has data-renderer-start-pos) and
596
+ * inside lines in codeblocks (which have data-ds--code--row).
597
+ */
598
+ const contentElements = lastChild.querySelectorAll('[data-renderer-start-pos],[data-ds--code--row]');
599
+ const lastElement = contentElements[contentElements.length - 1];
600
+ const oldTelepointer = renderer.querySelector(`#${TELEPOINTER_ID}`);
601
+ if (lastElement) {
602
+ oldTelepointer === null || oldTelepointer === void 0 ? void 0 : oldTelepointer.remove();
603
+ lastElement === null || lastElement === void 0 ? void 0 : lastElement.appendChild(createTelepointer());
604
+ } else {
605
+ oldTelepointer === null || oldTelepointer === void 0 ? void 0 : oldTelepointer.remove();
606
+ lastChild === null || lastChild === void 0 ? void 0 : lastChild.appendChild(createTelepointer());
607
+ }
608
+ }
609
+ }
581
610
  });
582
611
  };
583
612
  const observer = new MutationObserver(mutateTelepointer);
@@ -50,10 +50,11 @@ import { getBaseFontSize } from './get-base-font-size';
50
50
  import { removeEmptySpaceAroundContent } from './rendererHelper';
51
51
  import { useMemoFromPropsDerivative } from './useMemoFromPropsDerivative';
52
52
  import { PortalContext } from './PortalContext';
53
+ import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
53
54
  export var NORMAL_SEVERITY_THRESHOLD = 2000;
54
55
  export var DEGRADED_SEVERITY_THRESHOLD = 3000;
55
56
  var packageName = "@atlaskit/renderer";
56
- var packageVersion = "120.2.0";
57
+ var packageVersion = "120.2.1";
57
58
  var setAsQueryContainerStyles = css({
58
59
  containerName: 'ak-renderer-wrapper',
59
60
  containerType: 'inline-size'
@@ -561,7 +562,8 @@ var RendererWrapper = /*#__PURE__*/React.memo(function (props) {
561
562
  lastChild && lastChild.appendChild(createTelepointer());
562
563
  }
563
564
  var mutateTelepointer = function mutateTelepointer(mutations) {
564
- mutations.forEach(function (mutation) {
565
+ mutations.forEach(function (mutation, index) {
566
+ var _mutation$addedNodes$, _mutation$removedNode;
565
567
  if (initialUpdate.current) {
566
568
  var oldTelepointer = _renderer.querySelector("#".concat(TELEPOINTER_ID));
567
569
  if (oldTelepointer) {
@@ -583,6 +585,33 @@ var RendererWrapper = /*#__PURE__*/React.memo(function (props) {
583
585
  parentNode.appendChild(createTelepointer());
584
586
  }
585
587
  }
588
+
589
+ /**
590
+ * When streaming ADF content, we may receive mutations where nodes get
591
+ * replaced, rather than have characterData updated.
592
+ *
593
+ * Telepointer changes will also cause a childList mutation, so we manually ignore it.
594
+ * Telepointer changes are always a singular node-adds or node-removes.
595
+ */
596
+ if (expValEqualsNoExposure('platform_editor_ai_iw_adf_streaming', 'isEnabled', true) && mutation.type === 'childList' && !(mutation.addedNodes.length === 1 && ((_mutation$addedNodes$ = mutation.addedNodes[0]) === null || _mutation$addedNodes$ === void 0 ? void 0 : _mutation$addedNodes$.id) === TELEPOINTER_ID || mutation.removedNodes.length === 1 && ((_mutation$removedNode = mutation.removedNodes[0]) === null || _mutation$removedNode === void 0 ? void 0 : _mutation$removedNode.id) === TELEPOINTER_ID)) {
597
+ var _lastChild2 = _renderer.lastChild;
598
+ if (_lastChild2) {
599
+ /**
600
+ * We want to place telepointer inside content (which has data-renderer-start-pos) and
601
+ * inside lines in codeblocks (which have data-ds--code--row).
602
+ */
603
+ var contentElements = _lastChild2.querySelectorAll('[data-renderer-start-pos],[data-ds--code--row]');
604
+ var lastElement = contentElements[contentElements.length - 1];
605
+ var _oldTelepointer2 = _renderer.querySelector("#".concat(TELEPOINTER_ID));
606
+ if (lastElement) {
607
+ _oldTelepointer2 === null || _oldTelepointer2 === void 0 || _oldTelepointer2.remove();
608
+ lastElement === null || lastElement === void 0 || lastElement.appendChild(createTelepointer());
609
+ } else {
610
+ _oldTelepointer2 === null || _oldTelepointer2 === void 0 || _oldTelepointer2.remove();
611
+ _lastChild2 === null || _lastChild2 === void 0 || _lastChild2.appendChild(createTelepointer());
612
+ }
613
+ }
614
+ }
586
615
  });
587
616
  };
588
617
  var observer = new MutationObserver(mutateTelepointer);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "120.2.1",
3
+ "version": "120.2.2",
4
4
  "description": "Renderer component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -68,7 +68,7 @@
68
68
  "uuid": "^3.1.0"
69
69
  },
70
70
  "peerDependencies": {
71
- "@atlaskit/editor-common": "^107.10.0",
71
+ "@atlaskit/editor-common": "^107.11.0",
72
72
  "@atlaskit/link-provider": "^3.4.0",
73
73
  "@atlaskit/media-core": "^37.0.0",
74
74
  "react": "^18.2.0",