in build/userale-2.3.0.js [597:662]
function packageIntervalLog(e) {
var target = getSelector(e.target);
var path = buildPath(e);
var type = e.type;
var timestamp = Math.floor(e.timeStamp && e.timeStamp > 0 ? config$1.time(e.timeStamp) : Date.now());
// Init - this should only happen once on initialization
if (intervalID == null) {
intervalID = target;
intervalType = type;
intervalPath = path;
intervalTimer = timestamp;
intervalCounter = 0;
}
if (intervalID !== target || intervalType !== type) {
// When to create log? On transition end
// @todo Possible for intervalLog to not be pushed in the event the interval never ends...
intervalLog = {
'target': intervalID,
'path': intervalPath,
'pageUrl': window.location.href,
'pageTitle': document.title,
'pageReferrer': document.referrer,
'browser': detectBrowser(),
'count': intervalCounter,
'duration': timestamp - intervalTimer,
// microseconds
'startTime': intervalTimer,
'endTime': timestamp,
'type': intervalType,
'logType': 'interval',
'targetChange': intervalID !== target,
'typeChange': intervalType !== type,
'userAction': false,
'userId': config$1.userId,
'toolVersion': config$1.version,
'toolName': config$1.toolName,
'useraleVersion': config$1.useraleVersion,
'sessionID': config$1.sessionID
};
for (var _i3 = 0, _Object$values3 = Object.values(cbHandlers); _i3 < _Object$values3.length; _i3++) {
var func = _Object$values3[_i3];
if (typeof func === 'function') {
intervalLog = func(intervalLog, null);
if (!intervalLog) {
return false;
}
}
}
logs$1.push(intervalLog);
// Reset
intervalID = target;
intervalType = type;
intervalPath = path;
intervalTimer = timestamp;
intervalCounter = 0;
}
// Interval is still occuring, just update counter
if (intervalID == target && intervalType == type) {
intervalCounter = intervalCounter + 1;
}
return true;
}