stream-chat-react 11.9.0 → 11.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/{Window-5e0717c0.js → Window-7d524c3b.js} +2092 -33
  2. package/dist/browser.full-bundle.js +2107 -53
  3. package/dist/browser.full-bundle.js.map +1 -1
  4. package/dist/browser.full-bundle.min.js +4 -4
  5. package/dist/browser.full-bundle.min.js.map +1 -1
  6. package/dist/components/Channel/Channel.d.ts.map +1 -1
  7. package/dist/components/Channel/Channel.js +19 -10
  8. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
  9. package/dist/components/ChannelList/hooks/usePaginatedChannels.js +11 -10
  10. package/dist/components/Emojis/index.cjs.js +1 -1
  11. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +1 -1
  12. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +7 -12
  13. package/dist/components/Message/Message.d.ts.map +1 -1
  14. package/dist/components/Message/Message.js +2 -2
  15. package/dist/components/Message/types.d.ts +5 -0
  16. package/dist/components/Message/types.d.ts.map +1 -1
  17. package/dist/components/MessageList/MessageList.d.ts +1 -1
  18. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  19. package/dist/components/MessageList/MessageList.js +2 -1
  20. package/dist/components/MessageList/VirtualizedMessageList.d.ts +2 -2
  21. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  22. package/dist/components/MessageList/VirtualizedMessageList.js +7 -3
  23. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -1
  24. package/dist/components/MessageList/VirtualizedMessageListComponents.js +2 -2
  25. package/dist/components/Reactions/ReactionsList.d.ts +5 -0
  26. package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
  27. package/dist/components/Reactions/ReactionsList.js +2 -2
  28. package/dist/components/Reactions/ReactionsListModal.d.ts +3 -2
  29. package/dist/components/Reactions/ReactionsListModal.d.ts.map +1 -1
  30. package/dist/components/Reactions/ReactionsListModal.js +16 -6
  31. package/dist/components/Reactions/hooks/useProcessReactions.d.ts +5 -2
  32. package/dist/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -1
  33. package/dist/components/Reactions/hooks/useProcessReactions.js +10 -3
  34. package/dist/components/Reactions/types.d.ts +4 -1
  35. package/dist/components/Reactions/types.d.ts.map +1 -1
  36. package/dist/context/MessageContext.d.ts +5 -0
  37. package/dist/context/MessageContext.d.ts.map +1 -1
  38. package/dist/index.cjs.js +17 -19
  39. package/dist/version.d.ts +1 -1
  40. package/dist/version.d.ts.map +1 -1
  41. package/dist/version.js +1 -1
  42. package/package.json +3 -1
@@ -45284,6 +45284,2038 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
45284
45284
 
45285
45285
  var lodash_debounce = debounce$2;
45286
45286
 
