UNPKG

@embrace-io/web-sdk

Version:
43 lines (42 loc) 1.94 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const require_instrumentations_EmbraceInstrumentationBase_EmbraceInstrumentationBase = require("../../EmbraceInstrumentationBase/EmbraceInstrumentationBase.cjs"); const require_instrumentations_clicks_ClicksInstrumentation_utils = require("./utils.cjs"); //#region src/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.ts var ClicksInstrumentation = class extends require_instrumentations_EmbraceInstrumentationBase_EmbraceInstrumentationBase.EmbraceInstrumentationBase { _onClickHandler; constructor({ diag, perf, shouldTrack, innerTextForElement } = {}) { super({ instrumentationName: "ClicksInstrumentation", instrumentationVersion: "1.0.0", diag, perf, config: {} }); this._onClickHandler = (event) => { const element = event.target; if (!(element instanceof HTMLElement)) return; if (element.hasAttribute("disabled")) return; if (shouldTrack && !shouldTrack(element)) return; try { const currentSessionPartSpan = this.userSessionManager.getSessionPartSpan(); if (currentSessionPartSpan) currentSessionPartSpan.addEvent("click", { "emb.type": "ux.tap", "view.name": require_instrumentations_clicks_ClicksInstrumentation_utils.getHTMLElementFriendlyName(element, innerTextForElement ? innerTextForElement(element) : element.innerText), "tap.coords": `${event.x.toString()},${event.y.toString()}` }, this.perf.epochMillisFromOrigin(event.timeStamp)); } catch (e) { this._diag.error("failed to create new user interaction span event", e); } }; if (this._config.enabled) this.enable(); } onDisable() { document.removeEventListener("click", this._onClickHandler); } onEnable() { document.addEventListener("click", this._onClickHandler); } }; //#endregion exports.ClicksInstrumentation = ClicksInstrumentation; //# sourceMappingURL=ClicksInstrumentation.cjs.map