@ninetailed/experience.js-react 5.0.0-beta.2 → 6.0.1-beta.0

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/index.cjs CHANGED
@@ -5,9 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var React = require('react');
7
7
  var experience_js = require('@ninetailed/experience.js');
8
- var reactIntersectionObserver = require('react-intersection-observer');
8
+ var reactIs = require('react-is');
9
9
  var experience_jsShared = require('@ninetailed/experience.js-shared');
10
10
  var radash = require('radash');
11
+ var reactIntersectionObserver = require('react-intersection-observer');
11
12
 
12
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
14
 
@@ -20,7 +21,7 @@ var check = function (it) {
20
21
  };
21
22
 
22
23
  // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
23
- var global$d =
24
+ var global$c =
24
25
  // eslint-disable-next-line es/no-global-this -- safe
25
26
  check(typeof globalThis == 'object' && globalThis) ||
26
27
  check(typeof window == 'object' && window) ||
@@ -102,30 +103,30 @@ var functionUncurryThis = NATIVE_BIND ? uncurryThisWithBind : function (fn) {
102
103
  };
103
104
  };
104
105
 
105
- var uncurryThis$a = functionUncurryThis;
106
+ var uncurryThis$9 = functionUncurryThis;
106
107
 
107
- var toString$3 = uncurryThis$a({}.toString);
108
- var stringSlice$1 = uncurryThis$a(''.slice);
108
+ var toString$1 = uncurryThis$9({}.toString);
109
+ var stringSlice = uncurryThis$9(''.slice);
109
110
 
110
- var classofRaw$1 = function (it) {
111
- return stringSlice$1(toString$3(it), 8, -1);
111
+ var classofRaw = function (it) {
112
+ return stringSlice(toString$1(it), 8, -1);
112
113
  };
113
114
 
114
- var uncurryThis$9 = functionUncurryThis;
115
+ var uncurryThis$8 = functionUncurryThis;
115
116
  var fails$9 = fails$c;
116
- var classof$3 = classofRaw$1;
117
+ var classof$1 = classofRaw;
117
118
 
118
- var $Object$4 = Object;
119
- var split = uncurryThis$9(''.split);
119
+ var $Object$3 = Object;
120
+ var split = uncurryThis$8(''.split);
120
121
 
121
122
  // fallback for non-array-like ES3 and non-enumerable old V8 strings
122
123
  var indexedObject = fails$9(function () {
123
124
  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
124
125
  // eslint-disable-next-line no-prototype-builtins -- safe
125
- return !$Object$4('z').propertyIsEnumerable(0);
126
+ return !$Object$3('z').propertyIsEnumerable(0);
126
127
  }) ? function (it) {
127
- return classof$3(it) == 'String' ? split(it, '') : $Object$4(it);
128
- } : $Object$4;
128
+ return classof$1(it) == 'String' ? split(it, '') : $Object$3(it);
129
+ } : $Object$3;
129
130
 
130
131
  // we can't use just `it == null` since of `document.all` special case
131
132
  // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec
@@ -168,47 +169,47 @@ var documentAll$1 = $documentAll$1.all;
168
169
 
169
170
  // `IsCallable` abstract operation
170
171
  // https://tc39.es/ecma262/#sec-iscallable
