@atlaskit/react-ufo 3.12.4 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +2 -1
- package/dist/cjs/create-payload/utils/get-vc-metrics.js +2 -1
- package/dist/cjs/vc/index.js +4 -2
- package/dist/cjs/vc/vc-observer/getVCRevisionDebugDetails.js +41 -0
- package/dist/cjs/vc/vc-observer/index.js +63 -33
- package/dist/cjs/vc/vc-observer/observers/index.js +3 -2
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +38 -12
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.js +9 -0
- package/dist/cjs/vc/vc-observer-new/index.js +13 -7
- package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +211 -36
- package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +94 -4
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.js +108 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +16 -57
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +15 -5
- package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +3 -1
- package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +2 -1
- package/dist/es2019/create-payload/utils/get-vc-metrics.js +1 -0
- package/dist/es2019/vc/index.js +4 -2
- package/dist/es2019/vc/vc-observer/getVCRevisionDebugDetails.js +32 -0
- package/dist/es2019/vc/vc-observer/index.js +36 -1
- package/dist/es2019/vc/vc-observer/observers/index.js +2 -1
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +38 -13
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.js +9 -1
- package/dist/es2019/vc/vc-observer-new/index.js +12 -6
- package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +115 -17
- package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +44 -1
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.js +75 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +2 -20
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +15 -5
- package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +3 -1
- package/dist/esm/create-experimental-interaction-metrics-payload/index.js +2 -1
- package/dist/esm/create-payload/utils/get-vc-metrics.js +2 -1
- package/dist/esm/vc/index.js +4 -2
- package/dist/esm/vc/vc-observer/getVCRevisionDebugDetails.js +35 -0
- package/dist/esm/vc/vc-observer/index.js +63 -33
- package/dist/esm/vc/vc-observer/observers/index.js +3 -2
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +38 -12
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.js +9 -0
- package/dist/esm/vc/vc-observer-new/index.js +13 -7
- package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +211 -36
- package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +94 -5
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.js +106 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +2 -55
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +15 -5
- package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +3 -1
- package/dist/types/config/index.d.ts +1 -0
- package/dist/types/vc/types.d.ts +2 -0
- package/dist/types/vc/vc-observer/getVCRevisionDebugDetails.d.ts +30 -0
- package/dist/types/vc/vc-observer/index.d.ts +1 -1
- package/dist/types/vc/vc-observer/observers/index.d.ts +3 -0
- package/dist/types/vc/vc-observer/observers/ssr-placeholders/index.d.ts +4 -1
- package/dist/types/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/index.d.ts +2 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +4 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +5 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.d.ts +1 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -4
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +20 -2
- package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
- package/dist/types/vc/vc-observer-new/types.d.ts +5 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/types.d.ts +2 -0
- package/dist/types-ts4.5/config/index.d.ts +1 -0
- package/dist/types-ts4.5/vc/types.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer/getVCRevisionDebugDetails.d.ts +30 -0
- package/dist/types-ts4.5/vc/vc-observer/index.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer/observers/index.d.ts +3 -0
- package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/index.d.ts +4 -1
- package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +4 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +5 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.d.ts +1 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -4
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +20 -2
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +5 -1
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/types.d.ts +2 -0
- package/package.json +4 -1
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +0 -367
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +0 -398
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +0 -5
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +0 -152
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +0 -108
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +0 -248
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +0 -263
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +0 -1
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +0 -99
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +0 -60
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +0 -361
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +0 -391
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +0 -1
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +0 -145
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +0 -101
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +0 -39
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +0 -10
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +0 -43
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +0 -12
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +0 -25
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +0 -39
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +0 -10
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +0 -43
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +0 -12
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +0 -25
|
@@ -1,361 +0,0 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
6
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
7
|
-
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; }
|
|
8
|
-
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) { _defineProperty(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; }
|
|
9
|
-
import isViewportEntryData from '../../utils/is-viewport-entry-data';
|
|
10
|
-
import taskYield from '../../utils/task-yield';
|
|
11
|
-
var MAX_HEATMAP_SIZE = 1000;
|
|
12
|
-
function createEmptyHeatmapEntry() {
|
|
13
|
-
return {
|
|
14
|
-
head: null,
|
|
15
|
-
previousEntries: []
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
function createEmptyMap(heatmapWidth, heatmapHeight) {
|
|
19
|
-
return Array.from({
|
|
20
|
-
length: heatmapHeight
|
|
21
|
-
}).map(function () {
|
|
22
|
-
return Array.from({
|
|
23
|
-
length: heatmapWidth
|
|
24
|
-
}).map(createEmptyHeatmapEntry);
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
function isRectInside(a, b) {
|
|
28
|
-
if (!a || !b) {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// Check if all corners of rectangle a are within the bounds of rectangle b
|
|
33
|
-
return a.left >= b.left && a.right <= b.right && a.top >= b.top && a.bottom <= b.bottom;
|
|
34
|
-
}
|
|
35
|
-
var Heatmap = /*#__PURE__*/function () {
|
|
36
|
-
/**
|
|
37
|
-
* Heatmap Width
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Heatmap Height
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Heatmap Area (width * height)
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
|
-
function Heatmap(_ref) {
|
|
49
|
-
var viewport = _ref.viewport,
|
|
50
|
-
heatmapSize = _ref.heatmapSize;
|
|
51
|
-
_classCallCheck(this, Heatmap);
|
|
52
|
-
// TODO timeOrigin? do we need? for SSR??
|
|
53
|
-
this.viewport = viewport;
|
|
54
|
-
var safeSize = Math.min(heatmapSize, MAX_HEATMAP_SIZE);
|
|
55
|
-
if (viewport.width === 0 || viewport.height === 0) {
|
|
56
|
-
this.width = safeSize;
|
|
57
|
-
this.height = safeSize;
|
|
58
|
-
this.scaleX = 1;
|
|
59
|
-
this.scaleY = 1;
|
|
60
|
-
this.heatmapAreaSize = 0;
|
|
61
|
-
this.map = createEmptyMap(safeSize, safeSize);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
var aspectRatio = viewport.width / viewport.height;
|
|
65
|
-
if (aspectRatio > 1) {
|
|
66
|
-
// Landscape orientation
|
|
67
|
-
this.width = safeSize;
|
|
68
|
-
this.height = Math.round(safeSize / aspectRatio);
|
|
69
|
-
} else {
|
|
70
|
-
// Portrait orientation
|
|
71
|
-
this.width = safeSize;
|
|
72
|
-
this.height = Math.round(safeSize * aspectRatio);
|
|
73
|
-
}
|
|
74
|
-
this.scaleX = this.width / viewport.width;
|
|
75
|
-
this.scaleY = this.height / viewport.height;
|
|
76
|
-
this.heatmapAreaSize = this.width * this.height;
|
|
77
|
-
this.map = createEmptyMap(this.width, this.height);
|
|
78
|
-
}
|
|
79
|
-
return _createClass(Heatmap, [{
|
|
80
|
-
key: "getHeatmap",
|
|
81
|
-
value: function getHeatmap() {
|
|
82
|
-
return this.map;
|
|
83
|
-
}
|
|
84
|
-
}, {
|
|
85
|
-
key: "getCell",
|
|
86
|
-
value: function getCell(row, col) {
|
|
87
|
-
var _this$map$row;
|
|
88
|
-
return (_this$map$row = this.map[row]) === null || _this$map$row === void 0 ? void 0 : _this$map$row[col];
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Map Dom Rect to Heatmap Rect, rounded up to occupy full cell.
|
|
93
|
-
* @param rect DOM Rect
|
|
94
|
-
* @returns
|
|
95
|
-
*/
|
|
96
|
-
}, {
|
|
97
|
-
key: "mapDOMRectToHeatmap",
|
|
98
|
-
value: function mapDOMRectToHeatmap(rect) {
|
|
99
|
-
var scaledX = rect.x * this.scaleX;
|
|
100
|
-
var scaledY = rect.y * this.scaleY;
|
|
101
|
-
var scaledWidth = rect.width * this.scaleX;
|
|
102
|
-
var scaledHeight = rect.height * this.scaleY;
|
|
103
|
-
return {
|
|
104
|
-
left: Math.floor(scaledX),
|
|
105
|
-
right: Math.ceil(scaledX + scaledWidth),
|
|
106
|
-
top: Math.floor(scaledY),
|
|
107
|
-
bottom: Math.ceil(scaledY + scaledHeight)
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Calculate the ratio of a HeatmapRect compared to the full heatmap
|
|
113
|
-
*
|
|
114
|
-
* This function determines what fraction of the heatmap is covered by the given heatmap rectangle.
|
|
115
|
-
*
|
|
116
|
-
* @param rect
|
|
117
|
-
*/
|
|
118
|
-
}, {
|
|
119
|
-
key: "getRatio",
|
|
120
|
-
value: function getRatio(rect) {
|
|
121
|
-
if (this.viewport.width === 0 || this.viewport.height === 0) {
|
|
122
|
-
return 0;
|
|
123
|
-
}
|
|
124
|
-
var right = rect.right,
|
|
125
|
-
left = rect.left,
|
|
126
|
-
bottom = rect.bottom,
|
|
127
|
-
top = rect.top;
|
|
128
|
-
var rectWidth = right - left;
|
|
129
|
-
var rectHeight = bottom - top;
|
|
130
|
-
var rectArea = rectWidth * rectHeight;
|
|
131
|
-
var ratio = rectArea / this.heatmapAreaSize;
|
|
132
|
-
if (ratio > 1) {
|
|
133
|
-
return 1;
|
|
134
|
-
}
|
|
135
|
-
return ratio;
|
|
136
|
-
}
|
|
137
|
-
}, {
|
|
138
|
-
key: "applyEntriesToHeatmap",
|
|
139
|
-
value: function () {
|
|
140
|
-
var _applyEntriesToHeatmap = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(entries) {
|
|
141
|
-
var i, entry, time, type, data, rect, ratio, heatmapEntryData, roundedTop, roundedBottom, roundedLeft, roundedRight, row, col, cell, previousEntry;
|
|
142
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
143
|
-
while (1) switch (_context.prev = _context.next) {
|
|
144
|
-
case 0:
|
|
145
|
-
i = 0;
|
|
146
|
-
case 1:
|
|
147
|
-
if (!(i < entries.length)) {
|
|
148
|
-
_context.next = 37;
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
entry = entries[i];
|
|
152
|
-
time = entry.time, type = entry.type, data = entry.data;
|
|
153
|
-
if (!isViewportEntryData(data)) {
|
|
154
|
-
_context.next = 31;
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
rect = this.mapDOMRectToHeatmap(data.rect);
|
|
158
|
-
ratio = this.getRatio(rect);
|
|
159
|
-
heatmapEntryData = {
|
|
160
|
-
time: time,
|
|
161
|
-
elementName: data.elementName,
|
|
162
|
-
ratio: ratio !== null && ratio !== void 0 ? ratio : null,
|
|
163
|
-
rect: rect,
|
|
164
|
-
source: type
|
|
165
|
-
};
|
|
166
|
-
roundedTop = Math.floor(rect.top);
|
|
167
|
-
roundedBottom = Math.min(rect.bottom, this.height);
|
|
168
|
-
roundedLeft = Math.floor(rect.left);
|
|
169
|
-
roundedRight = Math.min(rect.right, this.width);
|
|
170
|
-
row = roundedTop;
|
|
171
|
-
case 13:
|
|
172
|
-
if (!(row < roundedBottom)) {
|
|
173
|
-
_context.next = 31;
|
|
174
|
-
break;
|
|
175
|
-
}
|
|
176
|
-
col = roundedLeft;
|
|
177
|
-
case 15:
|
|
178
|
-
if (!(col < roundedRight)) {
|
|
179
|
-
_context.next = 28;
|
|
180
|
-
break;
|
|
181
|
-
}
|
|
182
|
-
cell = this.getCell(row, col);
|
|
183
|
-
if (cell) {
|
|
184
|
-
_context.next = 19;
|
|
185
|
-
break;
|
|
186
|
-
}
|
|
187
|
-
return _context.abrupt("continue", 25);
|
|
188
|
-
case 19:
|
|
189
|
-
previousEntry = cell.head; // When elements are added at the same time
|
|
190
|
-
// we try to keep the inner element changes as the head
|
|
191
|
-
if (!((previousEntry === null || previousEntry === void 0 ? void 0 : previousEntry.time) === entry.time && isRectInside(previousEntry.rect, heatmapEntryData.rect))) {
|
|
192
|
-
_context.next = 23;
|
|
193
|
-
break;
|
|
194
|
-
}
|
|
195
|
-
cell.previousEntries.push(_objectSpread(_objectSpread({}, heatmapEntryData), {}, {
|
|
196
|
-
source: 'mutation:parent-mounted'
|
|
197
|
-
}));
|
|
198
|
-
return _context.abrupt("continue", 25);
|
|
199
|
-
case 23:
|
|
200
|
-
cell.head = _objectSpread(_objectSpread({}, heatmapEntryData), {}, {
|
|
201
|
-
source: heatmapEntryData.source || null
|
|
202
|
-
});
|
|
203
|
-
if (previousEntry !== null) {
|
|
204
|
-
cell.previousEntries.push(previousEntry);
|
|
205
|
-
}
|
|
206
|
-
case 25:
|
|
207
|
-
col++;
|
|
208
|
-
_context.next = 15;
|
|
209
|
-
break;
|
|
210
|
-
case 28:
|
|
211
|
-
row++;
|
|
212
|
-
_context.next = 13;
|
|
213
|
-
break;
|
|
214
|
-
case 31:
|
|
215
|
-
if (!(i % 100 === 0)) {
|
|
216
|
-
_context.next = 34;
|
|
217
|
-
break;
|
|
218
|
-
}
|
|
219
|
-
_context.next = 34;
|
|
220
|
-
return taskYield();
|
|
221
|
-
case 34:
|
|
222
|
-
i++;
|
|
223
|
-
_context.next = 1;
|
|
224
|
-
break;
|
|
225
|
-
case 37:
|
|
226
|
-
case "end":
|
|
227
|
-
return _context.stop();
|
|
228
|
-
}
|
|
229
|
-
}, _callee, this);
|
|
230
|
-
}));
|
|
231
|
-
function applyEntriesToHeatmap(_x) {
|
|
232
|
-
return _applyEntriesToHeatmap.apply(this, arguments);
|
|
233
|
-
}
|
|
234
|
-
return applyEntriesToHeatmap;
|
|
235
|
-
}()
|
|
236
|
-
}, {
|
|
237
|
-
key: "getVCPercentMetrics",
|
|
238
|
-
value: function () {
|
|
239
|
-
var _getVCPercentMetrics = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(vcPercentCheckpoint) {
|
|
240
|
-
var sortedCheckpoints, flattenHeatmap, totalCells, timestampMap, i, _cellHead$time, _timestampMap$get, cell, cellHead, timestamp, elementName, curr, sortedTimings, totalCellPainted, result, domElementsBuffer, _i, _timestamp, timestampInfo, cellCount, domElements, currVCRatio, currVCPercent, matchesAnyCheckpoints, checkpoint, _domElements;
|
|
241
|
-
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
242
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
243
|
-
case 0:
|
|
244
|
-
sortedCheckpoints = _toConsumableArray(vcPercentCheckpoint).sort(function (a, b) {
|
|
245
|
-
return a - b;
|
|
246
|
-
});
|
|
247
|
-
flattenHeatmap = this.map.flat();
|
|
248
|
-
totalCells = flattenHeatmap.length;
|
|
249
|
-
timestampMap = new Map();
|
|
250
|
-
i = 0;
|
|
251
|
-
case 5:
|
|
252
|
-
if (!(i < flattenHeatmap.length)) {
|
|
253
|
-
_context2.next = 20;
|
|
254
|
-
break;
|
|
255
|
-
}
|
|
256
|
-
cell = flattenHeatmap[i];
|
|
257
|
-
cellHead = cell.head;
|
|
258
|
-
timestamp = Math.trunc((_cellHead$time = cellHead === null || cellHead === void 0 ? void 0 : cellHead.time) !== null && _cellHead$time !== void 0 ? _cellHead$time : 0);
|
|
259
|
-
elementName = cellHead === null || cellHead === void 0 ? void 0 : cellHead.elementName;
|
|
260
|
-
curr = (_timestampMap$get = timestampMap.get(timestamp)) !== null && _timestampMap$get !== void 0 ? _timestampMap$get : {
|
|
261
|
-
cellCount: 0,
|
|
262
|
-
domElements: new Set()
|
|
263
|
-
};
|
|
264
|
-
curr.cellCount += 1;
|
|
265
|
-
if (elementName) {
|
|
266
|
-
curr.domElements.add(elementName);
|
|
267
|
-
}
|
|
268
|
-
timestampMap.set(timestamp, curr);
|
|
269
|
-
|
|
270
|
-
// Every 10000 heatmap entries processed
|
|
271
|
-
// we give the browser the power
|
|
272
|
-
// to process any other high priority task
|
|
273
|
-
if (!(i > 10000 && i % 10000 === 0)) {
|
|
274
|
-
_context2.next = 17;
|
|
275
|
-
break;
|
|
276
|
-
}
|
|
277
|
-
_context2.next = 17;
|
|
278
|
-
return taskYield();
|
|
279
|
-
case 17:
|
|
280
|
-
i++;
|
|
281
|
-
_context2.next = 5;
|
|
282
|
-
break;
|
|
283
|
-
case 20:
|
|
284
|
-
sortedTimings = _toConsumableArray(timestampMap.keys()).sort(function (a, b) {
|
|
285
|
-
return a - b;
|
|
286
|
-
});
|
|
287
|
-
totalCellPainted = 0;
|
|
288
|
-
result = {};
|
|
289
|
-
domElementsBuffer = new Set();
|
|
290
|
-
_i = 0;
|
|
291
|
-
case 25:
|
|
292
|
-
if (!(_i < sortedTimings.length)) {
|
|
293
|
-
_context2.next = 52;
|
|
294
|
-
break;
|
|
295
|
-
}
|
|
296
|
-
_timestamp = sortedTimings[_i];
|
|
297
|
-
timestampInfo = timestampMap.get(_timestamp);
|
|
298
|
-
if (timestampInfo) {
|
|
299
|
-
_context2.next = 30;
|
|
300
|
-
break;
|
|
301
|
-
}
|
|
302
|
-
throw new Error('unexpected timestampInfo not found');
|
|
303
|
-
case 30:
|
|
304
|
-
cellCount = timestampInfo.cellCount, domElements = timestampInfo.domElements;
|
|
305
|
-
totalCellPainted += cellCount;
|
|
306
|
-
currVCRatio = totalCellPainted / totalCells;
|
|
307
|
-
currVCPercent = Math.round(currVCRatio * 100);
|
|
308
|
-
domElements.forEach(function (domElement) {
|
|
309
|
-
domElementsBuffer.add(domElement);
|
|
310
|
-
});
|
|
311
|
-
matchesAnyCheckpoints = false;
|
|
312
|
-
case 36:
|
|
313
|
-
if (!(sortedCheckpoints.length > 0 && currVCPercent >= sortedCheckpoints[0])) {
|
|
314
|
-
_context2.next = 45;
|
|
315
|
-
break;
|
|
316
|
-
}
|
|
317
|
-
checkpoint = sortedCheckpoints.shift();
|
|
318
|
-
_domElements = _toConsumableArray(domElementsBuffer);
|
|
319
|
-
if (checkpoint) {
|
|
320
|
-
_context2.next = 41;
|
|
321
|
-
break;
|
|
322
|
-
}
|
|
323
|
-
return _context2.abrupt("break", 45);
|
|
324
|
-
case 41:
|
|
325
|
-
matchesAnyCheckpoints = true;
|
|
326
|
-
result[checkpoint.toString()] = {
|
|
327
|
-
t: _timestamp,
|
|
328
|
-
e: _domElements
|
|
329
|
-
};
|
|
330
|
-
_context2.next = 36;
|
|
331
|
-
break;
|
|
332
|
-
case 45:
|
|
333
|
-
if (matchesAnyCheckpoints) {
|
|
334
|
-
domElementsBuffer.clear();
|
|
335
|
-
}
|
|
336
|
-
if (!(_i % 500 === 0)) {
|
|
337
|
-
_context2.next = 49;
|
|
338
|
-
break;
|
|
339
|
-
}
|
|
340
|
-
_context2.next = 49;
|
|
341
|
-
return taskYield();
|
|
342
|
-
case 49:
|
|
343
|
-
_i++;
|
|
344
|
-
_context2.next = 25;
|
|
345
|
-
break;
|
|
346
|
-
case 52:
|
|
347
|
-
return _context2.abrupt("return", result);
|
|
348
|
-
case 53:
|
|
349
|
-
case "end":
|
|
350
|
-
return _context2.stop();
|
|
351
|
-
}
|
|
352
|
-
}, _callee2, this);
|
|
353
|
-
}));
|
|
354
|
-
function getVCPercentMetrics(_x2) {
|
|
355
|
-
return _getVCPercentMetrics.apply(this, arguments);
|
|
356
|
-
}
|
|
357
|
-
return getVCPercentMetrics;
|
|
358
|
-
}()
|
|
359
|
-
}]);
|
|
360
|
-
}();
|
|
361
|
-
export { Heatmap as default };
|