UNPKG

as-event-tracker

Version:

Logs events in the browser based on client interactions.

75 lines 3.01 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBrowserHeight = exports.getBrowserWidth = exports.detectPageLoad = exports.getPagePosition = exports.getBrowserVersion = void 0; var LoadEventRequest_1 = __importDefault(require("../entities/requests/LoadEventRequest")); var index_1 = require("../events/index"); function getBrowserVersion() { var browser = globalThis.CaptureState.clientChannelMeta.browser; if (browser) return browser; if (!globalThis.navigator) return null; var userAgent = globalThis.navigator.userAgent; var matchTest = userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; if (matchTest.length < 1) return ""; var tem; if (/trident/i.test(matchTest[1])) { tem = /\brv[ :]+(\d+)/g.exec(userAgent) || []; return "IE " + (tem[1] || ""); } if (matchTest[1] === "Chrome") { tem = userAgent.match(/\b(OPR|Edge)\/(\d+)/); if (tem != null) return tem.slice(1).join(" ").replace("OPR", "Opera"); } var _a = globalThis.navigator, appName = _a.appName, appVersion = _a.appVersion; matchTest = matchTest[2] ? [matchTest[1], matchTest[2]] : [appName, appVersion, "-?"]; if ((tem = userAgent.match(/version\/(\d+)/i)) != null) matchTest.splice(1, 1, tem[1]); return matchTest.join(" "); } exports.getBrowserVersion = getBrowserVersion; ; function getPagePosition(elem) { var pagePos = 0; var buttons = [].slice.call(globalThis.document.getElementsByTagName("button")); pagePos = buttons.indexOf(elem); pagePos !== -1 ? (pagePos += 1) : pagePos; return pagePos; } exports.getPagePosition = getPagePosition; ; function detectPageLoad() { var lastURL = globalThis.window.location.href; new MutationObserver(function () { var url = globalThis.window.location.href; if (url !== lastURL) { lastURL = url; if (globalThis.CaptureState.manualPageLoadTrackingStringsToMatch) { globalThis.CaptureState.manualPageLoadTrackingStringsToMatch.forEach(function (string) { if (lastURL.indexOf(string) > -1) { return; } }); } (0, index_1.load)(new LoadEventRequest_1.default({ url: lastURL })); } }).observe(globalThis.document, { subtree: true, childList: true }); } exports.detectPageLoad = detectPageLoad; ; function getBrowserWidth() { return globalThis.outerWidth || null; } exports.getBrowserWidth = getBrowserWidth; function getBrowserHeight() { return globalThis.outerHeight || null; } exports.getBrowserHeight = getBrowserHeight; //# sourceMappingURL=browser.js.map