@public-ui/hydrate 3.0.0-rc.11 → 3.0.0-rc.13

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.
Files changed (3) hide show
  1. package/dist/index.js +2034 -149
  2. package/dist/index.mjs +2034 -149
  3. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -1454,7 +1454,7 @@ var serverSideConnected = (elm) => {
1454
1454
  };
1455
1455
 
1456
1456
  // src/runtime/set-value.ts
1457
- var getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);
1457
+ var getValue$1 = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);
1458
1458
  var setValue = (ref, propName, newVal, cmpMeta) => {
1459
1459
  const hostRef = getHostRef(ref);
1460
1460
  if (!hostRef) {
@@ -1504,7 +1504,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1504
1504
  if ((memberFlags & 31 /* Prop */ || (flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {
1505
1505
  Object.defineProperty(prototype, memberName, {
1506
1506
  get() {
1507
- return getValue(this, memberName);
1507
+ return getValue$1(this, memberName);
1508
1508
  },
1509
1509
  set(newValue) {
1510
1510
  setValue(this, memberName, newValue, cmpMeta);
@@ -1937,7 +1937,7 @@ function proxyHostElement(elm, cmpMeta) {
1937
1937
  }
1938
1938
  Object.defineProperty(elm, memberName, {
1939
1939
  get() {
1940
- return getValue(this, memberName);
1940
+ return getValue$1(this, memberName);
1941
1941
  },
1942
1942
  set(newValue) {
1943
1943
  setValue(this, memberName, newValue, cmpMeta);
@@ -2685,7 +2685,7 @@ let EXPERIMENTAL_MODE = false;
2685
2685
  const getDevMode = () => DEV_MODE === true;
2686
2686
  const getExperimentalMode = () => EXPERIMENTAL_MODE === true;
2687
2687
  const LOG_STYLE = 'color: white; background: #666; font-weight: bold; padding: .25em .5em; border-radius: 3px; border: 1px solid #000';
2688
- const mapToArray = (msg) => {
2688
+ const mapToArray$1 = (msg) => {
2689
2689
  return Array.isArray(msg) ? msg : [msg];
2690
2690
  };
2691
2691
  const getLogLabel = (label) => {
@@ -2710,30 +2710,30 @@ class Logger {
2710
2710
  }
2711
2711
  debug(msg, options) {
2712
2712
  if (isDevModeOrForceLog(this.devMode, options === null || options === void 0 ? void 0 : options.forceLog)) {
2713
- console.debug(...getShield(this.label, options), ...mapToArray(msg));
2713
+ console.debug(...getShield(this.label, options), ...mapToArray$1(msg));
2714
2714
  }
2715
2715
  }
2716
2716
  info(msg, options) {
2717
2717
  if (isDevModeOrForceLog(this.devMode, options === null || options === void 0 ? void 0 : options.forceLog)) {
2718
- console.info(...getShield(this.label, options), ...mapToArray(msg));
2718
+ console.info(...getShield(this.label, options), ...mapToArray$1(msg));
2719
2719
  }
2720
2720
  }
2721
2721
  trace(msg, options) {
2722
2722
  if (isDevModeOrForceLog(this.devMode, options === null || options === void 0 ? void 0 : options.forceLog)) {
2723
- console.trace(...getShield(this.label, options), ...mapToArray(msg));
2723
+ console.trace(...getShield(this.label, options), ...mapToArray$1(msg));
2724
2724
  }
2725
2725
  }
2726
2726
  warn(msg, options) {
2727
2727
  if (isDevModeOrForceLog(this.devMode, options === null || options === void 0 ? void 0 : options.forceLog)) {
2728
- console.warn(...getShield(this.label, options), ...mapToArray(msg));
2728
+ console.warn(...getShield(this.label, options), ...mapToArray$1(msg));
2729
2729
  }
2730
2730
  }
2731
2731
  error(msg, options) {
2732
- console.error(...getShield(this.label, options), ...mapToArray(msg));
2732
+ console.error(...getShield(this.label, options), ...mapToArray$1(msg));
2733
2733
  }
2734
2734
  throw(msg, options) {
2735
2735
  if (isDevModeOrForceLog(this.devMode, options === null || options === void 0 ? void 0 : options.forceLog)) {
2736
- throw new Error(...getShield(this.label, options), ...mapToArray(msg));
2736
+ throw new Error(...getShield(this.label, options), ...mapToArray$1(msg));
2737
2737
  }
2738
2738
  }
2739
2739
  }
@@ -5238,175 +5238,2006 @@ var Symbol = root$1.Symbol;
5238
5238
  var Symbol$1 = Symbol;
5239
5239
 
5240
5240
  /** Used for built-in method references. */
5241
- var objectProto$1 = Object.prototype;
5241
+ var objectProto$b = Object.prototype;
5242
+
5243
+ /** Used to check objects for own properties. */
5244
+ var hasOwnProperty$8 = objectProto$b.hasOwnProperty;
5245
+
5246
+ /**
5247
+ * Used to resolve the
5248
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
5249
+ * of values.
5250
+ */
5251
+ var nativeObjectToString$1 = objectProto$b.toString;
5252
+
5253
+ /** Built-in value references. */
5254
+ var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
5255
+
5256
+ /**
5257
+ * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
5258
+ *
5259
+ * @private
5260
+ * @param {*} value The value to query.
5261
+ * @returns {string} Returns the raw `toStringTag`.
5262
+ */
5263
+ function getRawTag(value) {
5264
+ var isOwn = hasOwnProperty$8.call(value, symToStringTag$1),
5265
+ tag = value[symToStringTag$1];
5266
+
5267
+ try {
5268
+ value[symToStringTag$1] = undefined;
5269
+ var unmasked = true;
5270
+ } catch (e) {}
5271
+
5272
+ var result = nativeObjectToString$1.call(value);
5273
+ if (unmasked) {
5274
+ if (isOwn) {
5275
+ value[symToStringTag$1] = tag;
5276
+ } else {
5277
+ delete value[symToStringTag$1];
5278
+ }
5279
+ }
5280
+ return result;
5281
+ }
5282
+
5283
+ /** Used for built-in method references. */
5284
+ var objectProto$a = Object.prototype;
5285
+
5286
+ /**
5287
+ * Used to resolve the
5288
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
5289
+ * of values.
5290
+ */
5291
+ var nativeObjectToString = objectProto$a.toString;
5292
+
5293
+ /**
5294
+ * Converts `value` to a string using `Object.prototype.toString`.
5295
+ *
5296
+ * @private
5297
+ * @param {*} value The value to convert.
5298
+ * @returns {string} Returns the converted string.
5299
+ */
5300
+ function objectToString(value) {
5301
+ return nativeObjectToString.call(value);
5302
+ }
5303
+
5304
+ /** `Object#toString` result references. */
5305
+ var nullTag = '[object Null]',
5306
+ undefinedTag = '[object Undefined]';
5307
+
5308
+ /** Built-in value references. */
5309
+ var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined;
5310
+
5311
+ /**
5312
+ * The base implementation of `getTag` without fallbacks for buggy environments.
5313
+ *
5314
+ * @private
5315
+ * @param {*} value The value to query.
5316
+ * @returns {string} Returns the `toStringTag`.
5317
+ */
5318
+ function baseGetTag(value) {
5319
+ if (value == null) {
5320
+ return value === undefined ? undefinedTag : nullTag;
5321
+ }
5322
+ return (symToStringTag && symToStringTag in Object(value))
5323
+ ? getRawTag(value)
5324
+ : objectToString(value);
5325
+ }
5326
+
5327
+ /**
5328
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
5329
+ * and has a `typeof` result of "object".
5330
+ *
5331
+ * @static
5332
+ * @memberOf _
5333
+ * @since 4.0.0
5334
+ * @category Lang
5335
+ * @param {*} value The value to check.
5336
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
5337
+ * @example
5338
+ *
5339
+ * _.isObjectLike({});
5340
+ * // => true
5341
+ *
5342
+ * _.isObjectLike([1, 2, 3]);
5343
+ * // => true
5344
+ *
5345
+ * _.isObjectLike(_.noop);
5346
+ * // => false
5347
+ *
5348
+ * _.isObjectLike(null);
5349
+ * // => false
5350
+ */
5351
+ function isObjectLike(value) {
5352
+ return value != null && typeof value == 'object';
5353
+ }
5354
+
5355
+ /**
5356
+ * Checks if `value` is classified as an `Array` object.
5357
+ *
5358
+ * @static
5359
+ * @memberOf _
5360
+ * @since 0.1.0
5361
+ * @category Lang
5362
+ * @param {*} value The value to check.
5363
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
5364
+ * @example
5365
+ *
5366
+ * _.isArray([1, 2, 3]);
5367
+ * // => true
5368
+ *
5369
+ * _.isArray(document.body.children);
5370
+ * // => false
5371
+ *
5372
+ * _.isArray('abc');
5373
+ * // => false
5374
+ *
5375
+ * _.isArray(_.noop);
5376
+ * // => false
5377
+ */
5378
+ var isArray = Array.isArray;
5379
+
5380
+ var isArray$1 = isArray;
5381
+
5382
+ /**
5383
+ * Checks if `value` is the
5384
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
5385
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
5386
+ *
5387
+ * @static
5388
+ * @memberOf _
5389
+ * @since 0.1.0
5390
+ * @category Lang
5391
+ * @param {*} value The value to check.
5392
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
5393
+ * @example
5394
+ *
5395
+ * _.isObject({});
5396
+ * // => true
5397
+ *
5398
+ * _.isObject([1, 2, 3]);
5399
+ * // => true
5400
+ *
5401
+ * _.isObject(_.noop);
5402
+ * // => true
5403
+ *
5404
+ * _.isObject(null);
5405
+ * // => false
5406
+ */
5407
+ function isObject$1(value) {
5408
+ var type = typeof value;
5409
+ return value != null && (type == 'object' || type == 'function');
5410
+ }
5411
+
5412
+ /** `Object#toString` result references. */
5413
+ var asyncTag = '[object AsyncFunction]',
5414
+ funcTag$1 = '[object Function]',
5415
+ genTag = '[object GeneratorFunction]',
5416
+ proxyTag = '[object Proxy]';
5417
+
5418
+ /**
5419
+ * Checks if `value` is classified as a `Function` object.
5420
+ *
5421
+ * @static
5422
+ * @memberOf _
5423
+ * @since 0.1.0
5424
+ * @category Lang
5425
+ * @param {*} value The value to check.
5426
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
5427
+ * @example
5428
+ *
5429
+ * _.isFunction(_);
5430
+ * // => true
5431
+ *
5432
+ * _.isFunction(/abc/);
5433
+ * // => false
5434
+ */
5435
+ function isFunction$1(value) {
5436
+ if (!isObject$1(value)) {
5437
+ return false;
5438
+ }
5439
+ // The use of `Object#toString` avoids issues with the `typeof` operator
5440
+ // in Safari 9 which returns 'object' for typed arrays and other constructors.
5441
+ var tag = baseGetTag(value);
5442
+ return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;
5443
+ }
5444
+
5445
+ /** Used to detect overreaching core-js shims. */
5446
+ var coreJsData = root$1['__core-js_shared__'];
5447
+
5448
+ var coreJsData$1 = coreJsData;
5449
+
5450
+ /** Used to detect methods masquerading as native. */
5451
+ var maskSrcKey = (function() {
5452
+ var uid = /[^.]+$/.exec(coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO || '');
5453
+ return uid ? ('Symbol(src)_1.' + uid) : '';
5454
+ }());
5455
+
5456
+ /**
5457
+ * Checks if `func` has its source masked.
5458
+ *
5459
+ * @private
5460
+ * @param {Function} func The function to check.
5461
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
5462
+ */
5463
+ function isMasked(func) {
5464
+ return !!maskSrcKey && (maskSrcKey in func);
5465
+ }
5466
+
5467
+ /** Used for built-in method references. */
5468
+ var funcProto$1 = Function.prototype;
5469
+
5470
+ /** Used to resolve the decompiled source of functions. */
5471
+ var funcToString$1 = funcProto$1.toString;
5472
+
5473
+ /**
5474
+ * Converts `func` to its source code.
5475
+ *
5476
+ * @private
5477
+ * @param {Function} func The function to convert.
5478
+ * @returns {string} Returns the source code.
5479
+ */
5480
+ function toSource(func) {
5481
+ if (func != null) {
5482
+ try {
5483
+ return funcToString$1.call(func);
5484
+ } catch (e) {}
5485
+ try {
5486
+ return (func + '');
5487
+ } catch (e) {}
5488
+ }
5489
+ return '';
5490
+ }
5491
+
5492
+ /**
5493
+ * Used to match `RegExp`
5494
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
5495
+ */
5496
+ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
5497
+
5498
+ /** Used to detect host constructors (Safari). */
5499
+ var reIsHostCtor = /^\[object .+?Constructor\]$/;
5500
+
5501
+ /** Used for built-in method references. */
5502
+ var funcProto = Function.prototype,
5503
+ objectProto$9 = Object.prototype;
5504
+
5505
+ /** Used to resolve the decompiled source of functions. */
5506
+ var funcToString = funcProto.toString;
5507
+
5508
+ /** Used to check objects for own properties. */
5509
+ var hasOwnProperty$7 = objectProto$9.hasOwnProperty;
5510
+
5511
+ /** Used to detect if a method is native. */
5512
+ var reIsNative = RegExp('^' +
5513
+ funcToString.call(hasOwnProperty$7).replace(reRegExpChar, '\\$&')
5514
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
5515
+ );
5516
+
5517
+ /**
5518
+ * The base implementation of `_.isNative` without bad shim checks.
5519
+ *
5520
+ * @private
5521
+ * @param {*} value The value to check.
5522
+ * @returns {boolean} Returns `true` if `value` is a native function,
5523
+ * else `false`.
5524
+ */
5525
+ function baseIsNative(value) {
5526
+ if (!isObject$1(value) || isMasked(value)) {
5527
+ return false;
5528
+ }
5529
+ var pattern = isFunction$1(value) ? reIsNative : reIsHostCtor;
5530
+ return pattern.test(toSource(value));
5531
+ }
5532
+
5533
+ /**
5534
+ * Gets the value at `key` of `object`.
5535
+ *
5536
+ * @private
5537
+ * @param {Object} [object] The object to query.
5538
+ * @param {string} key The key of the property to get.
5539
+ * @returns {*} Returns the property value.
5540
+ */
5541
+ function getValue(object, key) {
5542
+ return object == null ? undefined : object[key];
5543
+ }
5544
+
5545
+ /**
5546
+ * Gets the native function at `key` of `object`.
5547
+ *
5548
+ * @private
5549
+ * @param {Object} object The object to query.
5550
+ * @param {string} key The key of the method to get.
5551
+ * @returns {*} Returns the function if it's native, else `undefined`.
5552
+ */
5553
+ function getNative(object, key) {
5554
+ var value = getValue(object, key);
5555
+ return baseIsNative(value) ? value : undefined;
5556
+ }
5557
+
5558
+ /* Built-in method references that are verified to be native. */
5559
+ var WeakMap$1 = getNative(root$1, 'WeakMap');
5560
+
5561
+ var WeakMap$2 = WeakMap$1;
5562
+
5563
+ /** Used as references for various `Number` constants. */
5564
+ var MAX_SAFE_INTEGER$1 = 9007199254740991;
5565
+
5566
+ /** Used to detect unsigned integer values. */
5567
+ var reIsUint = /^(?:0|[1-9]\d*)$/;
5568
+
5569
+ /**
5570
+ * Checks if `value` is a valid array-like index.
5571
+ *
5572
+ * @private
5573
+ * @param {*} value The value to check.
5574
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
5575
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
5576
+ */
5577
+ function isIndex(value, length) {
5578
+ var type = typeof value;
5579
+ length = length == null ? MAX_SAFE_INTEGER$1 : length;
5580
+
5581
+ return !!length &&
5582
+ (type == 'number' ||
5583
+ (type != 'symbol' && reIsUint.test(value))) &&
5584
+ (value > -1 && value % 1 == 0 && value < length);
5585
+ }
5586
+
5587
+ /**
5588
+ * Performs a
5589
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
5590
+ * comparison between two values to determine if they are equivalent.
5591
+ *
5592
+ * @static
5593
+ * @memberOf _
5594
+ * @since 4.0.0
5595
+ * @category Lang
5596
+ * @param {*} value The value to compare.
5597
+ * @param {*} other The other value to compare.
5598
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
5599
+ * @example
5600
+ *
5601
+ * var object = { 'a': 1 };
5602
+ * var other = { 'a': 1 };
5603
+ *
5604
+ * _.eq(object, object);
5605
+ * // => true
5606
+ *
5607
+ * _.eq(object, other);
5608
+ * // => false
5609
+ *
5610
+ * _.eq('a', 'a');
5611
+ * // => true
5612
+ *
5613
+ * _.eq('a', Object('a'));
5614
+ * // => false
5615
+ *
5616
+ * _.eq(NaN, NaN);
5617
+ * // => true
5618
+ */
5619
+ function eq(value, other) {
5620
+ return value === other || (value !== value && other !== other);
5621
+ }
5622
+
5623
+ /** Used as references for various `Number` constants. */
5624
+ var MAX_SAFE_INTEGER = 9007199254740991;
5625
+
5626
+ /**
5627
+ * Checks if `value` is a valid array-like length.
5628
+ *
5629
+ * **Note:** This method is loosely based on
5630
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
5631
+ *
5632
+ * @static
5633
+ * @memberOf _
5634
+ * @since 4.0.0
5635
+ * @category Lang
5636
+ * @param {*} value The value to check.
5637
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
5638
+ * @example
5639
+ *
5640
+ * _.isLength(3);
5641
+ * // => true
5642
+ *
5643
+ * _.isLength(Number.MIN_VALUE);
5644
+ * // => false
5645
+ *
5646
+ * _.isLength(Infinity);
5647
+ * // => false
5648
+ *
5649
+ * _.isLength('3');
5650
+ * // => false
5651
+ */
5652
+ function isLength(value) {
5653
+ return typeof value == 'number' &&
5654
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
5655
+ }
5656
+
5657
+ /**
5658
+ * Checks if `value` is array-like. A value is considered array-like if it's
5659
+ * not a function and has a `value.length` that's an integer greater than or
5660
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
5661
+ *
5662
+ * @static
5663
+ * @memberOf _
5664
+ * @since 4.0.0
5665
+ * @category Lang
5666
+ * @param {*} value The value to check.
5667
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
5668
+ * @example
5669
+ *
5670
+ * _.isArrayLike([1, 2, 3]);
5671
+ * // => true
5672
+ *
5673
+ * _.isArrayLike(document.body.children);
5674
+ * // => true
5675
+ *
5676
+ * _.isArrayLike('abc');
5677
+ * // => true
5678
+ *
5679
+ * _.isArrayLike(_.noop);
5680
+ * // => false
5681
+ */
5682
+ function isArrayLike(value) {
5683
+ return value != null && isLength(value.length) && !isFunction$1(value);
5684
+ }
5685
+
5686
+ /** Used for built-in method references. */
5687
+ var objectProto$8 = Object.prototype;
5688
+
5689
+ /**
5690
+ * Checks if `value` is likely a prototype object.
5691
+ *
5692
+ * @private
5693
+ * @param {*} value The value to check.
5694
+ * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
5695
+ */
5696
+ function isPrototype(value) {
5697
+ var Ctor = value && value.constructor,
5698
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$8;
5699
+
5700
+ return value === proto;
5701
+ }
5702
+
5703
+ /**
5704
+ * The base implementation of `_.times` without support for iteratee shorthands
5705
+ * or max array length checks.
5706
+ *
5707
+ * @private
5708
+ * @param {number} n The number of times to invoke `iteratee`.
5709
+ * @param {Function} iteratee The function invoked per iteration.
5710
+ * @returns {Array} Returns the array of results.
5711
+ */
5712
+ function baseTimes(n, iteratee) {
5713
+ var index = -1,
5714
+ result = Array(n);
5715
+
5716
+ while (++index < n) {
5717
+ result[index] = iteratee(index);
5718
+ }
5719
+ return result;
5720
+ }
5721
+
5722
+ /** `Object#toString` result references. */
5723
+ var argsTag$2 = '[object Arguments]';
5724
+
5725
+ /**
5726
+ * The base implementation of `_.isArguments`.
5727
+ *
5728
+ * @private
5729
+ * @param {*} value The value to check.
5730
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
5731
+ */
5732
+ function baseIsArguments(value) {
5733
+ return isObjectLike(value) && baseGetTag(value) == argsTag$2;
5734
+ }
5735
+
5736
+ /** Used for built-in method references. */
5737
+ var objectProto$7 = Object.prototype;
5738
+
5739
+ /** Used to check objects for own properties. */
5740
+ var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
5741
+
5742
+ /** Built-in value references. */
5743
+ var propertyIsEnumerable$1 = objectProto$7.propertyIsEnumerable;
5744
+
5745
+ /**
5746
+ * Checks if `value` is likely an `arguments` object.
5747
+ *
5748
+ * @static
5749
+ * @memberOf _
5750
+ * @since 0.1.0
5751
+ * @category Lang
5752
+ * @param {*} value The value to check.
5753
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
5754
+ * else `false`.
5755
+ * @example
5756
+ *
5757
+ * _.isArguments(function() { return arguments; }());
5758
+ * // => true
5759
+ *
5760
+ * _.isArguments([1, 2, 3]);
5761
+ * // => false
5762
+ */
5763
+ var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
5764
+ return isObjectLike(value) && hasOwnProperty$6.call(value, 'callee') &&
5765
+ !propertyIsEnumerable$1.call(value, 'callee');
5766
+ };
5767
+
5768
+ var isArguments$1 = isArguments;
5769
+
5770
+ /**
5771
+ * This method returns `false`.
5772
+ *
5773
+ * @static
5774
+ * @memberOf _
5775
+ * @since 4.13.0
5776
+ * @category Util
5777
+ * @returns {boolean} Returns `false`.
5778
+ * @example
5779
+ *
5780
+ * _.times(2, _.stubFalse);
5781
+ * // => [false, false]
5782
+ */
5783
+ function stubFalse() {
5784
+ return false;
5785
+ }
5786
+
5787
+ /** Detect free variable `exports`. */
5788
+ var freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports;
5789
+
5790
+ /** Detect free variable `module`. */
5791
+ var freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module;
5792
+
5793
+ /** Detect the popular CommonJS extension `module.exports`. */
5794
+ var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;
5795
+
5796
+ /** Built-in value references. */
5797
+ var Buffer = moduleExports$1 ? root$1.Buffer : undefined;
5798
+
5799
+ /* Built-in method references for those with the same name as other `lodash` methods. */
5800
+ var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;
5801
+
5802
+ /**
5803
+ * Checks if `value` is a buffer.
5804
+ *
5805
+ * @static
5806
+ * @memberOf _
5807
+ * @since 4.3.0
5808
+ * @category Lang
5809
+ * @param {*} value The value to check.
5810
+ * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
5811
+ * @example
5812
+ *
5813
+ * _.isBuffer(new Buffer(2));
5814
+ * // => true
5815
+ *
5816
+ * _.isBuffer(new Uint8Array(2));
5817
+ * // => false
5818
+ */
5819
+ var isBuffer = nativeIsBuffer || stubFalse;
5820
+
5821
+ var isBuffer$1 = isBuffer;
5822
+
5823
+ /** `Object#toString` result references. */
5824
+ var argsTag$1 = '[object Arguments]',
5825
+ arrayTag$1 = '[object Array]',
5826
+ boolTag$1 = '[object Boolean]',
5827
+ dateTag$1 = '[object Date]',
5828
+ errorTag$1 = '[object Error]',
5829
+ funcTag = '[object Function]',
5830
+ mapTag$2 = '[object Map]',
5831
+ numberTag$1 = '[object Number]',
5832
+ objectTag$2 = '[object Object]',
5833
+ regexpTag$1 = '[object RegExp]',
5834
+ setTag$2 = '[object Set]',
5835
+ stringTag$2 = '[object String]',
5836
+ weakMapTag$1 = '[object WeakMap]';
5837
+
5838
+ var arrayBufferTag$1 = '[object ArrayBuffer]',
5839
+ dataViewTag$2 = '[object DataView]',
5840
+ float32Tag = '[object Float32Array]',
5841
+ float64Tag = '[object Float64Array]',
5842
+ int8Tag = '[object Int8Array]',
5843
+ int16Tag = '[object Int16Array]',
5844
+ int32Tag = '[object Int32Array]',
5845
+ uint8Tag = '[object Uint8Array]',
5846
+ uint8ClampedTag = '[object Uint8ClampedArray]',
5847
+ uint16Tag = '[object Uint16Array]',
5848
+ uint32Tag = '[object Uint32Array]';
5849
+
5850
+ /** Used to identify `toStringTag` values of typed arrays. */
5851
+ var typedArrayTags = {};
5852
+ typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
5853
+ typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
5854
+ typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
5855
+ typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
5856
+ typedArrayTags[uint32Tag] = true;
5857
+ typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] =
5858
+ typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] =
5859
+ typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] =
5860
+ typedArrayTags[errorTag$1] = typedArrayTags[funcTag] =
5861
+ typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] =
5862
+ typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] =
5863
+ typedArrayTags[setTag$2] = typedArrayTags[stringTag$2] =
5864
+ typedArrayTags[weakMapTag$1] = false;
5865
+
5866
+ /**
5867
+ * The base implementation of `_.isTypedArray` without Node.js optimizations.
5868
+ *
5869
+ * @private
5870
+ * @param {*} value The value to check.
5871
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
5872
+ */
5873
+ function baseIsTypedArray(value) {
5874
+ return isObjectLike(value) &&
5875
+ isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
5876
+ }
5877
+
5878
+ /**
5879
+ * The base implementation of `_.unary` without support for storing metadata.
5880
+ *
5881
+ * @private
5882
+ * @param {Function} func The function to cap arguments for.
5883
+ * @returns {Function} Returns the new capped function.
5884
+ */
5885
+ function baseUnary(func) {
5886
+ return function(value) {
5887
+ return func(value);
5888
+ };
5889
+ }
5890
+
5891
+ /** Detect free variable `exports`. */
5892
+ var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
5893
+
5894
+ /** Detect free variable `module`. */
5895
+ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
5896
+
5897
+ /** Detect the popular CommonJS extension `module.exports`. */
5898
+ var moduleExports = freeModule && freeModule.exports === freeExports;
5899
+
5900
+ /** Detect free variable `process` from Node.js. */
5901
+ var freeProcess = moduleExports && freeGlobal$1.process;
5902
+
5903
+ /** Used to access faster Node.js helpers. */
5904
+ var nodeUtil = (function() {
5905
+ try {
5906
+ // Use `util.types` for Node.js 10+.
5907
+ var types = freeModule && freeModule.require && freeModule.require('util').types;
5908
+
5909
+ if (types) {
5910
+ return types;
5911
+ }
5912
+
5913
+ // Legacy `process.binding('util')` for Node.js < 10.
5914
+ return freeProcess && freeProcess.binding && freeProcess.binding('util');
5915
+ } catch (e) {}
5916
+ }());
5917
+
5918
+ var nodeUtil$1 = nodeUtil;
5919
+
5920
+ /* Node.js helper references. */
5921
+ var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray;
5922
+
5923
+ /**
5924
+ * Checks if `value` is classified as a typed array.
5925
+ *
5926
+ * @static
5927
+ * @memberOf _
5928
+ * @since 3.0.0
5929
+ * @category Lang
5930
+ * @param {*} value The value to check.
5931
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
5932
+ * @example
5933
+ *
5934
+ * _.isTypedArray(new Uint8Array);
5935
+ * // => true
5936
+ *
5937
+ * _.isTypedArray([]);
5938
+ * // => false
5939
+ */
5940
+ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
5941
+
5942
+ var isTypedArray$1 = isTypedArray;
5943
+
5944
+ /** Used for built-in method references. */
5945
+ var objectProto$6 = Object.prototype;
5946
+
5947
+ /** Used to check objects for own properties. */
5948
+ var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
5949
+
5950
+ /**
5951
+ * Creates an array of the enumerable property names of the array-like `value`.
5952
+ *
5953
+ * @private
5954
+ * @param {*} value The value to query.
5955
+ * @param {boolean} inherited Specify returning inherited property names.
5956
+ * @returns {Array} Returns the array of property names.
5957
+ */
5958
+ function arrayLikeKeys(value, inherited) {
5959
+ var isArr = isArray$1(value),
5960
+ isArg = !isArr && isArguments$1(value),
5961
+ isBuff = !isArr && !isArg && isBuffer$1(value),
5962
+ isType = !isArr && !isArg && !isBuff && isTypedArray$1(value),
5963
+ skipIndexes = isArr || isArg || isBuff || isType,
5964
+ result = skipIndexes ? baseTimes(value.length, String) : [],
5965
+ length = result.length;
5966
+
5967
+ for (var key in value) {
5968
+ if ((inherited || hasOwnProperty$5.call(value, key)) &&
5969
+ !(skipIndexes && (
5970
+ // Safari 9 has enumerable `arguments.length` in strict mode.
5971
+ key == 'length' ||
5972
+ // Node.js 0.10 has enumerable non-index properties on buffers.
5973
+ (isBuff && (key == 'offset' || key == 'parent')) ||
5974
+ // PhantomJS 2 has enumerable non-index properties on typed arrays.
5975
+ (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
5976
+ // Skip index properties.
5977
+ isIndex(key, length)
5978
+ ))) {
5979
+ result.push(key);
5980
+ }
5981
+ }
5982
+ return result;
5983
+ }
5984
+
5985
+ /**
5986
+ * Creates a unary function that invokes `func` with its argument transformed.
5987
+ *
5988
+ * @private
5989
+ * @param {Function} func The function to wrap.
5990
+ * @param {Function} transform The argument transform.
5991
+ * @returns {Function} Returns the new function.
5992
+ */
5993
+ function overArg(func, transform) {
5994
+ return function(arg) {
5995
+ return func(transform(arg));
5996
+ };
5997
+ }
5998
+
5999
+ /* Built-in method references for those with the same name as other `lodash` methods. */
6000
+ var nativeKeys = overArg(Object.keys, Object);
6001
+
6002
+ var nativeKeys$1 = nativeKeys;
6003
+
6004
+ /** Used for built-in method references. */
6005
+ var objectProto$5 = Object.prototype;
6006
+
6007
+ /** Used to check objects for own properties. */
6008
+ var hasOwnProperty$4 = objectProto$5.hasOwnProperty;
6009
+
6010
+ /**
6011
+ * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
6012
+ *
6013
+ * @private
6014
+ * @param {Object} object The object to query.
6015
+ * @returns {Array} Returns the array of property names.
6016
+ */
6017
+ function baseKeys(object) {
6018
+ if (!isPrototype(object)) {
6019
+ return nativeKeys$1(object);
6020
+ }
6021
+ var result = [];
6022
+ for (var key in Object(object)) {
6023
+ if (hasOwnProperty$4.call(object, key) && key != 'constructor') {
6024
+ result.push(key);
6025
+ }
6026
+ }
6027
+ return result;
6028
+ }
6029
+
6030
+ /**
6031
+ * Creates an array of the own enumerable property names of `object`.
6032
+ *
6033
+ * **Note:** Non-object values are coerced to objects. See the
6034
+ * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
6035
+ * for more details.
6036
+ *
6037
+ * @static
6038
+ * @since 0.1.0
6039
+ * @memberOf _
6040
+ * @category Object
6041
+ * @param {Object} object The object to query.
6042
+ * @returns {Array} Returns the array of property names.
6043
+ * @example
6044
+ *
6045
+ * function Foo() {
6046
+ * this.a = 1;
6047
+ * this.b = 2;
6048
+ * }
6049
+ *
6050
+ * Foo.prototype.c = 3;
6051
+ *
6052
+ * _.keys(new Foo);
6053
+ * // => ['a', 'b'] (iteration order is not guaranteed)
6054
+ *
6055
+ * _.keys('hi');
6056
+ * // => ['0', '1']
6057
+ */
6058
+ function keys(object) {
6059
+ return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
6060
+ }
6061
+
6062
+ /* Built-in method references that are verified to be native. */
6063
+ var nativeCreate = getNative(Object, 'create');
6064
+
6065
+ var nativeCreate$1 = nativeCreate;
6066
+
6067
+ /**
6068
+ * Removes all key-value entries from the hash.
6069
+ *
6070
+ * @private
6071
+ * @name clear
6072
+ * @memberOf Hash
6073
+ */
6074
+ function hashClear() {
6075
+ this.__data__ = nativeCreate$1 ? nativeCreate$1(null) : {};
6076
+ this.size = 0;
6077
+ }
6078
+
6079
+ /**
6080
+ * Removes `key` and its value from the hash.
6081
+ *
6082
+ * @private
6083
+ * @name delete
6084
+ * @memberOf Hash
6085
+ * @param {Object} hash The hash to modify.
6086
+ * @param {string} key The key of the value to remove.
6087
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
6088
+ */
6089
+ function hashDelete(key) {
6090
+ var result = this.has(key) && delete this.__data__[key];
6091
+ this.size -= result ? 1 : 0;
6092
+ return result;
6093
+ }
6094
+
6095
+ /** Used to stand-in for `undefined` hash values. */
6096
+ var HASH_UNDEFINED$2 = '__lodash_hash_undefined__';
6097
+
6098
+ /** Used for built-in method references. */
6099
+ var objectProto$4 = Object.prototype;
6100
+
6101
+ /** Used to check objects for own properties. */
6102
+ var hasOwnProperty$3 = objectProto$4.hasOwnProperty;
6103
+
6104
+ /**
6105
+ * Gets the hash value for `key`.
6106
+ *
6107
+ * @private
6108
+ * @name get
6109
+ * @memberOf Hash
6110
+ * @param {string} key The key of the value to get.
6111
+ * @returns {*} Returns the entry value.
6112
+ */
6113
+ function hashGet(key) {
6114
+ var data = this.__data__;
6115
+ if (nativeCreate$1) {
6116
+ var result = data[key];
6117
+ return result === HASH_UNDEFINED$2 ? undefined : result;
6118
+ }
6119
+ return hasOwnProperty$3.call(data, key) ? data[key] : undefined;
6120
+ }
6121
+
6122
+ /** Used for built-in method references. */
6123
+ var objectProto$3 = Object.prototype;
6124
+
6125
+ /** Used to check objects for own properties. */
6126
+ var hasOwnProperty$2 = objectProto$3.hasOwnProperty;
6127
+
6128
+ /**
6129
+ * Checks if a hash value for `key` exists.
6130
+ *
6131
+ * @private
6132
+ * @name has
6133
+ * @memberOf Hash
6134
+ * @param {string} key The key of the entry to check.
6135
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
6136
+ */
6137
+ function hashHas(key) {
6138
+ var data = this.__data__;
6139
+ return nativeCreate$1 ? (data[key] !== undefined) : hasOwnProperty$2.call(data, key);
6140
+ }
6141
+
6142
+ /** Used to stand-in for `undefined` hash values. */
6143
+ var HASH_UNDEFINED$1 = '__lodash_hash_undefined__';
6144
+
6145
+ /**
6146
+ * Sets the hash `key` to `value`.
6147
+ *
6148
+ * @private
6149
+ * @name set
6150
+ * @memberOf Hash
6151
+ * @param {string} key The key of the value to set.
6152
+ * @param {*} value The value to set.
6153
+ * @returns {Object} Returns the hash instance.
6154
+ */
6155
+ function hashSet(key, value) {
6156
+ var data = this.__data__;
6157
+ this.size += this.has(key) ? 0 : 1;
6158
+ data[key] = (nativeCreate$1 && value === undefined) ? HASH_UNDEFINED$1 : value;
6159
+ return this;
6160
+ }
6161
+
6162
+ /**
6163
+ * Creates a hash object.
6164
+ *
6165
+ * @private
6166
+ * @constructor
6167
+ * @param {Array} [entries] The key-value pairs to cache.
6168
+ */
6169
+ function Hash(entries) {
6170
+ var index = -1,
6171
+ length = entries == null ? 0 : entries.length;
6172
+
6173
+ this.clear();
6174
+ while (++index < length) {
6175
+ var entry = entries[index];
6176
+ this.set(entry[0], entry[1]);
6177
+ }
6178
+ }
6179
+
6180
+ // Add methods to `Hash`.
6181
+ Hash.prototype.clear = hashClear;
6182
+ Hash.prototype['delete'] = hashDelete;
6183
+ Hash.prototype.get = hashGet;
6184
+ Hash.prototype.has = hashHas;
6185
+ Hash.prototype.set = hashSet;
6186
+
6187
+ /**
6188
+ * Removes all key-value entries from the list cache.
6189
+ *
6190
+ * @private
6191
+ * @name clear
6192
+ * @memberOf ListCache
6193
+ */
6194
+ function listCacheClear() {
6195
+ this.__data__ = [];
6196
+ this.size = 0;
6197
+ }
6198
+
6199
+ /**
6200
+ * Gets the index at which the `key` is found in `array` of key-value pairs.
6201
+ *
6202
+ * @private
6203
+ * @param {Array} array The array to inspect.
6204
+ * @param {*} key The key to search for.
6205
+ * @returns {number} Returns the index of the matched value, else `-1`.
6206
+ */
6207
+ function assocIndexOf(array, key) {
6208
+ var length = array.length;
6209
+ while (length--) {
6210
+ if (eq(array[length][0], key)) {
6211
+ return length;
6212
+ }
6213
+ }
6214
+ return -1;
6215
+ }
6216
+
6217
+ /** Used for built-in method references. */
6218
+ var arrayProto = Array.prototype;
6219
+
6220
+ /** Built-in value references. */
6221
+ var splice = arrayProto.splice;
6222
+
6223
+ /**
6224
+ * Removes `key` and its value from the list cache.
6225
+ *
6226
+ * @private
6227
+ * @name delete
6228
+ * @memberOf ListCache
6229
+ * @param {string} key The key of the value to remove.
6230
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
6231
+ */
6232
+ function listCacheDelete(key) {
6233
+ var data = this.__data__,
6234
+ index = assocIndexOf(data, key);
6235
+
6236
+ if (index < 0) {
6237
+ return false;
6238
+ }
6239
+ var lastIndex = data.length - 1;
6240
+ if (index == lastIndex) {
6241
+ data.pop();
6242
+ } else {
6243
+ splice.call(data, index, 1);
6244
+ }
6245
+ --this.size;
6246
+ return true;
6247
+ }
6248
+
6249
+ /**
6250
+ * Gets the list cache value for `key`.
6251
+ *
6252
+ * @private
6253
+ * @name get
6254
+ * @memberOf ListCache
6255
+ * @param {string} key The key of the value to get.
6256
+ * @returns {*} Returns the entry value.
6257
+ */
6258
+ function listCacheGet(key) {
6259
+ var data = this.__data__,
6260
+ index = assocIndexOf(data, key);
6261
+
6262
+ return index < 0 ? undefined : data[index][1];
6263
+ }
6264
+
6265
+ /**
6266
+ * Checks if a list cache value for `key` exists.
6267
+ *
6268
+ * @private
6269
+ * @name has
6270
+ * @memberOf ListCache
6271
+ * @param {string} key The key of the entry to check.
6272
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
6273
+ */
6274
+ function listCacheHas(key) {
6275
+ return assocIndexOf(this.__data__, key) > -1;
6276
+ }
6277
+
6278
+ /**
6279
+ * Sets the list cache `key` to `value`.
6280
+ *
6281
+ * @private
6282
+ * @name set
6283
+ * @memberOf ListCache
6284
+ * @param {string} key The key of the value to set.
6285
+ * @param {*} value The value to set.
6286
+ * @returns {Object} Returns the list cache instance.
6287
+ */
6288
+ function listCacheSet(key, value) {
6289
+ var data = this.__data__,
6290
+ index = assocIndexOf(data, key);
6291
+
6292
+ if (index < 0) {
6293
+ ++this.size;
6294
+ data.push([key, value]);
6295
+ } else {
6296
+ data[index][1] = value;
6297
+ }
6298
+ return this;
6299
+ }
6300
+
6301
+ /**
6302
+ * Creates an list cache object.
6303
+ *
6304
+ * @private
6305
+ * @constructor
6306
+ * @param {Array} [entries] The key-value pairs to cache.
6307
+ */
6308
+ function ListCache(entries) {
6309
+ var index = -1,
6310
+ length = entries == null ? 0 : entries.length;
6311
+
6312
+ this.clear();
6313
+ while (++index < length) {
6314
+ var entry = entries[index];
6315
+ this.set(entry[0], entry[1]);
6316
+ }
6317
+ }
6318
+
6319
+ // Add methods to `ListCache`.
6320
+ ListCache.prototype.clear = listCacheClear;
6321
+ ListCache.prototype['delete'] = listCacheDelete;
6322
+ ListCache.prototype.get = listCacheGet;
6323
+ ListCache.prototype.has = listCacheHas;
6324
+ ListCache.prototype.set = listCacheSet;
6325
+
6326
+ /* Built-in method references that are verified to be native. */
6327
+ var Map$1 = getNative(root$1, 'Map');
6328
+
6329
+ var Map$2 = Map$1;
6330
+
6331
+ /**
6332
+ * Removes all key-value entries from the map.
6333
+ *
6334
+ * @private
6335
+ * @name clear
6336
+ * @memberOf MapCache
6337
+ */
6338
+ function mapCacheClear() {
6339
+ this.size = 0;
6340
+ this.__data__ = {
6341
+ 'hash': new Hash,
6342
+ 'map': new (Map$2 || ListCache),
6343
+ 'string': new Hash
6344
+ };
6345
+ }
6346
+
6347
+ /**
6348
+ * Checks if `value` is suitable for use as unique object key.
6349
+ *
6350
+ * @private
6351
+ * @param {*} value The value to check.
6352
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
6353
+ */
6354
+ function isKeyable(value) {
6355
+ var type = typeof value;
6356
+ return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
6357
+ ? (value !== '__proto__')
6358
+ : (value === null);
6359
+ }
6360
+
6361
+ /**
6362
+ * Gets the data for `map`.
6363
+ *
6364
+ * @private
6365
+ * @param {Object} map The map to query.
6366
+ * @param {string} key The reference key.
6367
+ * @returns {*} Returns the map data.
6368
+ */
6369
+ function getMapData(map, key) {
6370
+ var data = map.__data__;
6371
+ return isKeyable(key)
6372
+ ? data[typeof key == 'string' ? 'string' : 'hash']
6373
+ : data.map;
6374
+ }
6375
+
6376
+ /**
6377
+ * Removes `key` and its value from the map.
6378
+ *
6379
+ * @private
6380
+ * @name delete
6381
+ * @memberOf MapCache
6382
+ * @param {string} key The key of the value to remove.
6383
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
6384
+ */
6385
+ function mapCacheDelete(key) {
6386
+ var result = getMapData(this, key)['delete'](key);
6387
+ this.size -= result ? 1 : 0;
6388
+ return result;
6389
+ }
6390
+
6391
+ /**
6392
+ * Gets the map value for `key`.
6393
+ *
6394
+ * @private
6395
+ * @name get
6396
+ * @memberOf MapCache
6397
+ * @param {string} key The key of the value to get.
6398
+ * @returns {*} Returns the entry value.
6399
+ */
6400
+ function mapCacheGet(key) {
6401
+ return getMapData(this, key).get(key);
6402
+ }
6403
+
6404
+ /**
6405
+ * Checks if a map value for `key` exists.
6406
+ *
6407
+ * @private
6408
+ * @name has
6409
+ * @memberOf MapCache
6410
+ * @param {string} key The key of the entry to check.
6411
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
6412
+ */
6413
+ function mapCacheHas(key) {
6414
+ return getMapData(this, key).has(key);
6415
+ }
6416
+
6417
+ /**
6418
+ * Sets the map `key` to `value`.
6419
+ *
6420
+ * @private
6421
+ * @name set
6422
+ * @memberOf MapCache
6423
+ * @param {string} key The key of the value to set.
6424
+ * @param {*} value The value to set.
6425
+ * @returns {Object} Returns the map cache instance.
6426
+ */
6427
+ function mapCacheSet(key, value) {
6428
+ var data = getMapData(this, key),
6429
+ size = data.size;
6430
+
6431
+ data.set(key, value);
6432
+ this.size += data.size == size ? 0 : 1;
6433
+ return this;
6434
+ }
6435
+
6436
+ /**
6437
+ * Creates a map cache object to store key-value pairs.
6438
+ *
6439
+ * @private
6440
+ * @constructor
6441
+ * @param {Array} [entries] The key-value pairs to cache.
6442
+ */
6443
+ function MapCache(entries) {
6444
+ var index = -1,
6445
+ length = entries == null ? 0 : entries.length;
6446
+
6447
+ this.clear();
6448
+ while (++index < length) {
6449
+ var entry = entries[index];
6450
+ this.set(entry[0], entry[1]);
6451
+ }
6452
+ }
6453
+
6454
+ // Add methods to `MapCache`.
6455
+ MapCache.prototype.clear = mapCacheClear;
6456
+ MapCache.prototype['delete'] = mapCacheDelete;
6457
+ MapCache.prototype.get = mapCacheGet;
6458
+ MapCache.prototype.has = mapCacheHas;
6459
+ MapCache.prototype.set = mapCacheSet;
6460
+
6461
+ /**
6462
+ * Appends the elements of `values` to `array`.
6463
+ *
6464
+ * @private
6465
+ * @param {Array} array The array to modify.
6466
+ * @param {Array} values The values to append.
6467
+ * @returns {Array} Returns `array`.
6468
+ */
6469
+ function arrayPush(array, values) {
6470
+ var index = -1,
6471
+ length = values.length,
6472
+ offset = array.length;
6473
+
6474
+ while (++index < length) {
6475
+ array[offset + index] = values[index];
6476
+ }
6477
+ return array;
6478
+ }
6479
+
6480
+ /**
6481
+ * Removes all key-value entries from the stack.
6482
+ *
6483
+ * @private
6484
+ * @name clear
6485
+ * @memberOf Stack
6486
+ */
6487
+ function stackClear() {
6488
+ this.__data__ = new ListCache;
6489
+ this.size = 0;
6490
+ }
6491
+
6492
+ /**
6493
+ * Removes `key` and its value from the stack.
6494
+ *
6495
+ * @private
6496
+ * @name delete
6497
+ * @memberOf Stack
6498
+ * @param {string} key The key of the value to remove.
6499
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
6500
+ */
6501
+ function stackDelete(key) {
6502
+ var data = this.__data__,
6503
+ result = data['delete'](key);
6504
+
6505
+ this.size = data.size;
6506
+ return result;
6507
+ }
6508
+
6509
+ /**
6510
+ * Gets the stack value for `key`.
6511
+ *
6512
+ * @private
6513
+ * @name get
6514
+ * @memberOf Stack
6515
+ * @param {string} key The key of the value to get.
6516
+ * @returns {*} Returns the entry value.
6517
+ */
6518
+ function stackGet(key) {
6519
+ return this.__data__.get(key);
6520
+ }
6521
+
6522
+ /**
6523
+ * Checks if a stack value for `key` exists.
6524
+ *
6525
+ * @private
6526
+ * @name has
6527
+ * @memberOf Stack
6528
+ * @param {string} key The key of the entry to check.
6529
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
6530
+ */
6531
+ function stackHas(key) {
6532
+ return this.__data__.has(key);
6533
+ }
6534
+
6535
+ /** Used as the size to enable large array optimizations. */
6536
+ var LARGE_ARRAY_SIZE = 200;
6537
+
6538
+ /**
6539
+ * Sets the stack `key` to `value`.
6540
+ *
6541
+ * @private
6542
+ * @name set
6543
+ * @memberOf Stack
6544
+ * @param {string} key The key of the value to set.
6545
+ * @param {*} value The value to set.
6546
+ * @returns {Object} Returns the stack cache instance.
6547
+ */
6548
+ function stackSet(key, value) {
6549
+ var data = this.__data__;
6550
+ if (data instanceof ListCache) {
6551
+ var pairs = data.__data__;
6552
+ if (!Map$2 || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
6553
+ pairs.push([key, value]);
6554
+ this.size = ++data.size;
6555
+ return this;
6556
+ }
6557
+ data = this.__data__ = new MapCache(pairs);
6558
+ }
6559
+ data.set(key, value);
6560
+ this.size = data.size;
6561
+ return this;
6562
+ }
6563
+
6564
+ /**
6565
+ * Creates a stack cache object to store key-value pairs.
6566
+ *
6567
+ * @private
6568
+ * @constructor
6569
+ * @param {Array} [entries] The key-value pairs to cache.
6570
+ */
6571
+ function Stack(entries) {
6572
+ var data = this.__data__ = new ListCache(entries);
6573
+ this.size = data.size;
6574
+ }
6575
+
6576
+ // Add methods to `Stack`.
6577
+ Stack.prototype.clear = stackClear;
6578
+ Stack.prototype['delete'] = stackDelete;
6579
+ Stack.prototype.get = stackGet;
6580
+ Stack.prototype.has = stackHas;
6581
+ Stack.prototype.set = stackSet;
6582
+
6583
+ /**
6584
+ * A specialized version of `_.filter` for arrays without support for
6585
+ * iteratee shorthands.
6586
+ *
6587
+ * @private
6588
+ * @param {Array} [array] The array to iterate over.
6589
+ * @param {Function} predicate The function invoked per iteration.
6590
+ * @returns {Array} Returns the new filtered array.
6591
+ */
6592
+ function arrayFilter(array, predicate) {
6593
+ var index = -1,
6594
+ length = array == null ? 0 : array.length,
6595
+ resIndex = 0,
6596
+ result = [];
6597
+
6598
+ while (++index < length) {
6599
+ var value = array[index];
6600
+ if (predicate(value, index, array)) {
6601
+ result[resIndex++] = value;
6602
+ }
6603
+ }
6604
+ return result;
6605
+ }
6606
+
6607
+ /**
6608
+ * This method returns a new empty array.
6609
+ *
6610
+ * @static
6611
+ * @memberOf _
6612
+ * @since 4.13.0
6613
+ * @category Util
6614
+ * @returns {Array} Returns the new empty array.
6615
+ * @example
6616
+ *
6617
+ * var arrays = _.times(2, _.stubArray);
6618
+ *
6619
+ * console.log(arrays);
6620
+ * // => [[], []]
6621
+ *
6622
+ * console.log(arrays[0] === arrays[1]);
6623
+ * // => false
6624
+ */
6625
+ function stubArray() {
6626
+ return [];
6627
+ }
6628
+
6629
+ /** Used for built-in method references. */
6630
+ var objectProto$2 = Object.prototype;
6631
+
6632
+ /** Built-in value references. */
6633
+ var propertyIsEnumerable = objectProto$2.propertyIsEnumerable;
6634
+
6635
+ /* Built-in method references for those with the same name as other `lodash` methods. */
6636
+ var nativeGetSymbols = Object.getOwnPropertySymbols;
6637
+
6638
+ /**
6639
+ * Creates an array of the own enumerable symbols of `object`.
6640
+ *
6641
+ * @private
6642
+ * @param {Object} object The object to query.
6643
+ * @returns {Array} Returns the array of symbols.
6644
+ */
6645
+ var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
6646
+ if (object == null) {
6647
+ return [];
6648
+ }
6649
+ object = Object(object);
6650
+ return arrayFilter(nativeGetSymbols(object), function(symbol) {
6651
+ return propertyIsEnumerable.call(object, symbol);
6652
+ });
6653
+ };
6654
+
6655
+ var getSymbols$1 = getSymbols;
6656
+
6657
+ /**
6658
+ * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
6659
+ * `keysFunc` and `symbolsFunc` to get the enumerable property names and
6660
+ * symbols of `object`.
6661
+ *
6662
+ * @private
6663
+ * @param {Object} object The object to query.
6664
+ * @param {Function} keysFunc The function to get the keys of `object`.
6665
+ * @param {Function} symbolsFunc The function to get the symbols of `object`.
6666
+ * @returns {Array} Returns the array of property names and symbols.
6667
+ */
6668
+ function baseGetAllKeys(object, keysFunc, symbolsFunc) {
6669
+ var result = keysFunc(object);
6670
+ return isArray$1(object) ? result : arrayPush(result, symbolsFunc(object));
6671
+ }
6672
+
6673
+ /**
6674
+ * Creates an array of own enumerable property names and symbols of `object`.
6675
+ *
6676
+ * @private
6677
+ * @param {Object} object The object to query.
6678
+ * @returns {Array} Returns the array of property names and symbols.
6679
+ */
6680
+ function getAllKeys(object) {
6681
+ return baseGetAllKeys(object, keys, getSymbols$1);
6682
+ }
6683
+
6684
+ /* Built-in method references that are verified to be native. */
6685
+ var DataView = getNative(root$1, 'DataView');
6686
+
6687
+ var DataView$1 = DataView;
6688
+
6689
+ /* Built-in method references that are verified to be native. */
6690
+ var Promise$1 = getNative(root$1, 'Promise');
6691
+
6692
+ var Promise$2 = Promise$1;
6693
+
6694
+ /* Built-in method references that are verified to be native. */
6695
+ var Set$1 = getNative(root$1, 'Set');
6696
+
6697
+ var Set$2 = Set$1;
6698
+
6699
+ /** `Object#toString` result references. */
6700
+ var mapTag$1 = '[object Map]',
6701
+ objectTag$1 = '[object Object]',
6702
+ promiseTag = '[object Promise]',
6703
+ setTag$1 = '[object Set]',
6704
+ weakMapTag = '[object WeakMap]';
6705
+
6706
+ var dataViewTag$1 = '[object DataView]';
6707
+
6708
+ /** Used to detect maps, sets, and weakmaps. */
6709
+ var dataViewCtorString = toSource(DataView$1),
6710
+ mapCtorString = toSource(Map$2),
6711
+ promiseCtorString = toSource(Promise$2),
6712
+ setCtorString = toSource(Set$2),
6713
+ weakMapCtorString = toSource(WeakMap$2);
6714
+
6715
+ /**
6716
+ * Gets the `toStringTag` of `value`.
6717
+ *
6718
+ * @private
6719
+ * @param {*} value The value to query.
6720
+ * @returns {string} Returns the `toStringTag`.
6721
+ */
6722
+ var getTag = baseGetTag;
6723
+
6724
+ // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
6725
+ if ((DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$1) ||
6726
+ (Map$2 && getTag(new Map$2) != mapTag$1) ||
6727
+ (Promise$2 && getTag(Promise$2.resolve()) != promiseTag) ||
6728
+ (Set$2 && getTag(new Set$2) != setTag$1) ||
6729
+ (WeakMap$2 && getTag(new WeakMap$2) != weakMapTag)) {
6730
+ getTag = function(value) {
6731
+ var result = baseGetTag(value),
6732
+ Ctor = result == objectTag$1 ? value.constructor : undefined,
6733
+ ctorString = Ctor ? toSource(Ctor) : '';
6734
+
6735
+ if (ctorString) {
6736
+ switch (ctorString) {
6737
+ case dataViewCtorString: return dataViewTag$1;
6738
+ case mapCtorString: return mapTag$1;
6739
+ case promiseCtorString: return promiseTag;
6740
+ case setCtorString: return setTag$1;
6741
+ case weakMapCtorString: return weakMapTag;
6742
+ }
6743
+ }
6744
+ return result;
6745
+ };
6746
+ }
6747
+
6748
+ var getTag$1 = getTag;
6749
+
6750
+ /** Built-in value references. */
6751
+ var Uint8Array = root$1.Uint8Array;
6752
+
6753
+ var Uint8Array$1 = Uint8Array;
6754
+
6755
+ /** Used to stand-in for `undefined` hash values. */
6756
+ var HASH_UNDEFINED = '__lodash_hash_undefined__';
6757
+
6758
+ /**
6759
+ * Adds `value` to the array cache.
6760
+ *
6761
+ * @private
6762
+ * @name add
6763
+ * @memberOf SetCache
6764
+ * @alias push
6765
+ * @param {*} value The value to cache.
6766
+ * @returns {Object} Returns the cache instance.
6767
+ */
6768
+ function setCacheAdd(value) {
6769
+ this.__data__.set(value, HASH_UNDEFINED);
6770
+ return this;
6771
+ }
6772
+
6773
+ /**
6774
+ * Checks if `value` is in the array cache.
6775
+ *
6776
+ * @private
6777
+ * @name has
6778
+ * @memberOf SetCache
6779
+ * @param {*} value The value to search for.
6780
+ * @returns {number} Returns `true` if `value` is found, else `false`.
6781
+ */
6782
+ function setCacheHas(value) {
6783
+ return this.__data__.has(value);
6784
+ }
6785
+
6786
+ /**
6787
+ *
6788
+ * Creates an array cache object to store unique values.
6789
+ *
6790
+ * @private
6791
+ * @constructor
6792
+ * @param {Array} [values] The values to cache.
6793
+ */
6794
+ function SetCache(values) {
6795
+ var index = -1,
6796
+ length = values == null ? 0 : values.length;
5242
6797
 
5243
- /** Used to check objects for own properties. */
5244
- var hasOwnProperty = objectProto$1.hasOwnProperty;
6798
+ this.__data__ = new MapCache;
6799
+ while (++index < length) {
6800
+ this.add(values[index]);
6801
+ }
6802
+ }
6803
+
6804
+ // Add methods to `SetCache`.
6805
+ SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
6806
+ SetCache.prototype.has = setCacheHas;
5245
6807
 
5246
6808
  /**
5247
- * Used to resolve the
5248
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
5249
- * of values.
6809
+ * A specialized version of `_.some` for arrays without support for iteratee
6810
+ * shorthands.
6811
+ *
6812
+ * @private
6813
+ * @param {Array} [array] The array to iterate over.
6814
+ * @param {Function} predicate The function invoked per iteration.
6815
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
6816
+ * else `false`.
5250
6817
  */
5251
- var nativeObjectToString$1 = objectProto$1.toString;
6818
+ function arraySome(array, predicate) {
6819
+ var index = -1,
6820
+ length = array == null ? 0 : array.length;
5252
6821
 
5253
- /** Built-in value references. */
5254
- var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
6822
+ while (++index < length) {
6823
+ if (predicate(array[index], index, array)) {
6824
+ return true;
6825
+ }
6826
+ }
6827
+ return false;
6828
+ }
5255
6829
 
5256
6830
  /**
5257
- * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
6831
+ * Checks if a `cache` value for `key` exists.
5258
6832
  *
5259
6833
  * @private
5260
- * @param {*} value The value to query.
5261
- * @returns {string} Returns the raw `toStringTag`.
6834
+ * @param {Object} cache The cache to query.
6835
+ * @param {string} key The key of the entry to check.
6836
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
5262
6837
  */
5263
- function getRawTag(value) {
5264
- var isOwn = hasOwnProperty.call(value, symToStringTag$1),
5265
- tag = value[symToStringTag$1];
6838
+ function cacheHas(cache, key) {
6839
+ return cache.has(key);
6840
+ }
5266
6841
 
5267
- try {
5268
- value[symToStringTag$1] = undefined;
5269
- var unmasked = true;
5270
- } catch (e) {}
6842
+ /** Used to compose bitmasks for value comparisons. */
6843
+ var COMPARE_PARTIAL_FLAG$3 = 1,
6844
+ COMPARE_UNORDERED_FLAG$1 = 2;
5271
6845
 
5272
- var result = nativeObjectToString$1.call(value);
5273
- if (unmasked) {
5274
- if (isOwn) {
5275
- value[symToStringTag$1] = tag;
5276
- } else {
5277
- delete value[symToStringTag$1];
6846
+ /**
6847
+ * A specialized version of `baseIsEqualDeep` for arrays with support for
6848
+ * partial deep comparisons.
6849
+ *
6850
+ * @private
6851
+ * @param {Array} array The array to compare.
6852
+ * @param {Array} other The other array to compare.
6853
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
6854
+ * @param {Function} customizer The function to customize comparisons.
6855
+ * @param {Function} equalFunc The function to determine equivalents of values.
6856
+ * @param {Object} stack Tracks traversed `array` and `other` objects.
6857
+ * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
6858
+ */
6859
+ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
6860
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3,
6861
+ arrLength = array.length,
6862
+ othLength = other.length;
6863
+
6864
+ if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
6865
+ return false;
6866
+ }
6867
+ // Check that cyclic values are equal.
6868
+ var arrStacked = stack.get(array);
6869
+ var othStacked = stack.get(other);
6870
+ if (arrStacked && othStacked) {
6871
+ return arrStacked == other && othStacked == array;
6872
+ }
6873
+ var index = -1,
6874
+ result = true,
6875
+ seen = (bitmask & COMPARE_UNORDERED_FLAG$1) ? new SetCache : undefined;
6876
+
6877
+ stack.set(array, other);
6878
+ stack.set(other, array);
6879
+
6880
+ // Ignore non-index properties.
6881
+ while (++index < arrLength) {
6882
+ var arrValue = array[index],
6883
+ othValue = other[index];
6884
+
6885
+ if (customizer) {
6886
+ var compared = isPartial
6887
+ ? customizer(othValue, arrValue, index, other, array, stack)
6888
+ : customizer(arrValue, othValue, index, array, other, stack);
6889
+ }
6890
+ if (compared !== undefined) {
6891
+ if (compared) {
6892
+ continue;
6893
+ }
6894
+ result = false;
6895
+ break;
6896
+ }
6897
+ // Recursively compare arrays (susceptible to call stack limits).
6898
+ if (seen) {
6899
+ if (!arraySome(other, function(othValue, othIndex) {
6900
+ if (!cacheHas(seen, othIndex) &&
6901
+ (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
6902
+ return seen.push(othIndex);
6903
+ }
6904
+ })) {
6905
+ result = false;
6906
+ break;
6907
+ }
6908
+ } else if (!(
6909
+ arrValue === othValue ||
6910
+ equalFunc(arrValue, othValue, bitmask, customizer, stack)
6911
+ )) {
6912
+ result = false;
6913
+ break;
5278
6914
  }
5279
6915
  }
6916
+ stack['delete'](array);
6917
+ stack['delete'](other);
5280
6918
  return result;
5281
6919
  }
5282
6920
 
5283
- /** Used for built-in method references. */
5284
- var objectProto = Object.prototype;
5285
-
5286
6921
  /**
5287
- * Used to resolve the
5288
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
5289
- * of values.
6922
+ * Converts `map` to its key-value pairs.
6923
+ *
6924
+ * @private
6925
+ * @param {Object} map The map to convert.
6926
+ * @returns {Array} Returns the key-value pairs.
5290
6927
  */
5291
- var nativeObjectToString = objectProto.toString;
6928
+ function mapToArray(map) {
6929
+ var index = -1,
6930
+ result = Array(map.size);
6931
+
6932
+ map.forEach(function(value, key) {
6933
+ result[++index] = [key, value];
6934
+ });
6935
+ return result;
6936
+ }
5292
6937
 
5293
6938
  /**
5294
- * Converts `value` to a string using `Object.prototype.toString`.
6939
+ * Converts `set` to an array of its values.
5295
6940
  *
5296
6941
  * @private
5297
- * @param {*} value The value to convert.
5298
- * @returns {string} Returns the converted string.
6942
+ * @param {Object} set The set to convert.
6943
+ * @returns {Array} Returns the values.
5299
6944
  */
5300
- function objectToString(value) {
5301
- return nativeObjectToString.call(value);
6945
+ function setToArray(set) {
6946
+ var index = -1,
6947
+ result = Array(set.size);
6948
+
6949
+ set.forEach(function(value) {
6950
+ result[++index] = value;
6951
+ });
6952
+ return result;
5302
6953
  }
5303
6954
 
5304
- /** `Object#toString` result references. */
5305
- var nullTag = '[object Null]',
5306
- undefinedTag = '[object Undefined]';
6955
+ /** Used to compose bitmasks for value comparisons. */
6956
+ var COMPARE_PARTIAL_FLAG$2 = 1,
6957
+ COMPARE_UNORDERED_FLAG = 2;
5307
6958
 
5308
- /** Built-in value references. */
5309
- var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined;
6959
+ /** `Object#toString` result references. */
6960
+ var boolTag = '[object Boolean]',
6961
+ dateTag = '[object Date]',
6962
+ errorTag = '[object Error]',
6963
+ mapTag = '[object Map]',
6964
+ numberTag = '[object Number]',
6965
+ regexpTag = '[object RegExp]',
6966
+ setTag = '[object Set]',
6967
+ stringTag$1 = '[object String]',
6968
+ symbolTag = '[object Symbol]';
6969
+
6970
+ var arrayBufferTag = '[object ArrayBuffer]',
6971
+ dataViewTag = '[object DataView]';
6972
+
6973
+ /** Used to convert symbols to primitives and strings. */
6974
+ var symbolProto = Symbol$1 ? Symbol$1.prototype : undefined,
6975
+ symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
5310
6976
 
5311
6977
  /**
5312
- * The base implementation of `getTag` without fallbacks for buggy environments.
6978
+ * A specialized version of `baseIsEqualDeep` for comparing objects of
6979
+ * the same `toStringTag`.
6980
+ *
6981
+ * **Note:** This function only supports comparing values with tags of
6982
+ * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
5313
6983
  *
5314
6984
  * @private
5315
- * @param {*} value The value to query.
5316
- * @returns {string} Returns the `toStringTag`.
6985
+ * @param {Object} object The object to compare.
6986
+ * @param {Object} other The other object to compare.
6987
+ * @param {string} tag The `toStringTag` of the objects to compare.
6988
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
6989
+ * @param {Function} customizer The function to customize comparisons.
6990
+ * @param {Function} equalFunc The function to determine equivalents of values.
6991
+ * @param {Object} stack Tracks traversed `object` and `other` objects.
6992
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
5317
6993
  */
5318
- function baseGetTag(value) {
5319
- if (value == null) {
5320
- return value === undefined ? undefinedTag : nullTag;
6994
+ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
6995
+ switch (tag) {
6996
+ case dataViewTag:
6997
+ if ((object.byteLength != other.byteLength) ||
6998
+ (object.byteOffset != other.byteOffset)) {
6999
+ return false;
7000
+ }
7001
+ object = object.buffer;
7002
+ other = other.buffer;
7003
+
7004
+ case arrayBufferTag:
7005
+ if ((object.byteLength != other.byteLength) ||
7006
+ !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) {
7007
+ return false;
7008
+ }
7009
+ return true;
7010
+
7011
+ case boolTag:
7012
+ case dateTag:
7013
+ case numberTag:
7014
+ // Coerce booleans to `1` or `0` and dates to milliseconds.
7015
+ // Invalid dates are coerced to `NaN`.
7016
+ return eq(+object, +other);
7017
+
7018
+ case errorTag:
7019
+ return object.name == other.name && object.message == other.message;
7020
+
7021
+ case regexpTag:
7022
+ case stringTag$1:
7023
+ // Coerce regexes to strings and treat strings, primitives and objects,
7024
+ // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
7025
+ // for more details.
7026
+ return object == (other + '');
7027
+
7028
+ case mapTag:
7029
+ var convert = mapToArray;
7030
+
7031
+ case setTag:
7032
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2;
7033
+ convert || (convert = setToArray);
7034
+
7035
+ if (object.size != other.size && !isPartial) {
7036
+ return false;
7037
+ }
7038
+ // Assume cyclic values are equal.
7039
+ var stacked = stack.get(object);
7040
+ if (stacked) {
7041
+ return stacked == other;
7042
+ }
7043
+ bitmask |= COMPARE_UNORDERED_FLAG;
7044
+
7045
+ // Recursively compare objects (susceptible to call stack limits).
7046
+ stack.set(object, other);
7047
+ var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
7048
+ stack['delete'](object);
7049
+ return result;
7050
+
7051
+ case symbolTag:
7052
+ if (symbolValueOf) {
7053
+ return symbolValueOf.call(object) == symbolValueOf.call(other);
7054
+ }
5321
7055
  }
5322
- return (symToStringTag && symToStringTag in Object(value))
5323
- ? getRawTag(value)
5324
- : objectToString(value);
7056
+ return false;
5325
7057
  }
5326
7058
 
7059
+ /** Used to compose bitmasks for value comparisons. */
7060
+ var COMPARE_PARTIAL_FLAG$1 = 1;
7061
+
7062
+ /** Used for built-in method references. */
7063
+ var objectProto$1 = Object.prototype;
7064
+
7065
+ /** Used to check objects for own properties. */
7066
+ var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
7067
+
5327
7068
  /**
5328
- * Checks if `value` is object-like. A value is object-like if it's not `null`
5329
- * and has a `typeof` result of "object".
5330
- *
5331
- * @static
5332
- * @memberOf _
5333
- * @since 4.0.0
5334
- * @category Lang
5335
- * @param {*} value The value to check.
5336
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
5337
- * @example
7069
+ * A specialized version of `baseIsEqualDeep` for objects with support for
7070
+ * partial deep comparisons.
5338
7071
  *
5339
- * _.isObjectLike({});
5340
- * // => true
5341
- *
5342
- * _.isObjectLike([1, 2, 3]);
5343
- * // => true
5344
- *
5345
- * _.isObjectLike(_.noop);
5346
- * // => false
5347
- *
5348
- * _.isObjectLike(null);
5349
- * // => false
7072
+ * @private
7073
+ * @param {Object} object The object to compare.
7074
+ * @param {Object} other The other object to compare.
7075
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
7076
+ * @param {Function} customizer The function to customize comparisons.
7077
+ * @param {Function} equalFunc The function to determine equivalents of values.
7078
+ * @param {Object} stack Tracks traversed `object` and `other` objects.
7079
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
5350
7080
  */
5351
- function isObjectLike(value) {
5352
- return value != null && typeof value == 'object';
7081
+ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
7082
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1,
7083
+ objProps = getAllKeys(object),
7084
+ objLength = objProps.length,
7085
+ othProps = getAllKeys(other),
7086
+ othLength = othProps.length;
7087
+
7088
+ if (objLength != othLength && !isPartial) {
7089
+ return false;
7090
+ }
7091
+ var index = objLength;
7092
+ while (index--) {
7093
+ var key = objProps[index];
7094
+ if (!(isPartial ? key in other : hasOwnProperty$1.call(other, key))) {
7095
+ return false;
7096
+ }
7097
+ }
7098
+ // Check that cyclic values are equal.
7099
+ var objStacked = stack.get(object);
7100
+ var othStacked = stack.get(other);
7101
+ if (objStacked && othStacked) {
7102
+ return objStacked == other && othStacked == object;
7103
+ }
7104
+ var result = true;
7105
+ stack.set(object, other);
7106
+ stack.set(other, object);
7107
+
7108
+ var skipCtor = isPartial;
7109
+ while (++index < objLength) {
7110
+ key = objProps[index];
7111
+ var objValue = object[key],
7112
+ othValue = other[key];
7113
+
7114
+ if (customizer) {
7115
+ var compared = isPartial
7116
+ ? customizer(othValue, objValue, key, other, object, stack)
7117
+ : customizer(objValue, othValue, key, object, other, stack);
7118
+ }
7119
+ // Recursively compare objects (susceptible to call stack limits).
7120
+ if (!(compared === undefined
7121
+ ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
7122
+ : compared
7123
+ )) {
7124
+ result = false;
7125
+ break;
7126
+ }
7127
+ skipCtor || (skipCtor = key == 'constructor');
7128
+ }
7129
+ if (result && !skipCtor) {
7130
+ var objCtor = object.constructor,
7131
+ othCtor = other.constructor;
7132
+
7133
+ // Non `Object` object instances with different constructors are not equal.
7134
+ if (objCtor != othCtor &&
7135
+ ('constructor' in object && 'constructor' in other) &&
7136
+ !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
7137
+ typeof othCtor == 'function' && othCtor instanceof othCtor)) {
7138
+ result = false;
7139
+ }
7140
+ }
7141
+ stack['delete'](object);
7142
+ stack['delete'](other);
7143
+ return result;
5353
7144
  }
5354
7145
 
7146
+ /** Used to compose bitmasks for value comparisons. */
7147
+ var COMPARE_PARTIAL_FLAG = 1;
7148
+
7149
+ /** `Object#toString` result references. */
7150
+ var argsTag = '[object Arguments]',
7151
+ arrayTag = '[object Array]',
7152
+ objectTag = '[object Object]';
7153
+
7154
+ /** Used for built-in method references. */
7155
+ var objectProto = Object.prototype;
7156
+
7157
+ /** Used to check objects for own properties. */
7158
+ var hasOwnProperty = objectProto.hasOwnProperty;
7159
+
5355
7160
  /**
5356
- * Checks if `value` is classified as an `Array` object.
5357
- *
5358
- * @static
5359
- * @memberOf _
5360
- * @since 0.1.0
5361
- * @category Lang
5362
- * @param {*} value The value to check.
5363
- * @returns {boolean} Returns `true` if `value` is an array, else `false`.
5364
- * @example
5365
- *
5366
- * _.isArray([1, 2, 3]);
5367
- * // => true
5368
- *
5369
- * _.isArray(document.body.children);
5370
- * // => false
5371
- *
5372
- * _.isArray('abc');
5373
- * // => false
7161
+ * A specialized version of `baseIsEqual` for arrays and objects which performs
7162
+ * deep comparisons and tracks traversed objects enabling objects with circular
7163
+ * references to be compared.
5374
7164
  *
5375
- * _.isArray(_.noop);
5376
- * // => false
7165
+ * @private
7166
+ * @param {Object} object The object to compare.
7167
+ * @param {Object} other The other object to compare.
7168
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
7169
+ * @param {Function} customizer The function to customize comparisons.
7170
+ * @param {Function} equalFunc The function to determine equivalents of values.
7171
+ * @param {Object} [stack] Tracks traversed `object` and `other` objects.
7172
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
5377
7173
  */
5378
- var isArray = Array.isArray;
7174
+ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
7175
+ var objIsArr = isArray$1(object),
7176
+ othIsArr = isArray$1(other),
7177
+ objTag = objIsArr ? arrayTag : getTag$1(object),
7178
+ othTag = othIsArr ? arrayTag : getTag$1(other);
5379
7179
 
5380
- var isArray$1 = isArray;
7180
+ objTag = objTag == argsTag ? objectTag : objTag;
7181
+ othTag = othTag == argsTag ? objectTag : othTag;
7182
+
7183
+ var objIsObj = objTag == objectTag,
7184
+ othIsObj = othTag == objectTag,
7185
+ isSameTag = objTag == othTag;
7186
+
7187
+ if (isSameTag && isBuffer$1(object)) {
7188
+ if (!isBuffer$1(other)) {
7189
+ return false;
7190
+ }
7191
+ objIsArr = true;
7192
+ objIsObj = false;
7193
+ }
7194
+ if (isSameTag && !objIsObj) {
7195
+ stack || (stack = new Stack);
7196
+ return (objIsArr || isTypedArray$1(object))
7197
+ ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
7198
+ : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
7199
+ }
7200
+ if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
7201
+ var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
7202
+ othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
7203
+
7204
+ if (objIsWrapped || othIsWrapped) {
7205
+ var objUnwrapped = objIsWrapped ? object.value() : object,
7206
+ othUnwrapped = othIsWrapped ? other.value() : other;
7207
+
7208
+ stack || (stack = new Stack);
7209
+ return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
7210
+ }
7211
+ }
7212
+ if (!isSameTag) {
7213
+ return false;
7214
+ }
7215
+ stack || (stack = new Stack);
7216
+ return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
7217
+ }
5381
7218
 
5382
7219
  /**
5383
- * Checks if `value` is the
5384
- * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
5385
- * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
5386
- *
5387
- * @static
5388
- * @memberOf _
5389
- * @since 0.1.0
5390
- * @category Lang
5391
- * @param {*} value The value to check.
5392
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
5393
- * @example
5394
- *
5395
- * _.isObject({});
5396
- * // => true
5397
- *
5398
- * _.isObject([1, 2, 3]);
5399
- * // => true
5400
- *
5401
- * _.isObject(_.noop);
5402
- * // => true
7220
+ * The base implementation of `_.isEqual` which supports partial comparisons
7221
+ * and tracks traversed objects.
5403
7222
  *
5404
- * _.isObject(null);
5405
- * // => false
7223
+ * @private
7224
+ * @param {*} value The value to compare.
7225
+ * @param {*} other The other value to compare.
7226
+ * @param {boolean} bitmask The bitmask flags.
7227
+ * 1 - Unordered comparison
7228
+ * 2 - Partial comparison
7229
+ * @param {Function} [customizer] The function to customize comparisons.
7230
+ * @param {Object} [stack] Tracks traversed `value` and `other` objects.
7231
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
5406
7232
  */
5407
- function isObject$1(value) {
5408
- var type = typeof value;
5409
- return value != null && (type == 'object' || type == 'function');
7233
+ function baseIsEqual(value, other, bitmask, customizer, stack) {
7234
+ if (value === other) {
7235
+ return true;
7236
+ }
7237
+ if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
7238
+ return value !== value && other !== other;
7239
+ }
7240
+ return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
5410
7241
  }
5411
7242
 
5412
7243
  /** `Object#toString` result references. */
@@ -5434,6 +7265,38 @@ function isString$2(value) {
5434
7265
  (!isArray$1(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
5435
7266
  }
5436
7267
 
7268
+ /**
7269
+ * Performs a deep comparison between two values to determine if they are
7270
+ * equivalent.
7271
+ *
7272
+ * **Note:** This method supports comparing arrays, array buffers, booleans,
7273
+ * date objects, error objects, maps, numbers, `Object` objects, regexes,
7274
+ * sets, strings, symbols, and typed arrays. `Object` objects are compared
7275
+ * by their own, not inherited, enumerable properties. Functions and DOM
7276
+ * nodes are compared by strict equality, i.e. `===`.
7277
+ *
7278
+ * @static
7279
+ * @memberOf _
7280
+ * @since 0.1.0
7281
+ * @category Lang
7282
+ * @param {*} value The value to compare.
7283
+ * @param {*} other The other value to compare.
7284
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
7285
+ * @example
7286
+ *
7287
+ * var object = { 'a': 1 };
7288
+ * var other = { 'a': 1 };
7289
+ *
7290
+ * _.isEqual(object, other);
7291
+ * // => true
7292
+ *
7293
+ * object === other;
7294
+ * // => false
7295
+ */
7296
+ function isEqual(value, other) {
7297
+ return baseIsEqual(value, other);
7298
+ }
7299
+
5437
7300
  const IconHelper = (props) => {
5438
7301
  const { class: classNames, style, label, icon } = props;
5439
7302
  return hAsync(KolIconFc$1, { class: clsx('icon', classNames), style: style, label: label || '', icons: icon });
@@ -14141,7 +16004,7 @@ const watchNavLinks = (className, component, value) => {
14141
16004
  uiUxHintMillerscheZahl(className, component.state._links.length);
14142
16005
  };
14143
16006
 
14144
- const defaultStyleCss$H = "/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]) {\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n }\n}\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\n}\n\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n border: none;\n margin: 0;\n padding: 0;\n width: 100%;\n /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n .badge-text-hint {\n background-color: lightgray;\n color: black;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: grid;\n place-items: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n place-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n}\n@layer kol-component {\n .kol-breadcrumb {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-breadcrumb__list, .kol-breadcrumb__list-element {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n gap: 0.5em;\n flex-wrap: wrap;\n place-items: center;\n }\n .kol-breadcrumb__icon::part(separator) {\n font-weight: 900;\n font-size: 0.7em;\n }\n .kol-breadcrumb__icon::part(separator):before {\n content: \"\\f054\";\n font-family: \"Font Awesome 6 Free\";\n }\n}";
16007
+ const defaultStyleCss$H = "/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]) {\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n }\n}\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\n}\n\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n border: none;\n margin: 0;\n padding: 0;\n width: 100%;\n /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n .badge-text-hint {\n background-color: lightgray;\n color: black;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: grid;\n place-items: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n place-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n}\n@layer kol-component {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-tooltip {\n display: contents;\n }\n .kol-tooltip__floating {\n animation-duration: 0.25s;\n animation-iteration-count: 1;\n animation-name: fadeInOpacity;\n animation-timing-function: ease-in;\n box-sizing: border-box;\n display: none;\n position: fixed;\n visibility: hidden;\n /* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n top: 0;\n left: 0;\n max-width: 90vw;\n max-height: 90vh;\n /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n width: var(--kol-tooltip-width);\n }\n .kol-tooltip__arrow {\n background-color: #fff;\n color: #000;\n height: calc(10rem / var(--kolibri-root-font-size, 16));\n position: absolute;\n transform: rotate(45deg);\n width: calc(10rem / var(--kolibri-root-font-size, 16));\n z-index: 999;\n }\n .kol-tooltip__content {\n background-color: #fff;\n color: #000;\n position: relative;\n z-index: 1000;\n }\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n}\n@layer kol-component {\n :host {\n display: inline-block;\n }\n .kol-link {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n align-items: baseline;\n display: inline-flex;\n place-items: center;\n text-align: left;\n text-decoration-line: none;\n }\n .kol-link__text .kol-span__label {\n text-decoration-line: underline;\n }\n .kol-link:is(:focus, :hover):not([aria-disabled], [disabled]) .kol-link__text .kol-span__label {\n text-decoration-thickness: 0.2em;\n }\n .kol-link__icon {\n display: inline-flex;\n margin-left: calc(8rem / var(--kolibri-root-font-size, 16));\n }\n}\n@layer kol-component {\n .kol-breadcrumb {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-breadcrumb__list, .kol-breadcrumb__list-element {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n gap: 0.5em;\n flex-wrap: wrap;\n place-items: center;\n }\n .kol-breadcrumb__icon::part(separator) {\n font-weight: 900;\n font-size: 0.7em;\n }\n .kol-breadcrumb__icon::part(separator):before {\n content: \"\\f054\";\n font-family: \"Font Awesome 6 Free\";\n }\n}";
14145
16008
  var KolBreadcrumbDefaultStyle0 = defaultStyleCss$H;
14146
16009
 
14147
16010
  class KolBreadcrumb {
@@ -14149,7 +16012,7 @@ class KolBreadcrumb {
14149
16012
  registerInstance(this, hostRef);
14150
16013
  this.renderLink = (link, index) => {
14151
16014
  const lastIndex = this.state._links.length - 1;
14152
- return (hAsync("li", { class: "kol-breadcrumb__list-element", key: index }, index !== 0 && hAsync(KolIconTag, { class: "kol-breadcrumb__icon", _label: "", _icons: "codicon codicon-chevron-right" }), index === lastIndex ? (hAsync("span", { class: "kol-breadcrumb__list-element-span" }, link._hideLabel ? (hAsync(KolIconTag, { class: "kol-breadcrumb__icon", _label: link._label, _icons: typeof link._icons === 'string' ? link._icons : 'codicon codicon-symbol-event' })) : (hAsync(Fragment, null, link._label)))) : (hAsync(KolLinkTag, Object.assign({ class: "kol-breadcrumb__link" }, link)))));
16015
+ return (hAsync("li", { class: "kol-breadcrumb__list-element", key: index }, index !== 0 && hAsync(KolIconTag, { class: "kol-breadcrumb__icon", _label: "", _icons: "codicon codicon-chevron-right" }), index === lastIndex ? (hAsync("span", { class: "kol-breadcrumb__list-element-span" }, link._hideLabel ? (hAsync(KolIconTag, { class: "kol-breadcrumb__icon", _label: link._label, _icons: typeof link._icons === 'string' ? link._icons : 'codicon codicon-symbol-event' })) : (hAsync(Fragment, null, link._label)))) : (hAsync(KolLinkWcTag, Object.assign({ class: "kol-breadcrumb__link" }, link)))));
14153
16016
  };
14154
16017
  this._label = undefined;
14155
16018
  this._links = undefined;
@@ -14159,7 +16022,7 @@ class KolBreadcrumb {
14159
16022
  };
14160
16023
  }
14161
16024
  render() {
14162
- return (hAsync("nav", { key: 'd086ccf1b9fccd3c2d9afe55f56a285e58f451f5', class: "kol-breadcrumb", "aria-label": this.state._label }, hAsync("ul", { key: 'ea55b4eed94749a422d06e470f3f09b75e0a7978', class: "kol-breadcrumb__list" }, this.state._links.length === 0 && (hAsync("li", { key: 'e601d2603ba034b4b0d553138f1d4e762fc372e8' }, hAsync(KolIconTag, { key: '025141bd396636bccac3f3991f6a91cfa1ad994c', class: "kol-breadcrumb_icon", _label: "", _icons: "codicon codicon-home" }), "\u2026")), this.state._links.map(this.renderLink))));
16025
+ return (hAsync("nav", { key: 'ec5c76bf09d3c9feaaf2e54dea8849f3df35f8cf', class: "kol-breadcrumb", "aria-label": this.state._label }, hAsync("ul", { key: '58258d0d211e35b1c10ea81d57ce664b5b365da1', class: "kol-breadcrumb__list" }, this.state._links.length === 0 && (hAsync("li", { key: '380473fa2c97a40a8f36042a7859edc30a13dcea' }, hAsync(KolIconTag, { key: '6f9289fa4d708da3b9bfbb7da105db05807dce39', class: "kol-breadcrumb_icon", _label: "", _icons: "codicon codicon-home" }), "\u2026")), this.state._links.map(this.renderLink))));
14163
16026
  }
14164
16027
  validateLabel(value, _oldValue, initial = false) {
14165
16028
  if (!initial) {
@@ -15445,6 +17308,8 @@ class KolCombobox {
15445
17308
  }, selected: this.state._value === option, onClick: () => {
15446
17309
  this.selectOption(option);
15447
17310
  this.toggleListbox();
17311
+ this._isOpen = false;
17312
+ this._hasOpened = false;
15448
17313
  }, onMouseOver: () => {
15449
17314
  if (!this.blockSuggestionMouseOver) {
15450
17315
  this.focusOption(index);
@@ -15487,7 +17352,7 @@ class KolCombobox {
15487
17352
  }
15488
17353
  case 'Tab':
15489
17354
  if (this._isOpen) {
15490
- this._isOpen = !this._isOpen;
17355
+ this._isOpen = false;
15491
17356
  (_a = this.refInput) === null || _a === void 0 ? void 0 : _a.focus();
15492
17357
  }
15493
17358
  break;
@@ -15495,13 +17360,21 @@ class KolCombobox {
15495
17360
  case 'Escape': {
15496
17361
  this._hasOpened = false;
15497
17362
  this._isOpen = false;
15498
- handleEvent(false);
17363
+ event.preventDefault();
15499
17364
  (_b = this.refInput) === null || _b === void 0 ? void 0 : _b.focus();
15500
17365
  break;
15501
17366
  }
15502
17367
  case 'NumpadEnter':
15503
17368
  case 'Enter': {
15504
- this.toggleListbox();
17369
+ if (this._isOpen && this._focusedOptionIndex >= 0) {
17370
+ this._filteredSuggestions && this.selectOption(this._filteredSuggestions[this._focusedOptionIndex]);
17371
+ this._isOpen = false;
17372
+ this._hasOpened = false;
17373
+ }
17374
+ else {
17375
+ this.toggleListbox();
17376
+ }
17377
+ event.preventDefault();
15505
17378
  break;
15506
17379
  }
15507
17380
  case 'Home': {
@@ -17874,7 +19747,7 @@ class InputFileController extends InputIconController {
17874
19747
  }
17875
19748
  }
17876
19749
 
17877
- const defaultStyleCss$s = "/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]) {\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n }\n}\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\n}\n\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n border: none;\n margin: 0;\n padding: 0;\n width: 100%;\n /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n .badge-text-hint {\n background-color: lightgray;\n color: black;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: grid;\n place-items: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n place-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n}\n@layer kol-component {\n :host {\n display: block;\n }\n}\n@layer kol-component {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-tooltip {\n display: contents;\n }\n .kol-tooltip__floating {\n animation-duration: 0.25s;\n animation-iteration-count: 1;\n animation-name: fadeInOpacity;\n animation-timing-function: ease-in;\n box-sizing: border-box;\n display: none;\n position: fixed;\n visibility: hidden;\n /* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n top: 0;\n left: 0;\n max-width: 90vw;\n max-height: 90vh;\n /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n width: var(--kol-tooltip-width);\n }\n .kol-tooltip__arrow {\n background-color: #fff;\n color: #000;\n height: calc(10rem / var(--kolibri-root-font-size, 16));\n position: absolute;\n transform: rotate(45deg);\n width: calc(10rem / var(--kolibri-root-font-size, 16));\n z-index: 999;\n }\n .kol-tooltip__content {\n background-color: #fff;\n color: #000;\n position: relative;\n z-index: 1000;\n }\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n}\n@layer kol-component {\n .kol-alert {\n display: grid;\n }\n .kol-alert__container {\n place-items: center;\n display: flex;\n }\n .kol-alert__container-content {\n flex-grow: 1;\n }\n .kol-alert__close-button {\n /* Visible with forced colors */\n outline: transparent solid calc(1rem / var(--kolibri-root-font-size, 16));\n }\n}\n@layer kol-component {\n .kol-form-field {\n display: grid;\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-form-field:not(.kol-form-field--disabled) .kol-form-field__label {\n cursor: pointer;\n }\n .kol-form-field--disabled .kol-form-field__label {\n opacity: 0.5;\n }\n .kol-form-field--required .kol-form-field__label-text::after {\n content: \"*\";\n }\n .kol-form-field--disabled .kol-form-field__hint {\n opacity: 0.5;\n }\n .kol-form-field--required .kol-form-field__tooltip .span-label::after {\n content: \"*\";\n }\n}\n@layer kol-component {\n .kol-input-container {\n align-items: center;\n background-color: white;\n display: grid;\n grid-template-columns: 1fr;\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n width: 100%;\n }\n .kol-input-container:has(> .kol-input-container__adornment--start) {\n grid-template-columns: auto 1fr;\n }\n .kol-input-container:has(> .kol-input-container__adornment--end) {\n grid-template-columns: 1fr auto;\n }\n .kol-input-container:has(> .kol-input-container__adornment--start):has(> .kol-input-container__adornment--end) {\n grid-template-columns: auto 1fr auto;\n }\n .kol-input-container__container {\n position: relative;\n }\n .kol-input-container__adornment {\n display: flex;\n align-items: center;\n }\n .kol-input-container__adornment .kol-icon {\n display: grid;\n height: var(--a11y-min-size);\n place-items: center;\n }\n}\n@layer kol-component {\n .kol-input {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n min-width: var(--a11y-min-size);\n width: 100%;\n }\n .kol-input:focus {\n outline: none;\n }\n}\n@layer kol-component {\n .kol-input {\n padding: calc((var(--a11y-min-size) - (16rem / var(--kolibri-root-font-size, 16))) / 10) 0.5em;\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n }\n .kol-input::-webkit-file-upload-button, .kol-input::file-selector-button {\n cursor: pointer;\n }\n .kol-input:disabled, .kol-input:disabled::-webkit-file-upload-button, .kol-input:disabled::file-selector-button {\n cursor: not-allowed;\n pointer-events: none;\n }\n .kol-input-container {\n padding: 0 0 0 calc(8rem / var(--kolibri-root-font-size, 16)) !important;\n }\n .kol-input-container__container {\n display: flex;\n align-items: center;\n overflow: hidden;\n height: var(--a11y-min-size);\n }\n .kol-input-container__filename {\n flex-grow: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-left: calc(4rem / var(--kolibri-root-font-size, 16));\n }\n .kol-input-container:has(> .kol-input-container__adornment--start):has(> .kol-input-container__adornment--end) {\n grid-template-columns: auto 1fr;\n }\n}";
19750
+ const defaultStyleCss$s = "/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]) {\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n }\n}\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\n}\n\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n border: none;\n margin: 0;\n padding: 0;\n width: 100%;\n /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n .badge-text-hint {\n background-color: lightgray;\n color: black;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: grid;\n place-items: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n place-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n}\n@layer kol-component {\n :host {\n display: block;\n }\n}\n@layer kol-component {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-tooltip {\n display: contents;\n }\n .kol-tooltip__floating {\n animation-duration: 0.25s;\n animation-iteration-count: 1;\n animation-name: fadeInOpacity;\n animation-timing-function: ease-in;\n box-sizing: border-box;\n display: none;\n position: fixed;\n visibility: hidden;\n /* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n top: 0;\n left: 0;\n max-width: 90vw;\n max-height: 90vh;\n /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n width: var(--kol-tooltip-width);\n }\n .kol-tooltip__arrow {\n background-color: #fff;\n color: #000;\n height: calc(10rem / var(--kolibri-root-font-size, 16));\n position: absolute;\n transform: rotate(45deg);\n width: calc(10rem / var(--kolibri-root-font-size, 16));\n z-index: 999;\n }\n .kol-tooltip__content {\n background-color: #fff;\n color: #000;\n position: relative;\n z-index: 1000;\n }\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n}\n@layer kol-component {\n .kol-alert {\n display: grid;\n }\n .kol-alert__container {\n place-items: center;\n display: flex;\n }\n .kol-alert__container-content {\n flex-grow: 1;\n }\n .kol-alert__close-button {\n /* Visible with forced colors */\n outline: transparent solid calc(1rem / var(--kolibri-root-font-size, 16));\n }\n}\n@layer kol-component {\n .kol-form-field {\n display: grid;\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-form-field:not(.kol-form-field--disabled) .kol-form-field__label {\n cursor: pointer;\n }\n .kol-form-field--disabled .kol-form-field__label {\n opacity: 0.5;\n }\n .kol-form-field--required .kol-form-field__label-text::after {\n content: \"*\";\n }\n .kol-form-field--disabled .kol-form-field__hint {\n opacity: 0.5;\n }\n .kol-form-field--required .kol-form-field__tooltip .span-label::after {\n content: \"*\";\n }\n}\n@layer kol-component {\n .kol-input-container {\n align-items: center;\n background-color: white;\n display: grid;\n grid-template-columns: 1fr;\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n width: 100%;\n }\n .kol-input-container:has(> .kol-input-container__adornment--start) {\n grid-template-columns: auto 1fr;\n }\n .kol-input-container:has(> .kol-input-container__adornment--end) {\n grid-template-columns: 1fr auto;\n }\n .kol-input-container:has(> .kol-input-container__adornment--start):has(> .kol-input-container__adornment--end) {\n grid-template-columns: auto 1fr auto;\n }\n .kol-input-container__container {\n position: relative;\n }\n .kol-input-container__adornment {\n display: flex;\n align-items: center;\n }\n .kol-input-container__adornment .kol-icon {\n display: grid;\n height: var(--a11y-min-size);\n place-items: center;\n }\n}\n@layer kol-component {\n .kol-input {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n min-width: var(--a11y-min-size);\n width: 100%;\n }\n .kol-input:focus {\n outline: none;\n }\n}\n@layer kol-component {\n .kol-input {\n padding: calc((var(--a11y-min-size) - (16rem / var(--kolibri-root-font-size, 16))) / 10) 0.5em;\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n }\n .kol-input::-webkit-file-upload-button, .kol-input::file-selector-button {\n cursor: pointer;\n }\n .kol-input:disabled, .kol-input:disabled::-webkit-file-upload-button, .kol-input:disabled::file-selector-button {\n cursor: not-allowed;\n pointer-events: none;\n }\n .kol-input-container__container {\n display: flex;\n align-items: center;\n overflow: hidden;\n height: var(--a11y-min-size);\n }\n .kol-input-container__filename {\n flex-grow: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-left: calc(4rem / var(--kolibri-root-font-size, 16));\n }\n .kol-input-container:has(> .kol-input-container__adornment--start):has(> .kol-input-container__adornment--end) {\n grid-template-columns: auto 1fr;\n }\n}";
17878
19751
  var KolInputFileDefaultStyle0 = defaultStyleCss$s;
17879
19752
 
17880
19753
  class KolInputFile {
@@ -17905,7 +19778,7 @@ class KolInputFile {
17905
19778
  } });
17906
19779
  }
17907
19780
  render() {
17908
- return (hAsync(KolFormFieldStateWrapperFc, Object.assign({ key: '6c81b473b7ba7db7b45405159e0ae33913fdea8a' }, this.getFormFieldProps()), hAsync(KolInputContainerStateWrapperFc, { key: '5e7229bb6eb56acb38c9354bd3a2f1d5e101aa93', state: this.state }, hAsync("span", { key: 'a7042630ccb23c6ec891ba4160726f1754025acc', class: "kol-input-container__filename" }, this.filename), hAsync(KolInputStateWrapperFc, Object.assign({ key: 'dfda5c0d86387248fb77a34c3cec9e05d36e907f' }, this.getInputProps())), hAsync(KolButtonWcTag, { key: 'ee240516c779742894f67acb98d2d8d6b247541a', class: "kol-input-container__button", _label: translate('kol-data-browse-text'), _variant: "primary", _disabled: this._disabled }))));
19781
+ return (hAsync(KolFormFieldStateWrapperFc, Object.assign({ key: '6c81b473b7ba7db7b45405159e0ae33913fdea8a' }, this.getFormFieldProps()), hAsync(KolInputContainerStateWrapperFc, { key: '5e7229bb6eb56acb38c9354bd3a2f1d5e101aa93', state: this.state }, hAsync("span", { key: '3742d51be8c2cc4ee6723269a964589a990f9e23', class: clsx('kol-input-container__filename', { 'kol-input-container__filename--has-file': this.hasFileSelected }) }, this.filename), hAsync(KolInputStateWrapperFc, Object.assign({ key: 'a1f03cccb74166437976eea391187546537fdfff' }, this.getInputProps())), hAsync(KolButtonWcTag, { key: '97492f6a7ef31282d00a182281ea29571cd056a8', class: "kol-input-container__button", _label: translate('kol-data-browse-text'), _variant: "primary", _disabled: this._disabled }))));
17909
19782
  }
17910
19783
  constructor(hostRef) {
17911
19784
  registerInstance(this, hostRef);
@@ -17936,6 +19809,7 @@ class KolInputFile {
17936
19809
  this.onChange = (event) => {
17937
19810
  if (this.inputRef instanceof HTMLInputElement && this.inputRef.type === 'file') {
17938
19811
  const value = this.inputRef.files;
19812
+ this.hasFileSelected = !!(value === null || value === void 0 ? void 0 : value.length);
17939
19813
  this.filename = (value === null || value === void 0 ? void 0 : value.length)
17940
19814
  ? Array.from(value)
17941
19815
  .map((file) => file.name)
@@ -17971,6 +19845,7 @@ class KolInputFile {
17971
19845
  this._tooltipAlign = 'top';
17972
19846
  this._touched = false;
17973
19847
  this.filename = translate('kol-filename-text');
19848
+ this.hasFileSelected = false;
17974
19849
  this.state = {
17975
19850
  _hideMsg: false,
17976
19851
  _id: `id-${nonce()}`,
@@ -18096,6 +19971,7 @@ class KolInputFile {
18096
19971
  "_tooltipAlign": [1, "_tooltip-align"],
18097
19972
  "_touched": [1540],
18098
19973
  "filename": [32],
19974
+ "hasFileSelected": [32],
18099
19975
  "state": [32],
18100
19976
  "inputHasFocus": [32],
18101
19977
  "getValue": [64],
@@ -23736,6 +25612,8 @@ class KolSingleSelect {
23736
25612
  this.selectOption(option);
23737
25613
  (_a = this.refInput) === null || _a === void 0 ? void 0 : _a.focus();
23738
25614
  this.toggleListbox(event);
25615
+ this._isOpen = false;
25616
+ this._hasOpened = false;
23739
25617
  }, onMouseOver: () => {
23740
25618
  if (!this.blockSuggestionMouseOver) {
23741
25619
  this._focusedOptionIndex = index;
@@ -23820,6 +25698,8 @@ class KolSingleSelect {
23820
25698
  case 'NumpadEnter':
23821
25699
  case 'Enter': {
23822
25700
  this.toggleListbox(event);
25701
+ this._hasOpened = false;
25702
+ this._isOpen = false;
23823
25703
  break;
23824
25704
  }
23825
25705
  case 'Home': {
@@ -24457,9 +26337,9 @@ class KolTableStateful {
24457
26337
  setState(this, '_sortedData', this.state._data);
24458
26338
  return;
24459
26339
  }
24460
- let sortedData = this.state._data;
26340
+ const sortedData = [...this.state._data];
24461
26341
  if (this.sortData.length > 0) {
24462
- sortedData = this.state._data.sort((a, b) => {
26342
+ sortedData.sort((a, b) => {
24463
26343
  for (let index = 0; index < this.sortData.length; index++) {
24464
26344
  const data = this.sortData[index];
24465
26345
  const result = data.compareFn(a, b);
@@ -24737,13 +26617,13 @@ class KolTableStateful {
24737
26617
  return this.getSelectedData(selectedKeys);
24738
26618
  }
24739
26619
  render() {
24740
- var _a, _b, _c, _d;
26620
+ var _a, _b, _c, _d, _e, _f;
24741
26621
  const displayedData = this.selectDisplayedData(this.state._sortedData, this.showPagination ? ((_b = (_a = this.state._pagination) === null || _a === void 0 ? void 0 : _a._pageSize) !== null && _b !== void 0 ? _b : 10) : this.state._sortedData.length, this.state._pagination._page || 1);
24742
26622
  const paginationTop = this._paginationPosition === 'top' || this._paginationPosition === 'both' ? this.renderPagination('top') : null;
24743
26623
  const paginationBottom = this._paginationPosition === 'bottom' || this._paginationPosition === 'both' ? this.renderPagination('bottom') : null;
24744
26624
  const headerCells = {
24745
- horizontal: (_c = this.state._headers.horizontal) === null || _c === void 0 ? void 0 : _c.map((row) => row.map((cell) => (Object.assign(Object.assign({}, cell), { sortDirection: this.getHeaderCellSortState(cell) })))),
24746
- vertical: (_d = this.state._headers.vertical) === null || _d === void 0 ? void 0 : _d.map((column) => column.map((cell) => (Object.assign(Object.assign({}, cell), { sortDirection: this.getHeaderCellSortState(cell) })))),
26625
+ horizontal: (_d = (_c = this.state._headers.horizontal) === null || _c === void 0 ? void 0 : _c.map((row) => row.map((cell) => (Object.assign(Object.assign({}, cell), { sortDirection: this.getHeaderCellSortState(cell) }))))) !== null && _d !== void 0 ? _d : [],
26626
+ vertical: (_f = (_e = this.state._headers.vertical) === null || _e === void 0 ? void 0 : _e.map((column) => column.map((cell) => (Object.assign(Object.assign({}, cell), { sortDirection: this.getHeaderCellSortState(cell) }))))) !== null && _f !== void 0 ? _f : [],
24747
26627
  };
24748
26628
  return (hAsync(Host, { key: '28ef6723c730e6f9a52694c65b984b27b97bbe43', class: "kol-table-stateful" }, this.pageEndSlice > 0 && this.showPagination && paginationTop, hAsync(KolTableStatelessWcTag, { key: '78fcf96661bd3e57bc41fbc3523096e7de513eeb', ref: this.catchRef, _data: displayedData, _headerCells: headerCells, _label: this.state._label, _dataFoot: this.state._dataFoot, _minWidth: this.state._minWidth, _on: {
24749
26629
  onSort: (_, payload) => {
@@ -24894,6 +26774,7 @@ class KolTableStateless {
24894
26774
  _minWidth: 'auto',
24895
26775
  };
24896
26776
  this.tableDivElementHasScrollbar = false;
26777
+ this.previousHeaderCells = undefined;
24897
26778
  this._data = undefined;
24898
26779
  this._dataFoot = undefined;
24899
26780
  this._headerCells = undefined;
@@ -24915,7 +26796,10 @@ class KolTableStateless {
24915
26796
  }
24916
26797
  validateHeaderCells(value) {
24917
26798
  validateTableHeaderCells(this, value);
24918
- this.initializeTableSettings();
26799
+ if (!isEqual(this.previousHeaderCells, this.state._headerCells)) {
26800
+ this.initializeTableSettings();
26801
+ }
26802
+ this.previousHeaderCells = this.state._headerCells;
24919
26803
  }
24920
26804
  validateLabel(value) {
24921
26805
  validateLabel(this, value, {
@@ -25371,12 +27255,12 @@ class KolTableStateless {
25371
27255
  const dataField = this.createDataField(this.state._data, this.state._headerCells);
25372
27256
  this.checkboxRefs = [];
25373
27257
  const sortedHorizontalHeaders = (_a = this.state._headerCells.horizontal) === null || _a === void 0 ? void 0 : _a.map((row) => this.sortByColumnPosition(row));
25374
- return (hAsync("div", { key: 'ae3fd0cadeff7fd5876f3aff39aacfd1997d7af5', class: "kol-table" }, hAsync(KolTableSettingsWcTag, { key: '71516f66299749db89d0be331e285564c6c908fe', _tableSettings: this.state._tableSettings }), hAsync("div", { key: '8382bc9fca0bbbf512e97376f4f4cd899dac38e3', ref: (element) => (this.tableDivElement = element), class: "kol-table__scroll-container", tabindex: this.tableDivElementHasScrollbar ? '-1' : undefined }, hAsync("table", { key: 'c3a90a20cba3f5ff46c3f9aad2a65310545cb90e', class: "kol-table__table", style: {
27258
+ return (hAsync("div", { key: '41ef1f9232f94305a6492420a311cf543b582a22', class: "kol-table" }, hAsync(KolTableSettingsWcTag, { key: '3e0def33d6cf806d72c305d0e350b7ee4b2d3899', _tableSettings: this.state._tableSettings }), hAsync("div", { key: 'cc55a031f7bae8733cc5877763b68f9b1717b3e2', ref: (element) => (this.tableDivElement = element), class: "kol-table__scroll-container", tabindex: this.tableDivElementHasScrollbar ? '-1' : undefined }, hAsync("table", { key: 'c96b4770ff54fb28a6d6eea1a9f021132e04652c', class: "kol-table__table", style: {
25375
27259
  minWidth: this.getTableMinWidth(),
25376
- } }, hAsync("div", { key: 'bfe6348cc5b95efb8262813f077c7c24feb44eb8', class: "kol-table__focus-element", tabindex: this.tableDivElementHasScrollbar ? '0' : undefined, "aria-describedby": "caption" }, "\u00A0"), hAsync("caption", { key: '0fd37e43aede08e1a613468e31e2502bd84e370b', class: "kol-table__caption", id: "caption" }, this.state._label), Array.isArray(sortedHorizontalHeaders) && (hAsync("thead", { key: 'a6a0ba216018ecc513231b34b0068e087fec060f', class: "kol-table__head" }, [
27260
+ } }, hAsync("div", { key: '96095fade8aa2347d2db8e4a42a735e07a683f05', class: "kol-table__focus-element", tabindex: this.tableDivElementHasScrollbar ? '0' : undefined, "aria-describedby": "caption" }, "\u00A0"), hAsync("caption", { key: 'fbf77baecd9f1f569c97df6596e598926f4fc420', class: "kol-table__caption", id: "caption" }, this.state._label), Array.isArray(sortedHorizontalHeaders) && (hAsync("thead", { key: 'aeab10b5b582c3134e5e0e7a483fbd441e00edc1', class: "kol-table__head" }, [
25377
27261
  sortedHorizontalHeaders.map((cols, rowIndex) => (hAsync("tr", { class: "kol-table__head-row", key: `thead-${rowIndex}` }, this.state._selection && this.renderHeadingSelectionCell(), rowIndex === 0 && this.renderHeaderTdCell(), Array.isArray(cols) && cols.map((cell, colIndex) => this.renderHeadingCell(cell, rowIndex, colIndex, false))))),
25378
27262
  this.renderSpacer('head', sortedHorizontalHeaders),
25379
- ])), hAsync("tbody", { key: '8fdb3967514154e5917d73f3ecc117d382d8a3c3', class: "kol-table__body" }, dataField.map((row, rowIndex) => this.renderTableRow(row, rowIndex, true))), this.renderFoot()))));
27263
+ ])), hAsync("tbody", { key: '536ad9c3574792ce18cf2694a4251cd781587aea', class: "kol-table__body" }, dataField.map((row, rowIndex) => this.renderTableRow(row, rowIndex, true))), this.renderFoot()))));
25380
27264
  }
25381
27265
  get host() { return getElement(this); }
25382
27266
  static get watchers() { return {
@@ -25402,7 +27286,8 @@ class KolTableStateless {
25402
27286
  "_selection": [1],
25403
27287
  "_tableSettings": [16],
25404
27288
  "state": [32],
25405
- "tableDivElementHasScrollbar": [32]
27289
+ "tableDivElementHasScrollbar": [32],
27290
+ "previousHeaderCells": [32]
25406
27291
  },
25407
27292
  "$listeners$": [[0, "keydown", "handleKeyDown"], [0, "settingsChange", "handleSettingsChange"]],
25408
27293
  "$lazyBundleId$": "-",