@public-ui/hydrate 3.0.0-rc.10 → 3.0.0-rc.12

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 +2047 -154
  2. package/dist/index.mjs +2047 -154
  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;
6797
+
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;
5242
6807
 
5243
- /** Used to check objects for own properties. */
5244
- var hasOwnProperty = objectProto$1.hasOwnProperty;
6808
+ /**
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`.
6817
+ */
6818
+ function arraySome(array, predicate) {
6819
+ var index = -1,
6820
+ length = array == null ? 0 : array.length;
6821
+
6822
+ while (++index < length) {
6823
+ if (predicate(array[index], index, array)) {
6824
+ return true;
6825
+ }
6826
+ }
6827
+ return false;
6828
+ }
5245
6829
 
5246
6830
  /**
5247
- * Used to resolve the
5248
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
5249
- * of values.
6831
+ * Checks if a `cache` value for `key` exists.
6832
+ *
6833
+ * @private
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`.
5250
6837
  */
5251
- var nativeObjectToString$1 = objectProto$1.toString;
6838
+ function cacheHas(cache, key) {
6839
+ return cache.has(key);
6840
+ }
5252
6841
 
5253
- /** Built-in value references. */
5254
- var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
6842
+ /** Used to compose bitmasks for value comparisons. */
6843
+ var COMPARE_PARTIAL_FLAG$3 = 1,
6844
+ COMPARE_UNORDERED_FLAG$1 = 2;
5255
6845
 
5256
6846
  /**
5257
- * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
6847
+ * A specialized version of `baseIsEqualDeep` for arrays with support for
6848
+ * partial deep comparisons.
5258
6849
  *
5259
6850
  * @private
5260
- * @param {*} value The value to query.
5261
- * @returns {string} Returns the raw `toStringTag`.
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`.
5262
6858
  */
5263
- function getRawTag(value) {
5264
- var isOwn = hasOwnProperty.call(value, symToStringTag$1),
5265
- tag = value[symToStringTag$1];
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;
5266
6863
 
5267
- try {
5268
- value[symToStringTag$1] = undefined;
5269
- var unmasked = true;
5270
- } catch (e) {}
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;
5271
6876
 
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];
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
5338
- *
5339
- * _.isObjectLike({});
5340
- * // => true
5341
- *
5342
- * _.isObjectLike([1, 2, 3]);
5343
- * // => true
5344
- *
5345
- * _.isObjectLike(_.noop);
5346
- * // => false
7069
+ * A specialized version of `baseIsEqualDeep` for objects with support for
7070
+ * partial deep comparisons.
5347
7071
  *
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
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.
5371
7164
  *