45287
+ var lodash_defaultsdeep = {exports: {}};
45288
+
45289
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};/**
45290
+ * Lodash (Custom Build) <https://lodash.com/>
45291
+ * Build: `lodash modularize exports="npm" -o ./`
45292
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
45293
+ * Released under MIT license <https://lodash.com/license>
45294
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
45295
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
45296
+ */
45297
+
45298
+ (function (module, exports) {
45299
+ /** Used as the size to enable large array optimizations. */
45300
+ var LARGE_ARRAY_SIZE = 200;
45301
+
45302
+ /** Used to stand-in for `undefined` hash values. */
45303
+ var HASH_UNDEFINED = '__lodash_hash_undefined__';
45304
+
45305
+ /** Used to detect hot functions by number of calls within a span of milliseconds. */
45306
+ var HOT_COUNT = 800,
45307
+ HOT_SPAN = 16;
45308
+
45309
+ /** Used as references for various `Number` constants. */
45310
+ var MAX_SAFE_INTEGER = 9007199254740991;
45311
+
45312
+ /** `Object#toString` result references. */
45313
+ var argsTag = '[object Arguments]',
45314
+ arrayTag = '[object Array]',
45315
+ asyncTag = '[object AsyncFunction]',
45316
+ boolTag = '[object Boolean]',
45317
+ dateTag = '[object Date]',
45318
+ errorTag = '[object Error]',
45319
+ funcTag = '[object Function]',
45320
+ genTag = '[object GeneratorFunction]',
45321
+ mapTag = '[object Map]',
45322
+ numberTag = '[object Number]',
45323
+ nullTag = '[object Null]',
45324
+ objectTag = '[object Object]',
45325
+ proxyTag = '[object Proxy]',
45326
+ regexpTag = '[object RegExp]',
45327
+ setTag = '[object Set]',
45328
+ stringTag = '[object String]',
45329
+ undefinedTag = '[object Undefined]',
45330
+ weakMapTag = '[object WeakMap]';
45331
+
45332
+ var arrayBufferTag = '[object ArrayBuffer]',
45333
+ dataViewTag = '[object DataView]',
45334
+ float32Tag = '[object Float32Array]',
45335
+ float64Tag = '[object Float64Array]',
45336
+ int8Tag = '[object Int8Array]',
45337
+ int16Tag = '[object Int16Array]',
45338
+ int32Tag = '[object Int32Array]',
45339
+ uint8Tag = '[object Uint8Array]',
45340
+ uint8ClampedTag = '[object Uint8ClampedArray]',
45341
+ uint16Tag = '[object Uint16Array]',
45342
+ uint32Tag = '[object Uint32Array]';
45343
+
45344
+ /**
45345
+ * Used to match `RegExp`
45346
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
45347
+ */
45348
+ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
45349
+
45350
+ /** Used to detect host constructors (Safari). */
45351
+ var reIsHostCtor = /^\[object .+?Constructor\]$/;
45352
+
45353
+ /** Used to detect unsigned integer values. */
45354
+ var reIsUint = /^(?:0|[1-9]\d*)$/;
45355
+
45356
+ /** Used to identify `toStringTag` values of typed arrays. */
45357
+ var typedArrayTags = {};
45358
+ typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
45359
+ typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
45360
+ typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
45361
+ typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
45362
+ typedArrayTags[uint32Tag] = true;
45363
+ typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
45364
+ typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
45365
+ typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
45366
+ typedArrayTags[errorTag] = typedArrayTags[funcTag] =
45367
+ typedArrayTags[mapTag] = typedArrayTags[numberTag] =
45368
+ typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
45369
+ typedArrayTags[setTag] = typedArrayTags[stringTag] =
45370
+ typedArrayTags[weakMapTag] = false;
45371
+
45372
+ /** Detect free variable `global` from Node.js. */
45373
+ var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
45374
+
45375
+ /** Detect free variable `self`. */
45376
+ var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
45377
+
45378
+ /** Used as a reference to the global object. */
45379
+ var root = freeGlobal || freeSelf || Function('return this')();
45380
+
45381
+ /** Detect free variable `exports`. */
45382
+ var freeExports = exports && !exports.nodeType && exports;
45383
+
45384
+ /** Detect free variable `module`. */
45385
+ var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;
45386
+
45387
+ /** Detect the popular CommonJS extension `module.exports`. */
45388
+ var moduleExports = freeModule && freeModule.exports === freeExports;
45389
+
45390
+ /** Detect free variable `process` from Node.js. */
45391
+ var freeProcess = moduleExports && freeGlobal.process;
45392
+
45393
+ /** Used to access faster Node.js helpers. */
45394
+ var nodeUtil = (function() {
45395
+ try {
45396
+ // Use `util.types` for Node.js 10+.
45397
+ var types = freeModule && freeModule.require && freeModule.require('util').types;
45398
+
45399
+ if (types) {
45400
+ return types;
45401
+ }
45402
+
45403
+ // Legacy `process.binding('util')` for Node.js < 10.
45404
+ return freeProcess && freeProcess.binding && freeProcess.binding('util');
45405
+ } catch (e) {}
45406
+ }());
45407
+
45408
+ /* Node.js helper references. */
45409
+ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
45410
+
45411
+ /**
45412
+ * A faster alternative to `Function#apply`, this function invokes `func`
45413
+ * with the `this` binding of `thisArg` and the arguments of `args`.
45414
+ *
45415
+ * @private
45416
+ * @param {Function} func The function to invoke.
45417
+ * @param {*} thisArg The `this` binding of `func`.
45418
+ * @param {Array} args The arguments to invoke `func` with.
45419
+ * @returns {*} Returns the result of `func`.
45420
+ */
45421
+ function apply(func, thisArg, args) {
45422
+ switch (args.length) {
45423
+ case 0: return func.call(thisArg);
45424
+ case 1: return func.call(thisArg, args[0]);
45425
+ case 2: return func.call(thisArg, args[0], args[1]);
45426
+ case 3: return func.call(thisArg, args[0], args[1], args[2]);
45427
+ }
45428
+ return func.apply(thisArg, args);
45429
+ }
45430
+
45431
+ /**
45432
+ * The base implementation of `_.times` without support for iteratee shorthands
45433
+ * or max array length checks.
45434
+ *
45435
+ * @private
45436
+ * @param {number} n The number of times to invoke `iteratee`.
45437
+ * @param {Function} iteratee The function invoked per iteration.
45438
+ * @returns {Array} Returns the array of results.
45439
+ */
45440
+ function baseTimes(n, iteratee) {
45441
+ var index = -1,
45442
+ result = Array(n);
45443
+
45444
+ while (++index < n) {
45445
+ result[index] = iteratee(index);
45446
+ }
45447
+ return result;
45448
+ }
45449
+
45450
+ /**
45451
+ * The base implementation of `_.unary` without support for storing metadata.
45452
+ *
45453
+ * @private
45454
+ * @param {Function} func The function to cap arguments for.
45455
+ * @returns {Function} Returns the new capped function.
45456
+ */
45457
+ function baseUnary(func) {
45458
+ return function(value) {
45459
+ return func(value);
45460
+ };
45461
+ }
45462
+
45463
+ /**
45464
+ * Gets the value at `key` of `object`.
45465
+ *
45466
+ * @private
45467
+ * @param {Object} [object] The object to query.
45468
+ * @param {string} key The key of the property to get.
45469
+ * @returns {*} Returns the property value.
45470
+ */
45471
+ function getValue(object, key) {
45472
+ return object == null ? undefined : object[key];
45473
+ }
45474
+
45475
+ /**
45476
+ * Creates a unary function that invokes `func` with its argument transformed.
45477
+ *
45478
+ * @private
45479
+ * @param {Function} func The function to wrap.
45480
+ * @param {Function} transform The argument transform.
45481
+ * @returns {Function} Returns the new function.
45482
+ */
45483
+ function overArg(func, transform) {
45484
+ return function(arg) {
45485
+ return func(transform(arg));
45486
+ };
45487
+ }
45488
+
45489
+ /** Used for built-in method references. */
45490
+ var arrayProto = Array.prototype,
45491
+ funcProto = Function.prototype,
45492
+ objectProto = Object.prototype;
45493
+
45494
+ /** Used to detect overreaching core-js shims. */
45495
+ var coreJsData = root['__core-js_shared__'];
45496
+
45497
+ /** Used to resolve the decompiled source of functions. */
45498
+ var funcToString = funcProto.toString;
45499
+
45500
+ /** Used to check objects for own properties. */
45501
+ var hasOwnProperty = objectProto.hasOwnProperty;
45502
+
45503
+ /** Used to detect methods masquerading as native. */
45504
+ var maskSrcKey = (function() {
45505
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
45506
+ return uid ? ('Symbol(src)_1.' + uid) : '';
45507
+ }());
45508
+
45509
+ /**
45510
+ * Used to resolve the
45511
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
45512
+ * of values.
45513
+ */
45514
+ var nativeObjectToString = objectProto.toString;
45515
+
45516
+ /** Used to infer the `Object` constructor. */
45517
+ var objectCtorString = funcToString.call(Object);
45518
+
45519
+ /** Used to detect if a method is native. */
45520
+ var reIsNative = RegExp('^' +
45521
+ funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
45522
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
45523
+ );
45524
+
45525
+ /** Built-in value references. */
45526
+ var Buffer = moduleExports ? root.Buffer : undefined,
45527
+ Symbol = root.Symbol,
45528
+ Uint8Array = root.Uint8Array,
45529
+ allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,
45530
+ getPrototype = overArg(Object.getPrototypeOf, Object),
45531
+ objectCreate = Object.create,
45532
+ propertyIsEnumerable = objectProto.propertyIsEnumerable,
45533
+ splice = arrayProto.splice,
45534
+ symToStringTag = Symbol ? Symbol.toStringTag : undefined;
45535
+
45536
+ var defineProperty = (function() {
45537
+ try {
45538
+ var func = getNative(Object, 'defineProperty');
45539
+ func({}, '', {});
45540
+ return func;
45541
+ } catch (e) {}
45542
+ }());
45543
+
45544
+ /* Built-in method references for those with the same name as other `lodash` methods. */
45545
+ var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
45546
+ nativeMax = Math.max,
45547
+ nativeNow = Date.now;
45548
+
45549
+ /* Built-in method references that are verified to be native. */
45550
+ var Map = getNative(root, 'Map'),
45551
+ nativeCreate = getNative(Object, 'create');
45552
+
45553
+ /**
45554
+ * The base implementation of `_.create` without support for assigning
45555
+ * properties to the created object.
45556
+ *
45557
+ * @private
45558
+ * @param {Object} proto The object to inherit from.
45559
+ * @returns {Object} Returns the new object.
45560
+ */
45561
+ var baseCreate = (function() {
45562
+ function object() {}
45563
+ return function(proto) {
45564
+ if (!isObject(proto)) {
45565
+ return {};
45566
+ }
45567
+ if (objectCreate) {
45568
+ return objectCreate(proto);
45569
+ }
45570
+ object.prototype = proto;
45571
+ var result = new object;
45572
+ object.prototype = undefined;
45573
+ return result;
45574
+ };
45575
+ }());
45576
+
45577
+ /**
45578
+ * Creates a hash object.
45579
+ *
45580
+ * @private
45581
+ * @constructor
45582
+ * @param {Array} [entries] The key-value pairs to cache.
45583
+ */
45584
+ function Hash(entries) {
45585
+ var index = -1,
45586
+ length = entries == null ? 0 : entries.length;
45587
+
45588
+ this.clear();
45589
+ while (++index < length) {
45590
+ var entry = entries[index];
45591
+ this.set(entry[0], entry[1]);
45592
+ }
45593
+ }
45594
+
45595
+ /**
45596
+ * Removes all key-value entries from the hash.
45597
+ *
45598
+ * @private
45599
+ * @name clear
45600
+ * @memberOf Hash
45601
+ */
45602
+ function hashClear() {
45603
+ this.__data__ = nativeCreate ? nativeCreate(null) : {};
45604
+ this.size = 0;
45605
+ }
45606
+
45607
+ /**
45608
+ * Removes `key` and its value from the hash.
45609
+ *
45610
+ * @private
45611
+ * @name delete
45612
+ * @memberOf Hash
45613
+ * @param {Object} hash The hash to modify.
45614
+ * @param {string} key The key of the value to remove.
45615
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
45616
+ */
45617
+ function hashDelete(key) {
45618
+ var result = this.has(key) && delete this.__data__[key];
45619
+ this.size -= result ? 1 : 0;
45620
+ return result;
45621
+ }
45622
+
45623
+ /**
45624
+ * Gets the hash value for `key`.
45625
+ *
45626
+ * @private
45627
+ * @name get
45628
+ * @memberOf Hash
45629
+ * @param {string} key The key of the value to get.
45630
+ * @returns {*} Returns the entry value.
45631
+ */
45632
+ function hashGet(key) {
45633
+ var data = this.__data__;
45634
+ if (nativeCreate) {
45635
+ var result = data[key];
45636
+ return result === HASH_UNDEFINED ? undefined : result;
45637
+ }
45638
+ return hasOwnProperty.call(data, key) ? data[key] : undefined;
45639
+ }
45640
+
45641
+ /**
45642
+ * Checks if a hash value for `key` exists.
45643
+ *
45644
+ * @private
45645
+ * @name has
45646
+ * @memberOf Hash
45647
+ * @param {string} key The key of the entry to check.
45648
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
45649
+ */
45650
+ function hashHas(key) {
45651
+ var data = this.__data__;
45652
+ return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
45653
+ }
45654
+
45655
+ /**
45656
+ * Sets the hash `key` to `value`.
45657
+ *
45658
+ * @private
45659
+ * @name set
45660
+ * @memberOf Hash
45661
+ * @param {string} key The key of the value to set.
45662
+ * @param {*} value The value to set.
45663
+ * @returns {Object} Returns the hash instance.
45664
+ */
45665
+ function hashSet(key, value) {
45666
+ var data = this.__data__;
45667
+ this.size += this.has(key) ? 0 : 1;
45668
+ data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
45669
+ return this;
45670
+ }
45671
+
45672
+ // Add methods to `Hash`.
45673
+ Hash.prototype.clear = hashClear;
45674
+ Hash.prototype['delete'] = hashDelete;
45675
+ Hash.prototype.get = hashGet;
45676
+ Hash.prototype.has = hashHas;
45677
+ Hash.prototype.set = hashSet;
45678
+
45679
+ /**
45680
+ * Creates an list cache object.
45681
+ *
45682
+ * @private
45683
+ * @constructor
45684
+ * @param {Array} [entries] The key-value pairs to cache.
45685
+ */
45686
+ function ListCache(entries) {
45687
+ var index = -1,
45688
+ length = entries == null ? 0 : entries.length;
45689
+
45690
+ this.clear();
45691
+ while (++index < length) {
45692
+ var entry = entries[index];
45693
+ this.set(entry[0], entry[1]);
45694
+ }
45695
+ }
45696
+
45697
+ /**
45698
+ * Removes all key-value entries from the list cache.
45699
+ *
45700
+ * @private
45701
+ * @name clear
45702
+ * @memberOf ListCache
45703
+ */
45704
+ function listCacheClear() {
45705
+ this.__data__ = [];
45706
+ this.size = 0;
45707
+ }
45708
+
45709
+ /**
45710
+ * Removes `key` and its value from the list cache.
45711
+ *
45712
+ * @private
45713
+ * @name delete
45714
+ * @memberOf ListCache
45715
+ * @param {string} key The key of the value to remove.
45716
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
45717
+ */
45718
+ function listCacheDelete(key) {
45719
+ var data = this.__data__,
45720
+ index = assocIndexOf(data, key);
45721
+
45722
+ if (index < 0) {
45723
+ return false;
45724
+ }
45725
+ var lastIndex = data.length - 1;
45726
+ if (index == lastIndex) {
45727
+ data.pop();
45728
+ } else {
45729
+ splice.call(data, index, 1);
45730
+ }
45731
+ --this.size;
45732
+ return true;
45733
+ }
45734
+
45735
+ /**
45736
+ * Gets the list cache value for `key`.
45737
+ *
45738
+ * @private
45739
+ * @name get
45740
+ * @memberOf ListCache
45741
+ * @param {string} key The key of the value to get.
45742
+ * @returns {*} Returns the entry value.
45743
+ */
45744
+ function listCacheGet(key) {
45745
+ var data = this.__data__,
45746
+ index = assocIndexOf(data, key);
45747
+
45748
+ return index < 0 ? undefined : data[index][1];
45749
+ }
45750
+
45751
+ /**
45752
+ * Checks if a list cache value for `key` exists.
45753
+ *
45754
+ * @private
45755
+ * @name has
45756
+ * @memberOf ListCache
45757
+ * @param {string} key The key of the entry to check.
45758
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
45759
+ */
45760
+ function listCacheHas(key) {
45761
+ return assocIndexOf(this.__data__, key) > -1;
45762
+ }
45763
+
45764
+ /**
45765
+ * Sets the list cache `key` to `value`.
45766
+ *
45767
+ * @private
45768
+ * @name set
45769
+ * @memberOf ListCache
45770
+ * @param {string} key The key of the value to set.
45771
+ * @param {*} value The value to set.
45772
+ * @returns {Object} Returns the list cache instance.
45773
+ */
45774
+ function listCacheSet(key, value) {
45775
+ var data = this.__data__,
45776
+ index = assocIndexOf(data, key);
45777
+
45778
+ if (index < 0) {
45779
+ ++this.size;
45780
+ data.push([key, value]);
45781
+ } else {
45782
+ data[index][1] = value;
45783
+ }
45784
+ return this;
45785
+ }
45786
+
45787
+ // Add methods to `ListCache`.
45788
+ ListCache.prototype.clear = listCacheClear;
45789
+ ListCache.prototype['delete'] = listCacheDelete;
45790
+ ListCache.prototype.get = listCacheGet;
45791
+ ListCache.prototype.has = listCacheHas;
45792
+ ListCache.prototype.set = listCacheSet;
45793
+
45794
+ /**
45795
+ * Creates a map cache object to store key-value pairs.
45796
+ *
45797
+ * @private
45798
+ * @constructor
45799
+ * @param {Array} [entries] The key-value pairs to cache.
45800
+ */
45801
+ function MapCache(entries) {
45802
+ var index = -1,
45803
+ length = entries == null ? 0 : entries.length;
45804
+
45805
+ this.clear();
45806
+ while (++index < length) {
45807
+ var entry = entries[index];
45808
+ this.set(entry[0], entry[1]);
45809
+ }
45810
+ }
45811
+
45812
+ /**
45813
+ * Removes all key-value entries from the map.
45814
+ *
45815
+ * @private
45816
+ * @name clear
45817
+ * @memberOf MapCache
45818
+ */
45819
+ function mapCacheClear() {
45820
+ this.size = 0;
45821
+ this.__data__ = {
45822
+ 'hash': new Hash,
45823
+ 'map': new (Map || ListCache),
45824
+ 'string': new Hash
45825
+ };
45826
+ }
45827
+
45828
+ /**
45829
+ * Removes `key` and its value from the map.
45830
+ *
45831
+ * @private
45832
+ * @name delete
45833
+ * @memberOf MapCache
45834
+ * @param {string} key The key of the value to remove.
45835
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
45836
+ */
45837
+ function mapCacheDelete(key) {
45838
+ var result = getMapData(this, key)['delete'](key);
45839
+ this.size -= result ? 1 : 0;
45840
+ return result;
45841
+ }
45842
+
45843
+ /**
45844
+ * Gets the map value for `key`.
45845
+ *
45846
+ * @private
45847
+ * @name get
45848
+ * @memberOf MapCache
45849
+ * @param {string} key The key of the value to get.
45850
+ * @returns {*} Returns the entry value.
45851
+ */
45852
+ function mapCacheGet(key) {
45853
+ return getMapData(this, key).get(key);
45854
+ }
45855
+
45856
+ /**
45857
+ * Checks if a map value for `key` exists.
45858
+ *
45859
+ * @private
45860
+ * @name has
45861
+ * @memberOf MapCache
45862
+ * @param {string} key The key of the entry to check.
45863
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
45864
+ */
45865
+ function mapCacheHas(key) {
45866
+ return getMapData(this, key).has(key);
45867
+ }
45868
+
45869
+ /**
45870
+ * Sets the map `key` to `value`.
45871
+ *
45872
+ * @private
45873
+ * @name set
45874
+ * @memberOf MapCache
45875
+ * @param {string} key The key of the value to set.
45876
+ * @param {*} value The value to set.
45877
+ * @returns {Object} Returns the map cache instance.
45878
+ */
45879
+ function mapCacheSet(key, value) {
45880
+ var data = getMapData(this, key),
45881
+ size = data.size;
45882
+
45883
+ data.set(key, value);
45884
+ this.size += data.size == size ? 0 : 1;
45885
+ return this;
45886
+ }
45887
+
45888
+ // Add methods to `MapCache`.
45889
+ MapCache.prototype.clear = mapCacheClear;
45890
+ MapCache.prototype['delete'] = mapCacheDelete;
45891
+ MapCache.prototype.get = mapCacheGet;
45892
+ MapCache.prototype.has = mapCacheHas;
45893
+ MapCache.prototype.set = mapCacheSet;
45894
+
45895
+ /**
45896
+ * Creates a stack cache object to store key-value pairs.
45897
+ *
45898
+ * @private
45899
+ * @constructor
45900
+ * @param {Array} [entries] The key-value pairs to cache.
45901
+ */
45902
+ function Stack(entries) {
45903
+ var data = this.__data__ = new ListCache(entries);
45904
+ this.size = data.size;
45905
+ }
45906
+
45907
+ /**
45908
+ * Removes all key-value entries from the stack.
45909
+ *
45910
+ * @private
45911
+ * @name clear
45912
+ * @memberOf Stack
45913
+ */
45914
+ function stackClear() {
45915
+ this.__data__ = new ListCache;
45916
+ this.size = 0;
45917
+ }
45918
+
45919
+ /**
45920
+ * Removes `key` and its value from the stack.
45921
+ *
45922
+ * @private
45923
+ * @name delete
45924
+ * @memberOf Stack
45925
+ * @param {string} key The key of the value to remove.
45926
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
45927
+ */
45928
+ function stackDelete(key) {
45929
+ var data = this.__data__,
45930
+ result = data['delete'](key);
45931
+
45932
+ this.size = data.size;
45933
+ return result;
45934
+ }
45935
+
45936
+ /**
45937
+ * Gets the stack value for `key`.
45938
+ *
45939
+ * @private
45940
+ * @name get
45941
+ * @memberOf Stack
45942
+ * @param {string} key The key of the value to get.
45943
+ * @returns {*} Returns the entry value.
45944
+ */
45945
+ function stackGet(key) {
45946
+ return this.__data__.get(key);
45947
+ }
45948
+
45949
+ /**
45950
+ * Checks if a stack value for `key` exists.
45951
+ *
45952
+ * @private
45953
+ * @name has
45954
+ * @memberOf Stack
45955
+ * @param {string} key The key of the entry to check.
45956
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
45957
+ */
45958
+ function stackHas(key) {
45959
+ return this.__data__.has(key);
45960
+ }
45961
+
45962
+ /**
45963
+ * Sets the stack `key` to `value`.
45964
+ *
45965
+ * @private
45966
+ * @name set
45967
+ * @memberOf Stack
45968
+ * @param {string} key The key of the value to set.
45969
+ * @param {*} value The value to set.
45970
+ * @returns {Object} Returns the stack cache instance.
45971
+ */
45972
+ function stackSet(key, value) {
45973
+ var data = this.__data__;
45974
+ if (data instanceof ListCache) {
45975
+ var pairs = data.__data__;
45976
+ if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
45977
+ pairs.push([key, value]);
45978
+ this.size = ++data.size;
45979
+ return this;
45980
+ }
45981
+ data = this.__data__ = new MapCache(pairs);
45982
+ }
45983
+ data.set(key, value);
45984
+ this.size = data.size;
45985
+ return this;
45986
+ }
45987
+
45988
+ // Add methods to `Stack`.
45989
+ Stack.prototype.clear = stackClear;
45990
+ Stack.prototype['delete'] = stackDelete;
45991
+ Stack.prototype.get = stackGet;
45992
+ Stack.prototype.has = stackHas;
45993
+ Stack.prototype.set = stackSet;
45994
+
45995
+ /**
45996
+ * Creates an array of the enumerable property names of the array-like `value`.
45997
+ *
45998
+ * @private
45999
+ * @param {*} value The value to query.
46000
+ * @param {boolean} inherited Specify returning inherited property names.
46001
+ * @returns {Array} Returns the array of property names.
46002
+ */
46003
+ function arrayLikeKeys(value, inherited) {
46004
+ var isArr = isArray(value),
46005
+ isArg = !isArr && isArguments(value),
46006
+ isBuff = !isArr && !isArg && isBuffer(value),
46007
+ isType = !isArr && !isArg && !isBuff && isTypedArray(value),
46008
+ skipIndexes = isArr || isArg || isBuff || isType,
46009
+ result = skipIndexes ? baseTimes(value.length, String) : [],
46010
+ length = result.length;
46011
+
46012
+ for (var key in value) {
46013
+ if ((inherited || hasOwnProperty.call(value, key)) &&
46014
+ !(skipIndexes && (
46015
+ // Safari 9 has enumerable `arguments.length` in strict mode.
46016
+ key == 'length' ||
46017
+ // Node.js 0.10 has enumerable non-index properties on buffers.
46018
+ (isBuff && (key == 'offset' || key == 'parent')) ||
46019
+ // PhantomJS 2 has enumerable non-index properties on typed arrays.
46020
+ (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
46021
+ // Skip index properties.
46022
+ isIndex(key, length)
46023
+ ))) {
46024
+ result.push(key);
46025
+ }
46026
+ }
46027
+ return result;
46028
+ }
46029
+
46030
+ /**
46031
+ * This function is like `assignValue` except that it doesn't assign
46032
+ * `undefined` values.
46033
+ *
46034
+ * @private
46035
+ * @param {Object} object The object to modify.
46036
+ * @param {string} key The key of the property to assign.
46037
+ * @param {*} value The value to assign.
46038
+ */
46039
+ function assignMergeValue(object, key, value) {
46040
+ if ((value !== undefined && !eq(object[key], value)) ||
46041
+ (value === undefined && !(key in object))) {
46042
+ baseAssignValue(object, key, value);
46043
+ }
46044
+ }
46045
+
46046
+ /**
46047
+ * Assigns `value` to `key` of `object` if the existing value is not equivalent
46048
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
46049
+ * for equality comparisons.
46050
+ *
46051
+ * @private
46052
+ * @param {Object} object The object to modify.
46053
+ * @param {string} key The key of the property to assign.
46054
+ * @param {*} value The value to assign.
46055
+ */
46056
+ function assignValue(object, key, value) {
46057
+ var objValue = object[key];
46058
+ if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
46059
+ (value === undefined && !(key in object))) {
46060
+ baseAssignValue(object, key, value);
46061
+ }
46062
+ }
46063
+
46064
+ /**
46065
+ * Gets the index at which the `key` is found in `array` of key-value pairs.
46066
+ *
46067
+ * @private
46068
+ * @param {Array} array The array to inspect.
46069
+ * @param {*} key The key to search for.
46070
+ * @returns {number} Returns the index of the matched value, else `-1`.
46071
+ */
46072
+ function assocIndexOf(array, key) {
46073
+ var length = array.length;
46074
+ while (length--) {
46075
+ if (eq(array[length][0], key)) {
46076
+ return length;
46077
+ }
46078
+ }
46079
+ return -1;
46080
+ }
46081
+
46082
+ /**
46083
+ * The base implementation of `assignValue` and `assignMergeValue` without
46084
+ * value checks.
46085
+ *
46086
+ * @private
46087
+ * @param {Object} object The object to modify.
46088
+ * @param {string} key The key of the property to assign.
46089
+ * @param {*} value The value to assign.
46090
+ */
46091
+ function baseAssignValue(object, key, value) {
46092
+ if (key == '__proto__' && defineProperty) {
46093
+ defineProperty(object, key, {
46094
+ 'configurable': true,
46095
+ 'enumerable': true,
46096
+ 'value': value,
46097
+ 'writable': true
46098
+ });
46099
+ } else {
46100
+ object[key] = value;
46101
+ }
46102
+ }
46103
+
46104
+ /**
46105
+ * The base implementation of `baseForOwn` which iterates over `object`
46106
+ * properties returned by `keysFunc` and invokes `iteratee` for each property.
46107
+ * Iteratee functions may exit iteration early by explicitly returning `false`.
46108
+ *
46109
+ * @private
46110
+ * @param {Object} object The object to iterate over.
46111
+ * @param {Function} iteratee The function invoked per iteration.
46112
+ * @param {Function} keysFunc The function to get the keys of `object`.
46113
+ * @returns {Object} Returns `object`.
46114
+ */
46115
+ var baseFor = createBaseFor();
46116
+
46117
+ /**
46118
+ * The base implementation of `getTag` without fallbacks for buggy environments.
46119
+ *
46120
+ * @private
46121
+ * @param {*} value The value to query.
46122
+ * @returns {string} Returns the `toStringTag`.
46123
+ */
46124
+ function baseGetTag(value) {
46125
+ if (value == null) {
46126
+ return value === undefined ? undefinedTag : nullTag;
46127
+ }
46128
+ return (symToStringTag && symToStringTag in Object(value))
46129
+ ? getRawTag(value)
46130
+ : objectToString(value);
46131
+ }
46132
+
46133
+ /**
46134
+ * The base implementation of `_.isArguments`.
46135
+ *
46136
+ * @private
46137
+ * @param {*} value The value to check.
46138
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
46139
+ */
46140
+ function baseIsArguments(value) {
46141
+ return isObjectLike(value) && baseGetTag(value) == argsTag;
46142
+ }
46143
+
46144
+ /**
46145
+ * The base implementation of `_.isNative` without bad shim checks.
46146
+ *
46147
+ * @private
46148
+ * @param {*} value The value to check.
46149
+ * @returns {boolean} Returns `true` if `value` is a native function,
46150
+ * else `false`.
46151
+ */
46152
+ function baseIsNative(value) {
46153
+ if (!isObject(value) || isMasked(value)) {
46154
+ return false;
46155
+ }
46156
+ var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
46157
+ return pattern.test(toSource(value));
46158
+ }
46159
+
46160
+ /**
46161
+ * The base implementation of `_.isTypedArray` without Node.js optimizations.
46162
+ *
46163
+ * @private
46164
+ * @param {*} value The value to check.
46165
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
46166
+ */
46167
+ function baseIsTypedArray(value) {
46168
+ return isObjectLike(value) &&
46169
+ isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
46170
+ }
46171
+
46172
+ /**
46173
+ * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
46174
+ *
46175
+ * @private
46176
+ * @param {Object} object The object to query.
46177
+ * @returns {Array} Returns the array of property names.
46178
+ */
46179
+ function baseKeysIn(object) {
46180
+ if (!isObject(object)) {
46181
+ return nativeKeysIn(object);
46182
+ }
46183
+ var isProto = isPrototype(object),
46184
+ result = [];
46185
+
46186
+ for (var key in object) {
46187
+ if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
46188
+ result.push(key);
46189
+ }
46190
+ }
46191
+ return result;
46192
+ }
46193
+
46194
+ /**
46195
+ * The base implementation of `_.merge` without support for multiple sources.
46196
+ *
46197
+ * @private
46198
+ * @param {Object} object The destination object.
46199
+ * @param {Object} source The source object.
46200
+ * @param {number} srcIndex The index of `source`.
46201
+ * @param {Function} [customizer] The function to customize merged values.
46202
+ * @param {Object} [stack] Tracks traversed source values and their merged
46203
+ * counterparts.
46204
+ */
46205
+ function baseMerge(object, source, srcIndex, customizer, stack) {
46206
+ if (object === source) {
46207
+ return;
46208
+ }
46209
+ baseFor(source, function(srcValue, key) {
46210
+ stack || (stack = new Stack);
46211
+ if (isObject(srcValue)) {
46212
+ baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
46213
+ }
46214
+ else {
46215
+ var newValue = customizer
46216
+ ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
46217
+ : undefined;
46218
+
46219
+ if (newValue === undefined) {
46220
+ newValue = srcValue;
46221
+ }
46222
+ assignMergeValue(object, key, newValue);
46223
+ }
46224
+ }, keysIn);
46225
+ }
46226
+
46227
+ /**
46228
+ * A specialized version of `baseMerge` for arrays and objects which performs
46229
+ * deep merges and tracks traversed objects enabling objects with circular
46230
+ * references to be merged.
46231
+ *
46232
+ * @private
46233
+ * @param {Object} object The destination object.
46234
+ * @param {Object} source The source object.
46235
+ * @param {string} key The key of the value to merge.
46236
+ * @param {number} srcIndex The index of `source`.
46237
+ * @param {Function} mergeFunc The function to merge values.
46238
+ * @param {Function} [customizer] The function to customize assigned values.
46239
+ * @param {Object} [stack] Tracks traversed source values and their merged
46240
+ * counterparts.
46241
+ */
46242
+ function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
46243
+ var objValue = safeGet(object, key),
46244
+ srcValue = safeGet(source, key),
46245
+ stacked = stack.get(srcValue);
46246
+
46247
+ if (stacked) {
46248
+ assignMergeValue(object, key, stacked);
46249
+ return;
46250
+ }
46251
+ var newValue = customizer
46252
+ ? customizer(objValue, srcValue, (key + ''), object, source, stack)
46253
+ : undefined;
46254
+
46255
+ var isCommon = newValue === undefined;
46256
+
46257
+ if (isCommon) {
46258
+ var isArr = isArray(srcValue),
46259
+ isBuff = !isArr && isBuffer(srcValue),
46260
+ isTyped = !isArr && !isBuff && isTypedArray(srcValue);
46261
+
46262
+ newValue = srcValue;
46263
+ if (isArr || isBuff || isTyped) {
46264
+ if (isArray(objValue)) {
46265
+ newValue = objValue;
46266
+ }
46267
+ else if (isArrayLikeObject(objValue)) {
46268
+ newValue = copyArray(objValue);
46269
+ }
46270
+ else if (isBuff) {
46271
+ isCommon = false;
46272
+ newValue = cloneBuffer(srcValue, true);
46273
+ }
46274
+ else if (isTyped) {
46275
+ isCommon = false;
46276
+ newValue = cloneTypedArray(srcValue, true);
46277
+ }
46278
+ else {
46279
+ newValue = [];
46280
+ }
46281
+ }
46282
+ else if (isPlainObject(srcValue) || isArguments(srcValue)) {
46283
+ newValue = objValue;
46284
+ if (isArguments(objValue)) {
46285
+ newValue = toPlainObject(objValue);
46286
+ }
46287
+ else if (!isObject(objValue) || isFunction(objValue)) {
46288
+ newValue = initCloneObject(srcValue);
46289
+ }
46290
+ }
46291
+ else {
46292
+ isCommon = false;
46293
+ }
46294
+ }
46295
+ if (isCommon) {
46296
+ // Recursively merge objects and arrays (susceptible to call stack limits).
46297
+ stack.set(srcValue, newValue);
46298
+ mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
46299
+ stack['delete'](srcValue);
46300
+ }
46301
+ assignMergeValue(object, key, newValue);
46302
+ }
46303
+
46304
+ /**
46305
+ * The base implementation of `_.rest` which doesn't validate or coerce arguments.
46306
+ *
46307
+ * @private
46308
+ * @param {Function} func The function to apply a rest parameter to.
46309
+ * @param {number} [start=func.length-1] The start position of the rest parameter.
46310
+ * @returns {Function} Returns the new function.
46311
+ */
46312
+ function baseRest(func, start) {
46313
+ return setToString(overRest(func, start, identity), func + '');
46314
+ }
46315
+
46316
+ /**
46317
+ * The base implementation of `setToString` without support for hot loop shorting.
46318
+ *
46319
+ * @private
46320
+ * @param {Function} func The function to modify.
46321
+ * @param {Function} string The `toString` result.
46322
+ * @returns {Function} Returns `func`.
46323
+ */
46324
+ var baseSetToString = !defineProperty ? identity : function(func, string) {
46325
+ return defineProperty(func, 'toString', {
46326
+ 'configurable': true,
46327
+ 'enumerable': false,
46328
+ 'value': constant(string),
46329
+ 'writable': true
46330
+ });
46331
+ };
46332
+
46333
+ /**
46334
+ * Creates a clone of `buffer`.
46335
+ *
46336
+ * @private
46337
+ * @param {Buffer} buffer The buffer to clone.
46338
+ * @param {boolean} [isDeep] Specify a deep clone.
46339
+ * @returns {Buffer} Returns the cloned buffer.
46340
+ */
46341
+ function cloneBuffer(buffer, isDeep) {
46342
+ if (isDeep) {
46343
+ return buffer.slice();
46344
+ }
46345
+ var length = buffer.length,
46346
+ result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
46347
+
46348
+ buffer.copy(result);
46349
+ return result;
46350
+ }
46351
+
46352
+ /**
46353
+ * Creates a clone of `arrayBuffer`.
46354
+ *
46355
+ * @private
46356
+ * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
46357
+ * @returns {ArrayBuffer} Returns the cloned array buffer.
46358
+ */
46359
+ function cloneArrayBuffer(arrayBuffer) {
46360
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
46361
+ new Uint8Array(result).set(new Uint8Array(arrayBuffer));
46362
+ return result;
46363
+ }
46364
+
46365
+ /**
46366
+ * Creates a clone of `typedArray`.
46367
+ *
46368
+ * @private
46369
+ * @param {Object} typedArray The typed array to clone.
46370
+ * @param {boolean} [isDeep] Specify a deep clone.
46371
+ * @returns {Object} Returns the cloned typed array.
46372
+ */
46373
+ function cloneTypedArray(typedArray, isDeep) {
46374
+ var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
46375
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
46376
+ }
46377
+
46378
+ /**
46379
+ * Copies the values of `source` to `array`.
46380
+ *
46381
+ * @private
46382
+ * @param {Array} source The array to copy values from.
46383
+ * @param {Array} [array=[]] The array to copy values to.
46384
+ * @returns {Array} Returns `array`.
46385
+ */
46386
+ function copyArray(source, array) {
46387
+ var index = -1,
46388
+ length = source.length;
46389
+
46390
+ array || (array = Array(length));
46391
+ while (++index < length) {
46392
+ array[index] = source[index];
46393
+ }
46394
+ return array;
46395
+ }
46396
+
46397
+ /**
46398
+ * Copies properties of `source` to `object`.
46399
+ *
46400
+ * @private
46401
+ * @param {Object} source The object to copy properties from.
46402
+ * @param {Array} props The property identifiers to copy.
46403
+ * @param {Object} [object={}] The object to copy properties to.
46404
+ * @param {Function} [customizer] The function to customize copied values.
46405
+ * @returns {Object} Returns `object`.
46406
+ */
46407
+ function copyObject(source, props, object, customizer) {
46408
+ var isNew = !object;
46409
+ object || (object = {});
46410
+
46411
+ var index = -1,
46412
+ length = props.length;
46413
+
46414
+ while (++index < length) {
46415
+ var key = props[index];
46416
+
46417
+ var newValue = customizer
46418
+ ? customizer(object[key], source[key], key, object, source)
46419
+ : undefined;
46420
+
46421
+ if (newValue === undefined) {
46422
+ newValue = source[key];
46423
+ }
46424
+ if (isNew) {
46425
+ baseAssignValue(object, key, newValue);
46426
+ } else {
46427
+ assignValue(object, key, newValue);
46428
+ }
46429
+ }
46430
+ return object;
46431
+ }
46432
+
46433
+ /**
46434
+ * Creates a function like `_.assign`.
46435
+ *
46436
+ * @private
46437
+ * @param {Function} assigner The function to assign values.
46438
+ * @returns {Function} Returns the new assigner function.
46439
+ */
46440
+ function createAssigner(assigner) {
46441
+ return baseRest(function(object, sources) {
46442
+ var index = -1,
46443
+ length = sources.length,
46444
+ customizer = length > 1 ? sources[length - 1] : undefined,
46445
+ guard = length > 2 ? sources[2] : undefined;
46446
+
46447
+ customizer = (assigner.length > 3 && typeof customizer == 'function')
46448
+ ? (length--, customizer)
46449
+ : undefined;
46450
+
46451
+ if (guard && isIterateeCall(sources[0], sources[1], guard)) {
46452
+ customizer = length < 3 ? undefined : customizer;
46453
+ length = 1;
46454
+ }
46455
+ object = Object(object);
46456
+ while (++index < length) {
46457
+ var source = sources[index];
46458
+ if (source) {
46459
+ assigner(object, source, index, customizer);
46460
+ }
46461
+ }
46462
+ return object;
46463
+ });
46464
+ }
46465
+
46466
+ /**
46467
+ * Creates a base function for methods like `_.forIn` and `_.forOwn`.
46468
+ *
46469
+ * @private
46470
+ * @param {boolean} [fromRight] Specify iterating from right to left.
46471
+ * @returns {Function} Returns the new base function.
46472
+ */
46473
+ function createBaseFor(fromRight) {
46474
+ return function(object, iteratee, keysFunc) {
46475
+ var index = -1,
46476
+ iterable = Object(object),
46477
+ props = keysFunc(object),
46478
+ length = props.length;
46479
+
46480
+ while (length--) {
46481
+ var key = props[fromRight ? length : ++index];
46482
+ if (iteratee(iterable[key], key, iterable) === false) {
46483
+ break;
46484
+ }
46485
+ }
46486
+ return object;
46487
+ };
46488
+ }
46489
+
46490
+ /**
46491
+ * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source
46492
+ * objects into destination objects that are passed thru.
46493
+ *
46494
+ * @private
46495
+ * @param {*} objValue The destination value.
46496
+ * @param {*} srcValue The source value.
46497
+ * @param {string} key The key of the property to merge.
46498
+ * @param {Object} object The parent object of `objValue`.
46499
+ * @param {Object} source The parent object of `srcValue`.
46500
+ * @param {Object} [stack] Tracks traversed source values and their merged
46501
+ * counterparts.
46502
+ * @returns {*} Returns the value to assign.
46503
+ */
46504
+ function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
46505
+ if (isObject(objValue) && isObject(srcValue)) {
46506
+ // Recursively merge objects and arrays (susceptible to call stack limits).
46507
+ stack.set(srcValue, objValue);
46508
+ baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);
46509
+ stack['delete'](srcValue);
46510
+ }
46511
+ return objValue;
46512
+ }
46513
+
46514
+ /**
46515
+ * Gets the data for `map`.
46516
+ *
46517
+ * @private
46518
+ * @param {Object} map The map to query.
46519
+ * @param {string} key The reference key.
46520
+ * @returns {*} Returns the map data.
46521
+ */
46522
+ function getMapData(map, key) {
46523
+ var data = map.__data__;
46524
+ return isKeyable(key)
46525
+ ? data[typeof key == 'string' ? 'string' : 'hash']
46526
+ : data.map;
46527
+ }
46528
+
46529
+ /**
46530
+ * Gets the native function at `key` of `object`.
46531
+ *
46532
+ * @private
46533
+ * @param {Object} object The object to query.
46534
+ * @param {string} key The key of the method to get.
46535
+ * @returns {*} Returns the function if it's native, else `undefined`.
46536
+ */
46537
+ function getNative(object, key) {
46538
+ var value = getValue(object, key);
46539
+ return baseIsNative(value) ? value : undefined;
46540
+ }
46541
+
46542
+ /**
46543
+ * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
46544
+ *
46545
+ * @private
46546
+ * @param {*} value The value to query.
46547
+ * @returns {string} Returns the raw `toStringTag`.
46548
+ */
46549
+ function getRawTag(value) {
46550
+ var isOwn = hasOwnProperty.call(value, symToStringTag),
46551
+ tag = value[symToStringTag];
46552
+
46553
+ try {
46554
+ value[symToStringTag] = undefined;
46555
+ var unmasked = true;
46556
+ } catch (e) {}
46557
+
46558
+ var result = nativeObjectToString.call(value);
46559
+ if (unmasked) {
46560
+ if (isOwn) {
46561
+ value[symToStringTag] = tag;
46562
+ } else {
46563
+ delete value[symToStringTag];
46564
+ }
46565
+ }
46566
+ return result;
46567
+ }
46568
+
46569
+ /**
46570
+ * Initializes an object clone.
46571
+ *
46572
+ * @private
46573
+ * @param {Object} object The object to clone.
46574
+ * @returns {Object} Returns the initialized clone.
46575
+ */
46576
+ function initCloneObject(object) {
46577
+ return (typeof object.constructor == 'function' && !isPrototype(object))
46578
+ ? baseCreate(getPrototype(object))
46579
+ : {};
46580
+ }
46581
+
46582
+ /**
46583
+ * Checks if `value` is a valid array-like index.
46584
+ *
46585
+ * @private
46586
+ * @param {*} value The value to check.
46587
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
46588
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
46589
+ */
46590
+ function isIndex(value, length) {
46591
+ var type = typeof value;
46592
+ length = length == null ? MAX_SAFE_INTEGER : length;
46593
+
46594
+ return !!length &&
46595
+ (type == 'number' ||
46596
+ (type != 'symbol' && reIsUint.test(value))) &&
46597
+ (value > -1 && value % 1 == 0 && value < length);
46598
+ }
46599
+
46600
+ /**
46601
+ * Checks if the given arguments are from an iteratee call.
46602
+ *
46603
+ * @private
46604
+ * @param {*} value The potential iteratee value argument.
46605
+ * @param {*} index The potential iteratee index or key argument.
46606
+ * @param {*} object The potential iteratee object argument.
46607
+ * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
46608
+ * else `false`.
46609
+ */
46610
+ function isIterateeCall(value, index, object) {
46611
+ if (!isObject(object)) {
46612
+ return false;
46613
+ }
46614
+ var type = typeof index;
46615
+ if (type == 'number'
46616
+ ? (isArrayLike(object) && isIndex(index, object.length))
46617
+ : (type == 'string' && index in object)
46618
+ ) {
46619
+ return eq(object[index], value);
46620
+ }
46621
+ return false;
46622
+ }
46623
+
46624
+ /**
46625
+ * Checks if `value` is suitable for use as unique object key.
46626
+ *
46627
+ * @private
46628
+ * @param {*} value The value to check.
46629
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
46630
+ */
46631
+ function isKeyable(value) {
46632
+ var type = typeof value;
46633
+ return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
46634
+ ? (value !== '__proto__')
46635
+ : (value === null);
46636
+ }
46637
+
46638
+ /**
46639
+ * Checks if `func` has its source masked.
46640
+ *
46641
+ * @private
46642
+ * @param {Function} func The function to check.
46643
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
46644
+ */
46645
+ function isMasked(func) {
46646
+ return !!maskSrcKey && (maskSrcKey in func);
46647
+ }
46648
+
46649
+ /**
46650
+ * Checks if `value` is likely a prototype object.
46651
+ *
46652
+ * @private
46653
+ * @param {*} value The value to check.
46654
+ * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
46655
+ */
46656
+ function isPrototype(value) {
46657
+ var Ctor = value && value.constructor,
46658
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
46659
+
46660
+ return value === proto;
46661
+ }
46662
+
46663
+ /**
46664
+ * This function is like
46665
+ * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
46666
+ * except that it includes inherited enumerable properties.
46667
+ *
46668
+ * @private
46669
+ * @param {Object} object The object to query.
46670
+ * @returns {Array} Returns the array of property names.
46671
+ */
46672
+ function nativeKeysIn(object) {
46673
+ var result = [];
46674
+ if (object != null) {
46675
+ for (var key in Object(object)) {
46676
+ result.push(key);
46677
+ }
46678
+ }
46679
+ return result;
46680
+ }
46681
+
46682
+ /**
46683
+ * Converts `value` to a string using `Object.prototype.toString`.
46684
+ *
46685
+ * @private
46686
+ * @param {*} value The value to convert.
46687
+ * @returns {string} Returns the converted string.
46688
+ */
46689
+ function objectToString(value) {
46690
+ return nativeObjectToString.call(value);
46691
+ }
46692
+
46693
+ /**
46694
+ * A specialized version of `baseRest` which transforms the rest array.
46695
+ *
46696
+ * @private
46697
+ * @param {Function} func The function to apply a rest parameter to.
46698
+ * @param {number} [start=func.length-1] The start position of the rest parameter.
46699
+ * @param {Function} transform The rest array transform.
46700
+ * @returns {Function} Returns the new function.
46701
+ */
46702
+ function overRest(func, start, transform) {
46703
+ start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
46704
+ return function() {
46705
+ var args = arguments,
46706
+ index = -1,
46707
+ length = nativeMax(args.length - start, 0),
46708
+ array = Array(length);
46709
+
46710
+ while (++index < length) {
46711
+ array[index] = args[start + index];
46712
+ }
46713
+ index = -1;
46714
+ var otherArgs = Array(start + 1);
46715
+ while (++index < start) {
46716
+ otherArgs[index] = args[index];
46717
+ }
46718
+ otherArgs[start] = transform(array);
46719
+ return apply(func, this, otherArgs);
46720
+ };
46721
+ }
46722
+
46723
+ /**
46724
+ * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
46725
+ *
46726
+ * @private
46727
+ * @param {Object} object The object to query.
46728
+ * @param {string} key The key of the property to get.
46729
+ * @returns {*} Returns the property value.
46730
+ */
46731
+ function safeGet(object, key) {
46732
+ if (key === 'constructor' && typeof object[key] === 'function') {
46733
+ return;
46734
+ }
46735
+
46736
+ if (key == '__proto__') {
46737
+ return;
46738
+ }
46739
+
46740
+ return object[key];
46741
+ }
46742
+
46743
+ /**
46744
+ * Sets the `toString` method of `func` to return `string`.
46745
+ *
46746
+ * @private
46747
+ * @param {Function} func The function to modify.
46748
+ * @param {Function} string The `toString` result.
46749
+ * @returns {Function} Returns `func`.
46750
+ */
46751
+ var setToString = shortOut(baseSetToString);
46752
+
46753
+ /**
46754
+ * Creates a function that'll short out and invoke `identity` instead
46755
+ * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
46756
+ * milliseconds.
46757
+ *
46758
+ * @private
46759
+ * @param {Function} func The function to restrict.
46760
+ * @returns {Function} Returns the new shortable function.
46761
+ */
46762
+ function shortOut(func) {
46763
+ var count = 0,
46764
+ lastCalled = 0;
46765
+
46766
+ return function() {
46767
+ var stamp = nativeNow(),
46768
+ remaining = HOT_SPAN - (stamp - lastCalled);
46769
+
46770
+ lastCalled = stamp;
46771
+ if (remaining > 0) {
46772
+ if (++count >= HOT_COUNT) {
46773
+ return arguments[0];
46774
+ }
46775
+ } else {
46776
+ count = 0;
46777
+ }
46778
+ return func.apply(undefined, arguments);
46779
+ };
46780
+ }
46781
+
46782
+ /**
46783
+ * Converts `func` to its source code.
46784
+ *
46785
+ * @private
46786
+ * @param {Function} func The function to convert.
46787
+ * @returns {string} Returns the source code.
46788
+ */
46789
+ function toSource(func) {
46790
+ if (func != null) {
46791
+ try {
46792
+ return funcToString.call(func);
46793
+ } catch (e) {}
46794
+ try {
46795
+ return (func + '');
46796
+ } catch (e) {}
46797
+ }
46798
+ return '';
46799
+ }
46800
+
46801
+ /**
46802
+ * Performs a
46803
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
46804
+ * comparison between two values to determine if they are equivalent.
46805
+ *
46806
+ * @static
46807
+ * @memberOf _
46808
+ * @since 4.0.0
46809
+ * @category Lang
46810
+ * @param {*} value The value to compare.
46811
+ * @param {*} other The other value to compare.
46812
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
46813
+ * @example
46814
+ *
46815
+ * var object = { 'a': 1 };
46816
+ * var other = { 'a': 1 };
46817
+ *
46818
+ * _.eq(object, object);
46819
+ * // => true
46820
+ *
46821
+ * _.eq(object, other);
46822
+ * // => false
46823
+ *
46824
+ * _.eq('a', 'a');
46825
+ * // => true
46826
+ *
46827
+ * _.eq('a', Object('a'));
46828
+ * // => false
46829
+ *
46830
+ * _.eq(NaN, NaN);
46831
+ * // => true
46832
+ */
46833
+ function eq(value, other) {
46834
+ return value === other || (value !== value && other !== other);
46835
+ }
46836
+
46837
+ /**
46838
+ * Checks if `value` is likely an `arguments` object.
46839
+ *
46840
+ * @static
46841
+ * @memberOf _
46842
+ * @since 0.1.0
46843
+ * @category Lang
46844
+ * @param {*} value The value to check.
46845
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
46846
+ * else `false`.
46847
+ * @example
46848
+ *
46849
+ * _.isArguments(function() { return arguments; }());
46850
+ * // => true
46851
+ *
46852
+ * _.isArguments([1, 2, 3]);
46853
+ * // => false
46854
+ */
46855
+ var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
46856
+ return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
46857
+ !propertyIsEnumerable.call(value, 'callee');
46858
+ };
46859
+
46860
+ /**
46861
+ * Checks if `value` is classified as an `Array` object.
46862
+ *
46863
+ * @static
46864
+ * @memberOf _
46865
+ * @since 0.1.0
46866
+ * @category Lang
46867
+ * @param {*} value The value to check.
46868
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
46869
+ * @example
46870
+ *
46871
+ * _.isArray([1, 2, 3]);
46872
+ * // => true
46873
+ *
46874
+ * _.isArray(document.body.children);
46875
+ * // => false
46876
+ *
46877
+ * _.isArray('abc');
46878
+ * // => false
46879
+ *
46880
+ * _.isArray(_.noop);
46881
+ * // => false
46882
+ */
46883
+ var isArray = Array.isArray;
46884
+
46885
+ /**
46886
+ * Checks if `value` is array-like. A value is considered array-like if it's
46887
+ * not a function and has a `value.length` that's an integer greater than or
46888
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
46889
+ *
46890
+ * @static
46891
+ * @memberOf _
46892
+ * @since 4.0.0
46893
+ * @category Lang
46894
+ * @param {*} value The value to check.
46895
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
46896
+ * @example
46897
+ *
46898
+ * _.isArrayLike([1, 2, 3]);
46899
+ * // => true
46900
+ *
46901
+ * _.isArrayLike(document.body.children);
46902
+ * // => true
46903
+ *
46904
+ * _.isArrayLike('abc');
46905
+ * // => true
46906
+ *
46907
+ * _.isArrayLike(_.noop);
46908
+ * // => false
46909
+ */
46910
+ function isArrayLike(value) {
46911
+ return value != null && isLength(value.length) && !isFunction(value);
46912
+ }
46913
+
46914
+ /**
46915
+ * This method is like `_.isArrayLike` except that it also checks if `value`
46916
+ * is an object.
46917
+ *
46918
+ * @static
46919
+ * @memberOf _
46920
+ * @since 4.0.0
46921
+ * @category Lang
46922
+ * @param {*} value The value to check.
46923
+ * @returns {boolean} Returns `true` if `value` is an array-like object,
46924
+ * else `false`.
46925
+ * @example
46926
+ *
46927
+ * _.isArrayLikeObject([1, 2, 3]);
46928
+ * // => true
46929
+ *
46930
+ * _.isArrayLikeObject(document.body.children);
46931
+ * // => true
46932
+ *
46933
+ * _.isArrayLikeObject('abc');
46934
+ * // => false
46935
+ *
46936
+ * _.isArrayLikeObject(_.noop);
46937
+ * // => false
46938
+ */
46939
+ function isArrayLikeObject(value) {
46940
+ return isObjectLike(value) && isArrayLike(value);
46941
+ }
46942
+
46943
+ /**
46944
+ * Checks if `value` is a buffer.
46945
+ *
46946
+ * @static
46947
+ * @memberOf _
46948
+ * @since 4.3.0
46949
+ * @category Lang
46950
+ * @param {*} value The value to check.
46951
+ * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
46952
+ * @example
46953
+ *
46954
+ * _.isBuffer(new Buffer(2));
46955
+ * // => true
46956
+ *
46957
+ * _.isBuffer(new Uint8Array(2));
46958
+ * // => false
46959
+ */
46960
+ var isBuffer = nativeIsBuffer || stubFalse;
46961
+
46962
+ /**
46963
+ * Checks if `value` is classified as a `Function` object.
46964
+ *
46965
+ * @static
46966
+ * @memberOf _
46967
+ * @since 0.1.0
46968
+ * @category Lang
46969
+ * @param {*} value The value to check.
46970
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
46971
+ * @example
46972
+ *
46973
+ * _.isFunction(_);
46974
+ * // => true
46975
+ *
46976
+ * _.isFunction(/abc/);
46977
+ * // => false
46978
+ */
46979
+ function isFunction(value) {
46980
+ if (!isObject(value)) {
46981
+ return false;
46982
+ }
46983
+ // The use of `Object#toString` avoids issues with the `typeof` operator
46984
+ // in Safari 9 which returns 'object' for typed arrays and other constructors.
46985
+ var tag = baseGetTag(value);
46986
+ return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
46987
+ }
46988
+
46989
+ /**
46990
+ * Checks if `value` is a valid array-like length.
46991
+ *
46992
+ * **Note:** This method is loosely based on
46993
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
46994
+ *
46995
+ * @static
46996
+ * @memberOf _
46997
+ * @since 4.0.0
46998
+ * @category Lang
46999
+ * @param {*} value The value to check.
47000
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
47001
+ * @example
47002
+ *
47003
+ * _.isLength(3);
47004
+ * // => true
47005
+ *
47006
+ * _.isLength(Number.MIN_VALUE);
47007
+ * // => false
47008
+ *
47009
+ * _.isLength(Infinity);
47010
+ * // => false
47011
+ *
47012
+ * _.isLength('3');
47013
+ * // => false
47014
+ */
47015
+ function isLength(value) {
47016
+ return typeof value == 'number' &&
47017
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
47018
+ }
47019
+
47020
+ /**
47021
+ * Checks if `value` is the
47022
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
47023
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
47024
+ *
47025
+ * @static
47026
+ * @memberOf _
47027
+ * @since 0.1.0
47028
+ * @category Lang
47029
+ * @param {*} value The value to check.
47030
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
47031
+ * @example
47032
+ *
47033
+ * _.isObject({});
47034
+ * // => true
47035
+ *
47036
+ * _.isObject([1, 2, 3]);
47037
+ * // => true
47038
+ *
47039
+ * _.isObject(_.noop);
47040
+ * // => true
47041
+ *
47042
+ * _.isObject(null);
47043
+ * // => false
47044
+ */
47045
+ function isObject(value) {
47046
+ var type = typeof value;
47047
+ return value != null && (type == 'object' || type == 'function');
47048
+ }
47049
+
47050
+ /**
47051
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
47052
+ * and has a `typeof` result of "object".
47053
+ *
47054
+ * @static
47055
+ * @memberOf _
47056
+ * @since 4.0.0
47057
+ * @category Lang
47058
+ * @param {*} value The value to check.
47059
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
47060
+ * @example
47061
+ *
47062
+ * _.isObjectLike({});
47063
+ * // => true
47064
+ *
47065
+ * _.isObjectLike([1, 2, 3]);
47066
+ * // => true
47067
+ *
47068
+ * _.isObjectLike(_.noop);
47069
+ * // => false
47070
+ *
47071
+ * _.isObjectLike(null);
47072
+ * // => false
47073
+ */
47074
+ function isObjectLike(value) {
47075
+ return value != null && typeof value == 'object';
47076
+ }
47077
+
47078
+ /**
47079
+ * Checks if `value` is a plain object, that is, an object created by the
47080
+ * `Object` constructor or one with a `[[Prototype]]` of `null`.
47081
+ *
47082
+ * @static
47083
+ * @memberOf _
47084
+ * @since 0.8.0
47085
+ * @category Lang
47086
+ * @param {*} value The value to check.
47087
+ * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
47088
+ * @example
47089
+ *
47090
+ * function Foo() {
47091
+ * this.a = 1;
47092
+ * }
47093
+ *
47094
+ * _.isPlainObject(new Foo);
47095
+ * // => false
47096
+ *
47097
+ * _.isPlainObject([1, 2, 3]);
47098
+ * // => false
47099
+ *
47100
+ * _.isPlainObject({ 'x': 0, 'y': 0 });
47101
+ * // => true
47102
+ *
47103
+ * _.isPlainObject(Object.create(null));
47104
+ * // => true
47105
+ */
47106
+ function isPlainObject(value) {
47107
+ if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
47108
+ return false;
47109
+ }
47110
+ var proto = getPrototype(value);
47111
+ if (proto === null) {
47112
+ return true;
47113
+ }
47114
+ var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
47115
+ return typeof Ctor == 'function' && Ctor instanceof Ctor &&
47116
+ funcToString.call(Ctor) == objectCtorString;
47117
+ }
47118
+
47119
+ /**
47120
+ * Checks if `value` is classified as a typed array.
47121
+ *
47122
+ * @static
47123
+ * @memberOf _
47124
+ * @since 3.0.0
47125
+ * @category Lang
47126
+ * @param {*} value The value to check.
47127
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
47128
+ * @example
47129
+ *
47130
+ * _.isTypedArray(new Uint8Array);
47131
+ * // => true
47132
+ *
47133
+ * _.isTypedArray([]);
47134
+ * // => false
47135
+ */
47136
+ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
47137
+
47138
+ /**
47139
+ * Converts `value` to a plain object flattening inherited enumerable string
47140
+ * keyed properties of `value` to own properties of the plain object.
47141
+ *
47142
+ * @static
47143
+ * @memberOf _
47144
+ * @since 3.0.0
47145
+ * @category Lang
47146
+ * @param {*} value The value to convert.
47147
+ * @returns {Object} Returns the converted plain object.
47148
+ * @example
47149
+ *
47150
+ * function Foo() {
47151
+ * this.b = 2;
47152
+ * }
47153
+ *
47154
+ * Foo.prototype.c = 3;
47155
+ *
47156
+ * _.assign({ 'a': 1 }, new Foo);
47157
+ * // => { 'a': 1, 'b': 2 }
47158
+ *
47159
+ * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
47160
+ * // => { 'a': 1, 'b': 2, 'c': 3 }
47161
+ */
47162
+ function toPlainObject(value) {
47163
+ return copyObject(value, keysIn(value));
47164
+ }
47165
+
47166
+ /**
47167
+ * This method is like `_.defaults` except that it recursively assigns
47168
+ * default properties.
47169
+ *
47170
+ * **Note:** This method mutates `object`.
47171
+ *
47172
+ * @static
47173
+ * @memberOf _
47174
+ * @since 3.10.0
47175
+ * @category Object
47176
+ * @param {Object} object The destination object.
47177
+ * @param {...Object} [sources] The source objects.
47178
+ * @returns {Object} Returns `object`.
47179
+ * @see _.defaults
47180
+ * @example
47181
+ *
47182
+ * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });
47183
+ * // => { 'a': { 'b': 2, 'c': 3 } }
47184
+ */
47185
+ var defaultsDeep = baseRest(function(args) {
47186
+ args.push(undefined, customDefaultsMerge);
47187
+ return apply(mergeWith, undefined, args);
47188
+ });
47189
+
47190
+ /**
47191
+ * Creates an array of the own and inherited enumerable property names of `object`.
47192
+ *
47193
+ * **Note:** Non-object values are coerced to objects.
47194
+ *
47195
+ * @static
47196
+ * @memberOf _
47197
+ * @since 3.0.0
47198
+ * @category Object
47199
+ * @param {Object} object The object to query.
47200
+ * @returns {Array} Returns the array of property names.
47201
+ * @example
47202
+ *
47203
+ * function Foo() {
47204
+ * this.a = 1;
47205
+ * this.b = 2;
47206
+ * }
47207
+ *
47208
+ * Foo.prototype.c = 3;
47209
+ *
47210
+ * _.keysIn(new Foo);
47211
+ * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
47212
+ */
47213
+ function keysIn(object) {
47214
+ return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
47215
+ }
47216
+
47217
+ /**
47218
+ * This method is like `_.merge` except that it accepts `customizer` which
47219
+ * is invoked to produce the merged values of the destination and source
47220
+ * properties. If `customizer` returns `undefined`, merging is handled by the
47221
+ * method instead. The `customizer` is invoked with six arguments:
47222
+ * (objValue, srcValue, key, object, source, stack).
47223
+ *
47224
+ * **Note:** This method mutates `object`.
47225
+ *
47226
+ * @static
47227
+ * @memberOf _
47228
+ * @since 4.0.0
47229
+ * @category Object
47230
+ * @param {Object} object The destination object.
47231
+ * @param {...Object} sources The source objects.
47232
+ * @param {Function} customizer The function to customize assigned values.
47233
+ * @returns {Object} Returns `object`.
47234
+ * @example
47235
+ *
47236
+ * function customizer(objValue, srcValue) {
47237
+ * if (_.isArray(objValue)) {
47238
+ * return objValue.concat(srcValue);
47239
+ * }
47240
+ * }
47241
+ *
47242
+ * var object = { 'a': [1], 'b': [2] };
47243
+ * var other = { 'a': [3], 'b': [4] };
47244
+ *
47245
+ * _.mergeWith(object, other, customizer);
47246
+ * // => { 'a': [1, 3], 'b': [2, 4] }
47247
+ */
47248
+ var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {
47249
+ baseMerge(object, source, srcIndex, customizer);
47250
+ });
47251
+
47252
+ /**
47253
+ * Creates a function that returns `value`.
47254
+ *
47255
+ * @static
47256
+ * @memberOf _
47257
+ * @since 2.4.0
47258
+ * @category Util
47259
+ * @param {*} value The value to return from the new function.
47260
+ * @returns {Function} Returns the new constant function.
47261
+ * @example
47262
+ *
47263
+ * var objects = _.times(2, _.constant({ 'a': 1 }));
47264
+ *
47265
+ * console.log(objects);
47266
+ * // => [{ 'a': 1 }, { 'a': 1 }]
47267
+ *
47268
+ * console.log(objects[0] === objects[1]);
47269
+ * // => true
47270
+ */
47271
+ function constant(value) {
47272
+ return function() {
47273
+ return value;
47274
+ };
47275
+ }
47276
+
47277
+ /**
47278
+ * This method returns the first argument it receives.
47279
+ *
47280
+ * @static
47281
+ * @since 0.1.0
47282
+ * @memberOf _
47283
+ * @category Util
47284
+ * @param {*} value Any value.
47285
+ * @returns {*} Returns `value`.
47286
+ * @example
47287
+ *
47288
+ * var object = { 'a': 1 };
47289
+ *
47290
+ * console.log(_.identity(object) === object);
47291
+ * // => true
47292
+ */
47293
+ function identity(value) {
47294
+ return value;
47295
+ }
47296
+
47297
+ /**
47298
+ * This method returns `false`.
47299
+ *
47300
+ * @static
47301
+ * @memberOf _
47302
+ * @since 4.13.0
47303
+ * @category Util
47304
+ * @returns {boolean} Returns `false`.
47305
+ * @example
47306
+ *
47307
+ * _.times(2, _.stubFalse);
47308
+ * // => [false, false]
47309
+ */
47310
+ function stubFalse() {
47311
+ return false;
47312
+ }
47313
+
47314
+ module.exports = defaultsDeep;
47315
+ } (lodash_defaultsdeep, lodash_defaultsdeep.exports));
47316
+
47317
+ var defaultsDeep = lodash_defaultsdeep.exports;
47318
+
45287
47319
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};/**
45288
47320
  * lodash (Custom Build) <https://lodash.com/>
45289
47321
  * Build: `lodash modularize exports="npm" -o ./`
@@ -50965,11 +52997,16 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
50965
52997
  */
