@atlaskit/react-ufo 3.14.6 → 3.14.8
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-experimental-interaction-metrics-payload/index.js +14 -12
- package/dist/cjs/create-payload/utils/get-vc-metrics.js +17 -13
- package/dist/cjs/interaction-metrics/index.js +35 -15
- package/dist/cjs/interaction-metrics-init/index.js +5 -3
- package/dist/cjs/vc/index.js +46 -6
- package/dist/cjs/vc/vc-observer/index.js +10 -2
- package/dist/cjs/vc/vc-observer/observers/index.js +12 -7
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +76 -40
- package/dist/cjs/vc/vc-observer-new/index.js +84 -0
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +214 -71
- package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +97 -59
- package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +4 -2
- package/dist/es2019/create-payload/utils/get-vc-metrics.js +10 -4
- package/dist/es2019/interaction-metrics/index.js +36 -16
- package/dist/es2019/interaction-metrics-init/index.js +5 -3
- package/dist/es2019/vc/index.js +42 -5
- package/dist/es2019/vc/vc-observer/index.js +8 -2
- package/dist/es2019/vc/vc-observer/observers/index.js +11 -5
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +57 -26
- package/dist/es2019/vc/vc-observer-new/index.js +67 -1
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +87 -22
- package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +50 -34
- package/dist/esm/create-experimental-interaction-metrics-payload/index.js +14 -12
- package/dist/esm/create-payload/utils/get-vc-metrics.js +17 -13
- package/dist/esm/interaction-metrics/index.js +36 -16
- package/dist/esm/interaction-metrics-init/index.js +5 -3
- package/dist/esm/vc/index.js +45 -6
- package/dist/esm/vc/vc-observer/index.js +10 -2
- package/dist/esm/vc/vc-observer/observers/index.js +12 -7
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +76 -40
- package/dist/esm/vc/vc-observer-new/index.js +84 -0
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +214 -71
- package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +97 -59
- package/dist/types/common/common/types.d.ts +4 -1
- package/dist/types/vc/index.d.ts +3 -0
- package/dist/types/vc/types.d.ts +2 -0
- package/dist/types/vc/vc-observer/index.d.ts +1 -0
- package/dist/types/vc/vc-observer/observers/index.d.ts +2 -0
- package/dist/types/vc/vc-observer/observers/ssr-placeholders/index.d.ts +6 -0
- package/dist/types/vc/vc-observer-new/index.d.ts +30 -0
- package/dist/types/vc/vc-observer-new/types.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +5 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -0
- package/dist/types-ts4.5/common/common/types.d.ts +4 -1
- package/dist/types-ts4.5/vc/index.d.ts +3 -0
- package/dist/types-ts4.5/vc/types.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer/index.d.ts +1 -0
- package/dist/types-ts4.5/vc/vc-observer/observers/index.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/index.d.ts +6 -0
- package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +30 -0
- package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +5 -1
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -0
- package/package.json +11 -6
|
@@ -13,6 +13,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
13
13
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
15
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
|
+
var _ssrPlaceholders = require("../vc-observer/observers/ssr-placeholders");
|
|
16
17
|
var _entriesTimeline = _interopRequireDefault(require("./entries-timeline"));
|
|
17
18
|
var _getElementName2 = _interopRequireDefault(require("./get-element-name"));
|
|
18
19
|
var _fy25_ = _interopRequireDefault(require("./metric-calculator/fy25_03"));
|
|
@@ -20,6 +21,11 @@ var _getViewportHeight = _interopRequireDefault(require("./metric-calculator/uti
|
|
|
20
21
|
var _getViewportWidth = _interopRequireDefault(require("./metric-calculator/utils/get-viewport-width"));
|
|
21
22
|
var _viewportObserver = _interopRequireDefault(require("./viewport-observer"));
|
|
22
23
|
var _windowEventObserver = _interopRequireDefault(require("./window-event-observer"));
|
|
24
|
+
var SSRState = {
|
|
25
|
+
normal: 1,
|
|
26
|
+
waitingForFirstRender: 2,
|
|
27
|
+
ignoring: 3
|
|
28
|
+
};
|
|
23
29
|
var DEFAULT_SELECTOR_CONFIG = {
|
|
24
30
|
id: false,
|
|
25
31
|
testId: true,
|
|
@@ -35,9 +41,31 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
35
41
|
(0, _classCallCheck2.default)(this, VCObserverNew);
|
|
36
42
|
(0, _defineProperty2.default)(this, "viewportObserver", null);
|
|
37
43
|
(0, _defineProperty2.default)(this, "windowEventObserver", null);
|
|
44
|
+
// SSR related properties
|
|
45
|
+
(0, _defineProperty2.default)(this, "ssrPlaceholderHandler", null);
|
|
46
|
+
(0, _defineProperty2.default)(this, "ssr", {
|
|
47
|
+
state: SSRState.normal,
|
|
48
|
+
reactRootElement: null,
|
|
49
|
+
renderStart: -1,
|
|
50
|
+
renderStop: -1
|
|
51
|
+
});
|
|
38
52
|
this.entriesTimeline = new _entriesTimeline.default();
|
|
39
53
|
this.isPostInteraction = (_config$isPostInterac = config.isPostInteraction) !== null && _config$isPostInterac !== void 0 ? _config$isPostInterac : false;
|
|
40
54
|
this.selectorConfig = (_config$selectorConfi = config.selectorConfig) !== null && _config$selectorConfi !== void 0 ? _config$selectorConfi : DEFAULT_SELECTOR_CONFIG;
|
|
55
|
+
|
|
56
|
+
// Use shared SSR placeholder handler if provided, otherwise create new one if feature flag is enabled
|
|
57
|
+
if (config.ssrPlaceholderHandler) {
|
|
58
|
+
this.ssrPlaceholderHandler = config.ssrPlaceholderHandler;
|
|
59
|
+
} else {
|
|
60
|
+
var _config$SSRConfig$ena, _config$SSRConfig, _config$SSRConfig$dis, _config$SSRConfig2;
|
|
61
|
+
this.ssrPlaceholderHandler = new _ssrPlaceholders.SSRPlaceholderHandlers({
|
|
62
|
+
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,
|
|
63
|
+
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 : {
|
|
64
|
+
v: false,
|
|
65
|
+
h: false
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
41
69
|
this.viewportObserver = new _viewportObserver.default({
|
|
42
70
|
onChange: function onChange(onChangeArg) {
|
|
43
71
|
var time = onChangeArg.time,
|
|
@@ -65,6 +93,13 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
65
93
|
newValue: mutationData === null || mutationData === void 0 ? void 0 : mutationData.newValue
|
|
66
94
|
}
|
|
67
95
|
});
|
|
96
|
+
},
|
|
97
|
+
// Pass SSR context to ViewportObserver
|
|
98
|
+
getSSRState: function getSSRState() {
|
|
99
|
+
return _this.getSSRState();
|
|
100
|
+
},
|
|
101
|
+
getSSRPlaceholderHandler: function getSSRPlaceholderHandler() {
|
|
102
|
+
return _this.getSSRPlaceholderHandler();
|
|
68
103
|
}
|
|
69
104
|
});
|
|
70
105
|
this.windowEventObserver = new _windowEventObserver.default({
|
|
@@ -89,6 +124,14 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
89
124
|
_this2 = this,
|
|
90
125
|
_this$windowEventObse;
|
|
91
126
|
var startTime = _ref2.startTime;
|
|
127
|
+
// Reset SSR state on start (matches old VCObserver behavior)
|
|
128
|
+
this.ssr = {
|
|
129
|
+
state: SSRState.normal,
|
|
130
|
+
reactRootElement: null,
|
|
131
|
+
// Reset to null (matches old VCObserver)
|
|
132
|
+
renderStart: -1,
|
|
133
|
+
renderStop: -1
|
|
134
|
+
};
|
|
92
135
|
(_this$viewportObserve = this.viewportObserver) === null || _this$viewportObserve === void 0 || _this$viewportObserve.start();
|
|
93
136
|
if ((_window = window) !== null && _window !== void 0 && _window.__SSR_ABORT_LISTENERS__ && (0, _platformFeatureFlags.fg)('platform_ufo_vc_observer_new_ssr_abort_listener')) {
|
|
94
137
|
var abortListeners = window.__SSR_ABORT_LISTENERS__;
|
|
@@ -119,6 +162,47 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
119
162
|
var _this$viewportObserve2, _this$windowEventObse2;
|
|
120
163
|
(_this$viewportObserve2 = this.viewportObserver) === null || _this$viewportObserve2 === void 0 || _this$viewportObserve2.stop();
|
|
121
164
|
(_this$windowEventObse2 = this.windowEventObserver) === null || _this$windowEventObse2 === void 0 || _this$windowEventObse2.stop();
|
|
165
|
+
|
|
166
|
+
// Clear SSR state on stop (matches old VCObserver behavior)
|
|
167
|
+
this.ssr.reactRootElement = null;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// SSR related methods
|
|
171
|
+
}, {
|
|
172
|
+
key: "setReactRootElement",
|
|
173
|
+
value: function setReactRootElement(element) {
|
|
174
|
+
this.ssr.reactRootElement = element;
|
|
175
|
+
}
|
|
176
|
+
}, {
|
|
177
|
+
key: "setReactRootRenderStart",
|
|
178
|
+
value: function setReactRootRenderStart() {
|
|
179
|
+
var startTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : performance.now();
|
|
180
|
+
this.ssr.renderStart = startTime;
|
|
181
|
+
this.ssr.state = SSRState.waitingForFirstRender;
|
|
182
|
+
}
|
|
183
|
+
}, {
|
|
184
|
+
key: "setReactRootRenderStop",
|
|
185
|
+
value: function setReactRootRenderStop() {
|
|
186
|
+
var stopTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : performance.now();
|
|
187
|
+
this.ssr.renderStop = stopTime;
|
|
188
|
+
}
|
|
189
|
+
}, {
|
|
190
|
+
key: "collectSSRPlaceholders",
|
|
191
|
+
value: function collectSSRPlaceholders() {
|
|
192
|
+
// This is handled by the shared SSRPlaceholderHandlers in VCObserverWrapper
|
|
193
|
+
// Individual observers don't need to implement this
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// Internal methods for ViewportObserver to access SSR state
|
|
197
|
+
}, {
|
|
198
|
+
key: "getSSRState",
|
|
199
|
+
value: function getSSRState() {
|
|
200
|
+
return this.ssr;
|
|
201
|
+
}
|
|
202
|
+
}, {
|
|
203
|
+
key: "getSSRPlaceholderHandler",
|
|
204
|
+
value: function getSSRPlaceholderHandler() {
|
|
205
|
+
return this.ssrPlaceholderHandler;
|
|
122
206
|
}
|
|
123
207
|
}, {
|
|
124
208
|
key: "addSSR",
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -26,7 +28,7 @@ function isElementVisible(element) {
|
|
|
26
28
|
}
|
|
27
29
|
try {
|
|
28
30
|
var visible = element.checkVisibility({
|
|
29
|
-
// @ts-
|
|
31
|
+
// @ts-ignore - visibilityProperty may not exist in all TS environments
|
|
30
32
|
visibilityProperty: true,
|
|
31
33
|
contentVisibilityAuto: true,
|
|
32
34
|
opacityProperty: true
|
|
@@ -74,9 +76,13 @@ var createElementMutationsWatcher = function createElementMutationsWatcher(remov
|
|
|
74
76
|
};
|
|
75
77
|
};
|
|
76
78
|
var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
79
|
+
// SSR context functions
|
|
80
|
+
|
|
77
81
|
function ViewportObserver(_ref2) {
|
|
78
82
|
var _this = this;
|
|
79
|
-
var onChange = _ref2.onChange
|
|
83
|
+
var onChange = _ref2.onChange,
|
|
84
|
+
getSSRState = _ref2.getSSRState,
|
|
85
|
+
getSSRPlaceholderHandler = _ref2.getSSRPlaceholderHandler;
|
|
80
86
|
(0, _classCallCheck2.default)(this, ViewportObserver);
|
|
81
87
|
(0, _defineProperty2.default)(this, "handleIntersectionEntry", function (_ref3) {
|
|
82
88
|
var target = _ref3.target,
|
|
@@ -100,65 +106,198 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
100
106
|
mutationData: mutationData
|
|
101
107
|
});
|
|
102
108
|
});
|
|
103
|
-
(0, _defineProperty2.default)(this, "handleChildListMutation", function (
|
|
104
|
-
var
|
|
105
|
-
removedNodes
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
109
|
+
(0, _defineProperty2.default)(this, "handleChildListMutation", /*#__PURE__*/function () {
|
|
110
|
+
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref4) {
|
|
111
|
+
var target, addedNodes, removedNodes, timestamp, removedNodeRects, targetNode, _iterator, _step, _loop, _ret;
|
|
112
|
+
return _regenerator.default.wrap(function _callee$(_context2) {
|
|
113
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
114
|
+
case 0:
|
|
115
|
+
target = _ref4.target, addedNodes = _ref4.addedNodes, removedNodes = _ref4.removedNodes, timestamp = _ref4.timestamp;
|
|
116
|
+
removedNodeRects = removedNodes.map(function (ref) {
|
|
117
|
+
var n = ref.deref();
|
|
118
|
+
if (!n) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
return _this.mapVisibleNodeRects.get(n);
|
|
122
|
+
});
|
|
123
|
+
targetNode = target.deref();
|
|
124
|
+
_iterator = _createForOfIteratorHelper(addedNodes);
|
|
125
|
+
_context2.prev = 4;
|
|
126
|
+
_loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
|
|
127
|
+
var _this$intersectionObs8;
|
|
128
|
+
var addedNodeRef, addedNode, ssrState, SSRStateEnum, _this$intersectionObs, _this$intersectionObs2, ssrPlaceholderHandler, result, _this$intersectionObs3, _result, _this$intersectionObs4, sameDeletedNode, isInIgnoreLsMarker, isNoLsMarkerEnabled, _this$intersectionObs5, _this$intersectionObs6, _checkThirdPartySegme, isWithinThirdPartySegment, ignoredReason, _this$intersectionObs7, assignedReason;
|
|
129
|
+
return _regenerator.default.wrap(function _loop$(_context) {
|
|
130
|
+
while (1) switch (_context.prev = _context.next) {
|
|
131
|
+
case 0:
|
|
132
|
+
addedNodeRef = _step.value;
|
|
133
|
+
addedNode = addedNodeRef.deref();
|
|
134
|
+
if (addedNode) {
|
|
135
|
+
_context.next = 4;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
return _context.abrupt("return", 0);
|
|
139
|
+
case 4:
|
|
140
|
+
if (!(_this.getSSRState && (0, _platformFeatureFlags.fg)('platform_ufo_vc_v3_ssr_placeholder'))) {
|
|
141
|
+
_context.next = 19;
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
ssrState = _this.getSSRState();
|
|
145
|
+
SSRStateEnum = {
|
|
146
|
+
normal: 1,
|
|
147
|
+
waitingForFirstRender: 2,
|
|
148
|
+
ignoring: 3
|
|
149
|
+
};
|
|
150
|
+
if (!(ssrState.state === SSRStateEnum.waitingForFirstRender && timestamp > ssrState.renderStart && targetNode === ssrState.reactRootElement)) {
|
|
151
|
+
_context.next = 12;
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
ssrState.state = SSRStateEnum.ignoring;
|
|
155
|
+
if (ssrState.renderStop === -1) {
|
|
156
|
+
// arbitrary 500ms DOM update window
|
|
157
|
+
ssrState.renderStop = timestamp + 500;
|
|
158
|
+
}
|
|
159
|
+
(_this$intersectionObs = _this.intersectionObserver) === null || _this$intersectionObs === void 0 || _this$intersectionObs.watchAndTag(addedNode, 'ssr-hydration');
|
|
160
|
+
return _context.abrupt("return", 0);
|
|
161
|
+
case 12:
|
|
162
|
+
if (!(ssrState.state === SSRStateEnum.ignoring && timestamp > ssrState.renderStart && targetNode === ssrState.reactRootElement)) {
|
|
163
|
+
_context.next = 19;
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
if (!(timestamp <= ssrState.renderStop)) {
|
|
167
|
+
_context.next = 18;
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
(_this$intersectionObs2 = _this.intersectionObserver) === null || _this$intersectionObs2 === void 0 || _this$intersectionObs2.watchAndTag(addedNode, 'ssr-hydration');
|
|
171
|
+
return _context.abrupt("return", 0);
|
|
172
|
+
case 18:
|
|
173
|
+
ssrState.state = SSRStateEnum.normal;
|
|
174
|
+
case 19:
|
|
175
|
+
if (!(_this.getSSRPlaceholderHandler && (0, _platformFeatureFlags.fg)('platform_ufo_vc_v3_ssr_placeholder'))) {
|
|
176
|
+
_context.next = 36;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
ssrPlaceholderHandler = _this.getSSRPlaceholderHandler();
|
|
180
|
+
if (!ssrPlaceholderHandler) {
|
|
181
|
+
_context.next = 36;
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
if (!(ssrPlaceholderHandler.isPlaceholder(addedNode) || ssrPlaceholderHandler.isPlaceholderIgnored(addedNode))) {
|
|
185
|
+
_context.next = 29;
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
_context.next = 25;
|
|
189
|
+
return ssrPlaceholderHandler.checkIfExistedAndSizeMatching(addedNode);
|
|
190
|
+
case 25:
|
|
191
|
+
result = _context.sent;
|
|
192
|
+
if (!(result !== false)) {
|
|
193
|
+
_context.next = 29;
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
(_this$intersectionObs3 = _this.intersectionObserver) === null || _this$intersectionObs3 === void 0 || _this$intersectionObs3.watchAndTag(addedNode, 'mutation:ssr-placeholder');
|
|
197
|
+
return _context.abrupt("return", 0);
|
|
198
|
+
case 29:
|
|
199
|
+
if (!(ssrPlaceholderHandler.isPlaceholderReplacement(addedNode) || ssrPlaceholderHandler.isPlaceholderIgnored(addedNode))) {
|
|
200
|
+
_context.next = 36;
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
_context.next = 32;
|
|
204
|
+
return ssrPlaceholderHandler.validateReactComponentMatchToPlaceholder(addedNode);
|
|
205
|
+
case 32:
|
|
206
|
+
_result = _context.sent;
|
|
207
|
+
if (!(_result !== false)) {
|
|
208
|
+
_context.next = 36;
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
(_this$intersectionObs4 = _this.intersectionObserver) === null || _this$intersectionObs4 === void 0 || _this$intersectionObs4.watchAndTag(addedNode, 'mutation:ssr-placeholder');
|
|
212
|
+
return _context.abrupt("return", 0);
|
|
213
|
+
case 36:
|
|
214
|
+
sameDeletedNode = removedNodes.find(function (ref) {
|
|
215
|
+
var n = ref.deref();
|
|
216
|
+
if (!n || !addedNode) {
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
return n.isEqualNode(addedNode);
|
|
220
|
+
});
|
|
221
|
+
isInIgnoreLsMarker = (0, _isInVcIgnoreIfNoLayoutShiftMarker.default)(addedNode);
|
|
222
|
+
isNoLsMarkerEnabled = (0, _platformFeatureFlags.fg)('platform_vc_ignore_no_ls_mutation_marker'); // When fg('platform_vc_ignore_no_ls_mutation_marker') is not enabled,
|
|
223
|
+
// no layout shift mutation is excluded as per existing fy25.03 logic
|
|
224
|
+
if (!(sameDeletedNode && (!isNoLsMarkerEnabled || isInIgnoreLsMarker))) {
|
|
225
|
+
_context.next = 42;
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
(_this$intersectionObs5 = _this.intersectionObserver) === null || _this$intersectionObs5 === void 0 || _this$intersectionObs5.watchAndTag(addedNode, 'mutation:remount');
|
|
229
|
+
return _context.abrupt("return", 0);
|
|
230
|
+
case 42:
|
|
231
|
+
if (!(0, _vcUtils.isContainedWithinMediaWrapper)(addedNode)) {
|
|
232
|
+
_context.next = 45;
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
(_this$intersectionObs6 = _this.intersectionObserver) === null || _this$intersectionObs6 === void 0 || _this$intersectionObs6.watchAndTag(addedNode, 'mutation:media');
|
|
236
|
+
return _context.abrupt("return", 0);
|
|
237
|
+
case 45:
|
|
238
|
+
_checkThirdPartySegme = (0, _getComponentNameAndChildProps.checkThirdPartySegmentWithIgnoreReason)(addedNode), isWithinThirdPartySegment = _checkThirdPartySegme.isWithinThirdPartySegment, ignoredReason = _checkThirdPartySegme.ignoredReason;
|
|
239
|
+
if (!isWithinThirdPartySegment) {
|
|
240
|
+
_context.next = 50;
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
assignedReason = (0, _getComponentNameAndChildProps.createMutationTypeWithIgnoredReason)(ignoredReason || 'third-party-element');
|
|
244
|
+
(_this$intersectionObs7 = _this.intersectionObserver) === null || _this$intersectionObs7 === void 0 || _this$intersectionObs7.watchAndTag(addedNode, assignedReason);
|
|
245
|
+
return _context.abrupt("return", 0);
|
|
246
|
+
case 50:
|
|
247
|
+
(_this$intersectionObs8 = _this.intersectionObserver) === null || _this$intersectionObs8 === void 0 || _this$intersectionObs8.watchAndTag(addedNode, createElementMutationsWatcher(removedNodeRects));
|
|
248
|
+
case 51:
|
|
249
|
+
case "end":
|
|
250
|
+
return _context.stop();
|
|
251
|
+
}
|
|
252
|
+
}, _loop);
|
|
253
|
+
});
|
|
254
|
+
_iterator.s();
|
|
255
|
+
case 7:
|
|
256
|
+
if ((_step = _iterator.n()).done) {
|
|
257
|
+
_context2.next = 14;
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
return _context2.delegateYield(_loop(), "t0", 9);
|
|
261
|
+
case 9:
|
|
262
|
+
_ret = _context2.t0;
|
|
263
|
+
if (!(_ret === 0)) {
|
|
264
|
+
_context2.next = 12;
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
return _context2.abrupt("continue", 12);
|
|
268
|
+
case 12:
|
|
269
|
+
_context2.next = 7;
|
|
270
|
+
break;
|
|
271
|
+
case 14:
|
|
272
|
+
_context2.next = 19;
|
|
273
|
+
break;
|
|
274
|
+
case 16:
|
|
275
|
+
_context2.prev = 16;
|
|
276
|
+
_context2.t1 = _context2["catch"](4);
|
|
277
|
+
_iterator.e(_context2.t1);
|
|
278
|
+
case 19:
|
|
279
|
+
_context2.prev = 19;
|
|
280
|
+
_iterator.f();
|
|
281
|
+
return _context2.finish(19);
|
|
282
|
+
case 22:
|
|
283
|
+
case "end":
|
|
284
|
+
return _context2.stop();
|
|
123
285
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
var _checkThirdPartySegme = (0, _getComponentNameAndChildProps.checkThirdPartySegmentWithIgnoreReason)(addedNode),
|
|
142
|
-
isWithinThirdPartySegment = _checkThirdPartySegme.isWithinThirdPartySegment,
|
|
143
|
-
ignoredReason = _checkThirdPartySegme.ignoredReason;
|
|
144
|
-
if (isWithinThirdPartySegment) {
|
|
145
|
-
var _this$intersectionObs3;
|
|
146
|
-
var assignedReason = (0, _getComponentNameAndChildProps.createMutationTypeWithIgnoredReason)(ignoredReason || 'third-party-element');
|
|
147
|
-
(_this$intersectionObs3 = _this.intersectionObserver) === null || _this$intersectionObs3 === void 0 || _this$intersectionObs3.watchAndTag(addedNode, assignedReason);
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
(_this$intersectionObs4 = _this.intersectionObserver) === null || _this$intersectionObs4 === void 0 || _this$intersectionObs4.watchAndTag(addedNode, createElementMutationsWatcher(removedNodeRects));
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
(0, _defineProperty2.default)(this, "handleAttributeMutation", function (_ref5) {
|
|
154
|
-
var _this$intersectionObs5;
|
|
155
|
-
var target = _ref5.target,
|
|
156
|
-
attributeName = _ref5.attributeName,
|
|
157
|
-
oldValue = _ref5.oldValue,
|
|
158
|
-
newValue = _ref5.newValue;
|
|
159
|
-
(_this$intersectionObs5 = _this.intersectionObserver) === null || _this$intersectionObs5 === void 0 || _this$intersectionObs5.watchAndTag(target, function (_ref6) {
|
|
160
|
-
var target = _ref6.target,
|
|
161
|
-
rect = _ref6.rect;
|
|
286
|
+
}, _callee, null, [[4, 16, 19, 22]]);
|
|
287
|
+
}));
|
|
288
|
+
return function (_x) {
|
|
289
|
+
return _ref5.apply(this, arguments);
|
|
290
|
+
};
|
|
291
|
+
}());
|
|
292
|
+
(0, _defineProperty2.default)(this, "handleAttributeMutation", function (_ref6) {
|
|
293
|
+
var _this$intersectionObs9;
|
|
294
|
+
var target = _ref6.target,
|
|
295
|
+
attributeName = _ref6.attributeName,
|
|
296
|
+
oldValue = _ref6.oldValue,
|
|
297
|
+
newValue = _ref6.newValue;
|
|
298
|
+
(_this$intersectionObs9 = _this.intersectionObserver) === null || _this$intersectionObs9 === void 0 || _this$intersectionObs9.watchAndTag(target, function (_ref7) {
|
|
299
|
+
var target = _ref7.target,
|
|
300
|
+
rect = _ref7.rect;
|
|
162
301
|
if ((0, _vcUtils.isContainedWithinMediaWrapper)(target)) {
|
|
163
302
|
return {
|
|
164
303
|
type: 'mutation:media',
|
|
@@ -229,14 +368,14 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
229
368
|
};
|
|
230
369
|
});
|
|
231
370
|
});
|
|
232
|
-
(0, _defineProperty2.default)(this, "handleLayoutShift", function (
|
|
233
|
-
var time =
|
|
234
|
-
changedRects =
|
|
235
|
-
var
|
|
236
|
-
|
|
371
|
+
(0, _defineProperty2.default)(this, "handleLayoutShift", function (_ref8) {
|
|
372
|
+
var time = _ref8.time,
|
|
373
|
+
changedRects = _ref8.changedRects;
|
|
374
|
+
var _iterator2 = _createForOfIteratorHelper(changedRects),
|
|
375
|
+
_step2;
|
|
237
376
|
try {
|
|
238
|
-
for (
|
|
239
|
-
var changedRect =
|
|
377
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
378
|
+
var changedRect = _step2.value;
|
|
240
379
|
var target = changedRect.node;
|
|
241
380
|
if (target) {
|
|
242
381
|
_this.onChange({
|
|
@@ -250,9 +389,9 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
250
389
|
}
|
|
251
390
|
}
|
|
252
391
|
} catch (err) {
|
|
253
|
-
|
|
392
|
+
_iterator2.e(err);
|
|
254
393
|
} finally {
|
|
255
|
-
|
|
394
|
+
_iterator2.f();
|
|
256
395
|
}
|
|
257
396
|
});
|
|
258
397
|
this.mapVisibleNodeRects = new WeakMap();
|
|
@@ -261,6 +400,10 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
261
400
|
this.intersectionObserver = null;
|
|
262
401
|
this.mutationObserver = null;
|
|
263
402
|
this.performanceObserver = null;
|
|
403
|
+
|
|
404
|
+
// Initialize SSR context functions
|
|
405
|
+
this.getSSRState = getSSRState;
|
|
406
|
+
this.getSSRPlaceholderHandler = getSSRPlaceholderHandler;
|
|
264
407
|
}
|
|
265
408
|
return (0, _createClass2.default)(ViewportObserver, [{
|
|
266
409
|
key: "initializeObservers",
|
|
@@ -304,12 +447,12 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
304
447
|
}, {
|
|
305
448
|
key: "stop",
|
|
306
449
|
value: function stop() {
|
|
307
|
-
var _this$mutationObserve2, _this$
|
|
450
|
+
var _this$mutationObserve2, _this$intersectionObs0, _this$performanceObse2;
|
|
308
451
|
if (!this.isStarted) {
|
|
309
452
|
return;
|
|
310
453
|
}
|
|
311
454
|
(_this$mutationObserve2 = this.mutationObserver) === null || _this$mutationObserve2 === void 0 || _this$mutationObserve2.disconnect();
|
|
312
|
-
(_this$
|
|
455
|
+
(_this$intersectionObs0 = this.intersectionObserver) === null || _this$intersectionObs0 === void 0 || _this$intersectionObs0.disconnect();
|
|
313
456
|
(_this$performanceObse2 = this.performanceObserver) === null || _this$performanceObse2 === void 0 || _this$performanceObse2.disconnect();
|
|
314
457
|
this.isStarted = false;
|
|
315
458
|
}
|