@atlaskit/react-ufo 3.1.4 → 3.3.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/README.md +11 -0
- package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +52 -25
- package/dist/cjs/create-payload/index.js +290 -231
- package/dist/cjs/interaction-metrics/index.js +61 -23
- package/dist/cjs/interaction-metrics/post-interaction-log.js +63 -34
- package/dist/cjs/interaction-metrics-init/index.js +26 -7
- package/dist/cjs/segment/schedule-on-paint.js +35 -0
- package/dist/cjs/segment/segment.js +10 -1
- package/dist/cjs/vc/index.js +105 -1
- package/dist/cjs/vc/types.js +5 -0
- package/dist/cjs/vc/vc-observer/index.js +198 -208
- package/dist/cjs/vc/vc-observer-new/entries-timeline/index.js +56 -0
- package/dist/cjs/vc/vc-observer-new/get-element-name.js +68 -0
- package/dist/cjs/vc/vc-observer-new/index.js +132 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +75 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +60 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +274 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +151 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +367 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +397 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +5 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +61 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +151 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +107 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/types.js +5 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/types.js +5 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +16 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +16 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +16 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/task-yield.js +45 -0
- package/dist/cjs/vc/vc-observer-new/types.js +5 -0
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +195 -0
- package/dist/cjs/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +71 -0
- package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +65 -0
- package/dist/cjs/vc/vc-observer-new/viewport-observer/performance-observer/index.js +58 -0
- package/dist/cjs/vc/vc-observer-new/viewport-observer/types.js +1 -0
- package/dist/cjs/vc/vc-observer-new/window-event-observer/index.js +54 -0
- package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +2 -2
- package/dist/es2019/create-payload/index.js +8 -7
- package/dist/es2019/interaction-metrics/index.js +3 -3
- package/dist/es2019/interaction-metrics/post-interaction-log.js +5 -5
- package/dist/es2019/interaction-metrics-init/index.js +26 -7
- package/dist/es2019/segment/schedule-on-paint.js +29 -0
- package/dist/es2019/segment/segment.js +9 -1
- package/dist/es2019/vc/index.js +56 -1
- package/dist/es2019/vc/types.js +1 -0
- package/dist/es2019/vc/vc-observer/index.js +1 -4
- package/dist/es2019/vc/vc-observer-new/entries-timeline/index.js +34 -0
- package/dist/es2019/vc/vc-observer-new/get-element-name.js +62 -0
- package/dist/es2019/vc/vc-observer-new/index.js +98 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +38 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +39 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +194 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +69 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +248 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +261 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +1 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +19 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +98 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +58 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/types.js +1 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/types.js +1 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +9 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +9 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +10 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/task-yield.js +17 -0
- package/dist/es2019/vc/vc-observer-new/types.js +1 -0
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +168 -0
- package/dist/es2019/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +65 -0
- package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +48 -0
- package/dist/es2019/vc/vc-observer-new/viewport-observer/performance-observer/index.js +41 -0
- package/dist/es2019/vc/vc-observer-new/viewport-observer/types.js +0 -0
- package/dist/es2019/vc/vc-observer-new/window-event-observer/index.js +36 -0
- package/dist/esm/create-experimental-interaction-metrics-payload/index.js +52 -25
- package/dist/esm/create-payload/index.js +290 -231
- package/dist/esm/interaction-metrics/index.js +61 -23
- package/dist/esm/interaction-metrics/post-interaction-log.js +63 -34
- package/dist/esm/interaction-metrics-init/index.js +26 -7
- package/dist/esm/segment/schedule-on-paint.js +29 -0
- package/dist/esm/segment/segment.js +10 -1
- package/dist/esm/vc/index.js +104 -1
- package/dist/esm/vc/types.js +1 -0
- package/dist/esm/vc/vc-observer/index.js +198 -208
- package/dist/esm/vc/vc-observer-new/entries-timeline/index.js +50 -0
- package/dist/esm/vc/vc-observer-new/get-element-name.js +62 -0
- package/dist/esm/vc/vc-observer-new/index.js +126 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +69 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +54 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +268 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +143 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +361 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +390 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +1 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +54 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +144 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +100 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/types.js +1 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/types.js +1 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +10 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +10 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +10 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/utils/task-yield.js +38 -0
- package/dist/esm/vc/vc-observer-new/types.js +1 -0
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +189 -0
- package/dist/esm/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +65 -0
- package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +59 -0
- package/dist/esm/vc/vc-observer-new/viewport-observer/performance-observer/index.js +51 -0
- package/dist/esm/vc/vc-observer-new/viewport-observer/types.js +0 -0
- package/dist/esm/vc/vc-observer-new/window-event-observer/index.js +48 -0
- package/dist/types/common/index.d.ts +1 -0
- package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +3 -2
- package/dist/types/create-payload/index.d.ts +4 -4
- package/dist/types/interaction-metrics/post-interaction-log.d.ts +3 -2
- package/dist/types/segment/schedule-on-paint.d.ts +2 -0
- package/dist/types/vc/index.d.ts +3 -3
- package/dist/types/vc/types.d.ts +34 -0
- package/dist/types/vc/vc-observer/index.d.ts +5 -21
- package/dist/types/vc/vc-observer-new/entries-timeline/index.d.ts +13 -0
- package/dist/types/vc/vc-observer-new/get-element-name.d.ts +8 -0
- package/dist/types/vc/vc-observer-new/index.d.ts +18 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +9 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +7 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +91 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +4 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +39 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +8 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +43 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +3 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +11 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +23 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +9 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +20 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +1 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +1 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +1 -0
- package/dist/types/vc/vc-observer-new/types.d.ts +21 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +22 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/intersection-observer/index.d.ts +30 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +14 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +14 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/types.d.ts +10 -0
- package/dist/types/vc/vc-observer-new/window-event-observer/index.d.ts +17 -0
- package/dist/types-ts4.5/common/index.d.ts +1 -0
- package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +3 -2
- package/dist/types-ts4.5/create-payload/index.d.ts +4 -4
- package/dist/types-ts4.5/interaction-metrics/post-interaction-log.d.ts +3 -2
- package/dist/types-ts4.5/segment/schedule-on-paint.d.ts +2 -0
- package/dist/types-ts4.5/vc/index.d.ts +3 -3
- package/dist/types-ts4.5/vc/types.d.ts +34 -0
- package/dist/types-ts4.5/vc/vc-observer/index.d.ts +5 -21
- package/dist/types-ts4.5/vc/vc-observer-new/entries-timeline/index.d.ts +13 -0
- package/dist/types-ts4.5/vc/vc-observer-new/get-element-name.d.ts +8 -0
- package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +18 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +9 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +7 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +91 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +4 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +39 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +8 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +43 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +3 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +11 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +23 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +9 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +20 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +1 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +1 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +1 -0
- package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +21 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +22 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/intersection-observer/index.d.ts +30 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +14 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +14 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/types.d.ts +10 -0
- package/dist/types-ts4.5/vc/vc-observer-new/window-event-observer/index.d.ts +17 -0
- package/package.json +13 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default function getViewportHeight() {
|
|
2
|
+
var document = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.document;
|
|
3
|
+
var documentHeight;
|
|
4
|
+
try {
|
|
5
|
+
documentHeight = document.documentElement.clientHeight || 0;
|
|
6
|
+
} catch (e) {
|
|
7
|
+
documentHeight = 0;
|
|
8
|
+
}
|
|
9
|
+
return Math.max(documentHeight, window.innerHeight || 0);
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default function getViewportWidth() {
|
|
2
|
+
var document = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.document;
|
|
3
|
+
var documentWidth;
|
|
4
|
+
try {
|
|
5
|
+
documentWidth = document.documentElement.clientWidth || 0;
|
|
6
|
+
} catch (e) {
|
|
7
|
+
documentWidth = 0;
|
|
8
|
+
}
|
|
9
|
+
return Math.max(documentWidth, window.innerWidth || 0);
|
|
10
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
// See https://developer.mozilla.org/en-US/docs/Web/API/Prioritized_Task_Scheduling_API
|
|
4
|
+
export default function taskYield() {
|
|
5
|
+
return _taskYield.apply(this, arguments);
|
|
6
|
+
}
|
|
7
|
+
function _taskYield() {
|
|
8
|
+
_taskYield = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
9
|
+
var resolve, p;
|
|
10
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
11
|
+
while (1) switch (_context.prev = _context.next) {
|
|
12
|
+
case 0:
|
|
13
|
+
if (!('scheduler' in globalThis &&
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
'yield' in globalThis.scheduler)) {
|
|
16
|
+
_context.next = 4;
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
_context.next = 3;
|
|
20
|
+
return scheduler.yield();
|
|
21
|
+
case 3:
|
|
22
|
+
return _context.abrupt("return");
|
|
23
|
+
case 4:
|
|
24
|
+
resolve = function resolve() {};
|
|
25
|
+
p = new Promise(function (a) {
|
|
26
|
+
resolve = a;
|
|
27
|
+
});
|
|
28
|
+
setTimeout(resolve, 0);
|
|
29
|
+
_context.next = 9;
|
|
30
|
+
return p;
|
|
31
|
+
case 9:
|
|
32
|
+
case "end":
|
|
33
|
+
return _context.stop();
|
|
34
|
+
}
|
|
35
|
+
}, _callee);
|
|
36
|
+
}));
|
|
37
|
+
return _taskYield.apply(this, arguments);
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
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; } } }; }
|
|
4
|
+
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; } }
|
|
5
|
+
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; }
|
|
6
|
+
import { isContainedWithinMediaWrapper } from '../../vc-observer/media-wrapper/vc-utils';
|
|
7
|
+
import { createIntersectionObserver } from './intersection-observer';
|
|
8
|
+
import createMutationObserver from './mutation-observer';
|
|
9
|
+
import createPerformanceObserver from './performance-observer';
|
|
10
|
+
function isElementVisible(element) {
|
|
11
|
+
if (!(element instanceof HTMLElement)) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
var visible = element.checkVisibility({
|
|
16
|
+
// @ts-expect-error
|
|
17
|
+
visibilityProperty: true
|
|
18
|
+
});
|
|
19
|
+
return visible;
|
|
20
|
+
} catch (e) {
|
|
21
|
+
// there is no support for checkVisibility
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function sameRectSize(a, b) {
|
|
26
|
+
if (!a || !b) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
return a.width === b.width && a.height === b.height;
|
|
30
|
+
}
|
|
31
|
+
function sameRectDimensions(a, b) {
|
|
32
|
+
if (!a || !b) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return a.width === b.width && a.height === b.height && a.x === b.x && a.y === b.y;
|
|
36
|
+
}
|
|
37
|
+
var ViewportObserver = /*#__PURE__*/function () {
|
|
38
|
+
function ViewportObserver(_ref) {
|
|
39
|
+
var _this = this;
|
|
40
|
+
var onChange = _ref.onChange;
|
|
41
|
+
_classCallCheck(this, ViewportObserver);
|
|
42
|
+
this.mapVisibleNodeRects = new WeakMap();
|
|
43
|
+
this.intersectionObserver = createIntersectionObserver({
|
|
44
|
+
onEntry: function onEntry(_ref2) {
|
|
45
|
+
var target = _ref2.target,
|
|
46
|
+
rect = _ref2.rect,
|
|
47
|
+
time = _ref2.time,
|
|
48
|
+
type = _ref2.type,
|
|
49
|
+
mutationData = _ref2.mutationData;
|
|
50
|
+
var visible = isElementVisible(target);
|
|
51
|
+
var lastElementRect = _this.mapVisibleNodeRects.get(target);
|
|
52
|
+
_this.mapVisibleNodeRects.set(target, rect);
|
|
53
|
+
onChange({
|
|
54
|
+
time: time,
|
|
55
|
+
type: type,
|
|
56
|
+
elementRef: new WeakRef(target),
|
|
57
|
+
visible: visible,
|
|
58
|
+
rect: rect,
|
|
59
|
+
previousRect: lastElementRect,
|
|
60
|
+
mutationData: mutationData
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
this.mutationObserver = createMutationObserver({
|
|
65
|
+
onChildListMutation: function onChildListMutation(_ref3) {
|
|
66
|
+
var _removedNodes$map;
|
|
67
|
+
var addedNodes = _ref3.addedNodes,
|
|
68
|
+
removedNodes = _ref3.removedNodes;
|
|
69
|
+
var removedNodeRects = (_removedNodes$map = removedNodes === null || removedNodes === void 0 ? void 0 : removedNodes.map(function (n) {
|
|
70
|
+
return _this.mapVisibleNodeRects.get(n);
|
|
71
|
+
})) !== null && _removedNodes$map !== void 0 ? _removedNodes$map : [];
|
|
72
|
+
addedNodes.forEach(function (addedNode) {
|
|
73
|
+
var _this$intersectionObs3;
|
|
74
|
+
// for (const elem of addedNode.querySelectorAll('*')) {
|
|
75
|
+
// this.intersectionObserver?.watchAndTag(elem, 'mutation:child-element');
|
|
76
|
+
// }
|
|
77
|
+
|
|
78
|
+
var sameDeletedNode = removedNodes.find(function (n) {
|
|
79
|
+
return n.isEqualNode(addedNode);
|
|
80
|
+
});
|
|
81
|
+
if (sameDeletedNode) {
|
|
82
|
+
var _this$intersectionObs;
|
|
83
|
+
(_this$intersectionObs = _this.intersectionObserver) === null || _this$intersectionObs === void 0 || _this$intersectionObs.watchAndTag(addedNode, 'mutation:remount');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (isContainedWithinMediaWrapper(addedNode)) {
|
|
87
|
+
var _this$intersectionObs2;
|
|
88
|
+
(_this$intersectionObs2 = _this.intersectionObserver) === null || _this$intersectionObs2 === void 0 || _this$intersectionObs2.watchAndTag(addedNode, 'mutation:media');
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
(_this$intersectionObs3 = _this.intersectionObserver) === null || _this$intersectionObs3 === void 0 || _this$intersectionObs3.watchAndTag(addedNode, function (_ref4) {
|
|
92
|
+
var rect = _ref4.rect;
|
|
93
|
+
var wasDeleted = removedNodeRects.some(function (nr) {
|
|
94
|
+
return sameRectDimensions(nr, rect);
|
|
95
|
+
});
|
|
96
|
+
if (wasDeleted) {
|
|
97
|
+
return 'mutation:element-replacement';
|
|
98
|
+
}
|
|
99
|
+
return 'mutation:element';
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
},
|
|
103
|
+
onAttributeMutation: function onAttributeMutation(_ref5) {
|
|
104
|
+
var _this$intersectionObs4;
|
|
105
|
+
var target = _ref5.target,
|
|
106
|
+
attributeName = _ref5.attributeName;
|
|
107
|
+
(_this$intersectionObs4 = _this.intersectionObserver) === null || _this$intersectionObs4 === void 0 || _this$intersectionObs4.watchAndTag(target, function (_ref6) {
|
|
108
|
+
var target = _ref6.target,
|
|
109
|
+
rect = _ref6.rect;
|
|
110
|
+
if (isContainedWithinMediaWrapper(target)) {
|
|
111
|
+
return {
|
|
112
|
+
type: 'mutation:media',
|
|
113
|
+
mutationData: {
|
|
114
|
+
attributeName: attributeName
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
var lastElementRect = _this.mapVisibleNodeRects.get(target);
|
|
119
|
+
if (lastElementRect && sameRectSize(rect, lastElementRect)) {
|
|
120
|
+
return {
|
|
121
|
+
type: 'mutation:attribute:no-layout-shift',
|
|
122
|
+
mutationData: {
|
|
123
|
+
attributeName: attributeName
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
type: 'mutation:attribute',
|
|
129
|
+
mutationData: {
|
|
130
|
+
attributeName: attributeName
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
this.performanceObserver = createPerformanceObserver({
|
|
137
|
+
onLayoutShift: function onLayoutShift(_ref7) {
|
|
138
|
+
var time = _ref7.time,
|
|
139
|
+
changedRects = _ref7.changedRects;
|
|
140
|
+
var _iterator = _createForOfIteratorHelper(changedRects),
|
|
141
|
+
_step;
|
|
142
|
+
try {
|
|
143
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
144
|
+
var changedRect = _step.value;
|
|
145
|
+
onChange({
|
|
146
|
+
time: time,
|
|
147
|
+
elementRef: new WeakRef(changedRect.node),
|
|
148
|
+
visible: true,
|
|
149
|
+
rect: changedRect.rect,
|
|
150
|
+
previousRect: changedRect.previousRect,
|
|
151
|
+
type: 'layout-shift'
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
} catch (err) {
|
|
155
|
+
_iterator.e(err);
|
|
156
|
+
} finally {
|
|
157
|
+
_iterator.f();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
return _createClass(ViewportObserver, [{
|
|
163
|
+
key: "start",
|
|
164
|
+
value: function start() {
|
|
165
|
+
var _this$mutationObserve, _this$performanceObse;
|
|
166
|
+
(_this$mutationObserve = this.mutationObserver) === null || _this$mutationObserve === void 0 || _this$mutationObserve.observe(document.body, {
|
|
167
|
+
attributeOldValue: true,
|
|
168
|
+
attributes: true,
|
|
169
|
+
childList: true,
|
|
170
|
+
subtree: true
|
|
171
|
+
});
|
|
172
|
+
(_this$performanceObse = this.performanceObserver) === null || _this$performanceObse === void 0 || _this$performanceObse.observe({
|
|
173
|
+
type: 'layout-shift',
|
|
174
|
+
buffered: true,
|
|
175
|
+
// @ts-ignore-error
|
|
176
|
+
durationThreshold: 30
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}, {
|
|
180
|
+
key: "stop",
|
|
181
|
+
value: function stop() {
|
|
182
|
+
var _this$mutationObserve2, _this$intersectionObs5, _this$performanceObse2;
|
|
183
|
+
(_this$mutationObserve2 = this.mutationObserver) === null || _this$mutationObserve2 === void 0 || _this$mutationObserve2.disconnect();
|
|
184
|
+
(_this$intersectionObs5 = this.intersectionObserver) === null || _this$intersectionObs5 === void 0 || _this$intersectionObs5.disconnect();
|
|
185
|
+
(_this$performanceObse2 = this.performanceObserver) === null || _this$performanceObse2 === void 0 || _this$performanceObse2.disconnect();
|
|
186
|
+
}
|
|
187
|
+
}]);
|
|
188
|
+
}();
|
|
189
|
+
export { ViewportObserver as default };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
function isValidEntry(entry) {
|
|
2
|
+
return entry.isIntersecting && entry.intersectionRect.width > 0 && entry.intersectionRect.height > 0;
|
|
3
|
+
}
|
|
4
|
+
export function createIntersectionObserver(args) {
|
|
5
|
+
if (!window || typeof window.IntersectionObserver !== 'function') {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
var callbacksPerElement = new WeakMap();
|
|
9
|
+
var observer = new IntersectionObserver(function (entries) {
|
|
10
|
+
var _args$onObserved;
|
|
11
|
+
var validEntries = [];
|
|
12
|
+
var startTime = performance.now();
|
|
13
|
+
entries.forEach(function (entry) {
|
|
14
|
+
var _mutationTag;
|
|
15
|
+
if (!(entry.target instanceof HTMLElement) || !isValidEntry(entry)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
var mutationTag = null;
|
|
19
|
+
var mutationData = null;
|
|
20
|
+
var tagOrCallback = callbacksPerElement.get(entry.target);
|
|
21
|
+
if (typeof tagOrCallback === 'function') {
|
|
22
|
+
var tagOrCallbackResult = tagOrCallback({
|
|
23
|
+
target: entry.target,
|
|
24
|
+
rect: entry.intersectionRect
|
|
25
|
+
});
|
|
26
|
+
if (!tagOrCallbackResult) {
|
|
27
|
+
mutationTag = 'unknown';
|
|
28
|
+
} else if (typeof tagOrCallbackResult === 'string') {
|
|
29
|
+
mutationTag = tagOrCallbackResult;
|
|
30
|
+
} else {
|
|
31
|
+
mutationTag = tagOrCallbackResult.type;
|
|
32
|
+
mutationData = tagOrCallbackResult.mutationData;
|
|
33
|
+
}
|
|
34
|
+
} else if (typeof tagOrCallback === 'string') {
|
|
35
|
+
mutationTag = tagOrCallback;
|
|
36
|
+
}
|
|
37
|
+
args.onEntry({
|
|
38
|
+
target: entry.target,
|
|
39
|
+
rect: entry.intersectionRect,
|
|
40
|
+
time: entry.time,
|
|
41
|
+
type: (_mutationTag = mutationTag) !== null && _mutationTag !== void 0 ? _mutationTag : 'unknown',
|
|
42
|
+
mutationData: mutationData
|
|
43
|
+
});
|
|
44
|
+
validEntries.push(new WeakRef(entry.target));
|
|
45
|
+
callbacksPerElement.delete(entry.target);
|
|
46
|
+
observer.unobserve(entry.target);
|
|
47
|
+
});
|
|
48
|
+
(_args$onObserved = args.onObserved) === null || _args$onObserved === void 0 || _args$onObserved.call(args, {
|
|
49
|
+
time: startTime,
|
|
50
|
+
elements: validEntries
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
disconnect: function disconnect() {
|
|
55
|
+
observer.disconnect();
|
|
56
|
+
},
|
|
57
|
+
unobserve: function unobserve(target) {
|
|
58
|
+
observer.unobserve(target);
|
|
59
|
+
},
|
|
60
|
+
watchAndTag: function watchAndTag(target, tagOrCallback) {
|
|
61
|
+
callbacksPerElement.set(target, tagOrCallback);
|
|
62
|
+
observer.observe(target);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
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; } } }; }
|
|
2
|
+
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; } }
|
|
3
|
+
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; }
|
|
4
|
+
export default function createMutationObserver(_ref) {
|
|
5
|
+
var onAttributeMutation = _ref.onAttributeMutation,
|
|
6
|
+
onChildListMutation = _ref.onChildListMutation,
|
|
7
|
+
onMutationFinished = _ref.onMutationFinished;
|
|
8
|
+
if (!window || typeof window.IntersectionObserver !== 'function') {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
var observer = new MutationObserver(function (mutations) {
|
|
12
|
+
var addedNodes = [];
|
|
13
|
+
var removedNodes = [];
|
|
14
|
+
var targets = [];
|
|
15
|
+
var _iterator = _createForOfIteratorHelper(mutations),
|
|
16
|
+
_step;
|
|
17
|
+
try {
|
|
18
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
19
|
+
var mut = _step.value;
|
|
20
|
+
if (!(mut.target instanceof HTMLElement)) {
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (mut.type === 'attributes') {
|
|
24
|
+
var _mut$attributeName;
|
|
25
|
+
onAttributeMutation({
|
|
26
|
+
target: mut.target,
|
|
27
|
+
attributeName: (_mut$attributeName = mut.attributeName) !== null && _mut$attributeName !== void 0 ? _mut$attributeName : 'unknown'
|
|
28
|
+
});
|
|
29
|
+
continue;
|
|
30
|
+
} else if (mut.type === 'childList') {
|
|
31
|
+
var _mut$addedNodes, _mut$removedNodes;
|
|
32
|
+
((_mut$addedNodes = mut.addedNodes) !== null && _mut$addedNodes !== void 0 ? _mut$addedNodes : []).forEach(function (node) {
|
|
33
|
+
if (node instanceof HTMLElement) {
|
|
34
|
+
addedNodes.push(node);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
((_mut$removedNodes = mut.removedNodes) !== null && _mut$removedNodes !== void 0 ? _mut$removedNodes : []).forEach(function (node) {
|
|
38
|
+
if (node instanceof HTMLElement) {
|
|
39
|
+
removedNodes.push(node);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
targets.push(mut.target);
|
|
44
|
+
}
|
|
45
|
+
} catch (err) {
|
|
46
|
+
_iterator.e(err);
|
|
47
|
+
} finally {
|
|
48
|
+
_iterator.f();
|
|
49
|
+
}
|
|
50
|
+
onChildListMutation({
|
|
51
|
+
addedNodes: addedNodes,
|
|
52
|
+
removedNodes: removedNodes
|
|
53
|
+
});
|
|
54
|
+
onMutationFinished === null || onMutationFinished === void 0 || onMutationFinished({
|
|
55
|
+
targets: targets
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
return observer;
|
|
59
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
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; } } }; }
|
|
2
|
+
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; } }
|
|
3
|
+
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; }
|
|
4
|
+
// The LayoutShiftAttribution API is returning the numbers on physical dimension
|
|
5
|
+
export function convertPhysicalToLogicalResolution(rect) {
|
|
6
|
+
if (typeof window.devicePixelRatio !== 'number') {
|
|
7
|
+
return rect;
|
|
8
|
+
}
|
|
9
|
+
if (window.devicePixelRatio === 1) {
|
|
10
|
+
return rect;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// eslint-disable-next-line compat/compat
|
|
14
|
+
return new DOMRect(rect.x / window.devicePixelRatio, rect.y / window.devicePixelRatio, rect.width / window.devicePixelRatio, rect.height / window.devicePixelRatio);
|
|
15
|
+
}
|
|
16
|
+
export default function createPerformanceObserver(args) {
|
|
17
|
+
if (!window || typeof window.PerformanceObserver !== 'function') {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
var onLayoutShift = args.onLayoutShift;
|
|
21
|
+
var observer = new PerformanceObserver(function (entries) {
|
|
22
|
+
var _iterator = _createForOfIteratorHelper(entries.getEntries()),
|
|
23
|
+
_step;
|
|
24
|
+
try {
|
|
25
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
26
|
+
var entry = _step.value;
|
|
27
|
+
if (entry.entryType === 'layout-shift') {
|
|
28
|
+
// Ignored via go/ees005
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
+
var changedRects = entry.sources.reduceRight(function (acc, attr) {
|
|
31
|
+
acc.push({
|
|
32
|
+
rect: convertPhysicalToLogicalResolution(attr.currentRect),
|
|
33
|
+
previousRect: convertPhysicalToLogicalResolution(attr.previousRect),
|
|
34
|
+
node: attr.node
|
|
35
|
+
});
|
|
36
|
+
return acc;
|
|
37
|
+
}, []);
|
|
38
|
+
onLayoutShift({
|
|
39
|
+
time: entry.startTime,
|
|
40
|
+
changedRects: changedRects
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
} catch (err) {
|
|
45
|
+
_iterator.e(err);
|
|
46
|
+
} finally {
|
|
47
|
+
_iterator.f();
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return observer;
|
|
51
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
+
import { bind } from 'bind-event-listener';
|
|
5
|
+
var WindowEventObserver = /*#__PURE__*/function () {
|
|
6
|
+
function WindowEventObserver(opts) {
|
|
7
|
+
_classCallCheck(this, WindowEventObserver);
|
|
8
|
+
_defineProperty(this, "unbindFns", []);
|
|
9
|
+
this.onEvent = opts.onEvent;
|
|
10
|
+
}
|
|
11
|
+
return _createClass(WindowEventObserver, [{
|
|
12
|
+
key: "bindEvent",
|
|
13
|
+
value: function bindEvent(type) {
|
|
14
|
+
var _this = this;
|
|
15
|
+
var unbindCallback = bind(window, {
|
|
16
|
+
type: type,
|
|
17
|
+
listener: function listener(event) {
|
|
18
|
+
_this.onEvent({
|
|
19
|
+
time: event.timeStamp,
|
|
20
|
+
type: type,
|
|
21
|
+
event: event
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
options: {
|
|
25
|
+
passive: true
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
this.unbindFns.push(unbindCallback);
|
|
29
|
+
}
|
|
30
|
+
}, {
|
|
31
|
+
key: "start",
|
|
32
|
+
value: function start() {
|
|
33
|
+
this.bindEvent('wheel');
|
|
34
|
+
this.bindEvent('scroll');
|
|
35
|
+
this.bindEvent('keydown');
|
|
36
|
+
this.bindEvent('resize');
|
|
37
|
+
}
|
|
38
|
+
}, {
|
|
39
|
+
key: "stop",
|
|
40
|
+
value: function stop() {
|
|
41
|
+
this.unbindFns.forEach(function (cb) {
|
|
42
|
+
cb();
|
|
43
|
+
});
|
|
44
|
+
this.unbindFns = [];
|
|
45
|
+
}
|
|
46
|
+
}]);
|
|
47
|
+
}();
|
|
48
|
+
export { WindowEventObserver as default };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { AssetResourceEntry, AssetsClassification, AssetsData, AssetsReporter, } from './assets/types';
|
|
2
2
|
export type { LifecycleMarkType, MarkType, SpanType, InteractionType, AbortReasonType, CustomTiming, HoldInfo, LoadProfilerEventInfo, ReactProfilerTiming, Span, Mark, InteractionError, RequestInfo, ApdexType, SegmentInfo, CustomData, HoldActive, Redirect, InteractionMetrics, EnhancedUFOInteractionContextType, BM3Event, PostInteractionLogOutput, LastInteractionFinishInfo, } from './common/types';
|
|
3
|
+
export type { MultiHeatmapPayload } from './vc/types';
|
|
3
4
|
/**
|
|
4
5
|
* @deprecated Prefer import from @atlaskit/react-ufo/interaction-context
|
|
5
6
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { InteractionMetrics } from '../common';
|
|
2
|
-
import {
|
|
2
|
+
import type { VCObserverOptions } from '../vc/types';
|
|
3
|
+
import { VCObserver } from '../vc/vc-observer';
|
|
3
4
|
type InteractionMetricsHandler = (interactionId: string, interaction: InteractionMetrics) => void | Promise<void>;
|
|
4
5
|
export declare function installInteractionSink(handler: InteractionMetricsHandler): void;
|
|
5
6
|
export declare function sinkExperimentalHandler(sinkFn: (interactionId: string, interaction: InteractionMetrics) => void | Promise<void>): void;
|
|
@@ -12,5 +13,5 @@ export declare class ExperimentalVCMetrics {
|
|
|
12
13
|
}): void;
|
|
13
14
|
}
|
|
14
15
|
export declare const experimentalVC: ExperimentalVCMetrics;
|
|
15
|
-
export declare const getExperimentalVCMetrics: (interaction: InteractionMetrics) => import("../common/vc/types").VCResult | null
|
|
16
|
+
export declare const getExperimentalVCMetrics: (interaction: InteractionMetrics) => Promise<import("../common/vc/types").VCResult | null>;
|
|
16
17
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { InteractionMetrics, InteractionType } from '../common';
|
|
2
2
|
import * as ssr from '../ssr';
|
|
3
3
|
import type { OptimizedLabelStack } from './common/types';
|
|
4
|
-
export declare function createPayloads(interactionId: string, interaction: InteractionMetrics): {
|
|
4
|
+
export declare function createPayloads(interactionId: string, interaction: InteractionMetrics): Promise<{
|
|
5
5
|
actionSubject: string;
|
|
6
6
|
action: string;
|
|
7
7
|
eventType: string;
|
|
@@ -11594,8 +11594,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
|
|
|
11594
11594
|
'experience:name': string;
|
|
11595
11595
|
};
|
|
11596
11596
|
};
|
|
11597
|
-
}[]
|
|
11598
|
-
export declare function createExperimentalMetricsPayload(interactionId: string, interaction: InteractionMetrics): {
|
|
11597
|
+
}[]>;
|
|
11598
|
+
export declare function createExperimentalMetricsPayload(interactionId: string, interaction: InteractionMetrics): Promise<{
|
|
11599
11599
|
actionSubject: string;
|
|
11600
11600
|
action: string;
|
|
11601
11601
|
eventType: string;
|
|
@@ -23188,4 +23188,4 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
|
|
|
23188
23188
|
'experience:name': string;
|
|
23189
23189
|
};
|
|
23190
23190
|
};
|
|
23191
|
-
} | null;
|
|
23191
|
+
}> | null;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type LastInteractionFinishInfo, type PostInteractionLogOutput, type ReactProfilerTiming } from '../common/common/types';
|
|
2
2
|
import type { VCResult } from '../common/vc/types';
|
|
3
3
|
import type { LabelStack } from '../interaction-context';
|
|
4
|
-
import {
|
|
4
|
+
import type { VCObserverOptions } from '../vc/types';
|
|
5
|
+
import { VCObserver } from '../vc/vc-observer';
|
|
5
6
|
export default class PostInteractionLog {
|
|
6
7
|
/**
|
|
7
8
|
* Basic info about interaction that has just finished
|
|
@@ -55,7 +56,7 @@ export default class PostInteractionLog {
|
|
|
55
56
|
/**
|
|
56
57
|
* Send the log if there is data
|
|
57
58
|
*/
|
|
58
|
-
sendPostInteractionLog(): void
|
|
59
|
+
sendPostInteractionLog(): Promise<void>;
|
|
59
60
|
/**
|
|
60
61
|
* This fn should be invoked when an interaction has finished
|
|
61
62
|
* Basic details about the finished interaction will be recorded
|
package/dist/types/vc/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { VCObserverInterface, VCObserverOptions } from './types';
|
|
2
2
|
declare global {
|
|
3
|
-
var __vcObserver:
|
|
3
|
+
var __vcObserver: VCObserverInterface;
|
|
4
4
|
}
|
|
5
|
-
export declare const getVCObserver: (opts?: VCObserverOptions) =>
|
|
5
|
+
export declare const getVCObserver: (opts?: VCObserverOptions) => VCObserverInterface;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { VCRawDataType, VCResult } from '../common/vc/types';
|
|
2
|
+
export type GetVCResultType = {
|
|
3
|
+
start: number;
|
|
4
|
+
stop: number;
|
|
5
|
+
tti: number;
|
|
6
|
+
prefix?: string;
|
|
7
|
+
ssr?: number;
|
|
8
|
+
vc?: VCRawDataType | null;
|
|
9
|
+
};
|
|
10
|
+
export type SelectorConfig = {
|
|
11
|
+
id: boolean;
|
|
12
|
+
testId: boolean;
|
|
13
|
+
role: boolean;
|
|
14
|
+
className: boolean;
|
|
15
|
+
dataVC?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export type VCObserverOptions = {
|
|
18
|
+
heatmapSize?: number | undefined;
|
|
19
|
+
oldDomUpdates?: boolean | undefined;
|
|
20
|
+
devToolsEnabled?: boolean | undefined;
|
|
21
|
+
selectorConfig?: SelectorConfig | undefined;
|
|
22
|
+
isPostInteraction?: boolean;
|
|
23
|
+
};
|
|
24
|
+
export interface VCObserverInterface {
|
|
25
|
+
start(startArg: {
|
|
26
|
+
startTime: number;
|
|
27
|
+
}): void;
|
|
28
|
+
stop(): void;
|
|
29
|
+
getVCRawData(): VCRawDataType | null;
|
|
30
|
+
getVCResult(param: GetVCResultType): Promise<VCResult>;
|
|
31
|
+
setSSRElement(element: HTMLElement): void;
|
|
32
|
+
setReactRootRenderStart(startTime?: number): void;
|
|
33
|
+
setReactRootRenderStop(stopTime?: number): void;
|
|
34
|
+
}
|
|
@@ -1,23 +1,9 @@
|
|
|
1
1
|
import { type UnbindFn } from 'bind-event-listener';
|
|
2
|
-
import type { ComponentsLogType,
|
|
2
|
+
import type { ComponentsLogType, VCAbortReasonType, VCEntryType, VCIgnoreReason, VCRatioType, VCRawDataType, VCResult } from '../../common/vc/types';
|
|
3
|
+
import type { GetVCResultType, VCObserverInterface, VCObserverOptions } from '../types';
|
|
3
4
|
import { MultiRevisionHeatmap } from './heatmap/heatmap';
|
|
4
|
-
import { Observers
|
|
5
|
-
|
|
6
|
-
start: number;
|
|
7
|
-
stop: number;
|
|
8
|
-
tti: number;
|
|
9
|
-
prefix?: string;
|
|
10
|
-
ssr?: number;
|
|
11
|
-
vc?: VCRawDataType | null;
|
|
12
|
-
};
|
|
13
|
-
export type VCObserverOptions = {
|
|
14
|
-
heatmapSize?: number | undefined;
|
|
15
|
-
oldDomUpdates?: boolean | undefined;
|
|
16
|
-
devToolsEnabled?: boolean | undefined;
|
|
17
|
-
selectorConfig?: SelectorConfig | undefined;
|
|
18
|
-
isPostInteraction?: boolean;
|
|
19
|
-
};
|
|
20
|
-
export declare class VCObserver {
|
|
5
|
+
import { Observers } from './observers';
|
|
6
|
+
export declare class VCObserver implements VCObserverInterface {
|
|
21
7
|
abortReason: VCAbortReasonType;
|
|
22
8
|
outOfBoundaryInfo: string;
|
|
23
9
|
/** config * */
|
|
@@ -55,7 +41,7 @@ export declare class VCObserver {
|
|
|
55
41
|
targetName: string;
|
|
56
42
|
ignoreReason: VCIgnoreReason | undefined;
|
|
57
43
|
}[];
|
|
58
|
-
getVCResult: ({ start, stop, tti, prefix, ssr, vc }: GetVCResultType) => VCResult
|
|
44
|
+
getVCResult: ({ start, stop, tti, prefix, ssr, vc, }: GetVCResultType) => Promise<VCResult>;
|
|
59
45
|
static calculateVC({ heatmap, ssr, componentsLog, viewport, }: {
|
|
60
46
|
heatmap: number[][];
|
|
61
47
|
ssr?: number;
|
|
@@ -84,7 +70,6 @@ export declare class VCObserver {
|
|
|
84
70
|
private handleUpdate;
|
|
85
71
|
private legacyHandleUpdate;
|
|
86
72
|
private onViewportChangeDetected;
|
|
87
|
-
abortObservation(abortReason?: VCAbortReason): void;
|
|
88
73
|
private setAbortReason;
|
|
89
74
|
private resetState;
|
|
90
75
|
private getCleanHeatmap;
|
|
@@ -101,4 +86,3 @@ export declare class VCObserver {
|
|
|
101
86
|
private measureStart;
|
|
102
87
|
private measureStop;
|
|
103
88
|
}
|
|
104
|
-
export {};
|