as-event-tracker
Version:
Logs events in the browser based on client interactions.
75 lines • 3.01 kB
JavaScript
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
;