@n1k1t/mock-server 0.1.31 → 0.1.33

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 (53) hide show
  1. package/.husky/pre-commit +1 -0
  2. package/.nvmrc +1 -0
  3. package/lib/package.json +10 -4
  4. package/lib/src/server/endpoints/history.get-list.endpoint.d.ts +2 -2
  5. package/lib/src/server/endpoints/history.get-list.endpoint.js +1 -1
  6. package/lib/src/server/endpoints/history.get-list.endpoint.js.map +1 -1
  7. package/lib/src/server/index.d.ts +1 -1
  8. package/lib/src/server/models/context/index.d.ts.map +1 -0
  9. package/lib/src/server/models/{request-context → context}/index.js +4 -7
  10. package/lib/src/server/models/context/index.js.map +1 -0
  11. package/lib/src/server/models/context/snapshot.d.ts.map +1 -0
  12. package/lib/src/server/models/context/snapshot.js.map +1 -0
  13. package/lib/src/server/models/context/types.d.ts.map +1 -0
  14. package/lib/src/server/models/context/types.js.map +1 -0
  15. package/lib/src/server/models/context/utils.d.ts.map +1 -0
  16. package/lib/src/server/models/context/utils.js.map +1 -0
  17. package/lib/src/server/models/executor/errors/index.d.ts +1 -1
  18. package/lib/src/server/models/executor/errors/index.d.ts.map +1 -1
  19. package/lib/src/server/models/executor/index.d.ts +1 -1
  20. package/lib/src/server/models/executor/index.d.ts.map +1 -1
  21. package/lib/src/server/models/executor/index.js +8 -8
  22. package/lib/src/server/models/executor/index.js.map +1 -1
  23. package/lib/src/server/models/history/model.d.ts +6 -6
  24. package/lib/src/server/models/history/model.d.ts.map +1 -1
  25. package/lib/src/server/models/history/model.js +13 -15
  26. package/lib/src/server/models/history/model.js.map +1 -1
  27. package/lib/src/server/models/index.d.ts +1 -1
  28. package/lib/src/server/models/index.d.ts.map +1 -1
  29. package/lib/src/server/models/index.js +1 -1
  30. package/lib/src/server/models/index.js.map +1 -1
  31. package/lib/src/server/models/reply.d.ts +1 -1
  32. package/lib/src/server/models/reply.d.ts.map +1 -1
  33. package/lib/src/server/transports/http/executor.d.ts +1 -1
  34. package/lib/tsconfig.tsbuildinfo +1 -1
  35. package/package.json +10 -4
  36. package/public/index.html +0 -23
  37. package/public/scripts/main.js +1286 -591
  38. package/public/styles/main.css +473 -383
  39. package/lib/src/server/models/request-context/index.d.ts.map +0 -1
  40. package/lib/src/server/models/request-context/index.js.map +0 -1
  41. package/lib/src/server/models/request-context/snapshot.d.ts.map +0 -1
  42. package/lib/src/server/models/request-context/snapshot.js.map +0 -1
  43. package/lib/src/server/models/request-context/types.d.ts.map +0 -1
  44. package/lib/src/server/models/request-context/types.js.map +0 -1
  45. package/lib/src/server/models/request-context/utils.d.ts.map +0 -1
  46. package/lib/src/server/models/request-context/utils.js.map +0 -1
  47. /package/lib/src/server/models/{request-context → context}/index.d.ts +0 -0
  48. /package/lib/src/server/models/{request-context → context}/snapshot.d.ts +0 -0
  49. /package/lib/src/server/models/{request-context → context}/snapshot.js +0 -0
  50. /package/lib/src/server/models/{request-context → context}/types.d.ts +0 -0
  51. /package/lib/src/server/models/{request-context → context}/types.js +0 -0
  52. /package/lib/src/server/models/{request-context → context}/utils.d.ts +0 -0
  53. /package/lib/src/server/models/{request-context → context}/utils.js +0 -0
@@ -2763,7 +2763,7 @@ formatters.j = function (v) {
2763
2763
  };
2764
2764
 
2765
2765
  }).call(this)}).call(this,require('_process'))
