clarity-js 0.7.5 → 0.7.7

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
@@ -80,6 +80,8 @@ function setup() {
80
80
  if (typeof w !== "undefined") {
81
81
  w[c] = function () {
82
82
  (w[c].q = w[c].q || []).push(arguments);
83
+ // if the start function was called, don't queue it and instead process the queue
84
+ arguments[0] === "start" && w[c].q.unshift(w[c].q.pop()) && process$7();
83
85
  };
84
86
  }
85
87
  }
@@ -145,11 +147,11 @@ function time(event) {
145
147
  var ts = event && event.timeStamp > 0 ? event.timeStamp : performance.now();
146
148
  return Math.max(Math.round(ts - startTime), 0);
147
149
  }
148
- function stop$C() {
150
+ function stop$D() {
149
151
  startTime = 0;
150
152
  }
151
153
 
152
- var version$1 = "0.7.5";
154
+ var version$1 = "0.7.7";
153
155
 
154
156
  // tslint:disable: no-bitwise
155
157
  function hash (input, precision) {
@@ -199,6 +201,7 @@ function text$1(value, hint, privacy, mangle) {
199
201
  case 3 /* Privacy.TextImage */:
200
202
  switch (hint) {
201
203
  case "*T" /* Layout.Constant.TextTag */:
204
+ case "data-" /* Layout.Constant.DataAttribute */:
202
205
  return mangle ? mangleText(value) : mask(value);
203
206
  case "src":
204
207
  case "srcset":
@@ -217,6 +220,7 @@ function text$1(value, hint, privacy, mangle) {
217
220
  case 4 /* Privacy.Exclude */:
218
221
  switch (hint) {
219
222
  case "*T" /* Layout.Constant.TextTag */:
223
+ case "data-" /* Layout.Constant.DataAttribute */:
220
224
  return mangle ? mangleText(value) : mask(value);
221
225
  case "value":
222
226
  case "input":
@@ -226,6 +230,25 @@ function text$1(value, hint, privacy, mangle) {
226
230
  case "checksum":
227
231
  return "" /* Data.Constant.Empty */;
228
232
  }
233
+ break;
234
+ case 5 /* Privacy.Snapshot */:
235
+ switch (hint) {
236
+ case "*T" /* Layout.Constant.TextTag */:
237
+ case "data-" /* Layout.Constant.DataAttribute */:
238
+ return scrub(value);
239
+ case "value":
240
+ case "input":
241
+ case "click":
242
+ case "change":
243
+ return Array(5 /* Data.Setting.WordLength */).join("\u2022" /* Data.Constant.Mask */);
244
+ case "checksum":
245
+ case "src":
246
+ case "srcset":
247
+ case "alt":
248
+ case "title":
249
+ return "" /* Data.Constant.Empty */;
250
+ }
251
+ break;
229
252
  }
230
253
  }
231
254
  return value;
@@ -253,6 +276,10 @@ function mangleText(value) {
253
276
  function mask(value) {
254
277
  return value.replace(catchallRegex, "\u2022" /* Data.Constant.Mask */);
255
278
  }
279
+ function scrub(value) {
280
+ regex(); // Initialize regular expressions
281
+ return value.replace(letterRegex, "\u25AA" /* Data.Constant.Letter */).replace(digitRegex, "\u25AB" /* Data.Constant.Digit */);
282
+ }
256
283
  function mangleToken(value) {
257
284
  var length = ((Math.floor(value.length / 5 /* Data.Setting.WordLength */) + 1) * 5 /* Data.Setting.WordLength */);
258
285
  var output = "" /* Layout.Constant.Empty */;
@@ -261,13 +288,7 @@ function mangleToken(value) {
261
288
  }
262
289
  return output;
263
290
  }
264
- function redact(value) {
265
- var spaceIndex = -1;
266
- var gap = 0;
267
- var hasDigit = false;
268
- var hasEmail = false;
269
- var hasWhitespace = false;
270
- var array = null;
291
+ function regex() {
271
292
  // Initialize unicode regex, if supported by the browser
272
293
  // Reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes
273
294
  if (unicodeRegex && digitRegex === null) {
@@ -280,6 +301,15 @@ function redact(value) {
280
301
  unicodeRegex = false;
281
302
  }
282
303
  }
304
+ }
305
+ function redact(value) {
306
+ var spaceIndex = -1;
307
+ var gap = 0;
308
+ var hasDigit = false;
309
+ var hasEmail = false;
310
+ var hasWhitespace = false;
311
+ var array = null;
312
+ regex(); // Initialize regular expressions
283
313
  for (var i = 0; i < value.length; i++) {
284
314
  var c = value.charCodeAt(i);
285
315
  hasDigit = hasDigit || (c >= 48 /* Data.Character.Zero */ && c <= 57 /* Data.Character.Nine */); // Check for digits in the current word
@@ -391,7 +421,7 @@ function compute$c() {
391
421
  encode$1(4 /* Event.Baseline */);
392
422
  }
393
423
  }
394
- function stop$B() {
424
+ function stop$C() {
395
425
  reset$q();
396
426
  }
397
427
 
@@ -402,7 +432,7 @@ var baseline = /*#__PURE__*/Object.freeze({
402
432
  reset: reset$q,
403
433
  start: start$F,
404
434
  get state () { return state$a; },
405
- stop: stop$B,
435
+ stop: stop$C,
406
436
  track: track$7,
407
437
  visibility: visibility
408
438
  });
@@ -428,7 +458,7 @@ function start$E() {
428
458
  updates$3 = {};
429
459
  count$1(5 /* Metric.InvokeCount */);
430
460
  }
431
- function stop$A() {
461
+ function stop$B() {
432
462
  data$i = {};
433
463
  updates$3 = {};
434
464
  }
@@ -506,7 +536,7 @@ function ping() {
506
536
  suspend();
507
537
  }
508
538
  }
509
- function stop$z() {
539
+ function stop$A() {
510
540
  clearTimeout(timeout$6);
511
541
  last = 0;
512
542
  interval = 0;
@@ -517,14 +547,14 @@ var ping$1 = /*#__PURE__*/Object.freeze({
517
547
  get data () { return data$h; },
518
548
  reset: reset$o,
519
549
  start: start$D,
520
- stop: stop$z
550
+ stop: stop$A
521
551
  });
522
552
 
523
553
  var data$g = null;
524
554
  function start$C() {
525
555
  data$g = {};
526
556
  }
527
- function stop$y() {
557
+ function stop$z() {
528
558
  data$g = {};
529
559
  }
530
560
  function track$6(event, time) {
@@ -557,7 +587,7 @@ var summary = /*#__PURE__*/Object.freeze({
557
587
  get data () { return data$g; },
558
588
  reset: reset$n,
559
589
  start: start$C,
560
- stop: stop$y,
590
+ stop: stop$z,
561
591
  track: track$6
562
592
  });
563
593
 
@@ -586,7 +616,7 @@ function upgrade(key) {
586
616
  encode$1(3 /* Event.Upgrade */);
587
617
  }
588
618
  }
589
- function stop$x() {
619
+ function stop$y() {
590
620
  data$f = null;
591
621
  }
592
622
 
@@ -594,7 +624,7 @@ var upgrade$1 = /*#__PURE__*/Object.freeze({
594
624
  __proto__: null,
595
625
  get data () { return data$f; },
596
626
  start: start$B,
597
- stop: stop$x,
627
+ stop: stop$y,
598
628
  upgrade: upgrade
599
629
  });
600
630
 
@@ -634,7 +664,7 @@ function compute$9() {
634
664
  function reset$m() {
635
665
  data$e = {};
636
666
  }
637
- function stop$w() {
667
+ function stop$x() {
638
668
  reset$m();
639
669
  }
640
670
 
@@ -646,7 +676,7 @@ var variable = /*#__PURE__*/Object.freeze({
646
676
  reset: reset$m,
647
677
  set: set,
648
678
  start: start$A,
649
- stop: stop$w
679
+ stop: stop$x
650
680
  });
651
681
 
652
682
  /******************************************************************************
@@ -766,13 +796,13 @@ function start$z() {
766
796
  start$E();
767
797
  modules$1.forEach(function (x) { return measure(x.start)(); });
768
798
  }
769
- function stop$v() {
799
+ function stop$w() {
770
800
  // Stop modules in the reverse order of their initialization
771
801
  // The ordering below should respect inter-module dependency.
772
802
  // E.g. if upgrade depends on upload, then upgrade needs to end before upload.
773
803
  // Similarly, if upload depends on metadata, upload needs to end before metadata.
774
804
  modules$1.slice().reverse().forEach(function (x) { return measure(x.stop)(); });
775
- stop$A();
805
+ stop$B();
776
806
  }
777
807
  function compute$8() {
778
808
  compute$9();
@@ -922,7 +952,7 @@ function start$x() {
922
952
  reset$k();
923
953
  parse$1(document, true);
924
954
  }
925
- function stop$u() {
955
+ function stop$v() {
926
956
  reset$k();
927
957
  }
928
958
  function reset$k() {
@@ -1269,7 +1299,7 @@ var dom = /*#__PURE__*/Object.freeze({
1269
1299
  parse: parse$1,
1270
1300
  sameorigin: sameorigin,
1271
1301
  start: start$x,
1272
- stop: stop$u,
1302
+ stop: stop$v,
1273
1303
  update: update$1,
1274
1304
  updates: updates$2
1275
1305
  });
@@ -1380,7 +1410,7 @@ function restart$2(timer) {
1380
1410
  tracker[id].yield = y;
1381
1411
  }
1382
1412
  }
1383
- function stop$t(timer) {
1413
+ function stop$u(timer) {
1384
1414
  var end = performance.now();
1385
1415
  var id = key(timer);
1386
1416
  var duration = end - tracker[id].start;
@@ -1400,7 +1430,7 @@ function suspend$1(timer) {
1400
1430
  case 0:
1401
1431
  id = key(timer);
1402
1432
  if (!(id in tracker)) return [3 /*break*/, 2];
1403
- stop$t(timer);
1433
+ stop$u(timer);
1404
1434
  _a = tracker[id];
1405
1435
  return [4 /*yield*/, wait()];
1406
1436
  case 1:
@@ -1543,7 +1573,7 @@ function compute$7() {
1543
1573
  encode$4(8 /* Event.Document */);
1544
1574
  }
1545
1575
  }
1546
- function end() {
1576
+ function stop$t() {
1547
1577
  reset$i();
1548
1578
  }
1549
1579
 
@@ -1678,7 +1708,7 @@ function str$1(input) {
1678
1708
  return input.toString(36);
1679
1709
  }
1680
1710
  function attribute(key, value, privacy) {
1681
- return "".concat(key, "=").concat(text$1(value, key, privacy));
1711
+ return "".concat(key, "=").concat(text$1(value, key.indexOf("data-" /* Constant.DataAttribute */) === 0 ? "data-" /* Constant.DataAttribute */ : key, privacy));
1682
1712
  }
1683
1713
 
1684
1714
  var state$8 = [];
@@ -1851,7 +1881,7 @@ function stop$r() {
1851
1881
  reset$g();
1852
1882
  }
1853
1883
 
1854
- function offset (element) {
1884
+ function offset(element) {
1855
1885
  var output = { x: 0, y: 0 };
1856
1886
  // Walk up the chain to ensure we compute offset distance correctly
1857
1887
  // In case where we may have nested IFRAMEs, we keep walking up until we get to the top most parent page
@@ -1924,6 +1954,18 @@ function handler$2(event, root, evt) {
1924
1954
  schedule$1(encode$3.bind(this, event));
1925
1955
  }
1926
1956
  }
1957
+ function link(node) {
1958
+ while (node && node !== document) {
1959
+ if (node.nodeType === Node.ELEMENT_NODE) {
1960
+ var element = node;
1961
+ if (element.tagName === "A") {
1962
+ return element;
1963
+ }
1964
+ }
1965
+ node = node.parentNode;
1966
+ }
1967
+ return null;
1968
+ }
1927
1969
  function text(element) {
1928
1970
  var output = null;
1929
1971
  if (element) {
@@ -2661,7 +2703,7 @@ function getAttributes(element) {
2661
2703
 
2662
2704
  function traverse (root, timer, source) {
2663
2705
  return __awaiter(this, void 0, void 0, function () {
2664
- var queue, node, next, state, subnode;
2706
+ var queue, entry, next, state, subnode;
2665
2707
  return __generator(this, function (_a) {
2666
2708
  switch (_a.label) {
2667
2709
  case 0:
@@ -2669,8 +2711,8 @@ function traverse (root, timer, source) {
2669
2711
  _a.label = 1;
2670
2712
  case 1:
2671
2713
  if (!(queue.length > 0)) return [3 /*break*/, 4];
2672
- node = queue.shift();
2673
- next = node.firstChild;
2714
+ entry = queue.shift();
2715
+ next = entry.firstChild;
2674
2716
  while (next) {
2675
2717
  queue.push(next);
2676
2718
  next = next.nextSibling;
@@ -2685,7 +2727,7 @@ function traverse (root, timer, source) {
2685
2727
  if (state === 2 /* Task.Stop */) {
2686
2728
  return [3 /*break*/, 4];
2687
2729
  }
2688
- subnode = processNode(node, source);
2730
+ subnode = processNode(entry, source);
2689
2731
  if (subnode) {
2690
2732
  queue.push(subnode);
2691
2733
  }
@@ -2868,7 +2910,7 @@ function process$1() {
2868
2910
  _b.sent();
2869
2911
  return [3 /*break*/, 1];
2870
2912
  case 8:
2871
- stop$t(timer);
2913
+ stop$u(timer);
2872
2914
  return [2 /*return*/];
2873
2915
  }
2874
2916
  });
@@ -3000,18 +3042,6 @@ function target(evt) {
3000
3042
  active$2(); // Mark active periods of time so mutations can continue uninterrupted
3001
3043
  return node.nodeType === Node.DOCUMENT_NODE ? node.documentElement : node;
3002
3044
  }
3003
- function link(node) {
3004
- while (node && node !== document) {
3005
- if (node.nodeType === Node.ELEMENT_NODE) {
3006
- var element = node;
3007
- if (element.tagName === "A") {
3008
- return element;
3009
- }
3010
- }
3011
- node = node.parentNode;
3012
- }
3013
- return null;
3014
- }
3015
3045
  function metadata$2(node, event, text) {
3016
3046
  if (text === void 0) { text = null; }
3017
3047
  // If the node is null, we return a reserved value for id: 0. Valid assignment of id begins from 1+.
@@ -3070,7 +3100,7 @@ function encode$3 (type, ts) {
3070
3100
  entry = _c[_b];
3071
3101
  cTarget = metadata$2(entry.data.target, entry.event, entry.data.text);
3072
3102
  tokens = [entry.time, entry.event];
3073
- cHash = cTarget.hash.join("." /* Constant.Dot */);
3103
+ cHash = cTarget.hash ? cTarget.hash.join("." /* Constant.Dot */) : "" /* Constant.Empty */;
3074
3104
  tokens.push(cTarget.id);
3075
3105
  tokens.push(entry.data.x);
3076
3106
  tokens.push(entry.data.y);
@@ -3290,6 +3320,7 @@ function queue(tokens, transmit) {
3290
3320
  discoverBytes += event_1.length;
3291
3321
  case 37 /* Event.Box */:
3292
3322
  case 6 /* Event.Mutation */:
3323
+ case 43 /* Event.Snapshot */:
3293
3324
  playbackBytes += event_1.length;
3294
3325
  playback.push(event_1);
3295
3326
  break;
@@ -3630,12 +3661,18 @@ function stop$c() {
3630
3661
  }
3631
3662
 
3632
3663
  var data$5 = {};
3633
- var keys = [];
3664
+ var keys = new Set();
3634
3665
  var variables = {};
3635
3666
  var selectors = {};
3667
+ var hashes = {};
3636
3668
  function start$c() {
3637
3669
  reset$4();
3638
3670
  }
3671
+ // Input string is of the following form:
3672
+ // EXTRACT 101 { "1": ".class1", "2": "~window.a.b", "3": "!abc"}
3673
+ // Which will set up event 101 to grab the contents of the class1 selector into component 1,
3674
+ // the javascript evaluated contents of window.a.b into component 2,
3675
+ // and the contents of Clarity's hash abc into component 3
3639
3676
  function trigger$1(input) {
3640
3677
  try {
3641
3678
  var parts = input && input.length > 0 ? input.split(/ (.*)/) : ["" /* Constant.Empty */];
@@ -3643,10 +3680,19 @@ function trigger$1(input) {
3643
3680
  var values = parts.length > 1 ? JSON.parse(parts[1]) : {};
3644
3681
  variables[key] = {};
3645
3682
  selectors[key] = {};
3683
+ hashes[key] = {};
3646
3684
  for (var v in values) {
3685
+ // values is a set of strings for proper JSON parsing, but it's more efficient
3686
+ // to interact with them as numbers
3647
3687
  var id = parseInt(v);
3648
3688
  var value = values[v];
3649
- var source = value.startsWith("~" /* Constant.Tilde */) ? 0 /* ExtractSource.Javascript */ : 2 /* ExtractSource.Text */;
3689
+ var source = 2 /* ExtractSource.Text */;
3690
+ if (value.startsWith("~" /* Constant.Tilde */)) {
3691
+ source = 0 /* ExtractSource.Javascript */;
3692
+ }
3693
+ else if (value.startsWith("!" /* Constant.Bang */)) {
3694
+ source = 4 /* ExtractSource.Hash */;
3695
+ }
3650
3696
  switch (source) {
3651
3697
  case 0 /* ExtractSource.Javascript */:
3652
3698
  var variable = value.substring(1, value.length);
@@ -3655,6 +3701,10 @@ function trigger$1(input) {
3655
3701
  case 2 /* ExtractSource.Text */:
3656
3702
  selectors[key][id] = value;
3657
3703
  break;
3704
+ case 4 /* ExtractSource.Hash */:
3705
+ var hash = value.substring(1, value.length);
3706
+ hashes[key][id] = hash;
3707
+ break;
3658
3708
  }
3659
3709
  }
3660
3710
  }
@@ -3669,44 +3719,56 @@ function compute$4() {
3669
3719
  try {
3670
3720
  for (var v in variables) {
3671
3721
  var key = parseInt(v);
3672
- if (!(key in keys)) {
3673
- var variableData = variables[key];
3674
- for (var v_1 in variableData) {
3675
- var variableKey = parseInt(v_1);
3676
- var value = str(evaluate(clone(variableData[variableKey])));
3677
- if (value) {
3678
- update(key, variableKey, value);
3679
- }
3722
+ var variableData = variables[key];
3723
+ for (var v_1 in variableData) {
3724
+ var variableKey = parseInt(v_1);
3725
+ var value = str(evaluate(clone(variableData[variableKey])));
3726
+ if (value) {
3727
+ update(key, variableKey, value);
3680
3728
  }
3681
- var selectorData = selectors[key];
3682
- for (var s in selectorData) {
3683
- var selectorKey = parseInt(s);
3684
- var nodes = document.querySelectorAll(selectorData[selectorKey]);
3685
- if (nodes) {
3686
- var text = Array.from(nodes).map(function (e) { return e.innerText; });
3687
- update(key, selectorKey, text.join("<SEP>" /* Constant.Seperator */).substring(0, 10000 /* Setting.ExtractLimit */));
3688
- }
3729
+ }
3730
+ var selectorData = selectors[key];
3731
+ for (var s in selectorData) {
3732
+ var selectorKey = parseInt(s);
3733
+ var nodes = document.querySelectorAll(selectorData[selectorKey]);
3734
+ if (nodes) {
3735
+ var text = Array.from(nodes).map(function (e) { return e.innerText; });
3736
+ update(key, selectorKey, text.join("<SEP>" /* Constant.Seperator */).substring(0, 10000 /* Setting.ExtractLimit */));
3689
3737
  }
3690
3738
  }
3739
+ var hashData = hashes[key];
3740
+ for (var h in hashData) {
3741
+ var hashKey = parseInt(h);
3742
+ var content = hashText(hashData[hashKey]).trim().substring(0, 10000 /* Setting.ExtractLimit */);
3743
+ update(key, hashKey, content);
3744
+ }
3745
+ }
3746
+ if (keys.size > 0) {
3747
+ encode$1(40 /* Event.Extract */);
3691
3748
  }
3692
3749
  }
3693
3750
  catch (e) {
3694
3751
  log$1(5 /* Code.Selector */, 1 /* Severity.Warning */, e ? e.name : null);
3695
3752
  }
3696
- encode$1(40 /* Event.Extract */);
3697
3753
  }
3698
3754
  function reset$4() {
3699
- data$5 = {};
3700
- keys = [];
3701
- variables = {};
3702
- selectors = {};
3755
+ keys.clear();
3703
3756
  }
3704
3757
  function update(key, subkey, value) {
3758
+ var update = false;
3705
3759
  if (!(key in data$5)) {
3706
- data$5[key] = [];
3707
- keys.push(key);
3760
+ data$5[key] = {};
3761
+ update = true;
3708
3762
  }
3709
- data$5[key].push([subkey, value]);
3763
+ if (!isEmpty(hashes[key])
3764
+ && (!(subkey in data$5[key]) || data$5[key][subkey] != value)) {
3765
+ update = true;
3766
+ }
3767
+ data$5[key][subkey] = value;
3768
+ if (update) {
3769
+ keys.add(key);
3770
+ }
3771
+ return;
3710
3772
  }
3711
3773
  function stop$b() {
3712
3774
  reset$4();
@@ -3769,6 +3831,9 @@ function match(base, condition) {
3769
3831
  return prop.length > 1 ? base[prop[0]] == prop[1] : base[prop[0]];
3770
3832
  }
3771
3833
  return true;
3834
+ }
3835
+ function isEmpty(obj) {
3836
+ return Object.keys(obj).length == 0;
3772
3837
  }
3773
3838
 
3774
3839
  function encode$1 (event) {
@@ -3871,11 +3936,16 @@ function encode$1 (event) {
3871
3936
  break;
3872
3937
  case 40 /* Event.Extract */:
3873
3938
  var extractKeys = keys;
3874
- for (var _d = 0, extractKeys_1 = extractKeys; _d < extractKeys_1.length; _d++) {
3875
- var e = extractKeys_1[_d];
3939
+ extractKeys.forEach((function (e) {
3876
3940
  tokens.push(e);
3877
- tokens.push([].concat.apply([], data$5[e]));
3878
- }
3941
+ var token = [];
3942
+ for (var d in data$5[e]) {
3943
+ var key = parseInt(d, 10);
3944
+ token.push(key);
3945
+ token.push(data$5[e][d]);
3946
+ }
3947
+ tokens.push(token);
3948
+ }));
3879
3949
  reset$4();
3880
3950
  queue(tokens, false);
3881
3951
  }
@@ -4023,11 +4093,17 @@ function stop$8() {
4023
4093
  }
4024
4094
  function metadata(cb, wait) {
4025
4095
  if (wait === void 0) { wait = true; }
4026
- if (data$2 && wait === false) {
4096
+ var upgraded = config$1.lean ? 0 /* BooleanFlag.False */ : 1 /* BooleanFlag.True */;
4097
+ // if caller hasn't specified that they want to skip waiting for upgrade but we've already upgraded, we need to
4098
+ // directly execute the callback rather than adding to our list as we only process callbacks at the moment
4099
+ // we go through the upgrading flow.
4100
+ if (data$2 && (upgraded || wait === false)) {
4027
4101
  // Immediately invoke the callback if the caller explicitly doesn't want to wait for the upgrade confirmation
4028
4102
  cb(data$2, !config$1.lean);
4029
4103
  }
4030
- callbacks.push({ callback: cb, wait: wait });
4104
+ else {
4105
+ callbacks.push({ callback: cb, wait: wait });
4106
+ }
4031
4107
  }
4032
4108
  function id() {
4033
4109
  return data$2 ? [data$2.userId, data$2.sessionId, data$2.pageNum].join("." /* Constant.Dot */) : "" /* Constant.Empty */;
@@ -4385,7 +4461,7 @@ function stop$5() {
4385
4461
  reset$2();
4386
4462
  reset$1();
4387
4463
  reset$j();
4388
- stop$C();
4464
+ stop$D();
4389
4465
  status = false;
4390
4466
  }
4391
4467
  function active() {
@@ -4474,7 +4550,7 @@ function discover() {
4474
4550
  return [4 /*yield*/, encode$4(5 /* Event.Discover */, timer, ts)];
4475
4551
  case 2:
4476
4552
  _a.sent();
4477
- stop$t(timer);
4553
+ stop$u(timer);
4478
4554
  return [2 /*return*/];
4479
4555
  }
4480
4556
  });
@@ -4492,9 +4568,9 @@ function start$3() {
4492
4568
  }
4493
4569
  function stop$3() {
4494
4570
  stop$s();
4495
- stop$u();
4571
+ stop$v();
4496
4572
  stop$f();
4497
- end();
4573
+ stop$t();
4498
4574
  }
4499
4575
 
4500
4576
  var layout = /*#__PURE__*/Object.freeze({
@@ -4719,7 +4795,7 @@ function stop() {
4719
4795
  if (active()) {
4720
4796
  // Stop modules in the reverse order of their initialization and start queuing up items again
4721
4797
  modules.slice().reverse().forEach(function (x) { return measure(x.stop)(); });
4722
- stop$v();
4798
+ stop$w();
4723
4799
  stop$5();
4724
4800
  setup();
4725
4801
  }