50966
52998
  var ReactionSelector = React__default["default"].memo(UnMemoizedReactionSelector);
50967
52999
 
50968
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useProcessReactions = function (params) {
50969
- var propOwnReactions = params.own_reactions, propReactionCounts = params.reaction_counts, propReactionOptions = params.reactionOptions, propReactions = params.reactions;
50970
- var message = useMessageContext('useProcessReactions').message;
53000
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var defaultReactionsSort = function (a, b) {
53001
+ return a.reactionType.localeCompare(b.reactionType, 'en');
53002
+ };
53003
+ var useProcessReactions = function (params) {
53004
+ var _a;
53005
+ var propOwnReactions = params.own_reactions, propReactionCounts = params.reaction_counts, propReactionOptions = params.reactionOptions, propReactions = params.reactions, propSortReactions = params.sortReactions;
53006
+ var _b = useMessageContext('useProcessReactions'), message = _b.message, contextSortReactions = _b.sortReactions;
50971
53007
  var contextReactionOptions = useComponentContext('useProcessReactions').reactionOptions;
50972
53008
  var reactionOptions = propReactionOptions !== null && propReactionOptions !== void 0 ? propReactionOptions : contextReactionOptions;
53009
+ var sortReactions = (_a = propSortReactions !== null && propSortReactions !== void 0 ? propSortReactions : contextSortReactions) !== null && _a !== void 0 ? _a : defaultReactionsSort;
50973
53010
  var latestReactions = propReactions || message.latest_reactions;
50974
53011
  var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions);
50975
53012
  var reactionCounts = propReactionCounts || message.reaction_counts;
@@ -50996,7 +53033,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
50996
53033
  if (!reactionCounts) {
50997
53034
  return [];
50998
53035
  }
50999
- return Object.entries(reactionCounts).flatMap(function (_a) {
53036
+ var unsortedReactions = Object.entries(reactionCounts).flatMap(function (_a) {
51000
53037
  var reactionType = _a[0], reactionCount = _a[1];
51001
53038
  if (reactionCount === 0 || !isSupportedReaction(reactionType)) {
51002
53039
  return [];
@@ -51011,12 +53048,14 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
51011
53048
  },
51012
53049
  ];
51013
53050
  });
53051
+ return unsortedReactions.sort(sortReactions);
51014
53052
  }, [
51015
53053
  getEmojiByReactionType,
51016
53054
  getLatestReactedUserNames,
51017
53055
  isOwnReaction,
51018
53056
  isSupportedReaction,
51019
53057
  reactionCounts,
53058
+ sortReactions,
51020
53059
  ]);
