function packageIntervalLog()

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;
  }