@atlaskit/react-ufo 4.1.12 → 4.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 (70) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/create-payload/index.js +22 -4
  3. package/dist/cjs/create-payload/utils/add-performance-measures.js +62 -0
  4. package/dist/cjs/interaction-metrics/index.js +26 -2
  5. package/dist/cjs/interaction-metrics-init/index.js +1 -2
  6. package/dist/cjs/vc/index.js +7 -59
  7. package/dist/cjs/vc/vc-observer/index.js +1 -3
  8. package/dist/cjs/vc/vc-observer/observers/index.js +2 -3
  9. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +3 -13
  10. package/dist/cjs/vc/vc-observer-new/index.js +2 -6
  11. package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +8 -14
  12. package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +25 -0
  13. package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +63 -0
  14. package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +28 -0
  15. package/dist/es2019/create-payload/index.js +21 -3
  16. package/dist/es2019/create-payload/utils/add-performance-measures.js +54 -0
  17. package/dist/es2019/interaction-metrics/index.js +26 -2
  18. package/dist/es2019/interaction-metrics-init/index.js +1 -2
  19. package/dist/es2019/vc/index.js +4 -54
  20. package/dist/es2019/vc/vc-observer/index.js +1 -3
  21. package/dist/es2019/vc/vc-observer/observers/index.js +2 -3
  22. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +3 -12
  23. package/dist/es2019/vc/vc-observer-new/index.js +2 -6
  24. package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +6 -15
  25. package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +19 -0
  26. package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +55 -0
  27. package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +21 -0
  28. package/dist/esm/create-payload/index.js +22 -4
  29. package/dist/esm/create-payload/utils/add-performance-measures.js +56 -0
  30. package/dist/esm/interaction-metrics/index.js +26 -2
  31. package/dist/esm/interaction-metrics-init/index.js +1 -2
  32. package/dist/esm/vc/index.js +7 -59
  33. package/dist/esm/vc/vc-observer/index.js +1 -3
  34. package/dist/esm/vc/vc-observer/observers/index.js +2 -3
  35. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +3 -13
  36. package/dist/esm/vc/vc-observer-new/index.js +2 -6
  37. package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +6 -14
  38. package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +19 -0
  39. package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +55 -0
  40. package/dist/esm/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +21 -0
  41. package/dist/types/config/index.d.ts +0 -4
  42. package/dist/types/create-payload/utils/add-performance-measures.d.ts +2 -0
  43. package/dist/types/ssr/index.d.ts +7 -1
  44. package/dist/types/vc/index.d.ts +0 -1
  45. package/dist/types/vc/types.d.ts +0 -4
  46. package/dist/types/vc/vc-observer/observers/index.d.ts +0 -4
  47. package/dist/types/vc/vc-observer/observers/ssr-placeholders/index.d.ts +1 -7
  48. package/dist/types/vc/vc-observer-new/index.d.ts +0 -4
  49. package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +1 -0
  50. package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.d.ts +1 -0
  51. package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-within-component.d.ts +4 -0
  52. package/dist/types/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.d.ts +1 -0
  53. package/dist/types-ts4.5/config/index.d.ts +0 -4
  54. package/dist/types-ts4.5/create-payload/utils/add-performance-measures.d.ts +2 -0
  55. package/dist/types-ts4.5/ssr/index.d.ts +7 -1
  56. package/dist/types-ts4.5/vc/index.d.ts +0 -1
  57. package/dist/types-ts4.5/vc/types.d.ts +0 -4
  58. package/dist/types-ts4.5/vc/vc-observer/observers/index.d.ts +0 -4
  59. package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/index.d.ts +1 -7
  60. package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +0 -4
  61. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +1 -0
  62. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.d.ts +1 -0
  63. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/check-within-component.d.ts +4 -0
  64. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.d.ts +1 -0
  65. package/package.json +1 -1
  66. package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -69
  67. package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -60
  68. package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -62
  69. package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.d.ts +0 -8
  70. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.d.ts +0 -8
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/ufo-interaction-ignore
2
2
 