51021
53060
  var hasReactions = existingReactions.length > 0;
51022
53061
  var totalReactionCount = React$2.useMemo(function () { return existingReactions.reduce(function (total, _a) {
@@ -51078,24 +53117,33 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
51078
53117
  return { isLoading: isLoading, reactions: reactions };
51079
53118
  }
51080
53119
 
51081
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};function ReactionsListModal(_a) {
51082
- var _b;
51083
- var handleFetchReactions = _a.handleFetchReactions, onSelectedReactionTypeChange = _a.onSelectedReactionTypeChange, reactions = _a.reactions, selectedReactionType = _a.selectedReactionType, modalProps = __rest(_a, ["handleFetchReactions", "onSelectedReactionTypeChange", "reactions", "selectedReactionType"]);
53120
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var defaultSortReactionDetails = function (a, b) {
53121
+ var _a, _b, _c, _d, _e, _f;
53122
+ var aName = (_b = (_a = a.user) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : (_c = a.user) === null || _c === void 0 ? void 0 : _c.id;
53123
+ var bName = (_e = (_d = b.user) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : (_f = b.user) === null || _f === void 0 ? void 0 : _f.id;
53124
+ return aName ? (bName ? aName.localeCompare(bName, 'en') : -1) : 1;
53125
+ };
53126
+ function ReactionsListModal(_a) {
53127
+ var _b, _c;
53128
+ var handleFetchReactions = _a.handleFetchReactions, onSelectedReactionTypeChange = _a.onSelectedReactionTypeChange, reactions = _a.reactions, selectedReactionType = _a.selectedReactionType, propSortReactionDetails = _a.sortReactionDetails, modalProps = __rest(_a, ["handleFetchReactions", "onSelectedReactionTypeChange", "reactions", "selectedReactionType", "sortReactionDetails"]);
51084
53129
  var selectedReaction = reactions.find(function (_a) {
51085
53130
  var reactionType = _a.reactionType;
51086
53131
  return reactionType === selectedReactionType;
51087
53132
  });
51088
53133
  var SelectedEmojiComponent = (_b = selectedReaction === null || selectedReaction === void 0 ? void 0 : selectedReaction.EmojiComponent) !== null && _b !== void 0 ? _b : null;
51089
- var _c = useFetchReactions({
53134
+ var _d = useFetchReactions({
51090
53135
  handleFetchReactions: handleFetchReactions,
51091
53136
  shouldFetch: modalProps.open,
51092
- }), areReactionsLoading = _c.isLoading, allReactions = _c.reactions;
53137
+ }), areReactionsLoading = _d.isLoading, allReactions = _d.reactions;
53138
+ var contextSortReactionDetails = useMessageContext('ReactionsListModal').sortReactionDetails;
53139
+ var sortReactionDetails = (_c = propSortReactionDetails !== null && propSortReactionDetails !== void 0 ? propSortReactionDetails : contextSortReactionDetails) !== null && _c !== void 0 ? _c : defaultSortReactionDetails;
51093
53140
  var currentReactions = React$2.useMemo(function () {
51094
53141
  if (!selectedReactionType) {
51095
53142
  return [];
51096
53143
  }
51097
- return allReactions.filter(function (reaction) { return reaction.type === selectedReactionType && reaction.user; });
51098
- }, [allReactions, selectedReactionType]);
53144
+ var unsortedCurrentReactions = allReactions.filter(function (reaction) { return reaction.type === selectedReactionType && reaction.user; });
53145
+ return unsortedCurrentReactions.sort(sortReactionDetails);
53146
+ }, [allReactions, selectedReactionType, sortReactionDetails]);
51099
53147
  return (React__default["default"].createElement(Modal, __assign({}, modalProps),
51100
53148
  React__default["default"].createElement("div", { className: 'str-chat__message-reactions-details', "data-testid": 'reactions-list-modal' },
51101
53149
  React__default["default"].createElement("div", { className: 'str-chat__message-reactions-details-reaction-types' }, reactions.map(function (_a) {
@@ -51731,7 +53779,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
51731
53779
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
51732
53780
 
51733
53781
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedReactionsList = function (props) {
51734
- var handleFetchReactions = props.handleFetchReactions, _a = props.reverse, reverse = _a === void 0 ? false : _a, rest = __rest(props, ["handleFetchReactions", "reverse"]);
53782
+ var handleFetchReactions = props.handleFetchReactions, _a = props.reverse, reverse = _a === void 0 ? false : _a, sortReactionDetails = props.sortReactionDetails, rest = __rest(props, ["handleFetchReactions", "reverse", "sortReactionDetails"]);
51735
53783
  var _b = useProcessReactions(rest), existingReactions = _b.existingReactions, hasReactions = _b.hasReactions, totalReactionCount = _b.totalReactionCount;
51736
53784
  var _c = React$2.useState(null), selectedReactionType = _c[0], setSelectedReactionType = _c[1];
51737
53785
  var t = useTranslationContext('ReactionsList').t;
@@ -51761,7 +53809,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
51761
53809
  }),
51762
53810
  React__default["default"].createElement("li", null,
51763
53811
  React__default["default"].createElement("span", { className: 'str-chat__reaction-list--counter' }, totalReactionCount)))),
51764
- React__default["default"].createElement(ReactionsListModal, { handleFetchReactions: handleFetchReactions, onClose: function () { return setSelectedReactionType(null); }, onSelectedReactionTypeChange: setSelectedReactionType, open: selectedReactionType !== null, reactions: existingReactions, selectedReactionType: selectedReactionType })));
53812
+ React__default["default"].createElement(ReactionsListModal, { handleFetchReactions: handleFetchReactions, onClose: function () { return setSelectedReactionType(null); }, onSelectedReactionTypeChange: setSelectedReactionType, open: selectedReactionType !== null, reactions: existingReactions, selectedReactionType: selectedReactionType, sortReactionDetails: sortReactionDetails })));
51765
53813
  };
51766
53814
  /**
51767
53815
  * Component that displays a list of reactions on a message.
@@ -52038,7 +54086,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
52038
54086
  * an individual message. The actual UI of the message is delegated via the Message prop on Channel.
52039
54087
  */
52040
54088
  var Message = function (props) {
52041
- var closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, disableQuotedMessages = props.disableQuotedMessages, getDeleteMessageErrorNotification = props.getDeleteMessageErrorNotification, getFetchReactionsErrorNotification = props.getFetchReactionsErrorNotification, getFlagMessageErrorNotification = props.getFlagMessageErrorNotification, getFlagMessageSuccessNotification = props.getFlagMessageSuccessNotification, getMarkMessageUnreadErrorNotification = props.getMarkMessageUnreadErrorNotification, getMarkMessageUnreadSuccessNotification = props.getMarkMessageUnreadSuccessNotification, getMuteUserErrorNotification = props.getMuteUserErrorNotification, getMuteUserSuccessNotification = props.getMuteUserSuccessNotification, getPinMessageErrorNotification = props.getPinMessageErrorNotification, message = props.message, _a = props.onlySenderCanEdit, onlySenderCanEdit = _a === void 0 ? false : _a, propOnMentionsClick = props.onMentionsClick, propOnMentionsHover = props.onMentionsHover, propOpenThread = props.openThread, pinPermissions = props.pinPermissions, propRetrySendMessage = props.retrySendMessage;
54089
+ var closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, disableQuotedMessages = props.disableQuotedMessages, getDeleteMessageErrorNotification = props.getDeleteMessageErrorNotification, getFetchReactionsErrorNotification = props.getFetchReactionsErrorNotification, getFlagMessageErrorNotification = props.getFlagMessageErrorNotification, getFlagMessageSuccessNotification = props.getFlagMessageSuccessNotification, getMarkMessageUnreadErrorNotification = props.getMarkMessageUnreadErrorNotification, getMarkMessageUnreadSuccessNotification = props.getMarkMessageUnreadSuccessNotification, getMuteUserErrorNotification = props.getMuteUserErrorNotification, getMuteUserSuccessNotification = props.getMuteUserSuccessNotification, getPinMessageErrorNotification = props.getPinMessageErrorNotification, message = props.message, _a = props.onlySenderCanEdit, onlySenderCanEdit = _a === void 0 ? false : _a, propOnMentionsClick = props.onMentionsClick, propOnMentionsHover = props.onMentionsHover, propOpenThread = props.openThread, pinPermissions = props.pinPermissions, propRetrySendMessage = props.retrySendMessage, sortReactionDetails = props.sortReactionDetails, sortReactions = props.sortReactions;
52042
54090
  var addNotification = useChannelActionContext('Message').addNotification;
52043
54091
  var _b = useChannelStateContext('Message'), highlightedMessageId = _b.highlightedMessageId, mutes = _b.mutes;
52044
54092
  var reactionSelectorRef = React$2.useRef(null);
@@ -52080,7 +54128,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
52080
54128
  }), canPin = _d.canPin, handlePin = _d.handlePin;
52081
54129
  var _e = useReactionClick(message, reactionSelectorRef, undefined, closeReactionSelectorOnClick), isReactionEnabled = _e.isReactionEnabled, onReactionListClick = _e.onReactionListClick, showDetailedReactions = _e.showDetailedReactions;
52082
54130
  var highlighted = highlightedMessageId === message.id;
52083
- return (React__default["default"].createElement(MemoizedMessage, { additionalMessageInputProps: props.additionalMessageInputProps, autoscrollToBottom: props.autoscrollToBottom, canPin: canPin, customMessageActions: props.customMessageActions, disableQuotedMessages: props.disableQuotedMessages, endOfGroup: props.endOfGroup, firstOfGroup: props.firstOfGroup, formatDate: props.formatDate, groupedByUser: props.groupedByUser, groupStyles: props.groupStyles, handleAction: handleAction, handleDelete: handleDelete, handleFetchReactions: handleFetchReactions, handleFlag: handleFlag, handleMarkUnread: handleMarkUnread, handleMute: handleMute, handleOpenThread: handleOpenThread, handlePin: handlePin, handleReaction: handleReaction, handleRetry: handleRetry, highlighted: highlighted, initialMessage: props.initialMessage, isReactionEnabled: isReactionEnabled, lastReceivedId: props.lastReceivedId, message: message, Message: props.Message, messageActions: props.messageActions, messageListRect: props.messageListRect, mutes: mutes, onMentionsClickMessage: onMentionsClick, onMentionsHoverMessage: onMentionsHover, onReactionListClick: onReactionListClick, onUserClick: props.onUserClick, onUserHover: props.onUserHover, pinPermissions: props.pinPermissions, reactionSelectorRef: reactionSelectorRef, readBy: props.readBy, renderText: props.renderText, showDetailedReactions: showDetailedReactions, threadList: props.threadList, unsafeHTML: props.unsafeHTML, userRoles: userRoles }));
54131
+ return (React__default["default"].createElement(MemoizedMessage, { additionalMessageInputProps: props.additionalMessageInputProps, autoscrollToBottom: props.autoscrollToBottom, canPin: canPin, customMessageActions: props.customMessageActions, disableQuotedMessages: props.disableQuotedMessages, endOfGroup: props.endOfGroup, firstOfGroup: props.firstOfGroup, formatDate: props.formatDate, groupedByUser: props.groupedByUser, groupStyles: props.groupStyles, handleAction: handleAction, handleDelete: handleDelete, handleFetchReactions: handleFetchReactions, handleFlag: handleFlag, handleMarkUnread: handleMarkUnread, handleMute: handleMute, handleOpenThread: handleOpenThread, handlePin: handlePin, handleReaction: handleReaction, handleRetry: handleRetry, highlighted: highlighted, initialMessage: props.initialMessage, isReactionEnabled: isReactionEnabled, lastReceivedId: props.lastReceivedId, message: message, Message: props.Message, messageActions: props.messageActions, messageListRect: props.messageListRect, mutes: mutes, onMentionsClickMessage: onMentionsClick, onMentionsHoverMessage: onMentionsHover, onReactionListClick: onReactionListClick, onUserClick: props.onUserClick, onUserHover: props.onUserHover, pinPermissions: props.pinPermissions, reactionSelectorRef: reactionSelectorRef, readBy: props.readBy, renderText: props.renderText, showDetailedReactions: showDetailedReactions, sortReactionDetails: sortReactionDetails, sortReactions: sortReactions, threadList: props.threadList, unsafeHTML: props.unsafeHTML, userRoles: userRoles }));
52084
54132
  };
