157 lines
5.2 KiB
JavaScript
157 lines
5.2 KiB
JavaScript
// Metro module 1070 (f1071).
|
|
import { msToSec, startStandaloneWebVitalSpan, getBrowserPerformanceAPI } from "./Module1059";
|
|
import { browserPerformanceTimeOrigin, getActiveSpan, getRootSpan, spanToJSON, getCurrentScope, htmlTreeAsString, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, isBrowser } from "./Module817";
|
|
import { addInpInstrumentationHandler, isPerformanceEventTiming, addPerformanceInstrumentationHandler } from "./triggerHandlers";
|
|
import { WINDOW } from "./Module1039";
|
|
Object.defineProperty(exports, Symbol.toStringTag, {
|
|
value: "Module"
|
|
});
|
|
let c881_2 = [];
|
|
let c881_3 = new Map();
|
|
let c881_4 = new Map();
|
|
let c881_5 = {
|
|
click: "click",
|
|
pointerdown: "click",
|
|
pointerup: "click",
|
|
mousedown: "click",
|
|
mouseup: "click",
|
|
touchstart: "click",
|
|
touchend: "click",
|
|
mouseover: "hover",
|
|
mouseout: "hover",
|
|
mouseenter: "hover",
|
|
mouseleave: "hover",
|
|
pointerover: "hover",
|
|
pointerout: "hover",
|
|
pointerenter: "hover",
|
|
pointerleave: "hover",
|
|
dragstart: "drag",
|
|
dragend: "drag",
|
|
drag: "drag",
|
|
dragenter: "drag",
|
|
dragleave: "drag",
|
|
dragover: "drag",
|
|
drop: "drag",
|
|
keydown: "press",
|
|
keyup: "press",
|
|
keypress: "press",
|
|
input: "press"
|
|
};
|
|
const _onInp = ({ metric }) => {
|
|
if (metric.value != null) {
|
|
const r20 = msToSec(metric.value);
|
|
if (!(r20 > 60)) {
|
|
const r24 = metric.entries.find((entry) => entry.duration === metric.value && c881_5[entry.name]);
|
|
if (r24) {
|
|
const interactionId = r24.interactionId;
|
|
const r16 = c881_5[r24.name];
|
|
const startTime = msToSec(browserPerformanceTimeOrigin() + r24.startTime);
|
|
const activeSpan = getActiveSpan();
|
|
const r38 = activeSpan ? getRootSpan(activeSpan) : void 0;
|
|
const r42 = interactionId != null ? c881_3.get(interactionId) : void 0;
|
|
const r46 = r42?.span || r38;
|
|
const transaction = r46 ? spanToJSON(r46).description : getCurrentScope().getScopeData().transactionName;
|
|
const name = r42?.elementName || htmlTreeAsString(r24.target);
|
|
const attributes = {};
|
|
attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] = "auto.http.browser.inp";
|
|
attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] = `ui.interaction.${r16}`;
|
|
attributes[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] = r24.duration;
|
|
const r83 = startStandaloneWebVitalSpan({
|
|
name,
|
|
transaction,
|
|
attributes,
|
|
startTime
|
|
});
|
|
if (r83) {
|
|
const r85 = {};
|
|
r85[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT] = "millisecond";
|
|
r85[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE] = metric.value;
|
|
r83.addEvent("inp", r85);
|
|
r83.end(startTime + r20);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
export { _onInp };
|
|
export function _trackINP() {
|
|
return addInpInstrumentationHandler(_onInp);
|
|
}
|
|
export function registerInpInteractionListener() {
|
|
const captureElementFromEvent2 = function captureElementFromEvent(a0) {
|
|
const target = a0.target;
|
|
if (target) {
|
|
const r10 = htmlTreeAsString(target);
|
|
c881_4.set(Math.round(a0.timeStamp), r10);
|
|
if (c881_4.size > 50) {
|
|
const value = c881_4.keys().next().value;
|
|
if (value !== void 0) {
|
|
c881_4.delete(value);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
const r6 = Object.keys(c881_5);
|
|
if (isBrowser()) {
|
|
r6.forEach((item) => {
|
|
WINDOW.addEventListener(item, captureElementFromEvent2, {
|
|
capture: true,
|
|
passive: true
|
|
});
|
|
});
|
|
}
|
|
const handleEntries = ({ entries }) => {
|
|
const activeSpan = getActiveSpan();
|
|
const rootSpan = activeSpan && getRootSpan(activeSpan);
|
|
entries.forEach((entry) => {
|
|
let elementName;
|
|
if (isPerformanceEventTiming(entry)) {
|
|
const interactionId = entry.interactionId;
|
|
if (interactionId != null && !c881_3.has(interactionId)) {
|
|
if (entry.target) {
|
|
elementName = htmlTreeAsString(entry.target);
|
|
} else {
|
|
const r26 = Math.round(entry.startTime);
|
|
const r29 = c881_4.get(r26);
|
|
let r0 = -5;
|
|
elementName = r29;
|
|
if (!elementName) {
|
|
do {
|
|
elementName = c881_4.get(r26 + r0);
|
|
const r1 = r0;
|
|
if (elementName) {
|
|
break;
|
|
}
|
|
r0 = r1 + 1;
|
|
elementName = r29;
|
|
} while (r0 <= 5);
|
|
}
|
|
if (!elementName) {
|
|
elementName = "<unknown>";
|
|
}
|
|
}
|
|
if (c881_2.length > 10) {
|
|
c881_3.delete(c881_2.shift());
|
|
}
|
|
c881_2.push(interactionId);
|
|
c881_3.set(interactionId, {
|
|
span: rootSpan,
|
|
elementName
|
|
});
|
|
}
|
|
}
|
|
});
|
|
};
|
|
addPerformanceInstrumentationHandler("event", handleEntries);
|
|
addPerformanceInstrumentationHandler("first-input", handleEntries);
|
|
}
|
|
export function startTrackingINP() {
|
|
if (getBrowserPerformanceAPI() && browserPerformanceTimeOrigin()) {
|
|
let c12703_0 = addInpInstrumentationHandler(_onInp);
|
|
return () => {
|
|
c12703_0();
|
|
};
|
|
}
|
|
return () => {};
|
|
}
|