5372
- * _.isArray('abc');
5373
- * // => false
5374
- *
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('')`)
7220
+ * The base implementation of `_.isEqual` which supports partial comparisons
7221
+ * and tracks traversed objects.
5386
7222
  *
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
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) {
@@ -15333,8 +17196,8 @@ const CustomSuggestionsOptionFc = ({ index, ref, selected, onClick, onMouseOver,
15333
17196
  };
15334
17197
  var CustomSuggestionsOptionFc$1 = CustomSuggestionsOptionFc;
15335
17198
 
15336
- const CustomSuggestionsOptionsGroupFc = ({ blockSuggestionMouseOver, onKeyDown }, children) => {
15337
- return (hAsync("ul", { role: "listbox", class: clsx('kol-custom-suggestions-options-group', {
17199
+ const CustomSuggestionsOptionsGroupFc = ({ blockSuggestionMouseOver, onKeyDown, style }, children) => {
17200
+ return (hAsync("ul", { role: "listbox", style: style, class: clsx('kol-custom-suggestions-options-group', {
15338
17201
  'kol-custom-suggestions-options-group--cursor-hidden': blockSuggestionMouseOver,
15339
17202
  }), onKeyDown: onKeyDown }, children));
15340
17203
  };
@@ -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 {
@@ -23592,6 +25465,9 @@ class SingleSelectController extends InputIconController {
23592
25465
  validateHideClearButton(value) {
23593
25466
  watchBoolean(this.component, '_hideClearButton', value);
23594
25467
  }
25468
+ validateRows(value) {
25469
+ watchNumber(this.component, '_rows', value);
25470
+ }
23595
25471
  componentWillLoad() {
23596
25472
  super.componentWillLoad();
23597
25473
  this.validateOptions(this.component._options);
@@ -23599,10 +25475,11 @@ class SingleSelectController extends InputIconController {
23599
25475
  this.validateValue(this.component._value);
23600
25476
  this.validatePlaceholder(this.component._placeholder);
23601
25477
  this.validateHideClearButton(this.component._hideClearButton);
25478
+ this.validateRows(this.component._rows);
23602
25479
  }
23603
25480
  }
23604
25481
 
23605
- const defaultStyleCss$c = "/*\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-custom-suggestions-option {\n cursor: pointer;\n white-space: normal;\n overflow-wrap: break-word;\n word-wrap: break-word;\n line-height: 1.5;\n box-sizing: border-box;\n }\n .kol-custom-suggestions-options-group--cursor-hidden .kol-custom-suggestions-option {\n cursor: none !important;\n }\n}\n@layer kol-component {\n .kol-custom-suggestions-options-group {\n display: block;\n position: absolute;\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow-y: auto;\n overflow-x: hidden;\n z-index: 2;\n background-color: white;\n max-height: calc(250rem / var(--kolibri-root-font-size, 16));\n }\n}\n@layer kol-component {\n .kol-custom-suggestions-toggle {\n align-items: center;\n display: flex;\n height: var(--a11y-min-size);\n width: var(--a11y-min-size);\n }\n .kol-custom-suggestions-toggle:not(:disabled) {\n cursor: pointer;\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-single-select__delete {\n cursor: pointer;\n }\n .kol-single-select__delete--disabled {\n cursor: not-allowed;\n }\n .kol-single-select__no-results-message {\n cursor: default;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: calc(50rem / var(--kolibri-root-font-size, 16));\n }\n}";
25482
+ const defaultStyleCss$c = "/*\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-custom-suggestions-option {\n cursor: pointer;\n white-space: normal;\n overflow-wrap: break-word;\n word-wrap: break-word;\n line-height: 1.5;\n box-sizing: border-box;\n }\n .kol-custom-suggestions-options-group--cursor-hidden .kol-custom-suggestions-option {\n cursor: none !important;\n }\n}\n@layer kol-component {\n .kol-custom-suggestions-options-group {\n display: block;\n position: absolute;\n list-style-type: none;\n margin: 0;\n padding: 0;\n overflow-y: auto;\n overflow-x: hidden;\n z-index: 2;\n background-color: white;\n max-height: calc(250rem / var(--kolibri-root-font-size, 16));\n }\n}\n@layer kol-component {\n .kol-custom-suggestions-toggle {\n align-items: center;\n display: flex;\n height: var(--a11y-min-size);\n width: var(--a11y-min-size);\n }\n .kol-custom-suggestions-toggle:not(:disabled) {\n cursor: pointer;\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-single-select__delete {\n cursor: pointer;\n }\n .kol-single-select__delete--disabled {\n cursor: not-allowed;\n }\n .kol-single-select__no-results-message {\n cursor: default;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: calc(50rem / var(--kolibri-root-font-size, 16));\n }\n .kol-single-select .kol-custom-suggestions-options-group {\n max-height: calc((40rem / var(--kolibri-root-font-size, 16)) * var(--visible-options, 5) + (2rem / var(--kolibri-root-font-size, 16))) !important;\n }\n}";
23606
25483
  var KolSingleSelectDefaultStyle0 = defaultStyleCss$c;
23607
25484
 
23608
25485
  class KolSingleSelect {
@@ -23717,13 +25594,14 @@ class KolSingleSelect {
23717
25594
  } });
23718
25595
  }
23719
25596
  render() {
23720
- return (hAsync(KolFormFieldStateWrapperFc, Object.assign({ key: 'ec3747f22ac846d38911cd95c7459ea384ae985a' }, this.getFormFieldProps()), hAsync(KolInputContainerStateWrapperFc, { key: 'e2d7f951550e3bd3eaf4ef31088df4a570c7d852', state: this.state }, hAsync("div", { key: '80e7bbd2c47355eddb11aab6c9682d1df2e386b3', class: "kol-single-select__group" }, hAsync(KolInputStateWrapperFc, Object.assign({ key: '60fc8dff63875f302faacdee8e7b802629e7106f' }, this.getInputProps())), this._inputValue && !this.state._hideClearButton && (hAsync(KolIconTag, { key: '734bf8b1b2249aa1bd17c77576dc2897ef7f6666', _icons: "codicon codicon-close", "data-testid": "single-select-delete", _label: translate('kol-delete-selection'), onClick: () => {
25597
+ var _a;
25598
+ return (hAsync(KolFormFieldStateWrapperFc, Object.assign({ key: 'cdb72de6f61b1615cd32870580153774691c6b43' }, this.getFormFieldProps()), hAsync(KolInputContainerStateWrapperFc, { key: '2cefeed94b8376156b6ad75e777319ca2db9c656', state: this.state }, hAsync("div", { key: 'b4ef7f976dc946bc1f38bc41d5a942b2ea4ced93', class: "kol-single-select__group" }, hAsync(KolInputStateWrapperFc, Object.assign({ key: '492a3beb4fca89b1d1303caf71df136515c5fba0' }, this.getInputProps())), this._inputValue && !this.state._hideClearButton && (hAsync(KolIconTag, { key: 'e6af67ff63addc06e3a2b83d5b477f333b5a68f2', _icons: "codicon codicon-close", "data-testid": "single-select-delete", _label: translate('kol-delete-selection'), onClick: () => {
23721
25599
  var _a;
23722
25600
  this.clearSelection();
23723
25601
  (_a = this.refInput) === null || _a === void 0 ? void 0 : _a.focus();
23724
25602
  }, class: clsx('kol-single-select__delete', {
23725
25603
  'kol-single-select__delete--disabled': this.state._disabled,
23726
- }) })), hAsync(CustomSuggestionsToggleFc$1, { key: '363d2176f5be007551ebf1575236f784c8fae14e', onClick: this.toggleListbox.bind(this), disabled: this.state._disabled })), this._isOpen && !(this.state._disabled === true) && (hAsync(CustomSuggestionsOptionsGroupFc$1, { key: '572a0bffa400ba25653a84db7172c0c9697902a9', blockSuggestionMouseOver: this.blockSuggestionMouseOver, onKeyDown: this.handleKeyDownDropdown.bind(this) }, Array.isArray(this._filteredOptions) && this._filteredOptions.length > 0 ? (this._filteredOptions.map((option, index) => (hAsync(CustomSuggestionsOptionFc$1, { index: index, option: option.label, ref: (el) => {
25604
+ }) })), hAsync(CustomSuggestionsToggleFc$1, { key: 'd6cb818ee47ff1b65c3ca2b88a941d27a89cdf2e', onClick: this.toggleListbox.bind(this), disabled: this.state._disabled })), this._isOpen && !(this.state._disabled === true) && (hAsync(CustomSuggestionsOptionsGroupFc$1, { key: '06327f8bcc101cc0a836d293300a506bd99ecd1b', blockSuggestionMouseOver: this.blockSuggestionMouseOver, onKeyDown: this.handleKeyDownDropdown.bind(this), style: { '--visible-options': `${(_a = this._rows) !== null && _a !== void 0 ? _a : 5}` } }, Array.isArray(this._filteredOptions) && this._filteredOptions.length > 0 ? (this._filteredOptions.map((option, index) => (hAsync(CustomSuggestionsOptionFc$1, { index: index, option: option.label, ref: (el) => {
23727
25605
  if (el)
23728
25606
  this.refOptions[index] = el;
23729
25607
  }, selected: this._value === option.value, onClick: (event) => {
@@ -23731,6 +25609,8 @@ class KolSingleSelect {
23731
25609
  this.selectOption(option);
23732
25610
  (_a = this.refInput) === null || _a === void 0 ? void 0 : _a.focus();
23733
25611
  this.toggleListbox(event);
25612
+ this._isOpen = false;
25613
+ this._hasOpened = false;
23734
25614
  }, onMouseOver: () => {
23735
25615
  if (!this.blockSuggestionMouseOver) {
23736
25616
  this._focusedOptionIndex = index;
@@ -23815,6 +25695,8 @@ class KolSingleSelect {
23815
25695
  case 'NumpadEnter':
23816
25696
  case 'Enter': {
23817
25697
  this.toggleListbox(event);
25698
+ this._hasOpened = false;
25699
+ this._isOpen = false;
23818
25700
  break;
23819
25701
  }
23820
25702
  case 'Home': {
@@ -23898,6 +25780,7 @@ class KolSingleSelect {
23898
25780
  this._touched = false;
23899
25781
  this._value = undefined;
23900
25782
  this._hideClearButton = false;
25783
+ this._rows = undefined;
23901
25784
  this.state = {
23902
25785
  _hideMsg: false,
23903
25786
  _id: `id-${nonce()}`,
@@ -23972,6 +25855,9 @@ class KolSingleSelect {
23972
25855
  validateHideClearButton(value) {
23973
25856
  this.controller.validateHideClearButton(value);
23974
25857
  }
25858
+ validateRows(value) {
25859
+ this.controller.validateRows(value);
25860
+ }
23975
25861
  handleMouseEvent() {
23976
25862
  this.blockSuggestionMouseOver = false;
23977
25863
  }
@@ -24023,7 +25909,8 @@ class KolSingleSelect {
24023
25909
  "_syncValueBySelector": ["validateSyncValueBySelector"],
24024
25910
  "_touched": ["validateTouched"],
24025
25911
  "_value": ["validateValue"],
24026
- "_hideClearButton ": ["validateHideClearButton"]
25912
+ "_hideClearButton ": ["validateHideClearButton"],
25913
+ "_rows": ["validateRows"]
24027
25914
  }; }
24028
25915
  static get style() { return {
24029
25916
  default: KolSingleSelectDefaultStyle0
@@ -24052,6 +25939,7 @@ class KolSingleSelect {
24052
25939
  "_touched": [1540],
24053
25940
  "_value": [1544],
24054
25941
  "_hideClearButton": [4, "_hide-clear-button"],
25942
+ "_rows": [2],
24055
25943
  "_isOpen": [32],
24056
25944
  "_filteredOptions": [32],
24057
25945
  "_inputValue": [32],
@@ -24446,9 +26334,9 @@ class KolTableStateful {
24446
26334
  setState(this, '_sortedData', this.state._data);
24447
26335
  return;
24448
26336
  }
24449
- let sortedData = this.state._data;
26337
+ const sortedData = [...this.state._data];
24450
26338
  if (this.sortData.length > 0) {
24451
- sortedData = this.state._data.sort((a, b) => {
26339
+ sortedData.sort((a, b) => {
24452
26340
  for (let index = 0; index < this.sortData.length; index++) {
24453
26341
  const data = this.sortData[index];
24454
26342
  const result = data.compareFn(a, b);
@@ -24726,13 +26614,13 @@ class KolTableStateful {
24726
26614
  return this.getSelectedData(selectedKeys);
24727
26615
  }
24728
26616
  render() {
24729
- var _a, _b, _c, _d;
26617
+ var _a, _b, _c, _d, _e, _f;
24730
26618
  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);
24731
26619
  const paginationTop = this._paginationPosition === 'top' || this._paginationPosition === 'both' ? this.renderPagination('top') : null;
24732
26620
  const paginationBottom = this._paginationPosition === 'bottom' || this._paginationPosition === 'both' ? this.renderPagination('bottom') : null;
24733
26621
  const headerCells = {
24734
- 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) })))),
24735
- 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) })))),
26622
+ 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 : [],
26623
+ 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 : [],
24736
26624
  };
24737
26625
  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: {
24738
26626
  onSort: (_, payload) => {
@@ -24883,6 +26771,7 @@ class KolTableStateless {
24883
26771
  _minWidth: 'auto',
24884
26772
  };
24885
26773
  this.tableDivElementHasScrollbar = false;
26774
+ this.previousHeaderCells = undefined;
24886
26775
  this._data = undefined;
24887
26776
  this._dataFoot = undefined;
24888
26777
  this._headerCells = undefined;
@@ -24904,7 +26793,10 @@ class KolTableStateless {
24904
26793
  }
24905
26794
  validateHeaderCells(value) {
24906
26795
  validateTableHeaderCells(this, value);
24907
- this.initializeTableSettings();
26796
+ if (!isEqual(this.previousHeaderCells, this.state._headerCells)) {
26797
+ this.initializeTableSettings();
26798
+ }
26799
+ this.previousHeaderCells = this.state._headerCells;
24908
26800
  }
24909
26801
  validateLabel(value) {
24910
26802
  validateLabel(this, value, {
@@ -25360,12 +27252,12 @@ class KolTableStateless {
25360
27252
  const dataField = this.createDataField(this.state._data, this.state._headerCells);
25361
27253
  this.checkboxRefs = [];
25362
27254
  const sortedHorizontalHeaders = (_a = this.state._headerCells.horizontal) === null || _a === void 0 ? void 0 : _a.map((row) => this.sortByColumnPosition(row));
25363
- 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: {
27255
+ 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: {
25364
27256
  minWidth: this.getTableMinWidth(),
25365
- } }, 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" }, [
27257
+ } }, 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" }, [
25366
27258
  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))))),
25367
27259
  this.renderSpacer('head', sortedHorizontalHeaders),
25368
- ])), hAsync("tbody", { key: '8fdb3967514154e5917d73f3ecc117d382d8a3c3', class: "kol-table__body" }, dataField.map((row, rowIndex) => this.renderTableRow(row, rowIndex, true))), this.renderFoot()))));
27260
+ ])), hAsync("tbody", { key: '536ad9c3574792ce18cf2694a4251cd781587aea', class: "kol-table__body" }, dataField.map((row, rowIndex) => this.renderTableRow(row, rowIndex, true))), this.renderFoot()))));
25369
27261
  }
25370
27262
  get host() { return getElement(this); }
25371
27263
  static get watchers() { return {
@@ -25391,7 +27283,8 @@ class KolTableStateless {
25391
27283
  "_selection": [1],
25392
27284
  "_tableSettings": [16],
25393
27285
  "state": [32],
25394
- "tableDivElementHasScrollbar": [32]
27286
+ "tableDivElementHasScrollbar": [32],
27287
+ "previousHeaderCells": [32]
25395
27288
  },
25396
27289
  "$listeners$": [[0, "keydown", "handleKeyDown"], [0, "settingsChange", "handleSettingsChange"]],
25397
27290
  "$lazyBundleId$": "-",