52085
54133
 
52086
54134
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var GiphyPreviewMessage = function (props) {
@@ -52790,7 +54838,8 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
52790
54838
  var hasNextPageFlag = hasNextPage || hasMoreNewer;
52791
54839
  var hasPreviousPageFlag = hasPreviousPage || hasMore;
52792
54840
  var scrollComponent = React$2.useRef();
52793
- var scrollListener = React$2.useCallback(function () {
54841
+ var scrollListenerRef = React$2.useRef();
54842
+ scrollListenerRef.current = function () {
52794
54843
  var element = scrollComponent.current;
52795
54844
  if (!element || element.offsetParent === null) {
52796
54845
  return;
@@ -52813,15 +54862,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
52813
54862
  if (offset < Number(threshold) && typeof loadNextPageFn === 'function' && hasNextPageFlag) {
52814
54863
  loadNextPageFn();
52815
54864
  }
52816
- }, [
52817
- hasPreviousPageFlag,
52818
- hasNextPageFlag,
52819
- isLoading,
52820
- listenToScroll,
52821
- loadPreviousPageFn,
52822
- loadNextPageFn,
52823
- threshold,
52824
- ]);
54865
+ };
52825
54866
  React$2.useEffect(function () {
52826
54867
  deprecationAndReplacementWarning([
52827
54868
  [{ hasMoreNewer: hasMoreNewer }, { hasNextPage: hasNextPage }],
@@ -52836,13 +54877,15 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
52836
54877
  var scrollElement = (_a = scrollComponent.current) === null || _a === void 0 ? void 0 : _a.parentNode;
52837
54878
  if (!scrollElement)
52838
54879
  return;
54880
+ var scrollListener = function () { var _a; return (_a = scrollListenerRef.current) === null || _a === void 0 ? void 0 : _a.call(scrollListenerRef); };
52839
54881
  scrollElement.addEventListener('scroll', scrollListener, useCapture);
52840
54882
  scrollElement.addEventListener('resize', scrollListener, useCapture);
54883
+ scrollListener();
52841
54884
  return function () {
52842
54885
  scrollElement.removeEventListener('scroll', scrollListener, useCapture);
52843
54886
  scrollElement.removeEventListener('resize', scrollListener, useCapture);
52844
54887
  };
52845
- }, [initialLoad, scrollListener, useCapture]);
54888
+ }, [initialLoad, useCapture]);
52846
54889
  React$2.useEffect(function () {
52847
54890
  var _a;
52848
54891
  var scrollElement = (_a = scrollComponent.current) === null || _a === void 0 ? void 0 : _a.parentNode;
@@ -52984,7 +55027,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
52984
55027
  var _a;
52985
55028
  var channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, _b = props.disableDateSeparator, disableDateSeparator = _b === void 0 ? false : _b, groupStyles = props.groupStyles, _c = props.hideDeletedMessages, hideDeletedMessages = _c === void 0 ? false : _c, _d = props.hideNewMessageSeparator, hideNewMessageSeparator = _d === void 0 ? false : _d, internalInfiniteScrollProps = props.internalInfiniteScrollProps, _e = props.messageActions, messageActions = _e === void 0 ? Object.keys(MESSAGE_ACTIONS) : _e, _f = props.messages, messages = _f === void 0 ? [] : _f, notifications = props.notifications, _g = props.noGroupByUser, noGroupByUser = _g === void 0 ? false : _g, _h = props.pinPermissions, pinPermissions = _h === void 0 ? defaultPinPermissions : _h, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
52986
55029
  _j = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
52987
- returnAllReadData = _j === void 0 ? false : _j, _k = props.threadList, threadList = _k === void 0 ? false : _k, _l = props.unsafeHTML, unsafeHTML = _l === void 0 ? false : _l, headerPosition = props.headerPosition, read = props.read, _m = props.renderMessages, renderMessages = _m === void 0 ? defaultRenderMessages : _m, _o = props.messageLimit, messageLimit = _o === void 0 ? 100 : _o, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _p = props.hasMoreNewer, hasMoreNewer = _p === void 0 ? false : _p, showUnreadNotificationAlways = props.showUnreadNotificationAlways, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _q = props.jumpToLatestMessage, jumpToLatestMessage = _q === void 0 ? function () { return Promise.resolve(); } : _q;
55030
+ returnAllReadData = _j === void 0 ? false : _j, _k = props.threadList, threadList = _k === void 0 ? false : _k, _l = props.unsafeHTML, unsafeHTML = _l === void 0 ? false : _l, headerPosition = props.headerPosition, read = props.read, _m = props.renderMessages, renderMessages = _m === void 0 ? defaultRenderMessages : _m, _o = props.messageLimit, messageLimit = _o === void 0 ? DEFAULT_NEXT_CHANNEL_PAGE_SIZE : _o, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _p = props.hasMoreNewer, hasMoreNewer = _p === void 0 ? false : _p, showUnreadNotificationAlways = props.showUnreadNotificationAlways, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _q = props.jumpToLatestMessage, jumpToLatestMessage = _q === void 0 ? function () { return Promise.resolve(); } : _q;
52988
55031
  var _r = React__default["default"].useState(null), listElement = _r[0], setListElement = _r[1];
52989
55032
  var _s = React__default["default"].useState(null), ulElement = _s[0], setUlElement = _s[1];
52990
55033
  var customClasses = useChatContext('MessageList').customClasses;
@@ -54722,7 +56765,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
54722
56765
  };
54723
56766
  var messageRenderer = function (virtuosoIndex, _data, virtuosoContext) {
54724
56767
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
54725
- var additionalMessageInputProps = virtuosoContext.additionalMessageInputProps, closeReactionSelectorOnClick = virtuosoContext.closeReactionSelectorOnClick, customMessageActions = virtuosoContext.customMessageActions, customMessageRenderer = virtuosoContext.customMessageRenderer, DateSeparator = virtuosoContext.DateSeparator, firstUnreadMessageId = virtuosoContext.firstUnreadMessageId, lastReadMessageId = virtuosoContext.lastReadMessageId, lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, MessageUIComponent = virtuosoContext.Message, messageActions = virtuosoContext.messageActions, MessageSystem = virtuosoContext.MessageSystem, numItemsPrepended = virtuosoContext.numItemsPrepended, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers, messageList = virtuosoContext.processedMessages, shouldGroupByUser = virtuosoContext.shouldGroupByUser, _k = virtuosoContext.unreadMessageCount, unreadMessageCount = _k === void 0 ? 0 : _k, UnreadMessagesSeparator = virtuosoContext.UnreadMessagesSeparator, virtuosoRef = virtuosoContext.virtuosoRef;
56768
+ var additionalMessageInputProps = virtuosoContext.additionalMessageInputProps, closeReactionSelectorOnClick = virtuosoContext.closeReactionSelectorOnClick, customMessageActions = virtuosoContext.customMessageActions, customMessageRenderer = virtuosoContext.customMessageRenderer, DateSeparator = virtuosoContext.DateSeparator, firstUnreadMessageId = virtuosoContext.firstUnreadMessageId, lastReadMessageId = virtuosoContext.lastReadMessageId, lastReceivedMessageId = virtuosoContext.lastReceivedMessageId, MessageUIComponent = virtuosoContext.Message, messageActions = virtuosoContext.messageActions, MessageSystem = virtuosoContext.MessageSystem, numItemsPrepended = virtuosoContext.numItemsPrepended, ownMessagesReadByOthers = virtuosoContext.ownMessagesReadByOthers, messageList = virtuosoContext.processedMessages, shouldGroupByUser = virtuosoContext.shouldGroupByUser, sortReactionDetails = virtuosoContext.sortReactionDetails, sortReactions = virtuosoContext.sortReactions, _k = virtuosoContext.unreadMessageCount, unreadMessageCount = _k === void 0 ? 0 : _k, UnreadMessagesSeparator = virtuosoContext.UnreadMessagesSeparator, virtuosoRef = virtuosoContext.virtuosoRef;
54726
56769
  var streamMessageIndex = calculateItemIndex(virtuosoIndex, numItemsPrepended);
54727
56770
  if (customMessageRenderer) {
54728
56771
  return customMessageRenderer(messageList, streamMessageIndex);
@@ -54745,7 +56788,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
54745
56788
  var isLastReadMessage = message.id === lastReadMessageId;
54746
56789
  var showUnreadSeparator = isLastReadMessage && !isNewestMessage && (firstUnreadMessageId || unreadMessageCount > 0); // unread count can be 0 if the user marks unread only own messages
54747
56790
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
54748
- React__default["default"].createElement(Message, { additionalMessageInputProps: additionalMessageInputProps, autoscrollToBottom: (_j = virtuosoRef.current) === null || _j === void 0 ? void 0 : _j.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: messageActions, readBy: ownMessagesReadByOthers[message.id] || [] }),
56791
+ React__default["default"].createElement(Message, { additionalMessageInputProps: additionalMessageInputProps, autoscrollToBottom: (_j = virtuosoRef.current) === null || _j === void 0 ? void 0 : _j.autoscrollToBottom, closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, lastReceivedId: lastReceivedMessageId, message: message, Message: MessageUIComponent, messageActions: messageActions, readBy: ownMessagesReadByOthers[message.id] || [], sortReactionDetails: sortReactionDetails, sortReactions: sortReactions }),
54749
56792
  showUnreadSeparator && (React__default["default"].createElement("div", { className: 'str-chat__unread-messages-separator-wrapper' },
54750
56793
  React__default["default"].createElement(UnreadMessagesSeparator, { unreadCount: unreadMessageCount })))));
54751
56794
  };
@@ -54781,11 +56824,11 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
54781
56824
  }
54782
56825
  var VirtualizedMessageListWithContext = function (props) {
54783
56826
  var _a, _b;
54784
- var additionalMessageInputProps = props.additionalMessageInputProps, _c = props.additionalVirtuosoProps, additionalVirtuosoProps = _c === void 0 ? {} : _c, channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageActions = props.customMessageActions, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _d = props.disableDateSeparator, disableDateSeparator = _d === void 0 ? true : _d, groupStyles = props.groupStyles, hasMoreNewer = props.hasMoreNewer, head = props.head, _e = props.hideDeletedMessages, hideDeletedMessages = _e === void 0 ? false : _e, _f = props.hideNewMessageSeparator, hideNewMessageSeparator = _f === void 0 ? false : _f, highlightedMessageId = props.highlightedMessageId, jumpToLatestMessage = props.jumpToLatestMessage, loadingMore = props.loadingMore, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, MessageUIComponentFromProps = props.Message, messageActions = props.messageActions, _g = props.messageLimit, messageLimit = _g === void 0 ? 100 : _g, messages = props.messages, notifications = props.notifications,
56827
+ var additionalMessageInputProps = props.additionalMessageInputProps, _c = props.additionalVirtuosoProps, additionalVirtuosoProps = _c === void 0 ? {} : _c, channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageActions = props.customMessageActions, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _d = props.disableDateSeparator, disableDateSeparator = _d === void 0 ? true : _d, groupStyles = props.groupStyles, hasMoreNewer = props.hasMoreNewer, head = props.head, _e = props.hideDeletedMessages, hideDeletedMessages = _e === void 0 ? false : _e, _f = props.hideNewMessageSeparator, hideNewMessageSeparator = _f === void 0 ? false : _f, highlightedMessageId = props.highlightedMessageId, jumpToLatestMessage = props.jumpToLatestMessage, loadingMore = props.loadingMore, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, MessageUIComponentFromProps = props.Message, messageActions = props.messageActions, _g = props.messageLimit, messageLimit = _g === void 0 ? DEFAULT_NEXT_CHANNEL_PAGE_SIZE : _g, messages = props.messages, notifications = props.notifications,
54785
56828
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
54786
56829
  _h = props.overscan,
54787
56830
  // TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
54788
- overscan = _h === void 0 ? 0 : _h, read = props.read, _j = props.returnAllReadData, returnAllReadData = _j === void 0 ? false : _j, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _k = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _k === void 0 ? false : _k, _l = props.separateGiphyPreview, separateGiphyPreview = _l === void 0 ? false : _l, _m = props.shouldGroupByUser, shouldGroupByUser = _m === void 0 ? false : _m, showUnreadNotificationAlways = props.showUnreadNotificationAlways, _o = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _o === void 0 ? 'smooth' : _o, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
56831
+ overscan = _h === void 0 ? 0 : _h, read = props.read, _j = props.returnAllReadData, returnAllReadData = _j === void 0 ? false : _j, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _k = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _k === void 0 ? false : _k, _l = props.separateGiphyPreview, separateGiphyPreview = _l === void 0 ? false : _l, _m = props.shouldGroupByUser, shouldGroupByUser = _m === void 0 ? false : _m, showUnreadNotificationAlways = props.showUnreadNotificationAlways, sortReactionDetails = props.sortReactionDetails, sortReactions = props.sortReactions, _o = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _o === void 0 ? 'smooth' : _o, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
54789
56832
  var virtuosoComponentsFromProps = additionalVirtuosoProps.components, overridingVirtuosoProps = __rest(additionalVirtuosoProps, ["components"]);
54790
56833
  // Stops errors generated from react-virtuoso to bubble up
54791
56834
  // to Sentry or other tracking tools.
@@ -54913,8 +56956,9 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
54913
56956
  }
54914
56957
  };