2766
- },{"./common":7,"_process":224}],7:[function(require,module,exports){
2766
+ },{"./common":7,"_process":238}],7:[function(require,module,exports){
2767
2767
 
2768
2768
  /**
2769
2769
  * This is the common logic for both the Node.js and web browser
@@ -3039,7 +3039,7 @@ function setup(env) {
3039
3039
 
3040
3040
  module.exports = setup;
3041
3041
 
3042
- },{"ms":223}],8:[function(require,module,exports){
3042
+ },{"ms":237}],8:[function(require,module,exports){
3043
3043
  "use strict";
3044
3044
  Object.defineProperty(exports, "__esModule", { value: true });
3045
3045
  exports.hasCORS = void 0;
@@ -13657,7 +13657,7 @@ var DataView = getNative(root, 'DataView');
13657
13657
 
13658
13658
  module.exports = DataView;
13659
13659
 
13660
- },{"./_getNative":138,"./_root":179}],74:[function(require,module,exports){
13660
+ },{"./_getNative":143,"./_root":185}],74:[function(require,module,exports){
13661
13661
  var hashClear = require('./_hashClear'),
13662
13662
  hashDelete = require('./_hashDelete'),
13663
13663
  hashGet = require('./_hashGet'),
@@ -13691,7 +13691,7 @@ Hash.prototype.set = hashSet;
13691
13691
 
13692
13692
  module.exports = Hash;
13693
13693
 
13694
- },{"./_hashClear":146,"./_hashDelete":147,"./_hashGet":148,"./_hashHas":149,"./_hashSet":150}],75:[function(require,module,exports){
13694
+ },{"./_hashClear":152,"./_hashDelete":153,"./_hashGet":154,"./_hashHas":155,"./_hashSet":156}],75:[function(require,module,exports){
13695
13695
  var listCacheClear = require('./_listCacheClear'),
13696
13696
  listCacheDelete = require('./_listCacheDelete'),
13697
13697
  listCacheGet = require('./_listCacheGet'),
@@ -13725,7 +13725,7 @@ ListCache.prototype.set = listCacheSet;
13725
13725
 
13726
13726
  module.exports = ListCache;
13727
13727
 
13728
- },{"./_listCacheClear":160,"./_listCacheDelete":161,"./_listCacheGet":162,"./_listCacheHas":163,"./_listCacheSet":164}],76:[function(require,module,exports){
13728
+ },{"./_listCacheClear":166,"./_listCacheDelete":167,"./_listCacheGet":168,"./_listCacheHas":169,"./_listCacheSet":170}],76:[function(require,module,exports){
13729
13729
  var getNative = require('./_getNative'),
13730
13730
  root = require('./_root');
13731
13731
 
@@ -13734,7 +13734,7 @@ var Map = getNative(root, 'Map');
13734
13734
 
13735
13735
  module.exports = Map;
13736
13736
 
13737
- },{"./_getNative":138,"./_root":179}],77:[function(require,module,exports){
13737
+ },{"./_getNative":143,"./_root":185}],77:[function(require,module,exports){
13738
13738
  var mapCacheClear = require('./_mapCacheClear'),
13739
13739
  mapCacheDelete = require('./_mapCacheDelete'),
13740
13740
  mapCacheGet = require('./_mapCacheGet'),
@@ -13768,7 +13768,7 @@ MapCache.prototype.set = mapCacheSet;
13768
13768
 
13769
13769
  module.exports = MapCache;
13770
13770
 
13771
- },{"./_mapCacheClear":165,"./_mapCacheDelete":166,"./_mapCacheGet":167,"./_mapCacheHas":168,"./_mapCacheSet":169}],78:[function(require,module,exports){
13771
+ },{"./_mapCacheClear":171,"./_mapCacheDelete":172,"./_mapCacheGet":173,"./_mapCacheHas":174,"./_mapCacheSet":175}],78:[function(require,module,exports){
13772
13772
  var getNative = require('./_getNative'),
13773
13773
  root = require('./_root');
13774
13774
 
@@ -13777,7 +13777,7 @@ var Promise = getNative(root, 'Promise');
13777
13777
 
13778
13778
  module.exports = Promise;
13779
13779
 
13780
- },{"./_getNative":138,"./_root":179}],79:[function(require,module,exports){
13780
+ },{"./_getNative":143,"./_root":185}],79:[function(require,module,exports){
13781
13781
  var getNative = require('./_getNative'),
13782
13782
  root = require('./_root');
13783
13783
 
@@ -13786,7 +13786,7 @@ var Set = getNative(root, 'Set');
13786
13786
 
13787
13787
  module.exports = Set;
13788
13788
 
13789
- },{"./_getNative":138,"./_root":179}],80:[function(require,module,exports){
13789
+ },{"./_getNative":143,"./_root":185}],80:[function(require,module,exports){
13790
13790
  var ListCache = require('./_ListCache'),
13791
13791
  stackClear = require('./_stackClear'),
13792
13792
  stackDelete = require('./_stackDelete'),
@@ -13815,7 +13815,7 @@ Stack.prototype.set = stackSet;
13815
13815
 
13816
13816
  module.exports = Stack;
13817
13817
 
13818
- },{"./_ListCache":75,"./_stackClear":182,"./_stackDelete":183,"./_stackGet":184,"./_stackHas":185,"./_stackSet":186}],81:[function(require,module,exports){
13818
+ },{"./_ListCache":75,"./_stackClear":188,"./_stackDelete":189,"./_stackGet":190,"./_stackHas":191,"./_stackSet":192}],81:[function(require,module,exports){
13819
13819
  var root = require('./_root');
13820
13820
 
13821
13821
  /** Built-in value references. */
@@ -13823,7 +13823,7 @@ var Symbol = root.Symbol;
13823
13823
 
13824
13824
  module.exports = Symbol;
13825
13825
 
13826
- },{"./_root":179}],82:[function(require,module,exports){
13826
+ },{"./_root":185}],82:[function(require,module,exports){
13827
13827
  var root = require('./_root');
13828
13828
 
13829
13829
  /** Built-in value references. */
@@ -13831,7 +13831,7 @@ var Uint8Array = root.Uint8Array;
13831
13831
 
13832
13832
  module.exports = Uint8Array;
13833
13833
 
13834
- },{"./_root":179}],83:[function(require,module,exports){
13834
+ },{"./_root":185}],83:[function(require,module,exports){
13835
13835
  var getNative = require('./_getNative'),
13836
13836
  root = require('./_root');
13837
13837
 
@@ -13840,7 +13840,7 @@ var WeakMap = getNative(root, 'WeakMap');
13840
13840
 
13841
13841
  module.exports = WeakMap;
13842
13842
 
13843
- },{"./_getNative":138,"./_root":179}],84:[function(require,module,exports){
13843
+ },{"./_getNative":143,"./_root":185}],84:[function(require,module,exports){
13844
13844
  /**
13845
13845
  * A faster alternative to `Function#apply`, this function invokes `func`
13846
13846
  * with the `this` binding of `thisArg` and the arguments of `args`.
@@ -13965,7 +13965,7 @@ function arrayLikeKeys(value, inherited) {
13965
13965
 
13966
13966
  module.exports = arrayLikeKeys;
13967
13967
 
13968
- },{"./_baseTimes":114,"./_isIndex":155,"./isArguments":197,"./isArray":198,"./isBuffer":200,"./isTypedArray":209}],88:[function(require,module,exports){
13968
+ },{"./_baseTimes":118,"./_isIndex":161,"./isArguments":207,"./isArray":208,"./isBuffer":210,"./isTypedArray":220}],88:[function(require,module,exports){
13969
13969
  /**
13970
13970
  * A specialized version of `_.map` for arrays without support for iteratee
13971
13971
  * shorthands.
@@ -14011,6 +14011,34 @@ function arrayPush(array, values) {
14011
14011
  module.exports = arrayPush;
14012
14012
 
14013
14013
  },{}],90:[function(require,module,exports){
14014
+ var baseProperty = require('./_baseProperty');
14015
+
14016
+ /**
14017
+ * Gets the size of an ASCII `string`.
14018
+ *
14019
+ * @private
14020
+ * @param {string} string The string inspect.
14021
+ * @returns {number} Returns the string size.
14022
+ */
14023
+ var asciiSize = baseProperty('length');
14024
+
14025
+ module.exports = asciiSize;
14026
+
14027
+ },{"./_baseProperty":114}],91:[function(require,module,exports){
14028
+ /**
14029
+ * Converts an ASCII `string` to an array.
14030
+ *
14031
+ * @private
14032
+ * @param {string} string The string to convert.
14033
+ * @returns {Array} Returns the converted array.
14034
+ */
14035
+ function asciiToArray(string) {
14036
+ return string.split('');
14037
+ }
14038
+
14039
+ module.exports = asciiToArray;
14040
+
14041
+ },{}],92:[function(require,module,exports){
14014
14042
  var baseAssignValue = require('./_baseAssignValue'),
14015
14043
  eq = require('./eq');
14016
14044
 
@@ -14040,7 +14068,7 @@ function assignValue(object, key, value) {
14040
14068
 
14041
14069
  module.exports = assignValue;
14042
14070
 
14043
- },{"./_baseAssignValue":94,"./eq":193}],91:[function(require,module,exports){
14071
+ },{"./_baseAssignValue":96,"./eq":203}],93:[function(require,module,exports){
14044
14072
  var eq = require('./eq');
14045
14073
 
14046
14074
  /**
@@ -14063,7 +14091,7 @@ function assocIndexOf(array, key) {
14063
14091
 
14064
14092
  module.exports = assocIndexOf;
14065
14093
 
14066
- },{"./eq":193}],92:[function(require,module,exports){
14094
+ },{"./eq":203}],94:[function(require,module,exports){
14067
14095
  var copyObject = require('./_copyObject'),
14068
14096
  keys = require('./keys');
14069
14097
 
@@ -14082,7 +14110,7 @@ function baseAssign(object, source) {
14082
14110
 
14083
14111
  module.exports = baseAssign;
14084
14112
 
14085
- },{"./_copyObject":127,"./keys":210}],93:[function(require,module,exports){
14113
+ },{"./_copyObject":132,"./keys":221}],95:[function(require,module,exports){
14086
14114
  var copyObject = require('./_copyObject'),
14087
14115
  keysIn = require('./keysIn');
14088
14116
 
@@ -14101,7 +14129,7 @@ function baseAssignIn(object, source) {
14101
14129
 
14102
14130
  module.exports = baseAssignIn;
14103
14131
 
14104
- },{"./_copyObject":127,"./keysIn":211}],94:[function(require,module,exports){
14132
+ },{"./_copyObject":132,"./keysIn":222}],96:[function(require,module,exports){
14105
14133
  var defineProperty = require('./_defineProperty');
14106
14134
 
14107
14135
  /**
@@ -14128,7 +14156,7 @@ function baseAssignValue(object, key, value) {
14128
14156
 
14129
14157
  module.exports = baseAssignValue;
14130
14158
 
14131
- },{"./_defineProperty":132}],95:[function(require,module,exports){
14159
+ },{"./_defineProperty":137}],97:[function(require,module,exports){
14132
14160
  var Stack = require('./_Stack'),
14133
14161
  arrayEach = require('./_arrayEach'),
14134
14162
  assignValue = require('./_assignValue'),
@@ -14296,7 +14324,7 @@ function baseClone(value, bitmask, customizer, key, object, stack) {
14296
14324
 
14297
14325
  module.exports = baseClone;
14298
14326
 
14299
- },{"./_Stack":80,"./_arrayEach":85,"./_assignValue":90,"./_baseAssign":92,"./_baseAssignIn":93,"./_cloneBuffer":121,"./_copyArray":126,"./_copySymbols":128,"./_copySymbolsIn":129,"./_getAllKeys":135,"./_getAllKeysIn":136,"./_getTag":143,"./_initCloneArray":151,"./_initCloneByTag":152,"./_initCloneObject":153,"./isArray":198,"./isBuffer":200,"./isMap":203,"./isObject":204,"./isSet":207,"./keys":210,"./keysIn":211}],96:[function(require,module,exports){
14327
+ },{"./_Stack":80,"./_arrayEach":85,"./_assignValue":92,"./_baseAssign":94,"./_baseAssignIn":95,"./_cloneBuffer":126,"./_copyArray":131,"./_copySymbols":133,"./_copySymbolsIn":134,"./_getAllKeys":140,"./_getAllKeysIn":141,"./_getTag":148,"./_initCloneArray":157,"./_initCloneByTag":158,"./_initCloneObject":159,"./isArray":208,"./isBuffer":210,"./isMap":213,"./isObject":214,"./isSet":218,"./keys":221,"./keysIn":222}],98:[function(require,module,exports){
14300
14328
  var isObject = require('./isObject');
14301
14329
 
14302
14330
  /** Built-in value references. */
@@ -14328,7 +14356,7 @@ var baseCreate = (function() {
14328
14356
 
14329
14357
  module.exports = baseCreate;
14330
14358
 
14331
- },{"./isObject":204}],97:[function(require,module,exports){
14359
+ },{"./isObject":214}],99:[function(require,module,exports){
14332
14360
  var arrayPush = require('./_arrayPush'),
14333
14361
  isFlattenable = require('./_isFlattenable');
14334
14362
 
@@ -14368,7 +14396,7 @@ function baseFlatten(array, depth, predicate, isStrict, result) {
14368
14396
 
14369
14397
  module.exports = baseFlatten;
14370
14398
 
14371
- },{"./_arrayPush":89,"./_isFlattenable":154}],98:[function(require,module,exports){
14399
+ },{"./_arrayPush":89,"./_isFlattenable":160}],100:[function(require,module,exports){
14372
14400
  var castPath = require('./_castPath'),
14373
14401
  toKey = require('./_toKey');
14374
14402
 
@@ -14394,7 +14422,7 @@ function baseGet(object, path) {
14394
14422
 
14395
14423
  module.exports = baseGet;
14396
14424
 
14397
- },{"./_castPath":119,"./_toKey":188}],99:[function(require,module,exports){
14425
+ },{"./_castPath":123,"./_toKey":196}],101:[function(require,module,exports){
14398
14426
  var arrayPush = require('./_arrayPush'),
14399
14427
  isArray = require('./isArray');
14400
14428
 
@@ -14416,7 +14444,7 @@ function baseGetAllKeys(object, keysFunc, symbolsFunc) {
14416
14444
 
14417
14445
  module.exports = baseGetAllKeys;
14418
14446
 
14419
- },{"./_arrayPush":89,"./isArray":198}],100:[function(require,module,exports){
14447
+ },{"./_arrayPush":89,"./isArray":208}],102:[function(require,module,exports){
14420
14448
  var Symbol = require('./_Symbol'),
14421
14449
  getRawTag = require('./_getRawTag'),
14422
14450
  objectToString = require('./_objectToString');
@@ -14446,7 +14474,7 @@ function baseGetTag(value) {
14446
14474
 
14447
14475
  module.exports = baseGetTag;
14448
14476
 
14449
- },{"./_Symbol":81,"./_getRawTag":140,"./_objectToString":175}],101:[function(require,module,exports){
14477
+ },{"./_Symbol":81,"./_getRawTag":145,"./_objectToString":181}],103:[function(require,module,exports){
14450
14478
  /**
14451
14479
  * The base implementation of `_.hasIn` without support for deep paths.
14452
14480
  *
@@ -14461,7 +14489,7 @@ function baseHasIn(object, key) {
14461
14489
 
14462
14490
  module.exports = baseHasIn;
14463
14491
 
14464
- },{}],102:[function(require,module,exports){
14492
+ },{}],104:[function(require,module,exports){
14465
14493
  var baseGetTag = require('./_baseGetTag'),
14466
14494
  isObjectLike = require('./isObjectLike');
14467
14495
 
@@ -14481,7 +14509,7 @@ function baseIsArguments(value) {
14481
14509
 
14482
14510
  module.exports = baseIsArguments;
14483
14511
 
14484
- },{"./_baseGetTag":100,"./isObjectLike":205}],103:[function(require,module,exports){
14512
+ },{"./_baseGetTag":102,"./isObjectLike":215}],105:[function(require,module,exports){
14485
14513
  var getTag = require('./_getTag'),
14486
14514
  isObjectLike = require('./isObjectLike');
14487
14515
 
@@ -14501,7 +14529,7 @@ function baseIsMap(value) {
14501
14529
 
14502
14530
  module.exports = baseIsMap;
14503
14531
 
14504
- },{"./_getTag":143,"./isObjectLike":205}],104:[function(require,module,exports){
14532
+ },{"./_getTag":148,"./isObjectLike":215}],106:[function(require,module,exports){
14505
14533
  var isFunction = require('./isFunction'),
14506
14534
  isMasked = require('./_isMasked'),
14507
14535
  isObject = require('./isObject'),
@@ -14550,7 +14578,27 @@ function baseIsNative(value) {
14550
14578
 
14551
14579
  module.exports = baseIsNative;
14552
14580
 
14553
- },{"./_isMasked":158,"./_toSource":189,"./isFunction":201,"./isObject":204}],105:[function(require,module,exports){
14581
+ },{"./_isMasked":164,"./_toSource":197,"./isFunction":211,"./isObject":214}],107:[function(require,module,exports){
14582
+ var baseGetTag = require('./_baseGetTag'),
14583
+ isObjectLike = require('./isObjectLike');
14584
+
14585
+ /** `Object#toString` result references. */
14586
+ var regexpTag = '[object RegExp]';
14587
+
14588
+ /**
14589
+ * The base implementation of `_.isRegExp` without Node.js optimizations.
14590
+ *
14591
+ * @private
14592
+ * @param {*} value The value to check.
14593
+ * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
14594
+ */
14595
+ function baseIsRegExp(value) {
14596
+ return isObjectLike(value) && baseGetTag(value) == regexpTag;
14597
+ }
14598
+
14599
+ module.exports = baseIsRegExp;
14600
+
14601
+ },{"./_baseGetTag":102,"./isObjectLike":215}],108:[function(require,module,exports){
14554
14602
  var getTag = require('./_getTag'),
14555
14603
  isObjectLike = require('./isObjectLike');
14556
14604
 
@@ -14570,7 +14618,7 @@ function baseIsSet(value) {
14570
14618
 
14571
14619
  module.exports = baseIsSet;
14572
14620
 
14573
- },{"./_getTag":143,"./isObjectLike":205}],106:[function(require,module,exports){
14621
+ },{"./_getTag":148,"./isObjectLike":215}],109:[function(require,module,exports){
14574
14622
  var baseGetTag = require('./_baseGetTag'),
14575
14623
  isLength = require('./isLength'),
14576
14624
  isObjectLike = require('./isObjectLike');
@@ -14632,7 +14680,7 @@ function baseIsTypedArray(value) {
14632
14680
 
14633
14681
  module.exports = baseIsTypedArray;
14634
14682
 
14635
- },{"./_baseGetTag":100,"./isLength":202,"./isObjectLike":205}],107:[function(require,module,exports){
14683
+ },{"./_baseGetTag":102,"./isLength":212,"./isObjectLike":215}],110:[function(require,module,exports){
14636
14684
  var isPrototype = require('./_isPrototype'),
14637
14685
  nativeKeys = require('./_nativeKeys');
14638
14686
 
@@ -14664,7 +14712,7 @@ function baseKeys(object) {
14664
14712
 
14665
14713
  module.exports = baseKeys;
14666
14714
 
14667
- },{"./_isPrototype":159,"./_nativeKeys":172}],108:[function(require,module,exports){
14715
+ },{"./_isPrototype":165,"./_nativeKeys":178}],111:[function(require,module,exports){
14668
14716
  var isObject = require('./isObject'),
14669
14717
  isPrototype = require('./_isPrototype'),
14670
14718
  nativeKeysIn = require('./_nativeKeysIn');
@@ -14699,7 +14747,7 @@ function baseKeysIn(object) {
14699
14747
 
14700
14748
  module.exports = baseKeysIn;
14701
14749
 
14702
- },{"./_isPrototype":159,"./_nativeKeysIn":173,"./isObject":204}],109:[function(require,module,exports){
14750
+ },{"./_isPrototype":165,"./_nativeKeysIn":179,"./isObject":214}],112:[function(require,module,exports){
14703
14751
  var basePickBy = require('./_basePickBy'),
14704
14752
  hasIn = require('./hasIn');
14705
14753
 
@@ -14720,7 +14768,7 @@ function basePick(object, paths) {
14720
14768
 
14721
14769
  module.exports = basePick;
14722
14770
 
14723
- },{"./_basePickBy":110,"./hasIn":195}],110:[function(require,module,exports){
14771
+ },{"./_basePickBy":113,"./hasIn":205}],113:[function(require,module,exports){
14724
14772
  var baseGet = require('./_baseGet'),
14725
14773
  baseSet = require('./_baseSet'),
14726
14774
  castPath = require('./_castPath');
@@ -14752,7 +14800,23 @@ function basePickBy(object, paths, predicate) {
14752
14800
 
14753
14801
  module.exports = basePickBy;
14754
14802
 
14755
- },{"./_baseGet":98,"./_baseSet":111,"./_castPath":119}],111:[function(require,module,exports){
14803
+ },{"./_baseGet":100,"./_baseSet":115,"./_castPath":123}],114:[function(require,module,exports){
14804
+ /**
14805
+ * The base implementation of `_.property` without support for deep paths.
14806
+ *
14807
+ * @private
14808
+ * @param {string} key The key of the property to get.
14809
+ * @returns {Function} Returns the new accessor function.
14810
+ */
14811
+ function baseProperty(key) {
14812
+ return function(object) {
14813
+ return object == null ? undefined : object[key];
14814
+ };
14815
+ }
14816
+
14817
+ module.exports = baseProperty;
14818
+
14819
+ },{}],115:[function(require,module,exports){
14756
14820
  var assignValue = require('./_assignValue'),
14757
14821
  castPath = require('./_castPath'),
14758
14822
  isIndex = require('./_isIndex'),
@@ -14805,7 +14869,7 @@ function baseSet(object, path, value, customizer) {
14805
14869
 
14806
14870
  module.exports = baseSet;
14807
14871
 
14808
- },{"./_assignValue":90,"./_castPath":119,"./_isIndex":155,"./_toKey":188,"./isObject":204}],112:[function(require,module,exports){
14872
+ },{"./_assignValue":92,"./_castPath":123,"./_isIndex":161,"./_toKey":196,"./isObject":214}],116:[function(require,module,exports){
14809
14873
  var constant = require('./constant'),
14810
14874
  defineProperty = require('./_defineProperty'),
14811
14875
  identity = require('./identity');
@@ -14829,7 +14893,7 @@ var baseSetToString = !defineProperty ? identity : function(func, string) {
14829
14893
 
14830
14894
  module.exports = baseSetToString;
14831
14895
 
14832
- },{"./_defineProperty":132,"./constant":191,"./identity":196}],113:[function(require,module,exports){
14896
+ },{"./_defineProperty":137,"./constant":201,"./identity":206}],117:[function(require,module,exports){
14833
14897
  /**
14834
14898
  * The base implementation of `_.slice` without an iteratee call guard.
14835
14899
  *
@@ -14862,7 +14926,7 @@ function baseSlice(array, start, end) {
14862
14926
 
14863
14927
  module.exports = baseSlice;
14864
14928
 
14865
- },{}],114:[function(require,module,exports){
14929
+ },{}],118:[function(require,module,exports){
14866
14930
  /**
14867
14931
  * The base implementation of `_.times` without support for iteratee shorthands
14868
14932
  * or max array length checks.
@@ -14884,7 +14948,7 @@ function baseTimes(n, iteratee) {
14884
14948
 
14885
14949
  module.exports = baseTimes;
14886
14950
 
14887
- },{}],115:[function(require,module,exports){
14951
+ },{}],119:[function(require,module,exports){
14888
14952
  var Symbol = require('./_Symbol'),
14889
14953
  arrayMap = require('./_arrayMap'),
14890
14954
  isArray = require('./isArray'),
@@ -14923,7 +14987,7 @@ function baseToString(value) {
14923
14987
 
14924
14988
  module.exports = baseToString;
14925
14989
 
14926
- },{"./_Symbol":81,"./_arrayMap":88,"./isArray":198,"./isSymbol":208}],116:[function(require,module,exports){
14990
+ },{"./_Symbol":81,"./_arrayMap":88,"./isArray":208,"./isSymbol":219}],120:[function(require,module,exports){
14927
14991
  var trimmedEndIndex = require('./_trimmedEndIndex');
14928
14992
 
14929
14993
  /** Used to match leading whitespace. */
@@ -14944,7 +15008,7 @@ function baseTrim(string) {
14944
15008
 
14945
15009
  module.exports = baseTrim;
14946
15010
 
14947
- },{"./_trimmedEndIndex":190}],117:[function(require,module,exports){
15011
+ },{"./_trimmedEndIndex":198}],121:[function(require,module,exports){
14948
15012
  /**
14949
15013
  * The base implementation of `_.unary` without support for storing metadata.
14950
15014
  *
@@ -14960,7 +15024,7 @@ function baseUnary(func) {
14960
15024
 
14961
15025
  module.exports = baseUnary;
14962
15026
 
14963
- },{}],118:[function(require,module,exports){
15027
+ },{}],122:[function(require,module,exports){
14964
15028
  var castPath = require('./_castPath'),
14965
15029
  last = require('./last'),
14966
15030
  parent = require('./_parent'),
@@ -14982,7 +15046,7 @@ function baseUnset(object, path) {
14982
15046
 
14983
15047
  module.exports = baseUnset;
14984
15048
 
14985
- },{"./_castPath":119,"./_parent":178,"./_toKey":188,"./last":212}],119:[function(require,module,exports){
15049
+ },{"./_castPath":123,"./_parent":184,"./_toKey":196,"./last":223}],123:[function(require,module,exports){
14986
15050
  var isArray = require('./isArray'),
14987
15051
  isKey = require('./_isKey'),
14988
15052
  stringToPath = require('./_stringToPath'),
@@ -15005,7 +15069,27 @@ function castPath(value, object) {
15005
15069
 
15006
15070
  module.exports = castPath;
15007
15071
 
15008
- },{"./_isKey":156,"./_stringToPath":187,"./isArray":198,"./toString":221}],120:[function(require,module,exports){
15072
+ },{"./_isKey":162,"./_stringToPath":195,"./isArray":208,"./toString":234}],124:[function(require,module,exports){
15073
+ var baseSlice = require('./_baseSlice');
15074
+
15075
+ /**
15076
+ * Casts `array` to a slice if it's needed.
15077
+ *
15078
+ * @private
15079
+ * @param {Array} array The array to inspect.
15080
+ * @param {number} start The start position.
15081
+ * @param {number} [end=array.length] The end position.
15082
+ * @returns {Array} Returns the cast slice.
15083
+ */
15084
+ function castSlice(array, start, end) {
15085
+ var length = array.length;
15086
+ end = end === undefined ? length : end;
15087
+ return (!start && end >= length) ? array : baseSlice(array, start, end);
15088
+ }
15089
+
15090
+ module.exports = castSlice;
15091
+
15092
+ },{"./_baseSlice":117}],125:[function(require,module,exports){
15009
15093
  var Uint8Array = require('./_Uint8Array');
15010
15094
 
15011
15095
  /**
@@ -15023,7 +15107,7 @@ function cloneArrayBuffer(arrayBuffer) {
15023
15107
 
15024
15108
  module.exports = cloneArrayBuffer;
15025
15109
 
15026
- },{"./_Uint8Array":82}],121:[function(require,module,exports){
15110
+ },{"./_Uint8Array":82}],126:[function(require,module,exports){
15027
15111
  var root = require('./_root');
15028
15112
 
15029
15113
  /** Detect free variable `exports`. */
@@ -15060,7 +15144,7 @@ function cloneBuffer(buffer, isDeep) {
15060
15144
 
15061
15145
  module.exports = cloneBuffer;
15062
15146
 
15063
- },{"./_root":179}],122:[function(require,module,exports){
15147
+ },{"./_root":185}],127:[function(require,module,exports){
15064
15148
  var cloneArrayBuffer = require('./_cloneArrayBuffer');
15065
15149
 
15066
15150
  /**
@@ -15078,7 +15162,7 @@ function cloneDataView(dataView, isDeep) {
15078
15162
 
15079
15163
  module.exports = cloneDataView;
15080
15164
 
15081
- },{"./_cloneArrayBuffer":120}],123:[function(require,module,exports){
15165
+ },{"./_cloneArrayBuffer":125}],128:[function(require,module,exports){
15082
15166
  /** Used to match `RegExp` flags from their coerced string values. */
15083
15167
  var reFlags = /\w*$/;
15084
15168
 
@@ -15097,7 +15181,7 @@ function cloneRegExp(regexp) {
15097
15181
 
15098
15182
  module.exports = cloneRegExp;
15099
15183
 
15100
- },{}],124:[function(require,module,exports){
15184
+ },{}],129:[function(require,module,exports){
15101
15185
  var Symbol = require('./_Symbol');
15102
15186
 
15103
15187
  /** Used to convert symbols to primitives and strings. */
@@ -15117,7 +15201,7 @@ function cloneSymbol(symbol) {
15117
15201
 
15118
15202
  module.exports = cloneSymbol;
15119
15203
 
15120
- },{"./_Symbol":81}],125:[function(require,module,exports){
15204
+ },{"./_Symbol":81}],130:[function(require,module,exports){
15121
15205
  var cloneArrayBuffer = require('./_cloneArrayBuffer');
15122
15206
 
15123
15207
  /**
@@ -15135,7 +15219,7 @@ function cloneTypedArray(typedArray, isDeep) {
15135
15219
 
15136
15220
  module.exports = cloneTypedArray;
15137
15221
 
15138
- },{"./_cloneArrayBuffer":120}],126:[function(require,module,exports){
15222
+ },{"./_cloneArrayBuffer":125}],131:[function(require,module,exports){
15139
15223
  /**
15140
15224
  * Copies the values of `source` to `array`.
15141
15225
  *
@@ -15157,7 +15241,7 @@ function copyArray(source, array) {
15157
15241
 
15158
15242
  module.exports = copyArray;
15159
15243
 
15160
- },{}],127:[function(require,module,exports){
15244
+ },{}],132:[function(require,module,exports){
15161
15245
  var assignValue = require('./_assignValue'),
15162
15246
  baseAssignValue = require('./_baseAssignValue');
15163
15247
 
@@ -15199,7 +15283,7 @@ function copyObject(source, props, object, customizer) {
15199
15283
 
15200
15284
  module.exports = copyObject;
15201
15285
 
15202
- },{"./_assignValue":90,"./_baseAssignValue":94}],128:[function(require,module,exports){
15286
+ },{"./_assignValue":92,"./_baseAssignValue":96}],133:[function(require,module,exports){
15203
15287
  var copyObject = require('./_copyObject'),
15204
15288
  getSymbols = require('./_getSymbols');
15205
15289
 
@@ -15217,7 +15301,7 @@ function copySymbols(source, object) {
15217
15301
 
15218
15302
  module.exports = copySymbols;
15219
15303
 
15220
- },{"./_copyObject":127,"./_getSymbols":141}],129:[function(require,module,exports){
15304
+ },{"./_copyObject":132,"./_getSymbols":146}],134:[function(require,module,exports){
15221
15305
  var copyObject = require('./_copyObject'),
15222
15306
  getSymbolsIn = require('./_getSymbolsIn');
15223
15307
 
@@ -15235,7 +15319,7 @@ function copySymbolsIn(source, object) {
15235
15319
 
15236
15320
  module.exports = copySymbolsIn;
15237
15321
 
15238
- },{"./_copyObject":127,"./_getSymbolsIn":142}],130:[function(require,module,exports){
15322
+ },{"./_copyObject":132,"./_getSymbolsIn":147}],135:[function(require,module,exports){
15239
15323
  var root = require('./_root');
15240
15324
 
15241
15325
  /** Used to detect overreaching core-js shims. */
@@ -15243,7 +15327,7 @@ var coreJsData = root['__core-js_shared__'];
15243
15327
 
15244
15328
  module.exports = coreJsData;
15245
15329
 
15246
- },{"./_root":179}],131:[function(require,module,exports){
15330
+ },{"./_root":185}],136:[function(require,module,exports){
15247
15331
  var isPlainObject = require('./isPlainObject');
15248
15332
 
15249
15333
  /**
@@ -15261,7 +15345,7 @@ function customOmitClone(value) {
15261
15345
 
15262
15346
  module.exports = customOmitClone;
15263
15347
 
15264
- },{"./isPlainObject":206}],132:[function(require,module,exports){
15348
+ },{"./isPlainObject":216}],137:[function(require,module,exports){
15265
15349
  var getNative = require('./_getNative');
15266
15350
 
15267
15351
  var defineProperty = (function() {
@@ -15274,7 +15358,7 @@ var defineProperty = (function() {
15274
15358
 
15275
15359
  module.exports = defineProperty;
15276
15360
 
15277
- },{"./_getNative":138}],133:[function(require,module,exports){
15361
+ },{"./_getNative":143}],138:[function(require,module,exports){
15278
15362
  var flatten = require('./flatten'),
15279
15363
  overRest = require('./_overRest'),
15280
15364
  setToString = require('./_setToString');
@@ -15292,7 +15376,7 @@ function flatRest(func) {
15292
15376
 
15293
15377
  module.exports = flatRest;
15294
15378
 
15295
- },{"./_overRest":177,"./_setToString":180,"./flatten":194}],134:[function(require,module,exports){
15379
+ },{"./_overRest":183,"./_setToString":186,"./flatten":204}],139:[function(require,module,exports){
15296
15380
  (function (global){(function (){
15297
15381
  /** Detect free variable `global` from Node.js. */
15298
15382
  var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
@@ -15300,7 +15384,7 @@ var freeGlobal = typeof global == 'object' && global && global.Object === Object
15300
15384
  module.exports = freeGlobal;
15301
15385
 
15302
15386
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
15303
- },{}],135:[function(require,module,exports){
15387
+ },{}],140:[function(require,module,exports){
15304
15388
  var baseGetAllKeys = require('./_baseGetAllKeys'),
15305
15389
  getSymbols = require('./_getSymbols'),
15306
15390
  keys = require('./keys');
@@ -15318,7 +15402,7 @@ function getAllKeys(object) {
15318
15402
 
15319
15403
  module.exports = getAllKeys;
15320
15404
 
15321
- },{"./_baseGetAllKeys":99,"./_getSymbols":141,"./keys":210}],136:[function(require,module,exports){
15405
+ },{"./_baseGetAllKeys":101,"./_getSymbols":146,"./keys":221}],141:[function(require,module,exports){
15322
15406
  var baseGetAllKeys = require('./_baseGetAllKeys'),
15323
15407
  getSymbolsIn = require('./_getSymbolsIn'),
15324
15408
  keysIn = require('./keysIn');
@@ -15337,7 +15421,7 @@ function getAllKeysIn(object) {
15337
15421
 
15338
15422
  module.exports = getAllKeysIn;
15339
15423
 
15340
- },{"./_baseGetAllKeys":99,"./_getSymbolsIn":142,"./keysIn":211}],137:[function(require,module,exports){
15424
+ },{"./_baseGetAllKeys":101,"./_getSymbolsIn":147,"./keysIn":222}],142:[function(require,module,exports){
15341
15425
  var isKeyable = require('./_isKeyable');
15342
15426
 
15343
15427
  /**
@@ -15357,7 +15441,7 @@ function getMapData(map, key) {
15357
15441
 
15358
15442
  module.exports = getMapData;
15359
15443
 
15360
- },{"./_isKeyable":157}],138:[function(require,module,exports){
15444
+ },{"./_isKeyable":163}],143:[function(require,module,exports){
15361
15445
  var baseIsNative = require('./_baseIsNative'),
15362
15446
  getValue = require('./_getValue');
15363
15447
 
@@ -15376,7 +15460,7 @@ function getNative(object, key) {
15376
15460
 
15377
15461
  module.exports = getNative;
15378
15462
 
15379
- },{"./_baseIsNative":104,"./_getValue":144}],139:[function(require,module,exports){
15463
+ },{"./_baseIsNative":106,"./_getValue":149}],144:[function(require,module,exports){
15380
15464
  var overArg = require('./_overArg');
15381
15465
 
15382
15466
  /** Built-in value references. */
@@ -15384,7 +15468,7 @@ var getPrototype = overArg(Object.getPrototypeOf, Object);
15384
15468
 
15385
15469
  module.exports = getPrototype;
15386
15470
 
15387
- },{"./_overArg":176}],140:[function(require,module,exports){
15471
+ },{"./_overArg":182}],145:[function(require,module,exports){
15388
15472
  var Symbol = require('./_Symbol');
15389
15473
 
15390
15474
  /** Used for built-in method references. */
@@ -15432,7 +15516,7 @@ function getRawTag(value) {
15432
15516
 
15433
15517
  module.exports = getRawTag;
15434
15518
 
15435
- },{"./_Symbol":81}],141:[function(require,module,exports){
15519
+ },{"./_Symbol":81}],146:[function(require,module,exports){
15436
15520
  var arrayFilter = require('./_arrayFilter'),
15437
15521
  stubArray = require('./stubArray');
15438
15522
 
@@ -15464,7 +15548,7 @@ var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
15464
15548
 
15465
15549
  module.exports = getSymbols;
15466
15550
 
15467
- },{"./_arrayFilter":86,"./stubArray":218}],142:[function(require,module,exports){
15551
+ },{"./_arrayFilter":86,"./stubArray":229}],147:[function(require,module,exports){
15468
15552
  var arrayPush = require('./_arrayPush'),
15469
15553
  getPrototype = require('./_getPrototype'),
15470
15554
  getSymbols = require('./_getSymbols'),
@@ -15491,7 +15575,7 @@ var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
15491
15575
 
15492
15576
  module.exports = getSymbolsIn;
15493
15577
 
15494
- },{"./_arrayPush":89,"./_getPrototype":139,"./_getSymbols":141,"./stubArray":218}],143:[function(require,module,exports){
15578
+ },{"./_arrayPush":89,"./_getPrototype":144,"./_getSymbols":146,"./stubArray":229}],148:[function(require,module,exports){
15495
15579
  var DataView = require('./_DataView'),
15496
15580
  Map = require('./_Map'),
15497
15581
  Promise = require('./_Promise'),
@@ -15551,7 +15635,7 @@ if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
15551
15635
 
15552
15636
  module.exports = getTag;
15553
15637
 
15554
- },{"./_DataView":73,"./_Map":76,"./_Promise":78,"./_Set":79,"./_WeakMap":83,"./_baseGetTag":100,"./_toSource":189}],144:[function(require,module,exports){
15638
+ },{"./_DataView":73,"./_Map":76,"./_Promise":78,"./_Set":79,"./_WeakMap":83,"./_baseGetTag":102,"./_toSource":197}],149:[function(require,module,exports){
15555
15639
  /**
15556
15640
  * Gets the value at `key` of `object`.
15557
15641
  *
@@ -15566,7 +15650,7 @@ function getValue(object, key) {
15566
15650
 
15567
15651
  module.exports = getValue;
15568
15652
 
15569
- },{}],145:[function(require,module,exports){
15653
+ },{}],150:[function(require,module,exports){
15570
15654
  var castPath = require('./_castPath'),
15571
15655
  isArguments = require('./isArguments'),
15572
15656
  isArray = require('./isArray'),
@@ -15607,7 +15691,35 @@ function hasPath(object, path, hasFunc) {
15607
15691
 
15608
15692
  module.exports = hasPath;
15609
15693
 
15610
- },{"./_castPath":119,"./_isIndex":155,"./_toKey":188,"./isArguments":197,"./isArray":198,"./isLength":202}],146:[function(require,module,exports){
15694
+ },{"./_castPath":123,"./_isIndex":161,"./_toKey":196,"./isArguments":207,"./isArray":208,"./isLength":212}],151:[function(require,module,exports){
15695
+ /** Used to compose unicode character classes. */
15696
+ var rsAstralRange = '\\ud800-\\udfff',
15697
+ rsComboMarksRange = '\\u0300-\\u036f',
15698
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
15699
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
15700
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
15701
+ rsVarRange = '\\ufe0e\\ufe0f';
15702
+
15703
+ /** Used to compose unicode capture groups. */
15704
+ var rsZWJ = '\\u200d';
15705
+
15706
+ /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
15707
+ var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
15708
+
15709
+ /**
15710
+ * Checks if `string` contains Unicode symbols.
15711
+ *
15712
+ * @private
15713
+ * @param {string} string The string to inspect.
15714
+ * @returns {boolean} Returns `true` if a symbol is found, else `false`.
15715
+ */
15716
+ function hasUnicode(string) {
15717
+ return reHasUnicode.test(string);
15718
+ }
15719
+
15720
+ module.exports = hasUnicode;
15721
+
15722
+ },{}],152:[function(require,module,exports){
15611
15723
  var nativeCreate = require('./_nativeCreate');
15612
15724
 
15613
15725
  /**
@@ -15624,7 +15736,7 @@ function hashClear() {
15624
15736
 
15625
15737
  module.exports = hashClear;
15626
15738
 
15627
- },{"./_nativeCreate":171}],147:[function(require,module,exports){
15739
+ },{"./_nativeCreate":177}],153:[function(require,module,exports){
15628
15740
  /**
15629
15741
  * Removes `key` and its value from the hash.
15630
15742
  *
@@ -15643,7 +15755,7 @@ function hashDelete(key) {
15643
15755
 
15644
15756
  module.exports = hashDelete;
15645
15757
 
15646
- },{}],148:[function(require,module,exports){
15758
+ },{}],154:[function(require,module,exports){
15647
15759
  var nativeCreate = require('./_nativeCreate');
15648
15760
 
15649
15761
  /** Used to stand-in for `undefined` hash values. */
@@ -15675,7 +15787,7 @@ function hashGet(key) {
15675
15787
 
15676
15788
  module.exports = hashGet;
15677
15789
 
15678
- },{"./_nativeCreate":171}],149:[function(require,module,exports){
15790
+ },{"./_nativeCreate":177}],155:[function(require,module,exports){
15679
15791
  var nativeCreate = require('./_nativeCreate');
15680
15792
 
15681
15793
  /** Used for built-in method references. */
@@ -15700,7 +15812,7 @@ function hashHas(key) {
15700
15812
 
15701
15813
  module.exports = hashHas;
15702
15814
 
15703
- },{"./_nativeCreate":171}],150:[function(require,module,exports){
15815
+ },{"./_nativeCreate":177}],156:[function(require,module,exports){
15704
15816
  var nativeCreate = require('./_nativeCreate');
15705
15817
 
15706
15818
  /** Used to stand-in for `undefined` hash values. */
@@ -15725,7 +15837,7 @@ function hashSet(key, value) {
15725
15837
 
15726
15838
  module.exports = hashSet;
15727
15839
 
15728
- },{"./_nativeCreate":171}],151:[function(require,module,exports){
15840
+ },{"./_nativeCreate":177}],157:[function(require,module,exports){
15729
15841
  /** Used for built-in method references. */
15730
15842
  var objectProto = Object.prototype;
15731
15843
 
@@ -15753,7 +15865,7 @@ function initCloneArray(array) {
15753
15865
 
15754
15866
  module.exports = initCloneArray;
15755
15867
 
15756
- },{}],152:[function(require,module,exports){
15868
+ },{}],158:[function(require,module,exports){
15757
15869
  var cloneArrayBuffer = require('./_cloneArrayBuffer'),
15758
15870
  cloneDataView = require('./_cloneDataView'),
15759
15871
  cloneRegExp = require('./_cloneRegExp'),
@@ -15832,7 +15944,7 @@ function initCloneByTag(object, tag, isDeep) {
15832
15944
 
15833
15945
  module.exports = initCloneByTag;
15834
15946
 
15835
- },{"./_cloneArrayBuffer":120,"./_cloneDataView":122,"./_cloneRegExp":123,"./_cloneSymbol":124,"./_cloneTypedArray":125}],153:[function(require,module,exports){
15947
+ },{"./_cloneArrayBuffer":125,"./_cloneDataView":127,"./_cloneRegExp":128,"./_cloneSymbol":129,"./_cloneTypedArray":130}],159:[function(require,module,exports){
15836
15948
  var baseCreate = require('./_baseCreate'),
15837
15949
  getPrototype = require('./_getPrototype'),
15838
15950
  isPrototype = require('./_isPrototype');
@@ -15852,7 +15964,7 @@ function initCloneObject(object) {
15852
15964
 
15853
15965
  module.exports = initCloneObject;
15854
15966
 
15855
- },{"./_baseCreate":96,"./_getPrototype":139,"./_isPrototype":159}],154:[function(require,module,exports){
15967
+ },{"./_baseCreate":98,"./_getPrototype":144,"./_isPrototype":165}],160:[function(require,module,exports){
15856
15968
  var Symbol = require('./_Symbol'),
15857
15969
  isArguments = require('./isArguments'),
15858
15970
  isArray = require('./isArray');
@@ -15874,7 +15986,7 @@ function isFlattenable(value) {
15874
15986
 
15875
15987
  module.exports = isFlattenable;
15876
15988
 
15877
- },{"./_Symbol":81,"./isArguments":197,"./isArray":198}],155:[function(require,module,exports){
15989
+ },{"./_Symbol":81,"./isArguments":207,"./isArray":208}],161:[function(require,module,exports){
15878
15990
  /** Used as references for various `Number` constants. */
15879
15991
  var MAX_SAFE_INTEGER = 9007199254740991;
15880
15992
 
@@ -15901,7 +16013,7 @@ function isIndex(value, length) {
15901
16013
 
15902
16014
  module.exports = isIndex;
15903
16015
 
15904
- },{}],156:[function(require,module,exports){
16016
+ },{}],162:[function(require,module,exports){
15905
16017
  var isArray = require('./isArray'),
15906
16018
  isSymbol = require('./isSymbol');
15907
16019
 
@@ -15932,7 +16044,7 @@ function isKey(value, object) {
15932
16044
 
15933
16045
  module.exports = isKey;
15934
16046
 
15935
- },{"./isArray":198,"./isSymbol":208}],157:[function(require,module,exports){
16047
+ },{"./isArray":208,"./isSymbol":219}],163:[function(require,module,exports){
15936
16048
  /**
15937
16049
  * Checks if `value` is suitable for use as unique object key.
15938
16050
  *
@@ -15949,7 +16061,7 @@ function isKeyable(value) {
15949
16061
 
15950
16062
  module.exports = isKeyable;
15951
16063
 
15952
- },{}],158:[function(require,module,exports){
16064
+ },{}],164:[function(require,module,exports){
15953
16065
  var coreJsData = require('./_coreJsData');
15954
16066
 
15955
16067
  /** Used to detect methods masquerading as native. */
@@ -15971,7 +16083,7 @@ function isMasked(func) {
15971
16083
 
15972
16084
  module.exports = isMasked;
15973
16085
 
15974
- },{"./_coreJsData":130}],159:[function(require,module,exports){
16086
+ },{"./_coreJsData":135}],165:[function(require,module,exports){
15975
16087
  /** Used for built-in method references. */
15976
16088
  var objectProto = Object.prototype;
15977
16089
 
@@ -15991,7 +16103,7 @@ function isPrototype(value) {
15991
16103
 
15992
16104
  module.exports = isPrototype;
15993
16105
 
15994
- },{}],160:[function(require,module,exports){
16106
+ },{}],166:[function(require,module,exports){
15995
16107
  /**
15996
16108
  * Removes all key-value entries from the list cache.
15997
16109
  *
@@ -16006,7 +16118,7 @@ function listCacheClear() {
16006
16118
 
16007
16119
  module.exports = listCacheClear;
16008
16120
 
16009
- },{}],161:[function(require,module,exports){
16121
+ },{}],167:[function(require,module,exports){
16010
16122
  var assocIndexOf = require('./_assocIndexOf');
16011
16123
 
16012
16124
  /** Used for built-in method references. */
@@ -16043,7 +16155,7 @@ function listCacheDelete(key) {
16043
16155
 
16044
16156
  module.exports = listCacheDelete;
16045
16157
 
16046
- },{"./_assocIndexOf":91}],162:[function(require,module,exports){
16158
+ },{"./_assocIndexOf":93}],168:[function(require,module,exports){
16047
16159
  var assocIndexOf = require('./_assocIndexOf');
16048
16160
 
16049
16161
  /**
@@ -16064,7 +16176,7 @@ function listCacheGet(key) {
16064
16176
 
16065
16177
  module.exports = listCacheGet;
16066
16178
 
16067
- },{"./_assocIndexOf":91}],163:[function(require,module,exports){
16179
+ },{"./_assocIndexOf":93}],169:[function(require,module,exports){
16068
16180
  var assocIndexOf = require('./_assocIndexOf');
16069
16181
 
16070
16182
  /**
@@ -16082,7 +16194,7 @@ function listCacheHas(key) {
16082
16194
 
16083
16195
  module.exports = listCacheHas;
16084
16196
 
16085
- },{"./_assocIndexOf":91}],164:[function(require,module,exports){
16197
+ },{"./_assocIndexOf":93}],170:[function(require,module,exports){
16086
16198
  var assocIndexOf = require('./_assocIndexOf');
16087
16199
 
16088
16200
  /**
@@ -16110,7 +16222,7 @@ function listCacheSet(key, value) {
16110
16222
 
16111
16223
  module.exports = listCacheSet;
16112
16224
 
16113
- },{"./_assocIndexOf":91}],165:[function(require,module,exports){
16225
+ },{"./_assocIndexOf":93}],171:[function(require,module,exports){
16114
16226
  var Hash = require('./_Hash'),
16115
16227
  ListCache = require('./_ListCache'),
16116
16228
  Map = require('./_Map');
@@ -16133,7 +16245,7 @@ function mapCacheClear() {
16133
16245
 
16134
16246
  module.exports = mapCacheClear;
16135
16247
 
16136
- },{"./_Hash":74,"./_ListCache":75,"./_Map":76}],166:[function(require,module,exports){
16248
+ },{"./_Hash":74,"./_ListCache":75,"./_Map":76}],172:[function(require,module,exports){
16137
16249
  var getMapData = require('./_getMapData');
16138
16250
 
16139
16251
  /**
@@ -16153,7 +16265,7 @@ function mapCacheDelete(key) {
16153
16265
 
16154
16266
  module.exports = mapCacheDelete;
16155
16267
 
16156
- },{"./_getMapData":137}],167:[function(require,module,exports){
16268
+ },{"./_getMapData":142}],173:[function(require,module,exports){
16157
16269
  var getMapData = require('./_getMapData');
16158
16270
 
16159
16271
  /**
@@ -16171,7 +16283,7 @@ function mapCacheGet(key) {
16171
16283
 
16172
16284
  module.exports = mapCacheGet;
16173
16285
 
16174
- },{"./_getMapData":137}],168:[function(require,module,exports){
16286
+ },{"./_getMapData":142}],174:[function(require,module,exports){
16175
16287
  var getMapData = require('./_getMapData');
16176
16288
 
16177
16289
  /**
@@ -16189,7 +16301,7 @@ function mapCacheHas(key) {
16189
16301
 
16190
16302
  module.exports = mapCacheHas;
16191
16303
 
16192
- },{"./_getMapData":137}],169:[function(require,module,exports){
16304
+ },{"./_getMapData":142}],175:[function(require,module,exports){
16193
16305
  var getMapData = require('./_getMapData');
16194
16306
 
16195
16307
  /**
@@ -16213,7 +16325,7 @@ function mapCacheSet(key, value) {
16213
16325
 
16214
16326
  module.exports = mapCacheSet;
16215
16327
 
16216
- },{"./_getMapData":137}],170:[function(require,module,exports){
16328
+ },{"./_getMapData":142}],176:[function(require,module,exports){
16217
16329
  var memoize = require('./memoize');
16218
16330
 
16219
16331
  /** Used as the maximum memoize cache size. */
@@ -16241,7 +16353,7 @@ function memoizeCapped(func) {
16241
16353
 
16242
16354
  module.exports = memoizeCapped;
16243
16355
 
16244
- },{"./memoize":213}],171:[function(require,module,exports){
16356
+ },{"./memoize":224}],177:[function(require,module,exports){
16245
16357
  var getNative = require('./_getNative');
16246
16358
 
16247
16359
  /* Built-in method references that are verified to be native. */
@@ -16249,7 +16361,7 @@ var nativeCreate = getNative(Object, 'create');
16249
16361
 
16250
16362
  module.exports = nativeCreate;
16251
16363
 
16252
- },{"./_getNative":138}],172:[function(require,module,exports){
16364
+ },{"./_getNative":143}],178:[function(require,module,exports){
16253
16365
  var overArg = require('./_overArg');
16254
16366
 
16255
16367
  /* Built-in method references for those with the same name as other `lodash` methods. */
@@ -16257,7 +16369,7 @@ var nativeKeys = overArg(Object.keys, Object);
16257
16369
 
16258
16370
  module.exports = nativeKeys;
16259
16371
 
16260
- },{"./_overArg":176}],173:[function(require,module,exports){
16372
+ },{"./_overArg":182}],179:[function(require,module,exports){
16261
16373
  /**
16262
16374
  * This function is like
16263
16375
  * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
@@ -16279,7 +16391,7 @@ function nativeKeysIn(object) {
16279
16391
 
16280
16392
  module.exports = nativeKeysIn;
16281
16393
 
16282
- },{}],174:[function(require,module,exports){
16394
+ },{}],180:[function(require,module,exports){
16283
16395
  var freeGlobal = require('./_freeGlobal');
16284
16396
 
16285
16397
  /** Detect free variable `exports`. */
@@ -16311,7 +16423,7 @@ var nodeUtil = (function() {
16311
16423
 
16312
16424
  module.exports = nodeUtil;
16313
16425
 
16314
- },{"./_freeGlobal":134}],175:[function(require,module,exports){
16426
+ },{"./_freeGlobal":139}],181:[function(require,module,exports){
16315
16427
  /** Used for built-in method references. */
16316
16428
  var objectProto = Object.prototype;
16317
16429
 
@@ -16335,7 +16447,7 @@ function objectToString(value) {
16335
16447
 
16336
16448
  module.exports = objectToString;
16337
16449
 
16338
- },{}],176:[function(require,module,exports){
16450
+ },{}],182:[function(require,module,exports){
16339
16451
  /**
16340
16452
  * Creates a unary function that invokes `func` with its argument transformed.
16341
16453
  *
@@ -16352,7 +16464,7 @@ function overArg(func, transform) {
16352
16464
 
16353
16465
  module.exports = overArg;
16354
16466
 
16355
- },{}],177:[function(require,module,exports){
16467
+ },{}],183:[function(require,module,exports){
16356
16468
  var apply = require('./_apply');
16357
16469
 
16358
16470
  /* Built-in method references for those with the same name as other `lodash` methods. */
@@ -16390,7 +16502,7 @@ function overRest(func, start, transform) {
16390
16502
 
16391
16503
  module.exports = overRest;
16392
16504
 
16393
- },{"./_apply":84}],178:[function(require,module,exports){
16505
+ },{"./_apply":84}],184:[function(require,module,exports){
16394
16506
  var baseGet = require('./_baseGet'),
16395
16507
  baseSlice = require('./_baseSlice');
16396
16508
 
@@ -16408,7 +16520,7 @@ function parent(object, path) {
16408
16520
 
16409
16521
  module.exports = parent;
16410
16522
 
16411
- },{"./_baseGet":98,"./_baseSlice":113}],179:[function(require,module,exports){
16523
+ },{"./_baseGet":100,"./_baseSlice":117}],185:[function(require,module,exports){
16412
16524
  var freeGlobal = require('./_freeGlobal');
16413
16525
 
16414
16526
  /** Detect free variable `self`. */
@@ -16419,7 +16531,7 @@ var root = freeGlobal || freeSelf || Function('return this')();
16419
16531
 
16420
16532
  module.exports = root;
16421
16533
 
16422
- },{"./_freeGlobal":134}],180:[function(require,module,exports){
16534
+ },{"./_freeGlobal":139}],186:[function(require,module,exports){
16423
16535
  var baseSetToString = require('./_baseSetToString'),
16424
16536
  shortOut = require('./_shortOut');
16425
16537
 
@@ -16435,7 +16547,7 @@ var setToString = shortOut(baseSetToString);
16435
16547
 
16436
16548
  module.exports = setToString;
16437
16549
 
16438
- },{"./_baseSetToString":112,"./_shortOut":181}],181:[function(require,module,exports){
16550
+ },{"./_baseSetToString":116,"./_shortOut":187}],187:[function(require,module,exports){
16439
16551
  /** Used to detect hot functions by number of calls within a span of milliseconds. */
16440
16552
  var HOT_COUNT = 800,
16441
16553
  HOT_SPAN = 16;
@@ -16474,7 +16586,7 @@ function shortOut(func) {
16474
16586
 
16475
16587
  module.exports = shortOut;
16476
16588
 
16477
- },{}],182:[function(require,module,exports){
16589
+ },{}],188:[function(require,module,exports){
16478
16590
  var ListCache = require('./_ListCache');
16479
16591
 
16480
16592
  /**
@@ -16491,7 +16603,7 @@ function stackClear() {
16491
16603
 
16492
16604
  module.exports = stackClear;
16493
16605
 
16494
- },{"./_ListCache":75}],183:[function(require,module,exports){
16606
+ },{"./_ListCache":75}],189:[function(require,module,exports){
16495
16607
  /**
16496
16608
  * Removes `key` and its value from the stack.
16497
16609
  *
@@ -16511,7 +16623,7 @@ function stackDelete(key) {
16511
16623
 
16512
16624
  module.exports = stackDelete;
16513
16625
 
16514
- },{}],184:[function(require,module,exports){
16626
+ },{}],190:[function(require,module,exports){
16515
16627
  /**
16516
16628
  * Gets the stack value for `key`.
16517
16629
  *
@@ -16527,7 +16639,7 @@ function stackGet(key) {
16527
16639
 
16528
16640
  module.exports = stackGet;
16529
16641
 
16530
- },{}],185:[function(require,module,exports){
16642
+ },{}],191:[function(require,module,exports){
16531
16643
  /**
16532
16644
  * Checks if a stack value for `key` exists.
16533
16645
  *
@@ -16543,7 +16655,7 @@ function stackHas(key) {
16543
16655
 
16544
16656
  module.exports = stackHas;
16545
16657
 
16546
- },{}],186:[function(require,module,exports){
16658
+ },{}],192:[function(require,module,exports){
16547
16659
  var ListCache = require('./_ListCache'),
16548
16660
  Map = require('./_Map'),
16549
16661
  MapCache = require('./_MapCache');
@@ -16579,7 +16691,47 @@ function stackSet(key, value) {
16579
16691
 
16580
16692
  module.exports = stackSet;
16581
16693
 
16582
- },{"./_ListCache":75,"./_Map":76,"./_MapCache":77}],187:[function(require,module,exports){
16694
+ },{"./_ListCache":75,"./_Map":76,"./_MapCache":77}],193:[function(require,module,exports){
16695
+ var asciiSize = require('./_asciiSize'),
16696
+ hasUnicode = require('./_hasUnicode'),
16697
+ unicodeSize = require('./_unicodeSize');
16698
+
16699
+ /**
16700
+ * Gets the number of symbols in `string`.
16701
+ *
16702
+ * @private
16703
+ * @param {string} string The string to inspect.
16704
+ * @returns {number} Returns the string size.
16705
+ */
16706
+ function stringSize(string) {
16707
+ return hasUnicode(string)
16708
+ ? unicodeSize(string)
16709
+ : asciiSize(string);
16710
+ }
16711
+
16712
+ module.exports = stringSize;
16713
+
16714
+ },{"./_asciiSize":90,"./_hasUnicode":151,"./_unicodeSize":199}],194:[function(require,module,exports){
16715
+ var asciiToArray = require('./_asciiToArray'),
16716
+ hasUnicode = require('./_hasUnicode'),
16717
+ unicodeToArray = require('./_unicodeToArray');
16718
+
16719
+ /**
16720
+ * Converts `string` to an array.
16721
+ *
16722
+ * @private
16723
+ * @param {string} string The string to convert.
16724
+ * @returns {Array} Returns the converted array.
16725
+ */
16726
+ function stringToArray(string) {
16727
+ return hasUnicode(string)
16728
+ ? unicodeToArray(string)
16729
+ : asciiToArray(string);
16730
+ }
16731
+
16732
+ module.exports = stringToArray;
16733
+
16734
+ },{"./_asciiToArray":91,"./_hasUnicode":151,"./_unicodeToArray":200}],195:[function(require,module,exports){
16583
16735
  var memoizeCapped = require('./_memoizeCapped');
16584
16736
 
16585
16737
  /** Used to match property names within property paths. */
@@ -16608,7 +16760,7 @@ var stringToPath = memoizeCapped(function(string) {
16608
16760
 
16609
16761
  module.exports = stringToPath;
16610
16762
 
16611
- },{"./_memoizeCapped":170}],188:[function(require,module,exports){
16763
+ },{"./_memoizeCapped":176}],196:[function(require,module,exports){
16612
16764
  var isSymbol = require('./isSymbol');
16613
16765
 
16614
16766
  /** Used as references for various `Number` constants. */
@@ -16631,7 +16783,7 @@ function toKey(value) {
16631
16783
 
16632
16784
  module.exports = toKey;
16633
16785
 
16634
- },{"./isSymbol":208}],189:[function(require,module,exports){
16786
+ },{"./isSymbol":219}],197:[function(require,module,exports){
16635
16787
  /** Used for built-in method references. */
16636
16788
  var funcProto = Function.prototype;
16637
16789
 
@@ -16659,7 +16811,7 @@ function toSource(func) {
16659
16811
 
16660
16812
  module.exports = toSource;
16661
16813
 
16662
- },{}],190:[function(require,module,exports){
16814
+ },{}],198:[function(require,module,exports){
16663
16815
  /** Used to match a single whitespace character. */
16664
16816
  var reWhitespace = /\s/;
16665
16817
 
@@ -16680,7 +16832,95 @@ function trimmedEndIndex(string) {
16680
16832
 
16681
16833
  module.exports = trimmedEndIndex;
16682
16834
 
16683
- },{}],191:[function(require,module,exports){
16835
+ },{}],199:[function(require,module,exports){
16836
+ /** Used to compose unicode character classes. */
16837
+ var rsAstralRange = '\\ud800-\\udfff',
16838
+ rsComboMarksRange = '\\u0300-\\u036f',
16839
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
16840
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
16841
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
16842
+ rsVarRange = '\\ufe0e\\ufe0f';
16843
+
16844
+ /** Used to compose unicode capture groups. */
16845
+ var rsAstral = '[' + rsAstralRange + ']',
16846
+ rsCombo = '[' + rsComboRange + ']',
16847
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
16848
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
16849
+ rsNonAstral = '[^' + rsAstralRange + ']',
16850
+ rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
16851
+ rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
16852
+ rsZWJ = '\\u200d';
16853
+
16854
+ /** Used to compose unicode regexes. */
16855
+ var reOptMod = rsModifier + '?',
16856
+ rsOptVar = '[' + rsVarRange + ']?',
16857
+ rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
16858
+ rsSeq = rsOptVar + reOptMod + rsOptJoin,
16859
+ rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
16860
+
16861
+ /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
16862
+ var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
16863
+
16864
+ /**
16865
+ * Gets the size of a Unicode `string`.
16866
+ *
16867
+ * @private
16868
+ * @param {string} string The string inspect.
16869
+ * @returns {number} Returns the string size.
16870
+ */
16871
+ function unicodeSize(string) {
16872
+ var result = reUnicode.lastIndex = 0;
16873
+ while (reUnicode.test(string)) {
16874
+ ++result;
16875
+ }
16876
+ return result;
16877
+ }
16878
+
16879
+ module.exports = unicodeSize;
16880
+
16881
+ },{}],200:[function(require,module,exports){
16882
+ /** Used to compose unicode character classes. */
16883
+ var rsAstralRange = '\\ud800-\\udfff',
16884
+ rsComboMarksRange = '\\u0300-\\u036f',
16885
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
16886
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
16887
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
16888
+ rsVarRange = '\\ufe0e\\ufe0f';
16889
+
16890
+ /** Used to compose unicode capture groups. */
16891
+ var rsAstral = '[' + rsAstralRange + ']',
16892
+ rsCombo = '[' + rsComboRange + ']',
16893
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
16894
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
16895
+ rsNonAstral = '[^' + rsAstralRange + ']',
16896
+ rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
16897
+ rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
16898
+ rsZWJ = '\\u200d';
16899
+
16900
+ /** Used to compose unicode regexes. */
16901
+ var reOptMod = rsModifier + '?',
16902
+ rsOptVar = '[' + rsVarRange + ']?',
16903
+ rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
16904
+ rsSeq = rsOptVar + reOptMod + rsOptJoin,
16905
+ rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
16906
+
16907
+ /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
16908
+ var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
16909
+
16910
+ /**
16911
+ * Converts a Unicode `string` to an array.
16912
+ *
16913
+ * @private
16914
+ * @param {string} string The string to convert.
16915
+ * @returns {Array} Returns the converted array.
16916
+ */
16917
+ function unicodeToArray(string) {
16918
+ return string.match(reUnicode) || [];
16919
+ }
16920
+
16921
+ module.exports = unicodeToArray;
16922
+
16923
+ },{}],201:[function(require,module,exports){
16684
16924
  /**
16685
16925
  * Creates a function that returns `value`.
16686
16926
  *
@@ -16708,7 +16948,7 @@ function constant(value) {
16708
16948
 
16709
16949
  module.exports = constant;
16710
16950
 
16711
- },{}],192:[function(require,module,exports){
16951
+ },{}],202:[function(require,module,exports){
16712
16952
  var isObject = require('./isObject'),
16713
16953
  now = require('./now'),
16714
16954
  toNumber = require('./toNumber');
@@ -16901,7 +17141,7 @@ function debounce(func, wait, options) {
16901
17141
 
16902
17142
  module.exports = debounce;
16903
17143
 
16904
- },{"./isObject":204,"./now":214,"./toNumber":220}],193:[function(require,module,exports){
17144
+ },{"./isObject":214,"./now":225,"./toNumber":233}],203:[function(require,module,exports){
16905
17145
  /**
16906
17146
  * Performs a
16907
17147
  * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
@@ -16940,7 +17180,7 @@ function eq(value, other) {
16940
17180
 
16941
17181
  module.exports = eq;
16942
17182
 
16943
- },{}],194:[function(require,module,exports){
17183
+ },{}],204:[function(require,module,exports){
16944
17184
  var baseFlatten = require('./_baseFlatten');
16945
17185
 
16946
17186
  /**
@@ -16964,7 +17204,7 @@ function flatten(array) {
16964
17204
 
16965
17205
  module.exports = flatten;
16966
17206
 
16967
- },{"./_baseFlatten":97}],195:[function(require,module,exports){
17207
+ },{"./_baseFlatten":99}],205:[function(require,module,exports){
16968
17208
  var baseHasIn = require('./_baseHasIn'),
16969
17209
  hasPath = require('./_hasPath');
16970
17210
 
@@ -17000,7 +17240,7 @@ function hasIn(object, path) {
17000
17240
 
17001
17241
  module.exports = hasIn;
17002
17242
 
17003
- },{"./_baseHasIn":101,"./_hasPath":145}],196:[function(require,module,exports){
17243
+ },{"./_baseHasIn":103,"./_hasPath":150}],206:[function(require,module,exports){
17004
17244
  /**
17005
17245
  * This method returns the first argument it receives.
17006
17246
  *
@@ -17023,7 +17263,7 @@ function identity(value) {
17023
17263
 
17024
17264
  module.exports = identity;
17025
17265
 
17026
- },{}],197:[function(require,module,exports){
17266
+ },{}],207:[function(require,module,exports){
17027
17267
  var baseIsArguments = require('./_baseIsArguments'),
17028
17268
  isObjectLike = require('./isObjectLike');
17029
17269
 
@@ -17061,7 +17301,7 @@ var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsAr
17061
17301
 
17062
17302
  module.exports = isArguments;
17063
17303
 
17064
- },{"./_baseIsArguments":102,"./isObjectLike":205}],198:[function(require,module,exports){
17304
+ },{"./_baseIsArguments":104,"./isObjectLike":215}],208:[function(require,module,exports){
17065
17305
  /**
17066
17306
  * Checks if `value` is classified as an `Array` object.
17067
17307
  *
@@ -17089,7 +17329,7 @@ var isArray = Array.isArray;
17089
17329
 
17090
17330
  module.exports = isArray;
17091
17331
 
17092
- },{}],199:[function(require,module,exports){
17332
+ },{}],209:[function(require,module,exports){
17093
17333
  var isFunction = require('./isFunction'),
17094
17334
  isLength = require('./isLength');
17095
17335
 
@@ -17124,7 +17364,7 @@ function isArrayLike(value) {
17124
17364
 
17125
17365
  module.exports = isArrayLike;
17126
17366
 
17127
- },{"./isFunction":201,"./isLength":202}],200:[function(require,module,exports){
17367
+ },{"./isFunction":211,"./isLength":212}],210:[function(require,module,exports){
17128
17368
  var root = require('./_root'),
17129
17369
  stubFalse = require('./stubFalse');
17130
17370
 
@@ -17164,7 +17404,7 @@ var isBuffer = nativeIsBuffer || stubFalse;
17164
17404
 
17165
17405
  module.exports = isBuffer;
17166
17406
 
17167
- },{"./_root":179,"./stubFalse":219}],201:[function(require,module,exports){
17407
+ },{"./_root":185,"./stubFalse":230}],211:[function(require,module,exports){
17168
17408
  var baseGetTag = require('./_baseGetTag'),
17169
17409
  isObject = require('./isObject');
17170
17410
 
@@ -17203,7 +17443,7 @@ function isFunction(value) {
17203
17443
 
17204
17444
  module.exports = isFunction;
17205
17445
 
17206
- },{"./_baseGetTag":100,"./isObject":204}],202:[function(require,module,exports){
17446
+ },{"./_baseGetTag":102,"./isObject":214}],212:[function(require,module,exports){
17207
17447
  /** Used as references for various `Number` constants. */
17208
17448
  var MAX_SAFE_INTEGER = 9007199254740991;
17209
17449
 
@@ -17240,7 +17480,7 @@ function isLength(value) {
17240
17480
 
17241
17481
  module.exports = isLength;
17242
17482
 
17243
- },{}],203:[function(require,module,exports){
17483
+ },{}],213:[function(require,module,exports){
17244
17484
  var baseIsMap = require('./_baseIsMap'),
17245
17485
  baseUnary = require('./_baseUnary'),
17246
17486
  nodeUtil = require('./_nodeUtil');
@@ -17269,7 +17509,7 @@ var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
17269
17509
 
17270
17510
  module.exports = isMap;
17271
17511
 
17272
- },{"./_baseIsMap":103,"./_baseUnary":117,"./_nodeUtil":174}],204:[function(require,module,exports){
17512
+ },{"./_baseIsMap":105,"./_baseUnary":121,"./_nodeUtil":180}],214:[function(require,module,exports){
17273
17513
  /**
17274
17514
  * Checks if `value` is the
17275
17515
  * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
@@ -17302,7 +17542,7 @@ function isObject(value) {
17302
17542
 
17303
17543
  module.exports = isObject;
17304
17544
 
17305
- },{}],205:[function(require,module,exports){
17545
+ },{}],215:[function(require,module,exports){
17306
17546
  /**
17307
17547
  * Checks if `value` is object-like. A value is object-like if it's not `null`
17308
17548
  * and has a `typeof` result of "object".
@@ -17333,7 +17573,7 @@ function isObjectLike(value) {
17333
17573
 
17334
17574
  module.exports = isObjectLike;
17335
17575
 
17336
- },{}],206:[function(require,module,exports){
17576
+ },{}],216:[function(require,module,exports){
17337
17577
  var baseGetTag = require('./_baseGetTag'),
17338
17578
  getPrototype = require('./_getPrototype'),
17339
17579
  isObjectLike = require('./isObjectLike');
@@ -17397,7 +17637,36 @@ function isPlainObject(value) {
17397
17637
 
17398
17638
  module.exports = isPlainObject;
17399
17639
 
17400
- },{"./_baseGetTag":100,"./_getPrototype":139,"./isObjectLike":205}],207:[function(require,module,exports){
17640
+ },{"./_baseGetTag":102,"./_getPrototype":144,"./isObjectLike":215}],217:[function(require,module,exports){
17641
+ var baseIsRegExp = require('./_baseIsRegExp'),
17642
+ baseUnary = require('./_baseUnary'),
17643
+ nodeUtil = require('./_nodeUtil');
17644
+
17645
+ /* Node.js helper references. */
17646
+ var nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;
17647
+
17648
+ /**
17649
+ * Checks if `value` is classified as a `RegExp` object.
17650
+ *
17651
+ * @static
17652
+ * @memberOf _
17653
+ * @since 0.1.0
17654
+ * @category Lang
17655
+ * @param {*} value The value to check.
17656
+ * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
17657
+ * @example
17658
+ *
17659
+ * _.isRegExp(/abc/);
17660
+ * // => true
17661
+ *
17662
+ * _.isRegExp('/abc/');
17663
+ * // => false
17664
+ */
17665
+ var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;
17666
+
17667
+ module.exports = isRegExp;
17668
+
17669
+ },{"./_baseIsRegExp":107,"./_baseUnary":121,"./_nodeUtil":180}],218:[function(require,module,exports){
17401
17670
  var baseIsSet = require('./_baseIsSet'),
17402
17671
  baseUnary = require('./_baseUnary'),
17403
17672
  nodeUtil = require('./_nodeUtil');
@@ -17426,7 +17695,7 @@ var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
17426
17695
 
17427
17696
  module.exports = isSet;
17428
17697
 
17429
- },{"./_baseIsSet":105,"./_baseUnary":117,"./_nodeUtil":174}],208:[function(require,module,exports){
17698
+ },{"./_baseIsSet":108,"./_baseUnary":121,"./_nodeUtil":180}],219:[function(require,module,exports){
17430
17699
  var baseGetTag = require('./_baseGetTag'),
17431
17700
  isObjectLike = require('./isObjectLike');
17432
17701
 
@@ -17457,7 +17726,7 @@ function isSymbol(value) {
17457
17726
 
17458
17727
  module.exports = isSymbol;
17459
17728
 
17460
- },{"./_baseGetTag":100,"./isObjectLike":205}],209:[function(require,module,exports){
17729
+ },{"./_baseGetTag":102,"./isObjectLike":215}],220:[function(require,module,exports){
17461
17730
  var baseIsTypedArray = require('./_baseIsTypedArray'),
17462
17731
  baseUnary = require('./_baseUnary'),
17463
17732
  nodeUtil = require('./_nodeUtil');
@@ -17486,7 +17755,7 @@ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedA
17486
17755
 
17487
17756
  module.exports = isTypedArray;
17488
17757
 
17489
- },{"./_baseIsTypedArray":106,"./_baseUnary":117,"./_nodeUtil":174}],210:[function(require,module,exports){
17758
+ },{"./_baseIsTypedArray":109,"./_baseUnary":121,"./_nodeUtil":180}],221:[function(require,module,exports){
17490
17759
  var arrayLikeKeys = require('./_arrayLikeKeys'),
17491
17760
  baseKeys = require('./_baseKeys'),
17492
17761
  isArrayLike = require('./isArrayLike');
@@ -17525,7 +17794,7 @@ function keys(object) {
17525
17794
 
17526
17795
  module.exports = keys;
17527
17796
 
17528
- },{"./_arrayLikeKeys":87,"./_baseKeys":107,"./isArrayLike":199}],211:[function(require,module,exports){
17797
+ },{"./_arrayLikeKeys":87,"./_baseKeys":110,"./isArrayLike":209}],222:[function(require,module,exports){
17529
17798
  var arrayLikeKeys = require('./_arrayLikeKeys'),
17530
17799
  baseKeysIn = require('./_baseKeysIn'),
17531
17800
  isArrayLike = require('./isArrayLike');
@@ -17559,7 +17828,7 @@ function keysIn(object) {
17559
17828
 
17560
17829
  module.exports = keysIn;
17561
17830
 
17562
- },{"./_arrayLikeKeys":87,"./_baseKeysIn":108,"./isArrayLike":199}],212:[function(require,module,exports){
17831
+ },{"./_arrayLikeKeys":87,"./_baseKeysIn":111,"./isArrayLike":209}],223:[function(require,module,exports){
17563
17832
  /**
17564
17833
  * Gets the last element of `array`.
17565
17834
  *
@@ -17581,7 +17850,7 @@ function last(array) {
17581
17850
 
17582
17851
  module.exports = last;
17583
17852
 
17584
- },{}],213:[function(require,module,exports){
17853
+ },{}],224:[function(require,module,exports){
17585
17854
  var MapCache = require('./_MapCache');
17586
17855
 
17587
17856
  /** Error message constants. */
@@ -17656,7 +17925,7 @@ memoize.Cache = MapCache;
17656
17925
 
17657
17926
  module.exports = memoize;
17658
17927
 
17659
- },{"./_MapCache":77}],214:[function(require,module,exports){
17928
+ },{"./_MapCache":77}],225:[function(require,module,exports){
17660
17929
  var root = require('./_root');
17661
17930
 
17662
17931
  /**
@@ -17681,7 +17950,7 @@ var now = function() {
17681
17950
 
17682
17951
  module.exports = now;
17683
17952
 
17684
- },{"./_root":179}],215:[function(require,module,exports){
17953
+ },{"./_root":185}],226:[function(require,module,exports){
17685
17954
  var arrayMap = require('./_arrayMap'),
17686
17955
  baseClone = require('./_baseClone'),
17687
17956
  baseUnset = require('./_baseUnset'),
@@ -17740,7 +18009,7 @@ var omit = flatRest(function(object, paths) {
17740
18009
 
17741
18010
  module.exports = omit;
17742
18011
 
17743
- },{"./_arrayMap":88,"./_baseClone":95,"./_baseUnset":118,"./_castPath":119,"./_copyObject":127,"./_customOmitClone":131,"./_flatRest":133,"./_getAllKeysIn":136}],216:[function(require,module,exports){
18012
+ },{"./_arrayMap":88,"./_baseClone":97,"./_baseUnset":122,"./_castPath":123,"./_copyObject":132,"./_customOmitClone":136,"./_flatRest":138,"./_getAllKeysIn":141}],227:[function(require,module,exports){
17744
18013
  var basePick = require('./_basePick'),
17745
18014
  flatRest = require('./_flatRest');
17746
18015
 
@@ -17767,7 +18036,7 @@ var pick = flatRest(function(object, paths) {
17767
18036
 
17768
18037
  module.exports = pick;
17769
18038
 
17770
- },{"./_basePick":109,"./_flatRest":133}],217:[function(require,module,exports){
18039
+ },{"./_basePick":112,"./_flatRest":138}],228:[function(require,module,exports){
17771
18040
  var baseSet = require('./_baseSet');
17772
18041
 
17773
18042
  /**
@@ -17804,7 +18073,7 @@ function set(object, path, value) {
17804
18073
 
17805
18074
  module.exports = set;
17806
18075
 
17807
- },{"./_baseSet":111}],218:[function(require,module,exports){
18076
+ },{"./_baseSet":115}],229:[function(require,module,exports){
17808
18077
  /**
17809
18078
  * This method returns a new empty array.
17810
18079
  *
@@ -17829,7 +18098,7 @@ function stubArray() {
17829
18098
 
17830
18099
  module.exports = stubArray;
17831
18100
 
17832
- },{}],219:[function(require,module,exports){
18101
+ },{}],230:[function(require,module,exports){
17833
18102
  /**
17834
18103
  * This method returns `false`.
17835
18104
  *
@@ -17849,7 +18118,89 @@ function stubFalse() {
17849
18118
 
17850
18119
  module.exports = stubFalse;
17851
18120
 
17852
- },{}],220:[function(require,module,exports){
18121
+ },{}],231:[function(require,module,exports){
18122
+ var toNumber = require('./toNumber');
18123
+
18124
+ /** Used as references for various `Number` constants. */
18125
+ var INFINITY = 1 / 0,
18126
+ MAX_INTEGER = 1.7976931348623157e+308;
18127
+
18128
+ /**
18129
+ * Converts `value` to a finite number.
18130
+ *
18131
+ * @static
18132
+ * @memberOf _
18133
+ * @since 4.12.0
18134
+ * @category Lang
18135
+ * @param {*} value The value to convert.
18136
+ * @returns {number} Returns the converted number.
18137
+ * @example
18138
+ *
18139
+ * _.toFinite(3.2);
18140
+ * // => 3.2
18141
+ *
18142
+ * _.toFinite(Number.MIN_VALUE);
18143
+ * // => 5e-324
18144
+ *
18145
+ * _.toFinite(Infinity);
18146
+ * // => 1.7976931348623157e+308
18147
+ *
18148
+ * _.toFinite('3.2');
18149
+ * // => 3.2
18150
+ */
18151
+ function toFinite(value) {
18152
+ if (!value) {
18153
+ return value === 0 ? value : 0;
18154
+ }
18155
+ value = toNumber(value);
18156
+ if (value === INFINITY || value === -INFINITY) {
18157
+ var sign = (value < 0 ? -1 : 1);
18158
+ return sign * MAX_INTEGER;
18159
+ }
18160
+ return value === value ? value : 0;
18161
+ }
18162
+
18163
+ module.exports = toFinite;
18164
+
18165
+ },{"./toNumber":233}],232:[function(require,module,exports){
18166
+ var toFinite = require('./toFinite');
18167
+
18168
+ /**
18169
+ * Converts `value` to an integer.
18170
+ *
18171
+ * **Note:** This method is loosely based on
18172
+ * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
18173
+ *
18174
+ * @static
18175
+ * @memberOf _
18176
+ * @since 4.0.0
18177
+ * @category Lang
18178
+ * @param {*} value The value to convert.
18179
+ * @returns {number} Returns the converted integer.
18180
+ * @example
18181
+ *
18182
+ * _.toInteger(3.2);
18183
+ * // => 3
18184
+ *
18185
+ * _.toInteger(Number.MIN_VALUE);
18186
+ * // => 0
18187
+ *
18188
+ * _.toInteger(Infinity);
18189
+ * // => 1.7976931348623157e+308
18190
+ *
18191
+ * _.toInteger('3.2');
18192
+ * // => 3
18193
+ */
18194
+ function toInteger(value) {
18195
+ var result = toFinite(value),
18196
+ remainder = result % 1;
18197
+
18198
+ return result === result ? (remainder ? result - remainder : result) : 0;
18199
+ }
18200
+
18201
+ module.exports = toInteger;
18202
+
18203
+ },{"./toFinite":231}],233:[function(require,module,exports){
17853
18204
  var baseTrim = require('./_baseTrim'),
17854
18205
  isObject = require('./isObject'),
17855
18206
  isSymbol = require('./isSymbol');
@@ -17915,7 +18266,7 @@ function toNumber(value) {
17915
18266
 
17916
18267
  module.exports = toNumber;
17917
18268
 
17918
- },{"./_baseTrim":116,"./isObject":204,"./isSymbol":208}],221:[function(require,module,exports){
18269
+ },{"./_baseTrim":120,"./isObject":214,"./isSymbol":219}],234:[function(require,module,exports){
17919
18270
  var baseToString = require('./_baseToString');
17920
18271
 
17921
18272
  /**
@@ -17945,7 +18296,120 @@ function toString(value) {
17945
18296
 
17946
18297
  module.exports = toString;
17947
18298
 
17948
- },{"./_baseToString":115}],222:[function(require,module,exports){
18299
+ },{"./_baseToString":119}],235:[function(require,module,exports){
18300
+ var baseToString = require('./_baseToString'),
18301
+ castSlice = require('./_castSlice'),
18302
+ hasUnicode = require('./_hasUnicode'),
18303
+ isObject = require('./isObject'),
18304
+ isRegExp = require('./isRegExp'),
18305
+ stringSize = require('./_stringSize'),
18306
+ stringToArray = require('./_stringToArray'),
18307
+ toInteger = require('./toInteger'),
18308
+ toString = require('./toString');
18309
+
18310
+ /** Used as default options for `_.truncate`. */
18311
+ var DEFAULT_TRUNC_LENGTH = 30,
18312
+ DEFAULT_TRUNC_OMISSION = '...';
18313
+
18314
+ /** Used to match `RegExp` flags from their coerced string values. */
18315
+ var reFlags = /\w*$/;
18316
+
18317
+ /**
18318
+ * Truncates `string` if it's longer than the given maximum string length.
18319
+ * The last characters of the truncated string are replaced with the omission
18320
+ * string which defaults to "...".
18321
+ *
18322
+ * @static
18323
+ * @memberOf _
18324
+ * @since 4.0.0
18325
+ * @category String
18326
+ * @param {string} [string=''] The string to truncate.
18327
+ * @param {Object} [options={}] The options object.
18328
+ * @param {number} [options.length=30] The maximum string length.
18329
+ * @param {string} [options.omission='...'] The string to indicate text is omitted.
18330
+ * @param {RegExp|string} [options.separator] The separator pattern to truncate to.
18331
+ * @returns {string} Returns the truncated string.
18332
+ * @example
18333
+ *
18334
+ * _.truncate('hi-diddly-ho there, neighborino');
18335
+ * // => 'hi-diddly-ho there, neighbo...'
18336
+ *
18337
+ * _.truncate('hi-diddly-ho there, neighborino', {
18338
+ * 'length': 24,
18339
+ * 'separator': ' '
18340
+ * });
18341
+ * // => 'hi-diddly-ho there,...'
18342
+ *
18343
+ * _.truncate('hi-diddly-ho there, neighborino', {
18344
+ * 'length': 24,
18345
+ * 'separator': /,? +/
18346
+ * });
18347
+ * // => 'hi-diddly-ho there...'
18348
+ *
18349
+ * _.truncate('hi-diddly-ho there, neighborino', {
18350
+ * 'omission': ' [...]'
18351
+ * });
18352
+ * // => 'hi-diddly-ho there, neig [...]'
18353
+ */
18354
+ function truncate(string, options) {
18355
+ var length = DEFAULT_TRUNC_LENGTH,
18356
+ omission = DEFAULT_TRUNC_OMISSION;
18357
+
18358
+ if (isObject(options)) {
18359
+ var separator = 'separator' in options ? options.separator : separator;
18360
+ length = 'length' in options ? toInteger(options.length) : length;
18361
+ omission = 'omission' in options ? baseToString(options.omission) : omission;
18362
+ }
18363
+ string = toString(string);
18364
+
18365
+ var strLength = string.length;
18366
+ if (hasUnicode(string)) {
18367
+ var strSymbols = stringToArray(string);
18368
+ strLength = strSymbols.length;
18369
+ }
18370
+ if (length >= strLength) {
18371
+ return string;
18372
+ }
18373
+ var end = length - stringSize(omission);
18374
+ if (end < 1) {
18375
+ return omission;
18376
+ }
18377
+ var result = strSymbols
18378
+ ? castSlice(strSymbols, 0, end).join('')
18379
+ : string.slice(0, end);
18380
+
18381
+ if (separator === undefined) {
18382
+ return result + omission;
18383
+ }
18384
+ if (strSymbols) {
18385
+ end += (result.length - end);
18386
+ }
18387
+ if (isRegExp(separator)) {
18388
+ if (string.slice(end).search(separator)) {
18389
+ var match,
18390
+ substring = result;
18391
+
18392
+ if (!separator.global) {
18393
+ separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');
18394
+ }
18395
+ separator.lastIndex = 0;
18396
+ while ((match = separator.exec(substring))) {
18397
+ var newEnd = match.index;
18398
+ }
18399
+ result = result.slice(0, newEnd === undefined ? end : newEnd);
18400
+ }
18401
+ } else if (string.indexOf(baseToString(separator), end) != end) {
18402
+ var index = result.lastIndexOf(separator);
18403
+ if (index > -1) {
18404
+ result = result.slice(0, index);
18405
+ }
18406
+ }
18407
+ return result + omission;
18408
+ }
18409
+
18410
+ module.exports = truncate;
18411
+
18412
+ },{"./_baseToString":119,"./_castSlice":124,"./_hasUnicode":151,"./_stringSize":193,"./_stringToArray":194,"./isObject":214,"./isRegExp":217,"./toInteger":232,"./toString":234}],236:[function(require,module,exports){
17949
18413
  var baseUnset = require('./_baseUnset');
17950
18414
 
17951
18415
  /**
@@ -17981,7 +18445,7 @@ function unset(object, path) {
17981
18445
 
17982
18446
  module.exports = unset;
17983
18447
 
17984
- },{"./_baseUnset":118}],223:[function(require,module,exports){
18448
+ },{"./_baseUnset":122}],237:[function(require,module,exports){
17985
18449
  /**
17986
18450
  * Helpers.
17987
18451
  */
@@ -18145,7 +18609,7 @@ function plural(ms, msAbs, n, name) {
18145
18609
  return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
18146
18610
  }
18147
18611
 
18148
- },{}],224:[function(require,module,exports){
18612
+ },{}],238:[function(require,module,exports){
18149
18613
  // shim for using process in browser
18150
18614
  var process = module.exports = {};
18151
18615
 
@@ -18331,7 +18795,7 @@ process.chdir = function (dir) {
18331
18795
  };
18332
18796
  process.umask = function() { return 0; };
18333
18797
 
18334
- },{}],225:[function(require,module,exports){
18798
+ },{}],239:[function(require,module,exports){
18335
18799
  "use strict";
18336
18800
  /**
18337
18801
  * Initialize backoff timer with `opts`.
@@ -18403,7 +18867,7 @@ Backoff.prototype.setJitter = function (jitter) {
18403
18867
  this.jitter = jitter;
18404
18868
  };
18405
18869
 
18406
- },{}],226:[function(require,module,exports){
18870
+ },{}],240:[function(require,module,exports){
18407
18871
  "use strict";
18408
18872
  var __importDefault = (this && this.__importDefault) || function (mod) {
18409
18873
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -18474,7 +18938,7 @@ Object.defineProperty(exports, "protocol", { enumerable: true, get: function ()
18474
18938
 
18475
18939
  module.exports = lookup;
18476
18940
 
18477
- },{"./manager.js":227,"./socket.js":229,"./url.js":230,"debug":6,"socket.io-parser":232}],227:[function(require,module,exports){
18941
+ },{"./manager.js":241,"./socket.js":243,"./url.js":244,"debug":6,"socket.io-parser":246}],241:[function(require,module,exports){
18478
18942
  "use strict";
18479
18943
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18480
18944
  if (k2 === undefined) k2 = k;
@@ -18879,7 +19343,7 @@ class Manager extends component_emitter_1.Emitter {
18879
19343
  }
18880
19344
  exports.Manager = Manager;
18881
19345
 
18882
- },{"./contrib/backo2.js":225,"./on.js":228,"./socket.js":229,"@socket.io/component-emitter":2,"debug":6,"engine.io-client":13,"socket.io-parser":232}],228:[function(require,module,exports){
19346
+ },{"./contrib/backo2.js":239,"./on.js":242,"./socket.js":243,"@socket.io/component-emitter":2,"debug":6,"engine.io-client":13,"socket.io-parser":246}],242:[function(require,module,exports){
18883
19347
  "use strict";
18884
19348
  Object.defineProperty(exports, "__esModule", { value: true });
18885
19349
  exports.on = void 0;
@@ -18891,7 +19355,7 @@ function on(obj, ev, fn) {
18891
19355
  }
18892
19356
  exports.on = on;
18893
19357
 
18894
- },{}],229:[function(require,module,exports){
19358
+ },{}],243:[function(require,module,exports){
18895
19359
  "use strict";
18896
19360
  var __importDefault = (this && this.__importDefault) || function (mod) {
18897
19361
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -19619,7 +20083,7 @@ class Socket extends component_emitter_1.Emitter {
19619
20083
  }
19620
20084
  exports.Socket = Socket;
19621
20085
 
19622
- },{"./on.js":228,"@socket.io/component-emitter":2,"debug":6,"socket.io-parser":232}],230:[function(require,module,exports){
20086
+ },{"./on.js":242,"@socket.io/component-emitter":2,"debug":6,"socket.io-parser":246}],244:[function(require,module,exports){
19623
20087
  "use strict";
19624
20088
  var __importDefault = (this && this.__importDefault) || function (mod) {
19625
20089
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -19691,7 +20155,7 @@ function url(uri, path = "", loc) {
19691
20155
  }
19692
20156
  exports.url = url;
19693
20157
 
19694
- },{"debug":6,"engine.io-client":13}],231:[function(require,module,exports){
20158
+ },{"debug":6,"engine.io-client":13}],245:[function(require,module,exports){
19695
20159
  "use strict";
19696
20160
  Object.defineProperty(exports, "__esModule", { value: true });
19697
20161
  exports.reconstructPacket = exports.deconstructPacket = void 0;
@@ -19781,7 +20245,7 @@ function _reconstructPacket(data, buffers) {
19781
20245
  return data;
19782
20246
  }
19783
20247
 
19784
- },{"./is-binary.js":233}],232:[function(require,module,exports){
20248
+ },{"./is-binary.js":247}],246:[function(require,module,exports){
19785
20249
  "use strict";
19786
20250
  Object.defineProperty(exports, "__esModule", { value: true });
19787
20251
  exports.Decoder = exports.Encoder = exports.PacketType = exports.protocol = void 0;
@@ -20081,7 +20545,7 @@ class BinaryReconstructor {
20081
20545
  }
20082
20546
  }
20083
20547
 
20084
- },{"./binary.js":231,"./is-binary.js":233,"@socket.io/component-emitter":2,"debug":6}],233:[function(require,module,exports){
20548
+ },{"./binary.js":245,"./is-binary.js":247,"@socket.io/component-emitter":2,"debug":6}],247:[function(require,module,exports){
20085
20549
  "use strict";
20086
20550
  Object.defineProperty(exports, "__esModule", { value: true });
20087
20551
  exports.hasBinary = exports.isBinary = void 0;
@@ -20138,11 +20602,11 @@ function hasBinary(obj, toJSON) {
20138
20602
  }
20139
20603
  exports.hasBinary = hasBinary;
20140
20604
 
20141
- },{}],234:[function(require,module,exports){
20605
+ },{}],248:[function(require,module,exports){
20142
20606
  "use strict";
20143
20607
  Object.defineProperty(exports, "__esModule", { value: true });
20144
20608
  exports.CurtainComponent = void 0;
20145
- const models_1 = require("../models");
20609
+ const models_1 = require("../../models");
20146
20610
  class CurtainComponent extends models_1.Component {
20147
20611
  constructor(options = {}) {
20148
20612
  super('<div class="curtain hidden"></div>');
@@ -20157,7 +20621,7 @@ class CurtainComponent extends models_1.Component {
20157
20621
  }
20158
20622
  exports.CurtainComponent = CurtainComponent;
20159
20623
 
20160
- },{"../models":264}],235:[function(require,module,exports){
20624
+ },{"../../models":278}],249:[function(require,module,exports){
20161
20625
  "use strict";
20162
20626
  var __importDefault = (this && this.__importDefault) || function (mod) {
20163
20627
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20175,7 +20639,7 @@ class EmptyComponent extends models_1.Component {
20175
20639
  }
20176
20640
  exports.EmptyComponent = EmptyComponent;
20177
20641
 
20178
- },{"../../models":264,"./template.hbs":236,"handlebars":60}],236:[function(require,module,exports){
20642
+ },{"../../models":278,"./template.hbs":250,"handlebars":60}],250:[function(require,module,exports){
20179
20643
  module.exports = `
20180
20644
  <div class="empty">
20181
20645
  <i class="fas fa-hourglass-start"></i>
@@ -20183,17 +20647,17 @@ module.exports = `
20183
20647
  </div>
20184
20648
  `
20185
20649
 
20186
- },{}],237:[function(require,module,exports){
20650
+ },{}],251:[function(require,module,exports){
20187
20651
  "use strict";
20188
20652
  var __importDefault = (this && this.__importDefault) || function (mod) {
20189
20653
  return (mod && mod.__esModule) ? mod : { "default": mod };
20190
20654
  };
20191
20655
  Object.defineProperty(exports, "__esModule", { value: true });
20192
20656
  exports.ExpectationComponent = void 0;
20193
- const json_formatter_1 = __importDefault(require("../../../../../../json-formatter"));
20194
- const handlebars_1 = __importDefault(require("handlebars"));
20195
20657
  const pick_1 = __importDefault(require("lodash/pick"));
20658
+ const handlebars_1 = __importDefault(require("handlebars"));
20196
20659
  const models_1 = require("../../models");
20660
+ const viewer_component_1 = require("../viewer.component");
20197
20661
  const context_1 = __importDefault(require("../../context"));
20198
20662
  const template = require('./template.hbs');
20199
20663
  const render = handlebars_1.default.compile(template);
@@ -20201,32 +20665,27 @@ class ExpectationComponent extends models_1.Component {
20201
20665
  constructor(data) {
20202
20666
  super();
20203
20667
  this.data = data;
20204
- this.isExpanded = false;
20205
- this.refresh(data);
20668
+ this.viewer = viewer_component_1.ViewerComponent.build({ depth: 3 }).hide();
20669
+ this.refresh();
20206
20670
  }
20207
- refresh(data) {
20208
- this.clear().append(render(data));
20209
- const pre = this.element.querySelector('pre');
20210
- const json = new json_formatter_1.default((0, pick_1.default)(data, ['id', 'type', 'transports', 'schema']), 3, {
20211
- theme: 'custom',
20212
- afterCopyHandler: () => context_1.default.shared.popups.push('Copied', { icon: 'fas fa-clone', level: 'info' }),
20213
- });
20214
- pre.appendChild(json.render());
20215
- if (this.isExpanded) {
20216
- pre.classList.remove('hidden');
20217
- }
20218
- this.element.querySelector('button.activity')?.addEventListener('click', () => context_1.default.services.io.exec('expectations:update', { id: data.id, set: { isEnabled: !data.isEnabled } }));
20219
- this.element.querySelector('div.meta').addEventListener('click', (event) => {
20220
- if (event.target.nodeName === 'BUTTON') {
20221
- return null;
20222
- }
20223
- if (event.composedPath().some((element) => element?.classList?.contains('meta')) === false) {
20224
- return null;
20225
- }
20226
- pre.classList.toggle('hidden');
20227
- this.isExpanded = !this.isExpanded;
20228
- });
20229
- return Object.assign(this, { expectation: data });
20671
+ provide(data) {
20672
+ return Object.assign(this, { data });
20673
+ }
20674
+ refresh() {
20675
+ this.replace(render(this.data)).append(this.viewer);
20676
+ this.viewer.provide((0, pick_1.default)(this.data, ['id', 'type', 'transports', 'schema']));
20677
+ models_1.Button
20678
+ .build(this.element.querySelector('button.activity'))
20679
+ .handle(() => context_1.default.services.io.exec('expectations:update', {
20680
+ id: this.data.id,
20681
+ set: { isEnabled: !this.data.isEnabled },
20682
+ }));
20683
+ this.element.querySelector('div.meta').addEventListener('click', (event) => event.composedPath().some((element) => element?.classList?.contains('meta'))
20684
+ ? event.target.nodeName !== 'BUTTON'
20685
+ ? this.viewer.isHidden ? this.viewer.show() : this.viewer.hide()
20686
+ : null
20687
+ : null);
20688
+ return this;
20230
20689
  }
20231
20690
  match(query) {
20232
20691
  return [
@@ -20243,72 +20702,132 @@ class ExpectationComponent extends models_1.Component {
20243
20702
  }
20244
20703
  exports.ExpectationComponent = ExpectationComponent;
20245
20704
 
20246
- },{"../../../../../../json-formatter":1,"../../context":253,"../../models":264,"./template.hbs":238,"handlebars":60,"lodash/pick":216}],238:[function(require,module,exports){
20705
+ },{"../../context":267,"../../models":278,"../viewer.component":265,"./template.hbs":252,"handlebars":60,"lodash/pick":227}],252:[function(require,module,exports){
20247
20706
  module.exports = `
20248
20707
  <div class="container expectation" id="{{id}}">
20249
20708
  <div class="meta">{{> expectationMeta this}}</div>
20250
- <pre class="panel hidden"></pre>
20251
20709
  </div>
20252
20710
  `
20253
20711
 
20254
- },{}],239:[function(require,module,exports){
20712
+ },{}],253:[function(require,module,exports){
20255
20713
  "use strict";
20256
20714
  var __importDefault = (this && this.__importDefault) || function (mod) {
20257
20715
  return (mod && mod.__esModule) ? mod : { "default": mod };
20258
20716
  };
20259
20717
  Object.defineProperty(exports, "__esModule", { value: true });
20260
- exports.HistoryComponent = void 0;
20261
- const json_formatter_1 = __importDefault(require("../../../../../../json-formatter"));
20718
+ exports.HeaderComponent = void 0;
20719
+ const events_1 = __importDefault(require("events"));
20720
+ const set_1 = __importDefault(require("lodash/set"));
20262
20721
  const handlebars_1 = __importDefault(require("handlebars"));
20263
20722
  const models_1 = require("../../models");
20264
- const context_1 = __importDefault(require("../../context"));
20265
20723
  const template = require('./template.hbs');
20266
20724
  const render = handlebars_1.default.compile(template);
20267
- class HistoryComponent extends models_1.Component {
20268
- constructor(data) {
20269
- super();
20270
- this.data = data;
20271
- this.isExpanded = false;
20272
- this.refresh(data);
20273
- }
20274
- refresh(data) {
20275
- this.clear().append(render(data));
20276
- const pre = this.element.querySelector('pre');
20277
- const formatted = {
20278
- event: data.snapshot.event,
20279
- ...(Object.keys(data.snapshot.flags).length && { flags: data.snapshot.flags }),
20280
- ...(data.expectation && {
20281
- expectation: {
20282
- id: data.expectation.id,
20283
- group: data.expectation.group,
20284
- ...(data.expectation.schema.forward && { forward: data.expectation.schema.forward }),
20285
- },
20286
- }),
20287
- ...(data.snapshot.cache?.isEnabled && { cache: data.snapshot.cache }),
20288
- ...(data.snapshot.seed && { seed: data.snapshot.seed }),
20289
- ...(data.snapshot.container && { container: data.snapshot.container }),
20290
- incoming: data.snapshot.incoming,
20291
- ...(data.snapshot.error && { error: data.snapshot.error }),
20292
- ...(data.status === 'completed' && { outgoing: data.snapshot.outgoing }),
20293
- ...(data.snapshot.forwarded && { forwarded: data.snapshot.forwarded }),
20294
- ...(data.snapshot.messages?.length && { messages: data.snapshot.messages }),
20295
- };
20296
- if (this.isExpanded) {
20297
- pre.classList.remove('hidden');
20298
- }
20299
- const json = new json_formatter_1.default(formatted, 2, {
20300
- theme: 'custom',
20301
- afterCopyHandler: () => context_1.default.shared.popups.push('Copied!', { icon: 'fas fa-clone', level: 'info' }),
20302
- });
20303
- pre.appendChild(json.render());
20304
- this.element.querySelector('div.meta').addEventListener('click', (event) => {
20305
- if (event.composedPath().some((element) => element?.classList?.contains('meta')) === false) {
20725
+ class HeaderComponent extends models_1.Component {
20726
+ constructor(tabs) {
20727
+ super(render({
20728
+ tabs: tabs.map((tab) => tab.type === 'section'
20729
+ ? Object.assign(tab, { id: tab.entity.id, isSelected: !tab.entity.isHidden })
20730
+ : tab),
20731
+ }));
20732
+ this.tabs = tabs;
20733
+ this.events = new events_1.default();
20734
+ this.sections = this.tabs
20735
+ .map((tab) => tab.type === 'section' ? tab.entity : null)
20736
+ .filter(Boolean)
20737
+ .reduce((acc, section) => (0, set_1.default)(acc, section.id, section), {});
20738
+ this.element.querySelector('div#tabs').addEventListener('click', (source) => {
20739
+ const event = source;
20740
+ if (event.target?.nodeName !== 'BUTTON' || !this.sections[event.target.id]) {
20306
20741
  return null;
20307
20742
  }
20308
- pre.classList.toggle('hidden');
20309
- this.isExpanded = !this.isExpanded;
20743
+ event.target.parentNode?.querySelectorAll('button.checked').forEach((element) => element.classList.remove('checked'));
20744
+ event.target.classList.add('checked');
20745
+ this.emit('select', this.sections[event.target.id]);
20310
20746
  });
20311
20747
  }
20748
+ on(event, handler) {
20749
+ this.events.on(event, handler);
20750
+ return this;
20751
+ }
20752
+ once(event, handler) {
20753
+ this.events.once(event, handler);
20754
+ return this;
20755
+ }
20756
+ emit(event, ...args) {
20757
+ this.events.emit(event, ...args);
20758
+ return this;
20759
+ }
20760
+ static build(tabs) {
20761
+ return new HeaderComponent(tabs);
20762
+ }
20763
+ }
20764
+ exports.HeaderComponent = HeaderComponent;
20765
+
20766
+ },{"../../models":278,"./template.hbs":254,"events":27,"handlebars":60,"lodash/set":228}],254:[function(require,module,exports){
20767
+ module.exports = `
20768
+ <header>
20769
+ <div id="tabs">
20770
+ {{#each tabs}}
20771
+ {{#compare type 'eq' 'separator'}}<hr>{{/compare}}
20772
+
20773
+ {{#compare type 'eq' 'section'}}
20774
+ <button class="{{#unless entity.meta.name}}icon-only{{/unless}} {{#if isSelected}}checked{{/if}}" id="{{id}}">
20775
+ <i class="{{entity.meta.icon}}"></i>{{entity.meta.name}}
20776
+ </button>
20777
+ {{/compare}}
20778
+ {{/each}}
20779
+ </div>
20780
+ </header>
20781
+ `
20782
+
20783
+ },{}],255:[function(require,module,exports){
20784
+ "use strict";
20785
+ var __importDefault = (this && this.__importDefault) || function (mod) {
20786
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20787
+ };
20788
+ Object.defineProperty(exports, "__esModule", { value: true });
20789
+ exports.HistoryComponent = void 0;
20790
+ const handlebars_1 = __importDefault(require("handlebars"));
20791
+ const viewer_component_1 = require("../viewer.component");
20792
+ const models_1 = require("../../models");
20793
+ const template = require('./template.hbs');
20794
+ const render = handlebars_1.default.compile(template);
20795
+ class HistoryComponent extends models_1.Component {
20796
+ constructor(data) {
20797
+ super();
20798
+ this.data = data;
20799
+ this.viewer = viewer_component_1.ViewerComponent.build({ depth: 2 }).hide();
20800
+ this.refresh();
20801
+ }
20802
+ provide(data) {
20803
+ return Object.assign(this, { data });
20804
+ }
20805
+ refresh() {
20806
+ this.replace(render(this.data)).append(this.viewer);
20807
+ this.viewer.provide({
20808
+ event: this.data.snapshot.event,
20809
+ ...(Object.keys(this.data.snapshot.flags).length && { flags: this.data.snapshot.flags }),
20810
+ ...(this.data.expectation && {
20811
+ expectation: {
20812
+ id: this.data.expectation.id,
20813
+ group: this.data.expectation.group,
20814
+ ...(this.data.expectation.schema.forward && { forward: this.data.expectation.schema.forward }),
20815
+ },
20816
+ }),
20817
+ ...(this.data.snapshot.cache?.isEnabled && { cache: this.data.snapshot.cache }),
20818
+ ...(this.data.snapshot.seed && { seed: this.data.snapshot.seed }),
20819
+ ...(this.data.snapshot.container && { container: this.data.snapshot.container }),
20820
+ incoming: this.data.snapshot.incoming,
20821
+ ...(this.data.snapshot.error && { error: this.data.snapshot.error }),
20822
+ ...(this.data.status === 'completed' && { outgoing: this.data.snapshot.outgoing }),
20823
+ ...(this.data.snapshot.forwarded && { forwarded: this.data.snapshot.forwarded }),
20824
+ ...(this.data.snapshot.messages?.length && { messages: this.data.snapshot.messages }),
20825
+ });
20826
+ this.element.querySelector('div.meta').addEventListener('click', (event) => event.composedPath().some((element) => element?.classList?.contains('meta'))
20827
+ ? this.viewer.isHidden ? this.viewer.show() : this.viewer.hide()
20828
+ : null);
20829
+ return this;
20830
+ }
20312
20831
  match(query) {
20313
20832
  const light = [
20314
20833
  this.data.group,
@@ -20336,12 +20855,12 @@ class HistoryComponent extends models_1.Component {
20336
20855
  }
20337
20856
  exports.HistoryComponent = HistoryComponent;
20338
20857
 
20339
- },{"../../../../../../json-formatter":1,"../../context":253,"../../models":264,"./template.hbs":240,"handlebars":60}],240:[function(require,module,exports){
20858
+ },{"../../models":278,"../viewer.component":265,"./template.hbs":256,"handlebars":60}],256:[function(require,module,exports){
20340
20859
  module.exports = `
20341
20860
  <div class="container history" id="{{id}}">
20342
20861
  <div class="meta">
20343
20862
  <div class="segment">
20344
- <span class="time">{{#toLocaleTime meta.requestedAt}}{{/toLocaleTime}}</span>
20863
+ <span class="time">{{#toLocaleTime timestamp}}{{/toLocaleTime}}</span>
20345
20864
 
20346
20865
  {{#if snapshot.error}}
20347
20866
  <span class="error">
@@ -20360,21 +20879,22 @@ module.exports = `
20360
20879
  {{#compare snapshot.outgoing.status 'lt' 400}}green{{/compare}}
20361
20880
  {{#compare snapshot.outgoing.status 'gte' 400}}red{{/compare}}
20362
20881
  {{/compare}}
20363
- ">{{snapshot.outgoing.status}}</span>
20882
+ "><b>{{snapshot.outgoing.status}}</b> {{toSeconds duration}}s</span>
20364
20883
  {{/compare}}
20365
20884
 
20366
20885
  <span class="transport">{{snapshot.transport}}</span>
20367
20886
  <span class="method">{{snapshot.incoming.method}}</span>
20368
- <span class="path">{{snapshot.incoming.path}}</span>
20887
+ <span class="path">{{truncate snapshot.incoming.path 45}}</span>
20888
+
20889
+ {{#if snapshot.seed}}<span class="seed">{{snapshot.seed}}</span>{{/if}}
20369
20890
  </div>
20370
20891
 
20371
20892
  <span class="arrow"><i class="fas fa-chevron-right"></i></span>
20372
20893
 
20373
20894
  {{#if expectation}}
20374
- {{#if snapshot.seed}}<span class="seed">{{snapshot.seed}}</span>{{/if}}
20375
- <div class="segment">{{>expectationMeta expectation format='short' isCached=snapshot.forwarded.isCached}}</div>
20895
+ {{>expectationMeta expectation format='short' isCached=snapshot.forwarded.isCached}}
20376
20896
  {{else}}
20377
- <span class="handled-with red">Nowhere</span>
20897
+ <div class="segment"><span class="handled-with red">Nowhere</span></div>
20378
20898
  {{/if}}
20379
20899
  </div>
20380
20900
 
@@ -20397,12 +20917,10 @@ module.exports = `
20397
20917
  {{/each}}
20398
20918
  </div>
20399
20919
  {{/if}} --}}
20400
-
20401
- <pre class="panel hidden"></pre>
20402
20920
  </div>
20403
20921
  `
20404
20922
 
20405
- },{}],241:[function(require,module,exports){
20923
+ },{}],257:[function(require,module,exports){
20406
20924
  "use strict";
20407
20925
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20408
20926
  if (k2 === undefined) k2 = k;
@@ -20426,13 +20944,14 @@ __exportStar(require("./curtain.component"), exports);
20426
20944
  __exportStar(require("./loader.component"), exports);
20427
20945
  __exportStar(require("./popups.component"), exports);
20428
20946
  __exportStar(require("./search.component"), exports);
20947
+ __exportStar(require("./header.component"), exports);
20429
20948
  __exportStar(require("./empty.component"), exports);
20430
20949
 
20431
- },{"./curtain.component":234,"./empty.component":235,"./expectation.component":237,"./history.component":239,"./loader.component":242,"./popups.component":243,"./search.component":245,"./settings.component":247}],242:[function(require,module,exports){
20950
+ },{"./curtain.component":248,"./empty.component":249,"./expectation.component":251,"./header.component":253,"./history.component":255,"./loader.component":258,"./popups.component":259,"./search.component":261,"./settings.component":263}],258:[function(require,module,exports){
20432
20951
  "use strict";
20433
20952
  Object.defineProperty(exports, "__esModule", { value: true });
20434
20953
  exports.LoaderComponent = void 0;
20435
- const curtain_component_1 = require("./curtain.component");
20954
+ const curtain_component_1 = require("../curtain.component");
20436
20955
  class LoaderComponent extends curtain_component_1.CurtainComponent {
20437
20956
  constructor() {
20438
20957
  super({ isPreventedToManualClose: true });
@@ -20444,7 +20963,7 @@ class LoaderComponent extends curtain_component_1.CurtainComponent {
20444
20963
  }
20445
20964
  exports.LoaderComponent = LoaderComponent;
20446
20965
 
20447
- },{"./curtain.component":234}],243:[function(require,module,exports){
20966
+ },{"../curtain.component":248}],259:[function(require,module,exports){
20448
20967
  "use strict";
20449
20968
  var __importDefault = (this && this.__importDefault) || function (mod) {
20450
20969
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20461,9 +20980,9 @@ class PopupsComponent extends models_1.Component {
20461
20980
  this.element.classList.add('popups');
20462
20981
  }
20463
20982
  push(message, options = {}) {
20464
- const popup = this.compileHtmlStringToElement(render({ message, ...options }));
20983
+ const popup = this.compileHtmlStringToElement(render({ message, level: options.level ?? 'info' }));
20465
20984
  this.element.prepend(popup);
20466
- setTimeout(() => popup.remove(), 1000);
20985
+ setTimeout(() => popup.remove(), 3000);
20467
20986
  }
20468
20987
  static build() {
20469
20988
  return new PopupsComponent();
@@ -20471,15 +20990,18 @@ class PopupsComponent extends models_1.Component {
20471
20990
  }
20472
20991
  exports.PopupsComponent = PopupsComponent;
20473
20992
 
20474
- },{"../../models":264,"./template.hbs":244,"handlebars":60}],244:[function(require,module,exports){
20993
+ },{"../../models":278,"./template.hbs":260,"handlebars":60}],260:[function(require,module,exports){
20475
20994
  module.exports = `
20476
20995
  <div class="popup-message {{level}}">
20477
- <i class="{{icon}}"></i>
20996
+ {{#compare level 'eq' 'info'}}<i class="fas fa-check"></i>{{/compare}}
20997
+ {{#compare level 'eq' 'warning'}}<i class="fas fa-exclamation-triangle"></i>{{/compare}}
20998
+ {{#compare level 'eq' 'error'}}<i class="fas fa-times"></i>{{/compare}}
20999
+
20478
21000
  <span>{{message}}</span>
20479
21001
  </div>
20480
21002
  `
20481
21003
 
20482
- },{}],245:[function(require,module,exports){
21004
+ },{}],261:[function(require,module,exports){
20483
21005
  "use strict";
20484
21006
  var __importDefault = (this && this.__importDefault) || function (mod) {
20485
21007
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20528,7 +21050,7 @@ class SearchComponent extends models_1.Component {
20528
21050
  }
20529
21051
  exports.SearchComponent = SearchComponent;
20530
21052
 
20531
- },{"../../models":264,"./template.hbs":246,"events":27,"handlebars":60,"lodash/debounce":192}],246:[function(require,module,exports){
21053
+ },{"../../models":278,"./template.hbs":262,"events":27,"handlebars":60,"lodash/debounce":202}],262:[function(require,module,exports){
20532
21054
  module.exports = `
20533
21055
  <div class="search">
20534
21056
  <i class="fas fa-search"></i>
@@ -20537,7 +21059,7 @@ module.exports = `
20537
21059
  </div>
20538
21060
  `
20539
21061
 
20540
- },{}],247:[function(require,module,exports){
21062
+ },{}],263:[function(require,module,exports){
20541
21063
  "use strict";
20542
21064
  var __importDefault = (this && this.__importDefault) || function (mod) {
20543
21065
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20601,7 +21123,7 @@ class SettingsComponent extends models_1.Component {
20601
21123
  }
20602
21124
  exports.SettingsComponent = SettingsComponent;
20603
21125
 
20604
- },{"../../../../utils/common":266,"../../context":253,"../../models":264,"./template.hbs":248,"handlebars":60}],248:[function(require,module,exports){
21126
+ },{"../../../../utils/common":290,"../../context":267,"../../models":278,"./template.hbs":264,"handlebars":60}],264:[function(require,module,exports){
20605
21127
  module.exports = `
20606
21128
  <div class="settings">
20607
21129
  <div id="groups-filter" class="container">
@@ -20619,201 +21141,45 @@ module.exports = `
20619
21141
  </div>
20620
21142
  `
20621
21143
 
20622
- },{}],249:[function(require,module,exports){
21144
+ },{}],265:[function(require,module,exports){
20623
21145
  "use strict";
20624
21146
  var __importDefault = (this && this.__importDefault) || function (mod) {
20625
21147
  return (mod && mod.__esModule) ? mod : { "default": mod };
20626
21148
  };
20627
21149
  Object.defineProperty(exports, "__esModule", { value: true });
20628
- const components_1 = require("../components");
20629
- const models_1 = require("../models");
20630
- const common_1 = require("../../../utils/common");
20631
- const context_1 = __importDefault(require("../context"));
20632
- const empty = components_1.EmptyComponent.build();
20633
- const storage = new Map();
20634
- const state = { search: (0, common_1.cast)(null) };
20635
- const search = components_1.SearchComponent
20636
- .build({ title: 'Search expectations' })
20637
- .on('clear', () => {
20638
- state.search = null;
20639
- refresh();
20640
- })
20641
- .on('input', (value) => {
20642
- state.search = value;
20643
- refresh();
20644
- });
20645
- const filter = (expectations) => {
20646
- let filtred = expectations;
20647
- if (context_1.default.shared.settings.filters.groups) {
20648
- filtred = filtred.filter((expectation) => context_1.default.shared.settings.filters.groups.has(expectation.data.group));
20649
- }
20650
- if (state.search) {
20651
- filtred = filtred.filter((expectation) => expectation.match(state.search));
21150
+ exports.ViewerComponent = void 0;
21151
+ const json_formatter_1 = __importDefault(require("../../../../../../../packages/json-formatter"));
21152
+ const handlebars_1 = __importDefault(require("handlebars"));
21153
+ const models_1 = require("../../models");
21154
+ const context_1 = __importDefault(require("../../context"));
21155
+ const template = require('./template.hbs');
21156
+ const render = handlebars_1.default.compile(template);
21157
+ class ViewerComponent extends models_1.Component {
21158
+ constructor(options) {
21159
+ super(render({}));
21160
+ this.options = options;
21161
+ this.instance = new json_formatter_1.default({}, this.options?.depth ?? 3, {
21162
+ theme: 'custom',
21163
+ afterCopyHandler: () => context_1.default.shared.popups.push('Copied!'),
21164
+ });
21165
+ this.provide({});
20652
21166
  }
20653
- return filtred;
20654
- };
20655
- const refresh = (expectations = [...storage.values()]) => {
20656
- const hidden = expectations.map((expectation) => expectation.hide());
20657
- const shown = filter(hidden).map((expectation) => expectation.show());
20658
- shown.length ? empty.hide() : empty.show();
20659
- };
20660
- exports.default = models_1.Container
20661
- .build(document.querySelector('section#expectations'))
20662
- .on('select', () => refresh())
20663
- .on('initialize', async (container) => {
20664
- context_1.default.shared.groups.clear();
20665
- container.content.clear();
20666
- storage.clear();
20667
- const { data } = await context_1.default.services.io.exec('expectations:get-list');
20668
- data.forEach((expectation) => {
20669
- const component = components_1.ExpectationComponent.build(expectation);
20670
- storage.set(expectation.id, component);
20671
- context_1.default.shared.groups.add(expectation.group);
20672
- container.content.append(component);
20673
- });
20674
- refresh();
20675
- })
20676
- .once('initialize', (container) => {
20677
- container.prepend(empty);
20678
- container.prepend(search);
20679
- context_1.default.services.io.subscribe('expectation:added', (data) => {
20680
- const expectation = components_1.ExpectationComponent.build(data);
20681
- storage.set(data.id, expectation);
20682
- context_1.default.shared.groups.add(data.group);
20683
- container.content.append(expectation);
20684
- refresh([expectation]);
20685
- });
20686
- context_1.default.services.io.subscribe('expectation:updated', (data) => {
20687
- const expectation = storage.get(data.id) ?? components_1.ExpectationComponent.build(data);
20688
- if (storage.has(data.id)) {
20689
- expectation.refresh(data);
20690
- }
20691
- if (!container.content.element.querySelector(`div.expectation[id="${data.id}"]`)) {
20692
- container.content.append(expectation);
20693
- refresh([expectation]);
20694
- }
20695
- storage.set(data.id, expectation);
20696
- context_1.default.shared.groups.add(data.group);
20697
- });
20698
- });
20699
-
20700
- },{"../../../utils/common":266,"../components":241,"../context":253,"../models":264}],250:[function(require,module,exports){
20701
- "use strict";
20702
- var __importDefault = (this && this.__importDefault) || function (mod) {
20703
- return (mod && mod.__esModule) ? mod : { "default": mod };
20704
- };
20705
- Object.defineProperty(exports, "__esModule", { value: true });
20706
- const components_1 = require("../components");
20707
- const models_1 = require("../models");
20708
- const common_1 = require("../../../utils/common");
20709
- const context_1 = __importDefault(require("../context"));
20710
- const empty = components_1.EmptyComponent.build();
20711
- const storage = new Map();
20712
- const stack = [];
20713
- const state = { search: (0, common_1.cast)(null) };
20714
- const search = components_1.SearchComponent
20715
- .build({ title: 'Search history' })
20716
- .on('clear', () => {
20717
- state.search = null;
20718
- refresh();
20719
- })
20720
- .on('input', (value) => {
20721
- state.search = value;
20722
- refresh();
20723
- });
20724
- const filter = (history) => {
20725
- let filtred = history;
20726
- if (context_1.default.shared.settings.filters.groups) {
20727
- filtred = filtred.filter((history) => context_1.default.shared.settings.filters.groups.has(history.data.group));
21167
+ provide(payload) {
21168
+ this.instance.json = payload;
21169
+ return this.clear().append(this.instance.render());
20728
21170
  }
20729
- if (state.search) {
20730
- filtred = filtred.filter((history) => history.match(state.search));
21171
+ static build(options) {
21172
+ return new ViewerComponent(options);
20731
21173
  }
20732
- return filtred;
20733
- };
20734
- const refresh = (history = [...storage.values()]) => {
20735
- const hidden = history.map((history) => history.hide());
20736
- const shown = filter(hidden).map((history) => history.show());
20737
- shown.length ? empty.hide() : empty.show();
20738
- };
20739
- exports.default = models_1.Container
20740
- .build(document.querySelector('section#history'))
20741
- .on('select', () => refresh())
20742
- .on('initialize', async (container) => {
20743
- container.content.clear();
20744
- storage.clear();
20745
- stack.splice(0, stack.length);
20746
- const { data } = await context_1.default.services.io.exec('history:get-list');
20747
- data.forEach((history) => {
20748
- const component = components_1.HistoryComponent.build(history);
20749
- storage.set(history.id, component);
20750
- stack.push(history.id);
20751
- container.content.append(component);
20752
- });
20753
- refresh();
20754
- })
20755
- .once('initialize', (container) => {
20756
- container.prepend(empty);
20757
- container.prepend(search);
20758
- context_1.default.services.io.subscribe('history:added', (data) => {
20759
- const history = components_1.HistoryComponent.build(data);
20760
- storage.set(data.id, history);
20761
- stack.push(data.id);
20762
- if (stack.length > context_1.default.config.history.limit * context_1.default.shared.groups.size) {
20763
- const id = stack.shift();
20764
- storage.get(id)?.delete();
20765
- storage.delete(id);
20766
- }
20767
- container.content.prepend(history);
20768
- refresh([history]);
20769
- });
20770
- context_1.default.services.io.subscribe('history:updated', (data) => {
20771
- const history = storage.get(data.id) ?? components_1.HistoryComponent.build(data);
20772
- storage.has(data.id) ? history.refresh(data) : stack.push(data.id);
20773
- storage.set(data.id, history);
20774
- if (!container.element.querySelector(`div.history[id="${data.id}"]`)) {
20775
- container.content.prepend(history);
20776
- refresh([history]);
20777
- }
20778
- });
20779
- });
21174
+ }
21175
+ exports.ViewerComponent = ViewerComponent;
20780
21176
 
20781
- },{"../../../utils/common":266,"../components":241,"../context":253,"../models":264}],251:[function(require,module,exports){
20782
- "use strict";
20783
- var __importDefault = (this && this.__importDefault) || function (mod) {
20784
- return (mod && mod.__esModule) ? mod : { "default": mod };
20785
- };
20786
- Object.defineProperty(exports, "__esModule", { value: true });
20787
- exports.history = exports.settings = exports.expectations = void 0;
20788
- var expectations_1 = require("./expectations");
20789
- Object.defineProperty(exports, "expectations", { enumerable: true, get: function () { return __importDefault(expectations_1).default; } });
20790
- var settings_1 = require("./settings");
20791
- Object.defineProperty(exports, "settings", { enumerable: true, get: function () { return __importDefault(settings_1).default; } });
20792
- var history_1 = require("./history");
20793
- Object.defineProperty(exports, "history", { enumerable: true, get: function () { return __importDefault(history_1).default; } });
20794
-
20795
- },{"./expectations":249,"./history":250,"./settings":252}],252:[function(require,module,exports){
20796
- "use strict";
20797
- var __importDefault = (this && this.__importDefault) || function (mod) {
20798
- return (mod && mod.__esModule) ? mod : { "default": mod };
20799
- };
20800
- Object.defineProperty(exports, "__esModule", { value: true });
20801
- const models_1 = require("../models");
20802
- const context_1 = __importDefault(require("../context"));
20803
- exports.default = models_1.Container
20804
- .build(document.querySelector('section#settings'))
20805
- .on('select', async () => {
20806
- context_1.default.shared.settings.refresh();
20807
- })
20808
- .on('initialize', () => {
20809
- context_1.default.shared.settings.resetFilters();
20810
- context_1.default.shared.settings.refresh();
20811
- })
20812
- .once('initialize', (container) => {
20813
- container.append(context_1.default.shared.settings);
20814
- });
21177
+ },{"../../../../../../../packages/json-formatter":1,"../../context":267,"../../models":278,"./template.hbs":266,"handlebars":60}],266:[function(require,module,exports){
21178
+ module.exports = `
21179
+ <div class="viewer container"></div>
21180
+ `
20815
21181
 
20816
- },{"../context":253,"../models":264}],253:[function(require,module,exports){
21182
+ },{}],267:[function(require,module,exports){
20817
21183
  "use strict";
20818
21184
  Object.defineProperty(exports, "__esModule", { value: true });
20819
21185
  const socket_io_client_1 = require("socket.io-client");
@@ -20853,10 +21219,14 @@ class Context {
20853
21219
  }
20854
21220
  exports.default = new Context();
20855
21221
 
20856
- },{"../../utils/common":266,"./models":264,"socket.io-client":226}],254:[function(require,module,exports){
21222
+ },{"../../utils/common":290,"./models":278,"socket.io-client":240}],268:[function(require,module,exports){
20857
21223
  "use strict";
21224
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21225
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21226
+ };
20858
21227
  Object.defineProperty(exports, "__esModule", { value: true });
20859
- exports.toLocaleTime = exports.compare = void 0;
21228
+ exports.toLocaleTime = exports.toSeconds = exports.truncate = exports.compare = void 0;
21229
+ const truncate_1 = __importDefault(require("lodash/truncate"));
20860
21230
  const utils_1 = require("./utils");
20861
21231
  exports.compare = (0, utils_1.buildHandlebarsHelper)((context) => (arg1, operator, arg2, { fn, inverse }) => {
20862
21232
  const check = () => {
@@ -20873,9 +21243,11 @@ exports.compare = (0, utils_1.buildHandlebarsHelper)((context) => (arg1, operato
20873
21243
  const result = check();
20874
21244
  return result ? fn ? fn(context) : inverse ? inverse(context) : result : null;
20875
21245
  });
21246
+ exports.truncate = (0, utils_1.buildHandlebarsHelper)(() => (text, length) => (0, truncate_1.default)(text, { length }));
21247
+ exports.toSeconds = (0, utils_1.buildHandlebarsHelper)(() => (ms) => (ms / 1000).toFixed(3));
20876
21248
  exports.toLocaleTime = (0, utils_1.buildHandlebarsHelper)(() => (timestamp) => new Date(timestamp).toLocaleTimeString());
20877
21249
 
20878
- },{"./utils":258}],255:[function(require,module,exports){
21250
+ },{"./utils":272,"lodash/truncate":235}],269:[function(require,module,exports){
20879
21251
  "use strict";
20880
21252
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20881
21253
  if (k2 === undefined) k2 = k;
@@ -20924,59 +21296,66 @@ exports.default = {
20924
21296
  },
20925
21297
  };
20926
21298
 
20927
- },{"./helpers":254,"./partials":257,"handlebars":60}],256:[function(require,module,exports){
21299
+ },{"./helpers":268,"./partials":271,"handlebars":60}],270:[function(require,module,exports){
20928
21300
  module.exports = `
20929
- {{#compare format 'neq' 'short'}}
20930
- <button class="activity">
20931
- {{#if isEnabled}}
20932
- <i class="fas fa-plug"></i>
20933
- {{else}}
20934
- <i class="fas fa-power-off"></i>
20935
- {{/if}}
20936
- </button>
21301
+ <div class="segment">
21302
+ {{#compare format 'neq' 'short'}}
21303
+ <button class="activity">
21304
+ {{#if isEnabled}}
21305
+ <i class="fas fa-plug"></i>
21306
+ {{else}}
21307
+ <i class="fas fa-power-off"></i>
21308
+ {{/if}}
21309
+ </button>
20937
21310
 
20938
- <span class="calls-count {{#compare meta.executionsCount 'gt' 0}}active{{/compare}}">
20939
- <i class="fas fa-undo-alt"></i>{{meta.executionsCount}}
20940
- </span>
20941
- {{/compare}}
21311
+ <span class="calls-count {{#compare meta.executionsCount 'gt' 0}}active{{/compare}}">
21312
+ <i class="fas fa-undo-alt"></i>{{meta.executionsCount}}
21313
+ </span>
21314
+ {{/compare}}
20942
21315
 
20943
- <span class="name"><b>{{group}}</b> {{name}}</span>
21316
+ <span class="name"><b>{{group}}</b> {{name}}</span>
21317
+ </div>
20944
21318
 
20945
21319
  {{#compare format 'neq' 'short'}}
20946
21320
  {{#compare meta.tags.length 'gt' 0}}<span class="arrow"><i class="fas fa-chevron-right"></i></span>{{/compare}}
20947
- {{#each transports}}<span class="transport">{{this}}</span>{{/each}}
20948
21321
 
20949
- {{#each meta.tags}}
20950
- {{#compare @index 'lte' 5}}
20951
- {{#if (compare location 'eq' 'outgoing.status')}}
20952
- <span class="status
20953
- {{#compare value 'lt' 400}}green{{/compare}}
20954
- {{#compare value 'gte' 400}}red{{/compare}}
20955
- ">{{value}}</span>
20956
- {{else}}
20957
- <span class="{{location}}">{{value}}</span>
20958
- {{/if}}
20959
- {{/compare}}
20960
- {{/each}}
21322
+ <div class="segment">
21323
+ {{#each transports}}<span class="transport">{{this}}</span>{{/each}}
21324
+
21325
+ {{#each meta.tags}}
21326
+ {{#compare @index 'lte' 5}}
21327
+ {{#if (compare location 'eq' 'outgoing.status')}}
21328
+ <span class="status
21329
+ {{#compare value 'lt' 400}}green{{/compare}}
21330
+ {{#compare value 'gte' 400}}red{{/compare}}
21331
+ "><b>{{value}}</b></span>
21332
+ {{else}}
21333
+ <span class="{{location}}">{{truncate value 45}}</span>
21334
+ {{/if}}
21335
+ {{/compare}}
21336
+ {{/each}}
21337
+ </div>
20961
21338
  {{/compare}}
20962
21339
 
20963
21340
  {{#with schema.forward}}
20964
21341
  <span class="arrow"><i class="fas fa-chevron-right"></i></span>
20965
21342
 
20966
- {{#if baseUrl}}<span class="forward">{{baseUrl}}</span>{{/if}}
20967
- {{#if url}}<span class="forward">{{url}}</span>{{/if}}
21343
+ <div class="segment">
21344
+ {{#if baseUrl}}<span class="forward">{{truncate baseUrl 45}}</span>{{/if}}
21345
+ {{#if url}}<span class="forward">{{truncate url 45}}</span>{{/if}}
20968
21346
 
20969
- {{#if ../isCached}}<span class="cache"><i class="fas fa-database"></i></span>{{/if}}
21347
+ {{#if ../isCached}}<span class="cache"><i class="fas fa-database"></i></span>{{/if}}
21348
+ </div>
20970
21349
  {{/with}}
20971
21350
  `
20972
21351
 
20973
- },{}],257:[function(require,module,exports){
21352
+ },{}],271:[function(require,module,exports){
20974
21353
  "use strict";
20975
21354
  Object.defineProperty(exports, "__esModule", { value: true });
20976
21355
  exports.expectationMeta = void 0;
20977
21356
  exports.expectationMeta = require('./expectation-meta.hbs');
20978
21357
 
20979
- },{"./expectation-meta.hbs":256}],258:[function(require,module,exports){
21358
+ },{"./expectation-meta.hbs":270}],272:[function(require,module,exports){
20980
21359
  "use strict";
20981
21360
  Object.defineProperty(exports, "__esModule", { value: true });
20982
21361
  exports.buildHandlebarsHelper = void 0;
@@ -20987,7 +21366,7 @@ const buildHandlebarsHelper = (handler) => {
20987
21366
  };
20988
21367
  exports.buildHandlebarsHelper = buildHandlebarsHelper;
20989
21368
 
20990
- },{}],259:[function(require,module,exports){
21369
+ },{}],273:[function(require,module,exports){
20991
21370
  "use strict";
20992
21371
  Object.defineProperty(exports, "__esModule", { value: true });
20993
21372
  exports.Button = void 0;
@@ -20997,7 +21376,7 @@ class Button {
20997
21376
  this.handlers = [];
20998
21377
  element.addEventListener('click', (event) => this.trigger(event));
20999
21378
  }
21000
- use(handler) {
21379
+ handle(handler) {
21001
21380
  this.handlers.push(async (event) => {
21002
21381
  this.element.classList.add('processed');
21003
21382
  try {
@@ -21020,20 +21399,48 @@ class Button {
21020
21399
  }
21021
21400
  exports.Button = Button;
21022
21401
 
21023
- },{}],260:[function(require,module,exports){
21402
+ },{}],274:[function(require,module,exports){
21403
+ "use strict";
21404
+ Object.defineProperty(exports, "__esModule", { value: true });
21405
+ exports.ClientStorage = void 0;
21406
+ class ClientStorage {
21407
+ constructor(key) {
21408
+ this.key = key;
21409
+ }
21410
+ extract() {
21411
+ return JSON.parse(localStorage.getItem(this.key) ?? 'null');
21412
+ }
21413
+ store(value) {
21414
+ localStorage.setItem(this.key, JSON.stringify(value));
21415
+ return this;
21416
+ }
21417
+ clear() {
21418
+ localStorage.removeItem(this.key);
21419
+ return this;
21420
+ }
21421
+ static build(key) {
21422
+ return new ClientStorage(key);
21423
+ }
21424
+ }
21425
+ exports.ClientStorage = ClientStorage;
21426
+
21427
+ },{}],275:[function(require,module,exports){
21024
21428
  "use strict";
21025
21429
  Object.defineProperty(exports, "__esModule", { value: true });
21026
21430
  exports.Component = void 0;
21027
21431
  class Component {
21028
- constructor(element) {
21432
+ constructor(predicate) {
21029
21433
  this.element = document.createElement('div');
21030
- if (element) {
21031
- this.element = typeof element === 'string' ? this.compileHtmlStringToElement(element) : element;
21434
+ if (predicate) {
21435
+ this.element = typeof predicate === 'string' ? this.compileHtmlStringToElement(predicate) : predicate;
21032
21436
  }
21033
21437
  }
21034
21438
  get isHidden() {
21035
21439
  return this.element.classList.contains('hidden');
21036
21440
  }
21441
+ get id() {
21442
+ return this.element.id;
21443
+ }
21037
21444
  assignId(id) {
21038
21445
  this.element.id = id;
21039
21446
  return this;
@@ -21046,22 +21453,34 @@ class Component {
21046
21453
  this.element.classList.add('hidden');
21047
21454
  return this;
21048
21455
  }
21049
- append(element) {
21050
- if (element instanceof Component) {
21051
- this.element.append(element.element);
21052
- return this;
21053
- }
21054
- this.element.append(typeof element === 'string' ? this.compileHtmlStringToElement(element) : element);
21456
+ append(predicate) {
21457
+ this.element.append(predicate instanceof Component
21458
+ ? predicate.element
21459
+ : typeof predicate === 'string'
21460
+ ? this.compileHtmlStringToElement(predicate)
21461
+ : predicate);
21055
21462
  return this;
21056
21463
  }
21057
- prepend(element) {
21058
- if (element instanceof Component) {
21059
- this.element.prepend(element.element);
21060
- return this;
21061
- }
21062
- this.element.prepend(typeof element === 'string' ? this.compileHtmlStringToElement(element) : element);
21464
+ prepend(predicate) {
21465
+ this.element.prepend(predicate instanceof Component
21466
+ ? predicate.element
21467
+ : typeof predicate === 'string'
21468
+ ? this.compileHtmlStringToElement(predicate)
21469
+ : predicate);
21063
21470
  return this;
21064
21471
  }
21472
+ replace(predicate) {
21473
+ const element = predicate instanceof Component
21474
+ ? predicate.element
21475
+ : typeof predicate === 'string'
21476
+ ? this.compileHtmlStringToElement(predicate)
21477
+ : predicate;
21478
+ this.element.after(element);
21479
+ if (this.isHidden) {
21480
+ element.classList.add('hidden');
21481
+ }
21482
+ return Object.assign(this.delete(), { element });
21483
+ }
21065
21484
  clear() {
21066
21485
  this.element.innerHTML = '';
21067
21486
  return this;
@@ -21076,53 +21495,7 @@ class Component {
21076
21495
  }
21077
21496
  exports.Component = Component;
21078
21497
 
21079
- },{}],261:[function(require,module,exports){
21080
- "use strict";
21081
- var __importDefault = (this && this.__importDefault) || function (mod) {
21082
- return (mod && mod.__esModule) ? mod : { "default": mod };
21083
- };
21084
- Object.defineProperty(exports, "__esModule", { value: true });
21085
- exports.Container = void 0;
21086
- const events_1 = __importDefault(require("events"));
21087
- const dynamic_storage_1 = require("./dynamic-storage");
21088
- const component_1 = require("./component");
21089
- class Container extends component_1.Component {
21090
- constructor(element) {
21091
- super();
21092
- this.element = element;
21093
- this.storage = dynamic_storage_1.DynamicStorage.build(`config:${this.element.id}`, this.element.querySelector('div.config'));
21094
- this.content = new component_1.Component(this.element.querySelector('div.content'));
21095
- this.events = new events_1.default();
21096
- }
21097
- initialize() {
21098
- this.storage.sync();
21099
- return this.emit('initialize', this);
21100
- }
21101
- refresh() {
21102
- return this.emit('refresh', this);
21103
- }
21104
- select() {
21105
- return this.emit('select', this);
21106
- }
21107
- on(event, handler) {
21108
- this.events.on(event, handler);
21109
- return this;
21110
- }
21111
- once(event, handler) {
21112
- this.events.once(event, handler);
21113
- return this;
21114
- }
21115
- emit(event, ...args) {
21116
- this.events.emit(event, ...args);
21117
- return this;
21118
- }
21119
- static build(element) {
21120
- return new Container(element);
21121
- }
21122
- }
21123
- exports.Container = Container;
21124
-
21125
- },{"./component":260,"./dynamic-storage":262,"events":27}],262:[function(require,module,exports){
21498
+ },{}],276:[function(require,module,exports){
21126
21499
  "use strict";
21127
21500
  var __importDefault = (this && this.__importDefault) || function (mod) {
21128
21501
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -21131,24 +21504,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
21131
21504
  exports.DynamicStorage = void 0;
21132
21505
  const set_1 = __importDefault(require("lodash/set"));
21133
21506
  const utils_1 = require("../utils");
21507
+ const client_storage_1 = require("./client-storage");
21134
21508
  const form_1 = require("./form");
21135
21509
  class DynamicStorage {
21136
21510
  constructor(key, element) {
21137
21511
  this.key = key;
21138
21512
  this.element = element;
21139
21513
  this.form = form_1.Form.build(this.element);
21514
+ this.client = client_storage_1.ClientStorage.build(this.key);
21140
21515
  }
21141
21516
  sync() {
21142
- const stored = JSON.parse(localStorage.getItem(this.key) ?? '[]');
21517
+ const stored = this.client.extract() ?? [];
21143
21518
  this.form.assign(stored.reduce((acc, [path, value]) => (0, set_1.default)(acc, path, value), {}));
21144
21519
  return this;
21145
21520
  }
21146
21521
  save() {
21147
- localStorage.setItem(this.key, JSON.stringify((0, utils_1.convertObjectToKeyValueCouples)(this.form.values)));
21522
+ this.client.store((0, utils_1.convertObjectToKeyValueCouples)(this.form.extract(), this.form.paths));
21148
21523
  return this;
21149
21524
  }
21150
21525
  clear() {
21151
- localStorage.removeItem(this.key);
21526
+ this.client.clear();
21152
21527
  return this;
21153
21528
  }
21154
21529
  static build(key, element) {
@@ -21157,7 +21532,7 @@ class DynamicStorage {
21157
21532
  }
21158
21533
  exports.DynamicStorage = DynamicStorage;
21159
21534
 
21160
- },{"../utils":265,"./form":263,"lodash/set":217}],263:[function(require,module,exports){
21535
+ },{"../utils":289,"./client-storage":274,"./form":277,"lodash/set":228}],277:[function(require,module,exports){
21161
21536
  "use strict";
21162
21537
  var __importDefault = (this && this.__importDefault) || function (mod) {
21163
21538
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -21170,8 +21545,8 @@ const component_1 = require("./component");
21170
21545
  const castInputValue = (() => {
21171
21546
  const map = {
21172
21547
  password: String,
21173
- text: String,
21174
21548
  number: Number,
21549
+ text: String,
21175
21550
  };
21176
21551
  return (type, value) => {
21177
21552
  if (type === 'checkbox') {
@@ -21182,16 +21557,22 @@ const castInputValue = (() => {
21182
21557
  };
21183
21558
  })();
21184
21559
  class Form extends component_1.Component {
21185
- get values() {
21560
+ get paths() {
21561
+ return [...this.element.querySelectorAll('*[data-key]')]
21562
+ .map((input) => input.getAttribute('data-key'))
21563
+ .filter(Boolean);
21564
+ }
21565
+ extract() {
21186
21566
  return [...this.element.querySelectorAll('*[data-key]')].reduce((acc, input) => {
21187
21567
  const key = input.getAttribute('data-key');
21188
- const type = input.getAttribute('type') ?? 'text';
21568
+ const type = (input.getAttribute('cast') ?? input.getAttribute('type') ?? 'text');
21189
21569
  if (!key || 'value' in input === false || typeof input.value !== 'string') {
21190
21570
  return acc;
21191
21571
  }
21192
- if (input.getAttribute('format') === 'array') {
21572
+ if (input.hasAttribute('list')) {
21573
+ const delimiter = input.getAttribute('list') ?? ',';
21193
21574
  const value = input.value
21194
- .split(',')
21575
+ .split(delimiter)
21195
21576
  .map((nested) => castInputValue(type, nested))
21196
21577
  .filter((nested) => nested !== null);
21197
21578
  return value.length ? (0, set_1.default)(acc, key, value) : acc;
@@ -21204,7 +21585,9 @@ class Form extends component_1.Component {
21204
21585
  }, {});
21205
21586
  }
21206
21587
  assign(payload) {
21207
- (0, utils_1.convertObjectToKeyValueCouples)(payload).forEach(([path, value]) => (0, set_1.default)(this.element.querySelector(`*[data-key="${path}"]`), 'value', Array.isArray(value) ? value.join(', ') : value));
21588
+ (0, utils_1.convertObjectToKeyValueCouples)(payload, this.paths)
21589
+ .map(([path, value]) => [path, value, this.element.querySelector(`*[data-key="${path}"]`)])
21590
+ .forEach(([path, value, input]) => (0, set_1.default)(input, 'value', Array.isArray(value) ? value.join(input.getAttribute('list') ?? ',') : (value ?? '')));
21208
21591
  return this;
21209
21592
  }
21210
21593
  static build(element) {
@@ -21213,7 +21596,7 @@ class Form extends component_1.Component {
21213
21596
  }
21214
21597
  exports.Form = Form;
21215
21598
 
21216
- },{"../utils":265,"./component":260,"lodash/set":217}],264:[function(require,module,exports){
21599
+ },{"../utils":289,"./component":275,"lodash/set":228}],278:[function(require,module,exports){
21217
21600
  "use strict";
21218
21601
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21219
21602
  if (k2 === undefined) k2 = k;
@@ -21232,11 +21615,320 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21232
21615
  Object.defineProperty(exports, "__esModule", { value: true });
21233
21616
  __exportStar(require("./dynamic-storage"), exports);
21234
21617
  __exportStar(require("./component"), exports);
21235
- __exportStar(require("./container"), exports);
21618
+ __exportStar(require("./section"), exports);
21236
21619
  __exportStar(require("./button"), exports);
21237
21620
  __exportStar(require("./form"), exports);
21238
21621
 
21239
- },{"./button":259,"./component":260,"./container":261,"./dynamic-storage":262,"./form":263}],265:[function(require,module,exports){
21622
+ },{"./button":273,"./component":275,"./dynamic-storage":276,"./form":277,"./section":279}],279:[function(require,module,exports){
21623
+ "use strict";
21624
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21625
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21626
+ };
21627
+ Object.defineProperty(exports, "__esModule", { value: true });
21628
+ exports.Section = void 0;
21629
+ const events_1 = __importDefault(require("events"));
21630
+ const dynamic_storage_1 = require("./dynamic-storage");
21631
+ const component_1 = require("./component");
21632
+ class Section extends component_1.Component {
21633
+ constructor(element) {
21634
+ super();
21635
+ this.element = element;
21636
+ this.storage = dynamic_storage_1.DynamicStorage.build(`config:${this.element.id}`, this.element.querySelector('div.storage'));
21637
+ this.content = new component_1.Component(this.element.querySelector('div.content'));
21638
+ this.events = new events_1.default();
21639
+ this.meta = {};
21640
+ }
21641
+ assignMeta(meta) {
21642
+ return Object.assign(this, { meta });
21643
+ }
21644
+ initialize() {
21645
+ this.storage.sync();
21646
+ return this.emit('initialize', this);
21647
+ }
21648
+ refresh() {
21649
+ return this.emit('refresh', this);
21650
+ }
21651
+ select() {
21652
+ return this.emit('select', this);
21653
+ }
21654
+ on(event, handler) {
21655
+ this.events.on(event, handler);
21656
+ return this;
21657
+ }
21658
+ once(event, handler) {
21659
+ this.events.once(event, handler);
21660
+ return this;
21661
+ }
21662
+ emit(event, ...args) {
21663
+ this.events.emit(event, ...args);
21664
+ return this;
21665
+ }
21666
+ static build(predicate) {
21667
+ return new Section(typeof predicate === 'string' ? new component_1.Component(predicate).element : predicate);
21668
+ }
21669
+ }
21670
+ exports.Section = Section;
21671
+
21672
+ },{"./component":275,"./dynamic-storage":276,"events":27}],280:[function(require,module,exports){
21673
+ "use strict";
21674
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21675
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21676
+ };
21677
+ Object.defineProperty(exports, "__esModule", { value: true });
21678
+ const handlebars_1 = __importDefault(require("handlebars"));
21679
+ const models_1 = require("../../models");
21680
+ const template = require('./template.hbs');
21681
+ const render = handlebars_1.default.compile(template);
21682
+ exports.default = models_1.Section
21683
+ .build(render({}))
21684
+ .assignMeta({ icon: 'fas fa-chart-line' });
21685
+
21686
+ },{"../../models":278,"./template.hbs":281,"handlebars":60}],281:[function(require,module,exports){
21687
+ module.exports = `
21688
+ <section id="analytics">
21689
+ <div class="storage"></div>
21690
+ <div class="content">
21691
+ <i class="fas fa-hammer"></i>
21692
+ <p>Soon</p>
21693
+ </div>
21694
+ </section>
21695
+ `
21696
+
21697
+ },{}],282:[function(require,module,exports){
21698
+ "use strict";
21699
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21700
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21701
+ };
21702
+ Object.defineProperty(exports, "__esModule", { value: true });
21703
+ const handlebars_1 = __importDefault(require("handlebars"));
21704
+ const components_1 = require("../../components");
21705
+ const models_1 = require("../../models");
21706
+ const common_1 = require("../../../../utils/common");
21707
+ const context_1 = __importDefault(require("../../context"));
21708
+ const template = require('./template.hbs');
21709
+ const render = handlebars_1.default.compile(template);
21710
+ const empty = components_1.EmptyComponent.build();
21711
+ const storage = new Map();
21712
+ const state = { search: (0, common_1.cast)(null) };
21713
+ const search = components_1.SearchComponent
21714
+ .build({ title: 'Search expectations' })
21715
+ .on('clear', () => {
21716
+ state.search = null;
21717
+ refresh();
21718
+ })
21719
+ .on('input', (value) => {
21720
+ state.search = value;
21721
+ refresh();
21722
+ });
21723
+ const filter = (list) => {
21724
+ let filtred = list;
21725
+ if (context_1.default.shared.settings.filters.groups) {
21726
+ filtred = filtred.filter((expectation) => context_1.default.shared.settings.filters.groups.has(expectation.data.group));
21727
+ }
21728
+ if (state.search) {
21729
+ filtred = filtred.filter((expectation) => expectation.match(state.search));
21730
+ }
21731
+ return filtred;
21732
+ };
21733
+ const refresh = (list = [...storage.values()]) => {
21734
+ const shown = filter(list.map((expectation) => expectation.hide())).map((expectation) => expectation.show());
21735
+ if (list.length === storage.size) {
21736
+ shown.length ? empty.hide() : empty.show();
21737
+ }
21738
+ };
21739
+ exports.default = models_1.Section
21740
+ .build(render({}))
21741
+ .assignMeta({ name: 'Expectations', icon: 'fas fa-magic' })
21742
+ .on('select', () => refresh())
21743
+ .on('initialize', async (section) => {
21744
+ context_1.default.shared.groups.clear();
21745
+ section.content.clear();
21746
+ storage.clear();
21747
+ const { data } = await context_1.default.services.io.exec('expectations:get-list');
21748
+ data.forEach((expectation) => {
21749
+ const component = components_1.ExpectationComponent.build(expectation);
21750
+ storage.set(expectation.id, component);
21751
+ context_1.default.shared.groups.add(expectation.group);
21752
+ section.content.append(component);
21753
+ });
21754
+ refresh();
21755
+ })
21756
+ .once('initialize', (section) => {
21757
+ section.prepend(empty);
21758
+ section.prepend(search);
21759
+ context_1.default.services.io.subscribe('expectation:added', (data) => {
21760
+ const expectation = components_1.ExpectationComponent.build(data);
21761
+ storage.set(data.id, expectation);
21762
+ context_1.default.shared.groups.add(data.group);
21763
+ section.content.append(expectation);
21764
+ refresh([expectation]);
21765
+ });
21766
+ context_1.default.services.io.subscribe('expectation:updated', (data) => {
21767
+ const expectation = storage.get(data.id) ?? components_1.ExpectationComponent.build(data);
21768
+ if (storage.has(data.id)) {
21769
+ expectation.provide(data).refresh();
21770
+ }
21771
+ if (!section.content.element.querySelector(`div.expectation[id="${data.id}"]`)) {
21772
+ section.content.append(expectation);
21773
+ refresh([expectation]);
21774
+ }
21775
+ storage.set(data.id, expectation);
21776
+ context_1.default.shared.groups.add(data.group);
21777
+ });
21778
+ });
21779
+
21780
+ },{"../../../../utils/common":290,"../../components":257,"../../context":267,"../../models":278,"./template.hbs":283,"handlebars":60}],283:[function(require,module,exports){
21781
+ module.exports = `
21782
+ <section id="expectations">
21783
+ <div class="storage"></div>
21784
+ <div class="content"></div>
21785
+ </section>
21786
+ `
21787
+
21788
+ },{}],284:[function(require,module,exports){
21789
+ "use strict";
21790
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21791
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21792
+ };
21793
+ Object.defineProperty(exports, "__esModule", { value: true });
21794
+ const handlebars_1 = __importDefault(require("handlebars"));
21795
+ const components_1 = require("../../components");
21796
+ const models_1 = require("../../models");
21797
+ const common_1 = require("../../../../utils/common");
21798
+ const context_1 = __importDefault(require("../../context"));
21799
+ const template = require('./template.hbs');
21800
+ const render = handlebars_1.default.compile(template);
21801
+ const empty = components_1.EmptyComponent.build();
21802
+ const storage = new Map();
21803
+ const stack = [];
21804
+ const state = { search: (0, common_1.cast)(null) };
21805
+ const search = components_1.SearchComponent
21806
+ .build({ title: 'Search history' })
21807
+ .on('clear', () => {
21808
+ state.search = null;
21809
+ refresh();
21810
+ })
21811
+ .on('input', (value) => {
21812
+ state.search = value;
21813
+ refresh();
21814
+ });
21815
+ const filter = (list) => {
21816
+ let filtred = list;
21817
+ if (context_1.default.shared.settings.filters.groups) {
21818
+ filtred = filtred.filter((history) => context_1.default.shared.settings.filters.groups.has(history.data.group));
21819
+ }
21820
+ if (state.search) {
21821
+ filtred = filtred.filter((history) => history.match(state.search));
21822
+ }
21823
+ return filtred;
21824
+ };
21825
+ const refresh = (list = [...storage.values()]) => {
21826
+ const shown = filter(list.map((history) => history.hide())).map((history) => history.show());
21827
+ if (list.length === storage.size) {
21828
+ shown.length ? empty.hide() : empty.show();
21829
+ }
21830
+ };
21831
+ exports.default = models_1.Section
21832
+ .build(render({}))
21833
+ .assignMeta({ name: 'History', icon: 'fas fa-history' })
21834
+ .on('select', () => refresh())
21835
+ .on('initialize', async (section) => {
21836
+ section.content.clear();
21837
+ storage.clear();
21838
+ stack.splice(0, stack.length);
21839
+ const { data } = await context_1.default.services.io.exec('history:get-list');
21840
+ data.forEach((history) => {
21841
+ const component = components_1.HistoryComponent.build(history);
21842
+ storage.set(history.id, component);
21843
+ stack.push(history.id);
21844
+ section.content.append(component);
21845
+ });
21846
+ refresh();
21847
+ })
21848
+ .once('initialize', (section) => {
21849
+ section.prepend(empty);
21850
+ section.prepend(search);
21851
+ context_1.default.services.io.subscribe('history:added', (data) => {
21852
+ const history = components_1.HistoryComponent.build(data);
21853
+ storage.set(data.id, history);
21854
+ stack.push(data.id);
21855
+ if (stack.length > context_1.default.config.history.limit * context_1.default.shared.groups.size) {
21856
+ const id = stack.shift();
21857
+ storage.get(id)?.delete();
21858
+ storage.delete(id);
21859
+ }
21860
+ section.content.prepend(history);
21861
+ refresh([history]);
21862
+ });
21863
+ context_1.default.services.io.subscribe('history:updated', (data) => {
21864
+ const history = storage.get(data.id) ?? components_1.HistoryComponent.build(data);
21865
+ storage.has(data.id) ? history.provide(data).refresh() : stack.push(data.id);
21866
+ storage.set(data.id, history);
21867
+ if (!section.element.querySelector(`div.history[id="${data.id}"]`)) {
21868
+ section.content.prepend(history);
21869
+ refresh([history]);
21870
+ }
21871
+ });
21872
+ });
21873
+
21874
+ },{"../../../../utils/common":290,"../../components":257,"../../context":267,"../../models":278,"./template.hbs":285,"handlebars":60}],285:[function(require,module,exports){
21875
+ module.exports = `
21876
+ <section id="history">
21877
+ <div class="storage"></div>
21878
+ <div class="content"></div>
21879
+ </section>
21880
+ `
21881
+
21882
+ },{}],286:[function(require,module,exports){
21883
+ "use strict";
21884
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21885
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21886
+ };
21887
+ Object.defineProperty(exports, "__esModule", { value: true });
21888
+ exports.history = exports.settings = exports.analytics = exports.expectations = void 0;
21889
+ var expectations_section_1 = require("./expectations.section");
21890
+ Object.defineProperty(exports, "expectations", { enumerable: true, get: function () { return __importDefault(expectations_section_1).default; } });
21891
+ var analytics_section_1 = require("./analytics.section");
21892
+ Object.defineProperty(exports, "analytics", { enumerable: true, get: function () { return __importDefault(analytics_section_1).default; } });
21893
+ var settings_section_1 = require("./settings.section");
21894
+ Object.defineProperty(exports, "settings", { enumerable: true, get: function () { return __importDefault(settings_section_1).default; } });
21895
+ var history_section_1 = require("./history.section");
21896
+ Object.defineProperty(exports, "history", { enumerable: true, get: function () { return __importDefault(history_section_1).default; } });
21897
+
21898
+ },{"./analytics.section":280,"./expectations.section":282,"./history.section":284,"./settings.section":287}],287:[function(require,module,exports){
21899
+ "use strict";
21900
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21901
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21902
+ };
21903
+ Object.defineProperty(exports, "__esModule", { value: true });
21904
+ const handlebars_1 = __importDefault(require("handlebars"));
21905
+ const models_1 = require("../../models");
21906
+ const context_1 = __importDefault(require("../../context"));
21907
+ const template = require('./template.hbs');
21908
+ const render = handlebars_1.default.compile(template);
21909
+ exports.default = models_1.Section
21910
+ .build(render({}))
21911
+ .assignMeta({ icon: 'fas fa-cog' })
21912
+ .on('select', async () => {
21913
+ context_1.default.shared.settings.refresh();
21914
+ })
21915
+ .on('initialize', () => {
21916
+ context_1.default.shared.settings.resetFilters();
21917
+ context_1.default.shared.settings.refresh();
21918
+ })
21919
+ .once('initialize', (section) => {
21920
+ section.append(context_1.default.shared.settings);
21921
+ });
21922
+
21923
+ },{"../../context":267,"../../models":278,"./template.hbs":288,"handlebars":60}],288:[function(require,module,exports){
21924
+ module.exports = `
21925
+ <section id="settings">
21926
+ <div class="storage"></div>
21927
+ <div class="content"></div>
21928
+ </section>
21929
+ `
21930
+
21931
+ },{}],289:[function(require,module,exports){
21240
21932
  "use strict";
21241
21933
  var __importDefault = (this && this.__importDefault) || function (mod) {
21242
21934
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -21244,18 +21936,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
21244
21936
  Object.defineProperty(exports, "__esModule", { value: true });
21245
21937
  exports.buildCounter = exports.convertObjectToKeyValueCouples = void 0;
21246
21938
  const isObject_1 = __importDefault(require("lodash/isObject"));
21247
- const convertObjectToKeyValueCouples = (object, prefix = '') => Object.entries(object).reduce((acc, [key, value]) => {
21248
- if ((0, isObject_1.default)(value)) {
21249
- return acc.concat(exports.convertObjectToKeyValueCouples(value, `${prefix}${key}.`));
21250
- }
21251
- acc.push([`${prefix}${key}`, value]);
21252
- return acc;
21939
+ const convertObjectToKeyValueCouples = (object, paths, prefix = '') => Object.entries(object).reduce((acc, [key, value]) => {
21940
+ const path = `${prefix}${prefix ? '.' : ''}${key}`;
21941
+ return (0, isObject_1.default)(value) && !paths.includes(path)
21942
+ ? acc.concat((0, exports.convertObjectToKeyValueCouples)(value, paths, path))
21943
+ : acc.concat([[path, value]]);
21253
21944
  }, []);
21254
21945
  exports.convertObjectToKeyValueCouples = convertObjectToKeyValueCouples;
21255
21946
  const buildCounter = (initial = 0, step = 1) => (value = step) => (initial += value);
21256
21947
  exports.buildCounter = buildCounter;
21257
21948
 
21258
- },{"lodash/isObject":204}],266:[function(require,module,exports){
21949
+ },{"lodash/isObject":214}],290:[function(require,module,exports){
21259
21950
  "use strict";
21260
21951
  Object.defineProperty(exports, "__esModule", { value: true });
21261
21952
  exports.buildCounter = exports.flattenArrayed = exports.cast = exports.wait = void 0;
@@ -21286,7 +21977,7 @@ exports.flattenArrayed = flattenArrayed;
21286
21977
  const buildCounter = (initial = 0, step = 1) => (value = step) => (initial += value);
21287
21978
  exports.buildCounter = buildCounter;
21288
21979
 
21289
- },{}],267:[function(require,module,exports){
21980
+ },{}],291:[function(require,module,exports){
21290
21981
  "use strict";
21291
21982
 
21292
21983
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
@@ -21294,7 +21985,7 @@ var _unset2 = _interopRequireDefault(require("lodash/unset"));
21294
21985
  var _omit2 = _interopRequireDefault(require("lodash/omit"));
21295
21986
  var _set2 = _interopRequireDefault(require("lodash/set"));
21296
21987
  var components = _interopRequireWildcard(require("./components"));
21297
- var containers = _interopRequireWildcard(require("./containers"));
21988
+ var sections = _interopRequireWildcard(require("./sections"));
21298
21989
  var _handlebars = _interopRequireDefault(require("./handlebars"));
21299
21990
  var _context2 = _interopRequireDefault(require("./context"));
21300
21991
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -21305,35 +21996,38 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
21305
21996
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
21306
21997
  _handlebars["default"].init();
21307
21998
  var loader = components.LoaderComponent.build().show();
21308
- var switchButtonIdToContainerElementMap = {
21309
- 'switch-to-expectations-container': containers.expectations,
21310
- 'switch-to-settings-container': containers.settings.hide(),
21311
- 'switch-to-history-container': containers.history.hide()
21312
- };
21313
- _context2["default"].switchStorage(containers.expectations.storage).share({
21314
- containers: containers,
21999
+ var header = components.HeaderComponent.build([{
22000
+ type: 'section',
22001
+ entity: sections.settings.hide()
22002
+ }, {
22003
+ type: 'section',
22004
+ entity: sections.analytics.hide()
22005
+ }, {
22006
+ type: 'separator'
22007
+ }, {
22008
+ type: 'section',
22009
+ entity: sections.expectations
22010
+ }, {
22011
+ type: 'section',
22012
+ entity: sections.history.hide()
22013
+ }]).on('select', function (section) {
22014
+ Object.values(header.sections).forEach(function (nested) {
22015
+ return nested.hide();
22016
+ });
22017
+ _context2["default"].switchStorage(section.storage);
22018
+ section.show().select();
22019
+ });
22020
+ _context2["default"].switchStorage(sections.expectations.storage).share({
22021
+ sections: sections,
21315
22022
  groups: new Set(),
21316
22023
  popups: components.PopupsComponent.build(),
21317
22024
  settings: components.SettingsComponent.build()
21318
22025
  });
21319
- document.body.append(_context2["default"].shared.popups.element);
22026
+ document.body.prepend(header.element);
21320
22027
  document.body.append(loader.element);
21321
- document.querySelector('div#container-select').addEventListener('click', function (source) {
21322
- var _event$target, _event$target$parentN;
21323
- var event = source;
21324
- if (((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.nodeName) !== 'BUTTON') {
21325
- return null;
21326
- }
21327
- (_event$target$parentN = event.target.parentNode) === null || _event$target$parentN === void 0 ? void 0 : _event$target$parentN.querySelectorAll('button.checked').forEach(function (element) {
21328
- return element.classList.remove('checked');
21329
- });
21330
- event.target.classList.add('checked');
21331
- Object.values(switchButtonIdToContainerElementMap).forEach(function (container) {
21332
- return container.hide();
21333
- });
21334
- var container = switchButtonIdToContainerElementMap[event.target.id];
21335
- _context2["default"].switchStorage(container.storage);
21336
- container.show().select();
22028
+ document.body.append(_context2["default"].shared.popups.element);
22029
+ Object.values(sections).forEach(function (section) {
22030
+ return document.body.append(section.element);
21337
22031
  });
21338
22032
  _context2["default"].instances.io.on('connect', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
21339
22033
  var _yield$context$servic, data;
@@ -21351,11 +22045,12 @@ _context2["default"].instances.io.on('connect', /*#__PURE__*/_asyncToGenerator(
21351
22045
  _yield$context$servic = _context.sent;
21352
22046
  data = _yield$context$servic.data;
21353
22047
  _context2["default"].assignConfig(data);
21354
- Object.values(containers).forEach(function (container) {
22048
+ _context2["default"].shared.popups.push('Connected!');
22049
+ Object.values(sections).forEach(function (container) {
21355
22050
  return container.initialize();
21356
22051
  });
21357
22052
  loader.hide();
21358
- case 10:
22053
+ case 11:
21359
22054
  case "end":
21360
22055
  return _context.stop();
21361
22056
  }
@@ -21363,4 +22058,4 @@ _context2["default"].instances.io.on('connect', /*#__PURE__*/_asyncToGenerator(
21363
22058
  }, _callee);
21364
22059
  })));
21365
22060
 
21366
- },{"./components":241,"./containers":251,"./context":253,"./handlebars":255,"lodash/omit":215,"lodash/set":217,"lodash/unset":222}]},{},[267]);
22061
+ },{"./components":257,"./context":267,"./handlebars":269,"./sections":286,"lodash/omit":226,"lodash/set":228,"lodash/unset":236}]},{},[291]);