171
- var isCallable$g = $documentAll$1.IS_HTMLDDA ? function (argument) {
172
+ var isCallable$e = $documentAll$1.IS_HTMLDDA ? function (argument) {
172
173
  return typeof argument == 'function' || argument === documentAll$1;
173
174
  } : function (argument) {
174
175
  return typeof argument == 'function';
175
176
  };
176
177
 
177
- var isCallable$f = isCallable$g;
178
+ var isCallable$d = isCallable$e;
178
179
  var $documentAll = documentAll_1;
179
180
 
180
181
  var documentAll = $documentAll.all;
181
182
 
182
183
  var isObject$6 = $documentAll.IS_HTMLDDA ? function (it) {
183
- return typeof it == 'object' ? it !== null : isCallable$f(it) || it === documentAll;
184
+ return typeof it == 'object' ? it !== null : isCallable$d(it) || it === documentAll;
184
185
  } : function (it) {
185
- return typeof it == 'object' ? it !== null : isCallable$f(it);
186
+ return typeof it == 'object' ? it !== null : isCallable$d(it);
186
187
  };
187
188
 
188
- var global$c = global$d;
189
- var isCallable$e = isCallable$g;
189
+ var global$b = global$c;
190
+ var isCallable$c = isCallable$e;
190
191
 
191
192
  var aFunction = function (argument) {
192
- return isCallable$e(argument) ? argument : undefined;
193
+ return isCallable$c(argument) ? argument : undefined;
193
194
  };
194
195
 
195
196
  var getBuiltIn$4 = function (namespace, method) {
196
- return arguments.length < 2 ? aFunction(global$c[namespace]) : global$c[namespace] && global$c[namespace][method];
197
+ return arguments.length < 2 ? aFunction(global$b[namespace]) : global$b[namespace] && global$b[namespace][method];
197
198
  };
198
199
 
199
- var uncurryThis$8 = functionUncurryThis;
200
+ var uncurryThis$7 = functionUncurryThis;
200
201
 
201
- var objectIsPrototypeOf = uncurryThis$8({}.isPrototypeOf);
202
+ var objectIsPrototypeOf = uncurryThis$7({}.isPrototypeOf);
202
203
 
203
204
  var getBuiltIn$3 = getBuiltIn$4;
204
205
 
205
206
  var engineUserAgent = getBuiltIn$3('navigator', 'userAgent') || '';
206
207
 
207
- var global$b = global$d;
208
+ var global$a = global$c;
208
209
  var userAgent = engineUserAgent;
209
210
 
210
- var process = global$b.process;
211
- var Deno = global$b.Deno;
211
+ var process = global$a.process;
212
+ var Deno = global$a.Deno;
212
213
  var versions = process && process.versions || Deno && Deno.version;
213
214
  var v8 = versions && versions.v8;
214
215
  var match, version;
@@ -249,44 +250,44 @@ var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$8(func
249
250
 
250
251
  /* eslint-disable es/no-symbol -- required for testing */
251
252
 
252
- var NATIVE_SYMBOL$2 = symbolConstructorDetection;
253
+ var NATIVE_SYMBOL$1 = symbolConstructorDetection;
253
254
 
254
- var useSymbolAsUid = NATIVE_SYMBOL$2
255
+ var useSymbolAsUid = NATIVE_SYMBOL$1
255
256
  && !Symbol.sham
256
257
  && typeof Symbol.iterator == 'symbol';
257
258
 
258
259
  var getBuiltIn$2 = getBuiltIn$4;
259
- var isCallable$d = isCallable$g;
260
- var isPrototypeOf$1 = objectIsPrototypeOf;
260
+ var isCallable$b = isCallable$e;
261
+ var isPrototypeOf = objectIsPrototypeOf;
261
262
  var USE_SYMBOL_AS_UID$1 = useSymbolAsUid;
262
263
 
263
- var $Object$3 = Object;
264
+ var $Object$2 = Object;
264
265
 
265
266
  var isSymbol$2 = USE_SYMBOL_AS_UID$1 ? function (it) {
266
267
  return typeof it == 'symbol';
267
268
  } : function (it) {
268
269
  var $Symbol = getBuiltIn$2('Symbol');
269
- return isCallable$d($Symbol) && isPrototypeOf$1($Symbol.prototype, $Object$3(it));
270
+ return isCallable$b($Symbol) && isPrototypeOf($Symbol.prototype, $Object$2(it));
270
271
  };
271
272
 
272
- var $String$3 = String;
273
+ var $String$2 = String;
273
274
 
274
275
  var tryToString$1 = function (argument) {
275
276
  try {
276
- return $String$3(argument);
277
+ return $String$2(argument);
277
278
  } catch (error) {
278
279
  return 'Object';
279
280
  }
280
281
  };
281
282
 
282
- var isCallable$c = isCallable$g;
283
+ var isCallable$a = isCallable$e;
283
284
  var tryToString = tryToString$1;
284
285
 
285
286
  var $TypeError$6 = TypeError;
286
287
 
287
288
  // `Assert: IsCallable(argument) is true`
288
289
  var aCallable$2 = function (argument) {
289
- if (isCallable$c(argument)) return argument;
290
+ if (isCallable$a(argument)) return argument;
290
291
  throw $TypeError$6(tryToString(argument) + ' is not a function');
291
292
  };
292
293
 
@@ -301,7 +302,7 @@ var getMethod$1 = function (V, P) {
301
302
  };
302
303
 
303
304
  var call$4 = functionCall;
304
- var isCallable$b = isCallable$g;
305
+ var isCallable$9 = isCallable$e;
305
306
  var isObject$5 = isObject$6;
306
307
 
307
308
  var $TypeError$5 = TypeError;
@@ -310,32 +311,32 @@ var $TypeError$5 = TypeError;
310
311
  // https://tc39.es/ecma262/#sec-ordinarytoprimitive
311
312
  var ordinaryToPrimitive$1 = function (input, pref) {
312
313
  var fn, val;
313
- if (pref === 'string' && isCallable$b(fn = input.toString) && !isObject$5(val = call$4(fn, input))) return val;
314
- if (isCallable$b(fn = input.valueOf) && !isObject$5(val = call$4(fn, input))) return val;
315
- if (pref !== 'string' && isCallable$b(fn = input.toString) && !isObject$5(val = call$4(fn, input))) return val;
314
+ if (pref === 'string' && isCallable$9(fn = input.toString) && !isObject$5(val = call$4(fn, input))) return val;
315
+ if (isCallable$9(fn = input.valueOf) && !isObject$5(val = call$4(fn, input))) return val;
316
+ if (pref !== 'string' && isCallable$9(fn = input.toString) && !isObject$5(val = call$4(fn, input))) return val;
316
317
  throw $TypeError$5("Can't convert object to primitive value");
317
318
  };
318
319
 
319
320
  var shared$3 = {exports: {}};
320
321
 
321
- var global$a = global$d;
322
+ var global$9 = global$c;
322
323
 
323
324
  // eslint-disable-next-line es/no-object-defineproperty -- safe
324
- var defineProperty$6 = Object.defineProperty;
325
+ var defineProperty$5 = Object.defineProperty;
325
326
 
326
327
  var defineGlobalProperty$3 = function (key, value) {
327
328
  try {
328
- defineProperty$6(global$a, key, { value: value, configurable: true, writable: true });
329
+ defineProperty$5(global$9, key, { value: value, configurable: true, writable: true });
329
330
  } catch (error) {
330
- global$a[key] = value;
331
+ global$9[key] = value;
331
332
  } return value;
332
333
  };
333
334
 
334
- var global$9 = global$d;
335
+ var global$8 = global$c;
335
336
  var defineGlobalProperty$2 = defineGlobalProperty$3;
336
337
 
337
338
  var SHARED = '__core-js_shared__';
338
- var store$3 = global$9[SHARED] || defineGlobalProperty$2(SHARED, {});
339
+ var store$3 = global$8[SHARED] || defineGlobalProperty$2(SHARED, {});
339
340
 
340
341
  var sharedStore = store$3;
341
342
 
@@ -353,18 +354,18 @@ var store$2 = sharedStore;
353
354
 
354
355
  var requireObjectCoercible = requireObjectCoercible$2;
355
356
 
356
- var $Object$2 = Object;
357
+ var $Object$1 = Object;
357
358
 
358
359
  // `ToObject` abstract operation
359
360
  // https://tc39.es/ecma262/#sec-toobject
360
361
  var toObject$4 = function (argument) {
361
- return $Object$2(requireObjectCoercible(argument));
362
+ return $Object$1(requireObjectCoercible(argument));
362
363
  };
363
364
 
364
- var uncurryThis$7 = functionUncurryThis;
365
+ var uncurryThis$6 = functionUncurryThis;
365
366
  var toObject$3 = toObject$4;
366
367
 
367
- var hasOwnProperty = uncurryThis$7({}.hasOwnProperty);
368
+ var hasOwnProperty = uncurryThis$6({}.hasOwnProperty);
368
369
 
369
370
  // `HasOwnProperty` abstract operation
370
371
  // https://tc39.es/ecma262/#sec-hasownproperty
@@ -373,32 +374,32 @@ var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {
373
374
  return hasOwnProperty(toObject$3(it), key);
374
375
  };
375
376
 
376
- var uncurryThis$6 = functionUncurryThis;
377
+ var uncurryThis$5 = functionUncurryThis;
377
378
 
378
379
  var id = 0;
379
380
  var postfix = Math.random();
380
- var toString$2 = uncurryThis$6(1.0.toString);
381
+ var toString = uncurryThis$5(1.0.toString);
381
382
 
382
383
  var uid$2 = function (key) {
383
- return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$2(++id + postfix, 36);
384
+ return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
384
385
  };
385
386
 
386
- var global$8 = global$d;
387
+ var global$7 = global$c;
387
388
  var shared$2 = shared$3.exports;
388
- var hasOwn$9 = hasOwnProperty_1;
389
+ var hasOwn$8 = hasOwnProperty_1;
389
390
  var uid$1 = uid$2;
390
- var NATIVE_SYMBOL$1 = symbolConstructorDetection;
391
+ var NATIVE_SYMBOL = symbolConstructorDetection;
391
392
  var USE_SYMBOL_AS_UID = useSymbolAsUid;
392
393
 
393
394
  var WellKnownSymbolsStore = shared$2('wks');
394
- var Symbol$1 = global$8.Symbol;
395
+ var Symbol$1 = global$7.Symbol;
395
396
  var symbolFor = Symbol$1 && Symbol$1['for'];
396
397
  var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1;
397
398
 
398
- var wellKnownSymbol$8 = function (name) {
399
- if (!hasOwn$9(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL$1 || typeof WellKnownSymbolsStore[name] == 'string')) {
399
+ var wellKnownSymbol$6 = function (name) {
400
+ if (!hasOwn$8(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
400
401
  var description = 'Symbol.' + name;
401
- if (NATIVE_SYMBOL$1 && hasOwn$9(Symbol$1, name)) {
402
+ if (NATIVE_SYMBOL && hasOwn$8(Symbol$1, name)) {
402
403
  WellKnownSymbolsStore[name] = Symbol$1[name];
403
404
  } else if (USE_SYMBOL_AS_UID && symbolFor) {
404
405
  WellKnownSymbolsStore[name] = symbolFor(description);
@@ -413,10 +414,10 @@ var isObject$4 = isObject$6;
413
414
  var isSymbol$1 = isSymbol$2;
414
415
  var getMethod = getMethod$1;
415
416
  var ordinaryToPrimitive = ordinaryToPrimitive$1;
416
- var wellKnownSymbol$7 = wellKnownSymbol$8;
417
+ var wellKnownSymbol$5 = wellKnownSymbol$6;
417
418
 
418
419
  var $TypeError$4 = TypeError;
419
- var TO_PRIMITIVE = wellKnownSymbol$7('toPrimitive');
420
+ var TO_PRIMITIVE = wellKnownSymbol$5('toPrimitive');
420
421
 
421
422
  // `ToPrimitive` abstract operation
422
423
  // https://tc39.es/ecma262/#sec-toprimitive
@@ -444,10 +445,10 @@ var toPropertyKey$2 = function (argument) {
444
445
  return isSymbol(key) ? key : key + '';
445
446
  };
446
447
 
447
- var global$7 = global$d;
448
+ var global$6 = global$c;
448
449
  var isObject$3 = isObject$6;
449
450
 
450
- var document$1 = global$7.document;
451
+ var document$1 = global$6.document;
451
452
  // typeof document.createElement is 'object' in old IE
452
453
  var EXISTS$1 = isObject$3(document$1) && isObject$3(document$1.createElement);
453
454
 
@@ -455,25 +456,25 @@ var documentCreateElement$2 = function (it) {
455
456
  return EXISTS$1 ? document$1.createElement(it) : {};
456
457
  };
457
458
 
458
- var DESCRIPTORS$a = descriptors;
459
+ var DESCRIPTORS$9 = descriptors;
459
460
  var fails$7 = fails$c;
460
461
  var createElement = documentCreateElement$2;
461
462
 
462
463
  // Thanks to IE8 for its funny defineProperty
463
- var ie8DomDefine = !DESCRIPTORS$a && !fails$7(function () {
464
+ var ie8DomDefine = !DESCRIPTORS$9 && !fails$7(function () {
464
465
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
465
466
  return Object.defineProperty(createElement('div'), 'a', {
466
467
  get: function () { return 7; }
467
468
  }).a != 7;
468
469
  });
469
470
 
470
- var DESCRIPTORS$9 = descriptors;
471
+ var DESCRIPTORS$8 = descriptors;
471
472
  var call$2 = functionCall;
472
473
  var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable;
473
474
  var createPropertyDescriptor$2 = createPropertyDescriptor$3;
474
475
  var toIndexedObject$4 = toIndexedObject$5;
475
476
  var toPropertyKey$1 = toPropertyKey$2;
476
- var hasOwn$8 = hasOwnProperty_1;
477
+ var hasOwn$7 = hasOwnProperty_1;
477
478
  var IE8_DOM_DEFINE$1 = ie8DomDefine;
478
479
 
479
480
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
@@ -481,23 +482,23 @@ var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;
481
482
 
482
483
  // `Object.getOwnPropertyDescriptor` method
483
484
  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
484
- objectGetOwnPropertyDescriptor.f = DESCRIPTORS$9 ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) {
485
+ objectGetOwnPropertyDescriptor.f = DESCRIPTORS$8 ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) {
485
486
  O = toIndexedObject$4(O);
486
487
  P = toPropertyKey$1(P);
487
488
  if (IE8_DOM_DEFINE$1) try {
488
489
  return $getOwnPropertyDescriptor$1(O, P);
489
490
  } catch (error) { /* empty */ }
490
- if (hasOwn$8(O, P)) return createPropertyDescriptor$2(!call$2(propertyIsEnumerableModule$1.f, O, P), O[P]);
491
+ if (hasOwn$7(O, P)) return createPropertyDescriptor$2(!call$2(propertyIsEnumerableModule$1.f, O, P), O[P]);
491
492
  };
492
493
 
493
494
  var objectDefineProperty = {};
494
495
 
495
- var DESCRIPTORS$8 = descriptors;
496
+ var DESCRIPTORS$7 = descriptors;
496
497
  var fails$6 = fails$c;
497
498
 
498
499
  // V8 ~ Chrome 36-
499
500
  // https://bugs.chromium.org/p/v8/issues/detail?id=3334
500
- var v8PrototypeDefineBug = DESCRIPTORS$8 && fails$6(function () {
501
+ var v8PrototypeDefineBug = DESCRIPTORS$7 && fails$6(function () {
501
502
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
502
503
  return Object.defineProperty(function () { /* empty */ }, 'prototype', {
503
504
  value: 42,
@@ -507,16 +508,16 @@ var v8PrototypeDefineBug = DESCRIPTORS$8 && fails$6(function () {
507
508
 
508
509
  var isObject$2 = isObject$6;
509
510
 
510
- var $String$2 = String;
511
+ var $String$1 = String;
511
512
  var $TypeError$3 = TypeError;
512
513
 
513
514
  // `Assert: Type(argument) is Object`
514
515
  var anObject$5 = function (argument) {
515
516
  if (isObject$2(argument)) return argument;
516
- throw $TypeError$3($String$2(argument) + ' is not an object');
517
+ throw $TypeError$3($String$1(argument) + ' is not an object');
517
518
  };
518
519
 
519
- var DESCRIPTORS$7 = descriptors;
520
+ var DESCRIPTORS$6 = descriptors;
520
521
  var IE8_DOM_DEFINE = ie8DomDefine;
521
522
  var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug;
522
523
  var anObject$4 = anObject$5;
@@ -533,7 +534,7 @@ var WRITABLE = 'writable';
533
534
 
534
535
  // `Object.defineProperty` method
535
536
  // https://tc39.es/ecma262/#sec-object.defineproperty
536
- objectDefineProperty.f = DESCRIPTORS$7 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) {
537
+ objectDefineProperty.f = DESCRIPTORS$6 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) {
537
538
  anObject$4(O);
538
539
  P = toPropertyKey(P);
539
540
  anObject$4(Attributes);
@@ -560,11 +561,11 @@ objectDefineProperty.f = DESCRIPTORS$7 ? V8_PROTOTYPE_DEFINE_BUG$1 ? function de
560
561
  return O;
561
562
  };
562
563
 
563
- var DESCRIPTORS$6 = descriptors;
564
+ var DESCRIPTORS$5 = descriptors;
564
565
  var definePropertyModule$3 = objectDefineProperty;
565
566
  var createPropertyDescriptor$1 = createPropertyDescriptor$3;
566
567
 
567
- var createNonEnumerableProperty$4 = DESCRIPTORS$6 ? function (object, key, value) {
568
+ var createNonEnumerableProperty$4 = DESCRIPTORS$5 ? function (object, key, value) {
568
569
  return definePropertyModule$3.f(object, key, createPropertyDescriptor$1(1, value));
569
570
  } : function (object, key, value) {
570
571
  object[key] = value;
@@ -573,17 +574,17 @@ var createNonEnumerableProperty$4 = DESCRIPTORS$6 ? function (object, key, value
573
574
 
574
575
  var makeBuiltIn$2 = {exports: {}};
575
576
 
576
- var DESCRIPTORS$5 = descriptors;
577
- var hasOwn$7 = hasOwnProperty_1;
577
+ var DESCRIPTORS$4 = descriptors;
578
+ var hasOwn$6 = hasOwnProperty_1;
578
579
 
579
580
  var FunctionPrototype = Function.prototype;
580
581
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
581
- var getDescriptor = DESCRIPTORS$5 && Object.getOwnPropertyDescriptor;
582
+ var getDescriptor = DESCRIPTORS$4 && Object.getOwnPropertyDescriptor;
582
583
 
583
- var EXISTS = hasOwn$7(FunctionPrototype, 'name');
584
+ var EXISTS = hasOwn$6(FunctionPrototype, 'name');
584
585
  // additional protection from minified / mangled / dropped function names
585
586
  var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
586
- var CONFIGURABLE = EXISTS && (!DESCRIPTORS$5 || (DESCRIPTORS$5 && getDescriptor(FunctionPrototype, 'name').configurable));
587
+ var CONFIGURABLE = EXISTS && (!DESCRIPTORS$4 || (DESCRIPTORS$4 && getDescriptor(FunctionPrototype, 'name').configurable));
587
588
 
588
589
  var functionName = {
589
590
  EXISTS: EXISTS,
@@ -591,14 +592,14 @@ var functionName = {
591
592
  CONFIGURABLE: CONFIGURABLE
592
593
  };
593
594
 
594
- var uncurryThis$5 = functionUncurryThis;
595
- var isCallable$a = isCallable$g;
595
+ var uncurryThis$4 = functionUncurryThis;
596
+ var isCallable$8 = isCallable$e;
596
597
  var store$1 = sharedStore;
597
598
 
598
- var functionToString = uncurryThis$5(Function.toString);
599
+ var functionToString = uncurryThis$4(Function.toString);
599
600
 
600
601
  // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
601
- if (!isCallable$a(store$1.inspectSource)) {
602
+ if (!isCallable$8(store$1.inspectSource)) {
602
603
  store$1.inspectSource = function (it) {
603
604
  return functionToString(it);
604
605
  };
@@ -606,12 +607,12 @@ if (!isCallable$a(store$1.inspectSource)) {
606
607
 
607
608
  var inspectSource$1 = store$1.inspectSource;
608
609
 
609
- var global$6 = global$d;
610
- var isCallable$9 = isCallable$g;
610
+ var global$5 = global$c;
611
+ var isCallable$7 = isCallable$e;
611
612
 
612
- var WeakMap$1 = global$6.WeakMap;
613
+ var WeakMap$1 = global$5.WeakMap;
613
614
 
614
- var weakMapBasicDetection = isCallable$9(WeakMap$1) && /native code/.test(String(WeakMap$1));
615
+ var weakMapBasicDetection = isCallable$7(WeakMap$1) && /native code/.test(String(WeakMap$1));
615
616
 
616
617
  var shared$1 = shared$3.exports;
617
618
  var uid = uid$2;
@@ -625,17 +626,17 @@ var sharedKey$3 = function (key) {
625
626
  var hiddenKeys$4 = {};
626
627
 
627
628
  var NATIVE_WEAK_MAP = weakMapBasicDetection;
628
- var global$5 = global$d;
629
+ var global$4 = global$c;
629
630
  var isObject$1 = isObject$6;
630
631
  var createNonEnumerableProperty$3 = createNonEnumerableProperty$4;
631
- var hasOwn$6 = hasOwnProperty_1;
632
+ var hasOwn$5 = hasOwnProperty_1;
632
633
  var shared = sharedStore;
633
634
  var sharedKey$2 = sharedKey$3;
634
635
  var hiddenKeys$3 = hiddenKeys$4;
635
636
 
636
637
  var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
637
- var TypeError$1 = global$5.TypeError;
638
- var WeakMap = global$5.WeakMap;
638
+ var TypeError$1 = global$4.TypeError;
639
+ var WeakMap = global$4.WeakMap;
639
640
  var set, get, has;
640
641
 
641
642
  var enforce = function (it) {
@@ -674,16 +675,16 @@ if (NATIVE_WEAK_MAP || shared.state) {
674
675
  var STATE = sharedKey$2('state');
675
676
  hiddenKeys$3[STATE] = true;
676
677
  set = function (it, metadata) {
677
- if (hasOwn$6(it, STATE)) throw TypeError$1(OBJECT_ALREADY_INITIALIZED);
678
+ if (hasOwn$5(it, STATE)) throw TypeError$1(OBJECT_ALREADY_INITIALIZED);
678
679
  metadata.facade = it;
679
680
  createNonEnumerableProperty$3(it, STATE, metadata);
680
681
  return metadata;
681
682
  };
682
683
  get = function (it) {
683
- return hasOwn$6(it, STATE) ? it[STATE] : {};
684
+ return hasOwn$5(it, STATE) ? it[STATE] : {};
684
685
  };
685
686
  has = function (it) {
686
- return hasOwn$6(it, STATE);
687
+ return hasOwn$5(it, STATE);
687
688
  };
688
689
  }
689
690
 
@@ -696,9 +697,9 @@ var internalState = {
696
697
  };
697
698
 
698
699
  var fails$5 = fails$c;
699
- var isCallable$8 = isCallable$g;
700
- var hasOwn$5 = hasOwnProperty_1;
701
- var DESCRIPTORS$4 = descriptors;
700
+ var isCallable$6 = isCallable$e;
701
+ var hasOwn$4 = hasOwnProperty_1;
702
+ var DESCRIPTORS$3 = descriptors;
702
703
  var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE;
703
704
  var inspectSource = inspectSource$1;
704
705
  var InternalStateModule$1 = internalState;
@@ -706,10 +707,10 @@ var InternalStateModule$1 = internalState;
706
707
  var enforceInternalState = InternalStateModule$1.enforce;
707
708
  var getInternalState$1 = InternalStateModule$1.get;
708
709
  // eslint-disable-next-line es/no-object-defineproperty -- safe
709
- var defineProperty$5 = Object.defineProperty;
710
+ var defineProperty$4 = Object.defineProperty;
710
711
 
711
- var CONFIGURABLE_LENGTH = DESCRIPTORS$4 && !fails$5(function () {
712
- return defineProperty$5(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;
712
+ var CONFIGURABLE_LENGTH = DESCRIPTORS$3 && !fails$5(function () {
713
+ return defineProperty$4(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;
713
714
  });
714
715
 
715
716
  var TEMPLATE = String(String).split('String');
@@ -720,21 +721,21 @@ var makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) {
720
721
  }
721
722
  if (options && options.getter) name = 'get ' + name;
722
723
  if (options && options.setter) name = 'set ' + name;
723
- if (!hasOwn$5(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) {
724
- if (DESCRIPTORS$4) defineProperty$5(value, 'name', { value: name, configurable: true });
724
+ if (!hasOwn$4(value, 'name') || (CONFIGURABLE_FUNCTION_NAME$1 && value.name !== name)) {
725
+ if (DESCRIPTORS$3) defineProperty$4(value, 'name', { value: name, configurable: true });
725
726
  else value.name = name;
726
727
  }
727
- if (CONFIGURABLE_LENGTH && options && hasOwn$5(options, 'arity') && value.length !== options.arity) {
728
- defineProperty$5(value, 'length', { value: options.arity });
728
+ if (CONFIGURABLE_LENGTH && options && hasOwn$4(options, 'arity') && value.length !== options.arity) {
729
+ defineProperty$4(value, 'length', { value: options.arity });
729
730
  }
730
731
  try {
731
- if (options && hasOwn$5(options, 'constructor') && options.constructor) {
732
- if (DESCRIPTORS$4) defineProperty$5(value, 'prototype', { writable: false });
732
+ if (options && hasOwn$4(options, 'constructor') && options.constructor) {
733
+ if (DESCRIPTORS$3) defineProperty$4(value, 'prototype', { writable: false });
733
734
  // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable
734
735
  } else if (value.prototype) value.prototype = undefined;
735
736
  } catch (error) { /* empty */ }
736
737
  var state = enforceInternalState(value);
737
- if (!hasOwn$5(state, 'source')) {
738
+ if (!hasOwn$4(state, 'source')) {
738
739
  state.source = TEMPLATE.join(typeof name == 'string' ? name : '');
739
740
  } return value;
740
741
  };
@@ -742,10 +743,10 @@ var makeBuiltIn$1 = makeBuiltIn$2.exports = function (value, name, options) {
742
743
  // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
743
744
  // eslint-disable-next-line no-extend-native -- required
744
745
  Function.prototype.toString = makeBuiltIn$1(function toString() {
745
- return isCallable$8(this) && getInternalState$1(this).source || inspectSource(this);
746
+ return isCallable$6(this) && getInternalState$1(this).source || inspectSource(this);
746
747
  }, 'toString');
747
748
 
748
- var isCallable$7 = isCallable$g;
749
+ var isCallable$5 = isCallable$e;
749
750
  var definePropertyModule$2 = objectDefineProperty;
750
751
  var makeBuiltIn = makeBuiltIn$2.exports;
751
752
  var defineGlobalProperty$1 = defineGlobalProperty$3;
@@ -754,7 +755,7 @@ var defineBuiltIn$3 = function (O, key, value, options) {
754
755
  if (!options) options = {};
755
756
  var simple = options.enumerable;
756
757
  var name = options.name !== undefined ? options.name : key;
757
- if (isCallable$7(value)) makeBuiltIn(value, name, options);
758
+ if (isCallable$5(value)) makeBuiltIn(value, name, options);
758
759
  if (options.global) {
759
760
  if (simple) O[key] = value;
760
761
  else defineGlobalProperty$1(key, value);
@@ -860,22 +861,22 @@ var arrayIncludes = {
860
861
  indexOf: createMethod$1(false)
861
862
  };
862
863
 
863
- var uncurryThis$4 = functionUncurryThis;
864
- var hasOwn$4 = hasOwnProperty_1;
864
+ var uncurryThis$3 = functionUncurryThis;
865
+ var hasOwn$3 = hasOwnProperty_1;
865
866
  var toIndexedObject$2 = toIndexedObject$5;
866
867
  var indexOf = arrayIncludes.indexOf;
867
868
  var hiddenKeys$2 = hiddenKeys$4;
868
869
 
869
- var push = uncurryThis$4([].push);
870
+ var push = uncurryThis$3([].push);
870
871
 
871
872
  var objectKeysInternal = function (object, names) {
872
873
  var O = toIndexedObject$2(object);
873
874
  var i = 0;
874
875
  var result = [];
875
876
  var key;
876
- for (key in O) !hasOwn$4(hiddenKeys$2, key) && hasOwn$4(O, key) && push(result, key);
877
+ for (key in O) !hasOwn$3(hiddenKeys$2, key) && hasOwn$3(O, key) && push(result, key);
877
878
  // Don't enum bug & hidden keys
878
- while (names.length > i) if (hasOwn$4(O, key = names[i++])) {
879
+ while (names.length > i) if (hasOwn$3(O, key = names[i++])) {
879
880
  ~indexOf(result, key) || push(result, key);
880
881
  }
881
882
  return result;
@@ -910,12 +911,12 @@ var objectGetOwnPropertySymbols = {};
910
911
  objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols;
911
912
 
912
913
  var getBuiltIn$1 = getBuiltIn$4;
913
- var uncurryThis$3 = functionUncurryThis;
914
+ var uncurryThis$2 = functionUncurryThis;
914
915
  var getOwnPropertyNamesModule = objectGetOwnPropertyNames;
915
916
  var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols;
916
917
  var anObject$3 = anObject$5;
917
918
 
918
- var concat$1 = uncurryThis$3([].concat);
919
+ var concat$1 = uncurryThis$2([].concat);
919
920
 
920
921
  // all object keys, includes non-enumerable and symbols
921
922
  var ownKeys$1 = getBuiltIn$1('Reflect', 'ownKeys') || function ownKeys(it) {
@@ -924,25 +925,25 @@ var ownKeys$1 = getBuiltIn$1('Reflect', 'ownKeys') || function ownKeys(it) {
924
925
  return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys;
925
926
  };
926
927
 
927
- var hasOwn$3 = hasOwnProperty_1;
928
+ var hasOwn$2 = hasOwnProperty_1;
928
929
  var ownKeys = ownKeys$1;
929
930
  var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor;
930
931
  var definePropertyModule$1 = objectDefineProperty;
931
932
 
932
- var copyConstructorProperties$2 = function (target, source, exceptions) {
933
+ var copyConstructorProperties$1 = function (target, source, exceptions) {
933
934
  var keys = ownKeys(source);
934
935
  var defineProperty = definePropertyModule$1.f;
935
936
  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
936
937
  for (var i = 0; i < keys.length; i++) {
937
938
  var key = keys[i];
938
- if (!hasOwn$3(target, key) && !(exceptions && hasOwn$3(exceptions, key))) {
939
+ if (!hasOwn$2(target, key) && !(exceptions && hasOwn$2(exceptions, key))) {
939
940
  defineProperty(target, key, getOwnPropertyDescriptor(source, key));
940
941
  }
941
942
  }
942
943
  };
943
944
 
944
945
  var fails$4 = fails$c;
945
- var isCallable$6 = isCallable$g;
946
+ var isCallable$4 = isCallable$e;
946
947
 
947
948
  var replacement = /#|\.prototype\./;
948
949
 
@@ -950,7 +951,7 @@ var isForced$1 = function (feature, detection) {
950
951
  var value = data[normalize(feature)];
951
952
  return value == POLYFILL ? true
952
953
  : value == NATIVE ? false
953
- : isCallable$6(detection) ? fails$4(detection)
954
+ : isCallable$4(detection) ? fails$4(detection)
954
955
  : !!detection;
955
956
  };
956
957
 
@@ -964,12 +965,12 @@ var POLYFILL = isForced$1.POLYFILL = 'P';
964
965
 
965
966
  var isForced_1 = isForced$1;
966
967
 
967
- var global$4 = global$d;
968
+ var global$3 = global$c;
968
969
  var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
969
970
  var createNonEnumerableProperty$2 = createNonEnumerableProperty$4;
970
971
  var defineBuiltIn$2 = defineBuiltIn$3;
971
972
  var defineGlobalProperty = defineGlobalProperty$3;
972
- var copyConstructorProperties$1 = copyConstructorProperties$2;
973
+ var copyConstructorProperties = copyConstructorProperties$1;
973
974
  var isForced = isForced_1;
974
975
 
975
976
  /*
@@ -993,11 +994,11 @@ var _export = function (options, source) {
993
994
  var STATIC = options.stat;
994
995
  var FORCED, target, key, targetProperty, sourceProperty, descriptor;
995
996
  if (GLOBAL) {
996
- target = global$4;
997
+ target = global$3;
997
998
  } else if (STATIC) {
998
- target = global$4[TARGET] || defineGlobalProperty(TARGET, {});
999
+ target = global$3[TARGET] || defineGlobalProperty(TARGET, {});
999
1000
  } else {
1000
- target = (global$4[TARGET] || {}).prototype;
1001
+ target = (global$3[TARGET] || {}).prototype;
1001
1002
  }
1002
1003
  if (target) for (key in source) {
1003
1004
  sourceProperty = source[key];
@@ -1009,7 +1010,7 @@ var _export = function (options, source) {
1009
1010
  // contained in target
1010
1011
  if (!FORCED && targetProperty !== undefined) {
1011
1012
  if (typeof sourceProperty == typeof targetProperty) continue;
1012
- copyConstructorProperties$1(sourceProperty, targetProperty);
1013
+ copyConstructorProperties(sourceProperty, targetProperty);
1013
1014
  }
1014
1015
  // add a flag to not completely full polyfills
1015
1016
  if (options.sham || (targetProperty && targetProperty.sham)) {
@@ -1029,8 +1030,8 @@ var objectKeys$2 = Object.keys || function keys(O) {
1029
1030
  return internalObjectKeys(O, enumBugKeys$1);
1030
1031
  };
1031
1032
 
1032
- var DESCRIPTORS$3 = descriptors;
1033
- var uncurryThis$2 = functionUncurryThis;
1033
+ var DESCRIPTORS$2 = descriptors;
1034
+ var uncurryThis$1 = functionUncurryThis;
1034
1035
  var call$1 = functionCall;
1035
1036
  var fails$3 = fails$c;
1036
1037
  var objectKeys$1 = objectKeys$2;
@@ -1042,17 +1043,17 @@ var IndexedObject$1 = indexedObject;
1042
1043
  // eslint-disable-next-line es/no-object-assign -- safe
1043
1044
  var $assign = Object.assign;
1044
1045
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
1045
- var defineProperty$4 = Object.defineProperty;
1046
- var concat = uncurryThis$2([].concat);
1046
+ var defineProperty$3 = Object.defineProperty;
1047
+ var concat = uncurryThis$1([].concat);
1047
1048
 
1048
1049
  // `Object.assign` method
1049
1050
  // https://tc39.es/ecma262/#sec-object.assign
1050
1051
  var objectAssign = !$assign || fails$3(function () {
1051
1052
  // should have correct order of operations (Edge bug)
1052
- if (DESCRIPTORS$3 && $assign({ b: 1 }, $assign(defineProperty$4({}, 'a', {
1053
+ if (DESCRIPTORS$2 && $assign({ b: 1 }, $assign(defineProperty$3({}, 'a', {
1053
1054
  enumerable: true,
1054
1055
  get: function () {
1055
- defineProperty$4(this, 'b', {
1056
+ defineProperty$3(this, 'b', {
1056
1057
  value: 3,
1057
1058
  enumerable: false
1058
1059
  });
@@ -1081,18 +1082,18 @@ var objectAssign = !$assign || fails$3(function () {
1081
1082
  var key;
1082
1083
  while (length > j) {
1083
1084
  key = keys[j++];
1084
- if (!DESCRIPTORS$3 || call$1(propertyIsEnumerable, S, key)) T[key] = S[key];
1085
+ if (!DESCRIPTORS$2 || call$1(propertyIsEnumerable, S, key)) T[key] = S[key];
1085
1086
  }
1086
1087
  } return T;
1087
1088
  } : $assign;
1088
1089
 
1089
- var $$3 = _export;
1090
+ var $$2 = _export;
1090
1091
  var assign = objectAssign;
1091
1092
 
1092
1093
  // `Object.assign` method
1093
1094
  // https://tc39.es/ecma262/#sec-object.assign
1094
1095
  // eslint-disable-next-line es/no-object-assign -- required for testing
1095
- $$3({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {
1096
+ $$2({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {
1096
1097
  assign: assign
1097
1098
  });
1098
1099
 
@@ -1100,7 +1101,7 @@ const NinetailedContext = /*#__PURE__*/React.createContext(undefined);
1100
1101
 
1101
1102
  var objectDefineProperties = {};
1102
1103
 
1103
- var DESCRIPTORS$2 = descriptors;
1104
+ var DESCRIPTORS$1 = descriptors;
1104
1105
  var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug;
1105
1106
  var definePropertyModule = objectDefineProperty;
1106
1107
  var anObject$2 = anObject$5;
@@ -1110,7 +1111,7 @@ var objectKeys = objectKeys$2;
1110
1111
  // `Object.defineProperties` method
1111
1112
  // https://tc39.es/ecma262/#sec-object.defineproperties
1112
1113
  // eslint-disable-next-line es/no-object-defineproperties -- safe
1113
- objectDefineProperties.f = DESCRIPTORS$2 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
1114
+ objectDefineProperties.f = DESCRIPTORS$1 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
1114
1115
  anObject$2(O);
1115
1116
  var props = toIndexedObject$1(Properties);
1116
1117
  var keys = objectKeys(Properties);
@@ -1210,17 +1211,17 @@ var objectCreate = Object.create || function create(O, Properties) {
1210
1211
  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);
1211
1212
  };
1212
1213
 
1213
- var wellKnownSymbol$6 = wellKnownSymbol$8;
1214
+ var wellKnownSymbol$4 = wellKnownSymbol$6;
1214
1215
  var create$1 = objectCreate;
1215
- var defineProperty$3 = objectDefineProperty.f;
1216
+ var defineProperty$2 = objectDefineProperty.f;
1216
1217
 
1217
- var UNSCOPABLES = wellKnownSymbol$6('unscopables');
1218
+ var UNSCOPABLES = wellKnownSymbol$4('unscopables');
1218
1219
  var ArrayPrototype = Array.prototype;
1219
1220
 
1220
1221
  // Array.prototype[@@unscopables]
1221
1222
  // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
1222
1223
  if (ArrayPrototype[UNSCOPABLES] == undefined) {
1223
- defineProperty$3(ArrayPrototype, UNSCOPABLES, {
1224
+ defineProperty$2(ArrayPrototype, UNSCOPABLES, {
1224
1225
  configurable: true,
1225
1226
  value: create$1(null)
1226
1227
  });
@@ -1242,36 +1243,36 @@ var correctPrototypeGetter = !fails$2(function () {
1242
1243
  return Object.getPrototypeOf(new F()) !== F.prototype;
1243
1244
  });
1244
1245
 
1245
- var hasOwn$2 = hasOwnProperty_1;
1246
- var isCallable$5 = isCallable$g;
1246
+ var hasOwn$1 = hasOwnProperty_1;
1247
+ var isCallable$3 = isCallable$e;
1247
1248
  var toObject$1 = toObject$4;
1248
1249
  var sharedKey = sharedKey$3;
1249
1250
  var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter;
1250
1251
 
1251
1252
  var IE_PROTO = sharedKey('IE_PROTO');
1252
- var $Object$1 = Object;
1253
- var ObjectPrototype = $Object$1.prototype;
1253
+ var $Object = Object;
1254
+ var ObjectPrototype = $Object.prototype;
1254
1255
 
1255
1256
  // `Object.getPrototypeOf` method
1256
1257
  // https://tc39.es/ecma262/#sec-object.getprototypeof
1257
1258
  // eslint-disable-next-line es/no-object-getprototypeof -- safe
1258
- var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object$1.getPrototypeOf : function (O) {
1259
+ var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {
1259
1260
  var object = toObject$1(O);
1260
- if (hasOwn$2(object, IE_PROTO)) return object[IE_PROTO];
1261
+ if (hasOwn$1(object, IE_PROTO)) return object[IE_PROTO];
1261
1262
  var constructor = object.constructor;
1262
- if (isCallable$5(constructor) && object instanceof constructor) {
1263
+ if (isCallable$3(constructor) && object instanceof constructor) {
1263
1264
  return constructor.prototype;
1264
- } return object instanceof $Object$1 ? ObjectPrototype : null;
1265
+ } return object instanceof $Object ? ObjectPrototype : null;
1265
1266
  };
1266
1267
 
1267
1268
  var fails$1 = fails$c;
1268
- var isCallable$4 = isCallable$g;
1269
+ var isCallable$2 = isCallable$e;
1269
1270
  var isObject = isObject$6;
1270
1271
  var getPrototypeOf$1 = objectGetPrototypeOf;
1271
1272
  var defineBuiltIn$1 = defineBuiltIn$3;
1272
- var wellKnownSymbol$5 = wellKnownSymbol$8;
1273
+ var wellKnownSymbol$3 = wellKnownSymbol$6;
1273
1274
 
1274
- var ITERATOR$2 = wellKnownSymbol$5('iterator');
1275
+ var ITERATOR$2 = wellKnownSymbol$3('iterator');
1275
1276
  var BUGGY_SAFARI_ITERATORS$1 = false;
1276
1277
 
1277
1278
  // `%IteratorPrototype%` object
@@ -1299,7 +1300,7 @@ if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$2 = {};
1299
1300
 
1300
1301
  // `%IteratorPrototype%[@@iterator]()` method
1301
1302
  // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
1302
- if (!isCallable$4(IteratorPrototype$2[ITERATOR$2])) {
1303
+ if (!isCallable$2(IteratorPrototype$2[ITERATOR$2])) {
1303
1304
  defineBuiltIn$1(IteratorPrototype$2, ITERATOR$2, function () {
1304
1305
  return this;
1305
1306
  });
@@ -1310,16 +1311,16 @@ var iteratorsCore = {
1310
1311
  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1
1311
1312
  };
1312
1313
 
1313
- var defineProperty$2 = objectDefineProperty.f;
1314
- var hasOwn$1 = hasOwnProperty_1;
1315
- var wellKnownSymbol$4 = wellKnownSymbol$8;
1314
+ var defineProperty$1 = objectDefineProperty.f;
1315
+ var hasOwn = hasOwnProperty_1;
1316
+ var wellKnownSymbol$2 = wellKnownSymbol$6;
1316
1317
 
1317
- var TO_STRING_TAG$3 = wellKnownSymbol$4('toStringTag');
1318
+ var TO_STRING_TAG$1 = wellKnownSymbol$2('toStringTag');
1318
1319
 
1319
1320
  var setToStringTag$2 = function (target, TAG, STATIC) {
1320
1321
  if (target && !STATIC) target = target.prototype;
1321
- if (target && !hasOwn$1(target, TO_STRING_TAG$3)) {
1322
- defineProperty$2(target, TO_STRING_TAG$3, { configurable: true, value: TAG });
1322
+ if (target && !hasOwn(target, TO_STRING_TAG$1)) {
1323
+ defineProperty$1(target, TO_STRING_TAG$1, { configurable: true, value: TAG });
1323
1324
  }
1324
1325
  };
1325
1326
 
@@ -1339,19 +1340,19 @@ var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUME
1339
1340
  return IteratorConstructor;
1340
1341
  };
1341
1342
 
1342
- var isCallable$3 = isCallable$g;
1343
+ var isCallable$1 = isCallable$e;
1343
1344
 
1344
- var $String$1 = String;
1345
+ var $String = String;
1345
1346
  var $TypeError$1 = TypeError;
1346
1347
 
1347
1348
  var aPossiblePrototype$1 = function (argument) {
1348
- if (typeof argument == 'object' || isCallable$3(argument)) return argument;
1349
- throw $TypeError$1("Can't set " + $String$1(argument) + ' as a prototype');
1349
+ if (typeof argument == 'object' || isCallable$1(argument)) return argument;
1350
+ throw $TypeError$1("Can't set " + $String(argument) + ' as a prototype');
1350
1351
  };
1351
1352
 
1352
1353
  /* eslint-disable no-proto -- safe */
1353
1354
 
1354
- var uncurryThis$1 = functionUncurryThis;
1355
+ var uncurryThis = functionUncurryThis;
1355
1356
  var anObject = anObject$5;
1356
1357
  var aPossiblePrototype = aPossiblePrototype$1;
1357
1358
 
@@ -1365,7 +1366,7 @@ var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? functio
1365
1366
  var setter;
1366
1367
  try {
1367
1368
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
1368
- setter = uncurryThis$1(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);
1369
+ setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);
1369
1370
  setter(test, []);
1370
1371
  CORRECT_SETTER = test instanceof Array;
1371
1372
  } catch (error) { /* empty */ }
@@ -1378,17 +1379,17 @@ var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? functio
1378
1379
  };
1379
1380
  }() : undefined);
1380
1381
 
1381
- var $$2 = _export;
1382
+ var $$1 = _export;
1382
1383
  var call = functionCall;
1383
1384
  var FunctionName = functionName;
1384
- var isCallable$2 = isCallable$g;
1385
+ var isCallable = isCallable$e;
1385
1386
  var createIteratorConstructor = iteratorCreateConstructor;
1386
1387
  var getPrototypeOf = objectGetPrototypeOf;
1387
1388
  var setPrototypeOf = objectSetPrototypeOf;
1388
1389
  var setToStringTag = setToStringTag$2;
1389
1390
  var createNonEnumerableProperty$1 = createNonEnumerableProperty$4;
1390
1391
  var defineBuiltIn = defineBuiltIn$3;
1391
- var wellKnownSymbol$3 = wellKnownSymbol$8;
1392
+ var wellKnownSymbol$1 = wellKnownSymbol$6;
1392
1393
  var Iterators$1 = iterators;
1393
1394
  var IteratorsCore = iteratorsCore;
1394
1395
 
@@ -1396,7 +1397,7 @@ var PROPER_FUNCTION_NAME = FunctionName.PROPER;
1396
1397
  var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
1397
1398
  var IteratorPrototype = IteratorsCore.IteratorPrototype;
1398
1399
  var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
1399
- var ITERATOR$1 = wellKnownSymbol$3('iterator');
1400
+ var ITERATOR$1 = wellKnownSymbol$1('iterator');
1400
1401
  var KEYS = 'keys';
1401
1402
  var VALUES = 'values';
1402
1403
  var ENTRIES = 'entries';
@@ -1433,7 +1434,7 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL
1433
1434
  if (getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
1434
1435
  if (setPrototypeOf) {
1435
1436
  setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
1436
- } else if (!isCallable$2(CurrentIteratorPrototype[ITERATOR$1])) {
1437
+ } else if (!isCallable(CurrentIteratorPrototype[ITERATOR$1])) {
1437
1438
  defineBuiltIn(CurrentIteratorPrototype, ITERATOR$1, returnThis);
1438
1439
  }
1439
1440
  }
@@ -1463,7 +1464,7 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL
1463
1464
  if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
1464
1465
  defineBuiltIn(IterablePrototype, KEY, methods[KEY]);
1465
1466
  }
1466
- } else $$2({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
1467
+ } else $$1({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
1467
1468
  }
1468
1469
 
1469
1470
  // define iterator
@@ -1485,10 +1486,10 @@ var toIndexedObject = toIndexedObject$5;
1485
1486
  var addToUnscopables = addToUnscopables$1;
1486
1487
  var Iterators = iterators;
1487
1488
  var InternalStateModule = internalState;
1488
- var defineProperty$1 = objectDefineProperty.f;
1489
+ var defineProperty = objectDefineProperty.f;
1489
1490
  var defineIterator = iteratorDefine;
1490
1491
  var createIterResultObject = createIterResultObject$1;
1491
- var DESCRIPTORS$1 = descriptors;
1492
+ var DESCRIPTORS = descriptors;
1492
1493
 
1493
1494
  var ARRAY_ITERATOR = 'Array Iterator';
1494
1495
  var setInternalState = InternalStateModule.set;
@@ -1538,8 +1539,8 @@ addToUnscopables('values');
1538
1539
  addToUnscopables('entries');
1539
1540
 
1540
1541
  // V8 ~ Chrome 45- bug
1541
- if (DESCRIPTORS$1 && values.name !== 'values') try {
1542
- defineProperty$1(values, 'name', { value: 'values' });
1542
+ if (DESCRIPTORS && values.name !== 'values') try {
1543
+ defineProperty(values, 'name', { value: 'values' });
1543
1544
  } catch (error) { /* empty */ }
1544
1545
 
1545
1546
  // iterable DOM collections
@@ -1586,15 +1587,15 @@ var DOMTokenListPrototype$1 = classList && classList.constructor && classList.co
1586
1587
 
1587
1588
  var domTokenListPrototype = DOMTokenListPrototype$1 === Object.prototype ? undefined : DOMTokenListPrototype$1;
1588
1589
 
1589
- var global$3 = global$d;
1590
+ var global$2 = global$c;
1590
1591
  var DOMIterables = domIterables;
1591
1592
  var DOMTokenListPrototype = domTokenListPrototype;
1592
1593
  var ArrayIteratorMethods = es_array_iterator;
1593
1594
  var createNonEnumerableProperty = createNonEnumerableProperty$4;
1594
- var wellKnownSymbol$2 = wellKnownSymbol$8;
1595
+ var wellKnownSymbol = wellKnownSymbol$6;
1595
1596
 
1596
- var ITERATOR = wellKnownSymbol$2('iterator');
1597
- var TO_STRING_TAG$2 = wellKnownSymbol$2('toStringTag');
1597
+ var ITERATOR = wellKnownSymbol('iterator');
1598
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
1598
1599
  var ArrayValues = ArrayIteratorMethods.values;
1599
1600
 
1600
1601
  var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {
@@ -1605,8 +1606,8 @@ var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {
1605
1606
  } catch (error) {
1606
1607
  CollectionPrototype[ITERATOR] = ArrayValues;
1607
1608
  }
1608
- if (!CollectionPrototype[TO_STRING_TAG$2]) {
1609
- createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG$2, COLLECTION_NAME);
1609
+ if (!CollectionPrototype[TO_STRING_TAG]) {
1610
+ createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
1610
1611
  }
1611
1612
  if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {
1612
1613
  // some Chrome versions have non-configurable methods on DOMTokenList
@@ -1620,7 +1621,7 @@ var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {
1620
1621
  };
1621
1622
 
1622
1623
  for (var COLLECTION_NAME in DOMIterables) {
1623
- handlePrototype(global$3[COLLECTION_NAME] && global$3[COLLECTION_NAME].prototype, COLLECTION_NAME);
1624
+ handlePrototype(global$2[COLLECTION_NAME] && global$2[COLLECTION_NAME].prototype, COLLECTION_NAME);
1624
1625
  }
1625
1626
 
1626
1627
  handlePrototype(DOMTokenListPrototype, 'DOMTokenList');
@@ -1662,159 +1663,6 @@ function __awaiter(thisArg, _arguments, P, generator) {
1662
1663
  });
1663
1664
  }
1664
1665
 
1665
- var wellKnownSymbol$1 = wellKnownSymbol$8;
1666
-
1667
- var TO_STRING_TAG$1 = wellKnownSymbol$1('toStringTag');
1668
- var test = {};
1669
-
1670
- test[TO_STRING_TAG$1] = 'z';
1671
-
1672
- var toStringTagSupport = String(test) === '[object z]';
1673
-
1674
- var TO_STRING_TAG_SUPPORT = toStringTagSupport;
1675
- var isCallable$1 = isCallable$g;
1676
- var classofRaw = classofRaw$1;
1677
- var wellKnownSymbol = wellKnownSymbol$8;
1678
-
1679
- var TO_STRING_TAG = wellKnownSymbol('toStringTag');
1680
- var $Object = Object;
1681
-
1682
- // ES3 wrong here
1683
- var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
1684
-
1685
- // fallback for IE11 Script Access Denied error
1686
- var tryGet = function (it, key) {
1687
- try {
1688
- return it[key];
1689
- } catch (error) { /* empty */ }
1690
- };
1691
-
1692
- // getting tag from ES6+ `Object.prototype.toString`
1693
- var classof$2 = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
1694
- var O, tag, result;
1695
- return it === undefined ? 'Undefined' : it === null ? 'Null'
1696
- // @@toStringTag case
1697
- : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag
1698
- // builtinTag case
1699
- : CORRECT_ARGUMENTS ? classofRaw(O)
1700
- // ES3 arguments fallback
1701
- : (result = classofRaw(O)) == 'Object' && isCallable$1(O.callee) ? 'Arguments' : result;
1702
- };
1703
-
1704
- var classof$1 = classof$2;
1705
-
1706
- var $String = String;
1707
-
1708
- var toString$1 = function (argument) {
1709
- if (classof$1(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');
1710
- return $String(argument);
1711
- };
1712
-
1713
- var $$1 = _export;
1714
- var DESCRIPTORS = descriptors;
1715
- var global$2 = global$d;
1716
- var uncurryThis = functionUncurryThis;
1717
- var hasOwn = hasOwnProperty_1;
1718
- var isCallable = isCallable$g;
1719
- var isPrototypeOf = objectIsPrototypeOf;
1720
- var toString = toString$1;
1721
- var defineProperty = objectDefineProperty.f;
1722
- var copyConstructorProperties = copyConstructorProperties$2;
1723
-
1724
- var NativeSymbol = global$2.Symbol;
1725
- var SymbolPrototype = NativeSymbol && NativeSymbol.prototype;
1726
-
1727
- if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||
1728
- // Safari 12 bug
1729
- NativeSymbol().description !== undefined
1730
- )) {
1731
- var EmptyStringDescriptionStore = {};
1732
- // wrap Symbol constructor for correct work with undefined description
1733
- var SymbolWrapper = function Symbol() {
1734
- var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);
1735
- var result = isPrototypeOf(SymbolPrototype, this)
1736
- ? new NativeSymbol(description)
1737
- // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
1738
- : description === undefined ? NativeSymbol() : NativeSymbol(description);
1739
- if (description === '') EmptyStringDescriptionStore[result] = true;
1740
- return result;
1741
- };
1742
-
1743
- copyConstructorProperties(SymbolWrapper, NativeSymbol);
1744
- SymbolWrapper.prototype = SymbolPrototype;
1745
- SymbolPrototype.constructor = SymbolWrapper;
1746
-
1747
- var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';
1748
- var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);
1749
- var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);
1750
- var regexp = /^Symbol\((.*)\)[^)]+$/;
1751
- var replace = uncurryThis(''.replace);
1752
- var stringSlice = uncurryThis(''.slice);
1753
-
1754
- defineProperty(SymbolPrototype, 'description', {
1755
- configurable: true,
1756
- get: function description() {
1757
- var symbol = thisSymbolValue(this);
1758
- if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';
1759
- var string = symbolDescriptiveString(symbol);
1760
- var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');
1761
- return desc === '' ? undefined : desc;
1762
- }
1763
- });
1764
-
1765
- $$1({ global: true, constructor: true, forced: true }, {
1766
- Symbol: SymbolWrapper
1767
- });
1768
- }
1769
-
1770
- const useNinetailed = () => {
1771
- const ninetailed = React.useContext(NinetailedContext);
1772
- if (ninetailed === undefined) {
1773
- throw new Error('The component using the the context must be a descendant of the NinetailedProvider');
1774
- }
1775
- return ninetailed;
1776
- };
1777
-
1778
- const TrackExperience = ({
1779
- children,
1780
- experience,
1781
- variant,
1782
- profile
1783
- }) => {
1784
- const ninetailed = useNinetailed();
1785
- const {
1786
- ref,
1787
- inView
1788
- } = reactIntersectionObserver.useInView({
1789
- triggerOnce: true
1790
- });
1791
- React.useEffect(() => {
1792
- if (experience_jsShared.isBrowser() && inView) {
1793
- const distribution = experience_js.selectDistribution({
1794
- experience,
1795
- profile
1796
- });
1797
- ninetailed.trackHasSeenExperience({
1798
- experience: {
1799
- id: experience.id,
1800
- type: experience.type,
1801
- name: experience.name || '',
1802
- description: experience.description || ''
1803
- },
1804
- audience: experience.audience,
1805
- selectedVariant: variant,
1806
- selectedVariantIndex: distribution.index
1807
- });
1808
- }
1809
- }, [inView]);
1810
- return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1811
- children: [jsxRuntime.jsx("div", {
1812
- ref: ref,
1813
- id: "nt-experience-handle"
1814
- }), children]
1815
- });
1816
- };
1817
-
1818
1666
  var aCallable = aCallable$2;
1819
1667
  var toObject = toObject$4;
1820
1668
  var IndexedObject = indexedObject;
@@ -1868,8 +1716,8 @@ var arrayMethodIsStrict$1 = function (METHOD_NAME, argument) {
1868
1716
  });
1869
1717
  };
1870
1718
 
1871
- var classof = classofRaw$1;
1872
- var global$1 = global$d;
1719
+ var classof = classofRaw;
1720
+ var global$1 = global$c;
1873
1721
 
1874
1722
  var engineIsNode = classof(global$1.process) == 'process';
1875
1723
 
@@ -1893,6 +1741,14 @@ $({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {
1893
1741
  }
1894
1742
  });
1895
1743
 
1744
+ const useNinetailed = () => {
1745
+ const ninetailed = React.useContext(NinetailedContext);
1746
+ if (ninetailed === undefined) {
1747
+ throw new Error('The component using the the context must be a descendant of the NinetailedProvider');
1748
+ }
1749
+ return ninetailed;
1750
+ };
1751
+
1896
1752
  const useProfile = () => {
1897
1753
  const ninetailed = useNinetailed();
1898
1754
  const [profileState, setProfileState] = React.useState(ninetailed.profileState);
@@ -1996,21 +1852,26 @@ const useExperience = ({
1996
1852
  const overrideResult = _a => {
1997
1853
  var {
1998
1854
  experience: originalExperience,
1999
- variant: originalVariant
1855
+ variant: originalVariant,
1856
+ variantIndex: originalVariantIndex
2000
1857
  } = _a,
2001
- other = __rest(_a, ["experience", "variant"]);
1858
+ other = __rest(_a, ["experience", "variant", "variantIndex"]);
2002
1859
  const {
2003
1860
  experience,
2004
- variant
1861
+ variant,
1862
+ variantIndex
2005
1863
  } = experienceSelectionMiddleware({
2006
1864
  experience: originalExperience,
2007
- variant: originalVariant
1865
+ variant: originalVariant,
1866
+ variantIndex: originalVariantIndex
2008
1867
  });
2009
1868
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2010
1869
  // @ts-ignore
2011
1870
  return Object.assign(Object.assign({}, other), {
1871
+ audience: (experience === null || experience === void 0 ? void 0 : experience.audience) ? experience.audience : null,
2012
1872
  experience,
2013
- variant
1873
+ variant,
1874
+ variantIndex
2014
1875
  });
2015
1876
  };
2016
1877
  const baseReturn = Object.assign(Object.assign({}, profileState), {
@@ -2019,7 +1880,8 @@ const useExperience = ({
2019
1880
  });
2020
1881
  const emptyReturn = Object.assign(Object.assign({}, baseReturn), {
2021
1882
  experience: null,
2022
- variant: null,
1883
+ variant: baseline,
1884
+ variantIndex: 0,
2023
1885
  audience: null,
2024
1886
  isPersonalized: false,
2025
1887
  profile: null
@@ -2052,31 +1914,22 @@ const useExperience = ({
2052
1914
  profile
2053
1915
  }));
2054
1916
  }
2055
- const audience = experience.audience;
2056
- const variant = experience_js.selectExperienceVariantClientSide({
1917
+ const {
1918
+ variant,
1919
+ index
1920
+ } = experience_js.selectExperienceVariant({
2057
1921
  baseline,
2058
1922
  experience,
2059
1923
  profile
2060
1924
  });
2061
- if (!variant) {
2062
- return overrideResult(Object.assign(Object.assign({}, baseReturn), {
2063
- status: 'success',
2064
- loading: false,
2065
- error: null,
2066
- experience,
2067
- variant: null,
2068
- audience: audience ? audience : null,
2069
- profile,
2070
- isPersonalized: false
2071
- }));
2072
- }
2073
1925
  return overrideResult(Object.assign(Object.assign({}, baseReturn), {
2074
1926
  status: 'success',
2075
1927
  loading: false,
2076
1928
  error: null,
2077
1929
  experience,
2078
1930
  variant,
2079
- audience: audience ? audience : null,
1931
+ variantIndex: index,
1932
+ audience: experience.audience ? experience.audience : null,
2080
1933
  profile,
2081
1934
  isPersonalized: true
2082
1935
  }));
@@ -2087,6 +1940,36 @@ const useJoinExperiment = () => {
2087
1940
  return context.joinExperiment;
2088
1941
  };
2089
1942
 
1943
+ const ComponentMarker = /*#__PURE__*/React.forwardRef((_, ref) => {
1944
+ const {
1945
+ logger
1946
+ } = useNinetailed();
1947
+ const markerRef = React.useRef(null);
1948
+ React.useEffect(() => {
1949
+ // TODO: Create a better message
1950
+ logger.debug('Using fallback mechanism to select component.');
1951
+ }, [logger]);
1952
+ React.useEffect(() => {
1953
+ if (markerRef.current) {
1954
+ const nextSibling = markerRef.current.nextSibling;
1955
+ if (ref) {
1956
+ if (typeof ref === 'function') {
1957
+ ref(nextSibling);
1958
+ } else {
1959
+ ref.current = nextSibling;
1960
+ }
1961
+ }
1962
+ }
1963
+ }, []);
1964
+ return jsxRuntime.jsx("div", {
1965
+ className: "nt-cmp-marker",
1966
+ style: {
1967
+ display: 'none !important'
1968
+ },
1969
+ ref: markerRef
1970
+ });
1971
+ });
1972
+
2090
1973
  const DefaultExperienceLoadingComponent = _a => {
2091
1974
  var {
2092
1975
  component: Component,
@@ -2140,12 +2023,17 @@ const Experience = _a => {
2140
2023
  passthroughProps
2141
2024
  } = _a,
2142
2025
  baseline = __rest(_a, ["experiences", "component", "loadingComponent", "passthroughProps"]);
2026
+ const {
2027
+ observeElement,
2028
+ unobserveElement
2029
+ } = useNinetailed();
2143
2030
  // TODO we actually could hook into the experience hook here with the plugins
2144
2031
  const {
2145
2032
  status,
2146
2033
  hasVariants,
2147
2034
  experience,
2148
2035
  variant,
2036
+ variantIndex,
2149
2037
  audience,
2150
2038
  isPersonalized,
2151
2039
  profile
@@ -2154,6 +2042,10 @@ const Experience = _a => {
2154
2042
  experiences
2155
2043
  });
2156
2044
  const joinExperiment = useJoinExperiment();
2045
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2046
+ // @ts-ignore
2047
+ const isComponentForwardRef = reactIs.isForwardRef(jsxRuntime.jsx(Component, {}));
2048
+ const componentRef = React.useRef(null);
2157
2049
  React.useEffect(() => {
2158
2050
  if (status === 'success' && experience && profile) {
2159
2051
  joinExperiment({
@@ -2163,10 +2055,33 @@ const Experience = _a => {
2163
2055
  });
2164
2056
  }
2165
2057
  }, [status, experience, profile]);
2058
+ React.useEffect(() => {
2059
+ const componentElement = componentRef.current;
2060
+ if (componentElement) {
2061
+ observeElement({
2062
+ element: componentElement,
2063
+ experience,
2064
+ audience,
2065
+ variant,
2066
+ variantIndex
2067
+ });
2068
+ }
2069
+ return () => {
2070
+ if (componentElement) {
2071
+ unobserveElement(componentElement);
2072
+ }
2073
+ };
2074
+ }, [observeElement, unobserveElement, experience, baseline, variant, variantIndex, audience]);
2166
2075
  if (!hasVariants) {
2167
- return /*#__PURE__*/React.createElement(Component, Object.assign({}, passthroughProps, baseline, {
2168
- key: baseline.id
2169
- }));
2076
+ return jsxRuntime.jsxs(jsxRuntime.Fragment, {
2077
+ children: [!isComponentForwardRef && jsxRuntime.jsx(ComponentMarker, {
2078
+ ref: componentRef
2079
+ }, `marker-no-variants-${(experience === null || experience === void 0 ? void 0 : experience.id) || 'baseline'}-${variant.id}`), /*#__PURE__*/React.createElement(Component, Object.assign({}, passthroughProps, baseline, {
2080
+ key: baseline.id
2081
+ }, isComponentForwardRef ? {
2082
+ ref: componentRef
2083
+ } : {}))]
2084
+ });
2170
2085
  }
2171
2086
  if (status === 'loading') {
2172
2087
  return /*#__PURE__*/React.createElement(LoadingComponent, Object.assign({}, baseline, {
@@ -2176,50 +2091,27 @@ const Experience = _a => {
2176
2091
  component: Component
2177
2092
  }));
2178
2093
  }
2179
- if (!experience) {
2180
- return jsxRuntime.jsx(Component, Object.assign({}, passthroughProps, baseline, {
2181
- ninetailed: {
2182
- isPersonalized: false,
2183
- audience: {
2184
- id: 'baseline'
2185
- }
2186
- }
2187
- }));
2188
- }
2189
- if (!variant) {
2190
- return jsxRuntime.jsx(TrackExperience, Object.assign({
2191
- experience: experience,
2192
- variant: baseline,
2193
- // the profile is definitely defined, otherwise there wouldn't be an experience selected
2194
- profile: profile
2195
- }, {
2196
- children: jsxRuntime.jsx(Component, Object.assign({}, passthroughProps, baseline, {
2197
- ninetailed: {
2198
- isPersonalized: false,
2199
- audience: {
2200
- id: (audience === null || audience === void 0 ? void 0 : audience.id) || 'all visitors'
2201
- }
2202
- }
2203
- }))
2204
- }), baseline.id);
2205
- }
2206
2094
  const isVariantHidden = 'hidden' in variant && variant.hidden;
2207
- return jsxRuntime.jsx(TrackExperience, Object.assign({
2208
- experience: experience,
2209
- variant: variant,
2210
- // the profile is definitely defined, otherwise there wouldn't be an experience selected
2211
- profile: profile
2212
- }, {
2213
- children: !isVariantHidden ? /*#__PURE__*/React.createElement(Component, Object.assign({}, Object.assign(Object.assign({}, passthroughProps), variant), {
2214
- key: `${experience.id}-${variant.id}`,
2095
+ if (isVariantHidden) {
2096
+ return jsxRuntime.jsx(ComponentMarker, {
2097
+ ref: componentRef
2098
+ }, `marker-hidden-${(experience === null || experience === void 0 ? void 0 : experience.id) || 'baseline'}-${variant.id}`);
2099
+ }
2100
+ return jsxRuntime.jsxs(jsxRuntime.Fragment, {
2101
+ children: [!isComponentForwardRef && jsxRuntime.jsx(ComponentMarker, {
2102
+ ref: componentRef
2103
+ }, `marker-${(experience === null || experience === void 0 ? void 0 : experience.id) || 'baseline'}-${variant.id}`), /*#__PURE__*/React.createElement(Component, Object.assign({}, Object.assign(Object.assign({}, passthroughProps), variant), {
2104
+ key: `${(experience === null || experience === void 0 ? void 0 : experience.id) || 'baseline'}-${variant.id}`,
2215
2105
  ninetailed: {
2216
2106
  isPersonalized,
2217
2107
  audience: {
2218
2108
  id: (audience === null || audience === void 0 ? void 0 : audience.id) || 'all visitors'
2219
2109
  }
2220
2110
  }
2221
- })) : null
2222
- }));
2111
+ }, isComponentForwardRef ? {
2112
+ ref: componentRef
2113
+ } : {}))]
2114
+ });
2223
2115
  };
2224
2116
 
2225
2117
  const ESRContext = /*#__PURE__*/React__default["default"].createContext(undefined);
@@ -2390,11 +2282,13 @@ const NinetailedProvider = props => {
2390
2282
  environment,
2391
2283
  preview,
2392
2284
  url,
2285
+ profile,
2393
2286
  locale,
2394
2287
  requestTimeout,
2395
2288
  plugins = [],
2396
2289
  onLog,
2397
- onError
2290
+ onError,
2291
+ componentViewTrackingThreshold
2398
2292
  } = props;
2399
2293
  return new experience_js.Ninetailed({
2400
2294
  clientId,
@@ -2403,10 +2297,12 @@ const NinetailedProvider = props => {
2403
2297
  }, {
2404
2298
  url,
2405
2299
  plugins,
2300
+ profile,
2406
2301
  locale,
2407
2302
  requestTimeout,
2408
2303
  onLog,
2409
- onError
2304
+ onError,
2305
+ componentViewTrackingThreshold
2410
2306
  });
2411
2307
  }, []);
2412
2308
  const {
@@ -2559,7 +2455,6 @@ exports.ExperimentsProvider = ExperimentsProvider;
2559
2455
  exports.MergeTag = MergeTag;
2560
2456
  exports.NinetailedProvider = NinetailedProvider;
2561
2457
  exports.Personalize = Personalize;
2562
- exports.TrackExperience = TrackExperience;
2563
2458
  exports.TrackHasSeenComponent = TrackHasSeenComponent;
2564
2459
  exports.useExperience = useExperience;
2565
2460
  exports.useExperiments = useExperiments;