@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.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/create-payload/index.js +22 -4
- package/dist/cjs/create-payload/utils/add-performance-measures.js +62 -0
- package/dist/cjs/interaction-metrics/index.js +26 -2
- package/dist/cjs/interaction-metrics-init/index.js +1 -2
- package/dist/cjs/vc/index.js +7 -59
- package/dist/cjs/vc/vc-observer/index.js +1 -3
- package/dist/cjs/vc/vc-observer/observers/index.js +2 -3
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +3 -13
- package/dist/cjs/vc/vc-observer-new/index.js +2 -6
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +8 -14
- package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +25 -0
- package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +63 -0
- package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +28 -0
- package/dist/es2019/create-payload/index.js +21 -3
- package/dist/es2019/create-payload/utils/add-performance-measures.js +54 -0
- package/dist/es2019/interaction-metrics/index.js +26 -2
- package/dist/es2019/interaction-metrics-init/index.js +1 -2
- package/dist/es2019/vc/index.js +4 -54
- package/dist/es2019/vc/vc-observer/index.js +1 -3
- package/dist/es2019/vc/vc-observer/observers/index.js +2 -3
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +3 -12
- package/dist/es2019/vc/vc-observer-new/index.js +2 -6
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +6 -15
- package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +19 -0
- package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +55 -0
- package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +21 -0
- package/dist/esm/create-payload/index.js +22 -4
- package/dist/esm/create-payload/utils/add-performance-measures.js +56 -0
- package/dist/esm/interaction-metrics/index.js +26 -2
- package/dist/esm/interaction-metrics-init/index.js +1 -2
- package/dist/esm/vc/index.js +7 -59
- package/dist/esm/vc/vc-observer/index.js +1 -3
- package/dist/esm/vc/vc-observer/observers/index.js +2 -3
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +3 -13
- package/dist/esm/vc/vc-observer-new/index.js +2 -6
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +6 -14
- package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +19 -0
- package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +55 -0
- package/dist/esm/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +21 -0
- package/dist/types/config/index.d.ts +0 -4
- package/dist/types/create-payload/utils/add-performance-measures.d.ts +2 -0
- package/dist/types/ssr/index.d.ts +7 -1
- package/dist/types/vc/index.d.ts +0 -1
- package/dist/types/vc/types.d.ts +0 -4
- package/dist/types/vc/vc-observer/observers/index.d.ts +0 -4
- package/dist/types/vc/vc-observer/observers/ssr-placeholders/index.d.ts +1 -7
- package/dist/types/vc/vc-observer-new/index.d.ts +0 -4
- package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +1 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.d.ts +1 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-within-component.d.ts +4 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.d.ts +1 -0
- package/dist/types-ts4.5/config/index.d.ts +0 -4
- package/dist/types-ts4.5/create-payload/utils/add-performance-measures.d.ts +2 -0
- package/dist/types-ts4.5/ssr/index.d.ts +7 -1
- package/dist/types-ts4.5/vc/index.d.ts +0 -1
- package/dist/types-ts4.5/vc/types.d.ts +0 -4
- package/dist/types-ts4.5/vc/vc-observer/observers/index.d.ts +0 -4
- package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/index.d.ts +1 -7
- package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +0 -4
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +1 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.d.ts +1 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/check-within-component.d.ts +4 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -69
- package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -60
- package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -62
- package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.d.ts +0 -8
- 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:
|
|
624
|
-
isUFOConfigSSRDoneAsFmp:
|
|
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
|
|
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) {
|
package/dist/cjs/vc/index.js
CHANGED
|
@@ -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
|
|
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
|
|
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 =
|
|
164
|
+
_context.next = 19;
|
|
175
165
|
break;
|
|
176
166
|
}
|
|
177
167
|
return _context.abrupt("return", v1v2Result !== null && v1v2Result !== void 0 ? v1v2Result : {});
|
|
178
|
-
case
|
|
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
|
|
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
|
|
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 =
|
|
277
|
-
var verticalCheck =
|
|
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
|
|
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
|
|
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,
|
|
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
|
+
}
|