54915
56958
  var atTopStateChange = function (isAtTop) {
54916
- if (isAtTop)
56959
+ if (isAtTop) {
54917
56960
  loadMore === null || loadMore === void 0 ? void 0 : loadMore(messageLimit);
56961
+ }
54918
56962
  };
54919
56963
  React$2.useEffect(function () {
54920
56964
  var scrollTimeout;
@@ -54957,6 +57001,8 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
54957
57001
  ownMessagesReadByOthers: ownMessagesReadByOthers,
54958
57002
  processedMessages: processedMessages,
54959
57003
  shouldGroupByUser: shouldGroupByUser,
57004
+ sortReactionDetails: sortReactionDetails,
57005
+ sortReactions: sortReactions,
54960
57006
  threadList: threadList,
54961
57007
  unreadMessageCount: channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages,
54962
57008
  UnreadMessagesSeparator: UnreadMessagesSeparator,
@@ -55233,7 +57279,12 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
55233
57279
  };
55234
57280
  var ChannelInner = function (props) {
55235
57281
  var _a;
55236
- var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, channelQueryOptions = props.channelQueryOptions, children = props.children, doDeleteMessageRequest = props.doDeleteMessageRequest, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.dragAndDropWindow, dragAndDropWindow = _b === void 0 ? false : _b, enrichURLForPreviewConfig = props.enrichURLForPreviewConfig, _c = props.initializeOnMount, initializeOnMount = _c === void 0 ? true : _c, _d = props.LoadingErrorIndicator, LoadingErrorIndicator$1 = _d === void 0 ? LoadingErrorIndicator : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannel : _e, _f = props.markReadOnMount, markReadOnMount = _f === void 0 ? true : _f, maxNumberOfFiles = props.maxNumberOfFiles, _g = props.multipleUploads, multipleUploads = _g === void 0 ? true : _g, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover, _h = props.optionalMessageInputProps, optionalMessageInputProps = _h === void 0 ? {} : _h, skipMessageDataMemoization = props.skipMessageDataMemoization;
57282
+ var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, propChannelQueryOptions = props.channelQueryOptions, children = props.children, doDeleteMessageRequest = props.doDeleteMessageRequest, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.dragAndDropWindow, dragAndDropWindow = _b === void 0 ? false : _b, enrichURLForPreviewConfig = props.enrichURLForPreviewConfig, _c = props.initializeOnMount, initializeOnMount = _c === void 0 ? true : _c, _d = props.LoadingErrorIndicator, LoadingErrorIndicator$1 = _d === void 0 ? LoadingErrorIndicator : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannel : _e, _f = props.markReadOnMount, markReadOnMount = _f === void 0 ? true : _f, maxNumberOfFiles = props.maxNumberOfFiles, _g = props.multipleUploads, multipleUploads = _g === void 0 ? true : _g, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover, _h = props.optionalMessageInputProps, optionalMessageInputProps = _h === void 0 ? {} : _h, skipMessageDataMemoization = props.skipMessageDataMemoization;
57283
+ var channelQueryOptions = React$2.useMemo(function () {
57284
+ return defaultsDeep(propChannelQueryOptions, {
57285
+ messages: { limit: DEFAULT_INITIAL_CHANNEL_PAGE_SIZE },
57286
+ });
57287
+ }, [propChannelQueryOptions]);
55237
57288
  var _j = useChatContext('Channel'), client = _j.client, customClasses = _j.customClasses, latestMessageDatesByChannels = _j.latestMessageDatesByChannels, mutes = _j.mutes, theme = _j.theme;
55238
57289
  var t = useTranslationContext('Channel').t;
55239
57290
  var _k = useChannelContainerClasses({ customClasses: customClasses }), channelClass = _k.channelClass, chatClass = _k.chatClass, chatContainerClass = _k.chatContainerClass, windowsEmojiClass = _k.windowsEmojiClass;
@@ -55387,16 +57438,17 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
55387
57438
  React$2.useLayoutEffect(function () {
55388
57439
  var errored = false;
55389
57440
  var done = false;
57441
+ var channelInitializedExternally = true;
55390
57442
  (function () { return __awaiter(void 0, void 0, void 0, function () {
55391
57443
  var members, _i, _a, member, userId, _b, user, user_id, config, e_2, _c, user, ownReadState;
55392
- var _d, _e, _f, _g;
55393
- return __generator(this, function (_h) {
55394
- switch (_h.label) {
57444
+ var _d, _e;
57445
+ return __generator(this, function (_f) {
57446
+ switch (_f.label) {
55395
57447
  case 0:
55396
57448
  if (!(!channel.initialized && initializeOnMount)) return [3 /*break*/, 4];
55397
- _h.label = 1;
57449
+ _f.label = 1;
55398
57450
  case 1:
55399
- _h.trys.push([1, 3, , 4]);
57451
+ _f.trys.push([1, 3, , 4]);
55400
57452
  members = [];
55401
57453
  if (!channel.id && ((_d = channel.data) === null || _d === void 0 ? void 0 : _d.members)) {
55402
57454
  for (_i = 0, _a = channel.data.members; _i < _a.length; _i++) {
@@ -55416,12 +57468,13 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
55416
57468
  }
55417
57469
  return [4 /*yield*/, getChannel({ channel: channel, client: client, members: members, options: channelQueryOptions })];
55418
57470
  case 2:
55419
- _h.sent();
57471
+ _f.sent();
55420
57472
  config = channel.getConfig();
55421
57473
  setChannelConfig(config);
57474
+ channelInitializedExternally = false;
55422
57475
  return [3 /*break*/, 4];
55423
57476
  case 3:
55424
- e_2 = _h.sent();
57477
+ e_2 = _f.sent();
55425
57478
  dispatch({ error: e_2, type: 'setError' });
55426
57479
  errored = true;
55427
57480
  return [3 /*break*/, 4];
@@ -55431,10 +57484,11 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
55431
57484
  if (!errored) {
55432
57485
  dispatch({
55433
57486
  channel: channel,
55434
- hasMore: hasMoreMessagesProbably(channel.state.messages.length, (_f = (_e = channelQueryOptions === null || channelQueryOptions === void 0 ? void 0 : channelQueryOptions.messages) === null || _e === void 0 ? void 0 : _e.limit) !== null && _f !== void 0 ? _f : DEFAULT_INITIAL_CHANNEL_PAGE_SIZE),
57487
+ hasMore: channelInitializedExternally ||
57488
+ hasMoreMessagesProbably(channel.state.messages.length, channelQueryOptions.messages.limit),
55435
57489
  type: 'initStateFromChannel',
55436
57490
  });
55437
- if (((_g = client.user) === null || _g === void 0 ? void 0 : _g.id) && channel.state.read[client.user.id]) {
57491
+ if (((_e = client.user) === null || _e === void 0 ? void 0 : _e.id) && channel.state.read[client.user.id]) {
55438
57492
  _c = channel.state.read[client.user.id], user = _c.user, ownReadState = __rest(_c, ["user"]);
55439
57493
  _setChannelUnreadUiState(ownReadState);
55440
57494
  }
@@ -56510,18 +58564,18 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
56510
58564
  if (queryType === void 0) { queryType = 'load-more'; }
56511
58565
  return __awaiter(void 0, void 0, void 0, function () {
56512
58566
  var offset, newOptions, channelQueryResponse, newChannels, err_1;
56513
- var _a;
56514
- return __generator(this, function (_b) {
56515
- switch (_b.label) {
58567
+ var _a, _b;
58568
+ return __generator(this, function (_c) {
58569
+ switch (_c.label) {
56516
58570
  case 0:
56517
58571
  setError(null);
56518
58572
  if (queryType === 'reload') {
56519
58573
  setChannels([]);
56520
58574
  }
56521
58575
  setQueryInProgress(queryType);
56522
- _b.label = 1;
58576
+ _c.label = 1;
56523
58577
  case 1:
56524
- _b.trys.push([1, 6, , 7]);
58578
+ _c.trys.push([1, 6, , 7]);
56525
58579
  if (!customQueryChannels) return [3 /*break*/, 3];
56526
58580
  return [4 /*yield*/, customQueryChannels({
56527
58581
  currentChannels: channels,
@@ -56530,14 +58584,14 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
56530
58584
  setHasNextPage: setHasNextPage,
56531
58585
  })];
56532
58586
  case 2:
56533
- _b.sent();
58587
+ _c.sent();
56534
58588
  return [3 /*break*/, 5];
56535
58589
  case 3:
56536
58590
  offset = queryType === 'reload' ? 0 : channels.length;
56537
- newOptions = __assign({ limit: (_a = options === null || options === void 0 ? void 0 : options.limit) !== null && _a !== void 0 ? _a : MAX_QUERY_CHANNELS_LIMIT, offset: offset }, options);
58591
+ newOptions = __assign({ limit: (_a = options === null || options === void 0 ? void 0 : options.limit) !== null && _a !== void 0 ? _a : MAX_QUERY_CHANNELS_LIMIT, message_limit: (_b = options === null || options === void 0 ? void 0 : options.message_limit) !== null && _b !== void 0 ? _b : DEFAULT_INITIAL_CHANNEL_PAGE_SIZE, offset: offset }, options);
56538
58592
  return [4 /*yield*/, client.queryChannels(filters, sort || {}, newOptions)];
56539
58593
  case 4:
56540
- channelQueryResponse = _b.sent();
58594
+ channelQueryResponse = _c.sent();
56541
58595
  newChannels = queryType === 'reload'
56542
58596
  ? channelQueryResponse
56543
58597
  : uniqBy(__spreadArray(__spreadArray([], channels, true), channelQueryResponse, true), 'cid');
@@ -56547,10 +58601,10 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
56547
58601
  if (!offset && activeChannelHandler) {
56548
58602
  activeChannelHandler(newChannels, setChannels);
56549
58603
  }
56550
- _b.label = 5;
58604
+ _c.label = 5;
56551
58605
  case 5: return [3 /*break*/, 7];
56552
58606
  case 6:
56553
- err_1 = _b.sent();
58607
+ err_1 = _c.sent();
56554
58608
  console.warn(err_1);
56555
58609
  setError(err_1);
56556
58610
  return [3 /*break*/, 7];
@@ -57349,7 +59403,7 @@ var StreamChatReact = (function (exports, React$2, jsxRuntime, ReactDOM, streamC
57349
59403
 
57350
59404
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
57351
59405
 
57352
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '11.9.0';
59406
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '11.10.0';
57353
59407
 
57354
59408
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
57355
59409
  var _b, _c;