@gemx-dev/clarity-js 0.8.84 → 0.8.86

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.
@@ -18,8 +18,18 @@ var dom = /*#__PURE__*/Object.freeze({
18
18
  get update () { return update; },
19
19
  get updates () { return updates$2; }
20
20
  });
21
+ var timeline = /*#__PURE__*/Object.freeze({
22
+ __proto__: null,
23
+ get compute () { return compute$5; },
24
+ get reset () { return reset$5; },
25
+ get start () { return start$j; },
26
+ get stop () { return stop$h; },
27
+ get track () { return track$2; },
28
+ get updates () { return updates$1; }
29
+ });
21
30
  var upload$1 = /*#__PURE__*/Object.freeze({
22
31
  __proto__: null,
32
+ get flush () { return flush; },
23
33
  get queue () { return queue; },
24
34
  get start () { return start$h; },
25
35
  get stop () { return stop$f; },
@@ -176,6 +186,7 @@ var config$2 = {
176
186
  externalSession: false,
177
187
  userId: null,
178
188
  sessionId: null,
189
+ mode: "gemx",
179
190
  };
180
191
 
181
192
  function api(method) {
@@ -205,11 +216,11 @@ function time(event) {
205
216
  var origin = event && event.view ? event.view.performance.timeOrigin : performance.timeOrigin;
206
217
  return Math.max(Math.round(ts + origin - baseline), 0);
207
218
  }
208
- function stop$L() {
219
+ function stop$M() {
209
220
  startTime = 0;
210
221
  }
211
222
 
212
- var version$1 = "0.8.84";
223
+ var version$1 = "0.8.86";
213
224
 
214
225
  // tslint:disable: no-bitwise
215
226
  function hash (input, precision) {
@@ -556,7 +567,7 @@ function track$8(event, x, y, time) {
556
567
  function activity(t) {
557
568
  buffer.activityTime = t;
558
569
  }
559
- function visibility(t, visible) {
570
+ function visibility$1(t, visible) {
560
571
  buffer.visible = visible;
561
572
  if (!buffer.visible) {
562
573
  activity(t);
@@ -572,7 +583,7 @@ function compute$g() {
572
583
  encode$1(4 /* Event.Baseline */);
573
584
  }
574
585
  }
575
- function stop$K() {
586
+ function stop$L() {
576
587
  reset$u();
577
588
  }
578
589
 
@@ -584,9 +595,9 @@ var baseline = /*#__PURE__*/Object.freeze({
584
595
  reset: reset$u,
585
596
  start: start$O,
586
597
  get state () { return state$b; },
587
- stop: stop$K,
598
+ stop: stop$L,
588
599
  track: track$8,
589
- visibility: visibility
600
+ visibility: visibility$1
590
601
  });
591
602
 
592
603
  var data$l = null;
@@ -614,7 +625,7 @@ function start$N() {
614
625
  updates$3 = {};
615
626
  count$1(5 /* Metric.InvokeCount */);
616
627
  }
617
- function stop$J() {
628
+ function stop$K() {
618
629
  data$k = {};
619
630
  updates$3 = {};
620
631
  }
@@ -692,7 +703,7 @@ function ping() {
692
703
  suspend();
693
704
  }
694
705
  }
695
- function stop$I() {
706
+ function stop$J() {
696
707
  clearTimeout$1(timeout$7);
697
708
  last = 0;
698
709
  interval = 0;
@@ -703,14 +714,14 @@ var ping$1 = /*#__PURE__*/Object.freeze({
703
714
  get data () { return data$j; },
704
715
  reset: reset$s,
705
716
  start: start$M,
706
- stop: stop$I
717
+ stop: stop$J
707
718
  });
708
719
 
709
720
  var data$i = null;
710
721
  function start$L() {
711
722
  data$i = {};
712
723
  }
713
- function stop$H() {
724
+ function stop$I() {
714
725
  data$i = {};
715
726
  }
716
727
  function track$7(event, time) {
@@ -743,7 +754,7 @@ var summary = /*#__PURE__*/Object.freeze({
743
754
  get data () { return data$i; },
744
755
  reset: reset$r,
745
756
  start: start$L,
746
- stop: stop$H,
757
+ stop: stop$I,
747
758
  track: track$7
748
759
  });
749
760
 
@@ -944,7 +955,7 @@ function compute$d() {
944
955
  function reset$q() {
945
956
  data$h = {};
946
957
  }
947
- function stop$G() {
958
+ function stop$H() {
948
959
  reset$q();
949
960
  }
950
961
  function redact(input) {
@@ -985,7 +996,7 @@ var variable = /*#__PURE__*/Object.freeze({
985
996
  reset: reset$q,
986
997
  set: set$1,
987
998
  start: start$K,
988
- stop: stop$G
999
+ stop: stop$H
989
1000
  });
990
1001
 
991
1002
  var data$g = {};
@@ -1110,7 +1121,7 @@ function update$1(key, subkey, value) {
1110
1121
  }
1111
1122
  return;
1112
1123
  }
1113
- function stop$F() {
1124
+ function stop$G() {
1114
1125
  reset$p();
1115
1126
  }
1116
1127
  function parse$1(variable) {
@@ -1184,7 +1195,7 @@ var extract = /*#__PURE__*/Object.freeze({
1184
1195
  keys: keys,
1185
1196
  reset: reset$p,
1186
1197
  start: start$J,
1187
- stop: stop$F,
1198
+ stop: stop$G,
1188
1199
  trigger: trigger$2,
1189
1200
  update: update$1
1190
1201
  });
@@ -1215,7 +1226,7 @@ var COOKIE_SEP = "^" /* Constant.Caret */;
1215
1226
  function start$I() {
1216
1227
  rootDomain = null;
1217
1228
  }
1218
- function stop$E() {
1229
+ function stop$F() {
1219
1230
  rootDomain = null;
1220
1231
  }
1221
1232
  function getCookie(key, limit) {
@@ -1298,20 +1309,22 @@ var cookie = /*#__PURE__*/Object.freeze({
1298
1309
  getCookie: getCookie,
1299
1310
  setCookie: setCookie,
1300
1311
  start: start$I,
1301
- stop: stop$E
1312
+ stop: stop$F
1302
1313
  });
1303
1314
 
1304
1315
  var defaultConfig = {
1305
1316
  excludeClassNames: [],
1317
+ ignoreMutationClassNames: [],
1306
1318
  };
1307
1319
  var _config = __assign({}, defaultConfig);
1308
1320
  function start$H() {
1309
- var _a, _b;
1321
+ var _a, _b, _c, _d;
1310
1322
  _config = {
1311
1323
  excludeClassNames: ((_b = (_a = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _a === void 0 ? void 0 : _a.excludeClassNames) !== null && _b !== void 0 ? _b : []),
1324
+ ignoreMutationClassNames: ((_d = (_c = window === null || window === void 0 ? void 0 : window.GemXHeatmap) === null || _c === void 0 ? void 0 : _c.ignoreMutationClassNames) !== null && _d !== void 0 ? _d : []),
1312
1325
  };
1313
1326
  }
1314
- function stop$D() {
1327
+ function stop$E() {
1315
1328
  _config = __assign({}, defaultConfig);
1316
1329
  }
1317
1330
  function set(config) {
@@ -1326,7 +1339,7 @@ var gemx = /*#__PURE__*/Object.freeze({
1326
1339
  get: get$2,
1327
1340
  set: set,
1328
1341
  start: start$H,
1329
- stop: stop$D
1342
+ stop: stop$E
1330
1343
  });
1331
1344
 
1332
1345
  var signalCallback = null;
@@ -1357,29 +1370,31 @@ function signalsEvent(signalsPayload) {
1357
1370
  }
1358
1371
  }
1359
1372
 
1360
- var modules$2 = [gemx, baseline, dimension, variable, limit, summary, cookie, consent$2, metadata$1, envelope$1, upload$1, ping$1, upgrade$1, extract];
1373
+ var modules$3 = [gemx, baseline, dimension, variable, limit, summary, cookie, consent$2, metadata$1, envelope$1, upload$1, ping$1, upgrade$1, extract];
1361
1374
  function start$G() {
1362
1375
  // Metric needs to be initialized before we can start measuring. so metric is not wrapped in measure
1363
1376
  start$N();
1364
- modules$2.forEach(function (x) { return measure(x.start)(); });
1377
+ modules$3.forEach(function (x) { return measure(x.start)(); });
1365
1378
  }
1366
- function stop$C() {
1379
+ function stop$D() {
1367
1380
  // Stop modules in the reverse order of their initialization
1368
1381
  // The ordering below should respect inter-module dependency.
1369
1382
  // E.g. if upgrade depends on upload, then upgrade needs to end before upload.
1370
1383
  // Similarly, if upload depends on metadata, upload needs to end before metadata.
1371
- modules$2.slice().reverse().forEach(function (x) { return measure(x.stop)(); });
1372
- stop$J();
1384
+ modules$3.slice().reverse().forEach(function (x) { return measure(x.stop)(); });
1385
+ stop$K();
1373
1386
  }
1374
1387
  function compute$b() {
1375
- compute$d();
1376
1388
  compute$g();
1377
- compute$3();
1378
- compute$f();
1379
- compute$e();
1380
1389
  compute$4();
1381
- compute$c();
1382
1390
  compute$2();
1391
+ if (config$2.mode !== "gemx") {
1392
+ compute$d();
1393
+ compute$3();
1394
+ compute$f();
1395
+ compute$e();
1396
+ compute$c();
1397
+ }
1383
1398
  }
1384
1399
 
1385
1400
  var history$5 = [];
@@ -1438,10 +1453,19 @@ function recompute$8(evt) {
1438
1453
  function reset$o() {
1439
1454
  state$a = [];
1440
1455
  }
1441
- function stop$B() {
1456
+ function stop$C() {
1442
1457
  reset$o();
1443
1458
  }
1444
1459
 
1460
+ var change = /*#__PURE__*/Object.freeze({
1461
+ __proto__: null,
1462
+ observe: observe$c,
1463
+ reset: reset$o,
1464
+ start: start$E,
1465
+ get state () { return state$a; },
1466
+ stop: stop$C
1467
+ });
1468
+
1445
1469
  function offset(element) {
1446
1470
  var output = { x: 0, y: 0 };
1447
1471
  // Walk up the chain to ensure we compute offset distance correctly
@@ -1692,10 +1716,19 @@ function source() {
1692
1716
  function reset$n() {
1693
1717
  state$9 = [];
1694
1718
  }
1695
- function stop$A() {
1719
+ function stop$B() {
1696
1720
  reset$n();
1697
1721
  }
1698
1722
 
1723
+ var click = /*#__PURE__*/Object.freeze({
1724
+ __proto__: null,
1725
+ observe: observe$b,
1726
+ reset: reset$n,
1727
+ start: start$D,
1728
+ get state () { return state$9; },
1729
+ stop: stop$B
1730
+ });
1731
+
1699
1732
  var state$8 = [];
1700
1733
  function start$C() {
1701
1734
  reset$m();
@@ -1712,10 +1745,19 @@ function recompute$7(action, evt) {
1712
1745
  function reset$m() {
1713
1746
  state$8 = [];
1714
1747
  }
1715
- function stop$z() {
1748
+ function stop$A() {
1716
1749
  reset$m();
1717
1750
  }
1718
1751
 
1752
+ var clipboard = /*#__PURE__*/Object.freeze({
1753
+ __proto__: null,
1754
+ observe: observe$a,
1755
+ reset: reset$m,
1756
+ start: start$C,
1757
+ get state () { return state$8; },
1758
+ stop: stop$A
1759
+ });
1760
+
1719
1761
  var timeout$6 = null;
1720
1762
  var state$7 = [];
1721
1763
  function start$B() {
@@ -1752,11 +1794,20 @@ function process$7(event) {
1752
1794
  function reset$l() {
1753
1795
  state$7 = [];
1754
1796
  }
1755
- function stop$y() {
1797
+ function stop$z() {
1756
1798
  clearTimeout$1(timeout$6);
1757
1799
  reset$l();
1758
1800
  }
1759
1801
 
1802
+ var input = /*#__PURE__*/Object.freeze({
1803
+ __proto__: null,
1804
+ observe: observe$9,
1805
+ reset: reset$l,
1806
+ start: start$B,
1807
+ get state () { return state$7; },
1808
+ stop: stop$z
1809
+ });
1810
+
1760
1811
  var state$6 = [];
1761
1812
  var timeout$5 = null;
1762
1813
  var hasPrimaryTouch = false;
@@ -1870,7 +1921,7 @@ function similar$1(last, current) {
1870
1921
  var sameId = current.data.id !== undefined ? current.data.id === last.data.id : true;
1871
1922
  return current.event === last.event && match && distance < 20 /* Setting.Distance */ && gap < 25 /* Setting.PointerInterval */ && sameId;
1872
1923
  }
1873
- function stop$x() {
1924
+ function stop$y() {
1874
1925
  clearTimeout$1(timeout$5);
1875
1926
  // Send out any pending pointer events in the pipeline
1876
1927
  if (state$6.length > 0) {
@@ -1878,6 +1929,15 @@ function stop$x() {
1878
1929
  }
1879
1930
  }
1880
1931
 
1932
+ var pointer = /*#__PURE__*/Object.freeze({
1933
+ __proto__: null,
1934
+ observe: observe$8,
1935
+ reset: reset$k,
1936
+ start: start$A,
1937
+ get state () { return state$6; },
1938
+ stop: stop$y
1939
+ });
1940
+
1881
1941
  /**
1882
1942
  * Creates a throttled version of the provided function that only executes at most once
1883
1943
  * every specified duration in milliseconds, ensuring the last event is not lost.
@@ -1960,10 +2020,18 @@ function reset$j() {
1960
2020
  clearTimeout$1(timeout$4);
1961
2021
  throttledRecompute$1.cleanup();
1962
2022
  }
1963
- function stop$w() {
2023
+ function stop$x() {
1964
2024
  reset$j();
1965
2025
  }
1966
2026
 
2027
+ var resize = /*#__PURE__*/Object.freeze({
2028
+ __proto__: null,
2029
+ get data () { return data$e; },
2030
+ reset: reset$j,
2031
+ start: start$z,
2032
+ stop: stop$x
2033
+ });
2034
+
1967
2035
  var state$5 = [];
1968
2036
  var initialTop = null;
1969
2037
  var initialBottom = null;
@@ -2065,7 +2133,7 @@ function compute$a() {
2065
2133
  log(32 /* Dimension.InitialScrollBottom */, (_b = bottom === null || bottom === void 0 ? void 0 : bottom.hash) === null || _b === void 0 ? void 0 : _b.join("." /* Constant.Dot */));
2066
2134
  }
2067
2135
  }
2068
- function stop$v() {
2136
+ function stop$w() {
2069
2137
  clearTimeout$1(timeout$3);
2070
2138
  throttledRecompute.cleanup();
2071
2139
  state$5 = [];
@@ -2073,6 +2141,16 @@ function stop$v() {
2073
2141
  initialBottom = null;
2074
2142
  }
2075
2143
 
2144
+ var scroll = /*#__PURE__*/Object.freeze({
2145
+ __proto__: null,
2146
+ compute: compute$a,
2147
+ observe: observe$7,
2148
+ reset: reset$i,
2149
+ start: start$y,
2150
+ get state () { return state$5; },
2151
+ stop: stop$w
2152
+ });
2153
+
2076
2154
  var data$d = null;
2077
2155
  var previous = null;
2078
2156
  var timeout$2 = null;
@@ -2120,11 +2198,20 @@ function reset$h() {
2120
2198
  previous = null;
2121
2199
  data$d = { start: 0, startOffset: 0, end: 0, endOffset: 0 };
2122
2200
  }
2123
- function stop$u() {
2201
+ function stop$v() {
2124
2202
  reset$h();
2125
2203
  clearTimeout$1(timeout$2);
2126
2204
  }
2127
2205
 
2206
+ var selection = /*#__PURE__*/Object.freeze({
2207
+ __proto__: null,
2208
+ get data () { return data$d; },
2209
+ observe: observe$6,
2210
+ reset: reset$h,
2211
+ start: start$x,
2212
+ stop: stop$v
2213
+ });
2214
+
2128
2215
  var state$4 = [];
2129
2216
  function start$w() {
2130
2217
  reset$g();
@@ -2139,13 +2226,26 @@ function recompute$2(evt) {
2139
2226
  function reset$g() {
2140
2227
  state$4 = [];
2141
2228
  }
2142
- function stop$t() {
2229
+ function stop$u() {
2143
2230
  reset$g();
2144
2231
  }
2145
2232
 
2233
+ var submit = /*#__PURE__*/Object.freeze({
2234
+ __proto__: null,
2235
+ observe: observe$5,
2236
+ reset: reset$g,
2237
+ start: start$w,
2238
+ get state () { return state$4; },
2239
+ stop: stop$u
2240
+ });
2241
+
2146
2242
  var data$c;
2147
2243
  function start$v() {
2148
2244
  bind(window, "pagehide", recompute$1);
2245
+ bind(window, "beforeunload", beforeUnload);
2246
+ }
2247
+ function beforeUnload() {
2248
+ flush();
2149
2249
  }
2150
2250
  function recompute$1(evt) {
2151
2251
  data$c = { name: evt.type, persisted: evt.persisted ? 1 /* BooleanFlag.True */ : 0 /* BooleanFlag.False */ };
@@ -2155,10 +2255,18 @@ function recompute$1(evt) {
2155
2255
  function reset$f() {
2156
2256
  data$c = null;
2157
2257
  }
2158
- function stop$s() {
2258
+ function stop$t() {
2159
2259
  reset$f();
2160
2260
  }
2161
2261
 
2262
+ var unload = /*#__PURE__*/Object.freeze({
2263
+ __proto__: null,
2264
+ get data () { return data$c; },
2265
+ reset: reset$f,
2266
+ start: start$v,
2267
+ stop: stop$t
2268
+ });
2269
+
2162
2270
  var data$b;
2163
2271
  function start$u() {
2164
2272
  bind(document, "visibilitychange", recompute);
@@ -2175,16 +2283,24 @@ function recompute(evt) {
2175
2283
  function reset$e() {
2176
2284
  data$b = null;
2177
2285
  }
2178
- function stop$r() {
2286
+ function stop$s() {
2179
2287
  reset$e();
2180
2288
  }
2181
2289
 
2290
+ var visibility = /*#__PURE__*/Object.freeze({
2291
+ __proto__: null,
2292
+ get data () { return data$b; },
2293
+ reset: reset$e,
2294
+ start: start$u,
2295
+ stop: stop$s
2296
+ });
2297
+
2182
2298
  var data$a;
2183
2299
  function start$t() {
2184
2300
  bind(window, "focus", function () { return compute$9(1 /* BooleanFlag.True */); });
2185
2301
  bind(window, "blur", function () { return compute$9(0 /* BooleanFlag.False */); });
2186
2302
  }
2187
- function stop$q() {
2303
+ function stop$r() {
2188
2304
  reset$d();
2189
2305
  }
2190
2306
  function reset$d() {
@@ -2195,6 +2311,14 @@ function compute$9(focus) {
2195
2311
  encode$4(50 /* Event.Focus */);
2196
2312
  }
2197
2313
 
2314
+ var focus = /*#__PURE__*/Object.freeze({
2315
+ __proto__: null,
2316
+ get data () { return data$a; },
2317
+ reset: reset$d,
2318
+ start: start$t,
2319
+ stop: stop$r
2320
+ });
2321
+
2198
2322
  var bound = false;
2199
2323
  function start$s() {
2200
2324
  // Only bind once - this listener must persist even when Clarity stops
@@ -2217,50 +2341,57 @@ function handler$2(evt) {
2217
2341
  log$1(11 /* Code.BFCache */, 0 /* Severity.Info */);
2218
2342
  }
2219
2343
  }
2344
+ function stop$q() {
2345
+ // Intentionally don't remove the listener or reset 'bound' flag
2346
+ // We need the listener to persist to detect bfcache restoration
2347
+ }
2220
2348
 
2349
+ var pageshow = /*#__PURE__*/Object.freeze({
2350
+ __proto__: null,
2351
+ start: start$s,
2352
+ stop: stop$q
2353
+ });
2354
+
2355
+ var GEMX$1 = [
2356
+ timeline,
2357
+ click,
2358
+ resize,
2359
+ visibility,
2360
+ scroll,
2361
+ pageshow,
2362
+ unload,
2363
+ ];
2364
+ var ALL$1 = [
2365
+ timeline,
2366
+ click,
2367
+ clipboard,
2368
+ pointer,
2369
+ input,
2370
+ resize,
2371
+ visibility,
2372
+ focus,
2373
+ pageshow,
2374
+ scroll,
2375
+ selection,
2376
+ change,
2377
+ submit,
2378
+ unload
2379
+ ];
2380
+ var GEMX_OBSERVE = { allRoots: [scroll], documentOnly: [click] };
2381
+ var ALL_OBSERVE = { allRoots: [scroll], documentOnly: [click, clipboard, pointer, input, selection, change, submit] };
2382
+ var modules$2 = ALL$1;
2221
2383
  function start$r() {
2222
- start$j();
2223
- start$D();
2224
- start$C();
2225
- start$A();
2226
- start$B();
2227
- start$z();
2228
- start$u();
2229
- start$t();
2230
- start$s();
2231
- start$y();
2232
- start$x();
2233
- start$E();
2234
- start$w();
2235
- start$v();
2384
+ modules$2 = config$2.mode === "gemx" ? GEMX$1 : ALL$1;
2385
+ modules$2.forEach(function (m) { return m.start(); });
2236
2386
  }
2237
2387
  function stop$p() {
2238
- stop$h();
2239
- stop$A();
2240
- stop$z();
2241
- stop$x();
2242
- stop$y();
2243
- stop$w();
2244
- stop$r();
2245
- stop$q();
2246
- stop$v();
2247
- stop$u();
2248
- stop$B();
2249
- stop$t();
2250
- stop$s();
2388
+ modules$2.forEach(function (m) { return m.stop(); });
2251
2389
  }
2252
2390
  function observe$4(root) {
2253
- observe$7(root);
2254
- // Only monitor following interactions if the root node is a document
2255
- // In case of shadow DOM, following events automatically bubble up to the parent document.
2391
+ var observeModules = config$2.mode === "gemx" ? GEMX_OBSERVE : ALL_OBSERVE;
2392
+ observeModules.allRoots.forEach(function (m) { return m.observe(root); });
2256
2393
  if (root.nodeType === Node.DOCUMENT_NODE) {
2257
- observe$b(root);
2258
- observe$a(root);
2259
- observe$8(root);
2260
- observe$9(root);
2261
- observe$6(root);
2262
- observe$c(root);
2263
- observe$5(root);
2394
+ observeModules.documentOnly.forEach(function (m) { return m.observe(root); });
2264
2395
  }
2265
2396
  }
2266
2397
 
@@ -2952,7 +3083,7 @@ function handle$1(m) {
2952
3083
  }
2953
3084
  function processMutation(timer, mutation, instance, timestamp) {
2954
3085
  return __awaiter(this, void 0, void 0, function () {
2955
- var state$1, target, type;
3086
+ var state$1, target, ignoredClasses, el_1, type;
2956
3087
  return __generator(this, function (_a) {
2957
3088
  switch (_a.label) {
2958
3089
  case 0:
@@ -2967,6 +3098,13 @@ function processMutation(timer, mutation, instance, timestamp) {
2967
3098
  return [2 /*return*/];
2968
3099
  }
2969
3100
  target = mutation.target;
3101
+ ignoredClasses = get$2().ignoreMutationClassNames;
3102
+ if (ignoredClasses.length > 0 && target instanceof Element) {
3103
+ el_1 = target;
3104
+ if (ignoredClasses.some(function (cls) { return el_1.classList.contains(cls); })) {
3105
+ return [2 /*return*/];
3106
+ }
3107
+ }
2970
3108
  type = config$2.throttleDom ? track$5(mutation, timer, instance, timestamp) : mutation.type;
2971
3109
  if (type && target && target.ownerDocument) {
2972
3110
  parse(target.ownerDocument);
@@ -4344,10 +4482,10 @@ function metadata$2(node, event, text) {
4344
4482
  var output = { id: 0, hash: null, privacy: 2 /* Privacy.Text */ };
4345
4483
  if (node) {
4346
4484
  var value = get(node);
4347
- console.log("[GemX - Target - Metadata]", {
4348
- selector: value.selector,
4349
- hash: value.hash,
4350
- });
4485
+ if (!window.GemXHeatmap.__debug) {
4486
+ window.GemXHeatmap.__debug = [];
4487
+ }
4488
+ window.GemXHeatmap.__debug.push({ event: event, selector: value.selector, hash: value.hash });
4351
4489
  if (value !== null) {
4352
4490
  var metadata_1 = value.metadata;
4353
4491
  output.id = value.id;
@@ -4559,7 +4697,7 @@ function encode$4 (type, ts) {
4559
4697
  v = data$b;
4560
4698
  tokens.push(v.visible);
4561
4699
  queue(tokens);
4562
- visibility(t, v.visible);
4700
+ visibility$1(t, v.visible);
4563
4701
  reset$e();
4564
4702
  break;
4565
4703
  case 50 /* Event.Focus */: {
@@ -4912,6 +5050,14 @@ function queue(tokens, transmit) {
4912
5050
  check$2(playbackBytes);
4913
5051
  }
4914
5052
  }
5053
+ function flush() {
5054
+ if (!active$1) {
5055
+ return;
5056
+ }
5057
+ clearTimeout$1(timeout);
5058
+ timeout = null;
5059
+ upload(true);
5060
+ }
4915
5061
  function stop$f() {
4916
5062
  clearTimeout$1(timeout);
4917
5063
  upload(true);
@@ -6350,7 +6496,7 @@ function stop$5() {
6350
6496
  reset$2();
6351
6497
  reset$1();
6352
6498
  reset$4();
6353
- stop$L();
6499
+ stop$M();
6354
6500
  status = false;
6355
6501
  }
6356
6502
  function active() {
@@ -6743,9 +6889,12 @@ var performance$1 = /*#__PURE__*/Object.freeze({
6743
6889
  stop: stop$1
6744
6890
  });
6745
6891
 
6746
- var modules = [diagnostic, layout, interaction, performance$1, dynamic];
6892
+ var GEMX = [diagnostic, layout, interaction];
6893
+ var ALL = [diagnostic, layout, interaction, performance$1, dynamic];
6894
+ var modules = ALL;
6747
6895
  function start(config$1) {
6748
6896
  if (config$1 === void 0) { config$1 = null; }
6897
+ modules = config$1.mode === "gemx" ? GEMX : ALL;
6749
6898
  // Check that browser supports required APIs and we do not attempt to start Clarity multiple times
6750
6899
  if (check()) {
6751
6900
  config(config$1);
@@ -6781,7 +6930,7 @@ function stop() {
6781
6930
  if (active()) {
6782
6931
  // Stop modules in the reverse order of their initialization and start queuing up items again
6783
6932
  modules.slice().reverse().forEach(function (x) { return measure(x.stop)(); });
6784
- stop$C();
6933
+ stop$D();
6785
6934
  stop$5();
6786
6935
  setup();
6787
6936
  }