@atlaskit/react-ufo 4.15.3 → 4.15.5
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/segment/segment.js +10 -1
- package/dist/cjs/segment/ssr-render-profiler.js +79 -0
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +7 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/vcnext/index.js +4 -1
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +290 -191
- package/dist/cjs/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +45 -2
- package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/get-mutated-elements.js +15 -4
- package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/is-zero-dimension-rectangle.js +9 -0
- package/dist/es2019/segment/segment.js +10 -1
- package/dist/es2019/segment/ssr-render-profiler.js +68 -0
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +5 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/vcnext/index.js +4 -1
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +158 -81
- package/dist/es2019/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +33 -2
- package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/get-mutated-elements.js +15 -4
- package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/is-zero-dimension-rectangle.js +3 -0
- package/dist/esm/segment/segment.js +10 -1
- package/dist/esm/segment/ssr-render-profiler.js +72 -0
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +7 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/vcnext/index.js +4 -1
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +288 -189
- package/dist/esm/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +45 -2
- package/dist/esm/vc/vc-observer-new/viewport-observer/utils/get-mutated-elements.js +15 -4
- package/dist/esm/vc/vc-observer-new/viewport-observer/utils/is-zero-dimension-rectangle.js +3 -0
- package/dist/types/segment/ssr-render-profiler.d.ts +9 -0
- package/dist/types/vc/vc-observer/observers/ssr-placeholders/index.d.ts +1 -0
- package/dist/types/vc/vc-observer-new/types.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/utils/is-zero-dimension-rectangle.d.ts +1 -0
- package/dist/types-ts4.5/segment/ssr-render-profiler.d.ts +9 -0
- package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/index.d.ts +1 -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/utils/is-zero-dimension-rectangle.d.ts +1 -0
- package/package.json +10 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/ufo-interaction-ignore
|
|
2
2
|
|
|
3
|
+
## 4.15.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`80ea06acdd0ac`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/80ea06acdd0ac) -
|
|
8
|
+
Add entrypoints framework detection for TTVC observer
|
|
9
|
+
- [`c4c9659ad7ccd`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/c4c9659ad7ccd) -
|
|
10
|
+
refactor display:contents element detection
|
|
11
|
+
|
|
12
|
+
## 4.15.4
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- [`81a0f341fac4f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/81a0f341fac4f) -
|
|
17
|
+
Platformise Jira's SSR Render Profiler timings
|
|
18
|
+
|
|
3
19
|
## 4.15.3
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -11,6 +11,7 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _scheduler = require("scheduler");
|
|
13
13
|
var _uuid = require("uuid");
|
|
14
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
14
15
|
var _coinflip = _interopRequireDefault(require("../coinflip"));
|
|
15
16
|
var _config = require("../config");
|
|
16
17
|
var _experienceTraceIdContext = require("../experience-trace-id-context");
|
|
@@ -20,6 +21,7 @@ var _interactionMetrics = require("../interaction-metrics");
|
|
|
20
21
|
var _routeNameContext = _interopRequireDefault(require("../route-name-context"));
|
|
21
22
|
var _shortId = _interopRequireDefault(require("../short-id"));
|
|
22
23
|
var _scheduleOnPaint = _interopRequireDefault(require("./schedule-on-paint"));
|
|
24
|
+
var _ssrRenderProfiler = _interopRequireDefault(require("./ssr-render-profiler"));
|
|
23
25
|
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); }
|
|
24
26
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
25
27
|
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; } // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
@@ -277,11 +279,18 @@ function UFOSegment(_ref) {
|
|
|
277
279
|
return l.name;
|
|
278
280
|
}).join('/');
|
|
279
281
|
}, [labelStack]);
|
|
280
|
-
|
|
282
|
+
var ufoSegment = /*#__PURE__*/_react.default.createElement(_interactionContext.default.Provider, {
|
|
281
283
|
value: interactionContext
|
|
282
284
|
}, /*#__PURE__*/_react.default.createElement(_react.Profiler, {
|
|
283
285
|
id: reactProfilerId,
|
|
284
286
|
onRender: onRender
|
|
285
287
|
}, children));
|
|
288
|
+
if ((0, _platformFeatureFlags.fg)('platform_ufo_ssr_render_profiler')) {
|
|
289
|
+
return /*#__PURE__*/_react.default.createElement(_ssrRenderProfiler.default, {
|
|
290
|
+
labelStack: labelStack,
|
|
291
|
+
onRender: interactionContext.onRender
|
|
292
|
+
}, ufoSegment);
|
|
293
|
+
}
|
|
294
|
+
return ufoSegment;
|
|
286
295
|
}
|
|
287
296
|
UFOSegment.displayName = 'UFOSegment';
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = exports.SsrRenderProfilerInner = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _interactionMetrics = require("../interaction-metrics");
|
|
10
|
+
var _process;
|
|
11
|
+
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); }
|
|
12
|
+
// These are stored outside react context to be resilient to concurrent mode
|
|
13
|
+
// restarting the start marker from a suspense and losing the initial render
|
|
14
|
+
var startTimes = new Map();
|
|
15
|
+
// Keep track of the last interaction id and reset the start timers if it ever changes.
|
|
16
|
+
// This is to allow multi-step ssr to track the render timers from different "interaction"s seperately
|
|
17
|
+
var lastActiveInteraction;
|
|
18
|
+
function checkActiveInteractionAndResetStartMarksIfSet() {
|
|
19
|
+
var _getActiveInteraction;
|
|
20
|
+
var activeInteractionId = (_getActiveInteraction = (0, _interactionMetrics.getActiveInteraction)()) === null || _getActiveInteraction === void 0 ? void 0 : _getActiveInteraction.id;
|
|
21
|
+
if (!!lastActiveInteraction && lastActiveInteraction !== activeInteractionId) {
|
|
22
|
+
startTimes.clear();
|
|
23
|
+
}
|
|
24
|
+
lastActiveInteraction = activeInteractionId;
|
|
25
|
+
}
|
|
26
|
+
var onStartRender = function onStartRender(id) {
|
|
27
|
+
var _startTimes$get;
|
|
28
|
+
if (!startTimes.has(id)) {
|
|
29
|
+
startTimes.set(id, []);
|
|
30
|
+
}
|
|
31
|
+
(_startTimes$get = startTimes.get(id)) === null || _startTimes$get === void 0 || _startTimes$get.push(performance.now());
|
|
32
|
+
};
|
|
33
|
+
var isInSSR = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.__SERVER__) || typeof process !== 'undefined' && Boolean(((_process = process) === null || _process === void 0 || (_process = _process.env) === null || _process === void 0 ? void 0 : _process.REACT_SSR) || false);
|
|
34
|
+
var ProfilerMarker = function ProfilerMarker(_ref) {
|
|
35
|
+
var onRender = _ref.onRender;
|
|
36
|
+
if (isInSSR) {
|
|
37
|
+
onRender === null || onRender === void 0 || onRender();
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
};
|
|
41
|
+
var SsrRenderProfilerInner = exports.SsrRenderProfilerInner = function SsrRenderProfilerInner(_ref2) {
|
|
42
|
+
var children = _ref2.children,
|
|
43
|
+
labelStack = _ref2.labelStack,
|
|
44
|
+
_onRender = _ref2.onRender;
|
|
45
|
+
var reactProfilerId = (0, _react.useMemo)(function () {
|
|
46
|
+
return labelStack.map(function (l) {
|
|
47
|
+
return l.name;
|
|
48
|
+
}).join('/');
|
|
49
|
+
}, [labelStack]);
|
|
50
|
+
checkActiveInteractionAndResetStartMarksIfSet();
|
|
51
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ProfilerMarker, {
|
|
52
|
+
onRender: function onRender() {
|
|
53
|
+
return onStartRender(reactProfilerId);
|
|
54
|
+
}
|
|
55
|
+
}), children, /*#__PURE__*/_react.default.createElement(ProfilerMarker, {
|
|
56
|
+
onRender: function onRender() {
|
|
57
|
+
var startTimesForId = startTimes.get(reactProfilerId);
|
|
58
|
+
if (startTimesForId !== null && startTimesForId !== void 0 && startTimesForId.length) {
|
|
59
|
+
var endTime = performance.now();
|
|
60
|
+
var firstStartTime = startTimesForId[0];
|
|
61
|
+
var lastStartTime = startTimesForId[startTimesForId.length - 1];
|
|
62
|
+
var baseDuration = endTime - lastStartTime;
|
|
63
|
+
var actualDuration = endTime - firstStartTime;
|
|
64
|
+
_onRender('mount',
|
|
65
|
+
// this is incorrect, but on the server there is no mount phase
|
|
66
|
+
actualDuration, baseDuration, firstStartTime, endTime);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}));
|
|
70
|
+
};
|
|
71
|
+
var SsrRenderProfiler = function SsrRenderProfiler(props) {
|
|
72
|
+
if (isInSSR) {
|
|
73
|
+
return /*#__PURE__*/_react.default.createElement(SsrRenderProfilerInner, props);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// ensure structure similar to SSR implementation
|
|
77
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ProfilerMarker, null), props.children);
|
|
78
|
+
};
|
|
79
|
+
var _default = exports.default = SsrRenderProfiler;
|
|
@@ -273,6 +273,13 @@ var SSRPlaceholderHandlers = exports.SSRPlaceholderHandlers = /*#__PURE__*/funct
|
|
|
273
273
|
}
|
|
274
274
|
});
|
|
275
275
|
}
|
|
276
|
+
}, {
|
|
277
|
+
key: "validateReactComponentMatchToPlaceholderV4",
|
|
278
|
+
value: function validateReactComponentMatchToPlaceholderV4(el) {
|
|
279
|
+
el = this.findNearestPlaceholderContainerIfIgnored(el);
|
|
280
|
+
var id = this.getPlaceholderReplacementId(el);
|
|
281
|
+
return this.staticPlaceholders.has(id);
|
|
282
|
+
}
|
|
276
283
|
}, {
|
|
277
284
|
key: "hasSameSizePosition",
|
|
278
285
|
value: function hasSameSizePosition(rect, boundingClientRect) {
|
|
@@ -23,7 +23,10 @@ var getConsideredEntryTypes = function getConsideredEntryTypes() {
|
|
|
23
23
|
if ((0, _platformFeatureFlags.fg)('platform_ufo_remove_ssr_placeholder_in_ttvc_v4')) {
|
|
24
24
|
consideredEntryTypes.push('mutation:ssr-placeholder');
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
if ((0, _platformFeatureFlags.fg)('platform_ufo_detect_zero_dimension_rectangles')) {
|
|
27
|
+
consideredEntryTypes.push('mutation:display-contents-children-attribute');
|
|
28
|
+
}
|
|
29
|
+
return consideredEntryTypes;
|
|
27
30
|
};
|
|
28
31
|
var getExcludedEntryTypes = function getExcludedEntryTypes() {
|
|
29
32
|
var excludedEntryTypes = ['layout-shift:same-rect'];
|