@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.
Files changed (179) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +11 -0
  3. package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +52 -25
  4. package/dist/cjs/create-payload/index.js +290 -231
  5. package/dist/cjs/interaction-metrics/index.js +61 -23
  6. package/dist/cjs/interaction-metrics/post-interaction-log.js +63 -34
  7. package/dist/cjs/interaction-metrics-init/index.js +26 -7
  8. package/dist/cjs/segment/schedule-on-paint.js +35 -0
  9. package/dist/cjs/segment/segment.js +10 -1
  10. package/dist/cjs/vc/index.js +105 -1
  11. package/dist/cjs/vc/types.js +5 -0
  12. package/dist/cjs/vc/vc-observer/index.js +198 -208
  13. package/dist/cjs/vc/vc-observer-new/entries-timeline/index.js +56 -0
  14. package/dist/cjs/vc/vc-observer-new/get-element-name.js +68 -0
  15. package/dist/cjs/vc/vc-observer-new/index.js +132 -0
  16. package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +75 -0
  17. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +60 -0
  18. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +274 -0
  19. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +151 -0
  20. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +367 -0
  21. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +397 -0
  22. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +5 -0
  23. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +61 -0
  24. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +151 -0
  25. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +107 -0
  26. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/types.js +5 -0
  27. package/dist/cjs/vc/vc-observer-new/metric-calculator/types.js +5 -0
  28. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +16 -0
  29. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +16 -0
  30. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +16 -0
  31. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/task-yield.js +45 -0
  32. package/dist/cjs/vc/vc-observer-new/types.js +5 -0
  33. package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +195 -0
  34. package/dist/cjs/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +71 -0
  35. package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +65 -0
  36. package/dist/cjs/vc/vc-observer-new/viewport-observer/performance-observer/index.js +58 -0
  37. package/dist/cjs/vc/vc-observer-new/viewport-observer/types.js +1 -0
  38. package/dist/cjs/vc/vc-observer-new/window-event-observer/index.js +54 -0
  39. package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +2 -2
  40. package/dist/es2019/create-payload/index.js +8 -7
  41. package/dist/es2019/interaction-metrics/index.js +3 -3
  42. package/dist/es2019/interaction-metrics/post-interaction-log.js +5 -5
  43. package/dist/es2019/interaction-metrics-init/index.js +26 -7
  44. package/dist/es2019/segment/schedule-on-paint.js +29 -0
  45. package/dist/es2019/segment/segment.js +9 -1
  46. package/dist/es2019/vc/index.js +56 -1
  47. package/dist/es2019/vc/types.js +1 -0
  48. package/dist/es2019/vc/vc-observer/index.js +1 -4
  49. package/dist/es2019/vc/vc-observer-new/entries-timeline/index.js +34 -0
  50. package/dist/es2019/vc/vc-observer-new/get-element-name.js +62 -0
  51. package/dist/es2019/vc/vc-observer-new/index.js +98 -0
  52. package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +38 -0
  53. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +39 -0
  54. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +194 -0
  55. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +69 -0
  56. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +248 -0
  57. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +261 -0
  58. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +1 -0
  59. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +19 -0
  60. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +98 -0
  61. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +58 -0
  62. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/types.js +1 -0
  63. package/dist/es2019/vc/vc-observer-new/metric-calculator/types.js +1 -0
  64. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +9 -0
  65. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +9 -0
  66. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +10 -0
  67. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/task-yield.js +17 -0
  68. package/dist/es2019/vc/vc-observer-new/types.js +1 -0
  69. package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +168 -0
  70. package/dist/es2019/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +65 -0
  71. package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +48 -0
  72. package/dist/es2019/vc/vc-observer-new/viewport-observer/performance-observer/index.js +41 -0
  73. package/dist/es2019/vc/vc-observer-new/viewport-observer/types.js +0 -0
  74. package/dist/es2019/vc/vc-observer-new/window-event-observer/index.js +36 -0
  75. package/dist/esm/create-experimental-interaction-metrics-payload/index.js +52 -25
  76. package/dist/esm/create-payload/index.js +290 -231
  77. package/dist/esm/interaction-metrics/index.js +61 -23
  78. package/dist/esm/interaction-metrics/post-interaction-log.js +63 -34
  79. package/dist/esm/interaction-metrics-init/index.js +26 -7
  80. package/dist/esm/segment/schedule-on-paint.js +29 -0
  81. package/dist/esm/segment/segment.js +10 -1
  82. package/dist/esm/vc/index.js +104 -1
  83. package/dist/esm/vc/types.js +1 -0
  84. package/dist/esm/vc/vc-observer/index.js +198 -208
  85. package/dist/esm/vc/vc-observer-new/entries-timeline/index.js +50 -0
  86. package/dist/esm/vc/vc-observer-new/get-element-name.js +62 -0
  87. package/dist/esm/vc/vc-observer-new/index.js +126 -0
  88. package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +69 -0
  89. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +54 -0
  90. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +268 -0
  91. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +143 -0
  92. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +361 -0
  93. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +390 -0
  94. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +1 -0
  95. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +54 -0
  96. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +144 -0
  97. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +100 -0
  98. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/types.js +1 -0
  99. package/dist/esm/vc/vc-observer-new/metric-calculator/types.js +1 -0
  100. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +10 -0
  101. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +10 -0
  102. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +10 -0
  103. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/task-yield.js +38 -0
  104. package/dist/esm/vc/vc-observer-new/types.js +1 -0
  105. package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +189 -0
  106. package/dist/esm/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +65 -0
  107. package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +59 -0
  108. package/dist/esm/vc/vc-observer-new/viewport-observer/performance-observer/index.js +51 -0
  109. package/dist/esm/vc/vc-observer-new/viewport-observer/types.js +0 -0
  110. package/dist/esm/vc/vc-observer-new/window-event-observer/index.js +48 -0
  111. package/dist/types/common/index.d.ts +1 -0
  112. package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +3 -2
  113. package/dist/types/create-payload/index.d.ts +4 -4
  114. package/dist/types/interaction-metrics/post-interaction-log.d.ts +3 -2
  115. package/dist/types/segment/schedule-on-paint.d.ts +2 -0
  116. package/dist/types/vc/index.d.ts +3 -3
  117. package/dist/types/vc/types.d.ts +34 -0
  118. package/dist/types/vc/vc-observer/index.d.ts +5 -21
  119. package/dist/types/vc/vc-observer-new/entries-timeline/index.d.ts +13 -0
  120. package/dist/types/vc/vc-observer-new/get-element-name.d.ts +8 -0
  121. package/dist/types/vc/vc-observer-new/index.d.ts +18 -0
  122. package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +9 -0
  123. package/dist/types/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +7 -0
  124. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +91 -0
  125. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +4 -0
  126. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +39 -0
  127. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +8 -0
  128. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +43 -0
  129. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +3 -0
  130. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +11 -0
  131. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +23 -0
  132. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +9 -0
  133. package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +20 -0
  134. package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +1 -0
  135. package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +1 -0
  136. package/dist/types/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -0
  137. package/dist/types/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +1 -0
  138. package/dist/types/vc/vc-observer-new/types.d.ts +21 -0
  139. package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +22 -0
  140. package/dist/types/vc/vc-observer-new/viewport-observer/intersection-observer/index.d.ts +30 -0
  141. package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +14 -0
  142. package/dist/types/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +14 -0
  143. package/dist/types/vc/vc-observer-new/viewport-observer/types.d.ts +10 -0
  144. package/dist/types/vc/vc-observer-new/window-event-observer/index.d.ts +17 -0
  145. package/dist/types-ts4.5/common/index.d.ts +1 -0
  146. package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +3 -2
  147. package/dist/types-ts4.5/create-payload/index.d.ts +4 -4
  148. package/dist/types-ts4.5/interaction-metrics/post-interaction-log.d.ts +3 -2
  149. package/dist/types-ts4.5/segment/schedule-on-paint.d.ts +2 -0
  150. package/dist/types-ts4.5/vc/index.d.ts +3 -3
  151. package/dist/types-ts4.5/vc/types.d.ts +34 -0
  152. package/dist/types-ts4.5/vc/vc-observer/index.d.ts +5 -21
  153. package/dist/types-ts4.5/vc/vc-observer-new/entries-timeline/index.d.ts +13 -0
  154. package/dist/types-ts4.5/vc/vc-observer-new/get-element-name.d.ts +8 -0
  155. package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +18 -0
  156. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +9 -0
  157. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +7 -0
  158. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +91 -0
  159. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +4 -0
  160. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +39 -0
  161. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +8 -0
  162. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +43 -0
  163. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +3 -0
  164. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +11 -0
  165. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +23 -0
  166. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +9 -0
  167. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +20 -0
  168. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +1 -0
  169. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +1 -0
  170. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -0
  171. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +1 -0
  172. package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +21 -0
  173. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +22 -0
  174. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/intersection-observer/index.d.ts +30 -0
  175. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +14 -0
  176. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +14 -0
  177. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/types.d.ts +10 -0
  178. package/dist/types-ts4.5/vc/vc-observer-new/window-event-observer/index.d.ts +17 -0
  179. 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,10 @@