3
+ ## 4.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#195899](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/195899)
8
+ [`ab2e2b57fa3fc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ab2e2b57fa3fc) -
9
+ Deprecating optional, experimental API about disabling SSR placeholder check of size and position
10
+
11
+ ## 4.1.13
12
+
13
+ ### Patch Changes
14
+
15
+ - [#195513](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/195513)
16
+ [`49b7bf5d4e698`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/49b7bf5d4e698) -
17
+ Added reactUFO as marks to Dev Tools
18
+
3
19
  ## 4.1.12
4
20
 
5
21
  ### Patch Changes
@@ -33,6 +33,7 @@ var _roundNumber = require("../round-number");
33
33
  var ssr = _interopRequireWildcard(require("../ssr"));
34
34
  var _utils = require("./common/utils");
35
35
  var _criticalMetricsPayload = require("./critical-metrics-payload");
36
+ var _addPerformanceMeasures = require("./utils/add-performance-measures");
36
37
  var _getBrowserMetadata = require("./utils/get-browser-metadata");
37
38
  var _getInteractionStatus = _interopRequireDefault(require("./utils/get-interaction-status"));
38
39
  var _getNavigationMetrics = require("./utils/get-navigation-metrics");
@@ -201,7 +202,7 @@ function getPPSMetrics(interaction) {
201
202
  function getSSRProperties(type) {
202
203
  var ssrPhases = getSSRPhaseSuccess(type);
203
204
  return _objectSpread(_objectSpread({
204
- 'ssr:success': (0, _getSsrSuccess.default)(type),
205
+ 'ssr:success': (ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.done) != null ? ssrPhases.done : (0, _getSsrSuccess.default)(type),
205
206
  'ssr:featureFlags': getSSRFeatureFlags(type)
206
207
  }, (ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.earlyFlush) != null ? {
207
208
  'ssr:earlyflush:success': ssrPhases.earlyFlush
@@ -619,9 +620,23 @@ function _createInteractionMetricsPayload() {
619
620
  var SSRDoneTime = SSRDoneTimeValue !== undefined ? {
620
621
  SSRDoneTime: Math.round(SSRDoneTimeValue)
621
622
  } : {};
623
+ var isBM3ConfigSSRDoneAsFmp = interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp;
624
+ var isUFOConfigSSRDoneAsFmp = interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp || !!(config !== null && config !== void 0 && (_config$ssr = config.ssr) !== null && _config$ssr !== void 0 && _config$ssr.getSSRDoneTime);
625
+ if (!experimental && (isBM3ConfigSSRDoneAsFmp || isUFOConfigSSRDoneAsFmp) && SSRDoneTimeValue !== undefined && (0, _platformFeatureFlags.fg)('ufo_chrome_devtools_uplift')) {
626
+ try {
627
+ performance.mark("FMP", {
628
+ startTime: SSRDoneTimeValue,
629
+ detail: {
630
+ devtools: {
631
+ dataType: 'marker'
632
+ }
633
+ }
634
+ });
635
+ } catch (e) {}
636
+ }
622
637
  return _objectSpread(_objectSpread({}, SSRDoneTime), {}, {
623
- isBM3ConfigSSRDoneAsFmp: interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp,
624
- isUFOConfigSSRDoneAsFmp: interaction.metaData.__legacy__bm3ConfigSSRDoneAsFmp || !!(config !== null && config !== void 0 && (_config$ssr = config.ssr) !== null && _config$ssr !== void 0 && _config$ssr.getSSRDoneTime)
638
+ isBM3ConfigSSRDoneAsFmp: isBM3ConfigSSRDoneAsFmp,
639
+ isUFOConfigSSRDoneAsFmp: isUFOConfigSSRDoneAsFmp
625
640
  });
626
641
  };
627
642
  pageLoadInteractionMetrics = getInitialPageLoadSSRMetrics(); // Detailed payload. Page visibility = visible
@@ -690,6 +705,9 @@ function _createInteractionMetricsPayload() {
690
705
  finalVCMetrics = _yield$Promise$all2[0];
691
706
  experimentalMetrics = _yield$Promise$all2[1];
692
707
  paintMetrics = _yield$Promise$all2[2];
708
+ if (!experimental) {
709
+ (0, _platformFeatureFlags.fg)('ufo_chrome_devtools_uplift') && (0, _addPerformanceMeasures.addPerformanceMeasures)(interaction.start, (0, _toConsumableArray2.default)((finalVCMetrics === null || finalVCMetrics === void 0 ? void 0 : finalVCMetrics['ufo:vc:rev']) || []));
710
+ }
693
711
  payload = {
694
712
  actionSubject: 'experience',
695
713
  action: 'measured',
@@ -768,7 +786,7 @@ function _createInteractionMetricsPayload() {
768
786
  }
769
787
  payload.attributes.properties['event:sizeInKb'] = (0, _getPayloadSize.default)(payload.attributes.properties);
770
788
  return _context.abrupt("return", payload);
771
- case 43:
789
+ case 44:
772
790
  case "end":
773
791
  return _context.stop();
774
792
  }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addPerformanceMeasures = void 0;
7
+ var addPerformanceMeasures = exports.addPerformanceMeasures = function addPerformanceMeasures(start, measures) {
8
+ try {
9
+ measures.sort(function (a, b) {
10
+ return b.revision.localeCompare(a.revision);
11
+ }).slice(0, 2).forEach(function (entry) {
12
+ var _entry$vcDetails;
13
+ if (((_entry$vcDetails = entry.vcDetails) === null || _entry$vcDetails === void 0 || (_entry$vcDetails = _entry$vcDetails['90']) === null || _entry$vcDetails === void 0 ? void 0 : _entry$vcDetails.t) !== undefined) {
14
+ var _entry$vcDetails2;
15
+ performance.mark("VC90 (".concat(entry.revision, ")"), {
16
+ startTime: start + ((_entry$vcDetails2 = entry.vcDetails) === null || _entry$vcDetails2 === void 0 || (_entry$vcDetails2 = _entry$vcDetails2['90']) === null || _entry$vcDetails2 === void 0 ? void 0 : _entry$vcDetails2.t),
17
+ detail: {
18
+ devtools: {
19
+ dataType: 'marker'
20
+ }
21
+ }
22
+ });
23
+ }
24
+ });
25
+ measures.forEach(function (entry) {
26
+ var _entry$vcDetails3;
27
+ if (!entry || !entry.vcDetails) {
28
+ return;
29
+ }
30
+ var VCParts = Object.keys(entry.vcDetails);
31
+ performance.measure("VC90 (".concat(entry.revision, ")"), {
32
+ start: start,
33
+ duration: (_entry$vcDetails3 = entry.vcDetails) === null || _entry$vcDetails3 === void 0 || (_entry$vcDetails3 = _entry$vcDetails3['90']) === null || _entry$vcDetails3 === void 0 ? void 0 : _entry$vcDetails3.t,
34
+ detail: {
35
+ devtools: {
36
+ track: "main metrics",
37
+ trackGroup: '🛸 reactUFO metrics',
38
+ color: 'tertiary'
39
+ }
40
+ }
41
+ });
42
+ VCParts.forEach(function (key) {
43
+ var _entry$vcDetails4;
44
+ var duration = (_entry$vcDetails4 = entry.vcDetails) === null || _entry$vcDetails4 === void 0 ? void 0 : _entry$vcDetails4[key].t;
45
+ if (typeof duration !== 'number') {
46
+ return;
47
+ }
48
+ performance.measure("VC".concat(key), {
49
+ start: start,
50
+ duration: duration,
51
+ detail: {
52
+ devtools: {
53
+ track: "VC ".concat(entry.revision),
54
+ trackGroup: '🛸 reactUFO metrics',
55
+ color: key === '90' ? 'tertiary' : 'primary-light'
56
+ }
57
+ }
58
+ });
59
+ });
60
+ });
61
+ } catch (error) {}
62
+ };
@@ -621,6 +621,7 @@ function finishInteraction(id, data) {
621
621
  data.end = endTime;
622
622
  try {
623
623
  // for Firefox 102 and older
624
+
624
625
  if ((0, _platformFeatureFlags.fg)('ufo_chrome_devtools_uplift')) {
625
626
  performance.measure("\uD83D\uDEF8 [".concat(data.type, "] ").concat(data.ufoName, " [ttai]"), {
626
627
  start: data.start,
@@ -633,6 +634,14 @@ function finishInteraction(id, data) {
633
634
  }
634
635
  }
635
636
  });
637
+ performance.mark("TTAI", {
638
+ startTime: data.end,
639
+ detail: {
640
+ devtools: {
641
+ dataType: 'marker'
642
+ }
643
+ }
644
+ });
636
645
  } else {
637
646
  performance.measure("\uD83D\uDEF8 [".concat(data.type, "] ").concat(data.ufoName, " [ttai]"), {
638
647
  start: data.start,
@@ -925,8 +934,7 @@ function addNewInteraction(interactionId, ufoName, type, startTime, rate, labelS
925
934
  oldDomUpdates: config.vc.oldDomUpdates,
926
935
  devToolsEnabled: config.vc.devToolsEnabled,
927
936
  selectorConfig: config.vc.selectorConfig,
928
- ssrEnablePageLayoutPlaceholder: config.vc.ssrEnablePageLayoutPlaceholder,
929
- disableSizeAndPositionCheck: config.vc.disableSizeAndPositionCheck
937
+ ssrEnablePageLayoutPlaceholder: config.vc.ssrEnablePageLayoutPlaceholder
930
938
  };
931
939
  vcObserver = (0, _vc.newVCObserver)(vcOptions);
932
940
  }
@@ -1074,6 +1082,14 @@ function addApdexToAll(apdex) {
1074
1082
  }
1075
1083
  }
1076
1084
  });
1085
+ performance.mark("[bm3] TTI", {
1086
+ startTime: apdex.stopTime,
1087
+ detail: {
1088
+ devtools: {
1089
+ dataType: 'marker'
1090
+ }
1091
+ }
1092
+ });
1077
1093
  } else {
1078
1094
  var _apdex$startTime2;
1079
1095
  performance.measure("\uD83D\uDEF8 ".concat(apdex.key, " [bm3_tti]"), {
@@ -1108,6 +1124,14 @@ function addApdex(interactionId, apdexInfo) {
1108
1124
  }
1109
1125
  }
1110
1126
  });
1127
+ performance.mark("[bm3] TTI", {
1128
+ startTime: apdexInfo.stopTime,
1129
+ detail: {
1130
+ devtools: {
1131
+ dataType: 'marker'
1132
+ }
1133
+ }
1134
+ });
1111
1135
  } else {
1112
1136
  var _apdexInfo$startTime2;
1113
1137
  performance.measure("\uD83D\uDEF8 ".concat(apdexInfo.key, " [bm3_tti]"), {
@@ -95,8 +95,7 @@ function init(analyticsWebClientAsync, config) {
95
95
  oldDomUpdates: config.vc.oldDomUpdates,
96
96
  devToolsEnabled: config.vc.devToolsEnabled,
97
97
  selectorConfig: config.vc.selectorConfig,
98
- ssrEnablePageLayoutPlaceholder: config.vc.ssrEnablePageLayoutPlaceholder,
99
- disableSizeAndPositionCheck: config.vc.disableSizeAndPositionCheck
98
+ ssrEnablePageLayoutPlaceholder: config.vc.ssrEnablePageLayoutPlaceholder
100
99
  };
101
100
  _interactionMetrics.postInteractionLog.initializeVCObserver(vcOptions);
102
101
  if (config !== null && config !== void 0 && (_config$experimentalI = config.experimentalInteractionMetrics) !== null && _config$experimentalI !== void 0 && _config$experimentalI.enabled) {
@@ -14,7 +14,6 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
16
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
18
17
  var _config = require("../config");
19
18
  var _noOpVcObserver = require("./no-op-vc-observer");
20
19
  var _vcObserver = require("./vc-observer");
@@ -26,7 +25,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
26
25
  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; }
27
26
  var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
28
27
  function VCObserverWrapper() {
29
- var _opts$ssrEnablePageLa, _opts$disableSizeAndP;
28
+ var _opts$ssrEnablePageLa;
30
29
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
31
30
  (0, _classCallCheck2.default)(this, VCObserverWrapper);
32
31
  this.newVCObserver = null;
@@ -34,23 +33,15 @@ var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
34
33
 
35
34
  // Initialize SSR placeholder handler once
36
35
  this.ssrPlaceholderHandler = new _ssrPlaceholders.SSRPlaceholderHandlers({
37
- enablePageLayoutPlaceholder: (_opts$ssrEnablePageLa = opts.ssrEnablePageLayoutPlaceholder) !== null && _opts$ssrEnablePageLa !== void 0 ? _opts$ssrEnablePageLa : false,
38
- disableSizeAndPositionCheck: (_opts$disableSizeAndP = opts.disableSizeAndPositionCheck) !== null && _opts$disableSizeAndP !== void 0 ? _opts$disableSizeAndP : {
39
- v: false,
40
- h: false
41
- }
36
+ enablePageLayoutPlaceholder: (_opts$ssrEnablePageLa = opts.ssrEnablePageLayoutPlaceholder) !== null && _opts$ssrEnablePageLa !== void 0 ? _opts$ssrEnablePageLa : false
42
37
  });
43
38
  if ((0, _config.isVCRevisionEnabled)('fy25.03')) {
44
- var _opts$ssrEnablePageLa2, _opts$disableSizeAndP2;
39
+ var _opts$ssrEnablePageLa2;
45
40
  this.newVCObserver = new _vcObserverNew.default({
46
41
  selectorConfig: opts.selectorConfig,
47
42
  isPostInteraction: opts.isPostInteraction,
48
43
  SSRConfig: {
49
- enablePageLayoutPlaceholder: (_opts$ssrEnablePageLa2 = opts.ssrEnablePageLayoutPlaceholder) !== null && _opts$ssrEnablePageLa2 !== void 0 ? _opts$ssrEnablePageLa2 : false,
50
- disableSizeAndPositionCheck: (_opts$disableSizeAndP2 = opts.disableSizeAndPositionCheck) !== null && _opts$disableSizeAndP2 !== void 0 ? _opts$disableSizeAndP2 : {
51
- v: false,
52
- h: false
53
- }
44
+ enablePageLayoutPlaceholder: (_opts$ssrEnablePageLa2 = opts.ssrEnablePageLayoutPlaceholder) !== null && _opts$ssrEnablePageLa2 !== void 0 ? _opts$ssrEnablePageLa2 : false
54
45
  },
55
46
  ssrPlaceholderHandler: this.ssrPlaceholderHandler
56
47
  });
@@ -169,17 +160,16 @@ var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
169
160
  _context.t1 = [];
170
161
  case 16:
171
162
  v3Result = _context.t1;
172
- (0, _platformFeatureFlags.fg)('ufo_chrome_devtools_uplift') && this.addPerformanceMeasures(param.start, [].concat((0, _toConsumableArray2.default)((v1v2Result === null || v1v2Result === void 0 ? void 0 : v1v2Result['ufo:vc:rev']) || []), (0, _toConsumableArray2.default)(v3Result !== null && v3Result !== void 0 ? v3Result : [])));
173
163
  if (v3Result) {
174
- _context.next = 20;
164
+ _context.next = 19;
175
165
  break;
176
166
  }
177
167
  return _context.abrupt("return", v1v2Result !== null && v1v2Result !== void 0 ? v1v2Result : {});
178
- case 20:
168
+ case 19:
179
169
  return _context.abrupt("return", _objectSpread(_objectSpread({}, v1v2Result), {}, {
180
170
  'ufo:vc:rev': [].concat((0, _toConsumableArray2.default)((_ref2 = v1v2Result === null || v1v2Result === void 0 ? void 0 : v1v2Result['ufo:vc:rev']) !== null && _ref2 !== void 0 ? _ref2 : []), (0, _toConsumableArray2.default)(v3Result !== null && v3Result !== void 0 ? v3Result : []))
181
171
  }));
182
- case 21:
172
+ case 20:
183
173
  case "end":
184
174
  return _context.stop();
185
175
  }
@@ -216,48 +206,6 @@ var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
216
206
  value: function collectSSRPlaceholders() {
217
207
  this.ssrPlaceholderHandler.collectExistingPlaceholders();
218
208
  }
219
- }, {
220
- key: "addPerformanceMeasures",
221
- value: function addPerformanceMeasures(start, measures) {
222
- try {
223
- measures.forEach(function (entry) {
224
- var _entry$vcDetails;
225
- if (!entry || !entry.vcDetails) {
226
- return;
227
- }
228
- var VCParts = Object.keys(entry.vcDetails);
229
- performance.measure("VC90 (".concat(entry.revision, ")"), {
230
- start: start,
231
- duration: (_entry$vcDetails = entry.vcDetails) === null || _entry$vcDetails === void 0 || (_entry$vcDetails = _entry$vcDetails['90']) === null || _entry$vcDetails === void 0 ? void 0 : _entry$vcDetails.t,
232
- detail: {
233
- devtools: {
234
- track: "main metrics",
235
- trackGroup: '🛸 reactUFO metrics',
236
- color: 'tertiary'
237
- }
238
- }
239
- });
240
- VCParts.forEach(function (key) {
241
- var _entry$vcDetails2;
242
- var duration = (_entry$vcDetails2 = entry.vcDetails) === null || _entry$vcDetails2 === void 0 ? void 0 : _entry$vcDetails2[key].t;
243
- if (typeof duration !== 'number') {
244
- return;
245
- }
246
- performance.measure("VC".concat(key), {
247
- start: start,
248
- duration: duration,
249
- detail: {
250
- devtools: {
251
- track: "VC ".concat(entry.revision),
252
- trackGroup: '🛸 reactUFO metrics',
253
- color: key === '90' ? 'tertiary' : 'primary-light'
254
- }
255
- }
256
- });
257
- });
258
- });
259
- } catch (error) {}
260
- }
261
209
  }]);
262
210
  }(); // Some products set this variable to indicate it is running in SSR
263
211
  var isServer = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.__SERVER__);
@@ -461,7 +461,6 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
461
461
  this.devToolsEnabled = options.devToolsEnabled || false;
462
462
  this.oldDomUpdatesEnabled = options.oldDomUpdates || false;
463
463
  var ssrEnablePageLayoutPlaceholder = options.ssrEnablePageLayoutPlaceholder,
464
- disableSizeAndPositionCheck = options.disableSizeAndPositionCheck,
465
464
  ssrPlaceholderHandler = options.ssrPlaceholderHandler;
466
465
  this.observers = new _observers.Observers({
467
466
  selectorConfig: options.selectorConfig || {
@@ -472,8 +471,7 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
472
471
  dataVC: true
473
472
  },
474
473
  SSRConfig: {
475
- enablePageLayoutPlaceholder: ssrEnablePageLayoutPlaceholder || false,
476
- disableSizeAndPositionCheck: disableSizeAndPositionCheck
474
+ enablePageLayoutPlaceholder: ssrEnablePageLayoutPlaceholder || false
477
475
  },
478
476
  ssrPlaceholderHandler: ssrPlaceholderHandler
479
477
  });
@@ -77,10 +77,9 @@ var Observers = exports.Observers = /*#__PURE__*/function () {
77
77
  if (opts.ssrPlaceholderHandler) {
78
78
  this.ssrPlaceholderHandler = opts.ssrPlaceholderHandler;
79
79
  } else {
80
- var _opts$SSRConfig, _opts$SSRConfig2;
80
+ var _opts$SSRConfig;
81
81
  this.ssrPlaceholderHandler = new _ssrPlaceholders.SSRPlaceholderHandlers({
82
- enablePageLayoutPlaceholder: (_opts$SSRConfig = opts.SSRConfig) === null || _opts$SSRConfig === void 0 ? void 0 : _opts$SSRConfig.enablePageLayoutPlaceholder,
83
- disableSizeAndPositionCheck: (_opts$SSRConfig2 = opts.SSRConfig) === null || _opts$SSRConfig2 === void 0 ? void 0 : _opts$SSRConfig2.disableSizeAndPositionCheck
82
+ enablePageLayoutPlaceholder: (_opts$SSRConfig = opts.SSRConfig) === null || _opts$SSRConfig === void 0 ? void 0 : _opts$SSRConfig.enablePageLayoutPlaceholder
84
83
  });
85
84
  }
86
85
  }
@@ -14,12 +14,7 @@ var SSRPlaceholderHandlers = exports.SSRPlaceholderHandlers = /*#__PURE__*/funct
14
14
  function SSRPlaceholderHandlers(_ref) {
15
15
  var _this = this;
16
16
  var _ref$enablePageLayout = _ref.enablePageLayoutPlaceholder,
17
- enablePageLayoutPlaceholder = _ref$enablePageLayout === void 0 ? false : _ref$enablePageLayout,
18
- _ref$disableSizeAndPo = _ref.disableSizeAndPositionCheck,
19
- disableSizeAndPositionCheck = _ref$disableSizeAndPo === void 0 ? {
20
- v: false,
21
- h: false
22
- } : _ref$disableSizeAndPo;
17
+ enablePageLayoutPlaceholder = _ref$enablePageLayout === void 0 ? false : _ref$enablePageLayout;
23
18
  (0, _classCallCheck2.default)(this, SSRPlaceholderHandlers);
24
19
  (0, _defineProperty2.default)(this, "staticPlaceholders", new Map());
25
20
  (0, _defineProperty2.default)(this, "callbacks", new Map());
@@ -108,7 +103,6 @@ var SSRPlaceholderHandlers = exports.SSRPlaceholderHandlers = /*#__PURE__*/funct
108
103
  });
109
104
  }
110
105
  this.enablePageLayoutPlaceholder = enablePageLayoutPlaceholder;
111
- this.disableSizeAndPositionCheck = disableSizeAndPositionCheck;
112
106
  if (window.document) {
113
107
  try {
114
108
  // Collect initial placeholders using SSR dimensions
@@ -266,15 +260,11 @@ var SSRPlaceholderHandlers = exports.SSRPlaceholderHandlers = /*#__PURE__*/funct
266
260
  }, {
267
261
  key: "hasSameSizePosition",
268
262
  value: function hasSameSizePosition(rect, boundingClientRect) {
269
- var _this$disableSizeAndP, _this$disableSizeAndP2;
270
- if ((_this$disableSizeAndP = this.disableSizeAndPositionCheck) !== null && _this$disableSizeAndP !== void 0 && _this$disableSizeAndP.v && (_this$disableSizeAndP2 = this.disableSizeAndPositionCheck) !== null && _this$disableSizeAndP2 !== void 0 && _this$disableSizeAndP2.h) {
271
- return true;
272
- }
273
263
  if (!rect) {
274
264
  return false;
275
265
  }
276
- var horizontalCheck = this.disableSizeAndPositionCheck.h ? true : Math.abs(rect.x - boundingClientRect.x) < this.EQUALITY_THRESHOLD && Math.abs(rect.width - boundingClientRect.width) < this.EQUALITY_THRESHOLD;
277
- var verticalCheck = this.disableSizeAndPositionCheck.v ? true : Math.abs(rect.y - boundingClientRect.y) < this.EQUALITY_THRESHOLD && Math.abs(rect.height - boundingClientRect.height) < this.EQUALITY_THRESHOLD;
266
+ var horizontalCheck = Math.abs(rect.x - boundingClientRect.x) < this.EQUALITY_THRESHOLD && Math.abs(rect.width - boundingClientRect.width) < this.EQUALITY_THRESHOLD;
267
+ var verticalCheck = Math.abs(rect.y - boundingClientRect.y) < this.EQUALITY_THRESHOLD && Math.abs(rect.height - boundingClientRect.height) < this.EQUALITY_THRESHOLD;
278
268
  return horizontalCheck && verticalCheck || false;
279
269
  }
280
270
  }, {
@@ -56,13 +56,9 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
56
56
  if (config.ssrPlaceholderHandler) {
57
57
  this.ssrPlaceholderHandler = config.ssrPlaceholderHandler;
58
58
  } else {
59
- var _config$SSRConfig$ena, _config$SSRConfig, _config$SSRConfig$dis, _config$SSRConfig2;
59
+ var _config$SSRConfig$ena, _config$SSRConfig;
60
60
  this.ssrPlaceholderHandler = new _ssrPlaceholders.SSRPlaceholderHandlers({
61
- enablePageLayoutPlaceholder: (_config$SSRConfig$ena = (_config$SSRConfig = config.SSRConfig) === null || _config$SSRConfig === void 0 ? void 0 : _config$SSRConfig.enablePageLayoutPlaceholder) !== null && _config$SSRConfig$ena !== void 0 ? _config$SSRConfig$ena : false,
62
- disableSizeAndPositionCheck: (_config$SSRConfig$dis = (_config$SSRConfig2 = config.SSRConfig) === null || _config$SSRConfig2 === void 0 ? void 0 : _config$SSRConfig2.disableSizeAndPositionCheck) !== null && _config$SSRConfig$dis !== void 0 ? _config$SSRConfig$dis : {
63
- v: false,
64
- h: false
65
- }
61
+ enablePageLayoutPlaceholder: (_config$SSRConfig$ena = (_config$SSRConfig = config.SSRConfig) === null || _config$SSRConfig === void 0 ? void 0 : _config$SSRConfig.enablePageLayoutPlaceholder) !== null && _config$SSRConfig$ena !== void 0 ? _config$SSRConfig$ena : false
66
62
  });
67
63
  }
68
64
  this.viewportObserver = new _viewportObserver.default({
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
@@ -16,8 +17,9 @@ var _rllPlaceholders = require("../../vc-observer/observers/rll-placeholders");
16
17
  var _intersectionObserver = require("./intersection-observer");
17
18
  var _mutationObserver = _interopRequireDefault(require("./mutation-observer"));
18
19
  var _performanceObserver = _interopRequireDefault(require("./performance-observer"));
19
- var _checkWithinComponentAndExtractChildProps = _interopRequireDefault(require("./utils/check-within-component-and-extract-child-props"));
20
+ var _checkWithinComponent2 = _interopRequireWildcard(require("./utils/check-within-component"));
20
21
  var _isInVcIgnoreIfNoLayoutShiftMarker = _interopRequireDefault(require("./utils/is-in-vc-ignore-if-no-layout-shift-marker"));
22
+ 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); }
21
23
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
22
24
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
23
25
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -229,7 +231,7 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
229
231
  (_this$intersectionObs6 = _this.intersectionObserver) === null || _this$intersectionObs6 === void 0 || _this$intersectionObs6.watchAndTag(addedNode, 'mutation:media');
230
232
  return _context.abrupt("return", 0);
231
233
  case 44:
232
- _checkWithinComponent = (0, _checkWithinComponentAndExtractChildProps.default)(addedNode, 'UFOThirdPartySegment'), isWithinThirdPartySegment = _checkWithinComponent.isWithin;
234
+ _checkWithinComponent = (0, _checkWithinComponent2.default)(addedNode, 'UFOThirdPartySegment', _this.mapIs3pResult), isWithinThirdPartySegment = _checkWithinComponent.isWithin;
233
235
  if (!isWithinThirdPartySegment) {
234
236
  _context.next = 48;
235
237
  break;
@@ -326,18 +328,6 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
326
328
  }
327
329
  };
328
330
  }
329
- var _checkWithinComponent2 = (0, _checkWithinComponentAndExtractChildProps.default)(target, 'UFOThirdPartySegment'),
330
- isWithinThirdPartySegment = _checkWithinComponent2.isWithin;
331
- if (isWithinThirdPartySegment) {
332
- return {
333
- type: 'mutation:third-party-element',
334
- mutationData: {
335
- attributeName: attributeName,
336
- oldValue: oldValue,
337
- newValue: newValue
338
- }
339
- };
340
- }
341
331
  var lastElementRect = _this.mapVisibleNodeRects.get(target);
342
332
  if (lastElementRect && sameRectSize(rect, lastElementRect)) {
343
333
  return {
@@ -358,6 +348,7 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
358
348
  }
359
349
  };
360
350
  });
351
+ // }
361
352
  });
362
353
  (0, _defineProperty2.default)(this, "handleLayoutShift", function (_ref8) {
363
354
  var time = _ref8.time,
@@ -386,6 +377,7 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
386
377
  }
387
378
  });
388
379
  this.mapVisibleNodeRects = new WeakMap();
380
+ this.mapIs3pResult = new WeakMap();
389
381
  this.onChange = onChange;
390
382
  this.isStarted = false;
391
383
  this.intersectionObserver = null;
@@ -446,6 +438,8 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
446
438
  (_this$intersectionObs0 = this.intersectionObserver) === null || _this$intersectionObs0 === void 0 || _this$intersectionObs0.disconnect();
447
439
  (_this$performanceObse2 = this.performanceObserver) === null || _this$performanceObse2 === void 0 || _this$performanceObse2.disconnect();
448
440
  this.isStarted = false;
441
+ // Clean up caches when stopping
442
+ (0, _checkWithinComponent2.cleanupCaches)(this.mapIs3pResult);
449
443
  }
450
444
  }]);
451
445
  }();
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = checkFiberWithinComponent;
8
+ var _getComponentName = _interopRequireDefault(require("./get-component-name"));
9
+ // Helper to check fiber within component
10
+ function checkFiberWithinComponent(fiber, targetComponentName, maxLevel) {
11
+ // Stop when no more levels to traverse
12
+ if (maxLevel <= 0) {
13
+ return false;
14
+ }
15
+ if (!fiber) {
16
+ return false;
17
+ }
18
+ var componentName = (0, _getComponentName.default)(fiber);
19
+ if (componentName === targetComponentName) {
20
+ return true;
21
+ }
22
+
23
+ // Recursively traverse up the fiber tree
24
+ return checkFiberWithinComponent(fiber.return, targetComponentName, maxLevel - 1);
25
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.cleanupCaches = cleanupCaches;
8
+ exports.default = checkWithinComponent;
9
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
+ var _coinflip = _interopRequireDefault(require("../../../../coinflip"));
11
+ var _checkFiberWithinComponent = _interopRequireDefault(require("./check-fiber-within-component"));
12
+ var _findFiberWithCache = _interopRequireDefault(require("./find-fiber-with-cache"));
13
+ var _findReactFiber = _interopRequireDefault(require("./find-react-fiber"));
14
+ var DEFAULT_MAX_LEVEL = 20;
15
+
16
+ // Cache cleanup
17
+ var callCount = 0;
18
+ var CLEANUP_THRESHOLD = 50;
19
+ function maybeCleanup(resultCache) {
20
+ callCount++;
21
+ if (callCount >= CLEANUP_THRESHOLD && (0, _coinflip.default)(0.3)) {
22
+ cleanupCaches(resultCache);
23
+ }
24
+ }
25
+ function cleanupCaches(resultCache) {
26
+ resultCache = new WeakMap();
27
+ callCount = 0;
28
+ }
29
+ function checkWithinComponent(node, targetComponentName, resultCache) {
30
+ maybeCleanup(resultCache);
31
+ if (resultCache.has(node)) {
32
+ var _resultCache$get;
33
+ return {
34
+ isWithin: (_resultCache$get = resultCache.get(node)) !== null && _resultCache$get !== void 0 ? _resultCache$get : false
35
+ };
36
+ }
37
+ var fiber = null;
38
+ var checkedNodes = [];
39
+ if ((0, _platformFeatureFlags.fg)('platform_ufo_handle_non_react_element_for_3p')) {
40
+ fiber = (0, _findFiberWithCache.default)(node, DEFAULT_MAX_LEVEL, checkedNodes);
41
+ } else {
42
+ fiber = (0, _findReactFiber.default)(node);
43
+ }
44
+ if (!fiber) {
45
+ if ((0, _platformFeatureFlags.fg)('platform_ufo_handle_non_react_element_for_3p')) {
46
+ checkedNodes.forEach(function (checkedNode) {
47
+ resultCache.set(checkedNode, false);
48
+ });
49
+ }
50
+ return {
51
+ isWithin: false
52
+ };
53
+ }
54
+ var isWithin = (0, _checkFiberWithinComponent.default)(fiber, targetComponentName, DEFAULT_MAX_LEVEL);
55
+ if ((0, _platformFeatureFlags.fg)('platform_ufo_handle_non_react_element_for_3p')) {
56
+ checkedNodes.forEach(function (checkedNode) {
57
+ resultCache.set(checkedNode, isWithin);
58
+ });
59
+ }
60
+ return {
61
+ isWithin: isWithin
62
+ };
63
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = findFiberWithCache;
8
+ var _findReactFiber = _interopRequireDefault(require("./find-react-fiber"));
9
+ function findFiberWithCache(element, maxLevel, checkedNodes) {
10
+ // Stop when no more levels to traverse
11
+ if (maxLevel <= 0) {
12
+ return null;
13
+ }
14
+ checkedNodes.push(element);
15
+ var fiber = (0, _findReactFiber.default)(element);
16
+ if (fiber) {
17
+ return fiber;
18
+ }
19
+
20
+ // Walk up the DOM tree to find the fiber
21
+ var parent = element.parentElement;
22
+ if (!parent) {
23
+ return null;
24
+ }
25
+
26
+ // Recursively check parent
27
+ return findFiberWithCache(parent, maxLevel - 1, checkedNodes);
28
+ }