clarity-js 0.8.26 → 0.8.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/clarity.js CHANGED
@@ -173,7 +173,7 @@ var startTime = 0;
173
173
  function computeStartTime() {
174
174
  return performance.now() + performance.timeOrigin;
175
175
  }
176
- function start$K() {
176
+ function start$L() {
177
177
  startTime = computeStartTime();
178
178
  }
179
179
  // event.timestamp is number of milliseconds elapsed since the document was loaded
@@ -189,11 +189,11 @@ function time(event) {
189
189
  var origin = event && event.view ? event.view.performance.timeOrigin : performance.timeOrigin;
190
190
  return Math.max(Math.round(ts + origin - baseline), 0);
191
191
  }
192
- function stop$H() {
192
+ function stop$I() {
193
193
  startTime = 0;
194
194
  }
195
195
 
196
- var version$1 = "0.8.26";
196
+ var version$1 = "0.8.28";
197
197
 
198
198
  // tslint:disable: no-bitwise
199
199
  function hash (input, precision) {
@@ -414,11 +414,11 @@ function redact$1(value) {
414
414
  var state$b = null;
415
415
  var buffer = null;
416
416
  var update$2 = false;
417
- function start$J() {
417
+ function start$K() {
418
418
  update$2 = false;
419
- reset$s();
419
+ reset$t();
420
420
  }
421
- function reset$s() {
421
+ function reset$t() {
422
422
  // Baseline state holds the previous values - if it is updated in the current payload,
423
423
  // reset the state to current value after sending the previous state
424
424
  if (update$2) {
@@ -546,38 +546,38 @@ function visibility(t, visible) {
546
546
  }
547
547
  update$2 = true;
548
548
  }
549
- function compute$f() {
549
+ function compute$g() {
550
550
  if (update$2) {
551
551
  encode$1(4 /* Event.Baseline */);
552
552
  }
553
553
  }
554
- function stop$G() {
555
- reset$s();
554
+ function stop$H() {
555
+ reset$t();
556
556
  }
557
557
 
558
558
  var baseline = /*#__PURE__*/Object.freeze({
559
559
  __proto__: null,
560
560
  activity: activity,
561
- compute: compute$f,
562
- reset: reset$s,
563
- start: start$J,
561
+ compute: compute$g,
562
+ reset: reset$t,
563
+ start: start$K,
564
564
  get state () { return state$b; },
565
- stop: stop$G,
565
+ stop: stop$H,
566
566
  track: track$8,
567
567
  visibility: visibility
568
568
  });
569
569
 
570
- var data$k = null;
570
+ var data$l = null;
571
571
  var updateConsent = true;
572
- function start$I() {
572
+ function start$J() {
573
573
  updateConsent = true;
574
574
  }
575
- function stop$F() {
575
+ function stop$G() {
576
576
  updateConsent = true;
577
577
  }
578
578
  function config$1(consent) {
579
579
  trackConsent(consent.analytics_Storage ? 1 /* ConsentType.Implicit */ : 0 /* ConsentType.None */);
580
- data$k = consent;
580
+ data$l = consent;
581
581
  }
582
582
  // When we get consent signal as false, we restart the service and track config as false.
583
583
  function consent$1() {
@@ -587,11 +587,11 @@ function trackConsent(consent) {
587
587
  log(36 /* Dimension.Consent */, consent.toString());
588
588
  }
589
589
  function consentv2$1(consent) {
590
- data$k = consent;
590
+ data$l = consent;
591
591
  encode$1(47 /* Event.Consent */);
592
592
  }
593
593
  // Compute function is called every upload, but we only want to send consent data once.
594
- function compute$e() {
594
+ function compute$f() {
595
595
  if (updateConsent) {
596
596
  encode$1(47 /* Event.Consent */);
597
597
  updateConsent = false;
@@ -600,16 +600,16 @@ function compute$e() {
600
600
 
601
601
  var consent$2 = /*#__PURE__*/Object.freeze({
602
602
  __proto__: null,
603
- compute: compute$e,
603
+ compute: compute$f,
604
604
  config: config$1,
605
605
  consent: consent$1,
606
606
  consentv2: consentv2$1,
607
- get data () { return data$k; },
608
- start: start$I,
609
- stop: stop$F
607
+ get data () { return data$l; },
608
+ start: start$J,
609
+ stop: stop$G
610
610
  });
611
611
 
612
- var data$j = null;
612
+ var data$k = null;
613
613
  // custom events allow 2 parameters or 1 parameter to be passed. If 2 are passed we
614
614
  // consider it a key value pair. If only 1 is passed we only consider the event to have a value.
615
615
  function event(a, b) {
@@ -618,64 +618,64 @@ function event(a, b) {
618
618
  typeof a === "string" /* Constant.String */ &&
619
619
  a.length < 255) {
620
620
  if (b && typeof b === "string" /* Constant.String */ && b.length < 255) {
621
- data$j = { key: a, value: b };
621
+ data$k = { key: a, value: b };
622
622
  }
623
623
  else {
624
- data$j = { value: a };
624
+ data$k = { value: a };
625
625
  }
626
626
  encode$1(24 /* Event.Custom */);
627
627
  }
628
628
  }
629
629
 
630
- var data$i = null;
630
+ var data$j = null;
631
631
  var updates$3 = null;
632
- function start$H() {
633
- data$i = {};
632
+ function start$I() {
633
+ data$j = {};
634
634
  updates$3 = {};
635
635
  count$1(5 /* Metric.InvokeCount */);
636
636
  }
637
- function stop$E() {
638
- data$i = {};
637
+ function stop$F() {
638
+ data$j = {};
639
639
  updates$3 = {};
640
640
  }
641
641
  function count$1(metric) {
642
- if (!(metric in data$i)) {
643
- data$i[metric] = 0;
642
+ if (!(metric in data$j)) {
643
+ data$j[metric] = 0;
644
644
  }
645
645
  if (!(metric in updates$3)) {
646
646
  updates$3[metric] = 0;
647
647
  }
648
- data$i[metric]++;
648
+ data$j[metric]++;
649
649
  updates$3[metric]++;
650
650
  }
651
651
  function sum(metric, value) {
652
652
  if (value !== null) {
653
- if (!(metric in data$i)) {
654
- data$i[metric] = 0;
653
+ if (!(metric in data$j)) {
654
+ data$j[metric] = 0;
655
655
  }
656
656
  if (!(metric in updates$3)) {
657
657
  updates$3[metric] = 0;
658
658
  }
659
- data$i[metric] += value;
659
+ data$j[metric] += value;
660
660
  updates$3[metric] += value;
661
661
  }
662
662
  }
663
663
  function max(metric, value) {
664
664
  // Ensure that we do not process null or NaN values
665
665
  if (value !== null && isNaN(value) === false) {
666
- if (!(metric in data$i)) {
667
- data$i[metric] = 0;
666
+ if (!(metric in data$j)) {
667
+ data$j[metric] = 0;
668
668
  }
669
- if (value > data$i[metric] || data$i[metric] === 0) {
669
+ if (value > data$j[metric] || data$j[metric] === 0) {
670
670
  updates$3[metric] = value;
671
- data$i[metric] = value;
671
+ data$j[metric] = value;
672
672
  }
673
673
  }
674
674
  }
675
- function compute$d() {
675
+ function compute$e() {
676
676
  encode$1(0 /* Event.Metric */);
677
677
  }
678
- function reset$r() {
678
+ function reset$s() {
679
679
  updates$3 = {};
680
680
  }
681
681
 
@@ -686,15 +686,15 @@ function clearTimeout$1(handle) {
686
686
  return window.clearTimeout(handle);
687
687
  }
688
688
 
689
- var data$h;
689
+ var data$i;
690
690
  var last = 0;
691
691
  var interval = 0;
692
692
  var timeout$7 = null;
693
- function start$G() {
693
+ function start$H() {
694
694
  interval = 60000 /* Setting.PingInterval */;
695
695
  last = 0;
696
696
  }
697
- function reset$q() {
697
+ function reset$r() {
698
698
  if (timeout$7) {
699
699
  clearTimeout$1(timeout$7);
700
700
  }
@@ -703,16 +703,16 @@ function reset$q() {
703
703
  }
704
704
  function ping() {
705
705
  var now = time();
706
- data$h = { gap: now - last };
706
+ data$i = { gap: now - last };
707
707
  encode$1(25 /* Event.Ping */);
708
- if (data$h.gap < 300000 /* Setting.PingTimeout */) {
708
+ if (data$i.gap < 300000 /* Setting.PingTimeout */) {
709
709
  timeout$7 = setTimeout$1(ping, interval);
710
710
  }
711
711
  else {
712
712
  suspend();
713
713
  }
714
714
  }
715
- function stop$D() {
715
+ function stop$E() {
716
716
  clearTimeout$1(timeout$7);
717
717
  last = 0;
718
718
  interval = 0;
@@ -720,50 +720,50 @@ function stop$D() {
720
720
 
721
721
  var ping$1 = /*#__PURE__*/Object.freeze({
722
722
  __proto__: null,
723
- get data () { return data$h; },
724
- reset: reset$q,
725
- start: start$G,
726
- stop: stop$D
723
+ get data () { return data$i; },
724
+ reset: reset$r,
725
+ start: start$H,
726
+ stop: stop$E
727
727
  });
728
728
 
729
- var data$g = null;
730
- function start$F() {
731
- data$g = {};
729
+ var data$h = null;
730
+ function start$G() {
731
+ data$h = {};
732
732
  }
733
- function stop$C() {
734
- data$g = {};
733
+ function stop$D() {
734
+ data$h = {};
735
735
  }
736
736
  function track$7(event, time) {
737
- if (!(event in data$g)) {
738
- data$g[event] = [[time, 0]];
737
+ if (!(event in data$h)) {
738
+ data$h[event] = [[time, 0]];
739
739
  }
740
740
  else {
741
- var e = data$g[event];
741
+ var e = data$h[event];
742
742
  var last = e[e.length - 1];
743
743
  // Add a new entry only if the new event occurs after configured interval
744
744
  // Otherwise, extend the duration of the previous entry
745
745
  if (time - last[0] > 100 /* Setting.SummaryInterval */) {
746
- data$g[event].push([time, 0]);
746
+ data$h[event].push([time, 0]);
747
747
  }
748
748
  else {
749
749
  last[1] = time - last[0];
750
750
  }
751
751
  }
752
752
  }
753
- function compute$c() {
753
+ function compute$d() {
754
754
  encode$1(36 /* Event.Summary */);
755
755
  }
756
- function reset$p() {
757
- data$g = {};
756
+ function reset$q() {
757
+ data$h = {};
758
758
  }
759
759
 
760
760
  var summary = /*#__PURE__*/Object.freeze({
761
761
  __proto__: null,
762
- compute: compute$c,
763
- get data () { return data$g; },
764
- reset: reset$p,
765
- start: start$F,
766
- stop: stop$C,
762
+ compute: compute$d,
763
+ get data () { return data$h; },
764
+ reset: reset$q,
765
+ start: start$G,
766
+ stop: stop$D,
767
767
  track: track$7
768
768
  });
769
769
 
@@ -880,9 +880,9 @@ function read(stream) {
880
880
  });
881
881
  }
882
882
 
883
- var data$f = null;
884
- function start$E() {
885
- reset$o();
883
+ var data$g = null;
884
+ function start$F() {
885
+ reset$p();
886
886
  }
887
887
  function set(variable, value) {
888
888
  var values = typeof value === "string" /* Constant.String */ ? [value] : value;
@@ -928,23 +928,23 @@ function log$2(variable, value) {
928
928
  value &&
929
929
  typeof variable === "string" /* Constant.String */ &&
930
930
  variable.length < 255) {
931
- var validValues = variable in data$f ? data$f[variable] : [];
931
+ var validValues = variable in data$g ? data$g[variable] : [];
932
932
  for (var i = 0; i < value.length; i++) {
933
933
  if (typeof value[i] === "string" /* Constant.String */ && value[i].length < 255) {
934
934
  validValues.push(value[i]);
935
935
  }
936
936
  }
937
- data$f[variable] = validValues;
937
+ data$g[variable] = validValues;
938
938
  }
939
939
  }
940
- function compute$b() {
940
+ function compute$c() {
941
941
  encode$1(34 /* Event.Variable */);
942
942
  }
943
- function reset$o() {
944
- data$f = {};
943
+ function reset$p() {
944
+ data$g = {};
945
945
  }
946
- function stop$B() {
947
- reset$o();
946
+ function stop$C() {
947
+ reset$p();
948
948
  }
949
949
  function redact(input) {
950
950
  return input && input.length >= 5 /* Setting.WordLength */ ?
@@ -978,23 +978,23 @@ function detect(input) {
978
978
 
979
979
  var variable = /*#__PURE__*/Object.freeze({
980
980
  __proto__: null,
981
- compute: compute$b,
982
- get data () { return data$f; },
981
+ compute: compute$c,
982
+ get data () { return data$g; },
983
983
  identify: identify,
984
- reset: reset$o,
984
+ reset: reset$p,
985
985
  set: set,
986
- start: start$E,
987
- stop: stop$B
986
+ start: start$F,
987
+ stop: stop$C
988
988
  });
989
989
 
990
- var data$e = {};
990
+ var data$f = {};
991
991
  var keys = new Set();
992
992
  var variables = {};
993
993
  var selectors = {};
994
994
  var hashes = {};
995
995
  var validation = {};
996
- function start$D() {
997
- reset$n();
996
+ function start$E() {
997
+ reset$o();
998
998
  }
999
999
  // Input string is of the following form:
1000
1000
  // EXTRACT 101|element { "1": ".class1", "2": "~window.a.b", "3": "!abc"}
@@ -1046,7 +1046,7 @@ function trigger$2(input) {
1046
1046
  function clone$1(v) {
1047
1047
  return JSON.parse(JSON.stringify(v));
1048
1048
  }
1049
- function compute$a() {
1049
+ function compute$b() {
1050
1050
  try {
1051
1051
  for (var v in variables) {
1052
1052
  var key = parseInt(v);
@@ -1090,27 +1090,27 @@ function compute$a() {
1090
1090
  log$1(5 /* Code.Selector */, 1 /* Severity.Warning */, e ? e.name : null);
1091
1091
  }
1092
1092
  }
1093
- function reset$n() {
1093
+ function reset$o() {
1094
1094
  keys.clear();
1095
1095
  }
1096
1096
  function update$1(key, subkey, value) {
1097
1097
  var update = false;
1098
- if (!(key in data$e)) {
1099
- data$e[key] = {};
1098
+ if (!(key in data$f)) {
1099
+ data$f[key] = {};
1100
1100
  update = true;
1101
1101
  }
1102
1102
  if (!isEmpty(hashes[key])
1103
- && (!(subkey in data$e[key]) || data$e[key][subkey] != value)) {
1103
+ && (!(subkey in data$f[key]) || data$f[key][subkey] != value)) {
1104
1104
  update = true;
1105
1105
  }
1106
- data$e[key][subkey] = value;
1106
+ data$f[key][subkey] = value;
1107
1107
  if (update) {
1108
1108
  keys.add(key);
1109
1109
  }
1110
1110
  return;
1111
1111
  }
1112
- function stop$A() {
1113
- reset$n();
1112
+ function stop$B() {
1113
+ reset$o();
1114
1114
  }
1115
1115
  function parse$1(variable) {
1116
1116
  var syntax = [];
@@ -1178,12 +1178,12 @@ function isEmpty(obj) {
1178
1178
  var extract = /*#__PURE__*/Object.freeze({
1179
1179
  __proto__: null,
1180
1180
  clone: clone$1,
1181
- compute: compute$a,
1182
- data: data$e,
1181
+ compute: compute$b,
1182
+ data: data$f,
1183
1183
  keys: keys,
1184
- reset: reset$n,
1185
- start: start$D,
1186
- stop: stop$A,
1184
+ reset: reset$o,
1185
+ start: start$E,
1186
+ stop: stop$B,
1187
1187
  trigger: trigger$2,
1188
1188
  update: update$1
1189
1189
  });
@@ -1217,33 +1217,33 @@ function signalsEvent(signalsPayload) {
1217
1217
  }
1218
1218
 
1219
1219
  var modules$1 = [baseline, dimension, variable, limit, summary, consent$2, metadata$1, envelope$1, upload$1, ping$1, upgrade$1, extract];
1220
- function start$C() {
1220
+ function start$D() {
1221
1221
  // Metric needs to be initialized before we can start measuring. so metric is not wrapped in measure
1222
- start$H();
1222
+ start$I();
1223
1223
  modules$1.forEach(function (x) { return measure(x.start)(); });
1224
1224
  }
1225
- function stop$z() {
1225
+ function stop$A() {
1226
1226
  // Stop modules in the reverse order of their initialization
1227
1227
  // The ordering below should respect inter-module dependency.
1228
1228
  // E.g. if upgrade depends on upload, then upgrade needs to end before upload.
1229
1229
  // Similarly, if upload depends on metadata, upload needs to end before metadata.
1230
1230
  modules$1.slice().reverse().forEach(function (x) { return measure(x.stop)(); });
1231
- stop$E();
1231
+ stop$F();
1232
1232
  }
1233
- function compute$9() {
1234
- compute$b();
1235
- compute$f();
1233
+ function compute$a() {
1234
+ compute$c();
1235
+ compute$g();
1236
1236
  compute$2();
1237
+ compute$e();
1237
1238
  compute$d();
1238
- compute$c();
1239
1239
  compute$3();
1240
- compute$a();
1241
- compute$e();
1240
+ compute$b();
1241
+ compute$f();
1242
1242
  }
1243
1243
 
1244
1244
  var history$5 = [];
1245
- var data$d;
1246
- function start$B() {
1245
+ var data$e;
1246
+ function start$C() {
1247
1247
  history$5 = [];
1248
1248
  max(26 /* Metric.Automation */, navigator.webdriver ? 1 /* BooleanFlag.True */ : 0 /* BooleanFlag.False */);
1249
1249
  try {
@@ -1257,18 +1257,18 @@ function start$B() {
1257
1257
  function check$4(id, target, input) {
1258
1258
  // Compute hash for fraud detection, if enabled. Hash is computed only if input meets the minimum length criteria
1259
1259
  if (config$2.fraud && id !== null && input && input.length >= 5 /* Setting.WordLength */) {
1260
- data$d = { id: id, target: target, checksum: hash(input, 28 /* Setting.ChecksumPrecision */) };
1260
+ data$e = { id: id, target: target, checksum: hash(input, 28 /* Setting.ChecksumPrecision */) };
1261
1261
  // Only encode this event if we haven't already reported this hash
1262
- if (history$5.indexOf(data$d.checksum) < 0) {
1263
- history$5.push(data$d.checksum);
1262
+ if (history$5.indexOf(data$e.checksum) < 0) {
1263
+ history$5.push(data$e.checksum);
1264
1264
  encode$2(41 /* Event.Fraud */);
1265
1265
  }
1266
1266
  }
1267
1267
  }
1268
1268
 
1269
1269
  var state$a = [];
1270
- function start$A() {
1271
- reset$m();
1270
+ function start$B() {
1271
+ reset$n();
1272
1272
  }
1273
1273
  function observe$c(root) {
1274
1274
  bind(root, "change", recompute$8, true);
@@ -1282,11 +1282,11 @@ function recompute$8(evt) {
1282
1282
  schedule(encode$4.bind(this, 42 /* Event.Change */));
1283
1283
  }
1284
1284
  }
1285
- function reset$m() {
1285
+ function reset$n() {
1286
1286
  state$a = [];
1287
1287
  }
1288
- function stop$y() {
1289
- reset$m();
1288
+ function stop$z() {
1289
+ reset$n();
1290
1290
  }
1291
1291
 
1292
1292
  function offset(element) {
@@ -1307,8 +1307,8 @@ function offset(element) {
1307
1307
 
1308
1308
  var UserInputTags = ["input", "textarea", "radio", "button", "canvas", "select"];
1309
1309
  var state$9 = [];
1310
- function start$z() {
1311
- reset$l();
1310
+ function start$A() {
1311
+ reset$m();
1312
1312
  }
1313
1313
  function observe$b(root) {
1314
1314
  bind(root, "click", handler$3.bind(this, 9 /* Event.Click */, root), true);
@@ -1434,16 +1434,16 @@ function context(a) {
1434
1434
  }
1435
1435
  return 0 /* BrowsingContext.Self */;
1436
1436
  }
1437
- function reset$l() {
1437
+ function reset$m() {
1438
1438
  state$9 = [];
1439
1439
  }
1440
- function stop$x() {
1441
- reset$l();
1440
+ function stop$y() {
1441
+ reset$m();
1442
1442
  }
1443
1443
 
1444
1444
  var state$8 = [];
1445
- function start$y() {
1446
- reset$k();
1445
+ function start$z() {
1446
+ reset$l();
1447
1447
  }
1448
1448
  function observe$a(root) {
1449
1449
  bind(root, "cut", recompute$7.bind(this, 0 /* Clipboard.Cut */), true);
@@ -1454,17 +1454,17 @@ function recompute$7(action, evt) {
1454
1454
  state$8.push({ time: time(evt), event: 38 /* Event.Clipboard */, data: { target: target(evt), action: action } });
1455
1455
  schedule(encode$4.bind(this, 38 /* Event.Clipboard */));
1456
1456
  }
1457
- function reset$k() {
1457
+ function reset$l() {
1458
1458
  state$8 = [];
1459
1459
  }
1460
- function stop$w() {
1461
- reset$k();
1460
+ function stop$x() {
1461
+ reset$l();
1462
1462
  }
1463
1463
 
1464
1464
  var timeout$6 = null;
1465
1465
  var state$7 = [];
1466
- function start$x() {
1467
- reset$j();
1466
+ function start$y() {
1467
+ reset$k();
1468
1468
  }
1469
1469
  function observe$9(root) {
1470
1470
  bind(root, "input", recompute$6, true);
@@ -1494,12 +1494,12 @@ function recompute$6(evt) {
1494
1494
  function process$7(event) {
1495
1495
  schedule(encode$4.bind(this, event));
1496
1496
  }
1497
- function reset$j() {
1497
+ function reset$k() {
1498
1498
  state$7 = [];
1499
1499
  }
1500
- function stop$v() {
1500
+ function stop$w() {
1501
1501
  clearTimeout$1(timeout$6);
1502
- reset$j();
1502
+ reset$k();
1503
1503
  }
1504
1504
 
1505
1505
  var state$6 = [];
@@ -1507,8 +1507,8 @@ var timeout$5 = null;
1507
1507
  var hasPrimaryTouch = false;
1508
1508
  var primaryTouchId = 0;
1509
1509
  var activeTouchPointIds = new Set();
1510
- function start$w() {
1511
- reset$i();
1510
+ function start$x() {
1511
+ reset$j();
1512
1512
  }
1513
1513
  function observe$8(root) {
1514
1514
  bind(root, "mousedown", mouse.bind(this, 13 /* Event.MouseDown */, root), true);
@@ -1603,7 +1603,7 @@ function handler$2(current) {
1603
1603
  function process$6(event) {
1604
1604
  schedule(encode$4.bind(this, event));
1605
1605
  }
1606
- function reset$i() {
1606
+ function reset$j() {
1607
1607
  state$6 = [];
1608
1608
  }
1609
1609
  function similar$1(last, current) {
@@ -1615,7 +1615,7 @@ function similar$1(last, current) {
1615
1615
  var sameId = current.data.id !== undefined ? current.data.id === last.data.id : true;
1616
1616
  return current.event === last.event && match && distance < 20 /* Setting.Distance */ && gap < 25 /* Setting.PointerInterval */ && sameId;
1617
1617
  }
1618
- function stop$u() {
1618
+ function stop$v() {
1619
1619
  clearTimeout$1(timeout$5);
1620
1620
  // Send out any pending pointer events in the pipeline
1621
1621
  if (state$6.length > 0) {
@@ -1671,11 +1671,11 @@ function throttle(func, duration) {
1671
1671
  return throttledFunction;
1672
1672
  }
1673
1673
 
1674
- var data$c;
1674
+ var data$d;
1675
1675
  var timeout$4 = null;
1676
1676
  var initialStateLogged = false;
1677
1677
  var throttledRecompute$1 = throttle(recompute$5, 500 /* Setting.LookAhead */);
1678
- function start$v() {
1678
+ function start$w() {
1679
1679
  initialStateLogged = false;
1680
1680
  bind(window, "resize", throttledRecompute$1);
1681
1681
  recompute$5();
@@ -1684,7 +1684,7 @@ function recompute$5() {
1684
1684
  var de = document.documentElement;
1685
1685
  // window.innerWidth includes width of the scrollbar and is not a true representation of the viewport width.
1686
1686
  // Therefore, when possible, use documentElement's clientWidth property.
1687
- data$c = {
1687
+ data$d = {
1688
1688
  width: de && "clientWidth" in de ? Math.min(de.clientWidth, window.innerWidth) : window.innerWidth,
1689
1689
  height: de && "clientHeight" in de ? Math.min(de.clientHeight, window.innerHeight) : window.innerHeight,
1690
1690
  };
@@ -1700,20 +1700,20 @@ function recompute$5() {
1700
1700
  function process$5(event) {
1701
1701
  schedule(encode$4.bind(this, event));
1702
1702
  }
1703
- function reset$h() {
1704
- data$c = null;
1703
+ function reset$i() {
1704
+ data$d = null;
1705
1705
  clearTimeout$1(timeout$4);
1706
1706
  throttledRecompute$1.cleanup();
1707
1707
  }
1708
- function stop$t() {
1709
- reset$h();
1708
+ function stop$u() {
1709
+ reset$i();
1710
1710
  }
1711
1711
 
1712
1712
  var state$5 = [];
1713
1713
  var initialTop = null;
1714
1714
  var initialBottom = null;
1715
1715
  var timeout$3 = null;
1716
- function start$u() {
1716
+ function start$v() {
1717
1717
  state$5 = [];
1718
1718
  recompute$4();
1719
1719
  }
@@ -1785,7 +1785,7 @@ function getPositionNode(x, y) {
1785
1785
  }
1786
1786
  return node;
1787
1787
  }
1788
- function reset$g() {
1788
+ function reset$h() {
1789
1789
  state$5 = [];
1790
1790
  initialTop = null;
1791
1791
  initialBottom = null;
@@ -1798,7 +1798,7 @@ function similar(last, current) {
1798
1798
  var dy = last.data.y - current.data.y;
1799
1799
  return (dx * dx + dy * dy < 20 /* Setting.Distance */ * 20 /* Setting.Distance */) && (current.time - last.time < 50 /* Setting.ScrollInterval */);
1800
1800
  }
1801
- function compute$8() {
1801
+ function compute$9() {
1802
1802
  var _a, _b;
1803
1803
  if (initialTop) {
1804
1804
  var top_1 = metadata$2(initialTop, null);
@@ -1809,7 +1809,7 @@ function compute$8() {
1809
1809
  log(32 /* Dimension.InitialScrollBottom */, (_b = bottom === null || bottom === void 0 ? void 0 : bottom.hash) === null || _b === void 0 ? void 0 : _b.join("." /* Constant.Dot */));
1810
1810
  }
1811
1811
  }
1812
- function stop$s() {
1812
+ function stop$t() {
1813
1813
  clearTimeout$1(timeout$3);
1814
1814
  throttledRecompute.cleanup();
1815
1815
  state$5 = [];
@@ -1817,11 +1817,11 @@ function stop$s() {
1817
1817
  initialBottom = null;
1818
1818
  }
1819
1819
 
1820
- var data$b = null;
1820
+ var data$c = null;
1821
1821
  var previous = null;
1822
1822
  var timeout$2 = null;
1823
- function start$t() {
1824
- reset$f();
1823
+ function start$u() {
1824
+ reset$g();
1825
1825
  }
1826
1826
  function observe$6(root) {
1827
1827
  bind(root, "selectstart", recompute$3.bind(this, root), true);
@@ -1842,12 +1842,12 @@ function recompute$3(root) {
1842
1842
  (current.anchorNode === current.focusNode && current.anchorOffset === current.focusOffset)) {
1843
1843
  return;
1844
1844
  }
1845
- var startNode = data$b.start ? data$b.start : null;
1846
- if (previous !== null && data$b.start !== null && startNode !== current.anchorNode) {
1845
+ var startNode = data$c.start ? data$c.start : null;
1846
+ if (previous !== null && data$c.start !== null && startNode !== current.anchorNode) {
1847
1847
  clearTimeout$1(timeout$2);
1848
1848
  process$3(21 /* Event.Selection */);
1849
1849
  }
1850
- data$b = {
1850
+ data$c = {
1851
1851
  start: current.anchorNode,
1852
1852
  startOffset: current.anchorOffset,
1853
1853
  end: current.focusNode,
@@ -1860,18 +1860,18 @@ function recompute$3(root) {
1860
1860
  function process$3(event) {
1861
1861
  schedule(encode$4.bind(this, event));
1862
1862
  }
1863
- function reset$f() {
1863
+ function reset$g() {
1864
1864
  previous = null;
1865
- data$b = { start: 0, startOffset: 0, end: 0, endOffset: 0 };
1865
+ data$c = { start: 0, startOffset: 0, end: 0, endOffset: 0 };
1866
1866
  }
1867
- function stop$r() {
1868
- reset$f();
1867
+ function stop$s() {
1868
+ reset$g();
1869
1869
  clearTimeout$1(timeout$2);
1870
1870
  }
1871
1871
 
1872
1872
  var state$4 = [];
1873
- function start$s() {
1874
- reset$e();
1873
+ function start$t() {
1874
+ reset$f();
1875
1875
  }
1876
1876
  function observe$5(root) {
1877
1877
  bind(root, "submit", recompute$2, true);
@@ -1880,22 +1880,39 @@ function recompute$2(evt) {
1880
1880
  state$4.push({ time: time(evt), event: 39 /* Event.Submit */, data: { target: target(evt) } });
1881
1881
  schedule(encode$4.bind(this, 39 /* Event.Submit */));
1882
1882
  }
1883
- function reset$e() {
1883
+ function reset$f() {
1884
1884
  state$4 = [];
1885
1885
  }
1886
- function stop$q() {
1887
- reset$e();
1886
+ function stop$r() {
1887
+ reset$f();
1888
1888
  }
1889
1889
 
1890
- var data$a;
1891
- function start$r() {
1890
+ var data$b;
1891
+ function start$s() {
1892
1892
  bind(window, "pagehide", recompute$1);
1893
1893
  }
1894
1894
  function recompute$1(evt) {
1895
- data$a = { name: evt.type, persisted: evt.persisted ? 1 /* BooleanFlag.True */ : 0 /* BooleanFlag.False */ };
1895
+ data$b = { name: evt.type, persisted: evt.persisted ? 1 /* BooleanFlag.True */ : 0 /* BooleanFlag.False */ };
1896
1896
  encode$4(26 /* Event.Unload */, time(evt));
1897
1897
  stop();
1898
1898
  }
1899
+ function reset$e() {
1900
+ data$b = null;
1901
+ }
1902
+ function stop$q() {
1903
+ reset$e();
1904
+ }
1905
+
1906
+ var data$a;
1907
+ function start$r() {
1908
+ bind(document, "visibilitychange", recompute);
1909
+ recompute();
1910
+ }
1911
+ function recompute(evt) {
1912
+ if (evt === void 0) { evt = null; }
1913
+ data$a = { visible: "visibilityState" in document ? document.visibilityState : "default" };
1914
+ encode$4(28 /* Event.Visibility */, time(evt));
1915
+ }
1899
1916
  function reset$d() {
1900
1917
  data$a = null;
1901
1918
  }
@@ -1905,48 +1922,49 @@ function stop$p() {
1905
1922
 
1906
1923
  var data$9;
1907
1924
  function start$q() {
1908
- bind(document, "visibilitychange", recompute);
1909
- recompute();
1925
+ bind(window, "focus", function () { return compute$8(1 /* BooleanFlag.True */); });
1926
+ bind(window, "blur", function () { return compute$8(0 /* BooleanFlag.False */); });
1910
1927
  }
1911
- function recompute(evt) {
1912
- if (evt === void 0) { evt = null; }
1913
- data$9 = { visible: "visibilityState" in document ? document.visibilityState : "default" };
1914
- encode$4(28 /* Event.Visibility */, time(evt));
1928
+ function stop$o() {
1929
+ reset$c();
1915
1930
  }
1916
1931
  function reset$c() {
1917
1932
  data$9 = null;
1918
1933
  }
1919
- function stop$o() {
1920
- reset$c();
1934
+ function compute$8(focus) {
1935
+ data$9 = { focused: focus };
1936
+ encode$4(50 /* Event.Focus */);
1921
1937
  }
1922
1938
 
1923
1939
  function start$p() {
1924
1940
  start$i();
1941
+ start$A();
1925
1942
  start$z();
1943
+ start$x();
1926
1944
  start$y();
1927
1945
  start$w();
1928
- start$x();
1929
- start$v();
1946
+ start$r();
1930
1947
  start$q();
1948
+ start$v();
1931
1949
  start$u();
1950
+ start$B();
1932
1951
  start$t();
1933
- start$A();
1934
1952
  start$s();
1935
- start$r();
1936
1953
  }
1937
1954
  function stop$n() {
1938
1955
  stop$g();
1956
+ stop$y();
1939
1957
  stop$x();
1958
+ stop$v();
1940
1959
  stop$w();
1941
1960
  stop$u();
1942
- stop$v();
1943
- stop$t();
1961
+ stop$p();
1944
1962
  stop$o();
1963
+ stop$t();
1945
1964
  stop$s();
1965
+ stop$z();
1946
1966
  stop$r();
1947
- stop$y();
1948
1967
  stop$q();
1949
- stop$p();
1950
1968
  }
1951
1969
  function observe$4(root) {
1952
1970
  observe$7(root);
@@ -3941,7 +3959,7 @@ function metadata$2(node, event, text) {
3941
3959
  function encode$4 (type, ts) {
3942
3960
  if (ts === void 0) { ts = null; }
3943
3961
  return __awaiter(this, void 0, void 0, function () {
3944
- var t, tokens, _i, _a, entry, pTarget, _b, _c, entry, cTarget, cHash, _d, _e, entry, target, r, u, _f, _g, entry, iTarget, s, startTarget, endTarget, _h, _j, entry, sTarget, top_1, bottom, sTopHash, sBottomHash, _k, _l, entry, target, _m, _o, entry, target, _p, _q, entry, v;
3962
+ var t, tokens, _i, _a, entry, pTarget, _b, _c, entry, cTarget, cHash, _d, _e, entry, target, r, u, _f, _g, entry, iTarget, s, startTarget, endTarget, _h, _j, entry, sTarget, top_1, bottom, sTopHash, sBottomHash, _k, _l, entry, target, _m, _o, entry, target, _p, _q, entry, v, f;
3945
3963
  return __generator(this, function (_r) {
3946
3964
  t = ts || time();
3947
3965
  tokens = [t, type];
@@ -3975,7 +3993,7 @@ function encode$4 (type, ts) {
3975
3993
  }
3976
3994
  }
3977
3995
  }
3978
- reset$i();
3996
+ reset$j();
3979
3997
  break;
3980
3998
  case 9 /* Event.Click */:
3981
3999
  case 48 /* Event.ContextMenu */:
@@ -4000,7 +4018,7 @@ function encode$4 (type, ts) {
4000
4018
  queue(tokens);
4001
4019
  track$2(entry.time, entry.event, cHash, entry.data.x, entry.data.y, entry.data.reaction, entry.data.context);
4002
4020
  }
4003
- reset$l();
4021
+ reset$m();
4004
4022
  break;
4005
4023
  case 38 /* Event.Clipboard */:
4006
4024
  for (_d = 0, _e = state$8; _d < _e.length; _d++) {
@@ -4013,21 +4031,21 @@ function encode$4 (type, ts) {
4013
4031
  queue(tokens);
4014
4032
  }
4015
4033
  }
4016
- reset$k();
4034
+ reset$l();
4017
4035
  break;
4018
4036
  case 11 /* Event.Resize */:
4019
- r = data$c;
4037
+ r = data$d;
4020
4038
  tokens.push(r.width);
4021
4039
  tokens.push(r.height);
4022
4040
  track$8(type, r.width, r.height);
4023
- reset$h();
4041
+ reset$i();
4024
4042
  queue(tokens);
4025
4043
  break;
4026
4044
  case 26 /* Event.Unload */:
4027
- u = data$a;
4045
+ u = data$b;
4028
4046
  tokens.push(u.name);
4029
4047
  tokens.push(u.persisted);
4030
- reset$d();
4048
+ reset$e();
4031
4049
  queue(tokens);
4032
4050
  break;
4033
4051
  case 27 /* Event.Input */:
@@ -4040,10 +4058,10 @@ function encode$4 (type, ts) {
4040
4058
  tokens.push(entry.data.trust);
4041
4059
  queue(tokens);
4042
4060
  }
4043
- reset$j();
4061
+ reset$k();
4044
4062
  break;
4045
4063
  case 21 /* Event.Selection */:
4046
- s = data$b;
4064
+ s = data$c;
4047
4065
  if (s) {
4048
4066
  startTarget = metadata$2(s.start, type);
4049
4067
  endTarget = metadata$2(s.end, type);
@@ -4051,7 +4069,7 @@ function encode$4 (type, ts) {
4051
4069
  tokens.push(s.startOffset);
4052
4070
  tokens.push(endTarget.id);
4053
4071
  tokens.push(s.endOffset);
4054
- reset$f();
4072
+ reset$g();
4055
4073
  queue(tokens);
4056
4074
  }
4057
4075
  break;
@@ -4074,7 +4092,7 @@ function encode$4 (type, ts) {
4074
4092
  track$8(entry.event, entry.data.x, entry.data.y, entry.time);
4075
4093
  }
4076
4094
  }
4077
- reset$g();
4095
+ reset$h();
4078
4096
  break;
4079
4097
  case 42 /* Event.Change */:
4080
4098
  for (_k = 0, _l = state$a; _k < _l.length; _k++) {
@@ -4090,7 +4108,7 @@ function encode$4 (type, ts) {
4090
4108
  queue(tokens);
4091
4109
  }
4092
4110
  }
4093
- reset$m();
4111
+ reset$n();
4094
4112
  break;
4095
4113
  case 39 /* Event.Submit */:
4096
4114
  for (_m = 0, _o = state$4; _m < _o.length; _m++) {
@@ -4102,7 +4120,7 @@ function encode$4 (type, ts) {
4102
4120
  queue(tokens);
4103
4121
  }
4104
4122
  }
4105
- reset$e();
4123
+ reset$f();
4106
4124
  break;
4107
4125
  case 22 /* Event.Timeline */:
4108
4126
  for (_p = 0, _q = updates$1; _p < _q.length; _p++) {
@@ -4119,12 +4137,19 @@ function encode$4 (type, ts) {
4119
4137
  reset$5();
4120
4138
  break;
4121
4139
  case 28 /* Event.Visibility */:
4122
- v = data$9;
4140
+ v = data$a;
4123
4141
  tokens.push(v.visible);
4124
4142
  queue(tokens);
4125
4143
  visibility(t, v.visible);
4144
+ reset$d();
4145
+ break;
4146
+ case 50 /* Event.Focus */: {
4147
+ f = data$9;
4148
+ tokens.push(f.focused);
4149
+ queue(tokens, false);
4126
4150
  reset$c();
4127
4151
  break;
4152
+ }
4128
4153
  }
4129
4154
  return [2 /*return*/];
4130
4155
  });
@@ -4437,7 +4462,7 @@ function queue(tokens, transmit) {
4437
4462
  // We enrich the data going out with the existing upload. In these cases, call to upload comes with 'transmit' set to false.
4438
4463
  if (transmit && timeout === null) {
4439
4464
  if (type !== 25 /* Event.Ping */) {
4440
- reset$q();
4465
+ reset$r();
4441
4466
  }
4442
4467
  timeout = setTimeout$1(upload, gap);
4443
4468
  queuedTime = now;
@@ -4476,7 +4501,7 @@ function upload(final) {
4476
4501
  // Otherwise you run a risk of infinite loop.
4477
4502
  compute$5();
4478
4503
  compute$4();
4479
- compute$9();
4504
+ compute$a();
4480
4505
  compute$7();
4481
4506
  last = final === true;
4482
4507
  // In some cases envelope has null data because it's part of the shutdown process while there's one upload call queued which might introduce runtime error
@@ -4744,10 +4769,10 @@ function encode$2 (type) {
4744
4769
  }
4745
4770
  break;
4746
4771
  case 41 /* Event.Fraud */:
4747
- if (data$d) {
4748
- tokens.push(data$d.id);
4749
- tokens.push(data$d.target);
4750
- tokens.push(data$d.checksum);
4772
+ if (data$e) {
4773
+ tokens.push(data$e.id);
4774
+ tokens.push(data$e.target);
4775
+ tokens.push(data$e.checksum);
4751
4776
  queue(tokens, false);
4752
4777
  }
4753
4778
  break;
@@ -4988,7 +5013,7 @@ function start$c() {
4988
5013
  schedule(discover, 1 /* Priority.High */).then(function () {
4989
5014
  measure(compute$6)();
4990
5015
  measure(compute$5)();
4991
- measure(compute$8)();
5016
+ measure(compute$9)();
4992
5017
  });
4993
5018
  }
4994
5019
  function discover() {
@@ -5082,11 +5107,11 @@ function encode$1 (event) {
5082
5107
  tokens.push(b.data.pointerPrevTime);
5083
5108
  queue(tokens, false);
5084
5109
  }
5085
- reset$s();
5110
+ reset$t();
5086
5111
  break;
5087
5112
  }
5088
5113
  case 25 /* Event.Ping */:
5089
- tokens.push(data$h.gap);
5114
+ tokens.push(data$i.gap);
5090
5115
  queue(tokens);
5091
5116
  break;
5092
5117
  case 35 /* Event.Limit */:
@@ -5105,19 +5130,19 @@ function encode$1 (event) {
5105
5130
  break;
5106
5131
  case 24 /* Event.Custom */:
5107
5132
  // not all custom events have a key - if it wasn't passed server handles just value
5108
- data$j.key && tokens.push(data$j.key);
5109
- tokens.push(data$j.value);
5133
+ data$k.key && tokens.push(data$k.key);
5134
+ tokens.push(data$k.value);
5110
5135
  queue(tokens);
5111
5136
  break;
5112
5137
  case 34 /* Event.Variable */: {
5113
- var variableKeys = Object.keys(data$f);
5138
+ var variableKeys = Object.keys(data$g);
5114
5139
  if (variableKeys.length > 0) {
5115
5140
  for (var _i = 0, variableKeys_1 = variableKeys; _i < variableKeys_1.length; _i++) {
5116
5141
  var v = variableKeys_1[_i];
5117
5142
  tokens.push(v);
5118
- tokens.push(data$f[v]);
5143
+ tokens.push(data$g[v]);
5119
5144
  }
5120
- reset$o();
5145
+ reset$p();
5121
5146
  queue(tokens, false);
5122
5147
  }
5123
5148
  break;
@@ -5133,7 +5158,7 @@ function encode$1 (event) {
5133
5158
  // However, for data over the wire, we round it off to milliseconds precision.
5134
5159
  tokens.push(Math.round(updates$3[m]));
5135
5160
  }
5136
- reset$r();
5161
+ reset$s();
5137
5162
  queue(tokens, false);
5138
5163
  }
5139
5164
  break;
@@ -5153,15 +5178,15 @@ function encode$1 (event) {
5153
5178
  break;
5154
5179
  }
5155
5180
  case 36 /* Event.Summary */: {
5156
- var eventKeys = Object.keys(data$g);
5181
+ var eventKeys = Object.keys(data$h);
5157
5182
  if (eventKeys.length > 0) {
5158
5183
  for (var _c = 0, eventKeys_1 = eventKeys; _c < eventKeys_1.length; _c++) {
5159
5184
  var e = eventKeys_1[_c];
5160
5185
  var key = parseInt(e, 10);
5161
5186
  tokens.push(key);
5162
- tokens.push([].concat.apply([], data$g[e]));
5187
+ tokens.push([].concat.apply([], data$h[e]));
5163
5188
  }
5164
- reset$p();
5189
+ reset$q();
5165
5190
  queue(tokens, false);
5166
5191
  }
5167
5192
  break;
@@ -5171,21 +5196,21 @@ function encode$1 (event) {
5171
5196
  extractKeys.forEach(function (e) {
5172
5197
  tokens.push(e);
5173
5198
  var token = [];
5174
- for (var d in data$e[e]) {
5199
+ for (var d in data$f[e]) {
5175
5200
  var key = parseInt(d, 10);
5176
5201
  token.push(key);
5177
- token.push(data$e[e][d]);
5202
+ token.push(data$f[e][d]);
5178
5203
  }
5179
5204
  tokens.push(token);
5180
5205
  });
5181
- reset$n();
5206
+ reset$o();
5182
5207
  queue(tokens, false);
5183
5208
  break;
5184
5209
  }
5185
5210
  case 47 /* Event.Consent */:
5186
- tokens.push(data$k.source);
5187
- tokens.push(data$k.ad_Storage);
5188
- tokens.push(data$k.analytics_Storage);
5211
+ tokens.push(data$l.source);
5212
+ tokens.push(data$l.ad_Storage);
5213
+ tokens.push(data$l.analytics_Storage);
5189
5214
  queue(tokens, false);
5190
5215
  break;
5191
5216
  }
@@ -5736,7 +5761,7 @@ function measure (method) {
5736
5761
  if (duration > 30 /* Setting.LongTask */) {
5737
5762
  count$1(7 /* Metric.LongTaskCount */);
5738
5763
  max(6 /* Metric.ThreadBlockedTime */, duration);
5739
- log$1(9 /* Code.FunctionExecutionTime */, 0 /* Severity.Info */, "".concat(method.dn || method.name, "-").concat(duration));
5764
+ method.dn && log$1(9 /* Code.FunctionExecutionTime */, 0 /* Severity.Info */, "".concat(method.dn, "-").concat(duration));
5740
5765
  }
5741
5766
  };
5742
5767
  }
@@ -5847,7 +5872,7 @@ function stop$6() {
5847
5872
  var status = false;
5848
5873
  function start$5() {
5849
5874
  status = true;
5850
- start$K();
5875
+ start$L();
5851
5876
  reset$4();
5852
5877
  reset$1();
5853
5878
  reset$2();
@@ -5858,7 +5883,7 @@ function stop$5() {
5858
5883
  reset$2();
5859
5884
  reset$1();
5860
5885
  reset$4();
5861
- stop$H();
5886
+ stop$I();
5862
5887
  status = false;
5863
5888
  }
5864
5889
  function active() {
@@ -5914,7 +5939,7 @@ function restart() {
5914
5939
  }
5915
5940
 
5916
5941
  function start$4() {
5917
- start$B();
5942
+ start$C();
5918
5943
  start$f();
5919
5944
  start$e();
5920
5945
  }
@@ -6254,7 +6279,7 @@ function start(config$1) {
6254
6279
  if (check()) {
6255
6280
  config(config$1);
6256
6281
  start$5();
6257
- start$C();
6282
+ start$D();
6258
6283
  modules.forEach(function (x) { return measure(x.start)(); });
6259
6284
  // If it's an internal call to start, without explicit configuration,
6260
6285
  // re-process any newly accumulated items in the queue
@@ -6285,7 +6310,7 @@ function stop() {
6285
6310
  if (active()) {
6286
6311
  // Stop modules in the reverse order of their initialization and start queuing up items again
6287
6312
  modules.slice().reverse().forEach(function (x) { return measure(x.stop)(); });
6288
- stop$z();
6313
+ stop$A();
6289
6314
  stop$5();
6290
6315
  setup();
6291
6316
  }