1
+ export default function isViewportEntryData(data) {
2
+ if (data) {
3
+ var hasElementName = typeof data.elementName === 'string';
4
+ var hasRect = typeof data.rect !== 'undefined';
5
+ if (hasRect && hasElementName) {
6
+ return true;
7
+ }
8
+ }
9
+ return false;
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
+ }
@@ -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 { VCObserver, type VCObserverOptions } from '../vc/vc-observer';
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 { VCObserver, type VCObserverOptions } from '../vc/vc-observer';
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
@@ -0,0 +1,2 @@
1
+ export type OnPaintCallback = () => any;
2
+ export default function scheduleOnPaint(callback: OnPaintCallback): void;
@@ -1,5 +1,5 @@
1
- import { VCObserver, type VCObserverOptions } from './vc-observer';
1
+ import type { VCObserverInterface, VCObserverOptions } from './types';
2
2
  declare global {
3
- var __vcObserver: VCObserver;
3
+ var __vcObserver: VCObserverInterface;
4
4
  }
5
- export declare const getVCObserver: (opts?: VCObserverOptions) => VCObserver;
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, VCAbortReason, VCAbortReasonType, VCEntryType, VCIgnoreReason, VCRatioType, VCRawDataType, VCResult } from '../../common/vc/types';
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, type SelectorConfig } from './observers';
5
- type GetVCResultType = {
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 {};